﻿// JavaScript Geoscape Tree Util
// Anand J.
// Geoscape
// Jan 2010

var reqSent = false;
var confReqSent = false;
var reqID = ""; 

var Geoscape = Geoscape ? Geoscape : {};

Geoscape.GIS = Geoscape.GIS ? Geoscape.GIS : function()
{    
    function displayConfirm(xmlObj)
    {
        if (xmlObj.readyState != 4)
		{
			reqSent = false;
			return;
		}
        
        if (!xmlObj.responseText)
		{
			reqSent = false;
			return;
		}
        
        if (xmlObj.responseText.charAt(0) != '0')
        {
            alert(xmlObj.responseText);  
			reqSent = false;			
            return false;
        }
        
        else
        {
            reqID = xmlObj.responseText.toString().substring(2);
            document.getElementById('registrationPane').style.display = "none";
            document.getElementById('registrationConfPane').style.display = "";
        }
        
        return true;
    }
    
    function displayResult(xmlObj)
    {
        if (xmlObj.readyState != 4) 
		{
			confReqSent = false;	
			return;
		}
        
        if (!xmlObj.responseText) 
		{
			confReqSent = false;
			return;
		}
        
        if (xmlObj.responseText.charAt(0) != '0')
        {
            alert(xmlObj.responseText);            
			confReqSent = false;
            return false;
        }
        
        else
        {
            var mainPane = document.getElementById("mainPane");
            var registrationPane = document.getElementById("registrationConfPane");
            
            var thanksPane = document.createElement("DIV");
            
            thanksPane.id = "thanksPane";
            
            thanksPane.innerHTML = "Thank you for registering...<br/><br/>You should be receiving an email from us shortly.";
            
            mainPane.replaceChild(thanksPane, registrationPane);
        }
        
        return true;
    }
	
    function getMainParams()
    {        
        var queryString = "firstName=" + document.getElementById("i01").value + "&lastname=" + document.getElementById("i02").value + "&companyname=" + document.getElementById("i03").value + "&jobtitle=" + document.getElementById("i04").value+ "&phone=" + document.getElementById("i05").value+ "&ext=" + document.getElementById("i06").value+ "&fax=" + document.getElementById("i07").value+ "&email=" + document.getElementById("i08").value+ "&address1=" + document.getElementById("i09").value+ "&address2=" + document.getElementById("i10").value+ "&city=" + document.getElementById("i11").value+ "&state=" + document.getElementById("i12").value+ "&zip=" + document.getElementById("i13").value + "&sdate=" + document.getElementById("i14").value;
        
        return queryString;
    }
    
    function getAdditionalUsers()
    {
        var u = 1;
        
        var queryString = "";
        
        for (var i = 1; i <= 5; i++)
        {
            var o1 = document.getElementById("un" + i).value;
            var o2 = document.getElementById("uj" + i).value;
            var o3 = document.getElementById("ut" + i).value;
            var o4 = document.getElementById("ue" + i).value;
            
            if (!o1 && !o2 && !o3 && !o4) continue;
            
            if (queryString) queryString += "&";
            
            queryString += "ADU" + u + "=" + o1;
            queryString += "&ADJ" + u + "=" + o2;
            queryString += "&ADP" + u + "=" + o3;
            queryString += "&ADE" + u + "=" + o4;
            
            u++;
        }
        
        return queryString;
    }
 
    var public = {    
    
        Register:function()
        {
	        if (reqSent) return;

            var XMLObj;
            
            if (window.XMLHttpRequest)
			{
				XMLObj = new XMLHttpRequest();
			}
			
			else if (window.ActiveXObject)
			{
				XMLObj = new ActiveXObject("Microsoft.XMLHTTP");
			}
			
			if (XMLObj)
			{
			    var url = "register.gis4";
			    
			    var params = getMainParams();
			    
			    var addon = getAdditionalUsers();
			    
			    if (addon) params += "&" + addon;
			    
				XMLObj.onreadystatechange = function() {
				    displayConfirm(XMLObj);
				};
				XMLObj.open("POST", url, true);				
				XMLObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				XMLObj.setRequestHeader("Content-length", params.length);
				XMLObj.setRequestHeader("Connection", "close");
				XMLObj.send(params);
				reqSent = true;
			}
        },
        
        ConfRegistration:function()
        {
	        if (confReqSent) return;
            
            var XMLObj;
            
            if (window.XMLHttpRequest)
			{
				XMLObj = new XMLHttpRequest();
			}
			
			else if (window.ActiveXObject)
			{
				XMLObj = new ActiveXObject("Microsoft.XMLHTTP");
			}
			
			if (XMLObj)
			{
			    var url = "registerConf.gis4";
			    var params = getMainParams()+"&reqID="+reqID;
			    var addon = getAdditionalUsers();
			    if (addon) params += "&" + addon;
				
				XMLObj.onreadystatechange = function() {
				    displayResult(XMLObj);
				};
				XMLObj.open("POST", url, true);				
				XMLObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				XMLObj.setRequestHeader("Content-length", params.length);
				XMLObj.setRequestHeader("Connection", "close");
				XMLObj.send(params);
				confReqSent = true;
			}
        }
    }
    
    return public;
}();