// General function that returns false if "fieldname" is not a number.
function checknumber(fieldname) {
	var strStripped = ignoreSpaces(fieldname.value);
	var numPattern = /\d/;
	var nonNumPattern = /\D/;

	var isNumber = ( strStripped.match(numPattern) == null )? false : true;
	var isNonNumber = ( strStripped.match(nonNumPattern) == null )? false : true;

	var fieldval = ( isNumber && !isNonNumber ) ? true : false;
	return fieldval;
}

// General function that returns a string with its spaces removed.
function ignoreSpaces(string) {
	//alert("string:" + string);
	var temp = "";
	string = '' + string;
	splitstring = string.split(" ");
	for(i = 0; i < splitstring.length; i++) {
		temp += splitstring[i];
	}
	return temp;
}

// General function that returns false if "fieldname" is empty.
function checkfield(fieldname) {
	var strStripped = ignoreSpaces(fieldname.value);
	//alert(strStripped.length);
	var fieldval = (strStripped.length == '') ? false: true;
	return fieldval;
}

// validate dropdown
function checkoption(fieldname) {
	var fieldval = (fieldname.options[fieldname.selectedIndex].value == 0)? false: true;
	return fieldval;
}

// validate float
function checkfloat(fieldname) {
	var strStripped = ignoreSpaces(fieldname.value);
	var floatPattern = /^(\d+\.?\d*|\.\d+)$/;
	var isFloat = ( strStripped.match(floatPattern) == null )? false : true;
	return isFloat;
}


/* 
bug: does not allow hyphenated domain names - i.e. winfall-lottery.com
function checkemail(fieldname) {
	var strStripped = ignoreSpaces(fieldname.value);
	// 	var emailPattern = /\w{1,}@\w{1,}\.\w{1,}/;			// Pattern is "j@g.f"
	//	var emailPattern = /\S+@\S+\.\S+/;					// Pattern is "j@g.f"
	var emailPattern = /\w+@\w.+\w+/;	
	var isEmail = ( strStripped.match(emailPattern) == null )? false : true;
	return isEmail;
}
*/

// validate email
function checkemail(fieldname) {
	var emailPattern = (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/);
	var isEmail = emailPattern.test(fieldname.value);
	return isEmail;
	}


// validate url
function checkurl(fieldname) {
	var strStripped = ignoreSpaces(fieldname.value);
	var isURL = true;

	if (strStripped.length != 0) {
		isURL = ( 
			(fieldname.value.indexOf("http://") == 0) || 
			(fieldname.value.indexOf("https://") == 0) ||
			(fieldname.value.indexOf("ftp://") == 0) ||
			(fieldname.value.indexOf("ftps://") == 0)
		)? true : false;

	}		
	return isURL;
}

// validate radio
function checkradio(fieldname) {
	var numradio = fieldname.length;
	var onechecked = false;
	for (counter = 0; counter < numradio; counter++) {
		if ( fieldname[counter].checked ) {
			onechecked = true;
		}
	}
	return onechecked;
}


// Check that a Canadian postal code is valid
function isValidPostalcode(postalcode) {
	if (postalcode.search) {
		//postalcode = removeSpaces(postalcode);
		//alert(postalcode);
		//if (postalcode.length == 6 && postalcode.search(/^\w\d\w\d\w\d$/) != -1) return true;
		//else if (postalcode.length == 7 && postalcode.search(/^\w\d\w\-d\w\d$/) != -1) return true;
		// postal code has to be in 'V6B 1B6' format
		if (postalcode.length == 7 && postalcode.search(/^\w\d\w \d\w\d$/) != -1) return true;
		else return false;
	}
	return true;
}

// Remove all spaces from a string
function removeSpaces(string) {
	var newString = '';
	for (var i = 0; i < string.length; i++) {
		if (string.charAt(i) != ' ') newString += string.charAt(i);
	}
	return newString;
}

function isValidZip(field) {
	var valid = "0123456789-";
	var hyphencount = 0;
	
	field = removeSpaces(field);
	
	if (field.length!=5 && field.length!=10) {
		//alert("Please enter your 5 digit or 5 digit+4 zip code.");
		return false;
	}
	for (var i=0; i < field.length; i++) {
		temp = "" + field.substring(i, i+1);
		if (temp == "-") hyphencount++;
			if (valid.indexOf(temp) == "-1") {
			//alert("Invalid characters in your zip code.  Please try again.");
			return false;
		}
		if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
			//alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
			return false;
	   }
	}
	return true;
}

function checktest(field){
	//alert(field);
	
	var valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' "
	var ok = "yes";
	var temp;
	for (var i=0; i<field.length; i++) {
		temp = "" + field.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if (ok == "no") {
		return false;
	   }
	else {
		return true;
	}
	}
	

