// JavaScript Document

var arrOnLoad = new Array();
var onloadAttached = false;


function ajaxCall(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)
{
	if(loader.length>0)  new Effect.Appear($(loader), {duration: 0});
}

function hideLoader(loader)
{
	if(loader.length>0)   new Effect.Fade($(loader), {duration: 0});
}


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){

//	alert(arrOnLoad);
		if (window.addEventListener) window.addEventListener("load", fn, false);
	    else if (window.attachEvent) window.attachEvent("onload", fn);
}


function GetSelectValue(ID){
		//alert(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);
	// 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':
//				alert('select');
				ID = node.getAttribute("id");
//				alert(ID);
				Disabled = node.getAttribute("disabled");
//				alert(Disabled);
					
				var e = $(ID);
//				alert(e);
				if (Disabled == 'false'){
					e.disabled = false;
				}else{
					e.disabled = true;
				}

				//empty list
				e.length = 0;
//				alert(node.childNodes.length);
				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 (ID);
				
				//
				

				//ProtoTypeJS
				//$(ID).innerHTML = '';
				//$(ID).update(node.childNodes[0].nodeValue); 
				
				
				
				
				
				//alert(node.childNodes[0].nodeValue);
				//e.innerHTML = "Guy is great!!!!";
				//e.innerHTML = node.childNodes[0].nodeValue;
				//alert(e.innerHTML);
				e.innerHTML='';
				var newdiv = document.createElement("div");
				newdiv.innerHTML = node.childNodes[0].nodeValue;
				e.appendChild(newdiv);
				//e = newdiv;

				
			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 'attribute':
				ID = node.getAttribute("id");
				attribute = node.getAttribute("attribute");
				var e = GetRequestedElement(ID);
				
				for( var x = 0; x < e.attributes.length; x++ ) {
					if( e.attributes[x].nodeName.toLowerCase() == attribute ) {
						//window.alert( 'The value of the \'title\' attribute is: ' + e.attributes[x].nodeValue );
						e.attributes[x].nodeValue = node.childNodes[0].nodeValue;
					}
				}
				
				//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;
	}	