﻿
////////////////////REGULAR EXPRESSIONS/////////////////////////

var EmailsRegExp = /^\w+([-.]\w+)*@\w+(-\w+)*(\.\w+(-\w+)*)?\.\w{2,}$/;
var NamesRegExp = /^[',";:()[\/><?!@#$%^&*!]*$/;
var PhoneFaxRegExp = /^[0-9-()\s\\\/\.]{8,}$/;	
var numericRegExp = /^\d+$/;	
var numericRegExpSal = /^[0-9-.,]*$/;	


////////////////////////TRIM FUNCTION FOR TEXTBOX//////////////////
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;
			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));
		}
		
		
/////////////////////////// DATE VALIDATION//////////////////////////////////////////
		var dtCh= "/";
		var minYear=1900;
		var maxYear=2100;

				function isInteger(s){
					var i;
					for (i = 0; i < s.length; i++){   
						// Check that current Charactere(s) is number.
						var c = s.charAt(i);
						if (((c < "0") || (c > "9"))) return false;
					}
					// All Charactere(s)s are numbers.
					return true;
				}

				function stripCharsInBag(s, bag){
					var i;
					var returnString = "";
					// Search through string's Charactere(s)s one by one.
					// If Charactere(s) is not in bag, append to returnString.
					for (i = 0; i < s.length; i++){   
						var c = s.charAt(i);
						if (bag.indexOf(c) == -1) returnString += c;
					}
					return returnString;
				}

				function daysInFebruary (year){
					// February has 29 days in any year evenly divisible by four,
					// EXCEPT for centurial years which are not also divisible by 400.
					return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
				}
				function DaysArray(n) {
					for (var i = 1; i <= n; i++) {
						this[i] = 31
						if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
						if (i==2) {this[i] = 29}
				} 
				return this;
				}

			function isDate(dtStr){
                 var daysInMonth = DaysArray(12)
                 var pos1=dtStr.indexOf(dtCh)
                 var pos2=dtStr.indexOf(dtCh,pos1+1)
                 var strDay=dtStr.substring(0,pos1)
                 var strMonth=dtStr.substring(pos1+1,pos2)
                 var strYear=dtStr.substring(pos2+1)
                 strYr=strYear
                 if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
                 if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
                 for (var i = 1; i <= 3; i++) {
                  if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
                 }
                 month=parseInt(strMonth)
                 day=parseInt(strDay)
                 year=parseInt(strYr)
                 if (pos1==-1 || pos2==-1){
                  alert("The date format should be : mm/dd/yyyy")
                  return false
                 }
                 if (strMonth.length<1 || month<1 || month>12){
                  alert("Please enter a valid month")
                  return false
                 }
                 if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
                  alert("Please enter a valid day")
                  return false
                 }
                 if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
                  alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
                  return false
                 }
                 if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
                  alert("Please enter a valid date")
                  return false
                 }
                return true

}
	
///////////// COMAPARE DATES 
function CompareDates(date1, date2, separator){ 
	   	if (separator == null) separator = '/';
	    var date1Index1 = date1.indexOf(separator);
	    var date1Index2 = date1.lastIndexOf(separator);
	    var date2Index1 = date2.indexOf(separator);
	    var date2Index2 = date2.lastIndexOf(separator);
	    var date1Day = date1.substring(0, date1Index1);
	    var date1Month = date1.substring(date1Index1 +1, date1Index2);
	    var date1Year = date1.substring(date1Index2 + 1, date1.length);
	    var date2Day = date2.substring(0, date2Index1);
	    var date2Month = date2.substring(date2Index1 +1, date2Index2);
	    var date2Year = date2.substring(date2Index2 + 1, date2.length);
	    date1 = parseInt(date1Year + ((date1Month.length == 1) ? ('0' + date1Month) : date1Month) + ((date1Day.length == 1) ? ('0' + date1Day) : date1Day));
	    date2 = parseInt(date2Year + ((date2Month.length == 1) ? ('0' + date2Month) : date2Month) + ((date2Day.length == 1) ? ('0' + date2Day) : date2Day));
	    if (date1 > date2) return 1; 
	    if (date1 < date2) return -1; 
	    return 0; 
}
////////////////////


 
