/**
* DOM
**/
function ge() { //getElementById
  var ea;
  for (var i = 0; i < arguments.length; i++) {
    var e = arguments[i];
    if (typeof e == 'string')
      e = document.getElementById(e);
    if (arguments.length == 1)
      return e;
    if (!ea)
      ea = new Array();
    ea.push(e);
  }
  return ea;
}
function geByClass(searchClass,node,tag) {
    var classElements = new Array();
    if ( node == null )
        node = document;
    if ( tag == null )
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
    for (i = 0, j = 0; i < elsLen; i++) {
        if ( pattern.test(els[i].className) ) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}
function show(elem) {
  if (arguments.length > 1) {
    for (var i = 0; i < arguments.length; i++) {
      show(arguments[i]);
    }
    return;
  }
	if(typeof elem != "object"){
		elem = ge(elem);
	}
  if (!elem) return;
  elem.style.display = 'block'
}
function hide(elem){
  if (arguments.length > 1) {
    for (var i = 0; i < arguments.length; i++) {
      show(arguments[i]);
    }
    return;
  }
  elem = ge(elem);
  if (!elem) return;
  elem.style.display = 'none'
}
function isVisible(elem) {
 elem = ge(elem);
 return getStyle(elem, 'display') != 'none' && getStyle(elem, 'visibility') != 'hidden';
}
function toggle(elem) {
  if (isVisible(elem)) {
    hide(elem);
  } else {
    show(elem);
  }
}
function getXY(obj) {
 if (!obj || obj == undefined) return;
 var left = 0, top = 0;
 if (obj.offsetParent) {
  do {
   left += obj.offsetLeft;
   top += obj.offsetTop;
  } while (obj = obj.offsetParent);
 }
 return [left,top];
}
/**
 * CSS classes
 **/
 
function hasClass(obj, name) {
  obj=ge(obj);
  return obj && (new RegExp('(\\s|^)' + name + '(\\s|$)')).test(obj.className);
}

function addClass(obj, name) {
	if(typeof obj != "object"){
		obj=ge(obj);
	}

  if (obj && !hasClass(obj, name)) obj.className = (obj.className ? obj.className + '' : '') + name;
}

function removeClass(obj, name) {
  if(typeof obj != "object"){
		obj=ge(obj);
	}
  if (obj && hasClass(obj, name)) obj.className = obj.className.replace((new RegExp('(\\s|^)' + name + '(\\s|$)')), '');
}

// Get computed style
function getStyle(elem, name, force) {
  if(typeof elem != "object"){
		elem=ge(elem);
	}
  if (force !== undefined && !force) return elem.style[name];
  if (name == "width" || name == "height") {
    return getSize(elem, true)[({'width':0, 'height':1})[name]] + 'px';
  }
  var ret, defaultView = document.defaultView || window;
  if (defaultView.getComputedStyle) {
    name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
    var computedStyle = defaultView.getComputedStyle( elem, null );
      if (computedStyle)
        ret = computedStyle.getPropertyValue(name);
  } else if (elem.currentStyle) {
    if (name == 'opacity' && browser.msie) {
      var filter = elem.currentStyle['filter'];
      return filter && filter.indexOf("opacity=") >= 0 ?
        (parseFloat(filter.match(/opacity=([^)]*)/)[1] ) / 100) + '' : '1';
    }
    var camelCase = name.replace(/\-(\w)/g, function(all, letter){
      return letter.toUpperCase();
    });
    ret = elem.currentStyle[name] || elem.currentStyle[camelCase];
    // If we're not dealing with a regular pixel number
    // but a number that has a weird ending, we need to convert it to pixels
    if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
      // Remember the original values
      var left = style.left, rsLeft = elem.runtimeStyle.left;

      // Put in the new values to get a computed value out
      elem.runtimeStyle.left = elem.currentStyle.left;
      style.left = ret || 0;
      ret = style.pixelLeft + "px";

      // Revert the changed values
      style.left = left;
      elem.runtimeStyle.left = rsLeft;
    }
  }
  return ret;
}

function setStyle(elem, name, value){
  if(typeof elem != "object"){
		elem=ge(elem);
	}
  if (typeof name == 'object') return each(name, function(k,v){setStyle(elem,k,v);});
  if (name == 'opacity'){
    if (browser.msie) {elem.style.filter = "alpha(opacity=" + value*100 + ")"; elem.style.zoom = 1; };
    elem.style.opacity = value;
  } else elem.style[name] = typeof(value) == 'number' && !(/z-?index|font-?weight|opacity|zoom|line-?height/i).test(name) ? value + 'px': value;
}
/**
*  Useful utils
**/
Function.prototype.bind = function(object) {
  var __method = this;
  return function() {
    return __method.apply(object, arguments);
  }
};
function isFunction(obj) {return Object.prototype.toString.call(obj) === "[object Function]"; }
function isArray(obj) { return Object.prototype.toString.call(obj) === "[object Array]"; }
function now() { return +new Date; }
function trim(text) { return (text || "").replace(/^\s+|\s+$/g, ""); }
function stripHTML(text) { return text.replace(/<(?:.|\s)*?>/g, ""); }
function escapeRE(s) { return s.replace(/[.*+?^${}()|[\]\/\\]/g, '\\$0'); }
function str_replace(searchString, replaceString, text){
	lengthSearchString  = searchString.length;
	lengthReplaceString = replaceString.length;
	rezultText          = text;
	start_poz           = 0; //начальная позиция с которой начинаем поиск заданной подстроки
	while((poz = rezultText.indexOf(searchString,start_poz))!=-1){
		firstPart        = rezultText.substring(0,poz);
		lengthRezultText = rezultText.length;
		endPart          = rezultText.substring(poz+lengthSearchString, lengthRezultText );
		rezultText       = firstPart+replaceString+endPart;
		start_poz        = poz+lengthReplaceString;
	}
	return (rezultText);
}
function storeHtml(s){
	s = str_replace('&lt;','<',s);
	s = str_replace('&gt;','>',s);
	return s;
}
/** 
* Работа с элементом select
**/
/*
//Создает объект класса Option и возвращает его.
//Пришлось вводить этот метод искуственно, т.к. JavaScript
//почему-то не может работать с объектами класса Option ,
//полученными непосредственно из объекта Select "напрямую"
function MakeOpt(obj) {
	var opt = new Option(obj.text,obj.value);
	return opt;
}
//Добавляет элемент item (объект класса Option) в список list. 
  //Если в списке-получателе не выделен ни один элемент, то 
  //вставляется в конец списка, в противном случае - добавляется 
  //после курсора выделения.
function AddItem(list,item) {
	var ind=list.options.selectedIndex;
	var len=list.length;
	var mem

	//Конец списка, или же ничего не выделено?
	if(ind==-1 || ind+1==len) list.options[len]=item;
	//Все-таки, что то выделено и не в конце. Сдвигаем все
	//элементы после курсора на одну позицию вниз, после чего
	//добавляем вставляемый на освободившееся место. Курсор остается
	//на прежнем месте.
	else {
		for(i=len;i>ind;i--) {
			mem=MakeOpt(list.options[i-1]);
			list.options[i]=mem;
		}
		list.options[ind+1]=item;
		list.options[ind].selected=true;
	}
}
//Перемещает объекты из списка list1 в список list2.
  //После перемещения происходит автоматический пересчет
  //кол-ва элементов. Закомментируйте две последние строки,
  //если в этом нет необходимости.
  function MoveItem(list1_name,list2_name) {
    var list1=ge(list1_name);
    var list2=ge(list2_name);
    var ind=list1.options.length;

    if(ind==-1) return false;
    for(var i=0; i<ind; i++){
			//Запоминаем копируемый элемент
			var opt=MakeOpt(list1.options[i]);
			//Вставляем его в список-получатель
			AddItem(list2,opt);
		}
  }
*/
/**
* Store data connection on element
**/
var expand = "DR" + now(), dr_uuid = 0, dr_cache = {};

// Get or set element data
function data(elem, name, data) {
  var id = elem[ expand ], undefined;
  if ( !id )
    id = elem[ expand ] = ++dr_uuid;

  if (name && !dr_cache[id])
    dr_cache[id] = {};

  if (data !== undefined)
    dr_cache[id][name] = data;

  return name ?
    dr_cache[id][name] :
    id;
}

function removeData(elem, name) {
  var id = elem[expand];
  if (name) {
    if (dr_cache[id]) {
      delete dr_cache[id][name];
      name = "";
      for (name in dr_cache[id])
        break;

      if (!name)
        removeData(elem);
    }
  } else {
    try {
      delete elem[expand];
    } catch(e){ // fix for IE
      if (elem.removeAttribute)
        elem.removeAttribute(expand);
    }
    delete dr_cache[id];
  }
}
/**
*  Arrays, objects
**/
function each(object, callback) {
  var name, i = 0, length = object.length;

  if ( length === undefined ) {
    for ( name in object )
      if ( callback.call( object[ name ], name, object[ name ] ) === false )
        break;
  } else
    for ( var value = object[0];
      i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}

  return object;
}
function indexOf(arr, value, from) {
  from = (from == null) ? 0 : from;
  var m = arr.length;
  for(var i = from; i < m; i++)
    if (arr[i] == value)
       return i;
   return -1;
}

function clone(obj) {
  var newObj = {};
  for (var i in obj) {
    newObj[i] = obj[i];
  }
  return newObj;
}
/**
* Event
**/
function addEvent(elem, types, handler) {
  if(typeof elem != "object"){
		elem = ge(elem);
	}
	
  if (!elem || elem.nodeType == 3 || elem.nodeType == 8 )
    return;

  // For whatever reason, IE has trouble passing the window object
  // around, causing it to be cloned in the process
  if (elem.setInterval && elem != window)
    elem = window;

  var events = data(elem, "events") || data(elem, "events", []),
      handle = data(elem, "handle") || data(elem, "handle", function(){
        _eventHandle.apply(arguments.callee.elem, arguments);
      });
  // Add elem as a property of the handle function
  // This is to prevent a memory leak with non-native
  // event in IE.
  handle.elem = elem;
  each(types.split(/\s+/), function(index, type) {
    var handlers = events[type];
    if (!handlers) {
      handlers = events[type] = new Array();

      if (elem.addEventListener)
        elem.addEventListener(type, handle, false);
      else if (elem.attachEvent)
        elem.attachEvent('on' + type, handle);
    }
    handlers.push(handler);
  });

  elem = null;
}
function removeEvent(elem, type, handler) {
  elem = ge(elem);
  if (!elem) return;
  var events = data(elem, "events");
  if (events) {
    if (typeof(type) == 'string' && isArray(events[type])) {
      if (isFunction(handler)) {
        for (var i = 0; i < events[type].length; i++) {
          if (events[type][i] == handler) {
            delete events[type][i];
            break;
          }
        }
      } else {
        for (var i = 0; i < events[type].length; i++) {
          delete events[type][i];
        }
      }
    } else {
      for (var i in events) {
        removeEvent(elem, i);
      }
      return;
    }
    for (var ret in events[type]) break;
    if (!ret && data(elem, "handle")) {

      if (elem.removeEventListener)
        elem.removeEventListener(type, data(elem, "handle"), false);
      else if (elem.detachEvent)
        elem.detachEvent("on" + type, data(elem, "handle"));
    }
    ret = null;
    delete events[type];
  }
}
function cancelEvent(event) {
  var e = event.originalEvent || event;
  if (e.preventDefault)
      e.preventDefault();
  if (e.stopPropagation)
      e.stopPropagation();
  e.cancelBubble = true;
  e.returnValue = false;
  return false;
}
function _eventHandle(event) {
  event = event || window.event;

  var originalEvent = event;
  event = clone(originalEvent);
  event.originalEvent = originalEvent;

  if (!event.target)
    event.target = event.srcElement || document;

  // check if target is a textnode (safari)
  if ( event.target.nodeType == 3 )
    event.target = event.target.parentNode;

  if (!event.relatedTarget && event.fromElement)
    event.relatedTarget = event.fromElement == event.target

  if ( event.pageX == null && event.clientX != null ) {
    var doc = document.documentElement, body = document.body;
    event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0);
    event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0);
  }

  if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) )
    event.which = event.charCode || event.keyCode;

  // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
  if ( !event.metaKey && event.ctrlKey )
    event.metaKey = event.ctrlKey;

  // Add which for click: 1 == left; 2 == middle; 3 == right
  // Note: button is not normalized, so don't use it
  if ( !event.which && event.button )
    event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));

  var handlers = data(this, "events");
  if (!handlers || typeof(event.type) != 'string' || !handlers[event.type] || !handlers[event.type].length) {
    return;
  }
  try {
  //fixed: handlers[event.type] = undefined
  for (var i = 0; i < (handlers[event.type] || []).length; i++) {
    if (event.type == 'mouseover' || event.type == 'mouseout') {
      var parent = event.relatedElement;
      // Traverse up the tree
      while ( parent && parent != this )
        try { parent = parent.parentNode; }
        catch(e) { parent = this; }
      if (parent == this) {
        continue
      }
    }
    var ret = handlers[event.type][i].apply(this, arguments);
    if (ret === false) {
      cancelEvent(event);
    }
  }
  } catch (e) {
   alert(event.target.id+"."+event.type+": "+e.message);
  }
}
// Prevent memory leaks in IE
// And prevent errors on refresh with events like mouseover in other browsers
// Window isn't included so as not to unbind existing unload events
addEvent(window, "unload", function(){
  for (var id in dr_cache)
    if (dr_cache[id].handle && dr_cache[id].handle.elem != window)
      removeEvent(dr_cache[id].handle.elem);
});
/**
* Ajax
**/
var Ajax = function(onDone, onFail) { // Создание класса Ajax
  this.onDone = onDone;
  this.onFail = onFail;
  var _t = this;
  var request = null;
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = null;
      }
    }
  }
  var readystatechange = function(){
	if (request.readyState == 4){
		if (request.status == 200){
			if(_t.onDone){_t.onDone(request.responseXML, request.responseText);}
		}else{
			if(_t.onFail){_t.onFail(request.responseXML, request.responseText);}
		}
	}
  }
  this.post = function(url, query){
		query = query2url(query);
		request.open("POST", url, true);
    request.onreadystatechange = readystatechange;
    request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    request.send(query);
  };
  function query2url(qa){
	var query = [], q, i =0;

   for (var key in qa) {
     if (qa[key] === undefined || qa[key] === null || typeof(qa[key]) == 'function') continue;
     if (isArray(qa[key])) {
       for (var i = 0; i < qa[key].length; ++i) {
         if (qa[key][i] === undefined || qa[key][i] === null || typeof(qa[key][i]) == 'function') continue;
         query.push(escapeurl(key) + '[]=' + escapeurl(qa[key][i]));
       }
     } else {
       query.push(escape(key) + '=' + escapeurl(qa[key]));
     }
   }
   return query.join('&');
  }
}

// Инициализируем таблицу перевода
var trans = [];
for (var i = 0x410; i <= 0x44F; i++)
trans[i] = i - 0x350; // А-Яа-я
trans[0x401] = 0xA8;    // Ё
trans[0x451] = 0xB8;    // ё
trans[0x457] = 0xBF;    // ї
trans[0x407] = 0xAF;    // Ї
trans[0x456] = 0xB3;    // і
trans[0x406] = 0xB2;    // І
trans[0x404] = 0xBA;    // є
trans[0x454] = 0xAA;    // Є

// Сохраняем стандартную функцию escape() для работы с русскими символами
var escapeOrig = window.escape;

// Переопределяем функцию escape()
escapeurl = function(str)
{
  var ret = [];
  // Составляем массив кодов символов, попутно переводим кириллицу
  for (var i = 0; i < str.length; i++)
  {
    var n = str.charCodeAt(i);
    if (typeof trans[n] != 'undefined')
      n = trans[n];
    if (n <= 0xFF)
      ret.push(n);
  }
  return escapeOrig(String.fromCharCode.apply(null, ret));
}
function load(){  //Правим URL
	var url = location.hash;
	url = url.split("=");
	if(url[1] != null || url[1] != undefined){
		location.href = 'index.php?module=gallery&id=' + url[1];
	}
}

// Автозаполнение
var autofill = (function(){
		
	return{
		search: function(elem){
			var str = ge(elem).value;
			var elem_xy = getXY(ge(elem));
			var elem_x = elem_xy[0];
			var elem_y = elem_xy[1] + ge(elem).height;
			//ge('autofill').left = elem_x;
			//ge('autofill').top  = elem_y;
			//alert(elem_y);
			show('autofill');
		}
	}
}())
// Добавление, удаление, копирование TextBox и ListBox
var adcBox = (function(){
	//Создает объект класса Option и возвращает его.
	//Пришлось вводить этот метод искуственно, т.к. JavaScript
	//почему-то не может работать с объектами класса Option ,
	//полученными непосредственно из объекта Select "напрямую"
	function MakeOpt(obj) {
		var opt = new Option(obj.text,obj.value);
		return opt;
	}
	//Добавляет элемент item (объект класса Option) в список list. 
		//Если в списке-получателе не выделен ни один элемент, то 
		//вставляется в конец списка, в противном случае - добавляется 
		//после курсора выделения.
	function AddItem(list,item) {
		var ind=list.options.selectedIndex;
		var len=list.length;
		var mem

		//Конец списка, или же ничего не выделено?
		if(ind==-1 || ind+1==len) list.options[len]=item;
		//Все-таки, что то выделено и не в конце. Сдвигаем все
		//элементы после курсора на одну позицию вниз, после чего
		//добавляем вставляемый на освободившееся место. Курсор остается
		//на прежнем месте.
		else {
			for(i=len;i>ind;i--) {
				mem=MakeOpt(list.options[i-1]);
				list.options[i]=mem;
			}
			list.options[ind+1]=item;
			list.options[ind].selected=true;
		}
	}
	//Перемещает объекты из списка list1 в список list2.
  //После перемещения происходит автоматический пересчет
  //кол-ва элементов. Закомментируйте две последние строки,
  //если в этом нет необходимости.
  function MoveItem(list1_name,list2_name) {
    var list1=ge(list1_name);
    var list2=ge(list2_name);
    var ind=list1.options.length;

    if(ind==-1) return false;
    for(var i=0; i<ind; i++){
			//Запоминаем копируемый элемент
			var opt=MakeOpt(list1.options[i]);
			//Вставляем его в список-получатель
			AddItem(list2,opt);
		}
  }
	
	return{
		addTextBox: function(name){
			var button = ge("add"+name);
			var div = ge(name);
			var index = ge(name+'index');
			var ivalue = index.value;
			newname = name+'['+ivalue+']';
			newTextBox = '<span id="block'+newname+'"><input type="text" name="'+newname+'"><input type="button" onClick="adcBox.deleteBox(\'block'+newname+'\');" value=\"&nbsp;-&nbsp;\"><span><br>';
			newnode=document.createElement("span");
			newnode.innerHTML=newTextBox;
			div.insertBefore(newnode, button);
			index.value = parseInt(ivalue) + 1; 
		},
		addListBox: function(name){			
			var button = ge("add"+name);
			var div = ge(name);
			var index = ge(name+'index');
			var ivalue = index.value;
			newname = name+'['+ivalue+']';
			newListBox = '<span id="block'+newname+'"><select id="'+newname+'" name="'+newname+'"></select><input type="button" onClick="adcBox.deleteBox(\'block'+newname+'\');" value=\"&nbsp;-&nbsp;\"><span><br>';
			newnode=document.createElement("span");
			newnode.innerHTML=newListBox;
			div.insertBefore(newnode, button);
			MoveItem(name+"[0]",name+"["+ivalue+"]");
			index.value = parseInt(ivalue) + 1; 
		},
		addTextAndListBox: function(nText, nList){
			var button = ge("add"+nText);
			var div = ge(nText);
			var index = ge(nText+'index');
			var ivalue = index.value;
			newnText = nText+'['+ivalue+']';
			newnList = nList+'['+ivalue+']';
			newTextAndListBox = '<span id="block'+newnText+'"><input type="text" name="'+newnText+'"><select id="'+newnList+'" name="'+newnList+'"></select><input type="button" onClick="adcBox.deleteBox(\'block'+newnText+'\');" value=\"&nbsp;-&nbsp;\"><span><br>';
			newnode=document.createElement("span");
			newnode.innerHTML=newTextAndListBox;
			div.insertBefore(newnode, button);
			MoveItem(nList+"[0]",nList+"["+ivalue+"]");
			index.value = parseInt(ivalue) + 1; 
		},
		deleteBox: function(name){
			elem = ge(name);
			elem.innerHTML = "";
			elem.removeNode();
		}
	}
}())

// For cinema
function cinemaTable(elem){
	elem = elem.parentNode;
	for (var i=0; i<elem.childNodes.length; i++){
		var obj = elem.childNodes[i];
		if(obj.nodeType == 1 && obj.tagName == "TABLE"){
			var display = getStyle(obj, "display");
			if(display == "table"){
				setStyle(obj, "display", "none");
			}else{
				setStyle(obj, "display", "table");
			}
		}
	}
}

fillOnSelected = (function(){
	var url = "ajax/photo.php";
	var fajax, act, value;
	
	var onDone = function(xml, text){
		if(act == "change"){
			var select = xml.getElementsByTagName('select')[0].firstChild.nodeValue;
			ge('place').innerHTML = select;
		}
		if(act == 'gofrends'){
			var status = xml.getElementsByTagName('status')[0].firstChild.nodeValue;
			var sendbtn = ge('sendbtn');
			if(status == 1){
				sendbtn.innerHTML = '';
				sendbtn.onclick = '';
			}else{
				alert('Произошла ошибка связи, попробуйте еще раз!');
			}
		}
		if(act == 'gofrendslist'){
			alert(text);
			var container = xml.getElementsByTagName('container')[0].firstChild.nodeValue;
			$('.events_big').append(container);
			var flist = xml.getElementsByTagName('flist')[0].firstChild.nodeValue;
			$('.popup_box_container')[0].innerHTML = flist;
		}
	}
	var onFail = function(){
		alert("Произошла ошибка связи, попробуйте еще раз!");
	}
	if(!fajax){
		fajax = new  Ajax(onDone, onFail);
	}
	return{
		change: function(){
			act = "change";
			var selectcat = ge('selectcat');
			for(i=0; i<selectcat.options.length; i++){
				if(selectcat.options[i].selected == true){
					value = selectcat.options[i].value;
					if(value == 0){
						ge('place').innerHTML = '<input type="text" name="place"> - Адрес: <input type="text" name="address">';
					}else{
						fajax.post(url, {'id':value, 'act':'changeList'});
					}
				}
			}
		},
		gofrends: function(direct){
			var eventid = ge('eventid').value;
			if(direct == 1){
				act = "gofrendslist";
				fajax.post(url, {'act':act});
			}else{
				act = "gofrends";
				fajax.post(url, {'id':eventid,'act':act});
			}
			
		},
		gosms: function(){
			act = "gosms";
			alert('gosms');
		},
		photography: function(){
			var select = ge('select_photography');
			for(i=0; i<select.options.length; i++){
				if(select.options[i].selected == true){
					value = select.options[i].value;
					if(value == 0){
						ge('photography_name').innerHTML = '<input type="text" name="name">';
					}else{
						ge('photography_name').innerHTML = '';
					}
				}
			}
		}
	}
}())
/**
* URL Parser
**/
/*
function URLParser(){
	if(location.hash != ''){
		var param = new Array();
		var l=0;
		var url = location.href;
		url = url.split("?");
		url = url[1].replace('#', '&');
		url = url.split('&');
		
		for(i=0; i<url.length; i++){
			var temp = url[i].split('=');
			access = 1;
			for(j=0; j<param.length; j++){
				if(temp[0] == param[j]['name']){
					access = 0;
					accessid = j;
				}
			}
			if(access == 1){
				param[l] = new Array('name', 'value');
				param[l]['name'] = temp[0];
				param[l]['value'] = temp[1];
				l++;
			}else{
				param[accessid]['value'] = temp[1];
			}
		}
		url = '';
		for(i=0; i<param.length; i++){
			if(i==0){
				url+= param[i]['name'] + '=' + param[i]['value'];
			}else{
				url+= '&' + param[i]['name'] + '=' + param[i]['value'];
			}
		}
		if(url != null || url != undefined){
			location.href = 'index.php?' + url;
		}
	}
}*/

function goToUrl(url){
	location.href = url; 
}
function retfalse(){
	return false;
}
//windows.handleResponse = handleResponse;