

var shortMonths = new Array("JAN", "FEB", "MAR",
            "APR", "MAY", "JUN", "JUL", "AUG", "SEP",
            "OCT", "NOV", "DEC");

var dtCh= "/";
var dtCh2= "-";
var dtRsd=" ";
var minYear=1900;
var maxYear=2100;

var monthStr=",JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC,";


function getDayDate(data)

{
	var pos1=data.indexOf(dtCh);
	if (pos1==-1)
	{
		pos1=data.indexOf(dtRsd);
		//alert(strDay);
	}
	if (pos1==-1)
	{
		pos1=data.indexOf(dtCh2);
		//alert(strDay);
	}
	var strDay=data.substring(0,pos1);
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	return strDay;
}

function getMonthDate(data)
{
  	var pos1=data.indexOf(dtCh);
	var pos2=data.indexOf(dtCh,pos1+1);
	if (pos1==-1 && pos2==-1){
		var pos1=data.indexOf(dtCh2);
		var pos2=data.indexOf(dtCh2,pos1+1);
	}
	
	var strMonth=data.substring(pos1+1,pos2);
	var month=parseFloat(strMonth);
	if (pos1==-1 || pos2==-1)
	{
		var pos1_1=data.indexOf(dtRsd);
	  	var pos2_1=data.indexOf(dtRsd,pos1_1+1);
		var strMonth=data.substring(pos1_1+1,pos2_1);
		strMonth=strMonth.toUpperCase();
	  	if (monthStr.indexOf(","+strMonth+",")<0){
		  return 0;
		}
		for (i=0;i<12;i++){
		  if(shortMonths[i]==strMonth){
			  month=i+1;
			}
		}
	}
	var strMont=month.toString();
	if (strMont.charAt(0)=="0" && strMont.length>1) strMont=strMont.substring(1);
	return strMont;
}

function getYearDate(data)
{
  var pos1=data.indexOf(dtCh);
	if (pos1<0)
	{
	  pos1=data.indexOf(dtRsd);
	}
	if (pos1<0)
	{
	  pos1=data.indexOf(dtCh2);
	}
	var pos2=data.indexOf(dtCh,pos1+1);
	if (pos2<0)
	{
	  pos2=data.indexOf(dtRsd,pos1+1);
	}
	if (pos2<0)
	{
	  pos2=data.indexOf(dtCh2,pos1+1);
	}
	var strYear=data.substring(pos2+1);
	Yer=parseInt(strYear);
	if(Yer < 100){
		if (Yer>50)
		{
		  strYear="19"+strYear;
		}
		if (Yer<50)
		{
		  strYear="20"+strYear;
		}
	}
	year=parseInt(strYear);
	if (strYear.length!=4 || year<minYear || year>maxYear)
	{
	  return 0;
	}
	return strYear;
}

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++)
	 {   
        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 CompareDate(LessDate, MoreDate)
{
	//var pos1=LessDate.indexOf(dtCh);
	//var pos2=LessDate.indexOf(dtCh,pos1+1);
	var strDay=getDayDate(LessDate);
	var strMonth=getMonthDate(LessDate);
	var strYear=getYearDate(LessDate);
	date1 = Date.parse(strMonth+"/"+strDay+"/"+strYear);

	pos1=MoreDate.indexOf(dtCh);
	pos2=MoreDate.indexOf(dtCh,pos1+1);
	strDay=getDayDate(MoreDate);
	strMonth=getMonthDate(MoreDate);
	strYear=getYearDate(MoreDate);
	date2 = Date.parse(strMonth+"/"+strDay+"/"+strYear);

	return (date1 <= date2);
}

function isDate(dtStr)
{
	var daysInMonth = DaysArray(12);
	var strDay=getDayDate(dtStr);
	var strMonth=getMonthDate(dtStr);
	var strYear=getYearDate(dtStr);
	day=parseFloat(strDay);
	year=parseFloat(strYear);
	month=parseFloat(strMonth);
	if (year!=0 && month!=0){
		if (strDay.length<1 || day<1 || day>31 || (strMonth=="2" && day>daysInFebruary(year)) || day > daysInMonth[month]){
		  return false;
		}
	return true;
  	}else{
	   return false;
	}
}

function ValidateForm(Input_with_Date)
{
	var dt=document.all[Input_with_Date];
	if (isDate(dt.value)==false)
	{
		dt.focus();
		return false;
	}
	return true;
}

function isEmail (s)
{      
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = s.length;
    // look for @
    while ((i < sLength) && (s.charAt(i) != "@")){ 
		i++
    }
    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;
    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }
    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}
