
var MasterpageID = "ctl00_cphMaster_";

//Function to Validate in Login Page
function fnLoginValidation()
{
	var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
	var emailADDR = $("#"+ MasterpageID + "txtEmailId").val();
	//alert(emailADDR);
	
	if(emailADDR == '') {
		$("#login-error").replaceWith('<div class="error">You forgot to enter an email address.</div>');
		$("#" + MasterpageID + "txtEmailId").css({'background-color' : '#FFF6A9'});
		$("#" + MasterpageID + "txtEmailId").focus();
		hasError = true;
		return false;
	} else if(!emailReg.test(emailADDR)) {
		$("#login-error").replaceWith("<div class='error''>Your email address is invalid, please try again.</div>");
		$("#" + MasterpageID + "txtEmailId").css({'background-color' : '#FFF6A9'});
		$("#" + MasterpageID + "txtEmailId").focus();
		hasError = true;
		return false
	}
	
    if((document.getElementById(MasterpageID + "rdoOldCustomer").checked == true) && (trim(document.getElementById(MasterpageID + "txtPassword").value).length == 0 ))
    {
        //alert("Please enter your password");
        $("#login-error").replaceWith("<div class='error''>Please enter your password.</div>");
        $("#" + MasterpageID + "txtPassword").css({'border' : '1px solid red','background-color' : 'white'});
        $("#" + MasterpageID + "txtPassword").after("<br><span style='color:red;'>Password is invalid</span>.");
        //document.getElementById(MasterpageID + "txtPassword").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtPassword").focus();
        return false;
    }
    return true;
}

//disable/enable password field based on login option
function fnChangeLogin()
{
    document.getElementById(MasterpageID + "rdoOldCustomer").checked = true;
}

// Removes leading whitespaces
function LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return LTrim(RTrim(value));
	
}

//Validation on New User Registration
function fnValidateUserRegistration()
{
    document.getElementById(MasterpageID +"txtFirstName").style.background = '#efefef';
        if (trim(document.getElementById(MasterpageID + "txtFirstName").value).length == 0) {
        alert('Please enter your First name');
        document.getElementById(MasterpageID +"txtFirstName").style.background = '#FFFFcc';
        document.getElementById(MasterpageID +"txtFirstName").focus();
        return false;
    }
    document.getElementById(MasterpageID +"txtLastName").style.background = '#efefef';
        if (trim(document.getElementById(MasterpageID + "txtLastName").value).length == 0) {
        alert('Please enter your Last name');
        document.getElementById(MasterpageID +"txtLastName").style.background = '#FFFFcc';
        document.getElementById(MasterpageID +"txtLastName").focus();
        return false;
    }
    
    document.getElementById(MasterpageID + "txtEmailID").style.background = '#efefef';
    if(trim(document.getElementById(MasterpageID + "txtEmailID").value).length == 0 )
    {
        alert("Please enter the E-Mail address");
        document.getElementById(MasterpageID + "txtEmailID").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtEmailID").focus();
        return false;
    }

    document.getElementById(MasterpageID + "txtEmailID").style.background = '#efefef';
    var e = document.getElementById(MasterpageID + "txtEmailID").value;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!(filter.test(e))) 
    {
        alert('Invalid email address');
        document.getElementById(MasterpageID + "txtEmailID").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtEmailID").focus();
        return false;
    }
    
    document.getElementById(MasterpageID + "txtConfirmEmailID").style.background = '#efefef';
        if (trim(document.getElementById(MasterpageID + "txtEmailID").value) != trim(document.getElementById(MasterpageID + "txtConfirmEmailID").value)) {
            alert('Email addresses do not match');
            document.getElementById(MasterpageID + "txtConfirmEmailID").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "txtConfirmEmailID").focus();
            return false;
        }

    document.getElementById(MasterpageID + "txtPassword").style.background = '#efefef';
        if (trim(document.getElementById(MasterpageID + "txtPassword").value).length < 6) {
            alert('Password must be at least 6 characters');
            document.getElementById(MasterpageID + "txtPassword").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "txtPassword").focus();
            return false;
        }
         
        document.getElementById(MasterpageID + "txtConfirmPassword").style.background = '#efefef';
        if (trim(document.getElementById(MasterpageID + "txtPassword").value) != trim(document.getElementById(MasterpageID + "txtConfirmPassword").value)) {
            alert('Passwords do not match');
            document.getElementById(MasterpageID + "txtConfirmPassword").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "txtConfirmPassword").focus();
            return false;
        }
        
        document.getElementById(MasterpageID + "txtAddress1").style.background = '#efefef';
        if (trim(document.getElementById(MasterpageID + "txtAddress1").value).length == 0) {
            alert('Please enter your Address');
            document.getElementById(MasterpageID + "txtAddress1").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "txtAddress1").focus();
            return false;
        }
         
         document.getElementById(MasterpageID + "txtZipCode").style.background = '#efefef';
        if (trim(document.getElementById(MasterpageID + "txtZipCode").value).length == 0) {
            alert('Please enter your Zipcode');
            document.getElementById(MasterpageID + "txtZipCode").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "txtZipCode").focus();
            return false;
        }
        
        if(document.getElementById("city") == null)
            {
                if ((document.getElementById(MasterpageID + "spnCity") == null) || (document.getElementById("city1") != null))
                {
                    alert("Please enter valid Zip code");
                    document.getElementById(MasterpageID + "txtZipCode").style.background = '#FFFFcc';
                    document.getElementById(MasterpageID + "txtZipCode").focus();
                    return false;
                }               
            }
            else
            {   
                if(document.getElementById("city").options != null)
                {  
                   if(document.getElementById("city").options.length == 1)
                    {                
                        alert("Please enter valid Zip code");
                        document.getElementById(MasterpageID + "txtZipCode").style.background = '#FFFFcc';
                        document.getElementById(MasterpageID + "txtZipCode").focus();
                        return false;  
                    }
                    else
                    {                   
                        document.getElementById("city").style.background = '#efefef';
                        if ((document.getElementById("city").value == "Please Click here to select suburb") 
                        || (document.getElementById("city").value == "Please enter your post code"))
                        {
                            alert("Please select a valid suburb.");
                            document.getElementById("city").style.background = '#FFFFcc';
                            document.getElementById("city").focus();
                            return false;           
                        }
                    }
                }
            }
        
         document.getElementById(MasterpageID + "txtPhone").style.background = '#efefef';
        if (trim(document.getElementById(MasterpageID + "txtPhone").value).length == 0) {
            alert('Please enter our Phone Number');
            document.getElementById(MasterpageID + "txtPhone").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "txtPhone").focus();
            return false;
        }
        else
	      {
      		var e = document.getElementById(MasterpageID + "txtPhone").value;
            var numericexp = /^[0-9]+$/;
            if (!(e.match(numericexp)))
            {
		        alert('Invalid Phone number');
		        document.getElementById(MasterpageID + "txtPhone").style.background = '#FFFFcc';
		        document.getElementById(MasterpageID + "txtPhone").focus();
		        return false;
      		}
         }
         
return true;
}

//Modified on 29 Jul 09 by Siva - To validate whether the State is available for the selected zip code.
//For Zipcode, city populate using Ajax
function ZipChange() 
{
    document.getElementById(MasterpageID + "spnCity").innerHTML = '<select name=city id=city><option>Please enter your post code</option></select>';
    
    if (document.getElementById(MasterpageID + "txtZipCode").value.length == 0) return false;

    var SuburbSelection = ajax_request('processing.aspx?Action=GetSuburbs&zip=' + trim(document.getElementById(MasterpageID + "txtZipCode").value));

    if (SuburbSelection == 'Not a valid Postcode') {
        alert(SuburbSelection);
        document.getElementById(MasterpageID + "txtZipCode").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtZipCode").focus();
        return false;
    } else {
        document.getElementById(MasterpageID + "spnCity").innerHTML = SuburbSelection;
        if (SuburbSelection.indexOf('select') == -1) {
            SelectState();
            document.getElementById(MasterpageID + "hdnCity").value = SuburbSelection;
            //document.getElementById(MasterpageID + "txtPhone").focus();
        } 
    }
    return true;
}

// Selecting the State for the given zipcode using Ajax
function SelectState()
{
    var State = ajax_request('processing.aspx?Action=GetState&zip=' + document.getElementById(MasterpageID + "txtZipCode").value);
    if (State == 'NA')
    {
        alert('State is not available for the given zipcode. Please enter any other zipcode.');
        document.getElementById(MasterpageID + "spnCity").innerHTML = '<select name=city id=city><option>Please enter your post code</option></select>';
        document.getElementById(MasterpageID + "txtZipCode").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtZipCode").focus();
        return false;
    }
    else
    {
        document.getElementById(MasterpageID + "ddlState").value = State;
        CheckShippingState(State);
        return true;    
    }
}

// Check whether we can Ship to the State using Ajax
function CheckShippingState(State)
{
    var blnShipToState = ajax_request('processing.aspx?Action=CheckShippingState&State=' + State);
    
    if (blnShipToState == 'False')
    {
        var oDDL = document.getElementById(MasterpageID + "ddlState");
        var curText = oDDL.options[oDDL.selectedIndex].text;
        var message = "Sorry, we will not be able to ship to " + curText;
        alert(message);
        document.getElementById(MasterpageID + "spnCity").innerHTML = '<select name=city id=city><option>Please enter your post code</option></select>';
        document.getElementById(MasterpageID + "txtZipCode").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtZipCode").focus();
        return false;
    }
        return true;    
}


function ajax_request(url) {
    if (window.XMLHttpRequest) {
        AJAX = new XMLHttpRequest();
    } else {
        AJAX = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (AJAX) {
        AJAX.open("GET", url, false);
        AJAX.send(null);
        return AJAX.responseText;
    } else {
        alert('The browser you are using is not compatible. Please call 1-877-975-9463 to place your order.');
    }
}

//Validate Shipping Address
function fnValidateShippingAddress()
{

    document.getElementById(MasterpageID + "txtFirstName").style.background = '#efefef';
        if (trim(document.getElementById(MasterpageID + "txtFirstName").value).length == 0) {
        alert('Please enter your First name');
        document.getElementById(MasterpageID + "txtFirstName").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtFirstName").focus();
        return false;
    }
    document.getElementById(MasterpageID + "txtLastName").style.background = '#efefef';
        if (trim(document.getElementById(MasterpageID + "txtLastName").value).length == 0) {
        alert('Please enter your Last name');
        document.getElementById(MasterpageID + "txtLastName").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtLastName").focus();
        return false;
    }
   
        document.getElementById(MasterpageID + "txtAddress1").style.background = '#efefef';
        if (trim(document.getElementById(MasterpageID + "txtAddress1").value).length == 0) {
            alert('Please enter your Address');
            document.getElementById(MasterpageID + "txtAddress1").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "txtAddress1").focus();
            return false;
        }
        
         document.getElementById(MasterpageID + "txtCity").style.background = '#efefef';
        if (trim(document.getElementById(MasterpageID + "txtCity").value).length == 0) {
            alert('Please enter your City');
            document.getElementById(MasterpageID + "txtCity").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "txtCity").focus();
            return false;
        }
         
        document.getElementById(MasterpageID + "txtZipCode").style.background = '#efefef';
        if (trim(document.getElementById(MasterpageID + "txtZipCode").value).length == 0) {
            alert('Please enter your Zipcode');
            document.getElementById(MasterpageID + "txtZipCode").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "txtZipCode").focus();
            return false;
        }
        else
	      {
      		var e = document.getElementById(MasterpageID + "txtZipCode").value;
            var numericexp = /^[0-9]+$/;
            if (!(e.match(numericexp)))
            {
		        alert('Please enter valid ');
		        document.getElementById(MasterpageID + "txtZipCode").style.background = '#FFFFcc';
		        document.getElementById(MasterpageID + "txtZipCode").focus();
		        return false;
      		}
         }
         
return true;
}



//PaymentOptions, Forgot Password pages script has been added 
//Start Here

function ClientCheck() 
{
    var valid = false;
    //var ctrlID = "ctl00_cphMaster_";
    var grid = document.getElementById(MasterpageID + "gvPaymentDetails");
    var cell;
        
    //loop starts from 1. rows[0] points to the header.
    for (var i = 1; i < grid.rows.length; i++)
    {
        cell = grid.rows[i].cells[0];
        //loop according to the number of childNodes in the cell
        for (var j=0; j<cell.childNodes.length; j++)
        {         
            //if childNode type is CheckBox and its checked       

    
            if (cell != null && cell.childNodes[j].type =="checkbox" && cell.childNodes[j].checked)
            {
                //assign the status of the Select All checkbox to the cell checkbox within the grid
                valid = true;
                break;
            }
        }
    }
    if (!valid) 
    {
        alert("Please select a checkbox to delete the credit card.");
        return false;
    }
    else
    {
	    if (confirm("Are you sure you want to delete the selected card(s)?")==true)
		    return true;
	    else
		    return false;
    }
    //return valid;
}

function validate() 
{
    var var1 = new Date();
    var CurrMonth = var1.getMonth();
    var CurrYear = var1.getFullYear();
    //var ctrlID = "ctl00_cphMaster_";
    var ccnum = document.getElementById(MasterpageID + "txtCardNumber").value;
    var seccode = document.getElementById(MasterpageID + "txtSecCode").value;
    
    //alert(seccode);
    
    ccnum = ccnum.replace(/ /g, '').replace(/-/g, '');
    document.getElementById(MasterpageID + "txtCardNumber").style.background = '#efefef';

//    if (document.getElementById(MasterpageID + "ddlPayment").value == 'Select') 
//    {
//        alert('Please select the payment type.');
//        document.getElementById(MasterpageID + "ddlPayment").style.background = '#FFFFcc';
//        document.getElementById(MasterpageID + "ddlPayment").focus();
//        return false;
//    }
    document.getElementById(MasterpageID + "txtCardNumber").style.background = '#efefef';
    //alert(ccnum.length);
    if(ccnum.length > 0)
    {
        if (!isValidCardNumber(ccnum)) 
        {
            //alert('Please enter a valid credit card number.');
            document.getElementById("dvError").innerHTML = "<p><img src='../images/exclamation.png'> Please enter a valid credit card number.</p>";
            //alert(document.getElementById(MasterpageID + "lblError").value);
            document.getElementById(MasterpageID + "txtCardNumber").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "txtCardNumber").focus();
            return false;
        }

        document.getElementById(MasterpageID + "txtSecCode").style.background = '#efefef';
        
        if (seccode.length != 3)
        {
            alert('Please enter valid sec code.');
            document.getElementById(MasterpageID + "txtSecCode").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "txtSecCode").focus();
            return false;
        }
        
        if (!isValidSecCode(seccode)) 
        {
            alert('Please enter 3 digits sec code.');
            document.getElementById(MasterpageID + "txtSecCode").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "txtSecCode").focus();
            return false;
        }
        
        document.getElementById(MasterpageID + "ddlMonth").style.background = '#efefef';
        if (document.getElementById(MasterpageID + "ddlMonth").value == 'MM')
         {
            alert('Please enter the expiration month.');
            document.getElementById(MasterpageID + "ddlMonth").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "ddlMonth").focus();
            return false;
        }

       document.getElementById(MasterpageID + "ddlYear").style.background = '#efefef';
        if (document.getElementById(MasterpageID + "ddlYear").value == 'YYYY') 
        {
            alert('Please enter the expiration year.');
            document.getElementById(MasterpageID + "ddlYear").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "ddlYear").focus();
            return false;
        }
        
       document.getElementById(MasterpageID + "ddlMonth").style.background = '#efefef';
        if ((document.getElementById(MasterpageID + "ddlMonth").value < CurrMonth+1)&&( document.getElementById(MasterpageID + "ddlYear").value <= CurrYear)) 
        {
            alert('Expiration date cannot be less than the current date.');
            document.getElementById(MasterpageID + "ddlMonth").style.background = '#FFFFcc';
            document.getElementById(MasterpageID + "ddlMonth").focus();
            return false;
        }
    }
    else
    {
        alert('Please enter a valid credit card number.');
        document.getElementById(MasterpageID + "txtCardNumber").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtCardNumber").focus();
        return false;
    }
}
    
function isValidCardNumber(strNum)
{
    //var nCheck = 0;
    var nDigit = 0;
    //var bEven = false;
    var checksum = 0;
    var nDigitCheck = strNum.substring(0,6);
    
    //alert("Entered isValidCardNumber");
    if ((300000 <= nDigitCheck) && (309999 >= nDigitCheck)) 
    {
    alert("Sorry, you cannot use this credit card");
     
    } 
    else
    {
//        for (n = strNum.length - 1; n >= 0; n--) 
//        {
//            var cDigit = strNum.charAt(n);
//            if (isDigit(cDigit)) 
//            {
//                var nDigit = parseInt(cDigit, 10);
//                if (bEven) 
//                {
//                    if ((nDigit *= 2) > 9)
//                        nDigit -= 9;
//                }
//                nCheck += nDigit;
//                bEven = !bEven;
//            }
//            else if (cDigit != ' ' && cDigit != '.' && cDigit != '-') 
//            {
//                return false;
//            }
//        }
//        return (nCheck % 10) == 0;

        for (var n=(2-(strNum.length % 2)); n<=strNum.length; n+=2)
	    {
	        checksum += parseInt(strNum.charAt(n-1));
	    }
	    for (n =(strNum.length % 2) + 1; n<strNum.length; n+=2) 
	    {
	        var cDigit = strNum.charAt(n);
	        if (isDigit(cDigit))
	       {
		    cDigit = parseInt(strNum.charAt(n-1)) * 2;
		    if (cDigit < 10) 
		    {
		     checksum += cDigit; 
		     } 
		     else 
		     { checksum += (cDigit-9); 
		     }
	       }
	        else if (cDigit != ' ' && cDigit != '.' && cDigit != '-') 
	        {
		    return false;
	        }
	    }

		return (checksum % 10) == 0;
    }
}

function isValidSecCode(strNum)
{
    var nCheck = 0;
    var nDigit = 0;
    var bEven = false;
    var result = false;
    for (n = strNum.length - 1; n >= 0; n--) 
    {
        var cDigit = strNum.charAt(n);
        if (isDigit(cDigit)) 
        {
            var nDigit = parseInt(cDigit, 10);
            nCheck += nDigit;
        }
        else 
        {
            return false;
        }
    }
    return true;
}
        
function isDigit(c) 
{
    var strAllowed = "1234567890";
    return (strAllowed.indexOf(c) != -1);
}

function validateEmail() 
{
    document.getElementById(MasterpageID + "txtEmail").style.background = '#efefef';
    var e = document.getElementById(MasterpageID + "txtEmail").value;
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!(filter.test(e))) 
    {
        alert('Invalid email address');
        document.getElementById(MasterpageID + "txtEmail").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtEmail").focus();
        return false;
    }
    return true;
}

function validatePassword()
{
    document.getElementById(MasterpageID + "txtPassword").style.background = '#efefef';
    if (document.getElementById(MasterpageID + "txtPassword").value.length < 8) 
    {
        alert('Password must be at least 8 characters');
        document.getElementById(MasterpageID + "txtPassword").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtPassword").focus();
        return false;
    }

    document.getElementById(MasterpageID + "txtPasswordRepeat").style.background = '#efefef';
    if (document.getElementById(MasterpageID + "txtPassword").value != document.getElementById(MasterpageID + "txtPasswordRepeat").value) 
    {
        alert('Passwords does not match');
        document.getElementById(MasterpageID + "txtPasswordRepeat").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtPasswordRepeat").focus();
        return false;
    }
    return true;
}

//End Here


// Function to call the pages by selecting the dropdown in helpful hints pages
//Start
function MM_jumpMenu(targ,selObj,restore)
{ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}
//End


function fnValidateQuantity()
{
    document.getElementById(MasterpageID + "txtQuantity").style.background = '#efefef';
        if (trim(document.getElementById(MasterpageID + "txtQuantity").value).length == 0) {
        alert('Please enter the Quantity');
        document.getElementById(MasterpageID + "txtQuantity").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtQuantity").focus();
        return false;
    }
    else if (1 > (trim(document.getElementById(MasterpageID + "txtQuantity").value)))
    {
        alert('Quantity cannot be Zero');
        document.getElementById(MasterpageID + "txtQuantity").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtQuantity").focus();
        return false;
    }
    else if ((trim(document.getElementById(MasterpageID + "txtQuantity").value)) > 999)
    {
        alert('Quantity cannot be greater than 999');
        document.getElementById(MasterpageID + "txtQuantity").style.background = '#FFFFcc';
        document.getElementById(MasterpageID + "txtQuantity").focus();
        return false;
    }
     return true;
}

