﻿function phoneNumber_keyDown(event)
{
    var iKeyCode = event.which ? event.which : event.keyCode;
	var oElement = Event.element(event);
	
	var bNumber = (iKeyCode > 47 && iKeyCode < 58) || (iKeyCode > 95 && iKeyCode < 106);
	var bArrow = (iKeyCode > 36 && iKeyCode < 41);
	var bDelete = (iKeyCode == 8 || iKeyCode == 46);
	var bTab = (iKeyCode == 9);
	if (bNumber || bArrow || bDelete || bTab) {
	   
		var sValue = oElement.value.replace(/-/g, "");
		
		if (bNumber && sValue.length == 10)
			return false;
	}
	else
		return false;
}

function phoneNumber_keyup(event, countryControl_)
{
   if ($(countryControl_).value == "United States") {
	    var oElement = Event.element(event);
	    var sValue = oElement.value.replace(/-/g, "");
	    var tplPhoneNumber = new Template("#{0}#{1}#{2}-#{3}#{4}#{5}-#{6}#{7}#{8}#{9}");
	    var oDigits = {0: "", 1: "", 2: "", 3: "", 4: "", 5: "", 6: "", 7: "", 8: "", 9: ""};
	    for (var iCharacter = 0; iCharacter < 10; iCharacter++){
		    if (iCharacter == sValue.length)
			    break;
		    else
			    oDigits[iCharacter] = sValue.substr(iCharacter, 1);
	    }
	    var sNewValue = tplPhoneNumber.evaluate(oDigits).replace(/-+$/g, "");
	    oElement.value = sNewValue;
    }
}

function countryControl_Change(grpProvince,grpState,grpPostalCode, countryControl_)
{
    try
    {
        var currentCountry = $(countryControl_).value;
        $(grpProvince).addClassName('Hidden');
        $(grpState).addClassName('Hidden');
        $(grpPostalCode).addClassName('Hidden');

        switch(currentCountry)
        {
            case "Canada":
                $(grpProvince).removeClassName('Hidden');
                return;
            case "United States":
                $(grpState).removeClassName('Hidden');
                $(grpPostalCode).removeClassName('Hidden');
                return;
        }
    }
    catch(ex){}
}

function countryControl_ChangeExtended(grpProvince,grpState,grpAusState,grpCounty, grpPostalCode, countryControl_)
{
    try
    {
        var currentCountry = $(countryControl_).value;
        $(grpProvince).addClassName('Hidden');
        $(grpState).addClassName('Hidden');
        $(grpPostalCode).addClassName('Hidden');
        $(grpCounty).addClassName('Hidden');
        $(grpAusState).addClassName('Hidden');

        switch(currentCountry)
        {
            case "Canada":
                $(grpProvince).removeClassName('Hidden');
                return;
            case "United States":
                $(grpState).removeClassName('Hidden');
                $(grpPostalCode).removeClassName('Hidden');
                return;
            case "United Kingdom":
                $(grpCounty).removeClassName('Hidden');
                return;
            case "Australia":
                $(grpAusState).removeClassName('Hidden');
                return;
        }
    }
    catch(ex){}
}

function validators_change(enable,stateValControl_,postalCodeValControl_,provinceValControl_,reqFNameVal_
    ,reqLNameVal_,reqCompanyVal_,cusVPhoneNumberVal_,comCountryVal_,countryControl_)
{
    try
    {
        ValidatorEnable($(stateValControl_), false);
        ValidatorEnable($(postalCodeValControl_), false);
        ValidatorEnable($(provinceValControl_), false);
        
        ValidatorEnable($(reqFNameVal_), enable);
        ValidatorEnable($(reqLNameVal_), enable);
        ValidatorEnable($(reqCompanyVal_), enable);
        ValidatorEnable($(cusVPhoneNumberVal_), enable);
        ValidatorEnable($(comCountryVal_), enable);
        
        var country = $(countryControl_).value;  
        
        switch(country)
        {
            case "United States":
                ValidatorEnable($(stateValControl_), enable);
                ValidatorEnable($(postalCodeValControl_), enable);
                return;
            case "Canada":
                ValidatorEnable($(provinceValControl_), enable);
                return;
        }
    }catch(ex){}
}

function validators_change_extended(enable,stateValControl_,ausstateValControl_,countyValControl_, postalCodeValControl_,provinceValControl_,reqFNameVal_
    ,reqLNameVal_,reqCompanyVal_,cusVPhoneNumberVal_,comCountryVal_,countryControl_)
{
    try
    {
        ValidatorEnable($(stateValControl_), false);
        ValidatorEnable($(postalCodeValControl_), false);
        ValidatorEnable($(provinceValControl_), false);
        ValidatorEnable($(ausstateValControl_), false);
        ValidatorEnable($(countyValControl_), false);
        
        ValidatorEnable($(reqFNameVal_), enable);
        ValidatorEnable($(reqLNameVal_), enable);
        ValidatorEnable($(reqCompanyVal_), enable);
        ValidatorEnable($(cusVPhoneNumberVal_), enable);
        ValidatorEnable($(comCountryVal_), enable);
        
        var country = $(countryControl_).value;  
        
        switch(country)
        {
            case "United States":
                ValidatorEnable($(stateValControl_), enable);
                ValidatorEnable($(postalCodeValControl_), enable);
                return;
            case "Canada":
                ValidatorEnable($(provinceValControl_), enable);
                return;
            case "United Kingdom":
                ValidatorEnable($(countyValControl_), enable);
                return;
            case "Australia":
                ValidatorEnable($(ausstateValControl_), enable);
                return;
        }
    }catch(ex){}
}

function validatePostalCode(postalCodeControl_,countryControl_,cusVPostalCodeVal_)
{
    try
    {
        var oTextBox = $(postalCodeControl_);

	    return oTextBox.value.length > 0;
    }
    catch(ex){}
    return true;
}

function validateUKPostalCode(oTextBox) 
{
	var sValue = oTextBox.value;
	return (sValue.length < 9) && sValue.match(/^[0-9a-zA-Z ]+$/g) && sValue[0] != ' ';
}

function validatePhoneNumber(phoneControl_,countryControl_,cusVPhoneNumberVal_)
{
    try
    {
        var phoneNumber = $(phoneControl_).value;
        var country = $(countryControl_).value;

        if(((!country || country.length <= 0 || country.value == "Please Select...") && (!phoneNumber || phoneNumber.length <= 0)) || (phoneNumber.replace(/\s/g,"") == ""))
        {
             
            $(cusVPhoneNumberVal_).innerHTML  = defaultMessage ? "required!" : "- required!"; 
            return false;
        }
        
        if(country)
        {
            switch(country)
            {
                case "United States":
                    if(!/^\d{3}-\d{3}-\d{4}$/.test(phoneNumber))
                    {
                        $(cusVPhoneNumberVal_).innerHTML  =  defaultMessage ? "required!" : "U.S. requires 10 digits!"; 
                        return false;
                    }
                case "Afghanistan":
                case "American Samoa":
                case "Antarctica":
                case "Australia":
                case "Bangladesh":
                case "Bhutan":
                case "Brunei Darussalam":
                case "Cambodia":
                case "China":
                case "Christmas Island":
                case "Cocos (Keeling) Islands":
                case "Cook Islands":
                case "Fiji":
                case "French Polynesia":
                case "Guam":
                case "Heard Island and McDonald Is.":
                case "Hong Kong":
                case "India":
                case "Indonesia":
                case "Japan":
                case "Kazakhstan":
                case "Kiribati":
                case "Korea Democratic People’s Republic":
                case "Korea Republic of":
                case "Kyrgyzstan":
                case "Lao People’s Democratic Republic":
                case "Macau":
                case "Malaysia":
                case "Maldives":
                case "Marshall Islands":
                case "Micronesia Federal State of":
                case "Mongolia":
                case "Myanmar":
                case "Nauru":
                case "Nepal":
                case "New Caledonia":
                case "New Zealand":
                case "Niue":
                case "Norfolk Island":
                case "Northern Mariana Islands":
                case "Pakistan":
                case "Palau":
                case "Papua New Guinea":
                case "Philippines":
                case "Pitcairn Island":
                    //case "Samoa":
                case "Singapore":
                case "Solomon Islands":
                case "South Georgia":
                case "Sri Lanka":
                    //case "Tahiti":
                case "Taiwan":
                case "Tajikistan":
                case "Thailand":
                    //case "Timor-Leste":
                case "Tokelau":
                case "Tonga":
                case "Turkmenistan":
                case "Tuvalu":
                case "Uzbekistan":
                case "Vanuatu":
                case "Vietnam":
                case "Wallis and Futuna Islands":
                    if(phoneNumber.length <= 5)
                    {
                         $(cusVPhoneNumberVal_).innerHTML = defaultMessage ? "required!" : "Must enter 6 numbers or more for APAC countries!";
                         return false;
                    }
                default:
                    if(phoneNumber.replace(/\s/g,"") == "")
                    {
                        $(cusVPhoneNumberVal_).innerHTML  = defaultMessage ? "required!" : "- required!"; 
                        return false;
                    }    
            }
        }  
    }
    catch(ex){}
    return true;
}

var defaultMessage = false;