/* 
	This file handles the javascript validations for the date fields
*/
var space_comm	=	" \t\n\r"
var alertmes	=	"only numbers"
var datealert = "Please enter a Date in Month/Day/Year format.";
var datecheck = "Please enter a Date in Month/Day/Year format.";
var dateless = "Please enter a Date less than System Date.";
var datemore = "Please enter a Date greater than System Date.";
var datechange = "Could not change the date format!";
var togreat	= "Please enter a To Date greater than or equal to From Date.";

function warninvalid(field, datealert)
{
	alert(datealert) ;
	field.focus() ;
	field.select() ;
}


function checkdate(field)
{
	if(isempty(field.value))
		return true
	if(!isdate(field.value)) 
		return warninvalid(field,datealert)
	if(!isdatevalid(field.value)) 
		return warninvalid(field,datecheck)
	else return true;
}

// Function for validating date field
function checkdate1(field,fname)
{
	alert("test1") ;
	if(isempty(field.value))
		return true
	if(!isdate(field.value)) 
		return warninvalid(field,datealert)
	if(!isdatevalid(field.value)) 
		return warninvalid(field,datecheck)
	if(!changeformat(field.value, fname))
		return warninvalid(field,datechange)		
	else return true;
}

// Function for validating on blur date field
function checkdateblur(field,form)
{
	if(isempty(field.value))
		return true
	if(!isdate(field.value)) 
		return warninvalid(field,datealert)
	if(!isdatevalid(field.value)) 
		return warninvalid(field,datecheck)
	if(!changeformatblur(field.value, form))
		return warninvalid(field,datechange)
	else return true;
}

//function for checking the empty field (old)
function isEmpty(field)		//	old
{
	var i;
	for(i=0;i<field.length;i++)
	{
		var c = field.charAt(i);
		if (space_comm.indexOf(c) == -1) 
		return false;
  }
     	return true;
}

//Checks the validity of the date of format mm/dd/yyyy
function isdate(field)
{
	var i;
	var flen = field.length;
	
	//loop for checking entries more than 10 or 8 digits
	if(!((flen == 10) || (flen == 8)))
	{
		return false;
	}
	
	//loop for checking any characters other than 0 to 9 and / in the date field
	for(i=0;i<field.length;i++)
	{	
		var c=field.charAt(i);
		if(!((c >= 0) || (c <= 9) || (c == "/") || (c == ".") || (c == "-") || (c == " "))) 
		{
			return false;
		}
	}
	
	if(field.length == 10)
	{	
		for(i=0;i<2;i++)
		{
			var tmm = field.charAt(i);
			if(!((tmm >= 0) || (tmm <= 9)))	
			{
				return false;
			}
		}
		for(i=3;i<5;i++)
		{
			var tdt = field.charAt(i);
			if(!((tdt >= 0) || (tdt <= 9)))
			{
				return false;
			}
		}	
		for(i=6;i<10;i++)
		{
			var tyr = field.charAt(i);
			if(!((tyr >= 0) || (tyr <= 9)))
			{
				return false;
			}
		}
	
		var sep1 = field.charAt(2);
		var sep2 = field.charAt(5);
	
		if(!(((sep1 == "/") && (sep2 == "/")) || ((sep1 == ".") && (sep2 == ".")) || ((sep1 == "-") && (sep2 == "-")) || ((sep1 == " ") && (sep2 == " "))))
		{
			return false;
		}
	
		return true
	}
	else
	{
		for(i=0;i<8;i++)
		{
			var tmm = field.charAt(i);
			if(!((tmm >= 0) || (tmm <= 9)))	
			{
				return false;
			}
		}
	
		return true
	}
}

// Function for checking the date and month and year of format mm/dd/yyyy
function isdatevalid(date)
{
	//alert(date);
	//alert(date.length);
	//Taking the date,month,year field seperatly
	if(date.length == 10)
	{	
		var yr = date.substring(6,10);
		var dt = date.substring(3,5);
		var mm = date.substring(0,2);
	}
	else
	{
		var yr = date.substring(4,8);
		var dt = date.substring(2,4);
		var mm = date.substring(0,2);
	}
	
	//loop for checking the year 
	if(yr < 1900)
	{
		return false;
	}

	//Integer value of the field
	var intyr = parseInt(yr)	
	
	//loop for checking the month
	if(!((mm >= 1) && (mm <= 12)))
	{
		return false;
	}
	
	//loop for checking the date
	if(!((dt >=1) && (dt <=31)))
	{
		return false;
	}

	//loop for checking months with days 30	
	if((mm == "04") || (mm == "06") || (mm == "09") || (mm == "11"))
	{
		if(!(dt <= 30)) return false;
	}

	//alert(intyr);	

	if(mm == "02")
	{
		//if((intyr % 400) == 0)
		//{
		//	if(!(dt <= 30)) return false;
		//}
		//if(((intyr % 4) == 0) && ((intyr % 100) != 0))
		if( (intyr % 4) == 0 )
		{
			if(!(dt <= 29)) return false;
		}
		if((intyr % 4) != 0)
		{
			if(!(dt <= 28)) return false;
		}
	}
	return true
}

// Function for changing the display into mm/dd/yyyy format
function changeformat(date, fname)
{
	if(date.length == 10)
	{
		var sep1 = date.charAt(2);
		var sep2 = date.charAt(5);
		
		if(!((sep1 == "/") && (sep2 == "/")))
		{
			var getdate = date.value;
			var senddate = date.substring(0,2) + "/" + date.substring(3,5) + "/" + date.substring(6,10);
			fname.value= senddate;
			return true
		}
		else if((sep1 == "/") && (sep2 == "/"))
		{
			return true
		}	
	}
	else if(date.length == 8)
	{
		var getdate = date.value;
		var senddate = date.substring(0,2) + "/" + date.substring(2,4) + "/" + date.substring(4,8);
		fname.value= senddate;
		return true;
	}
}

// Function for changing the display into mm/dd/yyyy format on blur
function changeformatblur(date, form)
{
	
	if(date.length == 10)
	{
		var sep1 = date.charAt(2);
		var sep2 = date.charAt(5);
		
		if(!((sep1 == "/") && (sep2 == "/")))
		{
			var getdate = date.value;
			var senddate = date.substring(0,2) + "/" + date.substring(3,5) + "/" + date.substring(6,10);
			form.elements["datebox"].value= senddate;
			return true
		}
		else if((sep1 == "/") && (sep2 == "/"))
		{
			return true
		}	
	}
	else if(date.length == 8)
	{
		var getdate = date.value;
		var senddate = date.substring(0,2) + "/" + date.substring(2,4) + "/" + date.substring(4,8);
		form.elements["datebox"].value= senddate;
		return true;
	}
}

// Function for checking From and To date
function comparedate(fromfield,tofield)
{
	var from = fromfield.value
	var to = tofield.value
	
	//Taking the date,month,year field seperatly
	var f_yr = from.substring(6,10)
	var f_dt = from.substring(3,5)
	var f_mm = from.substring(0,2)
	
	//Integer value of the field
	var f_intyr = parseInt(f_yr)
	
	var temp_mm = from.substring(0,1)
	if(temp_mm == 0)
	{
		var f_temp_mm = from.substring(1,2)
		var f_intmm = parseInt(f_temp_mm)
	}
	else
	{
		var f_intmm = parseInt(f_mm)
	}
	
	var temp_dt = from.substring(3,4)
	if(temp_dt == "0")
	{
		var f_temp_dt = from.substring(4,5)
		var f_intdt = parseInt(f_temp_dt)
	}
	else
	{
		var f_intdt = parseInt(f_dt)
	}
	
	//Taking the date,month,year field seperatly
	var t_yr = to.substring(6,10);
	var t_dt = to.substring(3,5);
	var t_mm = to.substring(0,2);
	
	//Integer value of the field
	var t_intyr = parseInt(t_yr)
	
	var temp_dt_t= to.substring(3,4)
	if(temp_dt_t == "0")
	{
		var t_temp_dt = to.substring(4,5)
		var t_intdt = parseInt(t_temp_dt)
	}
	else
	{
		var t_intdt = parseInt(t_dt)
	}
	
	var temp_mm_t = to.substring(0,1)
	if(temp_mm_t == 0)
	{
		var t_temp_mm = to.substring(1,2)
		var t_intmm = parseInt(t_temp_mm)
	}
	else
	{
		var t_intmm = parseInt(t_mm)
	}	
	
	//loop for checking the dates
	if(f_intyr > t_intyr)
	{
		alert("From year greater than To year")
		fromfield.focus()
		fromfield.select()
		return false
	}
	else if(f_intyr == t_intyr)
	{
		if(f_intmm > t_intmm)
		{
			alert("From month greater than To month")
			fromfield.focus()
			fromfield.select()
			return false
		}
		else if(f_intmm == t_intmm)
		{
			if(f_intdt > t_intdt)
			{
				alert("From date greater than To date")
				fromfield.focus()
				fromfield.select()
				return false
			}
		}
	}
	return true
}

// Function for checking systems date greater than entered date
function checksystem(date)
{
	var field = date.value
	var sdate = new Date ;
	
	//Taking the date,month,year field seperatly
	var yr = field.substring(6,10);
	var dt = field.substring(3,5);
	var mm = field.substring(0,2);
	
	//Integer value of the field
	var intyr = parseInt(yr)	
	
	var temp_dt = field.substring(3,4)
	var temp_mm = field.substring(0,1)
	if(temp_dt == 0)
	{
		var temp_dt_int = field.substring(4,5)
		var intdt = parseInt(temp_dt_int)
	}
	else
	{
		var intdt = parseInt(dt)
	}
	
	if(temp_mm == 0)
	{
		var temp_mm_int = field.substring(1,2)
		var intmm = parseInt(temp_mm_int)
	}
	else
	{
		var intmm = parseInt(mm)
	}
	
	var currentdate = (sdate.getMonth() + 1) + "/" + sdate.getDate() + "/" + sdate.getYear();
	
	//Taking the date,month,year field seperatly
	var sysyr = currentdate.substring(6,10);
	var sysdt = currentdate.substring(3,5);
	var sysmm = currentdate.substring(0,2);
	
	//Integer value of the field
	var intsysyr = parseInt(sysyr)	
	
	var temp_sysdt = currentdate.substring(3,4)
	var temp_sysmm = currentdate.substring(0,1)
	if(temp_sysdt == 0)
	{
		var temp_sysdt_int = currentdate.substring(4,5)
		var intsysdt = parseInt(temp_sysdt_int)
	}
	else
	{
		var intsysdt = parseInt(sysdt)
	}
	
	if(temp_sysmm == 0)
	{
		var temp_sysmm_int = currentdate.substring(1,2)
		var intsysmm = parseInt(temp_sysmm_int)
	}
	else
	{
		var intsysmm = parseInt(sysmm)
	}
	
	//loop for checking the greater values
	if (intyr > intsysyr)
	{
		alert(dateless)
		date.focus()
		date.select()
		return false
	} 
	else if(intyr == intsysyr)
	{
		if(intmm > intsysmm)
		{
			alert(dateless)
			date.focus()
			date.select()
			return false
		}
		else if(intmm == intsysmm)
		{
			if(intdt > intsysdt)
			{
				alert(dateless)
				date.focus()
				date.select()
				return false
			}
		}
		return true
	}
	
	return true;
}

// Function for allowing systems date greater than entered date
function checksystemmore(date)
{
	var field = date.value
	var sdate = new Date ;
	
	//Taking the date,month,year field seperatly
	var yr = field.substring(6,10);
	var dt = field.substring(3,5);
	var mm = field.substring(0,2);
	
	//Integer value of the field
	var intyr = parseInt(yr)	
	
	var temp_dt = field.substring(3,4)
	var temp_mm = field.substring(0,1)
	if(temp_dt == 0)
	{
		var temp_dt_int = field.substring(4,5)
		var intdt = parseInt(temp_dt_int)
	}
	else
	{
		var intdt = parseInt(dt)
	}
	
	if(temp_mm == 0)
	{
		var temp_mm_int = field.substring(1,2)
		var intmm = parseInt(temp_mm_int)
	}
	else
	{
		var intmm = parseInt(mm)
	}
	
	var currentdate = (sdate.getMonth() + 1) + "/" + sdate.getDate() + "/" + sdate.getYear();

	alert(currentdate)

	//Taking the date,month,year field seperatly
	var sysyr = currentdate.substring(6,10);
	var sysdt = currentdate.substring(3,5);
	var sysmm = currentdate.substring(0,2);
	
	//Integer value of the field
	var intsysyr = parseInt(sysyr)	
	
	var temp_sysdt = currentdate.substring(3,4)
	var temp_sysmm = currentdate.substring(0,1)
	if(temp_sysdt == 0)
	{
		var temp_sysdt_int = currentdate.substring(4,5)
		var intsysdt = parseInt(temp_sysdt_int)
	}
	else
	{
		var intsysdt = parseInt(sysdt)
	}

	if(temp_sysmm == 0)
	{
		var temp_sysmm_int = currentdate.substring(1,2)
		var intsysmm = parseInt(temp_sysmm_int)
	}
	else
	{
		var intsysmm = parseInt(sysmm)
	}
	
	//loop for checking the greater values
	if (intsysyr > intyr)
	{
		alert(datemore)
		date.focus()
		date.select()
		return false
	} 
	else if(intsysyr == intyr)
	{
		if(intsysmm > intmm)
		{
			alert(datemore)
			date.focus()
			date.select()
			return false
		}
		else if(intsysmm == intmm)
		{
			if(intsysdt > intdt)
			{
				alert(datemore)
				date.focus()
				date.select()
				return false
			}
		}
		return true
	}
	
	return true;
}

// Function for checking date with time 
// if dates equal it will return  0
// if firstdate  is greater it will return 1
// if seconddate  is greater it will return -1
// parameters are two valid datetime values or date values in string format
// Different Formats permissible are
//    01/31/2001 10:30 pm           -- Not supported by Netscape
//    January 31, 2001 10:30 pm     -- Supported by IE and Netscape

function checkdatetime(datefield1,datefield2)
{
	var temp_date1=Date.parse(datefield1);	
	var temp_date2=Date.parse(datefield2);
   	
   if(temp_date1==temp_date2)
	{
		return 0;
	}
	else
	{
		if(temp_date1 > temp_date2)
		{
			return 1;
		}
		else
		{
			return -1;
		}
	}
}

// Function for checking From and To date
function comparesystemdatemore(fromfield, pmsg)
{
	var from = fromfield.value ;
	var sdate = new Date ;
	var to = (sdate.getMonth() + 1) + "/" + sdate.getDate() + "/" + sdate.getYear();
	
	var t_yr = sdate.getYear() ;
	var t_dt = sdate.getDate() ;
	var t_mm = sdate.getMonth() + 1 ;

//	alert(t_yr + "--" + t_mm + "--" + t_dt)
	
//	alert(to)

	//Taking the date,month,year field seperatly
	var f_yr = from.substring(6,10)
	var f_dt = from.substring(3,5)
	var f_mm = from.substring(0,2)
	
	//Integer value of the field
	var f_intyr = parseInt(f_yr)
	
	var temp_mm = from.substring(0,1)
	if(temp_mm == 0)
	{
		var f_temp_mm = from.substring(1,2)
		var f_intmm = parseInt(f_temp_mm)
	}
	else
	{
		var f_intmm = parseInt(f_mm)
	}
	
	var temp_dt = from.substring(3,4)
	if(temp_dt == "0")
	{
		var f_temp_dt = from.substring(4,5)
		var f_intdt = parseInt(f_temp_dt)
	}
	else
	{
		var f_intdt = parseInt(f_dt)
	}
	
	//Taking the date,month,year field seperatly
//	var t_yr = to.substring(6,10);
//	var t_dt = to.substring(3,5);
//	var t_mm = to.substring(0,2);
	
	//Integer value of the field
	var t_intyr = parseInt(t_yr)
	
	var temp_dt_t= to.substring(3,4)
	if(temp_dt_t == "0")
	{
		var t_temp_dt = to.substring(4,5)
		var t_intdt = parseInt(t_temp_dt)
	}
	else
	{
		var t_intdt = parseInt(t_dt)
	}
	
	var temp_mm_t = to.substring(0,1)
	if(temp_mm_t == 0)
	{
		var t_temp_mm = to.substring(1,2)
		var t_intmm = parseInt(t_temp_mm)
	}
	else
	{
		var t_intmm = parseInt(t_mm)
	}
	
//	alert(f_intyr +"--" +  t_intyr)
//	alert(f_intmm +"--" +  t_intmm)
//	alert(f_intdt +"--" +  t_intdt)

	//loop for checking the dates
//	if(f_intyr > t_intyr)
	if(f_intyr < t_intyr)
	{
		alert(pmsg)
		fromfield.focus()
		fromfield.select()
		return false
	}
	else if(f_intyr == t_intyr)
	{
		if(f_intmm < t_intmm)
		{
			alert(pmsg)
			fromfield.focus()
			fromfield.select()
			return false
		}
		else if(f_intmm == t_intmm)
		{
			if(f_intdt < t_intdt)
			{
				alert(pmsg)
				fromfield.focus()
				fromfield.select()
				return false
			}
		}
	}
	return true
}

function clong(pdate)
{ //Used to convert a date string to long datatype for date comparison
	var mlong = 0 ;
	if (isempty(pdate)) 
	{	alert('clong function')
		return mlong ;}
	var marray=pdate.split("/") ;
	mlong = padzero(marray[2], 4- marray[2].length) + "" + padzero(marray[1], 2- marray[1].length) + "" + padzero(marray[0], 2- marray[0].length) ;
	return mlong ;
}

function checkdateltdate(pdate1, pdate2,mesge)
{  //Used to compare 2 dates - Start & End Date
	var mdate1 ;
	var mdate2 ;
	var mdateval1 ;
	var mdateval2 ;
	if (clong(pdate1) * 1 > clong(pdate2) * 1)
	{
		alert(mesge) ;
		document.dataform.start_month.focus();
		return false ;
	}
	else
		return true ;
}

//Change display/validation dt format
function Dateformatchange_tommddyyyy(col)
{		 
	effective_date = col.value ;
	var pos_month = effective_date.indexOf("/",0) ;
	var pos_date  = effective_date.indexOf("/",pos_month+1) ;
	var pos_year  = effective_date.substring(pos_date+1) ;
	//alert(pos_month);
	if (! ((pos_month == 1) || (pos_month == 2)) )
	{	alert("Please enter the Date in Month/Day/Year format.");
		return false;
	}
	//alert(pos_date);
	if (! ((pos_date == 3) || (pos_date == 4) || (pos_date == 5)) )
	{	alert("Please enter the Date in Month/Day/Year format.");
		return false;
	}
	//alert(pos_year);
	if (isempty(pos_year)) 
	{	alert("Please enter the Date in Month/Day/Year format.");
		return false;
	}
	if (! ((pos_year.length == 2) || (pos_year.length == 4)) )
	{	alert("Please enter the Date in Month/Day/Year format.");
		return false;
	}
		
	if (pos_year.length == 2) pos_year = "20" + pos_year ; 
	//{	if ((pos_year >= 50) && (pos_year <= 99)) pos_year = "19" + pos_year; 
	//	else if((pos_year >= 0) && (pos_year <= 49)) pos_year = "20" + pos_year ; }

	var eff_mon = effective_date.substring(0, pos_month)
	var eff_date = effective_date.substring(pos_month+1, pos_date)

	if  (!((eff_mon >= 1) && (eff_mon <=12)))
	{	alert("Please enter the Date in Month/Day/Year format.");
		return false;
	}

	if  (!((eff_date >= 1) && (eff_date <=31)))
	{	alert("Please enter the Date in Month/Day/Year format.");
		return false;
	}

	if (pos_month == 1) 
	{	eff_mon = "0" + eff_mon;	
		if (pos_date != 4) eff_date = "0" + eff_date;
	}
	if (pos_month == 2) 
	{	if (pos_date == 4) eff_date = "0" + eff_date;
	}	

	col.value = eff_mon +"/"+ eff_date +"/"+ pos_year ;
	return true;
}

// Function for checking first date less than or equal to second date
function comparedatewithmsg(fromfield,tofield, pMsg)
{
	var from = fromfield.value
	var to = tofield.value
	
	//Taking the date,month,year field seperatly
	var f_yr = from.substring(6,10)
	var f_dt = from.substring(3,5)
	var f_mm = from.substring(0,2)
	
	//Integer value of the field
	var f_intyr = parseInt(f_yr)
	
	var temp_mm = from.substring(0,1)
	if(temp_mm == 0)
	{
		var f_temp_mm = from.substring(1,2)
		var f_intmm = parseInt(f_temp_mm)
	}
	else
	{
		var f_intmm = parseInt(f_mm)
	}
	
	var temp_dt = from.substring(3,4)
	if(temp_dt == "0")
	{
		var f_temp_dt = from.substring(4,5)
		var f_intdt = parseInt(f_temp_dt)
	}
	else
	{
		var f_intdt = parseInt(f_dt)
	}
	
	//Taking the date,month,year field seperatly
	var t_yr = to.substring(6,10);
	var t_dt = to.substring(3,5);
	var t_mm = to.substring(0,2);
	
	//Integer value of the field
	var t_intyr = parseInt(t_yr)
	
	var temp_dt_t= to.substring(3,4)
	if(temp_dt_t == "0")
	{
		var t_temp_dt = to.substring(4,5)
		var t_intdt = parseInt(t_temp_dt)
	}
	else
	{
		var t_intdt = parseInt(t_dt)
	}
	
	var temp_mm_t = to.substring(0,1)
	if(temp_mm_t == 0)
	{
		var t_temp_mm = to.substring(1,2)
		var t_intmm = parseInt(t_temp_mm)
	}
	else
	{
		var t_intmm = parseInt(t_mm)
	}	
	
	//loop for checking the dates
	if(f_intyr > t_intyr)
	{
		alert( pMsg);
		//fromfield.focus();
		//fromfield.select();
		return false;
	}
	else if(f_intyr == t_intyr)
	{
		if(f_intmm > t_intmm)
		{
			alert( pMsg );
			//fromfield.focus();
			//fromfield.select();
			return false;
		}
		else if(f_intmm == t_intmm)
		{
			if(f_intdt > t_intdt)
			{
				alert( pMsg );
				//fromfield.focus()
				//fromfield.select()
				return false
			}
		}
	}
	return true
}

