
//isValidDate(object)		checks for valid date
//isInt						checks for valid integer  (ie. numeric and less than 10 digits)

function isValidDate(dateFld) { 
	// Checks for the following valid date formats: 
	// MM/DD/YY MM/DD/YYYY MM-DD-YY MM-DD-YYYY 
	// Also separates date into month, day, and year variables
	var date1;
	date1=dateFld.value.substring(dateFld.value.length-4, dateFld.value.length);		
		if(date1 < '1753' && date1 !=''){
			alert("Please enter a valid date ,The date should not be less then '01/01/1753'.") 
			dateFld.select();
			dateFld.focus();
			return false; }	
	var dateStr = dateFld.value;
	if (dateStr.length == 0)
		return true;
	var monthName = ["January","February","March","April","May","June","July","August","September","October","November","December"];

	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/; 
	
	// To require a 4 digit year entry, use this line instead: 
	// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; 
	var matchArray = dateStr.match(datePat); // is the format ok? 
	if (matchArray == null) { 
		alert("Date is not in a valid format.") 
		dateFld.select();
		dateFld.focus();
		return false; 
	} 
	month = matchArray[1]; // parse date into variables 
	day = matchArray[3]; 
	year = matchArray[4]; 
	if (month < 1 || month > 12) { // check month range 
		alert("Month must be between 1 and 12."); 
		dateFld.select();
		dateFld.focus();
		return false; 
	} 
	if (day < 1 || day > 31) {
		alert("Day must be between 1 and 31."); 
		dateFld.select();
		dateFld.focus();
		return false; 
	} 
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		alert(monthName[month - 1]+" has 30 days.") 
		dateFld.select();
		dateFld.focus();
		return false 
	} 
	if (month == 2) { // check for february 29th 
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); 
		if (day>29 || (day==29 && !isleap)) { 
			if(isleap && day>29){
				alert("February " + year + " has 29 days");}
			else{
				alert("February " + year + " has 28 days");}
		dateFld.select();
		dateFld.focus();
		return false; 
		} 
	} 
	return true; // date is valid 
} 

function checkTime(timeV) {
var textTime = timeV.value; 
var timeField = timeV
var timeExpression = /^(\d{2}):(\d{2})\s{1}([AP]M)$/;
var valresult = textTime.match(timeExpression);
if (valresult==null) {
alert("Time entry is invalid. Please enter a valid time in hh:mm AM or PM format (e.g. 08:00 AM)");
//timeField.value = "";
timeField.select();
timeField.focus();
}
}

function isValidTime(timeField) {
// Checks if time is in HH:MM:SS AM/PM format.
// The seconds and AM/PM are optional.
var timeStr = timeField.value;
if (timeStr==''){}
else{
	var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;
	var matchArray = timeStr.match(timePat);
	if (matchArray == null) {
	alert("Time is not in a valid format.");
	timeField.select();
	timeField.focus();
	}
	hour = matchArray[1];
	minute = matchArray[2];
	second = matchArray[4];
	ampm = matchArray[6];

	if (second=="") { second = null; }
	if (ampm=="") { ampm = null }

	if (hour < 0  || hour > 23) {
	alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
	timeField.select();
	timeField.focus();
	}
	if (hour <= 12 && ampm == null) {
	if (confirm("Please indicate which time format you are using.  OK = Standard Time, CANCEL = Military Time")) {
	alert("You must specify AM or PM.");
	timeField.select();
	timeField.focus();
	}
	}
	if  (hour > 12 && ampm != null) {
	alert("You can't specify AM or PM for military time.");
	timeField.select();
	timeField.focus();
	}
	if (minute<0 || minute > 59) {
	alert ("Minute must be between 0 and 59.");
	timeField.select();
	timeField.focus();
	}
	if (second != null && (second < 0 || second > 59)) {
	alert ("Second must be between 0 and 59.");
	timeField.select();
	timeField.focus();
	}
 }
}

function isInt(formObj){
	//check for valid file number
	var formVal = formObj.value + "";	
	if (formVal.length > 9){
		alert("Please enter a Correct Account Number ? ");
		formObj.select();
		formObj.focus();
        return false;
    }	
    for (var i = 0; i < formVal.length; i++) {
        if (formVal.charAt(i) < "0" ||
            formVal.charAt(i) > "9") {
			alert("Please enter a Correct Account Number ? ");
			formObj.select();
			formObj.focus();
        	return false;
        }
    }
	return true;
}
function isValidQuty(formObj){
	//check for valid Ammout
	var formVal = formObj.value + "";
		if (isNaN(formVal)) {
		alert("Please enter a valid Quantity ?");
		formObj.select();
		formObj.focus();
		return false;}
		if (formVal==0 && formVal!="") {
		alert("Please enter a valid Quantity ?");
		formObj.select();
		formObj.focus();
		return false;}	
    }
    
 function isValidPrice(formObj)
 {
	//check for valid Ammout
	var formVal = formObj.value + "";
	if (formVal != "" ){
	
		if (isNaN(formVal)) {
			alert("Please enter a valid  Price ?");
			formObj.select();
			formObj.focus();
			return false;}
			
		if (formVal==0 && formVal!="") {
			alert("Please enter a valid  Price ?");
			formObj.select();
			formObj.focus();
			return false;}
		  		  		  
		for (var i = 1; i < formVal.length; i++) {
		      if (formVal.charAt(i) == "." ) {}
	        else{ 
			     if (formVal.charAt(i) < "0" ||
					formVal.charAt(i) > "9") {
					alert("Please enter a valid  Price ?");
					formObj.select();
					formObj.focus();
        			return false;}
        		}    		 
         }
		
	 }
	 
	 return true; 	
  }

function isValidItemPrice(formObj)
 {
	//check for valid Ammout
	var formVal = formObj.value + "";
	if (formVal != "" ){
	
		if (isNaN(formVal)) {
			alert("Please enter a valid  Price ?");
			formObj.select();
			formObj.focus();
			return false;}
			
		for (var i = 1; i < formVal.length; i++) {
		        if (formVal.charAt(i) == "." ) {}
	        else{  
			     if (formVal.charAt(i) < "0" ||
					formVal.charAt(i) > "9") {
					alert("Please enter a valid  Price ?");
					formObj.select();
					formObj.focus();
        			return false;} 
        		}       		 
         }
		
	 }
	 
	 return true; 	
  }

function textCounter(field,maxlimit) {
	//if ((field.value.length % 100) == 1) alert(field.value.length);
	if (field.value.length > maxlimit){ // if too long...trim it!
		//alert(field.value.length);
		alert("You have exceeded " + maxlimit + " characters");
		field.value = field.value.substring(0, maxlimit);
	}
}

//Alerts for confirmation on deletes of Customers/contacts/employees/categories
function verifyDelete(formFldv1, formTitlev1){
	var verify = confirm("Delete "+formTitlev1+"!\nAre you sure?");
	if (!verify)
		formFldv1.checked = false;
	return (verify);
}

//delay function
function delay(gap){ /* gap is in millisecs */
var then,now; then=new Date().getTime();
now=then;
while((now-then)<gap)
{now=new Date().getTime();}
}//


//money cleaner
function filterNum(str) {
re = /^\$|,/g;
// remove "$" and ","
return str.replace(re, "");
}

//money check
function isValidNumber(fieldName) {
fieldValue = filterNum(fieldName.value);
fieldName.value = fieldValue
decallowed = 2;  // how many decimals are allowed?
if (fieldValue == "") return;
if (isNaN(fieldValue)) {
alert("Please enter a valid  number.");
fieldName.select();
fieldName.focus();
}
else {
if (fieldValue.indexOf('.') == -1) fieldValue += ".";
dectext = fieldValue.substring(fieldValue.indexOf('.')+1, fieldValue.length);

if (dectext.length > decallowed)
{
alert ("Please enter a number with up to " + decallowed + " decimal places.");
fieldName.select();
fieldName.focus();
      }
else {
      }
   }
}
//rob's calendar
	var Ypos = 0;
	var Xpos = 0;
	function ShowCalendar(formname,fieldname) {
		var EDate = document.forms[formname].elements[fieldname].value;
		if (EDate.length > 0) {
			var re = new RegExp("/","g");
			EDate = EDate.replace(re,"%2F");
		}
		var url = "../../Includes/calendar.aspx?EDate=" + EDate + "&Formname=" + formname + "&fieldname=" + fieldname
		objPUCWin = window.open(url,"calendar","top=" + Ypos + ",left=" + Xpos + ",height=200,width=300,statusbar=no,toolbar=no,menubar=no,scrollbars=no;resize=no;titlebar=no")
		bolPUCOpened = true;
	}

	function nMouse(e){
		if (window.navigator.appName == "Microsoft Internet Explorer") {
			Ypos = event.screenY;
			Xpos = event.screenX;
		} else {
			Ypos = e.screenY;
			Xpos = e.screenX;
		}
	}
if (window.navigator.appName == "Microsoft Internet Explorer") {
	document.onmousemove = nMouse;
} else {
	window.captureEvents(Event.MOUSEMOVE);
	window.onMouseMove = nMouse;
}

//Setting the Local Time

function jsClock24hr(formname,fieldname)
{
	var todays_date_time = new Date()
	var todays_Month = todays_date_time.getMonth() + 1
	var todays_Date = todays_date_time.getDate()
	var todays_Year = todays_date_time.getFullYear()
	var todays_hour =  ((todays_date_time.getHours() < 10) ? "0" : "") + todays_date_time.getHours()
	var todays_minute = ((todays_date_time.getMinutes() < 10) ?  ":0" : ":") + todays_date_time.getMinutes() 
	var todays_second = ((todays_date_time.getSeconds() < 10 ) ? ":0" : ":") + todays_date_time.getSeconds()
	document.forms[formname].elements[fieldname].value = todays_Month + "/" + todays_Date + "/" + todays_Year + " "  + todays_hour + todays_minute + todays_second;
	//alert("jsClock24hr(" + formname + ","+ fieldname + ")");
	Tickingclock = setTimeout("jsClock24hr('" + formname + "','"+ fieldname + "')",1000)
}

function PopulateTextArea(FormName,FieldName,ButtonName,EnterValue)
{
	//alert(EnterValue);
	var TextAreaValue = document.forms[FormName].elements[FieldName].value.replace(/^\s+|\s+$/g, ''); // removing the whitespace
	if (TextAreaValue.length==0)
	{
		document.forms[FormName].elements[FieldName].value=EnterValue.replace(/`/,"'");
	}
	else
	{
		document.forms[FormName].elements[FieldName].value=document.forms[FormName].elements[FieldName].value + "\n" + EnterValue.replace(/`/,"'");
	}
}
