var begin = new Date(2001,01,25) 
var now = new Date();
var today = new Date(now.getYear(),now.getMonth(),now.getDate());

function IsEmpty(FormField,str){
   var strMessage =""	
   if ((str.length==0) || (str==null)) {
	strMessage = "\n" + FormField + " is a required field."
   }
 return strMessage;
}


function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}


function IsEmail(FormField,str){
	var ReqChars = "@.";
	var IllegalChars = ",# !";
	var Char;
   	var strMessage ="";
	if (str.indexOf("@") == -1){
		strMessage = "\n" + FormField + " is missing '@'."
     	}
	if (str.indexOf(".") == -1){
		strMessage = "\n" + FormField + " is missing '.'."
     	}
	if (str.indexOf("#") != -1){
		strMessage = "\n" + FormField + " cannot contain '#'."
     	}

	if (str.indexOf("!") != -1){
		strMessage = "\n" + FormField + " cannot contain '!'."
     	}

	if (str.indexOf(" ") != -1){
		strMessage = "\n" + FormField + " cannot contain spaces."
     	}

	if (str.indexOf(",") != -1){
		strMessage = "\n" + FormField + " cannot contain ','."
     	}

	if (str.length == str.indexOf("@") + 1){
		strMessage = "\n" + FormField + " must have a domain name after the '@'."
     	}
	if (str.length == str.indexOf(".") + 1){
		strMessage = "\n" + FormField + " must have an extension after the '.'."
     	}

  return strMessage;
}

function IsChosen(FormField,str){
   var strMessage =""	
   if ((str.length==0) || (str==null)) {
	strMessage += "\nShipPoint has not been selected.";
	strMessage += "\n  - Use the Search Button to find the correct Ship Point.";
	strMessage += "\n  - If you cannot find the supplier shorten the search string.";
   }
 return strMessage;
}

function IsNumeric(FormField,str){
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
   var strMessage =""	
   for (i = 0; i < str.length && IsNumber == true; i++){ 
      Char = str.charAt(i); 
      if (ValidChars.indexOf(Char) == -1){
	 IsNumber=false;	
         strMessage = "\n" + FormField + " is not a numeric field."
      }
   }
  return strMessage;
}

function IsPhone(FormField,str,ReqField){
   var strMessage ="";
   if (ReqField == true){
	if ((str.length==0) || (str==null)) {
	strMessage = "\n" + FormField + " is a required field."
	}
   }
   if (str.length!=0) {		
   var ValidChars = "0123456789";
   var Char;
   var phone="";		
   for (i = 0; i < str.length; i++){ 
      	Char = str.charAt(i); 
      	if (ValidChars.indexOf(Char) != -1){
	 phone += Char
      }
   }
	if (phone.length != 10){
	strMessage = "\n" + FormField + " is not in a valid phone number format (NNN) NNN-NNNN."

	}	
}
  return strMessage;
}

function IsPropLngth(FormField,str, minlength, maxlength){
	var strMessage = ""	
	if (minlength == maxlength){
		if (str.length != minlength){
			strMessage = "\n" + FormField + " must be = " + minlength  + " digits in length."
		}
 	}else{

		if ((str.length < minlength) || (str.length > maxlength)){
			strMessage = "\n" + FormField + " must be between " + minlength + " and " + maxlength + " digits in length."
		}
	}
	return strMessage;
}

function IsCountBetween(FormField, FormObjs, int, minInt, maxInt){
	var strMessage = ""	
	if (maxInt == "9999"){
		if (minInt > int){
			strMessage = "\n" + FormField + " must have at least " + minInt  + " " + FormObjs + "."
		}
 	}else{
		if ((int < minInt) || (int > maxInt)){
			strMessage = "\n" + FormField + " must have between " + minInt + " and " + maxInt + " " + FormObjs + "."
		}
	}
	return strMessage;
}






function IsValidChar(FormField,str,ValidChars){
	var IsValidChar=true;
	var Char;
	var strMessage = "";
	for (i = 0; i < str.length && IsValidChar == true; i++){ 
		Char = str.charAt(i); 
		if (ValidChars.indexOf(Char) == -1){
			strMessage += "\n'" + Char + "' is not a valid character for " + FormField + "."
		}
	}
	return strMessage;
}

function IsSelected(FormField,str,ValidChars){
	var IsValidChar=true;
	var Char;
	var strMessage = "";
	for (i = 0; i < str.length && IsValidChar == true; i++){ 
		Char = str.charAt(i); 
		if (ValidChars.indexOf(Char) == -1){
			strMessage += "\nA " + FormField + " has not been selected."
		}
	}
	return strMessage;
}


function IsValidDate(FormField,str,MinDate,MaxDate,ReqField){
	var strMessage = "";
	if (ReqField == true){
		if ((str.length==0) || (str==null)) {
			strMessage = "\n" + FormField + " is a required field."
		}
	}
	if (str.length!=0) {
		if (str.indexOf("-")!=-1){
			var sdate = str.split("-")
		}else{
			var sdate = str.split("/")
		}
		var chkDate=new Date(Date.parse(str))
		var cmpDate=(chkDate.getMonth()+1)+"/"+(chkDate.getDate())+"/"+(chkDate.getYear())
		var indate2=(Math.abs(sdate[0]))+"/"+(Math.abs(sdate[1]))+"/"+(Math.abs(sdate[2]))
		if (indate2!=cmpDate){
			strMessage += "\n'" + str + "' is not a valid format for " + FormField + "."
		}else{
			if (cmpDate=="NaN/NaN/NaN"){
				strMessage += "\n'" + str + "' is not a valid format for " + FormField + "."
			}else{
				var dtReport1 = new Date(Date.parse(str));
				dtReportYear = dtReport1.getYear();
				if (dtReportYear.toString().length != 4){
					dtReportYear += 2000
				}
				var dtReport2 = new Date(dtReportYear,dtReport1.getMonth(),dtReport1.getDate());
				if ((dtReport2 >= MinDate) && (dtReport2 <= MaxDate)){
				}else{
					strMessage += "\n" + str + " is not a valid date for " + FormField + "."
				}	
			}	
		}
	}
	return strMessage;
}

function IsInString(FormField,str,SearchChar){
	var strMessage = "";
	if (str.indexOf(SearchChar) == -1){
		strMessage += "\n'" + SearchChar + "' is required for the field " + FormField + "."
	}
	return strMessage;
}

function IsFacility(FormField,str){
	var FacilityFound = false;
	var strMessage = "";
	var arrFacility = new Array();
	var strFacilities = "90324|90506|90522|90795|91306|91322|93161|93179|93765|93823|93922|94409|94417|94425|94441|94458|94466|94474|94482|94490|94508|94516|94524|94540|97048|95596|95166|95182|93872|95539"
	arrFacility = strFacilities.split("|");
	for(i=0; (i < arrFacility.length) && (FacilityFound == false); i++){
		if (arrFacility[i] == str){
 			FacilityFound = true;
		}
	}
	if (FacilityFound == false){
		strMessage += "\n'" + str + "' is not a valid facility for " + FormField + "."
	}
	return strMessage;
}


function IsNFRStore(FormField){

	var NFRFound = false;
	var strMessage = "";
	var arrNFR = new Array();
	var strNFR = "02519|06965|14324|15057|20719|21238|21600|24349|26617|26856|27185|02329|02881|03897|07682|09332|13276|15107|18747|19174|19893|20115|20511|20693|27615|27706|27953|22632"

	arrNFR = strNFR.split("|");
	for(i=0; (i < arrNFR.length) && (NFRFound == false); i++){
		if (arrNFR[i] == FormField){
 			NFRFound = true;
		}
	}
	if (NFRFound == false){
		strMessage += "\n'" + FormField + "' is not a valid NFR Store."
	}
	return strMessage;
}



function IsPO(str){
	var FormField = "PO Number (NNNNNNNNX)"
	var ErrorList = ""
	ErrorList += IsEmpty(FormField,str)
	ErrorList += IsValidChar(FormField,str.substring(0,6),"0123456789")
	ErrorList += IsValidChar(FormField,str.charAt(7),"0123456789ACHKR")
	ErrorList += IsPropLngth(FormField,str,9,9)
	return ErrorList
}
function IsDefectDate(str){
	var FormField = "Defect Date (NN/NN/NN)"
	var ErrorList = ""
	ErrorList += IsValidDate(FormField,str,begin,today,true)
	return ErrorList
}

function IsStore(str){
	var FormField = "Store Number (NNNNN)"
	var ErrorList = ""
	ErrorList += IsEmpty(FormField,str)
	ErrorList += IsValidChar(FormField,str,"0123456789")
	ErrorList += IsPropLngth(FormField,str,5,5)
	return ErrorList
}
function IsSubNumber(str){
	var FormField = "Sub Number (NNN)"
	var ErrorList = ""
	ErrorList += IsEmpty(FormField,str)
	ErrorList += IsValidChar(FormField,str,"0123456789")
	ErrorList += IsPropLngth(FormField,str,3,3)
	return ErrorList
}
function IsCartonBad(str){
	var FormField = "Non-Compliance Cartons (NNNN)"
	var ErrorList = ""
	ErrorList += IsEmpty(FormField,str)
	ErrorList += IsValidChar(FormField,str,"0123456789")
	return ErrorList
}

function IsCartonBadNFR(str){
	var FormField = "Carton Bad (NNNN)"
	var ErrorList = ""
	ErrorList += IsEmpty(FormField,str)
	ErrorList += IsValidChar(FormField,str,"0123456789")
	ErrorList += IsMinAmount(FormField,str,1)
	return ErrorList
}


function IsMinAmount(FormField,  int, minInt )
	{
	var strMessage = ""	
		if (int < minInt)
			{
			strMessage = "\n" + FormField + " must be equal to or greater than " + minInt +  "."
			}
	return strMessage;
}



function IsCartonTotal(str){
	var FormField = "Carton Total (NNNN)"
	var ErrorList = ""
	ErrorList += IsEmpty(FormField,str)
	ErrorList += IsValidChar(FormField,str,"0123456789")
	return ErrorList
}
function IsDefectID(str){
	var FormField = "Defect ID (FFFF-NNNNN)"
	var ErrorList = ""
	ErrorList += IsEmpty(FormField,str)
	ErrorList += IsPropLngth(FormField,str,10,10)
	ErrorList += IsValidChar(FormField,str,"0123456789-")
//	ErrorList += IsFacility(FormField,str.substring(0,5))
	ErrorList += IsInString(FormField,str,"-")
	return ErrorList
}

function IsSupplierID(str){
	var FormField = "Supplier ID (NNNNN)/(NNNNNN)"
	var ErrorList = ""
	ErrorList += IsEmpty(FormField,str)
	ErrorList += IsValidChar(FormField,str,"0123456789")

	if(str.length<3 || str.length>6)
	{
		ErrorList += "\nSupplierid must be 3, 4, 5, or 6 digits in length."
	}
	

	return ErrorList
}

function IsTestID(str){
	var FormField = "Test ID (T + 5-6 DIGITS)"
	var ErrorList = ""
	ErrorList += IsEmpty(FormField,str)
	ErrorList += IsPropLngth(FormField,str,5,6)
	ErrorList += IsValidChar(FormField,str.substring(0,1),"T")
	ErrorList += IsValidChar(FormField,str.substring(1,5),"0123456789")
	return ErrorList
}