/*
**********************************************************
** 
** This collection of scripts is written by 
** Chaitanya B Dhareshwar, CEO of Wherrelz IT Solutions
** This script may be used free - with no royalty - 
** but if you use it you agree to retain this header 
** and not claim to have authored this script. 
** 
**********************************************************
*/

var wh_oReq1;
var myInty;
var wh_calledBefore=0;
var wh_divname=new Array(); 
var wh_titlename=new Array(); 
var wh_nxtseq=0; 
var wh_oReq; 
var ppp="-";
var ppp1="&nbsp;&nbsp;&nbsp;";
var wh_responseText=""; 
var wh_callBack=""; 
var wh_titleWanted=""; 
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var basePage="/x.aspx";

function wh_manageLoader() 
{ 
	if(wh_nxtseq>=wh_divname.length) { return; } 
	wh_loadScript(basePage+'?id='+wh_nxtseq+'&wh_divname='+wh_divname[wh_nxtseq]+'&wh_titlename='+wh_titlename[wh_nxtseq]+'&rnd='+(Math.random()*1000),wh_divname[wh_nxtseq],wh_titlename[wh_nxtseq]); 
	wh_nxtseq++; 
	return;
} 

function wherrelz_navigate(selpage)
{
    pg=selpage;
    wherrelz_load("");
}

function wherrelz_navigate_load(selpage,x)
{
    pg=selpage;
    wherrelz_load(x);
}

var LoadDivName="";
function wherrelz_navigate_load_div(selpage,x,divname)
{
    var i;
    var tt="";
    qry="pg="+selpage+"&wh_divname="+divname;
	LoadDivName=divname;
    if(x!="")
    {
        for(i=0;i<x.split(",").length;i++)
        {
            if(document.getElementById(x.split(",")[i])==undefined) { alert('Field ' + x.split(",")[i] + ' may not exist. Please check the code.'); return; }
            try { tt=document.getElementById(x.split(",")[i]).type.toLowerCase(); } catch(eeekejfn) { }
            if(tt=="checkbox" || tt=="radio")
            {
                qry += "&"+x.split(",")[i]+"="+document.getElementById(x.split(",")[i]).checked;
            }
            else
            {
                qry += "&"+x.split(",")[i]+"="+escape(document.getElementById(x.split(",")[i]).value);
            }
        }
    }   
    var y;
    
	if (typeof XMLHttpRequest!='undefined') 
		{ wh_oReq1 = new XMLHttpRequest(); } 
	else 
		{ wh_oReq1 = new ActiveXObject("Microsoft.XMLHTTP"); }
	
	
	try{
    document.getElementById("bg1").style.display='block';
    document.getElementById("bg2").style.display='block';
    } catch(eek3984) { }
	
	wh_oReq1.onreadystatechange=saveVariablesFinish;
	if(qry=="")
	{
	    wh_oReq1.open("GET", basePage+"?rnd="+(Math.random()*1000), true); 
	}
	else
	{
	    wh_oReq1.open("POST", basePage+"?rnd="+(Math.random()*1000), true); 
	    try { 
        wh_oReq1.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	    wh_oReq1.send(qry); 
	    } catch(eek) { /* alert("Error saving changes. Please try again. " + eek.description); */ }
	}
	return;
}

var pg=""
var qry="pg=";
function wherrelz_load(x)
{
    var i;
    var tt="";
    qry="pg="+pg;
    if(x!="")
    {
        for(i=0;i<x.split(",").length;i++)
        {
            if(document.getElementById(x.split(",")[i])==undefined) { alert('Field ' + x.split(",")[i] + ' may not exist. Please check the code.'); return; }
            try { tt=document.getElementById(x.split(",")[i]).type.toLowerCase(); } catch(eeekejfn) { }
            if(tt=="checkbox" || tt=="radio")
            {
                qry += "&"+x.split(",")[i]+"="+document.getElementById(x.split(",")[i]).checked;
            }
            else
            {
                qry += "&"+x.split(",")[i]+"="+escape(document.getElementById(x.split(",")[i]).value);
            }
        }
    }   
    var y;
    
	if (typeof XMLHttpRequest!='undefined') 
		{ wh_oReq1 = new XMLHttpRequest(); } 
	else 
		{ wh_oReq1 = new ActiveXObject("Microsoft.XMLHTTP"); }
	
	
	try{
    document.getElementById("bg1").style.display='block';
    document.getElementById("bg2").style.display='block';
    } catch(eek3984) { }
	
	wh_oReq1.onreadystatechange=saveVariablesFinish;
	if(qry=="")
	{
	    wh_oReq1.open("GET", basePage+"?rnd="+(Math.random()*1000), true); 
	}
	else
	{
	    wh_oReq1.open("POST", basePage+"?rnd="+(Math.random()*1000), true); 
	    try { 
        wh_oReq1.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	    wh_oReq1.send(qry); 
	    } catch(eek) { /* alert("Error saving changes. Please try again. " + eek.description); */ }
	}
	return;
}

function saveVariablesFinish()
{
    if(wh_oReq1.readyState==4)
    {
        try {
            try {
	            document.getElementById("bg1").style.display='none';
	            document.getElementById("bg2").style.display='none';
	        } catch(eek343 ) { }
	        
	    if(wh_oReq1.status==200 && wh_oReq1.responseText.length>10)
	    {
			if(LoadDivName!="")
			{
				try { document.getElementById(LoadDivName).innerHTML=wh_oReq1.responseText; } catch(eek23) {
								try { document.getElementById(LoadDivName).innerHTML=wh_oReq1.responseText; } catch(eek24) { 
												try { document.getElementById(LoadDivName).innerHTML=wh_oReq1.responseText; } catch(eek25) { }}}
				LoadDivName="";
			}
			else
			{
				if (document.getElementById("BodyDiv")==null)
				{
					try { document.body.innerHTML+="<div id='BodyDiv' name='BodyDiv'></div>"; } catch(eeok) 
						{ try { document.body.innerHTML+="<div id='BodyDiv' name='BodyDiv'></div>"; } catch(eekweokw) { } }
				}	    
				
				if (document.getElementById("bg1")==null)
				{
					try { document.body.innerHTML+='<div id="bg1" name="bg1" style="display: none; position: absolute; top: 0px; left: 0px; width: 100%; height: 100%; float: left; filter: alpha(opacity=75); -moz-opacity: .25; opacity: .25; background: transparent; background-color: #e0e0e0;">&nbsp;</div>'; } catch(eek1) { }
				}
				if (document.getElementById("bg2")==null)
				{
					try { document.body.innerHTML+='<div id="bg2" name="bg2" style="display: none; position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;"><table width="100%" height="100%" style="float: left; background: transparent;"><tr><td width="100%" height="100%" align="center" valign="middle"><div align="center" style="display: block; background-color: #ffffff; font-size: 14px; color: #000000; border: 1px #828282 dashed; width: 400px; padding: 13px; font-family: arial;"><B style="font-family: arial; font-size: 18px;">Please Wait...</b><br /><br />Loading... This may take a minute...<br /><br /></div></td></tr></table></div>'; } catch(eek1) { }
				}	        
				
				try {
				document.getElementById("BodyDiv").innerHTML=wh_oReq1.responseText;
				} catch(eek12) { }
			}
	    }
	    else 
	    {
	        //alert("Error saving changes. Please try again.");
	    }
	    } catch(eeek) { alert("Error saving changes. Please try again. " + eeek.description); }
	} 
}

function wh_generateXMLHTTP() 
{
	wh_oReq=null; 
	if (typeof XMLHttpRequest!='undefined') 
		{ wh_oReq = new XMLHttpRequest(); } 
	else 
		{ wh_oReq = new ActiveXObject("Microsoft.XMLHTTP"); }
	return;
} 

function proggy()
{
if(ppp=="-") { ppp="\\"; return ppp; }
if(ppp=="\\") { ppp="|"; return ppp; }
if(ppp=="|") { ppp="/"; return ppp; }
if(ppp=="/") { ppp="-"; return ppp; }
return;
}
 

function wh_loadFinish() 
{ 
	if(wh_callBack=="") { return; } 
	
	wherrelz_updateStatus("", wh_callBack);

	if(wh_oReq!=null && wh_oReq.readyState!=null && wh_oReq.readyState==4)
	{ 
		if(wh_oReq.status==200) 
		{ 
			document.getElementById(wh_callBack).innerHTML=wh_oReq.responseText; 
			wh_oReq=null;
			window.status="";
			clearInterval(myInty);
			wh_manageLoader(); 
		}
		else
		{
		    document.getElementById(wh_callBack).innerHTML="Unable to load. Please enable Active Scripting."; 
			wh_oReq=null;
			window.status="";
			clearInterval(myInty);
			wh_manageLoader(); 
		}
	}
    return;
} 

function wherrelz_addLoader(DivName, TitleName) 
{ 
	var i=0; 
	i=wh_divname.length; 
	wh_divname[i]=DivName; 
	wh_titlename[i]=TitleName; 
	//if(wh_calledBefore==0) { wh_calledBefore=1; wh_manageLoader(); } 
	wh_manageLoader();
	return;
}

function wherrelz_updateStatus(x,y)
{
    window.status="Working... " + proggy();
    
    if(y=="BodyDiv")
	{
	    // If y is not BodyDiv, its probably a minor component elsewhere within the page
	    // This IF clause should not be removed.
	    
	    document.getElementById("BodyDiv").innerHTML="<table width='100%' height='500'><tr><td width='100%' height='500' align=center valign=middle><div style='width: 300px; height: 50px; padding: 26px; background-color: #336699; color: #ffffff; font-family: arial;'><big><b style='font-family: arial;'>Loading...</b></big><br>Working " + proggy()+ "</div></td></tr></table>";
	}
}


function wh_loadScript(x, wh_callBackDiv, wh_titleWantedDiv) 
{ 
    try { clearInterval(myInty); } catch(efjnkejf) { }
	if(wh_callBackDiv=="" && wh_titleWantedDiv=="") { return; }
    if (typeof wh_oReq=='undefined' || wh_oReq==null) { wh_generateXMLHTTP(); }

    try {
	if(wh_callBackDiv=="BodyDiv")
	{
	    document.getElementById("BodyDiv").innerHTML="<table width='100%' height='500'><tr><td width='100%' height='500' align=center valign=middle><div style='width: 300px; height: 50px; padding: 26px; background-color: #336699; color: #ffffff; font-family: arial;'><big><b style='font-family: arial;'>Loading...</b></big></div></td></tr></table>";
	}
	else
	{
	    document.getElementById(wh_callBackDiv).innerHTML="Loading...";
	}
	} catch(eek1) { }
	
	wh_callBack=wh_callBackDiv; 
	wh_titleWanted=wh_titleWantedDiv; 
	wh_oReq.onreadystatechange=wh_loadFinish; 
	myInty=setInterval("wh_loadFinish();", 200);
	wherrelz_updateStatus("Sending Request for "+x,wh_callBackDiv);
	
	wh_oReq.open("POST", x, true, "", ""); 
	try { wh_oReq.send(''); } catch(eek) { } 
	return;
} 



// BASE64 and BACK

function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}

function decode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}

// End of base64 and back...
///document.onload=setTimeout("wherrelz_load('');",1000);