var RetError;
var RetErrorObject;
var bValid;

function CheckStrings(strInput,checkOK)
{
  var checkStr = strInput;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  return (allValid);
 }
function isDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
	}	
function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
		}
	return true;
	}
function isInteger(val){
	if (isBlank(val)){return false;}
	for(var i=0;i<val.length;i++){
		if(!isDigit(val.charAt(i))){return false;}
		}
	return true;
	}
function setFieldsToUpperCase(){
	for(var i=0;i<arguments.length;i++) {
		arguments[i].value = arguments[i].value.toUpperCase();
		}
	}
function isEmail (s){
    if (isBlank(s)) return false;
    var i = 1;
    var sLength = s.length;
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }
    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}
function replaceSubstring(inputString, fromString, toString) {
   var temp = inputString;
   if(fromString == ""){return inputString;}
   if (toString.indexOf(fromString) == -1) {
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   } else {
      var midStrings = new Array("~", "`", "_", "^", "#");
      var midStringLen = 1;
      var midString = "";
      while (midString == "") {
         for (var i=0; i < midStrings.length; i++) {
            var tempMidString = "";
            for (var j=0; j < midStringLen; j++) { tempMidString += midStrings[i]; }
            if (fromString.indexOf(tempMidString) == -1) {
               midString = tempMidString;
               i = midStrings.length + 1;
            }
         }
      }
      while (temp.indexOf(fromString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(fromString));
         var toTheRight = temp.substring(temp.indexOf(fromString)+fromString.length, temp.length);
         temp = toTheLeft + midString + toTheRight;
      }
      while (temp.indexOf(midString) != -1) {
         var toTheLeft = temp.substring(0, temp.indexOf(midString));
         var toTheRight = temp.substring(temp.indexOf(midString)+midString.length, temp.length);
         temp = toTheLeft + toString + toTheRight;
      }
   }
   return temp;
}
function Validate(obj,sFieldType,sMessage,bRequired,iLength){
	var sTemp;
	var bStrValue="";
	bValid=false;
	sFieldType=sFieldType.toUpperCase()
	if(sFieldType=="EMAIL"){
		if (obj.value==""){bValid=!bRequired}
		else {bValid=isEmail(obj.value)}
	}
	if(sFieldType=="PHONE"){
		if (obj.value==""){bValid=!bRequired}
		else {
		bStrValue=replaceSubstring(replaceSubstring(obj.value," ",""),"-","");
		bValid=isInteger(bStrValue);
		}
	}
	if(sFieldType=="NAME"){
		if (obj.value==""){bValid=!bRequired}
		else {
		bStrValue=obj.value
		bValid=CheckStrings(bStrValue,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz .-,")}
	}
	if(sFieldType=="ADDRESS"){
		if (obj.value==""){bValid=!bRequired}
		else {
		bStrValue=obj.value
		bValid=CheckStrings(bStrValue,"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz !@#$%^&*()[]`;.,\/?+")}
	}
	if(sFieldType=="ZIP"){
		if (obj.value==""){bValid=!bRequired}
		else {
		bStrValue=obj.value
		bValid=isInteger(bStrValue)}
	}
	if (iLength!=0){
		if (bStrValue.length!=iLength){bValid=false}
	}
	if (bValid==false){
		if (RetError==""){RetErrorObject=obj}
		RetError=RetError+"    - " + sMessage
		if (bRequired==true && iLength>0){RetError=RetError+" ("+iLength+" characters)"}
		RetError=RetError+"\n";
	}
}
function RetFinalize(){
	if (RetError!="")
	{
		alert("Please check the following:\n"+RetError);
		if (RetErrorObject.name!="undefined"){RetErrorObject.focus()}
		return false;
	}
}
