//***********************************************************************************************************************************
// clickButton
// This is function will set the default button when the Enter is pressed
//***********************************************************************************************************************************
function clickButton(e, buttonref){ 
      var bt = document.getElementById(buttonref);
      if (typeof bt == 'object'){ 
            if(navigator.appName.indexOf("Netscape")>(-1)){ 
                  if (e.keyCode == 13){ 
                        bt.click(); 
                        return false; 
                  } 
            } 
            if (navigator.appName.indexOf("Microsoft Internet Explorer")>(-1)){ 
                  if (event.keyCode == 13){
                        bt.click(); 
                        return false; 
                  } 
            } 
      } 
}
//***********************************************************************************************************************************
// SetFocusBack
// This is to send the Focus back to the Date Field
//***********************************************************************************************************************************
function SetFocusBack(fld)
{
	document.getElementById(fld).focus()
}

//***********************************************************************************************************************************
// Date Fields Validation
//***********************************************************************************************************************************
var MonD = new Array(12);
MonD[0]=31; // January
MonD[1]=28;
MonD[2]=31;
MonD[3]=30;
MonD[4]=31;
MonD[5]=30;
MonD[6]=31;
MonD[7]=31;
MonD[8]=30;
MonD[9]=31;
MonD[10]=30;
MonD[11]=31; // December		

//***********************************************************************************************************************************
// isdigit
// This function verify if the given value is a number or digit
//***********************************************************************************************************************************
function isDigit(d) {return(d >= '0' && d <= '9');}

//***********************************************************************************************************************************
// IsLeapYear
// This function verify if the Year is Leap
//***********************************************************************************************************************************
function IsLeapYear(y)
{
	if(0 == y % 4 && ((y % 100 != 0) || (y % 400 == 0))) return true;
	else return false;
}
//***********************************************************************************************************************************
// CheckDate
// This function verify date fields and identify errors on entry
// Valid entries are:
// mmddyy
// mmddyyyy
// mm.dd.yy
// mm.dd.yyyy
// mm/dd/yy
// mm/dd/yyyy
//***********************************************************************************************************************************
function CheckDate(sender, args)
{

	var fld = document.activeElement.id
	var fv = args.Value;
	var l1 = fv.length;
	
	args.IsValid = true;
	
	var l4 = "";
	for(i=0;i<=3;i++)
	{
		var cc=fld.charAt(i);
		l4=l4+cc;
	}
	
	if(l4=="dtxt")
	{
		if(l1>0)
		{
			var ms="";
			var ds="";
			var ys="";
			var dsep="/";
			var sdt="";
			var dt="";
		
			for(i=0;i<=fv.length;i++)
			{
				var c = fv.charAt(i);
				if(isDigit(c))
				{
					sdt=sdt+c;
				}
			}
			var l2=sdt.length
			if((l2<6)||(l2>8))
			{
				args.IsValid = false;
				return;
			}
			else 
			{
				ms=sdt.substr(0,2);
				ds=sdt.substr(2,2);
				ys=sdt.substr(4,l2);
				if(parseInt(ys,10)<100)
				{
					ys = 1900+parseInt(ys,10);
					while(ys<1918) ys=ys+100;
				}
				dt=ms+dsep+ds+dsep+ys;
				
				if(IsLeapYear(ys))
				{
					MonD[1]=29;
				}
				
				if((ms>0) && (ms<=12) && (ds>0) && (ds<=MonD[ms-1]) && (ys>0))
				{
					args.IsValid = true;
					document.forms[0].elements[fld].value = dt;
				}
				else
				{	
					args.IsValid = false;
					return;
				}
			}
		}
	}
}
//***********************************************************************************************************************************
// CheckTime
// This function verify time fields and identify errors on entry
// Valid Entries are:
// - HHmm
// - HH.mm
// - HH:mm
//***********************************************************************************************************************************
function CheckTime(sender, args)
{
	var fld = document.activeElement.id
	var fv = args.Value;
	var l1 = fv.length;
	
	if(l1>0)
	{
		var hrs="";
		var mins="";
		var msep=":";
		var stm="";
		var tm="";
	
		for(i=0;i<=fv.length;i++)
		{
			var c = fv.charAt(i);
			if(isDigit(c))
			{
				stm=stm+c;
			}
		}
		
		var l2=stm.length
		if((l2<4)||(l2>4))
		{
			args.IsValid = false;
			return;
		}
		else 
		{
			
			hrs=stm.substr(0,2);
			mins=stm.substr(2,2);
			
			tm=hrs+msep+mins;

			if((hrs>=0) && (hrs<=23) && (mins>=0) && (mins<=59))
			{
				args.IsValid = true;
				document.forms[0].elements[fld].value = tm;
			}
			else
			{	
				args.IsValid = false;
				return;
			}
		}
	}
}
//***********************************************************************************************************************************
// OpenEditReferralWindow
// This function will open a window and show the required referral so the users
// don't lost their search criteria
//***********************************************************************************************************************************
function fnOpenPrintWindow(strLink)
{
	print_window = window.open(strLink,'print_window','resizable=yes,scrollbars=yes,left=2,top=2,width=799,height=600');
}

//***********************************************************************************************************************************
// OpenCalendarWindow
// This function will open a window and show the required 
//***********************************************************************************************************************************
function OpenCalendarWindow(frmName,fld,sMode,sRestricted)
{
	var fldvalue = document.getElementById(fld).value
	
	//Evaluate sMode
	//1-Date Only Window - Date picker restricted to past or current date only
	//2-Date/Time Window - Date picker restricted to past or current date only

	if(sMode=="1")
	{
		if(sRestricted=="1")
		{
			var strLink = "KPISCalendar.aspx?formname=" + frmName + "." + fld + "&cdate=" + fldvalue + "&rp=True";
		}
		else
		{
			var strLink = "KPISCalendar.aspx?formname=" + frmName + "." + fld + "&cdate=" + fldvalue + "&rp=False";			
		}
		calendar_window = window.open(strLink,'calendar_window','left=250,top=250,width=165,height=199');
	}
	else
	{
		if(sRestricted=="1")
		{
			var strLink = "LAORAISCalendarDateTime.aspx?formname=" + frmName + "." + fld + "&cdate=" + fldvalue + "&rp=True";
		}
		else
		{
			var strLink = "KPISCalendarDateTime.aspx?formname=" + frmName + "." + fld + "&cdate=" + fldvalue + "&rp=False";
		}
		calendar_window = window.open(strLink,'calendar_window','left=250,top=250,width=165,height=220');
	}
	calendar_window.focus();
}

function OCTest(frmName,fld,sMode,sRestricted)
{
	var fldvalue = document.getElementById(fld).value
	
	
	//Evaluate sMode
	//1-Date Only Window - Date picker restricted to past or current date only
	//2-Date/Time Window - Date picker restricted to past or current date only

	if(sMode=="1")
	{
		if(sRestricted=="1")
		{
			var strLink = "KPISCalendar.aspx?formname=" + frmName + "." + fld + "&cdate=" + fldvalue + "&rp=True";
		}
		else
		{
			var strLink = "KPISCalendar.aspx?formname=" + frmName + "." + fld + "&cdate=" + fldvalue + "&rp=False";			
		}
		calendar_window = window.open(strLink,'calendar_window','left=250,top=250,width=400,height=300,status=yes');
	}
	else
	{
		if(sRestricted=="1")
		{
			var strLink = "KPISCalendarDateTime.aspx?formname=" + frmName + "." + fld + "&cdate=" + fldvalue + "&rp=True";
		}
		else
		{
			var strLink = "KPISCalendarDateTime.aspx?formname=" + frmName + "." + fld + "&cdate=" + fldvalue + "&rp=False";
		}
		calendar_window = window.open(strLink,'calendar_window','left=250,top=250,width=165,height=220');
	}
	
	calendar_window.focus();
}

//***********************************************************************************************************************************
// CheckDateTime
// This function verify date fields and identify errors on entry
// Valid entries are:
// mmddyy
// mmddyyyy
// mm.dd.yy
// mm.dd.yyyy
// mm/dd/yy
// mm/dd/yyyy
// mmddyy HHmm
// mmddyyyy HHmm
// mm.dd.yy HH.mm
// mm.dd.yyyy HH.mm
// mm/dd/yy HH:mm
// mm/dd/yyyy HH:mm
//***********************************************************************************************************************************
function CheckDateTime(sender, args)
{
	var fld = document.activeElement.id
	var fv = args.Value;
	var dtportion = "";
	var tmportion = "";
	var dts = "";
	var tms = "";
	
	args.IsValid = true;
	
	var l4 = "";
	for(i=0;i<=3;i++)
	{
		var cc=fld.charAt(i);
		l4=l4+cc;
	}
	
	if(l4=="dtxt")
	{
		//Check if blanks are found in the value and where
		//The blank position will allow us to divide the
		//date portion from the time portion
		var bpos = fv.indexOf(" ");
		
		//if a blank was found then we can get the 2 portions
		//otherwise false is returned
		if(bpos>0)
		{
			dtportion = fv.substr(0,bpos);
			tmportion = fv.substr(bpos+1,fv.length-bpos);
			
			dts = VerifyDate(dtportion);
			
			//if the date portion is blank, an invalid format
			//was found, return false.
			if(dts=="")
			{
				args.IsValid = false;
				return;
			}
			else
			{
				tms = VerifyTime(tmportion);
				
				//if the time portion is blank, an invalid format
				//was found, we make tms = "00:00"
				if(tms=="")
				{
					tms = "00:00";
				}
				args.IsValid = true;
				document.forms[0].elements[fld].value = dts+" "+tms;
			}
		}
		else
		{
			//Verify just Date if it is possible, otherwise
			//return false
			dts = VerifyDate(fv);
			
			if(dts=="")
			{
				args.IsValid = false;
				return;
			}
			else
			{
				args.IsValid = true;
				document.forms[0].elements[fld].value = dts;
			}
		}
	}

}

//***********************************************************************************************************************************
// VerifyDate
// This function verify date fields and identify errors on entry
//***********************************************************************************************************************************
function VerifyDate(rawDate)
{
	var fld = document.activeElement.id
	var fv = rawDate;
	var l1 = fv.length;
	
	var l4 = "";
	for(i=0;i<=3;i++)
	{
		var cc=fld.charAt(i);
		l4=l4+cc;
	}
	
	if(l4=="dtxt")
	{
		if(l1>0)
		{
			var ms="";
			var ds="";
			var ys="";
			var dsep="/";
			var sdt="";
			var dt="";
		
			for(i=0;i<=fv.length;i++)
			{
				var c = fv.charAt(i);
				if(isDigit(c))
				{
					sdt=sdt+c;
				}
			}
			var l2=sdt.length
			if((l2<6)||(l2>8))
			{
				return "";
			}
			else 
			{
				ms=sdt.substr(0,2);
				ds=sdt.substr(2,2);
				ys=sdt.substr(4,l2);
				
				if(parseInt(ys,10)<100)
				{
					ys = 1900+parseInt(ys,10);
					while(ys<1918)ys=ys+100;
				}
				dt=ms+dsep+ds+dsep+ys;
				
				if(IsLeapYear(ys))
				{
					MonD[1]=29;
				}
				
				if((ms>0) && (ms<=12) && (ds>0) && (ds<=MonD[ms-1]) && (ys>0))
				{
					return dt;
				}
				else
				{	
					return "";
				}
			}
		}
	}
}
//***********************************************************************************************************************************
// VerifyTime
// This function verify time fields and identify errors on entry
//***********************************************************************************************************************************
function VerifyTime(rawTime)
{
	var fld = document.activeElement.id
	var fv = rawTime;
	var l1 = fv.length;
	
	if(l1>0)
	{
		var hrs="";
		var mins="";
		var msep=":";
		var stm="";
		var tm="";
	
		for(i=0;i<=fv.length;i++)
		{
			var c = fv.charAt(i);
			if(isDigit(c))
			{
				stm=stm+c;
			}
		}
		
		var l2=stm.length
		if((l2<3)||(l2>4))
		{
			return "";
		}
		else 
		{
			if(l2==3)
			{
				stm = "0"+stm;
			}

			hrs=stm.substr(0,2);
			mins=stm.substr(2,2);

			tm=hrs+msep+mins;
			
			if((hrs>=0) && (hrs<=23) && (mins>=0) && (mins<=59))
			{
				return tm;
			}
			else
			{	
				return "";
			}
		}
	}
	else
	{
		return "";
	}
}