﻿/* Customer validators */
function CheckTerms(sender, args) 
{ 
	args.IsValid = 
	(
	    document.getElementById("ctl00_ContentPlaceHolder1_chkCharge").checked && 
	    document.getElementById("ctl00_ContentPlaceHolder1_chkIllegal").checked && 
	    document.getElementById("ctl00_ContentPlaceHolder1_chkAckCharge").checked && 
	    document.getElementById("ctl00_ContentPlaceHolder1_chkIPAddress").checked && 
	    document.getElementById("ctl00_ContentPlaceHolder1_chkTerms").checked
	); 
}

function CheckDOB(sender, args) {
    var dobMonth = document.getElementById("ctl00_ContentPlaceHolder1_ddlMonth").value;
    var dobDay = document.getElementById("ctl00_ContentPlaceHolder1_ddlDay").value;
    var dobYear = document.getElementById("ctl00_ContentPlaceHolder1_ddlYear").value;

    if (dobYear == '-1' && (dobMonth != '-1' || dobDay != '-1'))
        args.IsValid = false;
    else if (dobYear != '-1' && dobMonth == '-1' && dobDay != '-1')
        args.IsValid = false;
    else
        args.IsValid = true;
}

function CheckCompanyAndName(sender, args) 
{ 
    var company = document.getElementById("ctl00_ContentPlaceHolder1_txtCompany").value;
    var firstName = document.getElementById("ctl00_ContentPlaceHolder1_txtFirstName").value;
    var lastName = document.getElementById("ctl00_ContentPlaceHolder1_txtLastName").value;
    
    if (company == '')
        if (firstName == '' && lastName == '')
            args.IsValid = false;
        else
            args.IsValid = true;
    else
        args.IsValid = true;
} 
function CheckPaymentQuantity(sender, args) 
{ 
    var stateQty = document.getElementById("ctl00_ContentPlaceHolder1_txtStateQuantity").value;
    var nationalQty = document.getElementById("ctl00_ContentPlaceHolder1_txtNationalQuantity").value;
    
    if (stateQty == '' && nationalQty == '')
        args.IsValid = false;
    else
        args.IsValid = true;
} 
function CheckExpirationDate(sender, args)
{
	var currentDate = new Date();
	
	// retreive month and year
	var cardMonth = parseFloat(document.getElementById("ctl00_ContentPlaceHolder1_ddlMonth").value);
	var cardYear = parseFloat(document.getElementById("ctl00_ContentPlaceHolder1_ddlYear").value);

	// check that month + year is valid
	if (cardMonth < currentDate.getMonth() + 1 && cardYear == currentDate.getFullYear())
		args.IsValid = false;
	else
		args.IsValid = true;
}

/* 
credit card validator scripts
*/
// Function that will determine if credit card passes Luhn's Formula
function IsNumberValid(sender, args)
{
	var strNum = args.Value;
	
	var nCheck = 0;
	var nDigit = 0;
	var bEven  = false;

	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;
	}
	args.IsValid = (nCheck % 10) == 0;
}
// Function to validate that character is a digit
function isDigit(c)
{
	var strAllowed = "1234567890";
	return (strAllowed.indexOf(c) != -1);
}
