IE4 = document.all;
function newConfirm(title,mess,icon,defbut,mods) {
   if (IE4) {
      icon = (icon==0) ? 0 : 2;
      defbut = (defbut==0) ? 0 : 1;
      retVal = makeMsgBox(title,mess,icon,4,defbut,mods);
      retVal = (retVal==6);
   }
   else {
      retVal = confirm(mess);
   }
   return retVal;
}



function getInnerText (node) {
   if (typeof node.textContent != 'undefined') {
     return node.textContent;
   }
   else if (typeof node.innerText != 'undefined') {
     return node.innerText;
   }
   else if (typeof node.text != 'undefined') {
     return node.text;
   }
   else {
     switch (node.nodeType) {
       case 3:
       case 4:
         return node.nodeValue;
         break;
       case 1:
       case 11:
         var innerText = '';
         for (var i = 0; i < node.childNodes.length; i++) {
           innerText += getInnerText(node.childNodes[i]);
         }
         return innerText;
         break;
       default:
         return '';
     }
   }
}

var zipCode;
function formData2QueryString(docForm) {
/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
 * Original code by Matthew Eernisse (mde@fleegix.org)
 * Additional bugfixes by Mark Pruett (mark.pruett@comcast.net)
*/
// The var docForm should be a reference to a <form>
  var submitContent = '';
  var formElem;
  var lastElemName = '';

  for (i = 0; i < docForm.elements.length; i++) {

    formElem = docForm.elements[i];
    switch (formElem.type) {
      // Text fields, hidden form elements
      case 'text':
      case 'hidden':
      case 'password':
      case 'textarea':
      case 'select-one':
        submitContent += formElem.name + '=' + escape(formElem.value) + '&'
        break;

      // Radio buttons
      case 'radio':
        if (formElem.checked) {
          submitContent += formElem.name + '=' + escape(formElem.value) + '&'
        }
        break;

      // Checkboxes
      case 'checkbox':
        if (formElem.checked) {
          // Continuing multiple, same-name checkboxes
          if (formElem.name == lastElemName) {
            // Strip of end ampersand if there is one
            if (submitContent.lastIndexOf('&') == submitContent.length-1) {
              submitContent = submitContent.substr(0, submitContent.length - 1);
            }
            // Append value as comma-delimited string
            submitContent += ',' + escape(formElem.value);
          }
          else {
            submitContent += formElem.name + '=' + escape(formElem.value);
          }
          submitContent += '&';
          lastElemName = formElem.name;
        }
        else {
        // unchecked - Hacked here to insert unchecked boxes for the Web service call.
          submitContent += formElem.name + '=off&';
        }
        break;
    }
  }
  // Remove trailing separator
  submitContent = submitContent.substr(0, submitContent.length - 1);
  //document.write(submitContent)
  return submitContent;
}
function getNewHTTPObject()
    {
            //Create the right control based on browser
            var xmlHTTP=false;
            /*@cc_on @*/
            /*@if (@_jscript_version >= 5)
            // JScript gives us Conditional compilation, we can cope with old IE versions.
            // and security blocked creation of the objects.
             try {
              xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP");
             } catch (e) {
              try {
               xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
              } catch (E) {
               xmlHTTP = false;
              }
             }
            @end @*/
            if (!xmlHTTP && typeof XMLHttpRequest!='undefined') {
                try {
                    xmlHTTP = new XMLHttpRequest();
                } catch (e) {
                    xmlHTTP=false;



                }
            }
            if (!xmlHTTP && window.createRequest) {
                try {
                    xmlHTTP = window.createRequest();
                } catch (e) {
                    xmlHTTP=false;
                }
            }
    return xmlHTTP;
    }

function btn_click ()
    {
        //Loop through Form Elements
        var strPost = '';
        //whatever form name is used
        strPost = formData2QueryString(document.forms.frmZip); 
		zipCode = document.forms.frmZip.postCode.value;

        //Call the web service
       //get the xmlhttp object
        xmlHTTP = getNewHTTPObject()

        //Call the web service  
        xmlHTTP.open ("POST", "/OnyxProxy/OnyxProxy?_branch=getCampaign", true)
      	xmlHTTP.onreadystatechange = callbackFunction;
        xmlHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded") ;
		//alert(strPost);
        xmlHTTP.send(strPost);
		document.getElementById("validateResult").innerHTML = "Please wait, we're actively processing your request..."
        //span1.innerHTML = ""
    }

function callbackFunction()
    {
     
    // if xmlhttp shows "loaded"
    if (xmlHTTP.readyState==4)
      {
//window.alert(xmlHTTP.readyState);
	//window.alert(xmlHTTP.status);
      // if "OK"
      if (xmlHTTP.status==200)
        {
			//alert("BEFORE getting Response Doc");

			var responseDocument;
			

				responseDocument = xmlHTTP.responseXML.documentElement;
        
			//alert("AFTER getting Response Doc");
			//alert(xmlHTTP.responseText);
			
			//Get the result element
			
			var resultElement = responseDocument.getElementsByTagName("result")[0];
			//alert(resultElement);
			if(resultElement == null)
			{
				//This should never happen, but better to check
				//Display an error message
				//window.alert("resultElement null");
				return;
			}
			else
			{
			//window.alert("resultElement not null");
			}
			
			//Get the text of the result element
			var result = getInnerText(resultElement);
			//window.alert("resultElement = " + result);
			
			//Get the pin element
			var pinElement = responseDocument.getElementsByTagName("pin")[0];
			if(pinElement == null)
			{
				//This should never happen, but better to check
				//Display an error message
				//window.alert("pinElement null");
				return;
			}
			else
			{
				//window.alert("pinElement not null");
			}
			
			//Get the text of the pin element
			var pin = getInnerText(pinElement);
			//window.alert("pin = " + pin);
			
			
			//If the result is true, then the XML should contain valid data for the supplied pin
			if(result == "true")
			{
					var planCodeElement = responseDocument.getElementsByTagName("planCode")[0];
					if(planCodeElement == null)
					{
						document.location="exception.html"; 
						return;
					}
					var planCode = getInnerText(planCodeElement);
					//alert( "planCode = " + planCode);
					
					//Redirect to request info	
					var plan = planCode.toLowerCase();
					if (plan == "warbs") {plan = "wa"}
					//Set plancode in the cookie
               		//rerender the refering page
					if (planCode == "WAANH")
					{
						document.getElementById("validateResult").innerHTML = "The zip code you entered is served by our affiliate, <a href='/about/leavingDisclaimerAsuris.jsp' target='_new'>Asuris Northwest Health</a>.  Visit them now for more information."
					}
					else
					{
						//alert("Before setting cookie is: " + getCookie ("PLANCODE"));
						setCookie ("PLANCODE", planCode,30);
						setCookie ("ZIPCODE", zipCode,30);
						//alert("After setting cookie is: " + getCookie ("PLANCODE"));
						//planCode will be returned at OR, ID, UT, WARBS, WAANH
						
						// broke out all urls into a separte js file: regenceSites.js
						var type = '';
						type = getParameter('type');
						var audience = '';
						audience = getParameter('a');
						//alert(type);
						switch (type){
							case "medical":
								gotoMedical(planCode);
								break;
							case "short":
								gotoShortTerm(planCode);
								break;
							case "dental":
								gotoDental(planCode);
								break;
							case "medicare":
								gotoMedicare(planCode);
								break;
							case "seminars":
								gotoSeminars(planCode);
								break;
							case "employer":
								goToArea(plan,type);
								break;
							case "agent":
								if (plan == "wa")
								{ goToArea(plan,"broker"); }
								else { goToArea(plan,"agent");}
								break;
							case "provider":
								goToArea(plan,type);
								break;
							case "qcsi":
								gotoQCSI(plan);
								break;
							case "members":
								gotoMemberResources();
								break;
							case "advantages":
								gotoRegenceAdvantages();
								break;
							case "hsacalcindividual":
								gotoHSACalcIndividual();
								break;
							case "hsacalcemployee":
								gotoHSACalcEmployee();
								break;
							case "hsacalcemployer":
								gotoHSACalcEmployer()
								break;
							case "hsaproductpageindividual":
								//audience = getParameter('a')
								gotoHSAProductPageIndividual(audience) // optional 'audience' represents Agent viewing individual
								break;
							case "hsaproductpagegroup":
								//audience = getParameter('a')
								gotoHSAProductPageGroup(audience) // optional 'audience' represents Agent viewing employer	
								break;
							case "hsaagenttoolkit":
								gotoHSAAgentToolkit()
								break;
							case "cobra":
								window.location.replace("/cobra/index.jsp");
								break;
							default :
								window.location.replace("/" + planCode + "/index.jsp");	
								//document.location="/" + planCode + "/index.jsp";
								break;
						}
					}
							
			}
			else //result is false, so use the error number to determine what to do
			{
				var errorNumberElement = responseDocument.getElementsByTagName("errorNumber")[0];
				if(errorNumberElement != null)
				{
					var errorNumber = getInnerText(errorNumberElement);
					//window.alert( "errorNumber = " + errorNumber);
				}
				else
				{
					//Should not happen, but better to handle the case
					//window.alert("errorNumber element is null");
					return;
				}
				var errorDescriptionElement = responseDocument.getElementsByTagName("errorDescription")[0];
				if(errorDescriptionElement != null)
				{
					var errorDescription = getInnerText(errorDescriptionElement);
					//document.getElementById("validateResult").innerHTML = errorDescription
					document.getElementById("validateResult").innerHTML = "We're sorry; Regence does not offer health plans in your area."
					//window.alert("errorDescription = " + errorDescription);
				}
				else
				{
					//Should not happen, but better to handle the case
					//window.alert("errorDescriptionElement is null");
					return;
				}
				
				//Invalid Pin
				if(errorNumber == "224514")
				{
					//document.location="wrongPIN.html"; 
				}
				//Invalid plan code
				else if(errorNumber == "224515")
				{
					//document.location="wrongZIP.html"; 
				}		
				else //General error which is 225416
				{
					document.getElementById("validateResult").innerHTML = "Sorry, our system is not working correctly" 
				}
			}
        }
      else
        {
            //GetCampaignResult.innerHTML = "<b>There's been an unexpected error.</b><p>  Please contact 1-800-Regence to complete your request."
			$('#frmZip fieldset').hide(); 
			var errMsg = 'Sorry, our system is temporarily down while we make updates and improvements.'
			$('#frmZip h2').html(errMsg);
			errMsg = '<p>Please use one of the following links to find your service area:</p>'
			errMsg += '<p><a href="/about/service-areas.jsp">Interactive map</a></p>'
			errMsg += '<p><a href="/ID/">Idaho (including Asotin & Garfield Co., WA)</a> | <a href="/OR/">Oregon (including Clark Co., WA)</a> | <a href="/UT/">Utah</a> | <a href="/WARBS/">Washington (select counties)</a></p>'
			$('#frmZip div').html(errMsg);
			//document.getElementById("validateResult").innerHTML = '';
		}
      }
    }

