﻿// 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('secondPane').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 + "&sdma=" + encodeURIComponent(document.getElementById("i15").options[document.getElementById("i15").selectedIndex].text) + "&sdmaid=" + document.getElementById("i15").value;
        
        var heard = 0;
        
        var hearList = document.getElementsByName("rSource");

        for (var i = 0; i < hearList.length; i++)
        {
            if (hearList[i].checked == true)
            {
                heard = hearList[i];
                break;
            }
        }
        
        queryString += "&source=" + heard.parentNode.nextSibling.innerHTML;
        
        var source = document.getElementById('iRef');
        
        if (!source.disabled) queryString += "&referrer=" + source.value;

        return queryString;
    }
	function addDMAList()
	{
		var dmaText = new Array("Fresno - Visalia, CA", 
				"West Palm Beach - Ft. Pierce, FL", 
				"Albuquerque - Santa Fe, NM", 
				"Harrisburg - Lancaster - Lebanon - York, PA", 
				"Austin, TX");
				
		/*var dmaText = new Array("Birmingham (Anniston & Tuscaloosa), AL", "Fresno - Visalia, CA", 
				"West Palm Beach - Ft. Pierce, FL", "Louisville, KY", "New Orleans, LA", 
				"Grand Rapids - Kalamazoo - Battle Creek, MI", "Greensboro - High Point - Winston Salem, NC", 
				"Albuquerque - Santa Fe, NM", "Las Vegas, NV", "Oklahoma City, OK", 
				"Harrisburg - Lancaster - Lebanon - York, PA", "Memphis, TN", "Austin, TX", 
				"Norfolk - Portsmouth - Newport News, VA");*/
		var dmaVal = new Array("866", "548", "790", "566", "635");
		//var dmaVal = new Array("630", "866", "548", "529", "622", "563", "518", "790", "839", "650", "566", "640", "635", "544");
		var tmpNode = document.getElementById('i15');
		tmpNode.length = 0;
		for(var x = 0; x < dmaText.length; x++)
		{
			tmpNode.options[tmpNode.options.length] = new Option(dmaText[x], dmaVal[x]);
		}
	}
    function removeDMA(st)
	{
		var val = -1;
		switch(st)
		{
			case "nv": case "nevada":
				val = "839";
				break;
			case "tx": case "texas":
				val = "635";
				break;
			case "ca": case "california":
				val = "866";
				break;
			case "mi": case "michigan":
				val = "563";
				break;
			case "pa": case "pennyslvania":
				val = "566";
				break;
			case "va": case "virginia":
				val = "544";
				break;
			case "fl": case "florida":
				val = "548";
				break;
			case "nm": case "new mexico": case "newmexico":
				val = "790";
				break;
			case "al": case "alabama":
				val = "630";
				break;
			case "tn": case "tennessee": case "tennesse":
				val = "640";
				break;
			case "ok": case "oklahoma":
				val = "650";
				break;
			case "nc": case "north carolina": case "northcarolina":
				val = "518";
				break;
			case "la": case "louisiana": case "louisana":
				val = "622";
				break;
			case "ky": case "kentucky":
				val = "529";
				break;
		}
		if(val != "")
		{
			var tmpNode = document.getElementById("i15");
			for (var x = 0; x < tmpNode.options.length; x++)
			{
				if(tmpNode[x].value == val)
				{
					tmpNode.remove(x);
					break;
				}
			}
		}
	}
    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;
			}
        },
		FilterDMA:function()
		{
			removeDMA(document.getElementById("i12").value.toLowerCase());
		},
		BuildDMA:function()
		{
			addDMAList();
		}
    }
    
    return public;
}();
