

var monthName = new Array ("January","February","March","April","May","June","July","August","September","October","November","December")
var monthShortName = new Array ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
var weekName = new Array("Mon","Tue","Wed","Thu","Fri","Sat","Sun")

function isBrowserSupp() {
// ****************************************************************
// *	Author:	Geraldine Healy		Date:	25/08/1998
// *	Description: Checks if browser is Netscape 2.0 since the options
// *				array properties don't work with Netscape 2.0x
// ****************************************************************

    // Get the version of the browser
    version =  parseFloat( navigator.appVersion );

    if ( ( version >= 2.0 ) && ( version < 2.1 ) && ( navigator.appName.indexOf( "Netscape" ) != -1 ) ) {
        return false;
    }
    else {
        return true;
    }
}

function isLeapYear(yrStr)
{
// ****************************************************************
// *	Author:	Geraldine Healy		Date:	25/08/1998
// *	Description:	Checks if Year selected is a leap year
// ****************************************************************
var leapYear=false;
// every fourth year is a leap year
if ((parseInt(yrStr, 10)%4) == 0)
	{
	 if ((parseInt(yrStr, 10)%400) == 0)
	 {
	 	leapYear=false;	
	 }else
	 {
		leapYear=true;
	 }
	}
return leapYear;
}

function getDaysInMonth(mthIdx, YrStr)
// ****************************************************************
// *	Author:	Geraldine Healy		Date:	25/08/1998
// *	Description:	Retrieves the number of days in a given month
// ****************************************************************
{
//Default number of days in a month is 31
var maxDays=31
// expect Feb.
if (mthIdx==2)
	{
	if (isLeapYear(YrStr))
		{
		maxDays=29;
		}
	else
		{
		maxDays=28;
		}
	}
// All the rest of the months have 30 days
if (mthIdx==4 || mthIdx==6 || mthIdx==9 || mthIdx==11)
	{
	maxDays=30;
	}
return maxDays;
}

function createCalendar(month,year)
// ****************************************************************
// *	Author:	Geraldine Healy		Date:	25/08/1998
// *	Description:	//opens a new window for the calendar
// ****************************************************************
{
if (!isBrowserSupp())
	{
	alert("Your browser is outdated and does not support this feature")
 	return;
	}
if (navigator.appVersion.indexOf("Mac",0) != -1)
	{
    	calendarWindow = window.open("","Calendar","width=230,height=275,resizable=yes,scrollbars=no");
  	}
else
	{
	calendarWindow = window.open("","Calendar","width=230,height=255,resizable=yes,scrollbars=no");
  	}
	var mthIdx = month
	var mthVal = mthIdx
	var yearVal = year
	//call the function to populate the window
	generateCalendar(calendarWindow,mthVal,yearVal)
	calendarWindow.focus();		// Modified by Y.Hillion on 20/01/2003
}

//generates the meat of the calendar
function generateCalendar(target,month,year)
// ****************************************************************
// *	Author:	Geraldine Healy		Date:	25/08/1998
// *	Description:	generates the contents of the calender window
// *
// * 	Modified by: Y.Hillion		Date:	20/01/2003
// *		New look, display two years calendar
// *		with months on screen
// ****************************************************************
{
if (!isBrowserSupp())
	{
 	return;
	}

//begin table for calendar
target.document.open()
calendar = "<html><head><title>calendar "+year+"</title>"
calendar += "<STYLE><!-- "
calendar += "TD.CalendarDay A{ FONT-WEIGHT: normal; FONT-SIZE: 10px; COLOR: #000000; FONT-FAMILY: Verdana; TEXT-DECORATION: underline} TD.CalendarDay A:hover{ COLOR: orangered} "
calendar += "TD.CalendarHeader{FONT-WEIGHT: normal; FONT-SIZE: 10px; COLOR: #000000; FONT-FAMILY: Verdana; TEXT-DECORATION: none} "
calendar += "MonthHeader{ FONT-WEIGHT: bold; FONT-SIZE: 10px; COLOR: #292074; FONT-FAMILY: Verdana}--></STYLE>"


calendar += "</head><body link='black' vlink='black' alink='black' text='black'>"

//The parseInt function parses the string argument as a signed decimal integer.
var io = 'Start';
var mthIdx = parseInt(month);
var endday = getDaysInMonth(mthIdx, year);
var prevyear = parseInt(year) - 1;
var nextyear = parseInt(year) + 1;
var today = new Date();
var thisDate = today.getDate();
var thisDay = today.getDay();
var thisMonth = today.getMonth();
var thisyear = today.getYear();
if (thisyear < 2000)    // Y2K Fix, Yoan Hillion
thisyear = thisyear + 1900;

//year header - by default: two years displayed
if (thisyear == year) {  // display calendar for current year and the following year
	calendar+="<a href='javascript:opener.generateCalendar(self,"+ (month) +","+year+",\""+io+"\")'><FONT SIZE=1 COLOR=#292074 face='verdana'><b>" + year + "</b></font></a> / "
	calendar+="<a href='javascript:opener.generateCalendar(self,"+ (month) +","+nextyear+",\""+io+"\")'><FONT SIZE=1 face='verdana'><b>" + nextyear + "</b></font></a>"
} else {	// display calendar for selected year	
	calendar+="<a href='javascript:opener.generateCalendar(self,"+ (month) +","+prevyear+",\""+io+"\")'><FONT SIZE=1 face='verdana'><b>" + prevyear + "</b></font></a> / "
	calendar+="<a href='javascript:opener.generateCalendar(self,"+ (month) +","+year+",\""+io+"\")'><FONT SIZE=1 COLOR=#292074 face='verdana'><b>" + year + "</b></font></a>"
}

//months table
calendar +="<TABLE BORDER=1 STYLE='font-family:Verdana;font-size:10px;background-color:white;text-align:center'>"
calendar +="<tr valign=top>"
for (var monthindex = 0; monthindex < 12; monthindex++){
	if (monthindex == 6) {		
		calendar +="</tr><tr>"	
	}
	if (monthindex == (mthIdx-1)) {
		calendar+="<TD WIDTH=17 BGCOLOR='yellow'><a href='javascript:opener.generateCalendar(self,"+ (monthindex+1) +","+year+",\""+io+"\")'><b>" + monthShortName[monthindex] + "</b></a></td>"
	}
	else {
		calendar+="<TD WIDTH=17><a href='javascript:opener.generateCalendar(self,"+ (monthindex+1) +","+year+",\""+io+"\")'><b>" + monthShortName[monthindex] + "</b></a></td>"
	}
}
calendar+= "</tr><TR><TD COLSPAN=6 ALIGN='CENTER'><A HREF='javascript:self.close();opener.clear()'><b>Clear</b></A></TD></TR>"
calendar+= "</table><p>"

//month header
var index = (mthIdx-1)
calendar += "<B><FONT SIZE=1 COLOR=#292074 face='verdana'><B>" + monthName[index] + " " + year + "<BR>"

calendar +="<TABLE BORDER=1 STYLE='font-family:Verdana;font-size:10px;background-color:white;text-align:center'>"
calendar +="<tr valign=top>"
//writes in the day of the week labels
calendar +="</tr><tr align=center>"
calendar +="<td width=25 class='CalendarHeader'>Sun</td>"
calendar +="<td width=25 class='CalendarHeader'>Mon</td>"
calendar +="<td width=25 class='CalendarHeader'>Tue</td>"
calendar +="<td width=25 class='CalendarHeader'>Wed</td>"
calendar +="<td width=25 class='CalendarHeader'>Thu</td>"
calendar +="<td width=25 class='CalendarHeader'>Fri</td>"
calendar +="<td width=25 class='CalendarHeader'>Sat</td>"
calendar +="</tr>"

wholeDate = month + "/01/" + year
thedate = new Date(wholeDate)
firstDay = thedate.getDay()
selectedmonth = mthIdx;
selectedyear = year

var lastDay = (endday + firstDay+1)
calendar +="<tr>"
for (var i = 1; i < lastDay; i++)
	{
	if (i <= firstDay)
		{
		// 'empty' boxes prior to first day
		calendar +="<td>&nbsp;</td>"
		}
	else
		{
		// Current Year, previous month
		if (((month -1) < thisMonth) && (year == thisyear)){
			// Disabled dates
			calendar +="<td align='center' class='CalendarDayNoActive'>"+(i-firstDay)+"</td>"
		} else {
			// Current Year, Current Month, previous day
			if (((i-firstDay) < thisDate) && ((month -1) == thisMonth) && (year == thisyear)){
				// Disabled dates
				calendar +="<td align='center' class='CalendarDayNoActive'>"+(i-firstDay)+"</td>"
			} else {		
				// Current Year, Current Month, Current day
				if (((i-firstDay) == thisDate) && ((month-1) == thisMonth) && (year == thisyear)){
					// highlighted day
					calendar +="<td align='center' BGCOLOR='yellow' class='CalendarDay'><a href='JavaScript:self.close();opener.closeCalendar"+io+"("+(i-firstDay) + ")'><b>"+(i-firstDay)+"</b></a></td>"
				} else {
					// The Other dates
					calendar +="<td align='center' class='CalendarDay'><a href='JavaScript:self.close();opener.closeCalendar"+io+"("+(i-firstDay) + ")'><b>"+(i-firstDay)+"</b></a></td>"
				}
			}
		}	
	}
	//must start new row after each week
	if (i % 7 == 0 &&  i != lastDay)
		{
		calendar +="</tr><tr>"
		}
	}
calendar +="</tr></table></body></html>"

if(navigator.userAgent.indexOf('MSIE',0) != -1)
	{
	target.document.close()
	}
target.document.write(calendar);
target.document.close()
}

function clear() {
	return;
}

function formatSelectedDate(day) {
	wholeDate = selectedmonth + "/" + parseInt(day) + "/" + selectedyear;
	thedate = new Date(wholeDate);
	firstDay = thedate.getDay();
	
	if (firstDay == 0) {
		var selectedDate = weekName[6] + " " + parseInt(day) + " " + monthName[selectedmonth-1] + " " + selectedyear;
	} else {
		var selectedDate = weekName[parseInt(firstDay-1)] + " " + parseInt(day) + " " + monthName[selectedmonth-1] + " " + selectedyear;
	}
	return selectedDate;
}

	function closeCalendarStart(day) 
	
	{
		document.forms['CheckPremfrm'].selDays.value=parseInt(day);
		document.forms['CheckPremfrm'].selMonthYear.value= selectedmonth + '-' + selectedyear;
		document.forms['CheckPremfrm'].hdnSelectedMonth.value=selectedmonth;
		document.forms['CheckPremfrm'].hdnSelectedYear.value= selectedyear;

	}


	function QueryString(key)
	{
		var value = null;
		for (var i=0;i<QueryString.keys.length;i++)
		{
			if (QueryString.keys[i]==key)
			{
				value = QueryString.values[i];
				break;
			}
		}
		return value;
	}
	QueryString.keys = new Array();
	QueryString.values = new Array();

	function QueryString_Parse()
	{
		var query = window.location.search.substring(1);
		var pairs = query.split("&");

		for (var i=0;i<pairs.length;i++)
		{
			var pos = pairs[i].indexOf('=');
			if (pos >=0)
			{
				var argname = pairs[i].substring(0,pos);
				var value = pairs[i].substring(pos+1);
				QueryString.keys[QueryString.keys.length] = argname;
				QueryString.values[QueryString.values.length] = value;
			}
		}
	}
	QueryString_Parse();


