var globalId = "";
/*
function ajaxManager()
{
	var args = ajaxManager.arguments;
	var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP"): new XMLHttpRequest();
	var REQ = args[1]+'&AJAX=A';
	if (args[2] != "")
	{
		if (args[3])
		{
		}
		else
		{
			globalId = args[2];
		}
	}
	switch (args[0])
	{
		case "load_page":
			if (x)
			{					
				x.onreadystatechange = function()
				{
					if (x.readyState == 4 && x.status == 200)
					{
						el = document.getElementById(args[2]);
						if (x.responseText.indexOf('#####javascriptStartHere#####') > 0)
						{
							start = x.responseText.indexOf('#####javascriptStartHere#####');
							end =   x.responseText.indexOf('#####javascriptEndHere#####');
							javaText = x.responseText.substr((start+29), (end-start-29));
							divText = x.responseText.substr(0, start);
							el.innerHTML = divText;
							
							var getheadTag = document.getElementsByTagName('head')[0];
							setjs = document.createElement('script');
							setjs.setAttribute('type', 'text/javascript');
							getheadTag.appendChild(setjs);
							setjs.text = javaText;
						}
						else
						{
							el.innerHTML = x.responseText;
						}
					}
				}					
				x.open("GET", REQ, true);
				x.send(null);
			}
			break;
			case "load_js":
				if (x)
				{					
					x.onreadystatechange = function()
					{
						if (x.readyState == 4 && x.status == 200)
						{
							//var getheadTag = document.getElementsByTagName('head')[0];
							//setjs = document.createElement('script');
							//setjs.setAttribute('type', 'text/javascript');
							//getheadTag.appendChild(setjs);
							//setjs.text = x.responseText;
						}
					}
					x.open("GET", REQ, true);
					x.send(null);
				}
			break;
			case "display_info":
			document.getElementById(args[2]).innerHTML = REQ;		
			break;
			case "start_up":
	    	ajaxManager('load_page',args[1],args[2]);
				break;
	} 
}
//*/

//*
function ajaxManager()
{
	var args = ajaxManager.arguments;
	var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP"): new XMLHttpRequest();			
	var REQ = args[1]+'&AJAX=A&rnd='+getRnd();	
	if (args[2] != "")
	{
		if (args[3])
    {
    }
    else
    {
	    globalId = args[2];
    }
	}
	switch (args[0])
	{
		case "load_page":
			if (x)
			{					
				x.onreadystatechange = function()
				{
					if (x.readyState == 4 && x.status == 200)
					{
						el = document.getElementById(args[2]);
						if (x.responseText.indexOf('#####javascriptStartHere#####') > 0)
						{
							start = x.responseText.indexOf('#####javascriptStartHere#####');
							end =   x.responseText.indexOf('#####javascriptEndHere#####');
							javaText = x.responseText.substr((start+29), (end-start-29));
							divText = x.responseText.substr(0, start);
							el.innerHTML = divText;
							
							var getheadTag = document.getElementsByTagName('head')[0];
							setjs = document.createElement('script');
							setjs.setAttribute('type', 'text/javascript');
							getheadTag.appendChild(setjs);
							setjs.text = javaText;
						}
						else
						{
							el.innerHTML = x.responseText;
						}
					}
					//*
					else
					{
						blnFlag = false;
						blnFlag = args[4];
						if (blnFlag)
						{
							aCover();								
						}
					}
					//*/
				}					
				x.open("GET", REQ, true);
				x.send(null);
			}
			break;
			case "load_js":
				if (x)
				{					
					x.onreadystatechange = function()
					{
						if (x.readyState == 4 && x.status == 200)
						{
							//var getheadTag = document.getElementsByTagName('head')[0];
							//setjs = document.createElement('script');
							//setjs.setAttribute('type', 'text/javascript');
							//getheadTag.appendChild(setjs);
							//setjs.text = x.responseText;
						}
					}
					x.open("GET", REQ, true);
					x.send(null);
				}
			break;
			case "display_info":
			document.getElementById(args[2]).innerHTML = REQ;		
			break;
			case "start_up":
	    	ajaxManager('load_page',args[1],args[2]);
				break;
	} 
}
//*/
/*
Codes implemented below this lines are for paging.
//*/
var xmlHttp = createXmlHttpRequestObject();
/*try{var prefs = Components.classes["@mozilla.org/preferences-service;1"].
                    getService(Components.interfaces.nsIPrefService);
prefs = prefs.getBranch(null);
prefs.setBoolPref("signed.applets.codebase_principal_support", true);}
catch(e){
	alert(e.toString());
}*/
function createXmlHttpRequestObject()
{
	// will store the reference to the XMLHttpRequest object
	// this should work for all browsers except IE6 and older
	try
	{
		// try to create XMLHttpRequest object
		xmlHttp = new XMLHttpRequest();
	}
	catch(e)
	{
		// assume IE6 or older
		var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP');
		// try every prog id until one works
		for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
		{
			try
			{
			// try to create XMLHttpRequest object
			xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			}
			catch (e) {} // ignore potential error
		}
	}
	// return the created object or display an error message
	if (xmlHttp)
		return xmlHttp;
	else
		alert("Error creating the XMLHttpRequest object.");
}

// called to read a file from the server by asynchronous
function asynchronousProcessByGet()
{
	var args = asynchronousProcessByGet.arguments;
	// only continue if xmlHttp isn't void
	var REQ = args[0]+'&AJAX=A&rnd='+getRnd();
	if (xmlHttp)
	{
		// try to connect to the server
		try
		{
			 if ((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) ){

                                if(args[1] != ""){
                                        globalId = args[1];
                                }
                                // make a server request to validate the extracted data
				xmlHttp.open("GET", REQ, true);
//				alert(xmlHttp.onreadystatechange);
				
				xmlHttp.onreadystatechange = handleRequestStateChange;

				xmlHttp.send(null);
			}
		}
		// display the error in case of failure
		catch (e)
		{
			alert("Can't connect to server:\n" + e.toString());
		}
	}
}


function asynchronousProcessByPost(form,divIdForGlobal)
{
	var cache = new Array();

	for (var i = 0; i < form.length; i++)
  	{
    		var elem = form[i];
		//elem.name = encodeURIComponent(elem.name);
		//elem.value = encodeURIComponent(elem.value);
		if(elem.type=="radio"){
			if(elem.checked){
                        	cache.push(elem.name +"="+elem.value);
			}
		}
		else if(elem.type=="checkbox"){
                        if(elem.checked){
                                cache.push(elem.name +"="+elem.value);
			}
                     
                }
		else if(elem.name){
			if(elem.value.indexOf('&')) {
				elem.value = elem.value.replace(/&/g, '!@#$%REPLACE!@#$%');
			}
			cache.push(elem.name +"="+encodeURI(elem.value));
		}
    }
	if (xmlHttp)
	{
		// try to connect to the server
		try
		{
			// continue only if the XMLHttpRequest object isn't busy
			// and the cache is not empty
			if ((xmlHttp.readyState == 4 || xmlHttp.readyState == 0) && cache.length > 0){
				// get a new set of parameters from the cache
				var cacheEntry = cache.join("&");
				//var test = cache.join("\n");
				//alert(test);
				//set the global div
				
				//var objDate = new Date();
				var REQ = cacheEntry+'&AJAX=A&rnd'+getRnd();
				if(divIdForGlobal!=""){
					globalId = divIdForGlobal;
				}
				// make a server request to validate the extracted data
				xmlHttp.open("POST", "index.php", true);
				xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
				xmlHttp.onreadystatechange = handleRequestStateChange;
				xmlHttp.send(REQ);
			}
		}
		catch (e)
		{
		// display an error when failing to connect to the server
		alert(e.toString());
		}
	}
}

// function that handles the HTTP response
function handleRequestStateChange(){
	// when readyState is 4, we read the server response
	
	if (xmlHttp.readyState == 4){
	// continue only if HTTP status is "OK"
		if (xmlHttp.status == 200){
			try{
				myDiv = document.getElementById(globalId);
				var strText = xmlHttp.responseText.replace(/^(\s)*/, '');
				strText = strText.replace(/(\s)*$/, '');
				var pos = strText.indexOf('#####javascriptStartHere#####');
				if(pos >= 0){
					/*start = xmlHttp.responseText.indexOf('#####javascriptStartHere#####');
					end =   xmlHttp.responseText.indexOf('#####javascriptEndHere#####');
					alert(end);
					javaText = xmlHttp.responseText.substr((start+29), (end-start-29));
					divText = xmlHttp.responseText.substr(0, start);
					myDiv.innerHTML = divText;

					var getheadTag = document.getElementsByTagName('head')[0];
					setjs = document.createElement('script');
					setjs.setAttribute('type', 'text/javascript');
					getheadTag.appendChild(setjs);
					setjs.text = javaText;*/
					myDiv.innerHTML = parseResponse(strText, pos);
					sUncover();
					//myDiv.innerHTML = parseResponse(xmlHttp.responseText, pos);
             			}else {
					// read the response from the server
					response = strText;
					//alert(response);
					myDiv.innerHTML = response;
					sUncover();					
				}
			}
			catch(e){
				// display error message
				alert(e.toString());
			}
		}
		else
		{
			// display error message
			alert(xmlHttp.statusText);
		}
	}
	else {
		sCover();
	}
}

function aCover()
{
	var obj = document.getElementById(globalId);
	if(obj)
	{
		obj.innerHTML = "";
		obj.innerHTML = "<table height='100%' width='100%'><tr><td align='center' valign='middle'><img src='"+imagesUrl+"overlay2.gif' align='absmiddle' />&nbsp;Loading, please wait...</td></tr></table>";
	}
}

function sCover()
{
	var objTransparent = document.getElementById("transparent");
	var objIllusion = document.getElementById("illusion");	
	if(objTransparent && objIllusion)
	{
		objTransparent.style.display="block";
		objIllusion.style.display="block";
	}
}
function sUncover()
{
	var objTransparent = document.getElementById("transparent");
	var objIllusion = document.getElementById("illusion");	
	if(objTransparent && objIllusion)
	{
		objTransparent.style.display="none";
		objIllusion.style.display="none";
	}
}

function parseResponse(textResponse, parsePosition) {
	start = parsePosition;
        end   = textResponse.indexOf('#####javascriptEndHere#####');
        javaText = textResponse.substr((start+29), (end-start-29));
	if(parsePosition == 0) {
		divText = textResponse.substr(end+27);
	}
	else {
		divText = textResponse.substr(0, start);
	}
        var getheadTag = document.getElementsByTagName('head')[0];
        setjs = document.createElement('script');
        setjs.setAttribute('type', 'text/javascript');
	getheadTag.appendChild(setjs);
      	setjs.text = javaText;
	nextPos = divText.indexOf('#####javascriptStartHere#####');
	if (nextPos >= 0) {
		divText = parseResponse(divText, nextPos);
	}
	else {
		return divText;
	}
	return divText;
}

function evaluateJs()
      {
            window.jsCode = new Array();
            var scriptTags = document.getElementsByTagName('SCRIPT');
            var head = document.getElementsByTagName('HEAD')[0];
            for(var no=0;no<scriptTags.length;no++){                  
                if (scriptTags[no].src){
                    var head = document.getElementsByTagName("head")[0];
                    var scriptObj = document.createElement("script");            
                    scriptObj.setAttribute("type", "text/javascript");
                    scriptObj.setAttribute("src", scriptTags[no].src);             
                    head.appendChild(scriptObj);
            
                }else{                      
                        var code = scriptTags[no].innerHTML;                        
                        window.jsCode[no] = code;
                        setTimeout('eval(window.jsCode[' + no + '])',100);      // Has to wait because we want to make all objects part of the window object(global variables) instead of locale
                }            
            }      
      }

function getRnd()
{
	return String((new Date()).getTime()).replace(/\D/gi,'');
}
