
/* <![CDATA[ */
	var debug=false;

 var $ = function ($id) {
                try {
                return document.getElementById($id);
                } catch(e) {
                return document.all[$id];
                }
        }
	
	window.onerror = function (err, file, line) {
	alert('The following error occured: ' + err + '\n' +
	'In file: ' + file + '\n' +
	'At line: ' + line);
	return true;
	}
	
	var xmlhttp;
	function getXMLObject() {
		xmlhttp=null;
		if (window.XMLHttpRequest) {
		  xmlhttp=new XMLHttpRequest()
		} else if (window.ActiveXObject) {
		  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
   	    }
		return xmlhttp;
	}
	
	function loadXML(url) {
		loadXML(url,null);
	}
	
	function loadXML(url,data)
	{ 
		if (debug) alert(url);
		xmlhttp=getXMLObject();
		// code for Mozilla, etc.
		
		if (xmlhttp!=null)
		  {

		  if (data!=null) {
		  	send="";
		  	for(key in data) {
		  		send+="&"+key+"="+data[key];
		  	}
		  	send=send.substr(1);
		  } else send=null;
		  xmlhttp.onreadystatechange=state_Change;
		  xmlhttp.open("POST",url,true);
		  xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");	  
		  xmlhttp.send(send);
		  }
		else
		  {
		  alert("Your browser does not support XMLHTTP.");
		  }
	}
	
	function state_Change()
	{
	// if xmlhttp shows "loaded"
	if (xmlhttp.readyState==4)
	  {
	  // if "OK"
	  if (xmlhttp.status==200)
	    {
		   		if (debug) alert(xmlhttp.responseText);
		    	if (xmlhttp.responseText.indexOf("script")!=1) alert("ERROR:"+xmlhttp.responseText);
		   		scripty=xmlhttp.responseText.substring(9);
				scripty=scripty.substring(0,scripty.indexOf("/script")-1);
				obj=document.createElement("script");
				try {
					obj.innerHTML=scripty;
				} catch(e) {
					obj.text=scripty;
				}
				document.getElementById("executer").appendChild(obj);
			
		
	   		
	    }
	  else
	    {
	    alert("Problem retrieving XML data")
	    }
	  }
	}



	function callback(obj,name,ret) {
		value=null;
		if (obj!=null) {
			values=Array();
			switch(obj.nodeName) {
				case 'SELECT': { values[obj.id]=obj.options[obj.selectedIndex].id; break;}
				case 'INPUT':  { values[obj.id]=obj.value; break;}
				case 'FORM':   {
						for(i=0;obj.elements.length-i!=0;i++) {
							values[obj.elements[i].id]=obj.elements[i].value;
						}
						break;
				}
			
				default: {
					values[obj.id]=obj.value;
				}
			}
			
			loadXML(document.location+"/"+name,values);	
		} else {
			loadXML(document.location+"/"+name);
		}
		return ret;
	}

	
	function urldecode(str){
	    str=str.replace(new RegExp('\\+','g'),' ');
	    return unescape(str);
	}
	function urlencode(str){
	    str=escape(str);
	    str=str.replace(new RegExp('\\+','g'),'%2B');
	    return str.replace(new RegExp('%20','g'),'+');
	}
	
	function fillNodeById(id,value) {
		value=urldecode(value);
		obj=document.getElementById(id);

		set=false;
		switch(obj.nodeName) {
			case "INPUT": { set=true;obj.value=value; break; }
			
		}
		if(!set) obj.innerHTML=value;
	}
	
	
	function insertInto(id,value) {
		value=urldecode(value);
		obj=document.getElementById(id);
		
		set=false;
		switch(obj.nodeName) {
			case "INPUT": { set=true;obj.value+=value; break; }
			
		}
		if(!set) obj.innerHTML+=value;
	}
	
	function removeID(id) {
		
		if (!document.getElementById(id)) return;
		try {
			parentObj = document.getElementById(id).parentNode; 
			childObj = document.getElementById(id);
		
	        parentObj.removeChild(childObj); 
	     } catch(e) {
	     	alert(e);
	     }
	}

	function insertInto(id,value,beforeid) {
		value=urldecode(value);
	
			parentNode=document.getElementById(id);
			
			idpos=parentNode.innerHTML.lastIndexOf("id='"+beforeid+"'");
			if (idpos==-1) idpos=parentNode.innerHTML.lastIndexOf("id=\""+beforeid+"\"");
			

			if (idpos==-1) {
					alert("insertInto failed to find ID "+beforeid+" in "+id);
					return;
			}
			
		
				toppart=parentNode.innerHTML.substr(0,idpos);
				idpos=toppart.lastIndexOf("\x3c")-1;
				newhtml=parentNode.innerHTML.substr(0,idpos)+value+parentNode.innerHTML.substr(idpos);
	
				parentNode.innerHTML=newhtml;
		
	}	
/* ]]> */
