
/* List of function names:

	isEmailFormat(emailStr, alerttxt)CheckLength
	CheckLength(ctrl, len, alertMsg)
	isValidDate(yearsel, monthsel, daysel, alerttxt)
	validName(inputctrl, mandatory, specChars, numbers, spaces, alerttxtEmpty, alerttxt)
	RadioCheck(inputctrl,numcheck,alerttxt) 
	validZipCode(inputctrl, alerttxt, alerttxtSpecChar)
	validDateField(inputctrl, specChars, alerttxt, alerttxtSpecChar)
	phonevalidate(inputctrl, mandatory, alerttxt, alerttxtSpecChar)
	disables(inputctr,inputctr1)
	isOther(inputctr,inputctr,alerttxt)
	CompareFrmFields(inputctr1,inputctr2,alerttxt)
	notEmpty(inputctrl, alerttxt)
	notEmptyField(inputctrl, alerttxt)
	validNum(field, mandatory, alerttxtEmpty, alerttxt)
	trim(txt)
	spacesBetwenChars(txt,formInput)
	spacesBetwenCharsNoMessage(txt,formInput)
	isAlphanumericChar(ch)
	isNumericChar(ch)
	SpecialChars( txt, special, numbers, spaces, formInput)
	isSelected(inputctrl, alerttxt)


*/


function isEmailFormat(emailStr, alerttxt) {
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")+$")
	
	var matchArray=emailStr.match(emailPat)

	if (matchArray==null) {
		alert(alerttxt)
		return false
	}
	var user=matchArray[1]
	var domain=matchArray[2]

	if (user.match(userPat)==null) {
		alert(alerttxt)
		return false
	}

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
    // this is an IP address
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert(alerttxt)
			return false
			}
		}
		return true
	}
	
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		// no domain match on pattern /^atom+(\.atom)+$/
		//   i.e., pattern x.x was not found in var domain, where x
		//   is a valid char as defined in var, validChars, and can occur 1 or more times
		alert(alerttxt)
		return false
	}


	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	
	// the 5 in the following line was changed from a 4 so that 4 character top-level domains (like .info) can be accommodated.  :)
	if (domArr[domArr.length-1].length >= 5 || domArr[domArr.length-1].length <= 1) {
			alert(alerttxt)
			return false
	}

	//if (len<2) {
	 //  var errStr="This address is missing a hostname."
	  // alert(errStr)
	  // return false
	//}

	return true;
}

function CheckLength(ctrl, len, alertMsg) {
			var str = trim(ctrl.value)
			
			if (str.length > len) {
			     ctrl.value = str.substring(0,len)
			     alert(alertMsg);
			     //alert("new ctrl string length is " + ctrl.value.length + " chars");
			     ctrl.focus();
			     return false;                  
			 }
			else {
				return true;
			}
}
 
function isValidDate(yearsel, monthsel, daysel, alerttxt){
	var dat, month,day,year;
	var NetNav = (navigator.appName == "Netscape");
	if (NetNav) {
		month = monthsel.options[monthsel.selectedIndex].value - 1;
		day   = daysel.options[daysel.selectedIndex].value;
		year  = yearsel.options[yearsel.selectedIndex].value;
		dat = new Date(year,month,day);
	}
	else {
		month = monthsel.value - 1;
		day = daysel.value;
		year = yearsel.value;
		dat = new Date(year,month,day);
	}
	if (year == dat.getFullYear() &&
	    month == dat.getMonth() &&
	    day == dat.getDate()
	   )
		return true;
	else {
		alert(alerttxt);
		daysel.focus();
		return false;
	}
}


//numbers=true if should leave numbers in the field
function validName(inputctrl, mandatory, specChars, numbers, spaces, alerttxtEmpty, alerttxt) {
	var txt;
	txt = trim(inputctrl.value);
	inputctrl.value = txt;
	
	if (mandatory) {
		if(txt=="") {
			if(alerttxtEmpty!=null)
			{
				alert(alerttxtEmpty);
				inputctrl.focus();
			}	
			return false;
		}
	}
	
	//if( SpecialChars( txt, specChars, numbers, spaces, inputctrl) ) {
	//	alert(alerttxt);
	//	inputctrl.focus();
	//	return false;
	//}

	return true;
}


function validState(inputctrl, mandatory, specChars, numbers, spaces, alerttxtEmpty, alerttxt) {
	var txt;
	txt = trim(inputctrl.value);
	inputctrl.value = txt;
	
	if (mandatory) {
		if(txt=="") {
			if(alerttxtEmpty!=null)
			{
				alert(alerttxtEmpty);
				inputctrl.focus();
			}	
			return false;
		}
	}
	

	return true;
}

function validZipCode(inputctrl, alerttxt, alerttxtSpecChar) {
	var txt;
	txt = trim(inputctrl.value);
	inputctrl.value = txt;

	if(txt=="") {
		alert(alerttxt);
		inputctrl.focus();
		return false;
	}
	if (txt.length!=5 && txt.length!=10) {
		alert(alerttxt);
		inputctrl.focus();
		return false;
	}
	
	for( i=0;i<txt.length;i++ ){
		if (i==5 && txt.charAt(5)!='-'){
			alert(alerttxt);
			inputctrl.focus();
			return false;
		}
		if ( i!=5 && (txt.charAt(i)<'0' || txt.charAt(i)>'9')) {
			if (txt.charAt(i)=='-') {
				alert(alerttxt);
			} else {
				alert(alerttxtSpecChar);
			}
			inputctrl.focus();
			return false;
		}
	}
	return true;
}


function validDateField(inputctrl, specChars, alerttxt, alerttxtSpecChar) {
	var txt;
	txt = trim(inputctrl.value);
	inputctrl.value = txt;

	if(txt=="") {
		alert(alerttxt);
		inputctrl.focus();
		return false;
	}
	if (txt.length!=8) {
		alert(alerttxt);
		inputctrl.focus();
		return false;
	}
	
	for( i=0;i<txt.length;i++ ){
		if (txt.charAt(i)<'0' || txt.charAt(i)>'9') {
			if (txt.charAt(i)!='/') {
			alert(alerttxtSpecChar)
			inputctrl.focus();
			return false;
			}
		}
	}
	return true;
}



function phonevalidate(inputctrl, mandatory, alerttxt, alerttxtSpecChar)
{
		
		var txt;
		txt = trim(inputctrl.value);
		inputctrl.value=txt;
		if (mandatory) {
			if(txt=="") {
					alert(alerttxt);
					inputctrl.focus();
					return false;
			}
		}
		num=0;	
		for( i=0;i<txt.length;i++ ){
			if (txt.charAt(i)!='-')
			{
				if ((txt.charAt(i)<'0' || txt.charAt(i)>'9')) 
				{
					alert(alerttxtSpecChar);
					inputctrl.focus();
					return false;
				}else{
					num++;
					//alert(num);
				}
			}else{
				if (i>0){
					if(txt.charAt(i-1)=='-'){
						alert(alerttxt);
						inputctrl.focus();
						return false;
					}
				}	
			}	
		}
		if(txt!="")
			if(num!=10){
			alert(alerttxt);
			inputctrl.focus();
			return false;
		}
		return true;
}

function RadioCheck(inputctrl,numcheck,alerttxt) 
{ 
  	for (var i=0; i<=numcheck - 1; i++) {
    	if (inputctrl[i].checked == true)
    	{
			return true;
		}	
	  }
	alert(alerttxt);
	inputctrl[0].focus();
	return false;
}


function validCurrency(fld, mandatory, fldname, emptymsg ) 
{ 
   var temp_value = fld.value; 

   if ((temp_value == "") && (mandatory))
   { 
     //fld.value = "$0.00"; 
     alert(emptymsg);
     return false; 
   } 
   var Chars = "0123456789.,$"; 
   
   //if (mandatory){
		for (var i = 0; i < temp_value.length; i++) 
		{ 
		    if (Chars.indexOf(temp_value.charAt(i)) == -1) 
		    { 
		        alert("Only numbers (0-9), a dollar sign, a comma, and a period are allowed in " + fldname + "."); 
		        fld.focus(); 
				   fld.select(); 
				   return false;
			 }
			 else {
		        return true; 
		     } 
		} 
	
		return true;
	//}
} 



function disables(inputctr,inputctr1)
{
	//Use this code as reference - carlos
	//if (inputctrl.options[inputctrl.selectedIndex].text==" " || trim(inputctrl.options[inputctrl.selectedIndex].text).toUpperCase()=="OTHER" || inputctrl.options[inputctrl.selectedIndex].value=='-1')
	//	{inputctr2.disabled=false;}
	//else{inputctr2.blur();}
	
	if (inputctr.options[inputctr.selectedIndex].value=="" || trim(inputctr.options[inputctr.selectedIndex].value).toUpperCase()=="OTHER") 
		{
		inputctr1.disabled=false;
		}
	else
		{
		inputctr1.value=" ";
		inputctr1.blur();
		}
}
function isOther(inputctr,inputctr,alerttxt)
{
	if(trim(inputctr.options[inputctr.selectedIndex].value).toUpperCase()=="OTHER") 
	{
		if(validName(inputctr1, alerttxt))	
		{
		return true;
		}
		else
		{
		return false;
		}
	}
	else
	{
	return true;
	}
}
function CompareFrmFields(inputctr1,inputctr2,alerttxt)
{
	if (inputctr1.value != inputctr2.value) {
	alert(alerttxt);
	inputctr2.focus();
	return false;
	}
	else
	{
	return true;
	}
}
function notEmpty(inputctrl, alerttxt) {

	if(inputctrl==null) {
		if(alerttxt!=null)
		{
			alert(alerttxt);
		}	
		return false;
	}
	
	var selSomeItems;
	selSomeItems = false;

	for (i = 0; i < inputctrl.length; i++) {
	    if (inputctrl[i].checked) {
	        selSomeItems = true;
			break;
	    }
	}

	if(!selSomeItems) {
		if(alerttxt!=null)
		{
			alert(alerttxt);
		}	
		return false;
	}
	
	return true;
}

function notEmptyField(inputctrl, alerttxt) {
	
	if(inputctrl==null) {
		if(alerttxt!=null)
		{
			alert(alerttxt);
			inputctrl.focus();
		}	
		return false;
	}
		
	if(inputctrl.value=="") {
		if(alerttxt!=null)
		{
			alert(alerttxt);
			inputctrl.focus();
		}	
		return false;
	}	
			
	
	return true;
}


function validNum(field, mandatory, alerttxtEmpty, alerttxt)
{

	var boolNum, i;
	var str = field.value;
	
	boolNum = true;
	
	if (str == "") {
		if (mandatory) {
			boolNum = false;
			alert(alerttxtEmpty);
		}
	} else {
		for (i = 0; i < str.length; i++) {
		    if ( ! isNumericChar(str.charAt(i)) ) {
		        boolNum = false;
		        alert(alerttxt);
				break;
		    }
		}
	}    
	return boolNum;

}


function LTrim(str){
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(0)) != -1) {
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;
      s = s.substring(j, i);
   }
   return s;
}

function RTrim(str){
   var whitespace = new String(" \t\n\r");
   var s = new String(str);
   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      var i = s.length - 1;       // Get length of string
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }
   return s;
}

function trim(str){
   return RTrim(LTrim(str));
}
		
function spacesBetwenChars(txt,formInput){
	for(var i=0;i<txt.length;i++){
		if (txt.charAt(i)==" "){
			alert ("Spaces betwen characters are not allowed");
			formInput.focus();
			return true;
		}
	}
	return false;
}

function spacesBetwenCharsNoMessage(txt,formInput){
	for(var i=0;i<txt.length;i++){
		if (txt.charAt(i)==" "){
			formInput.focus();
			return true;
		}
	}
	return false;
}

function isAlphanumericChar(ch){
	var charCode=ch.charCodeAt(0);
	if( (charCode>=48 && charCode<=57) || (charCode>=65 && charCode<=90) || (charCode>=97 && charCode<=122) )
		return true;
	else
		return false;
}

function isNumericChar(ch){
	var charCode=ch.charCodeAt(0);
	if( (charCode>=48 && charCode<=57))
		return true;
	else
		return false;
}

function SpecialChars( txt, special, numbers, spaces, formInput) {
	for(var i=0;i<txt.length;i++){
		var ch = txt.charAt(i);
		if ( !isAlphanumericChar(ch) && !(ch==' ' && spaces) && ( special.indexOf(ch) == -1 ) ){
			formInput.focus();
			return true;
		}
		if(!numbers){
			if (isNumericChar(ch)){
				formInput.focus();
				return true;
			}
		}
	}
	return false;
}

function isSelected(inputctrl, alerttxt) {

/*  use the following if you want the first item to return false
	if(inputctrl.selectedIndex==0){
		alert(alerttxt);
		inputctrl.focus();
		return false;
	}
*/

//  use the following if you want empty-string to return false 
	if(inputctrl.value==''){
		alert(alerttxt);
		inputctrl.focus();
		return false;
	}


	return true;
}


function OpenTerms(){
	var newwin = window.open('/terms.htm','winTerms','width=400, height=470, top=0, left=0, toolbar=no, menubar=no, location=no, directories=no, scrollbars=yes');
} 

// CREATEED
function confirmDelete(message, redirectURL) {
	if(confirm(message))
		location = redirectURL;
}


