// JavaScript Document

var arrOnLoad = new Array();
var onloadAttached = false;


function ajaxCallV2(url, LoaderIconID){
//	alert('XXXX ' + url);
	var myAjax = new Ajax.Request(url, {
		asynchronous:true,

		onCreate: function() { /*showLoader(LoaderIconID); */ },
		onComplete: function() { /*hideLoader(LoaderIconID);*/},
		
		onSuccess: function(transport) { ProcessXML(transport.responseXML) } ,
		method: 'get'
  });

}


// lang javascript
function showLoader(loader)
{
	
   new Effect.Appear($(loader), {duration: 0});
}

function hideLoader(loader)
{
   new Effect.Fade($(loader), {duration: 0});
}


function ajaxCall(url, callbackfunction, updateid)
{
	var xmlHttp;
	try {    // Firefox, Opera 8.0+, Safari    
		xmlHttp=new XMLHttpRequest();   
	}
	catch (e){    // Internet Explorer    
		try {      
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");      

		}
		catch (e){
			try{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");        
}
			catch (e){       
				alert("Your browser does not support AJAX!");        
				return false;
			}
		}
	}
	
	
	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4){
				xmlDoc = xmlHttp.responseXML;

				if (xmlDoc.parseError.errorCode != 0){
					document.write(xmlHttp.responseText);
				}
			callbackfunction(updateid,xmlDoc);
//			document.myForm.time.value=xmlHttp.responseText;
		}
	}
	//add random to end of url
	//alert(url.indexOf('?'));
	if (url.indexOf('?') == -1)	{
		url += '?' + Math.random();
	}else{
		url += '&' + Math.random();
	}
	
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);
} //end function

function xAddToOnLoad(fn){
	arrOnLoad.push(fn);
//	alert(arrOnLoad);
	if (onloadAttached == false){
		if (window.addEventListener) window.addEventListener("load", runOnload, false);
	    else if (window.attachEvent) window.attachEvent("onload", runOnload);
		onloadAttached = true;
	}
	function runOnload(){
		for( x in arrOnLoad) {
			eval(arrOnLoad[x]);
		//	alert(x);
		}
	}	

}

function AddToOnLoad(fn){

		if (window.addEventListener) window.addEventListener("load", fn, false);
	    else if (window.attachEvent) window.attachEvent("onload", fn);
}


function GetSelectValue(ID){
		var e = document.getElementById(ID);
		if (typeof(e) == 'object'){
			if (e.selectedIndex == -1) return 0;
			return e[e.selectedIndex].value;
		}
		return 0;
	}

function ProcessXML(xmlobject){
	//alert(xmlobject.responseText);
	// get the XML root item
	var root = xmlobject.getElementsByTagName('ajax')[0];
     //alert('got root');
	//this goes though the nodes
	for (var iNode = 0; iNode < root.childNodes.length; iNode++) {
		var node = root.childNodes.item(iNode);
		//alert(node.nodeName);
		
		switch(node.nodeName){
			case 'select':
				
				ID = node.getAttribute("id");
				//alert(ID);
				Disabled = node.getAttribute("disabled");

					
				var e = document.getElementById(ID);

				if (Disabled == 'false'){
					e.disabled = false;
				}else{
					e.disabled = true;
				}

				//empty list
				e.length = 0;
				//alert("Here!");
				for (i = 0; i < node.childNodes.length; i++) {
					SelectOption = node.childNodes.item(i);
					//alert(SelectOption.childNodes[0].nodeValue);
					//alert(SelectOption.getAttribute("value"));
					e.options[i] = new Option(SelectOption.childNodes[0].nodeValue,SelectOption.getAttribute("value"));
					if (SelectOption.getAttribute("selected") == 'true') e.selectedIndex = i;
				}
				//alert("Here2!");
			break;



			case 'disable':
				
				ID = node.getAttribute("id");
				Disabled = node.getAttribute("disabled");

					
				var e = document.getElementById(ID);

				if (Disabled == 'false'){
					e.disabled = false;
				}else{
					e.disabled = true;
				}
			break;
			case 'innerhtml':
				ID = node.getAttribute("id");
				var e = document.getElementById(ID);
				//alert(node.nodeValue);
				e.innerHTML = node.childNodes[0].nodeValue;
			break;

			case 'innerhtmlappend':
				ID = node.getAttribute("id");
				var e = document.getElementById(ID);
				//alert(node.nodeValue);
				e.innerHTML += node.childNodes[0].nodeValue;
			break;

			case 'outerhtml':
				ID = node.getAttribute("id");
				var e = document.getElementById(ID);
				e.outerHTML = node.childNodes[0].nodeValue;
			break;		
			
			case 'value':
				ID = node.getAttribute("id");
				var e = GetRequestedElement(ID);
				e.value = node.childNodes[0].nodeValue;
				break;
				
			case 'style':
				ID = node.getAttribute("id");
				style = node.getAttribute("style");
				var e = GetRequestedElement(ID);
				e.style[style]= node.childNodes[0].nodeValue;
				break;	
				
			case 'alert':
				alert(node.childNodes[0].nodeValue);
				break;					
		}
   }//for each node
}//function

function GetRequestedElement(ID){
	try{
		var e = document.getElementById(ID);
	}
	catch(e){
		alert('ID ' + ID + ' count not be found.');
		return false;
		}
		return e;
	}
	
	function getRef(obj){
		return (typeof obj == "string") ?
			 document.getElementById(obj) : obj;
	}	
