var aCookies2Save = new Array('customerNum', 'Salutation', 'First_Name', 'Last_Name', 'Title', 'Email', 'Organization', 'Department', 'address1', 'address2', 'City', 'Province', 'Country', 'Phone_Number1', 'Phone_Number2', 'Phone_Number3', 'Phone_Number4', 'Fax_Number1', 'Fax_Number2', 'Fax_Number2', 'Fax_Number3', 'Postal_Code1', 'Postal_Code2', 'billing_customerNum', 'billing_Salutation', 'billing_First_Name', 'billing_Last_Name', 'billing_Title', 'billing_Email', 'billing_Organization', 'billing_Department', 'billing_address1', 'billing_address2', 'billing_City', 'billing_Province', 'billing_Country', 'billing_Phone_Number1', 'billing_Phone_Number2', 'billing_Phone_Number3', 'billing_Phone_Number4', 'billing_Fax_Number1', 'billing_Fax_Number2', 'billing_Fax_Number2', 'billing_Fax_Number3', 'billing_Postal_Code1', 'billing_Postal_Code2')
var oldCookies = new Array();

function doPrevFormStep(formNumber)
{
    var f = document.forms["rdform"+formNumber];
    tcost = f.elements["totalcost"];
    if (formNumber == 822)
    {
        if  (tcost.value != 0 || tcost.value == 'undefined' || tcost.value == '')
            stepForm(-1, formNumber);
        else
            stepForm(-2, formNumber);
    }
    else
    {
        stepForm(-1, formNumber);
    }      
}
function doNextFormStep(formNumber)
{
    var f = document.forms["rdform"+formNumber];
    tcost = f.elements["totalcost"];
    if (formNumber == 822)
    {
        if  (tcost.value != 0 || tcost.value == 'undefined' || tcost.value == '')
            nextf = 1;
        else
            {
            nextf = 2; 
            currentFormStep = currentFormStep + 1;
            }
        if (nextf == 2)
        {
            if(validateStep(formNumber))
                SaveFormToCookies(document.forms['rdform'+formNumber].elements);
            else
                return false;    
        }
        else
        {    
            if(validateStep(formNumber))
            if(stepForm(nextf, formNumber))
            {
                SaveFormToCookies(document.forms['rdform'+formNumber].elements);
            }
            else
                return false;
         }
    }     
    else
    {
            nextf = 1;
            if(validateStep(formNumber))
            if(stepForm(nextf, formNumber))
            {
                SaveFormToCookies(document.forms['rdform'+formNumber].elements);
            }
            else
                return false;
    }       
}
function stepForm(direction, formNumber)
{
    newFormStep = currentFormStep + direction;
    if(newFormStep > 0)
    {
        if(formNumber == 778 && ((currentFormStep == 3 && direction == 1) || (currentFormStep == 5 && direction == -1)) )
        {
            e = document.forms["rdform"+formNumber].elements;
            for(i = 0; i < e.length; i++)
                if(e[i].name == "licenseUpdateType" && e[i].checked && e[i].value == "server")
                {
                    newFormStep = currentFormStep + (direction * 2);
                }
        }
        
        if((formNumber == 778 || formNumber == 853) & currentFormStep == 3)
        {
            e = document.forms["rdform"+formNumber].elements;
            osChecked = ""
            for(i = 0; i < e.length; i++)
                if(e[i].name == "licServerOS" && e[i].checked)
                    osChecked = e[i].value.toUpperCase();
            // validate sentinel key or hostId depending on OS checked
            if(osChecked.indexOf("WINDOWS") > -1)
            {
                if(e["licServerSentinalKeyNum"].value.length != 8)
                {
                    alert("Sentinel Key must be 8 numbers in length.");
                    return;
                }
                if(e["licServerSentinalKeyNum"].value.substring(0,3) != "371")
                {
                    alert("Sentinel Key must begin with 371.");
                    return;
                }
            }
            else if(osChecked.indexOf("UNIX") > -1)
            {
                if(e["licServerHostID"].value == "")
                {
                    alert("FlexLM HostID field may not be blank.");
                    return;
                }
            }
        }    
        currentPanel = document.getElementById("formStep"+currentFormStep);
        formStepPanel = document.getElementById("formStep"+newFormStep);
        if(formStepPanel != null)
        {
            formStepPanel.className = "formStep";
            currentPanel.className = "formStepHidden";
            currentFormStep = newFormStep;
            if(currentFormStep > 1)
                document.getElementById("rdform"+formNumber+"_back").disabled = false;
            else
                document.getElementById("rdform"+formNumber+"_back").disabled = true;
            if(document.getElementById("formStep"+(currentFormStep+1)))
            {
                document.getElementById("rdform"+formNumber+"_next").disabled = false;
                document.getElementById("rdform"+formNumber+"_submit").disabled = true;
            }
            else
            {
                document.getElementById("rdform"+formNumber+"_next").disabled = true;
                document.getElementById("rdform"+formNumber+"_submit").disabled = false;
            }
        }
    }
    return true;
}
function validateStep(formNumber)
{
    var result = true;
    var arrTemp;
    var arrFields = new Array();
    var f = document.forms["rdform"+formNumber];
    var elem;
    var nBreaker = 1;
  
    if(currentFormStep == va)
        if(validateAttendees)
            return validateAttendees(f);
    cp = document.getElementById("billing_confirm_page");
    if(cp && (currentFormStep == 5 || (currentFormStep == 4 && formNumber == 822)) && nextf == 1)
    {
    f.elements["card_number"].className = "formElements";
    f.elements["expiry_date"].className = "formElements";
    f.elements["expiry_year"].className = "formElements";
    f.elements["card_holder"].className = "formElements";
    f.elements["PO_number"].className = "formElements";
        if(f.elements["pay_method"].value == "V" || f.elements["pay_method"].value == "M" || f.elements["pay_method"].value == "A")
        {
            if(f.elements["card_number"].value == "")
            {
            f.elements["card_number"].className = "invalidElement";
            result = false;
            }
            
            if(f.elements["expiry_date"].value == "" || f.elements["expiry_year"].value == "")
            {
            f.elements["expiry_date"].className = "invalidElement";
            f.elements["expiry_year"].className = "invalidElement";
            result = false;
            }
            
            if(f.elements["card_holder"].value == "")
            {
            f.elements["card_holder"].className = "invalidElement";
            result = false;
            }
        }
        if(f.elements["pay_method"].value == "B" || f.elements["pay_method"].value == "C")
        {
            if(f.elements["PO_number"].value == "")
            {
                f.elements["PO_number"].className = "invalidElement";
                result = false;
            }
        }
        if(!result)
        {
                        
            
            alert('Please complete all mandatory fields.');
            
            
            return result;
        }
    }
    for(var i = 0; elem = f.elements[i]; i++)
    {
        //Select elements for the current step
        if(elem.name != "multiStepBreaker" && nBreaker  == currentFormStep)
        {
            if(elem.name == "listOfFormFields")
            {
                 arrTemp = elem.value.split('|');
                 if(arrTemp[2] != "customtext")
                 {
                    arrFields[arrFields.length] = new Field(arrTemp[0], arrTemp[1], arrTemp[2], f.elements[arrTemp[1]].value);
                 } 
            }
        }
        //Re-set breaker counter
        if(elem.name == "multiStepBreaker")
        {
            nBreaker = parseInt("0" + elem.value, 10) + 1;
        }        
        //discard the rest of the elements as they belong to nextStep
        if(nBreaker > currentFormStep)
            break;
    } 
    if (nextf == 2)
        currentFormStep = currentFormStep - 1;
    result = submitForm("rdform"+formNumber, arrFields); 
    if((result && cp) || nextf == 2)     
    {
                
        
        if  (nextf == 1)
        {
            s = "Payment Method: " + f.elements["pay_method"].options[f.elements["pay_method"].selectedIndex].text + "<br />";
            s += "Card Number: " + f.elements["card_number"].value + "<br />";
            s += "Expiry: " + f.elements["expiry_date"].value + "/" +  f.elements["expiry_year"].value + "<br />";
            s += "Card Holder: " + f.elements["card_holder"].value + "<br />";
            s += "PO Number: " + f.elements["PO_number"].value + "<br />";
            s += "Comments: " + f.elements["comments"].value + "<br /><p>&nbsp;</p>";
            
            cp.innerHTML = s;
        }
        else
        {
            s =  "Payment Method: N/A (We can add any text here)<br />";
            s += "Card Number: N/A<br />";
            s += "Expiry: N/A<br />";
            s += "Card Holder: N/A<br />";
            s += "PO Number: N/A<br />";
            s += "Comments: N/A<br /><p>&nbsp;</p>";
            
            cp.innerHTML = s;
        }        
        
        
        cp.innerHTML = s;
    }
    return result;
}

function validateElement()
{
}

function validateAnyValue(value)
{
    if(value == null)
        return false;
    value = value + "";
    if(value.length < 1)
        return false;
    else
        return true;
}
function validateEmail(value)
{
    if(value == null)
        return false;
    var x = value + "";
    var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    return filter.test(x);    
}
function validateNumber(value)
{
    return !isNaN(value);
}
function validPhoneNumber(value)
{
    x = value + "";
    if(x == "")
        return false;
    var filter1  = /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$/;
    return filter1.test(x);    
}
function validIPhoneNumber(value)
{
    if(value == null)
        return false;
    else
        return true;
}
function validPostalCode(value)
{
    if(value == null)
        return false;
    var x = value + "";
    // postal code, no space
    // var filter1  = /^[A-Z][0-9][A-Z][A-Z][0-9][A-Z]$/i;
    var filter1  = /^[A-Z][0-9][A-Z][0-9][A-Z][0-9]$/i;
    // postal code, with space
    //var filter2  = /^[A-Z][0-9][A-Z] [A-Z][0-9][A-Z]$/i;
    //var filter2  = /^$/i;
    return filter1.test(x); // || filter2.test(x);    
}
function validateURL(value)
{
    return true;
}
function validZipCode(value)
{
    var valid = "0123456789-";
    var hyphencount = 0;
    if (value.length!=5 && value.length!=10)
    {
        return false;
    }
    for (var i=0; i < value.length; i++) 
    {
        temp = "" + value.substring(i, i+1);
        if (temp == "-") hyphencount++;
        if (valid.indexOf(temp) == "-1") 
        {
            return false;
        }
        if ((hyphencount > 1) || ((value.length==10) && ""+value.charAt(5)!="-"))
        {
            return false;
        }
    }
    return true; 
}
function doCancel(formName, isMultiStep)
{
    document.location.reload();
    return;

   var f = document.forms[formName];
   //reset form 
   f.reset(); 
   
     if(cancelAttendees)
           cancelAttendees();
   //reset fields class
   // Reset all classes back to normal
   for(var i =0; i < aFields.length; i++)
   {  
       if(aFields[i].type == "text" || aFields[i].type == "textarea" || aFields[i].type=="select")
            e[aFields[i].name].className = "formElements";
        if(aFields[i].type == "radio" || aFields[i].type == "checkbox")
        {
            fe = document.getElementById(aFields[i].name);
            fe.className = "formElements";
        }
   }
    if(!isMultiStep || currentFormStep == 1) 
        return;
   //open first step 
    newFormStep = 1;
    
    currentPanel = document.getElementById("formStep"+currentFormStep);
    formStepPanel = document.getElementById("formStep"+newFormStep);
    if(formStepPanel != null)
    {
      formStepPanel.className = "formStep";
      currentPanel.className = "formStepHidden";
      currentFormStep = newFormStep;
      if(currentFormStep > 1)
        document.getElementById(formName+"_back").disabled = false;
      else
        document.getElementById(formName+"_back").disabled = true;
      if(document.getElementById("formStep"+(currentFormStep+1)))
        document.getElementById(formName+"_next").disabled = false;
      else
        document.getElementById(formName+"_next").disabled = true;
    }  
}

function check4spam(){
var spamTargetArray= new Array (24)
spamTargetArray[0] = document.rdform610.brief_description.value;
spamTargetArray[1] = document.rdform610.map_title.value;
spamTargetArray[2] = document.rdform610.author.value;
spamTargetArray[3] = document.rdform610.acknowledgement.value;
spamTargetArray[4] = document.rdform610.software_used.value;
spamTargetArray[5] = document.rdform610.data_source.value;
spamTargetArray[6] = document.rdform610.First_Name.value;
spamTargetArray[7] = document.rdform610.Last_Name.value;
spamTargetArray[8] = document.rdform610.Title.value;
spamTargetArray[9] = document.rdform610.Organization.value;
spamTargetArray[10] = document.rdform610.Department.value;
spamTargetArray[11] = document.rdform610.address1.value;
spamTargetArray[12] = document.rdform610.address2.value;
spamTargetArray[13] = document.rdform610.City.value;
spamTargetArray[14] = document.rdform610.Country.value;
spamTargetArray[15] = document.rdform610.Postal_Code1.value;
spamTargetArray[16] = document.rdform610.Postal_Code2.value;
spamTargetArray[17] = document.rdform610.Phone_Number1.value;
spamTargetArray[18] = document.rdform610.Phone_Number2.value;
spamTargetArray[19] = document.rdform610.Phone_Number3.value;
spamTargetArray[20] = document.rdform610.Phone_Number4.value;
spamTargetArray[21] = document.rdform610.Fax_Number1.value;
spamTargetArray[22] = document.rdform610.Fax_Number2.value;
spamTargetArray[23] = document.rdform610.Fax_Number3.value;
var fieldContent="";
var theResult="false";
var badWordsArray = new Array(19) 
    
badWordsArray[0] = "forum" 
badWordsArray[1] = "topic" 
badWordsArray[2] = "video" 
badWordsArray[3] = "discount" 
badWordsArray[4] = "free" 
badWordsArray[5] = "ruggirello" 
badWordsArray[6] = "acoughabott" 
badWordsArray[7] = "casino" 
badWordsArray[8] = "viagara" 
badWordsArray[9] = "hardcore"    
badWordsArray[10] = "ñ" 
badWordsArray[11] = "sex"
badWordsArray[12] = "topic.asp"   
badWordsArray[13] = "topic.php"   
badWordsArray[14] = "rifle"
badWordsArray[15] = "prescription"
badWordsArray[16] = "viagra" 
badWordsArray[17] = "http"
badWordsArray[18] = "123456"
for(var i=0;i<spamTargetArray.length;i++)
  {
      fieldContent= spamTargetArray[i].toLowerCase();
      for(var j=0;j<badWordsArray.length;j++)
    if(fieldContent.indexOf(badWordsArray[j])>-1){
        theResult = "true";
    }  
    
  }
  return theResult;
}

function RefreshImage(valImageId) {
    var objImage = document.images[valImageId];
    if (objImage == undefined) {
        return;
    }
    var now = new Date();
    objImage.src = objImage.src.split('?')[0] + '?x=' + now.toUTCString();
}


function submitForm(formName, aLimitList)
{
    if (formName =="rdform739"){
        if (document.getElementById("acceptedYes").checked){  
            result = true;          
        } else {
        alert('You must confirm acceptance of the agreement.');
            return false;
        }
    }    
    result = true;
    e = document.forms[formName].elements;
    if(aFields.length < 1)
    {
        for(i = 0; i < e.length; i++)
        {
            if(e[i].name == "listOfFormFields")
            {
                a = e[i].value.split('|');
                if(a[2] != "customtext")
                    aFields[aFields.length] = new Field(a[0], a[1], a[2], e[a[1]].value);
            }
        }
    }
    
    
    var strToCheck = "";
    if(aLimitList != null)
    {
        for(i = 0; i < aFields.length; i++)
        {
            for(j = 0; j < aLimitList.length; j++)
            {
                if(aLimitList[j].name == aFields[i].name)
                {
                    strToCheck += "|" + i + "|";
                }
            }
        }
    }
    for(i = 0; i < aNLCForms_Validations.length; i++)
    {
        if(strToCheck == "" || strToCheck.indexOf("|" + i + "|") > -1)    
        {
         // Reset all classes back to normal
        if(aFields[i].type == "text" || aFields[i].type == "textarea" || aFields[i].type=="select")
            e[aFields[i].name].className = "formElements";
        if(aFields[i].type == "radio" || aFields[i].type == "checkbox")
        {
            fe = document.getElementById(aFields[i].name);
            if(fe)
            {
                if(!fe.length)
                    fe.className = "formElements";
                else
                {
                    for(feCounter = 0; feCounter < fe.length; feCounter++)
                        fe[feCounter].className = "formElementsInvalid";
                }
            }
        }
      } 
    }
    aBadFieldNames = new Array();
    // Check mandatory fields
    for(i = 0; i < aNLCForms_Validations.length; i++)
    {
      if(strToCheck == "" || strToCheck.indexOf("|" + i + "|") > -1)    
      {
 
        bNormalValidation = true;
        mand = aNLCForms_Validations[i].split('|');
    
        if(mand[0] == "SKIPSTEP" && aFields[i].type == "checkbox_confirmation") 
        {
           if(e[aFields[i].name].checked)
             return true;                          
        }
        
        if(mand[1] == "MANDATORY")
        {
            // If the field is mandatory and there is no specific validation, just make sure it is not empty
            if(mand[0] == "NONE")
            {
                bNormalValidation = false;
                if( (aFields[i].type == "text" || aFields[i].type == "textarea") && (e[aFields[i].name].value == "") )
                {
                    e[aFields[i].name].className = "invalidElement";
                    result = false;
                    aBadFieldNames[aBadFieldNames.length] = aFields[i].label;
                    //e[aFields[i].name].focus();
                }
                if( aFields[i].type == "radio" || aFields[i].type == "checkbox" )
                {
                    noSelected = 0;
                    for(j = 0; j < e.length; j++)
                    {
                        if(e[j].name == aFields[i].name && e[j].checked)
                            noSelected++;
                    }
                    if(noSelected < 1)
                    {
                        fe = document.getElementById(aFields[i].name);
                        if(fe)
                        {
                            if(!fe.length)
                                fe.className = "formElementsInvalid";
                            else
                            {
                                for(feCounter = 0; feCounter < fe.length; feCounter++)
                                    fe[feCounter].className = "formElementsInvalid";
                            }
                        }
                        aBadFieldNames[aBadFieldNames.length] = aFields[i].label;
                        result = false;
                    }
                }
                    
                //Validate SELECT
                if(aFields[i].type == "select")
                {
                    var objSelect = e[aFields[i].name];
                    var re = " ";
                    var objSelValue = (objSelect.selectedIndex > -1 )? objSelect.options[objSelect.selectedIndex].value : "";                     
                    objSelValue = objSelValue.replace(re,"");
                 
                     if(objSelect.selectedIndex == -1 || objSelValue == "" || objSelValue == " ")
                     {
                        objSelect.className = "invalidElement";
                        result = false;
                        aBadFieldNames[aBadFieldNames.length] = aFields[i].label;
                     }
                }
            }
        }
        if(bNormalValidation)
        {
            validationMethod = mand[0];
            validatingElement = e[aFields[i].name];
            if(validationMethod == "NONNULL")
            {
                if(validatingElement.value == "")
                {
                    validatingElement.className = "invalidElement";
                    result = false;
                    aBadFieldNames[aBadFieldNames.length] = aFields[i].label;
                }
            }
            if(validationMethod == "NOTDEFAULT")
            {
                if(validatingElement.value == "" || validatingElement.value == aFields[i].defaultValue)
                {
                    validatingElement.className = "invalidElement";
                    result = false;
                    aBadFieldNames[aBadFieldNames.length] = aFields[i].label;
                }
            }
            if(validationMethod == "EMAIL")
            {
                if(!validateEmail(validatingElement.value))
                {
                    validatingElement.className = "invalidElement";
                    result = false;
                    aBadFieldNames[aBadFieldNames.length] = aFields[i].label;
                }
            }
            if(validationMethod == "PHONE")
            {
                validatingElement = e[aFields[i].name];
                validatingElement2 = e[aFields[i+1].name];
                validatingElement3 = e[aFields[i+2].name];
                i = i + 2;
                if(!validPhoneNumber(validatingElement.value+validatingElement2.value+validatingElement3.value))
                {
                    if(!(mand[1] != "MANDATORY" && (validatingElement.value+validatingElement2.value+validatingElement3.value) == ""))
                    {
                        validatingElement.className = "invalidElement";
                        validatingElement2.className = "invalidElement";
                        validatingElement3.className = "invalidElement";
                        aBadFieldNames[aBadFieldNames.length] = aFields[i-2].label;
                        result = false;
                    }
                }
            }
            if(validationMethod == "URL")
            {
                if(!validateEmail(validatingElement.value))
                {
                    validatingElement.className = "invalidElement";
                    aBadFieldNames[aBadFieldNames.length] = aFields[i].label;
                    result = false;
                }
            }
            if(validationMethod == "POSTALCODE")
            {
                validatingElement2 = e[aFields[i+1].name];
                if(!validPostalCode(validatingElement.value+validatingElement2.value))
                {
                    validatingElement.className = "invalidElement";
                    validatingElement2.className = "invalidElement";
                    aBadFieldNames[aBadFieldNames.length] = aFields[i].label;
                    result = false;
                }
                i++;
            }
            if(validationMethod == "ZIPCODE")
            {
                if(!validZipCode(validatingElement.value))
                {
                    validatingElement.className = "invalidElement";
                    result = false;
                    aBadFieldNames[aBadFieldNames.length] = aFields[i].label;
                }
            }
            if(validationMethod == "POSTZIP")
            {
                if(!validZipCode(validatingElement.value) && !validatePostalCode(validatingElement.value))
                {
                    validatingElement.className = "invalidElement";
                    result = false;
                    aBadFieldNames[aBadFieldNames.length] = aFields[i].label;
                }
            }
            if(validationMethod == "CONFIRM")
            {
                if(!validatingElement.length)
                {
                    validatingElement.className = "formElements";
                }
                else
                {
                    value = ""
                    for(feCounter = 0; feCounter < validatingElement.length; feCounter++)
                        if(validatingElement[feCounter].checked)
                            value = validatingElement[feCounter].value;
                    value = value.toUpperCase();
                    if(value != "YES" && value != "1")
                    {
                        result = false;
                        alert('You must confirm acceptance of the agreement.');
                    }
                }
            }
          }  
        }
    }
    
    // Feb 26, 2007 - add Attendee validation step         
    if(va == currentFormStep && validateAttendees && !(validateAttendees(document.forms[formName],true)))
       result = false;
    if(result && strToCheck == "")
        SaveFormToCookies(e);
    if(!result)
    {
        fields = "";
        delim = "\n- ";
        for(i = 0; i < aBadFieldNames.length; i++)
        {
            fields += delim + aBadFieldNames[i];
        }
        if(aBadFieldNames.length > 0)
            alert('Please complete or correct the fields indicated by the green highlight:\n'+fields);
    }
    if (formName =="rdform610" && result==true){
               if (check4spam()=="true"){            
                   document.rdform610.action="/english/8397.asp";  
                   document.rdform610.submit(); 
                 }        }
    return result;
}
function LoadFormFromCookies(f)
{
    e = f.elements;
    /*
    for(i = 0; i < e.length; i++)
    {
        if(e[i].type == "text")
        {
            v = GetCookie("savedform_"+e[i].name);
            if(v != null)
                e[i].value = v
        }
        if(e[i].type.indexOf("select") > - 1)
        {
            
            v = GetCookie("savedform_"+e[i].name);
            if(v != null)
                e[i].selectedIndex = v;
        }
    }
    */
    s = GetCookie("ESRICanada_Form_Inforamation");
    if (s != null)
    {
        a = s.split("<");
        for(i = 0; i < a.length; i++)
        {
            oldCookies[oldCookies.length] = a[i].split(">");
            a2 = a[i].split(">");
            if(a2.length > 1)
            {
                for(j = 0; j < e.length; j++)
                {
                    if(e[j].name.toUpperCase() == a2[0].toUpperCase())
                    {
                        e[j].value = unescape(a2[1]);
                        j = e.length + 10;
                    }
                }
            }
        }
    }
}
function SaveFormToCookies(e)
{
    var expdate = new Date();
    var aPairs = new Array();
    FixCookieDate(expdate);
    expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 365));
    for(i = 0; i < aCookies2Save.length; i++)
    {
        if(e[aCookies2Save[i]] != null)
        {
            aPairs[aPairs.length] = aCookies2Save[i] + ">" + escape(e[aCookies2Save[i]].value);
        }
        else
        {
            for(j=0;j<oldCookies.length;j++)
            {
                if (oldCookies[j][0] == aCookies2Save[i])
                {
                    aPairs[aPairs.length] = aCookies2Save[i] + ">" + oldCookies[j][1];
                }
            }
        }
    }
    s = aPairs.join("<");
    //alert(s);
    SetCookie("ESRICanada_Form_Inforamation", s, expdate, "/");
    /*
    for(i = 0; i < e.length; i++)
    {
        if(e[i].type == "text")
        {
            SetCookie("savedform_"+e[i].name, e[i].value, expdate); 
        }
        if(e[i].type.indexOf("select") > - 1)
        {
            SetCookie("savedform_"+e[i].name, e[i].selectedIndex, expdate); 
        }
    }
    */
}
function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            if (oldonload) {
                oldonload();
            }
            func();
        }
    }
}
function saveCursorPos()
{
    cursorPos=document.selection.createRange().duplicate();
}
function insertFormField(formName, selectName, textName)
{
    fieldName = document.forms[formName].elements[selectName].options[document.forms[formName].elements[selectName].selectedIndex].value;
    fieldLabel = document.forms[formName].elements[selectName].options[document.forms[formName].elements[selectName].selectedIndex].innerText;
    oMessage = document.getElementById(textName);
    html = oMessage.innerHTML;
    if(html.indexOf("contentEditable=true") < 0)
    {
        alert('You must be editing the message to insert a field.');
        return;
    }
    else
    {
        if(oMessage.childNodes.length > 0)
        {
            //cn = oMessage.childNodes[0];
            //cur = document.selection.createRange().duplicate();
            cursorPos.pasteHTML('<span style="background-color:yellow" fieldname="'+fieldName+'">'+fieldLabel+'</span>'); 
        }
    }
}

var aFields = new Array();
function Field(label, name, type, defaultValue)
{
    this.label = label;
    this.name = name;
    this.type = type;
    this.defaultValue = defaultValue;
    this.inStep = currentStep;
}
function formLoad(formName, selectName)
{
    if(aFields.length < 1)
    {
        e = document.forms[formName].elements;
    
        for(i = 0; i < e.length; i++)
        {
            if(e[i].name == "listOfFormFields")
            {
                a = e[i].value.split('|');
                if(a[2] != "customtext")
                    aFields[aFields.length] = new Field(a[0], a[1], a[2], e[a[1]].value);
            }
        }
    }
    oSelect = document.getElementById(selectName);
    for(i = 0; i < aFields.length; i++)
    {
        var oOption = document.createElement("OPTION");
        oSelect.options.add(oOption);
        oOption.innerText = aFields[i].label;
        oOption.value = aFields[i].name;
    }
}
function FixCookieDate (date) {
     var base = new Date(0);
     var skew = base.getTime();
     if (skew > 0)
         date.setTime (date.getTime() - skew);
}
function SetCookie(name, value, expires, path, domain, secure) {
    document.cookie = name + "=" + escape (value) +
         ((expires) ? "; expires=" + expires.toGMTString() : "") +
         ((path) ? "; path=" + path : "") +
         ((domain) ? "; domain=" + domain : "") +
         ((secure) ? "; secure" : "");
}
function getCookieVal(offset) {
     var endstr = document.cookie.indexOf (";", offset);
     if (endstr == -1)
         endstr = document.cookie.length;
     return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie(name) {
   var arg = name + "=";
   var alen = arg.length;
   var clen = document.cookie.length;
   var i = 0;
   while (i < clen) {
     var j = i + alen;
     if (document.cookie.substring(i, j) == arg)
       return getCookieVal (j);
     i = document.cookie.indexOf(" ", i) + 1;
     if (i == 0) break;
   }
   return null;
}
function DeleteCookie(name,path,domain) {
   if (GetCookie(name)) {
     document.cookie = name + "=" +
       ((path) ? "; path=" + path : "") +
       ((domain) ? "; domain=" + domain : "") +
       "; expires=Thu, 01-Jan-70 00:00:01 GMT";
   }
}