var CalDate = new Date();
var months = new Array;
var years = new Array;
var top , left,calMonth, winHeight;
var txtName;

var CheckBit;
var DateFormat;
var	DayFormat;
var MonthFormat;
var YearFormat;
var DateString;
var DeLimiter;
DateString = "";
  
months[0] = "January" ;
months[1] = "February";
months[2] = "March";
months[3] = "April";
months[4] = "May"  ;
months[5] = "June";
months[6] = "July" ;
months[7] = "August";
months[8] = "September";
months[9] = "October" ;
months[10] = "November";
months[11] = "December";
	
for(k=1930;k<2016;k++)
    years[k] = k;
                            
function getValue(arg)
{
	for ( var i = 0; i < arg.length; i++ )
	{
		if ( arg.options[i].selected == true )
		{ 
			return arg.options[i].value;
			break;
		}
	}
	return null;
}

function getText(arg)
{
	for ( var i = 0; i < arg.length; i++ )
	{
	   if ( arg.options[i].selected == true )
	   {
			return arg.options[i].text;
			break;
	   }
    }
	return null;
 }		
function yearforward()
{
	var tot = 2016 - 1930;
	var yr = document.all.item("calYear");
	var selindx = yr.selectedIndex;
	if( selindx < (tot-1) )
	{
		yr.selectedIndex = selindx + 1
		changeYear();	
	}	
	
}
function monthforward()
{
	var yr = document.all.item("calMonth");
	var selindx = yr.selectedIndex;
	if( selindx < 11 )
	{
		yr.selectedIndex = selindx + 1
		changeMonth();	
	}
	if( selindx == 11 )
	{
		yr.selectedIndex = 0
		changeMonth();	
		yearforward();
	}
}

function yearback()
{
	var yr = document.all.item("calYear");
	var selindx = yr.selectedIndex;
	if( selindx > 0 )
	{
		yr.selectedIndex = selindx - 1
		changeYear();	
	}
}
function monthback()
{
	var yr = document.all.item("calMonth");
	var selindx = yr.selectedIndex;
	if( selindx > 0 )
	{
		yr.selectedIndex = selindx - 1
		changeMonth();	
	}
	if( selindx == 0 )
	{
		yr.selectedIndex = 11
		changeMonth();	
		yearback();
	}
}


function showCalender(theMonth,theYear,thecurrentday)
{  
	if (isNaN(theMonth)){
    	CalDate = new Date(theMonth + ",1 " + theYear);}
	else 
	{
     theMonth--;
	 CalDate = new Date(theYear,theMonth,1);
	} 
    cc = CalDate.getMonth();
    var strOP = "";
//	strOP = "<div style='border:3px solid #FEd110;'>"
 		strOP  = strOP + "<table id='CalTable' border=0 cellpadding=2 cellspacing=1 align='center' width='95%'>"
 		strOP = strOP + "<tr><td align=left class='date ah' title='Previous Month' valign=top  style='cursor:hand'  onclick='monthback()'><b>&lt;M</b></td><td align=right class='date ah' title='Next Month' style='cursor:hand' onclick='monthforward()' valign=top ><b>M&gt;</b></td><td>&nbsp;&nbsp;&nbsp;&nbsp;</td>"
 		strOP = strOP + "<td align=left class='date ah' title='Previous Year' style='cursor:hand' onclick='yearback()'><b>&lt;Y</b></td><td align=right class='date ah' style='cursor:hand' title='Next Year' onclick='yearforward()'><b>Y&gt;</b></td><td align='right' ><img onclick='CloseCalender()' src='Images/close_o.gif'></td></tr>"
 		strOP = strOP + "<input type='hidden' name='dayvalue' value='"+ thecurrentday +"'>"
   	strOP  = strOP  + "<tr>"
		strOP  = strOP  + "<td colspan=3>"
    strOP  = strOP  + "<select name='calMonth' style='width: 81; font-size: 10px; height: 26' onChange='changeMonth();' size='1'>" 
    for(i=0;i<12;i++) 
	{
	  if(i == CalDate.getMonth())
	     strOP  = strOP  + "<option value= " + i  + " selected >" + months[i] + "</option>"
	  else
	     strOP  = strOP  + "<option value= " + i + " >" + months[i] + "</option>"
	}   	
	strOP  = strOP  + "</select>"
	strOP  = strOP  + "</td>"
	strOP  = strOP  + "<td align=right colspan=3> "
	if(txtName.getAttribute("YearBit")==0)
		strOP  = strOP  + "<select name='calYear' style='visibility:hidden;width: 72; font-size: 10px; height: 26' onChange='changeYear();' size='1'>"
	else
		strOP  = strOP  + "<select name='calYear' style='width: 72; font-size: 10px; height: 26' onChange='changeYear();' size='1'>"
	
	for(i=1930;i<2016;i++) 
	{
	if(i == CalDate.getFullYear())
		strOP  = strOP  + "<option value= " + i + " selected >" + years[i] + "</option>"
	else
		strOP  = strOP  + "<option value= " + i + " >" + years[i] + "</option>"
    }   	
	strOP  = strOP  + "</select>"
	strOP  = strOP  + "</td>"
	strOP  = strOP  + "</tr>"
	strOP  = strOP  + "</table>"
       
 	strOP  = strOP  + "<table border=0 cellpadding=2 cellspacing=1 align='right' width='95%'>"
	strOP  = strOP  + "<tr>"
	strOP  = strOP  + "<td class='header1' align=center><font color=red>  S</font></td>"
	strOP  = strOP  + "<td class='header1' align=center><font color=black>M</font></td>"
	strOP  = strOP  + "<td class='header1' align=center><font color=black>T</font></td>"
	strOP  = strOP  + "<td class='header1' align=center><font color=black>W</font></td>"
	strOP  = strOP  + "<td class='header1' align=center><font color=black>T</font></td>"
	strOP  = strOP  + "<td class='header1' align=center><font color=black>F</font></td>"
	strOP  = strOP  + "<td class='header1' align=center><font color=black>S</font></td>"
	strOP  = strOP  + "</tr>"
       
   	var theDay = 1;
	var offset = CalDate.getDay();
	var exitFlag = false;
	
    var DIM = getDaysInMonth(CalDate);
	for ( var y = 0; y <= 5; y++ )
	{
	   strOP = strOP + "<tr>";
	   for ( var x = 0; x <= 6; x++ )
	   {
	     if ( offset > x )
	     {
		strOP = strOP + "<td></td>";
	     }
	     else
	     {
		offset = 0;
		if(parseInt(thecurrentday) == parseInt(theDay))
 			strOP = strOP + "<td bgcolor='RED' class='date ah'><a  href='javascript:getCalDate("+theDay+ ","+CalDate.getMonth()+" ,"+CalDate.getFullYear()+");'><b>" + theDay + "</b></a></td>";
 		else
 			strOP = strOP + "<td class='date ah'><a  href='javascript:getCalDate("+theDay+ ","+CalDate.getMonth()+" ,"+CalDate.getFullYear()+");'>" + theDay + "</a></td>";
		theDay++;				
	     }
			
	     if ( DIM < theDay )
	     {
           exitFlag = true;
		   break;
	     }
	 } 
	 strOP = strOP + "</tr>";
	 if ( exitFlag )
	 {
	   break;
	 } 
	}  

	strOP = strOP + "</table>";
//	strOP = strOP + "</DIV>";		
	
	try
	{
		window.Calender.innerHTML= "<center>" + strOP + "</center>"
	}
	catch(e)
	{}
	if(left<200)
	{
		window.Calender.style.left = left + 200;
		left = left + 200;
	}	
	else
		window.Calender.style.left = left;

	
	window.Calender.style.top = top; 
	window.Calender.style.zIndex = 2; 
	
	
	window.Calender.style.visibility="visible";
	window.Calender.style.display="block";
	
	calBottom = parseInt(top) + parseInt(window.Calender.offsetHeight) +  41;
		
	if(parseInt(calBottom) > parseInt(winHeight))
	{
		window.Calender.style.visibility="hidden";
		window.Calender.style.display="none";
		window.Calender.style.top = winHeight - 225;
		try{
		FrameObj.style.top = winHeight - 225;}catch(e){}
		window.Calender.style.visibility="visible";
		window.Calender.style.display="block";
	}
	var FrameObj;
	
	if (document.getElementById("idCalenderFrame")=="[object]")
	{
		FrameObj=document.getElementById("idCalenderFrame");
	}
	else
	{
		FrameObj=document.createElement('iframe');
		FrameObj.setAttribute('id','idCalenderFrame');
		FrameObj.setAttribute('name','CalenderFrame');
	}
	FrameObj.style.position='absolute';
	FrameObj.style.border='0';
	FrameObj.style.left=window.Calender.style.left;
	FrameObj.style.top=window.Calender.style.top;
	FrameObj.style.display='block';
	document.body.appendChild(FrameObj);
	FrameObj.style.height=window.Calender.offsetHeight;
	FrameObj.style.width=window.Calender.offsetWidth;
	FrameObj.style.top=window.Calender.style.top;
	
	TryHideCal('hidden',1);
	return strOP;
}

function CloseCalender()
{
  try{
  HideFrame();
  Calender.style.visibility = "hidden";
  Calender.style.display = "none";
  TryHideCal('visible',0);
  txtName.click();}catch(e){}
}

function getCalDate(day,mm,yy)
{
  for(i=0;i<12;i++)
  {
    if(i==mm)
    {
      mmm = i+1;
	  break;        
    }
  }
  mm++;

  if (DateFormat == 1  && DeLimiter==0)
	{
	 if(txtName.getAttribute("YearBit")==0)
	 		txtName.value = FormatMonth(mm)+"/"+FormatDay(day)
	 else
	 		txtName.value = FormatMonth(mm)+"/"+FormatDay(day)+"/"+FormatYear(yy);
	}
	else if (DateFormat == 0  && DeLimiter==0)
	{  
		if(txtName.getAttribute("YearBit")==0)
	 		txtName.value = FormatDay(day)+"/"+FormatMonth(mm)
	 	else
	 		txtName.value = FormatDay(day)+"/"+FormatMonth(mm)+"/"+FormatYear(yy);
	}
	else if (DateFormat == 1  && DeLimiter==1)
	{
	 	if(txtName.getAttribute("YearBit")==0)
	 		txtName.value = FormatMonth(mm)+"-"+FormatDay(day)
	 	else
	 		txtName.value = FormatMonth(mm)+"-"+FormatDay(day)+"-"+FormatYear(yy);
	 } 
	else
	{  
	 	if(txtName.getAttribute("YearBit")==0)
	 		txtName.value = FormatDay(day)+"-"+FormatMonth(mm)
	 	else
	 		txtName.value = FormatDay(day)+"-"+FormatMonth(mm)+"-"+FormatYear(yy);
	 }
  HideFrame();
  Calender.style.visibility = "hidden";
  Calender.style.display = "none";
  TryHideCal('visible',0);
  txtName.click();
  
  CheckExtraEvent();
}  

function CheckExtraEvent()
{
	try
	{
		AfterEventFunction=txtName.getAttribute("AfterEventFunction");
		if (AfterEventFunction!="")
			eval(AfterEventFunction)
	}
	catch(e)
	{}
}

function FormatDay(day)
{
  var NDay;
  Nday = day;
 
  if(GetDayFormat() == 1) 
	 if(day < 10)
	    NDay = "0" + day;
     else
        NDay = day;  
  else
  	 NDay = day;
  return NDay;
}

function FormatMonth(month)
{
  var NMonth;
  NMonth = month;
  if(GetMonthFormat() == 1) 
    if(month < 10)
	    NMonth = "0" + month;
     else
        NMonth = month;  
  else
     NMonth = month;
  return NMonth;
}

function FormatYear(year)
{
  var x,y,NYear;
  Nyear = new String(year);
  
  if(GetYearFormat() == 1)
  	NYear = year;
  else
	NYear = Nyear.substr(2);

  return NYear;
}


function getDaysInMonth(month)
{	
	var now = new Date();
	var currMonth;
	currMonth = month.getMonth()+1
	if(currMonth==1 || currMonth==3 || currMonth==5 || currMonth==7 || currMonth==8 || currMonth==10 || currMonth==12)
		return 31;
	else
	{
		if(currMonth==2 && (month.getYear()%4)==0 )	
			return 29;

		else if(currMonth==2)
			return 28;
		else
			return 30	
	}
}

  function initCalender(txt,obj)
  {        
	
	 CheckBit = document.all("sysdateformatbit").value;
	 DateFormat = CheckBit.charAt(4-4);
     	 DayFormat = CheckBit.charAt(4-3);
         MonthFormat = CheckBit.charAt(4-2);
         YearFormat = CheckBit.charAt(4-1);
	 DeLimiter=CheckBit.charAt(4);
	 var mmonth,yyear;
	 var thecurrentday;
	 var theDate = new Date();
	
	 var str;
	 str = txt.value;
	 if(DeLimiter == 1)
	 {
		str = str.replace("/", "-");
		str = str.replace("/", "-");
     }
     else
     {
	    str = str.replace("-", "/");
	    str = str.replace("-", "/");
	 }
	 txt.value=str;
	 
	 yyear = theDate.getFullYear(); 
	 mmonth = theDate.getMonth();
	 thecurrentday = theDate.getDate();
		 
	 var objLeft,objTop, objParent;
	 
     if(window.Calender.style.visibility == "visible")
     {
      HideFrame();
       window.Calender.style.visibility = "hidden";
       window.Calender.style.display = "none";
				txt.value ="";
       window.Calender.innerHTML = " ";
       TryHideCal("visible",0);
       return(false);
     }
 
     if(!(txt.value))
		 txt.value = "";

	 // Find the element's offsetTop and offsetLeft relative to the BODY tag.
	 objLeft   = obj.offsetLeft;
	 objTop    = obj.offsetTop;
	 objParent = obj.offsetParent;
	
	 while (objParent.tagName.toUpperCase() != "BODY")
	 {
	   objLeft  += objParent.offsetLeft;
	   objTop   += objParent.offsetTop;
	   objParent = objParent.offsetParent;
	 }
	
 	 if(parent.oWin == undefined)
 		winHeight = parseInt(parent.dialogHeight);
 	 else
		winHeight = parent.oWin.activewindow.oframe.height;
 	 
 	 top = objTop-10;
	 left = objLeft -120- 50;
	 
	 txtName = txt;
	 
	 var idx; 
     if(txtName.value == "")
	 {
	  theDate = new Date();
	  idx = theDate.getFullYear();
	  for(i=1930;i<2016;i++)
	  {
	    if(i == idx)
	       yyear = years[i];
	  } 
	  idx = theDate.getMonth();
	  for(i=0;i<12;i++)
	     if(i == idx)
	         mmonth = months[i];
	 thecurrentday = theDate.getDate();
   }
   else
   {
         
     if(DeLimiter == 1)
       dd = txtName.value.split("-");
     else
	   dd = txtName.value.split("/");		
	 
	   
	 if(parseInt(dd[2]) < 100)
	   {
	     if(parseInt(dd[2]) < 30)
		    dd[2] = "20" + dd[2];
	     else
		    dd[2] = "19" + dd[2];
     }
     else
	   {
			if(parseInt(dd[2]) > 99 && parseInt(dd[2]) < 1000)
			{
			  alert("Entered Year is not in proper format.");
			  return(false);
			}	
     }
	 
     for(i=1930;i<2016;i++)
        if(i == parseInt(dd[2]))
	         yyear = years[i];
    
	    if (DateFormat==0)
	    {
	     mmonth = dd[1];
	     thecurrentday = dd[0];
	    }
		else
		{
		 mmonth = dd[0];
		 thecurrentday = dd[1];
		 }
	}

	showCalender(mmonth,yyear,thecurrentday);	
	TryHideCal("hidden",0);
	window.event.returnvalue = true;
}                                                                             
	
function changeMonth()
{	
  mmonth= getText(document.all.item("calMonth"));
  yyear = getText(document.all.item("calYear"));
  thecurrentday = document.all.item("dayvalue").value;
  showCalender(mmonth,yyear,thecurrentday);		
}		

function changeYear()
{
  mmonth= getText(document.all.item("calMonth"));
  yyear = getText(document.all.item("calYear"));
  thecurrentday = document.all.item("dayvalue").value;
  showCalender(mmonth,yyear,thecurrentday);		
}
	
function GetDateReady(txtBox)
{
	var TheValue;
	var Correct;
	TheValue = txtBox; //txtBox.value;
	DataArr = TheValue.split('/');
    if (DataArr.length != 3)
	   return false;
		
    if (DateFormat == 0)
 	{
       MonthIndex = 1;
	   DayIndex = 0; 
    }
    else
	{
	   MonthIndex = 0;
	   DayIndex = 1; 
	}

	   Correct = true;
	   ExtractDay = DataArr[DayIndex];
	   ExtractMonth = DataArr[MonthIndex];

	   if(typeof(ExtractMonth) =="undefined") Correct = false;

	   ExtractYear = DataArr[2];
		
       if (! Correct)
          return false;
               
		RetDate = new Date(ExtractYear,ExtractMonth,ExtractDay);
		dateval = GetDateFormat(RetDate);
		return RetDate;
}

function toLocaleStrDemo()
{  
  var d, s;
  d = new Date();
  s = "Current setting is ";
  s += d.toLocaleString(); 
  return(s);
}

function getDateCheckBit()
{
  if (DateFormat == 1 )
     return 1;
   else if (DateFormat == 0)
    return 0;
   else 
    return 0;
}

function CalculateWeeks(StartDate,EndDate)
{
 var DayCtr,WeekCtr
 var BooleanFlag 
 MonthVal = StartDate.getMonth();
 YearVal = StartDate.getYear();
 InitDate = StartDate;
  if (!isFriday(StartDate))
  {
	   WeekCtr=1;
  }
  else
	 WeekCtr=0;
  DiffValue = EndDate - StartDate;
  DiffDays = (DiffValue/(1000*60*60*24));
  StartDay = StartDate.getDate();
  BooleanFlag = false;
  for (DayCtr=0; BooleanFlag == false;DayCtr++)
  {
	 InitDate.setMonth(parseInt(MonthVal));
     InitDate.setYear(parseInt(YearVal));
	 IncrMent = parseInt(StartDay + DayCtr); 
	 InitDate.setDate(IncrMent); 
     if (InitDate.getDay() == 5)
	 {
		 BooleanFlag = true;
	 }
  }
  DayCtr--;
  DaysLeft = DiffDays - DayCtr;
  Quotient  =  parseInt(DaysLeft / 7);
  Remainder =  parseInt(DaysLeft % 7);
  WeekCtr += Quotient;
  if (Remainder > 0)
  {
	WeekCtr++;
  }
  return WeekCtr;
}

function AddLastDate(StartDate,theWeekElement)
{
	WeekNo = theWeekElement.value;
	WeekDays = WeekNo * 7;
	InitDate = StartDate;
	StartDays = StartDate.getDate();
	TotalDays = StartDays + WeekDays;
	InitDate.setDate(TotalDays);
	DayNo =  InitDate.getDay();
	CurrentDay = InitDate.getDate();
	if(DayNo==2 || DayNo==3 || DayNo==4)
	{
		// front log
		AddDate =  5 - DayNo;
		PutDate = CurrentDay + AddDate;
		InitDate.setDate(PutDate);
		WeekNo++;
	}
	else if (DayNo==6 || DayNo==0 || DayNo==1)
	{
		// Back Log
		if (DayNo==6)
			MinusDate =  1;
	
		if (DayNo==0)
			 MinusDate =  2;
	
		if (DayNo==1)
			MinusDate =  3;
	
		InitDate.setDate(CurrentDay - MinusDate);
	}

	if (InitDate.getDay() != 5)
	{
		alert(InitDate.getDay());
	}
	theWeekElement.value = WeekNo;
	alert(InitDate);
	return InitDate;
}


function isFriday(theDate)
{
	var DateVal;
	if (isNaN(theDate))
	{
	DateVal = GetDateReady(theDate);
	}
	else
		DateVal = theDate;
    if (DateVal.getDay() == 5)
    {
		return true;
    }
else
	{
	return false;
	
	}
}


function GetDelimiter()
{
  CheckBit = document.all("sysdateformatbit").value;
  DeLimiter=CheckBit.charAt(4);
  return DeLimiter;	
}

function GetDateFormat()
{
  CheckBit = document.all("sysdateformatbit").value;
  DateFormat = CheckBit.charAt(4-4);
  return DateFormat;
}	  

function GetMonthFormat()
{
  CheckBit = document.all("sysdateformatbit").value;
  MonthFormat = CheckBit.charAt(4-2);
  return MonthFormat;
}	  

function GetDayFormat()
{
  CheckBit = document.all("sysdateformatbit").value;
  DayFormat = CheckBit.charAt(4-3);
  return DayFormat;
}	  

function GetYearFormat()
{
  CheckBit = document.all("sysdateformatbit").value;
  YearFormat = CheckBit.charAt(4-1);
  return YearFormat;
}	  

function GetMonthFromDate(ddate)
{
 if(GetDelimiter() == 0)
    DateArr = ddate.split("/");
 else
	DateArr = ddate.split("-");

  if(GetDateFormat() == 1)
     return DateArr[0];
  else
	return DateArr[1];  	   
}

function GetDayFromDate(ddate)
{
 if(GetDelimiter() == 0)
    DateArr = ddate.split("/");
 else
	DateArr = ddate.split("-");

  if(GetDateFormat() == 1)
     return DateArr[1];
  else
	 return DateArr[0];  	   
}

function GetDateCheck(StartDate,EndDate)
{
	var DateVal;
	if (isNaN(StartDate))
	{
	DateVal = GetDateReady(StartDate);
	DateVal2 = GetDateReady(EndDate);
	}
	else
	{
		DateVal = StartDate;
		DateVal2 = EndDate;
	}
    if (DateVal >= DateVal2)
    {
		return false;
    }
else
	{
	return true;
	
	}
}

function CalDaysDiff(StartDate,EndDate)
{
 DiffValue = EndDate - StartDate;
 DiffDays = (DiffValue/(1000*60*60*24));
 return parseInt(DiffDays);
}

function SetTimeDay(thedate)
{
thedate.setDay(1);
thedate.setMonth(1);
thedate.setYear(2001);
return thedate;
}

function CalTimeDiff(StartTime,EndTime)
{
Val1 = SetTimeDay(StartTime);
Val2 = SetTimeDay(EndTime);
DiffValue = Val2 - Val1;
return DiffValue;
}

function GetHours(theValue)
{
theValue = (theValue/(1000*60*60));
return theValue;
}

function GetMinutes(theValue)
{
theValue = (theValue/(1000*60));
return theValue;
}

function GetSeconds(theValue)
{
theValue = (theValue/(1000));
return theValue;
}


/*function IsDateValid(txtBox)
{
  var TheValue;
  CheckBit = document.all("sysdateformatbit").value;
  DateFormat = CheckBit.charAt(3-3);
  DayFormat = CheckBit.charAt(3-2);
  MonthFormat = CheckBit.charAt(3-1);
  YearFormat = CheckBit.charAt(3);
  DeLimiter=CheckBit.charAt(4);

  TheValue = txtBox;
  if(DeLimiter == 1)
    DataArr = TheValue.split('-');
  else
	DataArr = TheValue.split('/');   
  
  if (DataArr.length != 3)
      return false;
  
  if (DateFormat==0)
  { 
    MonthIndex = 1;
    DayIndex = 0;
  }
  else
  {
    MonthIndex = 0;
    DayIndex = 1;
  }
  
  ExtractMonth = parseInt(DataArr[MonthIndex]); 
  if (ExtractMonth < 0 || ExtractMonth > 12) 
     return false;
		
  ExtractYear = DataArr[2];
		
  if (YearFormat==1)
  {
    if(parseInt(ExtractYear) < 1800 || parseInt(ExtractYear) > 2200) 
      return false;
  }
  else if (YearFormat==0)
  {
    if(parseInt(ExtractYear)<0)
      return false;
  }

  tempdate = new Date();
  tempdate.setMonth(ExtractMonth);
  tempdate.setYear(ExtractYear);
  MaxDays = getDaysInMonth(tempdate);
  ExtractDay = parseInt(DataArr[0]);
  if ( ExtractDay < 1 || ExtractDay > MaxDays )  
     return false;
  
  return true;
}*/


//This function is modified by Manish

/* Author of the Module : Manish Mehra
   Description			: This Module is responsible for the Addition of Days, 
   Weeks, Months and Year in the Given Date */
function IsDateValid(txtBox)
{     
	var TheValue,MonthVal,DayVal,YearVal,DayVal1,lengthday,lengthyear,lengthmonth,MonthVal1,YearVal1;
	var i;
	i=0;
	CheckBit = document.all("sysdateformatbit").value;
	DateFormat = CheckBit.charAt(0);
	DayFormat = CheckBit.charAt(1);
	MonthFormat = CheckBit.charAt(2);
	YearFormat = CheckBit.charAt(3);
	DeLimiter=CheckBit.charAt(4);
    TheValue = txtBox;
	TheValue1=txtBox;
	if(TheValue.indexOf('+',0)>=0)
	  	return false;
	
	if(TheValue.indexOf('-',0)==0)
	   	return false;
	
	if(TheValue.indexOf('/',0)==0)
	   	return false;
	
	DataArr = TheValue.split('/');
	
	if (DataArr.length == 3)
	{	    
		if (TheValue1.indexOf('-',0) != -1)
		    return false;
	}
	else 
	{
		DataArr = TheValue.split('-');
        if (DataArr.length == 3)
	    {	    
	      if(TheValue1.indexOf('/',0) != -1)
				return false;
		}
        else
          return false;
    }
	
	if (DateFormat==0)
	{ 
		MonthVal=DataArr[1];
		DayVal=DataArr[0];
		DayVal1="2" + DataArr[0];
		YearVal=DataArr[2]; 
	} 
	else
	{
	   	MonthVal=DataArr[0];
		DayVal=DataArr[1];
		DayVal1="2" + DataArr[1];
		YearVal=DataArr[2]; 
	}
		
	lengthday= DayVal.length
    lengthmonth= MonthVal.length
    lengthyear= YearVal.length
		
	for(i=0;i<lengthday;i++)
	{
	  DayVal1=DayVal.charAt(i);
	  if(isNaN(DayVal1))
	   	 return false;
	}
	
	for(i=0;i<lengthmonth;i++)
	{
	   MonthVal1=MonthVal.charAt(i);
	   if(isNaN(MonthVal1))
		  return false;
    }
    
    for(i=0;i<lengthyear;i++)
	{
	   YearVal1=YearVal.charAt(i);
	   if(isNaN(YearVal1))
		  return false;
	}
						   
	if (YearFormat==1)
	{  
	  if (parseInt(YearVal) < 30 && parseInt(YearVal) >= 0)
	  {  
	     YearVal= "20" + DataArr[2];
	  }
      else if (parseInt(YearVal) > 29 && parseInt(YearVal) < 100)
	  {
         YearVal= "19" + DataArr[2];
	  }
	  else if (parseInt(YearVal) > 1000)
	  {   
	     YearVal=DataArr[2];
	  }
	  else 
	  {
	     return false;
	  }
	}
	else if (YearFormat==0 )
	{  
	  if (parseInt(YearVal) < 30 && parseInt(YearVal) >= 0)
	  {
	     YearVal= "20" + DataArr[2];
	  }
      else if (parseInt(YearVal) > 29 && parseInt(YearVal) < 100)
	  {
         YearVal= "19" + DataArr[2];
	  }
	  else if (parseInt(YearVal) > 1000)
	  { 
         YearVal= DataArr[2];
	  }
	  else
	  {
	    return false;
	  }
	}	
	
	if (MonthVal==1 || MonthVal==3 || MonthVal==5 || MonthVal==7 || MonthVal==8 || MonthVal==10	|| MonthVal==12)
	{ 
	   if(parseInt(DayVal,10)<= 0 || parseInt(MonthVal,10)<=0 || parseInt(YearVal,10) <=0)
	   {  				
		  return false;
	   }
										
	   if(parseInt(DayVal,10)<= 31 && parseInt(MonthVal,10)<=12 && parseInt(YearVal,10) > 1000 && parseInt(YearVal,10)< 10000)
 	   {   
	 	   return true;
	   }
	   else
	   {
		  return false;
	   }
	}
	
	if (MonthVal==2 || MonthVal==4 || MonthVal==6 || MonthVal==9 || MonthVal==11)
	{     
		if (parseInt(DayVal,10)<= 0 || parseInt(MonthVal,10)<=0 || parseInt(YearVal,10) <=0)
		{  											  
		  return false;
		}
									
		if (parseInt(MonthVal,10)==2 && parseInt(YearVal,10) % 4 == 0  && parseInt(YearVal,10)> 1000 && parseInt(YearVal,10)< 10000)
		{  
	      if (parseInt(DayVal,10) <= 29 && parseInt(MonthVal,10)<=12)
		  {  
		     return true;
		  }
		  else 
			 return false;
	}
	else if (parseInt(MonthVal,10)==2 && parseInt(YearVal,10) % 4 != 0  && parseInt(YearVal,10)> 1000 && parseInt(YearVal,10)< 10000)
	{  
	   if (DayVal<= 28)
	   {   
		  return true;
	   }
	   else 
          return false;
	}
	else if (parseInt(MonthVal,10)!=2 && parseInt(DayVal,10) > 30  && parseInt(YearVal,10)> 1000 && parseInt(YearVal,10)< 10000)
	{ 
	  return false;
	}
	else 
	  return true;
	}
}//end of function IsDateValid

function ConvertDate(date)
{
 
 var tmpArr = new Array;
 var returnDate;
 
 if(GetDelimiter() == 0)
	tmpArr = date.split('/');
 else
	tmpArr = date.split('-');

 if(GetDateFormat() == 1)
 {
   if(GetDelimiter() == 0)
   	  returnDate = tmpArr[1] + "/" + ConvertToMonth(tmpArr[0]) + "/" + tmpArr[2];
   else
      returnDate = tmpArr[1] + "-" + ConvertToMonth(tmpArr[0]) + "-" + tmpArr[2];  
 }
 else  
 {
   if(GetDelimiter() == 0)
      returnDate = tmpArr[0] + "/" + ConvertToMonth(tmpArr[1]) + "/" + tmpArr[2];
   else
      returnDate = tmpArr[0] + "-" + ConvertToMonth(tmpArr[1]) + "-" + tmpArr[2];
 }
 
 return returnDate; 
}

function ConvertToMonth(MonthToEval)
{
 	var mm = new Array;
	mm[0] = "Jan";
	mm[1] = "Feb";
	mm[2] = "Mar";
	mm[3] = "Apr";
	mm[4] = "May";
	mm[5] = "Jun";
	mm[6] = "Jul";
	mm[7] = "Aug";
	mm[8] = "Sep";
	mm[9] = "Oct";
	mm[10] = "Nov";
	mm[11] = "Dec";

	if(MonthToEval <=12)
		return mm[MonthToEval - 1];
	else
		return MonthToEval;
}

function GetCurrentDate()
{
  var CurrDate = new Date();
  Day = CurrDate.getDate();
  Month = CurrDate.getMonth()+1;
  Year = CurrDate.getYear();
  return FormatDate(Day,Month,Year);
}

function FormatDate(Day,Month,Year)
{
  tmpDay = FormatDay(Day);
  tmpMonth = FormatMonth(Month);
  tmpYear = FormatYear(Year);
    
  if(GetDelimiter() == 1)
  {
	if(DateFormat == 1)
	  date = tmpMonth + "-" + tmpDay + "-" + tmpYear;
	else
	  date = tmpDay + "-" + tmpMonth + "-" + tmpYear;
  }
  else
  {
    if(DateFormat == 1)
	  date = tmpMonth + "/" + tmpDay + "/" + tmpYear;
	else
	  date = tmpDay + "/" + tmpMonth + "/" + tmpYear;
  }
  return date;
}

function TryHideCal(State,Full)
{
  // Not Req now as we are using select HTC
  // Following line entered By Shankar on 21-July-2004
 return;
  
  var cntls;
  var forms;
  var formname;
 
  Tables=document.all.tags("table");
  
  for(t=0;t<Tables.length;t++)
  {
   //if((Tables[t].style.visibility == "visible"))
   //{
   if((Tables[t].id!="CalTable"))
   {
		cntls=Tables[t].all.tags("Select");
		VisibilityChangerCal(cntls,State);
	 }
	 	//}
  }
  
}

var fLeft,fTop,fBottom,fRight,hnd,str
str =""
function VisibilityChangerCal(Collect,Status)
{	
	
	//str = ""
  for(j=0;j<Collect.length;j++){
		Coordinates(Collect[j]);
		fWidth = Collect[j].offsetWidth;
		fHeight = Collect[j].offsetHeight;
			
		if  ( ((fTop+fHeight > top) && (fTop < top+180)) && ((fLeft+fWidth > left) && (fLeft < left+ 140)) && Collect[j].name!="calYear" && Collect[j].name!="calMonth" )
				Collect[j].style.visibility=Status;
		}
					
		//window.status = left+ " " +top
}


function Coordinates(obj)
{
		// Find the element's offsetTop and offsetLeft relative to the BODY tag.
		objLeft   = obj.offsetLeft;
		objTop    = obj.offsetTop;
		objParent = obj.offsetParent;
		
		while (objParent.tagName.toUpperCase() != "BODY")
		{
			objLeft  += objParent.offsetLeft;
			objTop   += objParent.offsetTop;
			objParent = objParent.offsetParent;
		}
		fLeft = objLeft;
		fTop = objTop;
}

  function initCalenderNew(txt,obj,ETop, ELeft)
  {        
	
	CheckBit = document.all("sysdateformatbit").value;
	DateFormat = CheckBit.charAt(4-4);
    DayFormat = CheckBit.charAt(4-3);
    MonthFormat = CheckBit.charAt(4-2);
    YearFormat = CheckBit.charAt(4-1);
	DeLimiter=CheckBit.charAt(4);
	var mmonth,yyear;
	var thecurrentday;
	var theDate = new Date();
	
	var str;
	str = txt.value;
	if(DeLimiter == 1)
	{
		str = str.replace("/", "-");
		str = str.replace("/", "-");
    }
    else
    {
		str = str.replace("-", "/");
	    str = str.replace("-", "/");
	}
	txt.value=str;
	 
	yyear = theDate.getFullYear(); 
	mmonth = theDate.getMonth();
	thecurrentday = theDate.getDate();
		 
	var objLeft,objTop, objParent;
	 
    if(window.Calender.style.visibility == "visible")
    {
		HideFrame();
		window.Calender.style.visibility = "hidden";
		window.Calender.style.display = "none";
		txt.value ="";
		window.Calender.innerHTML = " ";
		TryHideCal("visible",0);
		return(false);
    }
 
    if(!(txt.value))
		txt.value = "";

	// Find the element's offsetTop and offsetLeft relative to the BODY tag.
	objLeft   = obj.offsetLeft;
	objTop    = obj.offsetTop;
	objParent = obj.offsetParent;
	 
	while (objParent.tagName.toUpperCase() != "BODY")
	{
		objLeft  += objParent.offsetLeft;
		objTop   += objParent.offsetTop;
		objParent = objParent.offsetParent;
	}
		
 	top = objTop-10+ETop;
	left = objLeft -120- 50+ELeft;
	 
	txtName = txt;
	 
	var idx; 
    if(txtName.value == "")
	{
		theDate = new Date();
		idx = theDate.getFullYear();
		for(i=1930;i<2016;i++)
		{
			if(i == idx)
				yyear = years[i];
		} 
		idx = theDate.getMonth();
		for(i=0;i<12;i++)
			if(i == idx)
				 mmonth = months[i];
			thecurrentday = theDate.getDate();
	}
	else
	{
		if(DeLimiter == 1)
			dd = txtName.value.split("-");
		else
			dd = txtName.value.split("/");		
	 
	   
    if(parseInt(dd[2]) < 100)
	{
		if(parseInt(dd[2]) < 30)
			dd[2] = "20" + dd[2];
	    else
			dd[2] = "19" + dd[2];
    }
    else
	{
		if(parseInt(dd[2]) > 99 && parseInt(dd[2]) < 1000)
		{
			alert("Entered Year is not in proper format.");
			return(false);
		}	
     }

     for(i=1930;i<2016;i++)
	     if(i == parseInt(dd[2]))
		     yyear = years[i];

	 if (DateFormat==0)
	 {
		mmonth = dd[1];
		thecurrentday = dd[0];
	 }
	 else
	 {
		mmonth = dd[0];
		thecurrentday = dd[1];
	 }
   }
         
  showCalender(mmonth,yyear,thecurrentday);	
  TryHideCal("hidden",0);
  window.event.returnvalue = true;
  }                                                                             


function HideFrame()
{
	var FrameObj;
	FrameObj=document.getElementById("idCalenderFrame");
	FrameObj.style.left=0;
	FrameObj.style.top=0;
	FrameObj.style.display='none';
	FrameObj.style.height=0;
	FrameObj.style.width=0;
}