/*
	Colin Cheverie July 2007 (colin@boothead.ca)
	Some common javascript validations
*/

function addEvent(elm, evType, fn, useCapture){
	// cross-browser event handling for IE5+, NS6+ and Mozilla/Gecko by Scott Andrew
	if(elm.addEventListener){
			elm.addEventListener(evType, fn, useCapture);
			return true;
		} else if(elm.attachEvent){
			var r = elm.attachEvent('on' + evType, fn);
			return r;
		} else {
			elm['on' + evType] = fn;
		}
	}
	
function validField(str) {
	if(str.length == 0 || str==" ") {
		return false;
		}
		return true;
	}	
	
function validNumber(str) {
	if(isNaN(str)) {
		return false;
	}
	for(i=0;i<3;i++)
	{
		if(str.substring(0+i,1+i)=="-"){
			return false;
		}	
		if(str.substring(0+i,1+i)=="+"){
			return false;
		}
		if(str.substring(0+i,1+i)=="."){
			return false;
		}	
	}		
	return true;
	}	
	
// this allows for leading zeroes	
function validNumberVariation(str) {
	if(isNaN(str)) {
		return false;
	}
	for(i=0;i<3;i++)
	{
		if(str.substring(0+i,1+i)=="-"){
			return false;
		}	
		if(str.substring(0+i,1+i)=="+"){
			return false;
		}
		if(str.substring(0+i,1+i)=="."){
			return false;
		}	
	}		
	return true;
	}	
			
function validSelect(str) {
	if(str == "" || str == null) {
		return false;
	}
	return true;
}
	
function validEmail(email) {
    invalidChars = " /:,;"
	if(email == '') {
		return false;
	} else {
		for (i=0; i<invalidChars.length; i++) {	// does it contain any invalid characters?
			badChar = invalidChars.charAt(i)
			if (email.indexOf(badChar,0) > -1) {
                return false;
			}
		}
        // check for @ symbol
		atPos = email.indexOf("@",1)			
		if (atPos == -1) {
            return false;
		}
        //check for only 1 @ symbol
		if (email.indexOf("@",atPos+1) != -1) {
            return false;
		}
        // and at least one . after the @
		periodPos = email.indexOf(".",atPos)
		if (periodPos == -1) {
        	return false;
		}
		//check for only 1 char after @ and before .
		if (atPos+1>=periodPos){
			return false;
		}
        // must be at least 2 characters after the .
		if (periodPos+3 > email.length)	{
        	return false;
		}
	}
	return true;
}

function validCheckbox(str) {
	if(str==false){
		return false;
	}
	return true;
}

function validRadioBtn(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return true;
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return false;
} // Ends the "getSelectedRadio" function

function validPhone(str) {
	if(str.charAt(0) == "0") {
		return false;
	} else {
		if(str.length != 10) {
			return false;
		}
	}
	return true;
}

function checkNewZip(strValue,country) {
	if(country=="US" || country==" "){
		var objRegExp = /(^\d{5}$)|(^\d{5}-\d{4}$)|(^\d{5}\s\d{4}$)/;
		return (objRegExp.test(strValue));
	}else{
		return validField(strValue);
	}
}	

function validChar(str)
{
	notValid = ",";
	for (i=0; i<notValid.length; i++)
	{
		badChar = notValid.charAt(i);
		if (str.indexOf(badChar,0) > -1)
		{
			return false;
		}
	}	
	return true;
}

