// DO NOT DELETE THESE TWO VARIABLES
var jpl = 0;var tmr_jpl;
tmr_jpl = window.setInterval(function(){jpl++;},1000);


function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

// 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
function isValidSerialNumber(src){
	var serialReg = /[0-9][A-L][KT][SY][A-Z][0-9]{5}$/
	var regex = new RegExp(serialReg);
	return regex.test(src);
};
function isValidArbitratorSerialNumber(src){
	var serialReg = /[A-L][0-9J-S][TN][A-Z][0-9][0-9]{4}$/
	var regex = new RegExp(serialReg);
	return regex.test(src);
};

function isValidModelVersion(src){
	var modelVersionReg = /^[a-zA-Z0-9]{7}$/
	var regex = new RegExp(modelVersionReg);
	return regex.test(src);;
};

function checkSerialRegex(){
	var re=/[0-9][A-L][KT][SY][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 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) && src.length==3;
};
// 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) && src.length==4;
};
// 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) && src.length==5;
};
function isValidZipCode(src){
/*
	var zipReg = /^\d{5}([\-]\d{4})?$/;
	var regex = new RegExp(zipReg);
	return regex.test(src);
*/
	
	return isFiveDigitNumeric(src);
};
function isValidPhoneNumber(src){
	var phoneNumberReg = /^\(\d{3}\) ?\d{3}( |-)?\d{4}|^\d{3}( |-)?\d{3}( |-)?\d{4}/;
	var regex = new RegExp(phoneNumberReg);
	return regex.test(src);
};

// VALIDATES WHETHER AN INPUT STRING IS A VALID SKU BETWEEN 11 and 17 CHARS
function isValidSku(src){
	var passwordReg = /^.{11,17}$/;
	var regex = new RegExp(passwordReg);
	return regex.test(src);
};

function setOpacity(elt,opacity){
	elt.style.opacity = opacity / 10;
	elt.style.filter = "alpha(opacity=" + opacity + ")"; elt.style.zoom = 1; // IE hasLayout workaround 
}

// 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;
};
