﻿// JScript File]


 //////////////////////OPT-IN-FOOTER/////////////////////////////  
function RetrieveOptIn(emailAddress) {
        //alert("retrieving opt in");
        var MessageList = new Array(0);
        MessageList = IsValidEmailAddress(MessageList,'optIn',InvalidEmailAddressForOptIn, true);
       
        var HasClientErrors = false;
        
        //check if any client side errors
        for(var iii = 0;     iii < MessageList.length; iii++) {
            if (!MessageList[iii].valid){
                HasClientErrors = true;
            }
        }
    
        //make server call (if appropriate)
        if (!HasClientErrors){
            PostXML_RetrieveOptIn( encode(emailAddress));
        } 
        else {
            DisplayValidation(MessageList);
            var txtOptIn =document.getElementById("optIn");
            txtOptIn.value="";
             ExpandOptInLayer(true);
        }  
  
    }
              
	
	function PostXML_RetrieveOptIn(emailAddress ) {
	    //alert("posting opt in");
	    var xml = "<AJAX>"
                + "<ACTION>OPTIN</ACTION>"
                + "<OPTINDATA>"
                + "<EMAIL>" + emailAddress + "</EMAIL>"
                + "</OPTINDATA>"
                + "</AJAX>";
            
    // Post the xml to the .NET AJAX handler.  If the call was successful the returned xml
    // will be parsed 

        PostXML(xml, "/handlers/AjaxOptInHandler.ashx", Delegate_OptInEmail);
   
    }

    function Delegate_OptInEmail(xmlResponse, action)
    {
        //alert("response");
  	   // Target the "ERROR" node
	    var errorNode = xmlResponse.getElementsByTagName('ERROR');
        var errLen = errorNode[0].childNodes.length;
      
        //could let Finalize_LoginToAccount or break it into 2 methods Success_LoginToAccount and Failure_LoginToAccount
        if (errorNode[0].childNodes.length == 0){
        // Target the "ERROR" node
            var txtOptIn =document.getElementById("optIn");
            var MessageList = new Array(0);
           //if (errorNode[0].childNode[0].nodeValue.length == 0){
            if (errLen == 0){
            //translate the XML from the server into our message queue object.
                EmailUpdated ="Thank You. You have been added to our email list as: " + GetHTMLNode('optIn').value;
                MessageList[MessageList.length] = new ValidationResult(true, EmailUpdated, txtOptIn.id)
            } 
            else {
                  MessageList[MessageList.length] = new ValidationResult(false, errorNode.nodeValue, txtOptIn.id)
            }
   
            DisplayValidation(MessageList);
            var txtOptIn =document.getElementById("optIn");
            txtOptIn.value="";
            ExpandOptInLayer(true);
        }
    }
    
     //////////////////////OPT-IN-PAGE/////////////////////////////  
    
    function RetrieveOptInPage(emailAddress) {
        //alert("retrieving opt in");
        var MessageList = new Array(0);
        MessageList = IsValidEmailAddress(MessageList,'email',InvalidEmailAddressForOptIn, true);
       
        var HasClientErrors = false;
        
        //check if any client side errors
        for(var iii = 0;     iii < MessageList.length; iii++) {
            if (!MessageList[iii].valid){
                HasClientErrors = true;
            }
        }
    
        //make server call (if appropriate)
        if (!HasClientErrors){
            PostXML_RetrieveOptInPage( encode(emailAddress));
        } 
        else {
            DisplayOptInPageValidation(MessageList);
            var txtOptIn =document.getElementById("email");
            txtOptIn.value="";
             ExpandOptInPageLayer(true);
        }  
  
    }
              
	
	function PostXML_RetrieveOptInPage(emailAddress ) {
	    //alert("posting opt in");
	    var xml = "<AJAX>"
                + "<ACTION>OPTINPAGE</ACTION>"
                + "<OPTINDATA>"
                + "<EMAIL>" + emailAddress + "</EMAIL>"
                + "</OPTINDATA>"
                + "</AJAX>";
            
    // Post the xml to the .NET AJAX handler.  If the call was successful the returned xml
    // will be parsed 

        PostXML(xml, "/handlers/AjaxOptInHandler.ashx", Delegate_OptInEmailPage);
   
    }

    function Delegate_OptInEmailPage(xmlResponse, action)
    {
        //alert("response");
  	   // Target the "ERROR" node
	    var errorNode = xmlResponse.getElementsByTagName('ERROR');
        var errLen = errorNode[0].childNodes.length;
      
        //could let Finalize_LoginToAccount or break it into 2 methods Success_LoginToAccount and Failure_LoginToAccount
        if (errorNode[0].childNodes.length == 0){
        // Target the "ERROR" node
            var txtOptIn =document.getElementById("email");
            var MessageList = new Array(0);
           //if (errorNode[0].childNode[0].nodeValue.length == 0){
            if (errLen == 0){
            //translate the XML from the server into our message queue object.
                EmailUpdated ="Thank You. You have been added to our email list as: " + GetHTMLNode('email').value;
                MessageList[MessageList.length] = new ValidationResult(true, EmailUpdated, txtOptIn.id)
            } 
            else {
                  MessageList[MessageList.length] = new ValidationResult(false, errorNode.nodeValue, txtOptIn.id)
            }
   
            DisplayOptInPageValidation(MessageList);
            var txtOptIn =document.getElementById("email");
            txtOptIn.value="";
            ExpandOptInPageLayer(true);
        }
    }
 //////////////////////OPT-OUT/////////////////////////////   
    function RetrieveOptOut(emailAddress) {
        //alert("retrieving opt Out");
        var MessageList = new Array(0);
        MessageList = IsValidEmailAddress(MessageList,'email',InvalidEmailAddressForOptIn, true);
        var HasClientErrors = false;
        
        //check if any client side errors
        for(var iii = 0;     iii < MessageList.length; iii++) {
            if (!MessageList[iii].valid){
                HasClientErrors = true;
            }
        }
    
        //make server call (if appropriate)
        if (!HasClientErrors){
            PostXML_RetrieveOptOut( encode(emailAddress));
        } 
        else {
            DisplayValidation(MessageList,'OptOutStatusMessage');
            var txtOptIn =document.getElementById("email");
            txtOptIn.value="";
             ExpandOptInLayer(true);
        }  
  
    }
              
	
	function PostXML_RetrieveOptOut(emailAddress ) {
	    //alert("posting opt out");
	    var xml = "<AJAX>"
                + "<ACTION>OPTOUT</ACTION>"
                + "<OPTINDATA>"
                + "<EMAIL>" + emailAddress + "</EMAIL>"
                + "</OPTINDATA>"
                + "</AJAX>";
            
    // Post the xml to the .NET AJAX handler.  If the call was successful the returned xml
    // will be parsed 

        PostXML(xml, "/handlers/AjaxOptInHandler.ashx", Delegate_OptOutEmail);
   
    }

    function Delegate_OptOutEmail(xmlResponse, action)
    {
        //alert("response");
  	   // Target the "ERROR" node
	    var errorNode = xmlResponse.getElementsByTagName('ERROR');
        var errLen = errorNode[0].childNodes.length;
      
        //could let Finalize_LoginToAccount or break it into 2 methods Success_LoginToAccount and Failure_LoginToAccount
        if (errorNode[0].childNodes.length == 0){
        // Target the "ERROR" node
            var txtOptIn =document.getElementById("email");
            var MessageList = new Array(0);
           //if (errorNode[0].childNode[0].nodeValue.length == 0){
            if (errLen == 0){
            //translate the XML from the server into our message queue object.
                EmailUpdated ="Thank You. You have been removed from our email list as: " + GetHTMLNode('email').value;
                MessageList[MessageList.length] = new ValidationResult(true, EmailUpdated, txtOptIn.id)
            } 
            else {
                  MessageList[MessageList.length] = new ValidationResult(false, errorNode.nodeValue, txtOptIn.id)
            }
   
            DisplayValidation(MessageList,'OptOutStatusMessage');
            var txtOptIn =document.getElementById("email");
            txtOptIn.value="";
            ExpandOptInLayer(true);
        }
    }
    
     //////////////////////Request A Catalogue/////////////////////////////   
    function RetrieveRequestCat(fname, lname, add1, add2, city, postal, province, emailAddress) {
        //alert("retrieving Cat Request");
        var MessageList = new Array(0);
        MessageList = IsValidReqTextBox(MessageList, InvalidFirstName, 'fname');
        IsValidReqTextBox(MessageList, InvalidLastName, 'lname');
        IsValidReqTextBox(MessageList, InvalidAddress, 'add1');
        IsValidReqTextBox(MessageList, InvalidCity, 'city');        
        IsValidReqDDL(MessageList, InvalidProvince, 'province');
        IsValidReqTextBox(MessageList, InvalidPostalCode, 'postal');
        IsValidEmailAddress(MessageList,'email',InvalidEmailAddressForOptIn, true);
        
        var HasClientErrors = false;
        var chkoptin = ($('ctl00_ContentPlaceHolder1_chkoptin').checked) ? true : false;
        
        //check if any client side errors
        for(var iii = 0;     iii < MessageList.length; iii++) {
            if (!MessageList[iii].valid){
                HasClientErrors = true;
            }
        }
    
        //make server call (if appropriate)
        if (!HasClientErrors){
            PostXML_RequestCat(fname, lname, add1, add2, city, postal, province, chkoptin, encode(emailAddress));
        } 
        else {
            DisplayRequestCatValidation(MessageList);
            ExpandRequestCatLayer(true);
        }  
  
    }
              
	
	function PostXML_RequestCat(fname, lname, add1, add2, city, postal, province, optin, emailAddress ) {
	    //alert("posting Request Cat");
	    var xml = "<AJAX>"
                + "<ACTION>REQUESTCAT</ACTION>"
                + "<OPTINDATA>"
                + "<FNAME>" + fname + "</FNAME>"
                + "<LNAME>" + lname + "</LNAME>"
                + "<ADD1>" + add1 + "</ADD1>"
                + "<ADD2>" + add2 + "</ADD2>"
                + "<CITY>" + city + "</CITY>"
                + "<PROVINCE>" + province + "</PROVINCE>"
                + "<POSTAL>" + postal + "</POSTAL>"
                + "<OPTIN>" + optin + "</OPTIN>"
                + "<EMAIL>" + emailAddress + "</EMAIL>"
                + "</OPTINDATA>"
                + "</AJAX>";
            
    // Post the xml to the .NET AJAX handler.  If the call was successful the returned xml
    // will be parsed 

        PostXML(xml, "/handlers/AjaxRequestCatHandler.ashx", Delegate_RequestCat);
   
    }

    function Delegate_RequestCat(xmlResponse, action)
    {
       //alert("delegate");
  	   // Target the "ERROR" node
	    var errorNode = xmlResponse.getElementsByTagName('ERROR');
        var errLen = errorNode[0].childNodes.length;
      
        if (errorNode[0].childNodes.length == 0){
        // Target the "ERROR" node
            var txtFName =document.getElementById("fname");
            var txtLName =document.getElementById("lname");
            var txtAdd1 =document.getElementById("add1");
            var txtAdd2 =document.getElementById("add2");
            var txtCity =document.getElementById("city");
            var txtProvince =document.getElementById("province");
            var txtPostal =document.getElementById("postal");
            var txtOptIn =document.getElementById("email");
            var MessageList = new Array(0);           
            if (errLen == 0){
            //translate the XML from the server into our message queue object.
                EmailUpdated ="Thank You. You have been added to our mailing list ";
                //MessageList[MessageList.length] = new ValidationResult(true, EmailUpdated, txtOptIn.id)
                
            } 
            else {
                  MessageList[MessageList.length] = new ValidationResult(false, errorNode.nodeValue, txtOptIn.id)
            }
   
            DisplayRequestCatValidation(MessageList);
            var txtFName =document.getElementById("fname");
            var txtLName =document.getElementById("lname");
            var txtAdd1 =document.getElementById("add1");
            var txtAdd2 =document.getElementById("add2");
            var txtCity =document.getElementById("city");
            var txtProvince =document.getElementById("province");
            var txtPostal =document.getElementById("postal");
            var txtOptIn =document.getElementById("email");
            var divThanks =document.getElementById("requestThanks");
            var frmRequestForm =document.getElementById("requestForm");
            txtFName.value="";
            txtLName.value="";
            txtAdd1.value="";
            txtAdd2.value="";
            txtCity.value="";
            txtProvince.value="None";
            txtPostal.value="";
            txtOptIn.value="";
            ExpandRequestCatLayer(true);
            frmRequestForm.style.visibility = "hidden";
            frmRequestForm.style.display = "none";
            frmRequestForm.style.opacity = "0";
            divThanks.style.visibility = "visible";
            divThanks.style.display = "";
            divThanks.style.opacity = "10";
            
            var myFx = new Fx.Scroll('divThanks', {
                duration: 5000,
                wait: false
            })
            
           myFx.toTop.delay(100, this);

        }
        else
        {   
            var MessageList = new Array(0); 
            var txtOptIn =document.getElementById("email");       
	        MessageList[MessageList.length] = new ValidationResult(false, errorNode[0].childNodes[0].nodeValue, txtOptIn.id);	        
	        DisplayRequestCatValidation(MessageList);
            ExpandRequestCatLayer(true);
        }
    }
    
    //////////////////////Customer Service/////////////////////////////   
    function RetrieveCustServ(Fname, Lname, AreaCode, Prefix, Suffix, Email, Comments, optin) {
        
        //alert("retrieving Customer Service call");
        var MessageList = new Array(0);
        
        //alert("first IsValidReqTextBox()");
        MessageList = IsValidReqTextBox(MessageList, InvalidFirstName, 'Fname');
        //alert("first IsValidReqTextBox() over");

        //alert("second IsValidReqTextBox()");
        IsValidReqTextBox(MessageList, InvalidLastName, 'Lname');
        //alert("second IsValidReqTextBox() over");
        //IsValidReqTextBox(MessageList, InvalidPostalCode, 'Comments');
        //alert("first IsValidEmailAddress()");
        IsValidEmailAddress(MessageList,'Email',InvalidEmailAddressForOptIn, true);
       // alert("first IsValidEmailAddress() over");
        
        var HasClientErrors = false;
        var chkoptin = ($('chkoptin').checked) ? true : false;
        
        //check if any client side errors
        for(var iii = 0;     iii < MessageList.length; iii++) {
            if (!MessageList[iii].valid){
                HasClientErrors = true;
            }
        }
    
        //make server call (if appropriate)
        if (!HasClientErrors){
						//alert("before PostXML_CustServ");
            PostXML_CustServ(Fname, Lname, AreaCode, Prefix, Suffix, Comments, encode(Email), chkoptin);
						//alert("after PostXML_CustServ");
        } 
        else {
						//alert("before DisplayCustServValidation(MessageList)");
            DisplayCustServValidation(MessageList);
						//alert("after DisplayCustServValidation(MessageList)");
            ExpandCustServLayer(true);
        } 
  
     }
              
	
	function PostXML_CustServ(Fname, Lname, AreaCode, Prefix, Suffix, commentsBox, emailAddress,optin ) {
	    //alert("posting Contact Us");
	    var xml = "<AJAX>"
                + "<ACTION>CONTACTUS</ACTION>"
                + "<OPTINDATA>"
                + "<FNAME>" + Fname + "</FNAME>"
                + "<LNAME>" + Lname + "</LNAME>"
                + "<AREACODE>" + AreaCode + "</AREACODE>"
                + "<PREFIX>" + Prefix + "</PREFIX>"
                + "<SUFFIX>" + Suffix + "</SUFFIX>"
                + "<COMMENTS>" + commentsBox + "</COMMENTS>"
                + "<EMAIL>" + emailAddress + "</EMAIL>"
                + "<OPTIN>" + optin + "</OPTIN>"               
                + "</OPTINDATA>"
                + "</AJAX>";
            
    // Post the xml to the .NET AJAX handler.  If the call was successful the returned xml
    // will be parsed 

        PostXML(xml, "/handlers/AjaxCustServHandler.ashx", Delegate_CustServ);
   
    }

    function Delegate_CustServ(xmlResponse, action)
    {
       //alert("delegate");
  	   // Target the "ERROR" node
	    var errorNode = xmlResponse.getElementsByTagName('ERROR');
        var errLen = errorNode[0].childNodes.length;
      
        //could let Finalize_LoginToAccount or break it into 2 methods Success_LoginToAccount and Failure_LoginToAccount
        if (errorNode[0].childNodes.length == 0){
        // Target the "ERROR" node
            var txtFName =document.getElementById("Fname");
            var txtLName =document.getElementById("Lname");
            var txtAreaCode=document.getElementById("AreaCode");
            var txtPrefix =document.getElementById("Prefix");
            var txtSuffix =document.getElementById("Suffix");
            var txtComments =document.getElementById("Comments");
            var txtOptIn =document.getElementById("Email");
            var MessageList = new Array(0);           
            if (errLen == 0){
            //translate the XML from the server into our message queue object.
                EmailUpdated ="Thank You. You have been added to our mailing list ";
                //MessageList[MessageList.length] = new ValidationResult(true, EmailUpdated, txtOptIn.id)
                
            } 
            else {
                  MessageList[MessageList.length] = new ValidationResult(false, errorNode.nodeValue, txtOptIn.id)
            }
   
            DisplayCustServValidation(MessageList);
            var txtFName =document.getElementById("Fname");
            var txtLName =document.getElementById("Lname");
            var txtAreaCode =document.getElementById("AreaCode");
            var txtPrefix =document.getElementById("Prefix");
            var txtSuffix =document.getElementById("Suffix");
            var txtComments =document.getElementById("Comments");
            var txtOptIn =document.getElementById("Email");
            var divThanks =document.getElementById("contactThanks");
            var frmRequestForm =document.getElementById("contactForm");
            txtFName.value="";
            txtLName.value="";
            txtAreaCode.value="";
            txtPrefix.value="";
            txtSuffix.value="";
            txtComments.value="None";
            txtOptIn.value="";
            ExpandCustServLayer(true);
            frmRequestForm.style.visibility = "hidden";
            frmRequestForm.style.display = "none";
            frmRequestForm.style.opacity = "0";
            divThanks.style.visibility = "visible";
            divThanks.style.display = "";
            divThanks.style.opacity = "10";
            
            var myFx = new Fx.Scroll('divThanks', {
                duration: 5000,
                wait: false
            })
            
           myFx.toTop.delay(100, this);
        }
        else
        {   
            var MessageList = new Array(0); 
            var txtOptIn =document.getElementById("Email");       
	        MessageList[MessageList.length] = new ValidationResult(false, errorNode[0].childNodes[0].nodeValue, txtOptIn.id);	        
	        DisplayCustServValidation(MessageList);
            ExpandCustServLayer(true);
        }
        
    }   
    
    
    function RegisterGiftCard(giftCardNumber,firstName, lastName, address1, address2, city, province, postal, areaCode, prefix, suffix, email)
    {
        var giftCardNumber = document.getElementById("giftCardNumber"); 
        var giftCardValue = giftCardNumber.value;
        
        var chkoptin = ($('ctl00_ContentPlaceHolder1_chkoptin').checked) ? true : false;
        
        var MessageList = new Array(0);
        MessageList = IsValidReqTextBox(MessageList, InvalidGiftCard, 'giftCardNumber');
        IsValidReqTextBox(MessageList, InvalidFirstName, 'firstName');
        IsValidReqTextBox(MessageList, InvalidLastName, 'lastName');
        IsValidReqTextBox(MessageList, InvalidAddress, 'address1');        
        IsValidReqTextBox(MessageList, InvalidCity, 'city');        
        IsValidReqDDL(MessageList, InvalidProvince, 'province');
        IsValidReqTextBox(MessageList, InvalidPostalCode, 'postal');
        IsValidReqTextBox(MessageList, InvalidAreaCode, 'areaCode');
        IsValidReqTextBox(MessageList, InvalidPrefixCode, 'prefix');
        IsValidReqTextBox(MessageList, InvalidSuffixCode, 'suffix');       
        IsValidEmailAddress(MessageList,'email',InvalidEmailAddressForOptIn, true);  
        
        var HasClientErrors = false;        
        
        //check if any client side errors
        for(var iii = 0;     iii < MessageList.length; iii++) {
            if (!MessageList[iii].valid){
                HasClientErrors = true;
            }
        }
    
        //make server call (if appropriate)
        if (!HasClientErrors){
            var xml = "<AJAX>"
                + "<ACTION>REGISTERGIFTCARD</ACTION>"
                + "<CARDNUMBER>"+giftCardValue+"</CARDNUMBER>"
                + "<FNAME>" + firstName + "</FNAME>"
                + "<LNAME>" + lastName + "</LNAME>"
                + "<ADDRESS1>" + address1 + "</ADDRESS1>"
                + "<ADDRESS2>" + address2 + "</ADDRESS2>"
                + "<CITY>" + city + "</CITY>"
                + "<PROVINCE>" + province + "</PROVINCE>"
                + "<POSTAL>" + postal + "</POSTAL>"
                + "<DAYPHONE>" + areaCode + prefix + suffix +"</DAYPHONE>"                                            
                + "<EMAIL>" + email + "</EMAIL>"
                + "<OPTIN>" + chkoptin + "</OPTIN>" 
                + "</AJAX>";
    	
            PostXML(xml, "/handlers/GiftCardHandler.ashx", Delegate_RegisterCard);
        } 
        else {
            DisplayRegisterValidation(MessageList);
            ExpandRegisterLayer(true);
        }        
    	
       
    }
    
    function Delegate_RegisterCard(xmlResponse)
    {
        var errorNode = xmlResponse.getElementsByTagName('ERROR');
        var errLen = errorNode[0].childNodes.length;
      
        var MessageList = new Array(0);    
    	
       if (errorNode[0].childNodes.length == 0){
            var txtGCard =document.getElementById("giftCardNumber");
            var txtFName =document.getElementById("firstName");
            var txtLName =document.getElementById("lastName");
            var txtAddress1 =document.getElementById("address1");
            var txtAddress2 =document.getElementById("address2");  
            var txtCity =document.getElementById("city");
            var txtProvince =document.getElementById("province");
            var txtPostal =document.getElementById("postal");
            var txtAreaCode=document.getElementById("AreaCode");
            var txtPrefix =document.getElementById("Prefix");
            var txtSuffix =document.getElementById("Suffix");            
            var txtOptIn =document.getElementById("Email");           
            
	        MessageList[MessageList.length]=new ValidationResult(true, "Thank you for registering your Gift Card", txtGCard);
            //$("themesContainer").show();
            //txtCard.value = "";
            
            DisplayRegisterValidation(MessageList);
            var txtGCard =document.getElementById("giftCardNumber");
            var txtFName =document.getElementById("firstName");
            var txtLName =document.getElementById("lastName");
            var txtAddress1 =document.getElementById("address1");
            var txtAddress2 =document.getElementById("address2");  
            var txtCity =document.getElementById("city");
            var txtProvince =document.getElementById("province");
            var txtPostal =document.getElementById("postal");
            var txtAreaCode=document.getElementById("areaCode");
            var txtPrefix =document.getElementById("prefix");
            var txtSuffix =document.getElementById("suffix");            
            var txtOptIn =document.getElementById("email");  
            var divThanks =document.getElementById("requestThanks");
            var frmRequestForm =document.getElementById("registerForm");
            txtFName.value="";
            txtLName.value="";
            txtAddress1.value="";
            txtAddress2.value="";
            txtCity.value="";
            txtProvince.value="None";
            txtPostal.value="";
            txtAreaCode.value="";
            txtPrefix.value="";
            txtSuffix.value="";
            txtOptIn.value="";
            ExpandRegisterLayer(true);
            frmRequestForm.style.visibility = "hidden";
            frmRequestForm.style.display = "none";
            frmRequestForm.style.opacity = "0";
            divThanks.style.visibility = "visible";
            divThanks.style.display = "";
            divThanks.style.opacity = "10";
            
            var myFx = new Fx.Scroll('divThanks', {
                duration: 5000,
                wait: false
            })
            
           myFx.toTop.delay(100, this);
           
        }
        else
        {
            var txtGCard =document.getElementById("giftCardNumber");
	        MessageList[MessageList.length] = new ValidationResult(false, errorNode[0].childNodes[0].nodeValue, txtGCard)
	        DisplayRegisterValidation(MessageList);
            ExpandRegisterLayer(true);
        }
   
            
    }

    function checkBalance(cardNumbervalue)
    {
        var cardNumber = document.getElementById("giftCardNumber");
        var MessageList = new Array(0);
    	
        if(cardNumbervalue.trim() == "")
        {
            //MessageList[MessageList.length] = new ValidationResult(true, EmailUpdated, txtOptIn.id)
	        MessageList[MessageList.length] = new ValidationResult(false, "Please enter a valid card number", cardNumber.id);
	        DisplayCheckBalanceValidation(MessageList);
	        return;
        }
    	
        var xml = "<AJAX><ACTION>CHECKBALANCE</ACTION><CARDNUMBER>"+cardNumbervalue+"</CARDNUMBER></AJAX>";
    	
        PostXML(xml, "/handlers/GiftCardHandler.ashx", Delegate_CheckBalance);
    }
    
    function Delegate_CheckBalance(xmlResponse)
    {
	    var errorNode = xmlResponse.getElementsByTagName('ERROR');
        var errLen = errorNode[0].childNodes.length;
        var MessageList = new Array(0);
        var txtgiftCardNumber =document.getElementById("giftCardNumber");
    	
	    if (errorNode[0].childNodes.length == 0)
	    {
	        //ClearValidation();
     	
		    var balance = xmlResponse.getElementsByTagName('BALANCE');
		    var cardNumber = xmlResponse.getElementsByTagName('CARDNUMBER');	
            if (errLen == 0){            
                BalanceSuccess ="Your balance is: " + balance[0].childNodes[0].nodeValue;
                MessageList[MessageList.length] = new ValidationResult(true, BalanceSuccess, txtgiftCardNumber.id)
            } 
            else {
                  MessageList[MessageList.length] = new ValidationResult(false, errorNode[0].childNodes[0].nodeValue, txtgiftCardNumber.id)
            }
   
            DisplayCheckBalanceValidation(MessageList,'CheckBalanceStatusMessage');
            var txtOptIn =document.getElementById("email");
            txtgiftCardNumber.value="";
            ExpandCheckBalanceLayer(true);
	    }
	    else
	    {
	        MessageList[MessageList.length] = new ValidationResult(false, errorNode[0].childNodes[0].nodeValue, txtgiftCardNumber.id)
		    DisplayCheckBalanceValidation(MessageList,'CheckBalanceStatusMessage'); 
            ExpandCheckBalanceLayer(true);
	    }
    }

    // public method for url encoding   
    function encode(string) {   
        return escape(this._utf8_encode(string));   
    }
    
	// private method for UTF-8 encoding   
    function _utf8_encode(string) {   
        string = string.replace(/\r\n/g,"\n");   
        var utftext = "";   
  
        for (var n = 0; n < string.length; n++) {   
            var c = string.charCodeAt(n);   
            if (c < 128) {   
                utftext += String.fromCharCode(c);   
            }   
            else if((c > 127) && (c < 2048)) {   
                utftext += String.fromCharCode((c >> 6) | 192);   
                utftext += String.fromCharCode((c & 63) | 128);   
            }   
            else {   
                utftext += String.fromCharCode((c >> 12) | 224);   
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);   
                utftext += String.fromCharCode((c & 63) | 128);   
            }   
          } 
            utftext = utftext.replace("+", "%2B");
            utftext = utftext.replace("/", "%2F");
  
        return utftext;   
    }


function GetHTMLNode(id) {
		if(document.getElementById) {
		   if(document.getElementById(id)) { return document.getElementById(id); }
		}
		return null;
	}

function  ExpandOptInLayer(lb)
{
        var StatusMessage=$('StatusMessage');
        var classArray = $$('.footer-email-container');
         
        for (var i=0;i< classArray.length;i++)
        {
            if (lb==true)
            {
			    classArray[i].style.marginTop="-34px";
			 }
			 else
			    {
                    classArray[i].style.marginTop="0px";
                }
          }
     if (!lb)
        {   StatusMessage.innerHTML = "";
            StatusMessage.className ="hidden";
        }
      

}

function  ExpandOptInPageLayer(lb)
{
        var StatusMessage=$('OptInPageStatusMessage');
        var classArray = $$('.footer-email-container');
         
        for (var i=0;i< classArray.length;i++)
        {
            if (lb==true)
            {
			    classArray[i].style.marginTop="-34px";
			 }
			 else
			    {
                    classArray[i].style.marginTop="0px";
                }
          }
     if (!lb)
        {   StatusMessage.innerHTML = "";
            StatusMessage.className ="hidden";
        }
      

}

function  ExpandRequestCatLayer(lb)
{
        var StatusMessage=$('RequestStatusMessage');
        var classArray = $$('.footer-email-container');
         
        for (var i=0;i< classArray.length;i++)
        {
            if (lb==true)
            {
			    classArray[i].style.marginTop="-34px";
			 }
			 else
			    {
                    classArray[i].style.marginTop="0px";
                }
          }
     if (!lb)
        {   StatusMessage.innerHTML = "";
            StatusMessage.className ="hidden";
        }
      

}

function  ExpandCustServLayer(lb)
{
        var ContactStatusMessage=$('ContactStatusMessage');
        var classArray = $$('.footer-email-container');
         
        for (var i=0;i< classArray.length;i++)
        {
            if (lb==true)
            {
			    classArray[i].style.marginTop="-34px";
			 }
			 else
			    {
                    classArray[i].style.marginTop="0px";
                }
          }
     if (!lb)
        {   ContactStatusMessage.innerHTML = "";
            ContactStatusMessage.className ="hidden";
        }
      

}

function  ExpandCheckBalanceLayer(lb)
{
        var StatusMessage=$('CheckBalanceStatusMessage');
        var classArray = $$('.footer-email-container');
         
        for (var i=0;i< classArray.length;i++)
        {
            if (lb==true)
            {
			    classArray[i].style.marginTop="-34px";
			 }
			 else
			    {
                    classArray[i].style.marginTop="0px";
                }
          }
     if (!lb)
        {   StatusMessage.innerHTML = "";
            StatusMessage.className ="hidden";
        }
}

function  ExpandRegisterLayer(lb)
{
        var StatusMessage=$('RegisterStatusMessage');
        var classArray = $$('.footer-email-container');
         
        for (var i=0;i< classArray.length;i++)
        {
            if (lb==true)
            {
			    classArray[i].style.marginTop="-34px";
			 }
			 else
			    {
                    classArray[i].style.marginTop="0px";
                }
          }
     if (!lb)
        {   StatusMessage.innerHTML = "";
            StatusMessage.className ="hidden";
        }
      

}