

// VALIDATES WHETHER AN INPUT STRING IS A VALID EMAIL ADDRESS
function isValidEmail(src){
	//var emailReg = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9])+(\.[a-zA-Z0-9_-]+)+$/;
	var emailReg = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/;
	var regex = new RegExp(emailReg);
	return regex.test(src);
};

// VALIDATES WHETHER AN INPUT STRING IS A VALID SERIAL NUMBER
//Modified by Firoza @RDC for RM34653 on 3/6/2008 to validate serial number for Arbitrator Products.
function isValidSerialNumber(src){
	
	//By default set the isValidSN = false
	var isValidSN = false; //Isvalidserailnumber
	//Check if arbitrator product has been selected.
	var val = document.tccform.modelNumberAndCatentryId.value;
	var index = val.indexOf('*');
	var newStr = val.substring(0,index);
	if (newStr == 'ARBTR') 
		{
		//Check if the supplied serial number is valid arbitartor serial number
		//If yes then set the isValidSN = true
		//Modified by Om for PM152369
		//var serialArbReg = /[A-L][0-9|J-S][T|N][A-Z][A-Z][0-9]{4}$/  
		var serialArbReg = /[A-L][0-9|J-S][T|N][A-Z][0-9][0-9]{4}$/  
		if(new RegExp(serialArbReg).test(src)) //Supplied arbitrator serial number is valid
			isValidSN = true;
		} 
	else //other model is being selected
	{
		//validate regular serial number
		//If valid set the isValidSN = true
		var serialReg = /[0-9][A-L][A-Z|0-9][A-Z|0-9][A-Z][0-9]{5}$/

		if(new RegExp(serialReg).test(src))
			isValidSN = true;
	}
	
	return isValidSN;

};

function checkSerialRegex(){
	//var re=/[0-9][A-L][KT][SY][A-Z][0-9]{5}$/;
	var re = /[0-9][A-L][A-Z|0-9][A-Z|0-9][A-Z][0-9]{5}$/
	if (document.tccform.email.value.search(re)==-1) { //if match failed
		document.getElementById('serialNumberInvalid').style.display = 'block';
	}
	else {
		document.getElementById('serialNumberInvalid').style.display = 'none';
	}
};

// VALIDATES WHETHER AN INPUT STRING IS A VALID PASSWORD CONTAINING AT LEAST 6 AND AT MOST 12 CHARACTERS
function isValidPassword(src){
	//var passwordReg = /^.{6,12}$/;
	var passwordReg = /^.*(?=.{6,12})(?=.*[a-zA-Z])(?=.*\d).*$/;
	var regex = new RegExp(passwordReg);
	return regex.test(src);
};

// VALIDATES WHETHER AN INPUT STRING IS NUMERIC ONLY
function isNumeric(src){
	var numericOnlyReg = /^\d+$/;
	var regex = new RegExp(numericOnlyReg);
	return regex.test(src);
};
// VALIDATES WHETHER AN INPUT STRING IS NUMERIC ONLY WITH EXACTLY 3 DIGITS
function isThreeDigitNumeric(src){
	var numericOnlyReg = /^\d{3}$/;
	var regex = new RegExp(numericOnlyReg);
	return regex.test(src);
};
// VALIDATES WHETHER AN INPUT STRING IS NUMERIC ONLY WITH EXACTLY 4 DIGITS
function isFourDigitNumeric(src){
	var numericOnlyReg = /^\d{4}$/;
	var regex = new RegExp(numericOnlyReg);
	return regex.test(src);
};
// VALIDATES WHETHER AN INPUT STRING IS NUMERIC ONLY WITH EXACTLY 5 DIGITS
function isFiveDigitNumeric(src){
	var numericOnlyReg = /^\d{5}$/;
	var regex = new RegExp(numericOnlyReg);
	return regex.test(src);
};

// VALIDATES WHETHER AN INPUT STRING IS A VALID DATE
function isValidDate(dateStr, format) {
   if (format == null) { format = "MDY"; }
   format = format.toUpperCase();
   if (format.length != 3) { format = "MDY"; }
   if ( (format.indexOf("M") == -1) || (format.indexOf("D") == -1) || (format.indexOf("Y") == -1) ) { format = "MDY"; }
   if (format.substring(0, 1) == "Y") { // If the year is first
      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
      var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
   } else if (format.substring(1, 2) == "Y") { // If the year is second
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
   } else { // The year must be third
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/ //simpified customizing by changing this regexp to be the same as reg2, 4-digit year
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
   }
   // If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
   if ( (reg1.test(dateStr) == false) && (reg2.test(dateStr) == false) ) { return false; }
   var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
   // Check to see if the 3 parts end up making a valid date
   if (format.substring(0, 1) == "M") { var mm = parts[0]; } else if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; }
   if (format.substring(0, 1) == "D") { var dd = parts[0]; } else if (format.substring(1, 2) == "D") { var dd = parts[1]; } else { var dd = parts[2]; }
   if (format.substring(0, 1) == "Y") { var yy = parts[0]; } else if (format.substring(1, 2) == "Y") { var yy = parts[1]; } else { var yy = parts[2]; }
   if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
   if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
   var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
   if (parseFloat(dd) != dt.getDate()) { return false; }
   if (parseFloat(mm)-1 != dt.getMonth()) { return false; }
   return true;
};