function hasDomainFilter(inputctrl,domainStringAlound,correctDomain,alerttxt){
		var domains_aloud		= domainStringAlound; //"domain.com,domain2.com,domain3.com"
		var	Arr_domains_aloud	= domains_aloud.split(",");
		var emailString			= inputctrl.value;
		var atsign = emailString.substring(0,emailString.lastIndexOf('@')+1);
		var domain = emailString.substring(atsign.length,emailString.length+1);
		
		for (i=0; i < Arr_domains_aloud.length; i++) 
			{ 
				if (domain == Arr_domains_aloud[i]) {
					return true;
				}
			}
		alert(alerttxt);
		if (correctDomain != "") {
			inputctrl.value = correctDomain;
		}
		inputctrl.focus();
		inputctrl.select(); 
		return false;
	}

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 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;
	}
}


function checkNoPO(inputctrl, mandatory, alerttxtEmpty) {
	
	if (!ismandatory (inputctrl , mandatory ,alerttxtEmpty)) {
		return false
	}
	
	var theInput;
	theInput = inputctrl.value.toLowerCase(); 
	
	  if (theInput.indexOf("po.") == 0 || theInput.indexOf("po ") == 0 || theInput.indexOf("p.o") >= 0 || theInput.indexOf("p.o.") >= 0) { 
		alert(alerttxtEmpty);
		inputctrl.focus();
		inputctrl.select(); 
		return false;
	  } else { 
		return true;
	  } 
}

//numbers=true if should leave numbers in the field
function validName(inputctrl, mandatory, specChars, numbers, spaces, alerttxtEmpty, alerttxt) {
	
	
	if (!ismandatory (inputctrl , mandatory ,alerttxtEmpty)) {
		return false
	}
	
	var txt;
	txt = trim(inputctrl.value);
	inputctrl.value = txt;
	
	
	if( SpecialChars( txt, specChars, numbers, spaces, inputctrl) ) {
		alert(alerttxt);
		inputctrl.focus();
		inputctrl.select(); 
		return false;
	}
	
	return true;
}

function validEmail(inputctrl, mandatory , specChars, numbers, spaces, alerttxtEmpty,alerttxtSpecChar) {
	var txt;
	//only perform this is if a text input box.
	switch(inputctrl.type) {
		case "text":
	
				if (!ismandatory (inputctrl , mandatory ,alerttxtEmpty)) {
					return false
				}
	
				temp_value = trim(inputctrl.value);
				inputctrl.value = temp_value;
	
				 if(temp_value != "") {
					 
						if (spacesBetwenChars(temp_value,inputctrl)) return false;
						if(temp_value=="") {
							alert(alerttxtEmpty);
							inputctrl.focus();
							return false;
						}
					
						if( SpecialChars( temp_value, specChars, numbers, spaces, inputctrl) ) {
							alert(alerttxtEmpty);
							inputctrl.focus();
							inputctrl.select(); 
							return false;
						}
					
						if(!isEmailFormat(temp_value, alerttxtEmpty)){
							inputctrl.focus();
							inputctrl.select(); 
							return false;
						}
						
				 }
			
		break;
	}
	
		
	return true;
}

function Confirm(inputctrl, confirmctrl, alert1, alert2) {
	var txt;
	
	txt = trim(inputctrl.value);
	inputctrl.value = txt;
	if(txt=="") {
		alert(alert1);
		inputctrl.focus();
		return false;
	}
	if (inputctrl.value != confirmctrl.value){
		alert(alert2);
		inputctrl.focus();
		return false;
	}
	return true;
}

function validZipCode(inputctrl , mandatory , isInternational, alerttxtEmpty, alerttxtSpecChar) {

	if (inputctrl.disabled == true) {
		//alert(inputctrl.disabled + "tets")	
		return true;
	}

	if (isInternational) {
		return true;
	}

	if (!ismandatory (inputctrl , mandatory ,alerttxtEmpty)) {
		return false
	}

	var temp_value;
	temp_value = trim(inputctrl.value);
	inputctrl.value = temp_value;

	 if(temp_value != "") {
		
			if (temp_value.length!=5 && temp_value.length!=10) {
				alert(alerttxtEmpty);
				inputctrl.focus();
				return false;
			}
	
	
			for( i=0;i<temp_value.length;i++ ){
						if (i==5 && temp_value.charAt(5)!='-'){
							alert(alerttxtEmpty);
							inputctrl.focus();
							return false;
						}
						if ( i!=5 && (temp_value.charAt(i)<'0' || temp_value.charAt(i)>'9')) {
							if (temp_value.charAt(i)=='-') {
								alert(alerttxtEmpty);
								inputctrl.focus();
							} else {
								alert(alerttxtSpecChar);
								inputctrl.focus();
								inputctrl.select(); 
							}
				
							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 validAddress1(inputctrl, alerttxt) {
	if (validName(inputctrl, alerttxt)){
		var txt;
		var txt2="";
		txt=inputctrl.value;
		for(var i=0;i<txt.length;i++){
			if (isAlphanumericChar(txt.charAt(i))){
				txt2=txt2+txt.charAt(i);
			}
		}
		txt2=txt2.toUpperCase();
		if(txt2.indexOf("POBOX")!=-1){
			alert(alerttxt);
			inputctrl.focus();
			return false;
		}
		if(txt2.indexOf("BOXPO")!=-1){
			alert(alerttxt);
			inputctrl.focus();
			return false;
		}
	}else{
		return false;
	}
	return true;
}

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
	
	// Declaring required variables
	var digits = "0123456789";
	// non-digit characters which are allowed in phone numbers
	var phoneNumberDelimiters = "()- ";
	// characters which are allowed in international phone numbers
	// (a leading + is OK)
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	// Minimum no of digits in an international phone no.
	var minDigitsInIPhoneNumber = 10;
	
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function phonevalidate(inputctrl, mandatory, alerttxtEmpty, alerttxtSpecChar) {
	
		if (inputctrl.disabled == true) {
		//alert(inputctrl.disabled + "tets")	
		return true;
		}
	
		if (!ismandatory (inputctrl , mandatory ,alerttxtEmpty)) {
			return false
		}
		
		var temp_value
		temp_value=inputctrl.value;
		 if(temp_value != "") {
			 
				if (checkInternationalPhone(temp_value)==false){
					alert(alerttxtSpecChar)
					//inputctrl.value=""
					inputctrl.focus();
					inputctrl.select(); 
					return false
				}

		 }
		
		return true;
}


function validateDollar( inputctrl , mandatory , alerttxtEmpty, alerttxt) 
{ 
   var temp_value = inputctrl.value; 
	
	if (inputctrl.disabled == true) {
		//alert(inputctrl.disabled + "tets")	
		return true;
	}


 	if (!ismandatory (inputctrl , mandatory ,alerttxtEmpty)) {
		return false
	}
	
		if(temp_value != "") {
		   var Chars = "0123456789.,$"; 
		   for (var i = 0; i < temp_value.length; i++) 
		   { 
			   if (Chars.indexOf(temp_value.charAt(i)) == -1) 
			   { 
				   alert(alerttxt); 
				   inputctrl.focus(); 
				   inputctrl.select(); 
				   return false; 
			   } 
		   }
		}
	
	
   return true;
} 


function isChecked(inputctrl,mandatory ,alerttxtEmpty) 
{ 
	if (inputctrl.disabled == true) {
		//alert(inputctrl.disabled + "tets")	
		return true;
	}
	

	if (!ismandatory (inputctrl , mandatory ,alerttxtEmpty)) {
			return false
	}

	return true;
}

function ismandatory(inputctrl , mandatory ,alerttxtEmpty ) {
	
	
	//return false;
	//inputctrl.elements[i].disabled = true;		
	
	if (inputctrl.disabled == true) {
		//alert(inputctrl.disabled + "tets")	
		return true;
	}
	
	
	
	if ( (typeof inputctrl.type) == "undefined" )
	{ 
		if (mandatory) {		
				for ( var i = 0; i < inputctrl.length; i++ ) {
					if (inputctrl[i].checked == true) {
						return true;
						break;
						}
				}
						
				alert(alerttxtEmpty);
				inputctrl[0].focus();
				return false;
		}
		else {
			return true;
		}
	}
	else
	{ 
		
	
		switch(inputctrl.type) {
			case "radio":
					if (mandatory) {	
						for ( var i = 0; i < inputctrl.length; i++ ) {
						if (inputctrl[i].checked == true) {
							return true;
							break;
							}
					}
						
					alert(alerttxtEmpty);
					inputctrl[0].focus();
					return false;
				}
				else {
					return true;
				}
					
				break;	
			
			case "checkbox":
				if (mandatory) {	
					if ( !inputctrl.checked ) {
						alert(alerttxtEmpty);
						inputctrl.focus();
						return false;
						}
				}
				else {
					return true;
				}
					
				break;	
			case "select-one":
				break;
			case "textarea":
				temp_value = inputctrl.value.length;
				if (mandatory) {
					if(temp_value == "") {
						if(alerttxtEmpty!=null)
						{
							alert(alerttxtEmpty);
							inputctrl.focus();
						}
						else {
							alert("Please enter your answer in the highlighted field");
							inputctrl.focus();
							}
						return false;
					}
				}
				
				break;
			case "text":
				temp_value = inputctrl.value;
				if (mandatory) {
					if(temp_value == "") {
						if(alerttxtEmpty!=null)
						{
							alert(alerttxtEmpty);
							inputctrl.focus();
						}
						else {
							alert("Please enter your answer in the highlighted field");
							inputctrl.focus();
							}
						return false;
					}
				}
			break;
			case "password":
				temp_value = inputctrl.value;
				if (mandatory) {
					if(temp_value == "") {
						if(alerttxtEmpty!=null)
						{
							alert(alerttxtEmpty);
							inputctrl.focus();
						}
						else {
							alert("Please enter your answer in the highlighted field");
							inputctrl.focus();
							}
						return false;
					}
				}
			break;
			}
	}
	
	
	return true;	
}