var requestTimer;
var MAXIMUM_WAITING_TIME = 10000;


function ajaxLogin(thisform)
{ 
   var url = 'login.asp';
   var toSend = getFormValues(thisform); 
   responseHandler = loginResponseHandler;
   xmlPost(url, toSend, responseHandler);
   clearFormValues(thisform);
   scrollme();
   document.getElementById("ajaxSection").focus();
}

function ajaxPublicLogin(thisform)
{ 
   var url = 'login.asp';
   var toSend = getFormValues(thisform); 
   responseHandler = publicloginResponseHandler;
   xmlPost(url, toSend, responseHandler);
   clearFormValues(thisform);
//   scrollme();
   document.getElementById("ajaxSection").focus();
}

function editCentre(centreID)
{ 
   var url = 'centre_fetch.asp';
   var toSend = 'cID='+centreID+'&m=e'; 
   responseHandler = centreResponseHandler;
   xmlPost(url, toSend, responseHandler);
   scrollme();
   document.getElementById("ajaxSection").focus();
}

function viewCentre(centreID)
{ 
   var url = 'centre_fetch.asp';
   var toSend = 'cID='+centreID+'&m=v'; 
   responseHandler = centreResponseHandler;
   xmlPost(url, toSend, responseHandler);
   scrollme();
   document.getElementById("ajaxSection").focus();
}

function imagesCentre(centreID)
{ 
   var url = 'centre_images.asp';
   var toSend = 'cID='+centreID+'&m=v'; 
   responseHandler = centreResponseHandler;
   xmlPost(url, toSend, responseHandler);
   scrollme();
   document.getElementById("ajaxSection").focus();
}

function plantCentre(centreID)
{ 
   var url = 'centre_plant.asp';
   var toSend = 'cID='+centreID+'&m=v'; 
   responseHandler = centreResponseHandler;
   xmlPost(url, toSend, responseHandler);
   scrollme();
   document.getElementById("ajaxSection").focus();
   
}

function emergencyCentre(centreID)
{ 
   var url = 'centre_emergency.asp';
   var toSend = 'cID='+centreID+'&m=v'; 
   responseHandler = emergencyResponseHandler;
   xmlPost(url, toSend, responseHandler);
   scrollme();
   document.getElementById("ajaxSection").focus();
}

function survey2008Centre(centreID)
{ 
   var url = 'centre_survey_2008.asp';
   var toSend = 'cID='+centreID+'&m=e'; 
   responseHandler = centreResponseHandler;
   xmlPost(url, toSend, responseHandler);
   scrollme();
   document.getElementById("ajaxSection").focus();
}

function editUser(userID)
{ 
   var url = 'user_fetch.asp';
   var toSend = 'cID='+userID+'&m=e'; 
   responseHandler = centreResponseHandler;
   xmlPost(url, toSend, responseHandler);
   scrollme();
   document.getElementById("ajaxSection").focus();
}

function xmlPost(url, toSend, responseHandler)
{
    var swappableSection = document.getElementById('ajaxSection');
    str="<div style='text-align: center;'><img src='../img/rotation.gif'>&nbsp;Loading</div>";
    swappableSection.innerHTML = str; 
    toSend = toSend + "&sid="+Math.random();
    xmlOpen("POST", url, toSend, responseHandler);
}


function xmlUpdate(url, toSend, responseHandler)
{
    var swappableSection = document.getElementById('updateSection');
    str="<div style='text-align: center;'><img src='../img/rotation.gif'>&nbsp;Updating</div>";
    swappableSection.innerHTML = str; 
    toSend = toSend + "&sid="+Math.random();    
    xmlOpen("POST", url, toSend, responseHandler);
}



 function xmlOpen(method, url, toSend, responseHandler)
 {  
     if (window.XMLHttpRequest)
     {
         req = new XMLHttpRequest();
     }
     else if (window.ActiveXObject)
     {
       try
        {
          req=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
          req=new ActiveXObject("Microsoft.XMLHTTP");
        }
     }
     
     if(req)
     {
         req.onreadystatechange = responseHandler;
         req.open(method, url, true);
         req.setRequestHeader("content-type","application/x-www-form-urlencoded");
         req.send(toSend);
         requestTimer = window.setTimeout(function() {
           if ( callInProgress(req) ) {
             req.abort();          
             reportTimeout();
            }
           },
           MAXIMUM_WAITING_TIME); 
     }
     else
     {
         alert('Your browser does not seem to support XMLHttpRequest.');
     }
 } 

 function loginResponseHandler()
 {
     // Make sure the request is loaded (readyState = 4)
     if (req.readyState != 4){ 
        return ;
     }

     window.clearTimeout(requestTimer);

     if (req.readyState == 4)
     {
         // Make sure the status is "OK"
         if (req.status == 200)
         {
             var swappableSection = document.getElementById('ajaxSection');
             var str = req.responseText;
             if (str == "login"){
               window.location = "main.asp";
             }
             else{
             swappableSection.innerHTML = str;  
             }
         }
         else
         {
             alert("There was a problem retrieving the data:\n" +
                     req.status + ": " + req.statusText);
         }
     }
 } 

 function publicloginResponseHandler()
 {
     // Make sure the request is loaded (readyState = 4)
     if (req.readyState != 4){ 
        return ;
     }

     window.clearTimeout(requestTimer);

     if (req.readyState == 4)
     {
         // Make sure the status is "OK"
         if (req.status == 200)
         {
             var swappableSection = document.getElementById('ajaxSection');
             var str = req.responseText;
             if (str == "login_plant"){
               window.location = "plant_room/default.asp";
             }
             else if (str == "login_emergency"){
               window.location = "emergency_procedures/default.asp";
             }
             else{
             swappableSection.innerHTML = str;  
             }
         }
         else
         {
             alert("There was a problem retrieving the data:\n" +
                     req.status + ": " + req.statusText);
         }
     }
 } 

 function centreResponseHandler()
 {
     // Make sure the request is loaded (readyState = 4)
     if (req.readyState != 4){ 
        return ;
     }

     window.clearTimeout(requestTimer);

     if (req.readyState == 4)
     {
         // Make sure the status is "OK"
         if (req.status == 200)
         {
             var swappableSection = document.getElementById('ajaxSection');
             var str = req.responseText;
             swappableSection.innerHTML = str;  
             evalJSinInnerHTML(swappableSection);   
         }
         else
         {
             alert("There was a problem retrieving the data:\n" +
                     req.status + ": " + req.statusText);
         }
     }
 } 

 function updateResponseHandler()
 {
     // Make sure the request is loaded (readyState = 4)
     if (req.readyState != 4){ 
        return ;
     }

     window.clearTimeout(requestTimer);

     if (req.readyState == 4)
     {
         // Make sure the status is "OK"
         if (req.status == 200)
         {
             var swappableSection = document.getElementById('updateSection');
             var str = req.responseText;
             swappableSection.innerHTML = str;  
             evalJSinInnerHTML(swappableSection);   
         }
         else
         {
             alert("There was a problem retrieving the data:\n" +
                     req.status + ": " + req.statusText);
         }
     }
 } 

 function emergencyResponseHandler()
 {
     // Make sure the request is loaded (readyState = 4)
     if (req.readyState != 4){ 
        return ;
     }

     window.clearTimeout(requestTimer);

     if (req.readyState == 4)
     {
         // Make sure the status is "OK"
         if (req.status == 200)
         {
             var swappableSection = document.getElementById('ajaxSection');
             var str = req.responseText;
             swappableSection.innerHTML = str;  
             Lightview.updateViews();
  
         }
         else
         {
             alert("There was a problem retrieving the data:\n" +
                     req.status + ": " + req.statusText);
         }
     }
 } 



function getFormValues(fobj,valFunc) 
{ 
   var str = ""; 
   var valueArr = null; 
   var val = ""; 
   var cmd = ""; 
   for(var i = 0;i < fobj.elements.length;i++) 
   { 
       switch(fobj.elements[i].type) 
       { 
           case "text": 
                if(valFunc) 
                { 
                    //use single quotes for argument so that the value of 
                    //fobj.elements[i].value is treated as a string not a literal 
                    cmd = valFunc + "(" + 'fobj.elements[i].value' + ")"; 
                    val = eval(cmd) 
                } 
                str += fobj.elements[i].name + 
                 "=" + escape(fobj.elements[i].value) + "&"; 
                 break; 
           case "hidden":
                str += fobj.elements[i].name + 
                 "=" + escape(fobj.elements[i].value) + "&"; 
                 break; 
           case "password":
                str += fobj.elements[i].name + 
                 "=" + escape(fobj.elements[i].value) + "&"; 
                 break; 

           case "select-one": 
                str += fobj.elements[i].name + 
                "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&"; 
                break; 
       } 
   } 
   str = str.substr(0,(str.length - 1)); 
   return str; 
}

function clearFormValues(fobj,valFunc) 
{ 
   var str = ""; 
   var valueArr = null; 
   var val = ""; 
   var cmd = ""; 
   for(var i = 0;i < fobj.elements.length;i++) 
   { 
       switch(fobj.elements[i].type) 
       { 
           case "text": 
                fobj.elements[i].value = '';
                break; 
           case "password": 
                fobj.elements[i].value = '';
                break; 
           case "hidden":
                if(str.indexOf("_qty") != -1){
                  fobj.elements[i].value = 0;
                }
                break; 
           case "select-one": 
                break; 
       } 
   } 
   str = str.substr(0,(str.length - 1)); 
   return str; 
}

function clearAllFormValues(fobj, DivVal, valFunc) 
{ 
   var str = ""; 
   var valueArr = null; 
   var val = ""; 
   var cmd = ""; 
   for(var i = 0;i < fobj.elements.length;i++) 
   { 
       switch(fobj.elements[i].type) 
       { 
           case "text": 
                fobj.elements[i].value = '';
                break; 
           case "password": 
                fobj.elements[i].value = '';
                break; 
           case "hidden":
                if(str.indexOf("_qty") != -1){
                  fobj.elements[i].value = 0;
                }
                break; 
           case "select-one": 
                break; 
       } 
   } 
   str = str.substr(0,(str.length - 1)); 
   return str; 
}

function scrollme(){
dh=document.body.scrollHeight
ch=document.body.clientHeight

//if(dh>ch){
moveme=dh-ch;
moveme=10000;
window.scrollTo(0,moveme);

//}
}


function evalJSinInnerHTML(oObj) {
	if(!navigator.userAgent.indexOf("Firefox") > -1) {
		var aScripts = oObj.getElementsByTagName('script');
		for(var i = 0, len = aScripts.length; i < len; i++) {
			if(aScripts[i].src && aScripts[i].src !== '') {
				var oScr = document.createElement('script');  
				oScr.src = aScripts[i].src;  
				document.body.appendChild(oScr);
				oScr = null;
			} else {
				try {
					eval(aScripts[i].text);
				} catch(e) {
					alert("Problem executing: "+aScripts[i].text);
				}
			}
		}
	}
	oObj = null;
}
