var trim = function(strText) { 
   // this will get rid of leading spaces 
    while (strText.substring(0,1) == ' ') 
        strText = strText.substring(1, strText.length);

    // this will get rid of trailing spaces 
    while (strText.substring(strText.length-1,strText.length) == ' ')
        strText = strText.substring(0, strText.length-1);

   return strText;
}

function checkWord(str,pattern){
    var reg = new RegExp(pattern,"i");
    if (reg.test(str)) 
        return true;
    else 
        return false;
}

// Limit Characters in Text Input Area
function limitText(formField, divID, limitNum) {
	if (formField.value.length > limitNum) {
		formField.value = formField.value.substring(0, limitNum);
        alert("You have reached the maximum number of characters allowed.");
	} else {
        writeToDiv(divID,limitNum - formField.value.length);
	}
}


function checkMail(theEmail){
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(theEmail)) return true;
	else return false;
}

// PHONE NUMBER ***********************************************
// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- . +";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s){   
	var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag) {   
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}
 // *************************************************************************
 
 // NUMBERS (NO COMMAS)
function isNumeric(sText) {
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++){ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
	 		IsNumber = false;
		}
	}
	return IsNumber;
}
 // NUMBERS (Commas Allowed, NO decimals)
function isNumericCom(sText) {
	var ValidChars = "0123456789,";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++){ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
	 		IsNumber = false;
		}
	}
	return IsNumber;
}

function checkHTTP(str, elementName) {
	var element =   str;          
	var   subSection0 = element.substring(7,0);      
	var subSection = subSection0.toLowerCase();
	var subSecure0 = element.substring(8,0); 
	var subSecure = subSecure0.toLowerCase(); 
	var answer =   false;  
	if(subSection == "http://"){
		elementName.value = element;
	} else if(subSecure ==   "https://") {
		elementName.value = element;
	} else {
		//writeToDiv(elementName, "http://"+element+"");
		elementName.value = "http://"+element+""
	}
	
	//alert(answer); 
}
 
// HTTP
function isURL(str) {
	var theurl=str.toLowerCase();
	var tomatch= /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2}/;
	var tomatch2= /https:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{2}/;
	var isPass=true;
	if (tomatch.test(theurl)==false){
		if (tomatch2.test(theurl)==false){
			isPass=false;
		}
	} 
	return isPass;
}
function updatePayment(){
	    f = document.theform
		f.paymentFirstName.value = f.firstName.value;
		f.paymentLastName.value = f.lastName.value;
		f.paymentCompanyName.value = f.companyName.value; // paymentCompanyName
		f.paymentStreetAddress.value = f.streetAddress.value; // paymentStreetAddress
		f.paymentSecondStreetAddress.value = f.secondStreetAddress.value; // paymentSecondStreetAddress
		f.paymentCity.value = f.city.value; // paymentCity

        var obj = document.getElementById('stateSelectUS');
        if (!obj || obj.disabled) {
 	       obj = document.getElementById('stateSelectCanada');

           if (!obj || obj.disabled) {
               obj = document.getElementById('stateText');
           }

        }

		obj.value = f.state.value; // paymentStateId
		f.paymentZip.value = f.zip.value; // paymentZip
		f.paymentCountry.value = f.country.value; // paymentCountry
}

// If the element's string matches the regular expression it is numbers and letters
function isUsername(string){
	// ^  (beginning of a string or line)
	// +  (one or more times)
	// $ (at end of a string or line)
	// /w (letter, numeral or underscore
	var alphaExp = /^[0-9a-zA-Z\w]+$/;
	if(string.match(alphaExp)){
		//alert("TRUE");
		return true;
	}else{
		//alert("FALSE");
		return false;
	}
}
function valRange(x, startRange, endRange) {
	var isValid = false;
	if ((x.length>=startRange)&&(x.length<=endRange))	{
		isValid = true;
	}
	return isValid;
}