var Visit_Screen_Height=640
var Visit_Screen_Width=950

var myWidth = 0, myHeight = 0;

jsSet_Screen_Dimensions()
function jsSet_Screen_Dimensions()
{
if( typeof( window.innerWidth ) == 'number' )
	{
	//Non-IE
	myWidth = window.innerWidth;
	myHeight = window.innerHeight;
	}
else
	{
	if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
		{
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
		}
	else
		{
		if( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
			{
			//IE 4 compatible
			myWidth = document.body.clientWidth;
			myHeight = document.body.clientHeight;
			}
		}
	}
}

function jsgetRefToElement(divID,oDoc)
{
if( !oDoc ) { oDoc = document; }

if( document.layers ) {
    if( oDoc.layers[divID] ) { return oDoc.layers[divID]; } else {
        //repeatedly run through all child layers
        for( var x = 0, y; !y && x > oDoc.layers.length; x++ ) {
            //on success, return that layer, else return nothing
            y = getRefToDiv(divID,oDoc.layers[x].document); }
        return y; } }

if( document.getElementById ) {
    return document.getElementById(divID); }

if( document.all ) {
    return document.all[divID]; }

window.alert (divID + " was not found")
return false;
}

function jsOpen_Window(docurl)
{
jsOpen_Window_Small(docurl);

//window.event.returnvalue=false;
return;
}

function jsOpen_Window_Small(docurl)
{
//alert(docurl);
jsOpen_Win (docurl, 750, 500);

return;
}

function jsOpen_Window_Tiny(docurl)
{
//alert(docurl);
jsOpen_Win (docurl, 600, 300);

return;
}

function jsOpen_Window_Large(docurl)
{
jsOpen_Win (docurl, 850, 600);

//window.event.returnvalue=false;

return;
}

function jsOpen_Window_Wide(docurl)
{
jsOpen_Win (docurl, 1000, 600);

//window.event.returnvalue=false;

return;
}

function jsOpen_Win(docurl, mww, mwh)
{

var mwt=(screen.availHeight-mwh)/2;
var mwl=(screen.availWidth-mww)/2;
var options="menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars,resizable,left=" + mwl + ",top=" + mwt + ",width=" + mww + ",height=" + mwh;
var New_Window=window.open(docurl,"_blank",options);
New_Window.focus();
return;
}
function jsOpen_Win_Name(docurl, mww, mwh, Win_Name)
{

var mwt=(screen.availHeight-mwh)/2;
var mwl=(screen.availWidth-mww)/2;
var options="menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars,resizable,left=" + mwl + ",top=" + mwt + ",width=" + mww + ",height=" + mwh;
var New_Window=window.open(docurl,Win_Name,options);
New_Window.focus();
return;
}

function jsOpen_Win_Name_Max(docurl, Win_Name)
{

var mwh=(screen.availHeight*90)/100
var mww=(screen.availWidth*90)/100
var mwt=(screen.availHeight-mwh)/2;
var mwl=(screen.availWidth-mww)/2;
var options="menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars,resizable,left=" + mwl + ",top=" + mwt + ",width=" + mww + ",height=" + mwh;
var New_Window=window.open(docurl,Win_Name,options);
New_Window.focus();
return;
}

/*

Name: jsDate
Desc: VBScript native Date functions emulated for Javascript
Author: Rob Eberhardt, Slingshot Solutions - http://slingfive.com/
History:
	2005-08-04	v0.94		scrapped new dateDiff approach to better match VBScript's simplistic Y/M/Q
	2005-08-03	v0.93		fixed dateDiff/leapyear bug with yyyy/m/q intervals
	2004-11-26	v0.91		fixed datePart/ww bug, added weekdayName() & monthName()
	2004-08-30	v0.9		brand new
	
*/

// used by dateAdd, dateDiff, datePart, weekdayName, and monthName
// note: less strict than VBScript's isDate, since JS allows invalid dates to overflow (e.g. Jan 32 transparently becomes Feb 1)
function isDate(p_Expression){
	return !isNaN(new Date(p_Expression));		// <<--- this needs checking
}


// REQUIRES: isDate()
function dateAdd(p_Interval, p_Number, p_Date){
	if(!isDate(p_Date)){return "invalid date: '" + p_Date + "'";}
	if(isNaN(p_Number)){return "invalid number: '" + p_Number + "'";}	


	p_Number = new Number(p_Number);
	var dt = new Date(p_Date);
	switch(p_Interval.toLowerCase()){
		case "yyyy": {// year
			dt.setFullYear(dt.getFullYear() + p_Number);
			break;
		}
		case "q": {		// quarter
			dt.setMonth(dt.getMonth() + (p_Number*3));
			break;
		}
		case "m": {		// month
			dt.setMonth(dt.getMonth() + p_Number);
			break;
		}
		case "y":		// day of year
		case "d":		// day
			dt.setDate(dt.getDate() + p_Number);
			break;
		case "w": {		// weekday
			dt.setDate(dt.getDate() + p_Number*7);
			break;
		}
		case "ww": {	// week of year
			dt.setDate(dt.getDate() + (p_Number*7));
			break;
		}
		case "h": {		// hour
			dt.setHours(dt.getHours() + p_Number);
			break;
		}
		case "n": {		// minute
			dt.setMinutes(dt.getMinutes() + p_Number);
			break;
		}
		case "s": {		// second
			dt.setSeconds(dt.getSeconds() + p_Number);
			break;
		}
		case "ms": {		// second
			dt.setMilliseconds(dt.getMilliseconds() + p_Number);
			break;
		}
		default: {
			return "invalid interval: '" + p_Interval + "'";
		}
	}
	return dt;
}



// REQUIRES: isDate()
// NOT SUPPORTED: firstdayofweek and firstweekofyear (defaults for both)
function dateDiff(p_Interval, p_Date1, p_Date2, p_firstdayofweek, p_firstweekofyear){
	if(!isDate(p_Date1)){return "invalid date: '" + p_Date1 + "'";}
	if(!isDate(p_Date2)){return "invalid date: '" + p_Date2 + "'";}
	var dt1 = new Date(p_Date1);
	var dt2 = new Date(p_Date2);
	// get ms between dates (UTC) and make into "difference" date
	var iDiffMS = dt2.valueOf() - dt1.valueOf();
	var dtDiff = new Date(iDiffMS);

	// calc various diffs
	var nYears  = dt2.getUTCFullYear() - dt1.getUTCFullYear();
	var nMonths = dt2.getUTCMonth() - dt1.getUTCMonth() + (nYears!=0 ? nYears*12 : 0);
	var nQuarters = parseInt(nMonths/3);	//<<-- different than VBScript, which watches rollover not completion
	
	var nMilliseconds = iDiffMS;
	var nSeconds = parseInt(iDiffMS/1000);
	var nMinutes = parseInt(nSeconds/60);
	var nHours = parseInt(nMinutes/60);
	var nDays  = parseInt(nHours/24);
	var nWeeks = parseInt(nDays/7);


	// return requested difference
	var iDiff = 0;		
	switch(p_Interval.toLowerCase()){
		case "yyyy": return nYears;
		case "q": return nQuarters;
		case "m": return nMonths;
		case "y": 		// day of year
		case "d": return nDays;
		case "w": return nDays;
		case "ww":return nWeeks;		// week of year	// <-- inaccurate, WW should count calendar weeks (# of sundays) between
		case "h": return nHours;
		case "n": return nMinutes;
		case "s": return nSeconds;
		case "ms":return nMilliseconds;	// millisecond	// <-- extension for JS, NOT available in VBScript
		default: return "invalid interval: '" + p_Interval + "'";
	}
}



// REQUIRES: isDate(), dateDiff()
// NOT SUPPORTED: firstdayofweek and firstweekofyear (does system default for both)
function datePart(p_Interval, p_Date, p_firstdayofweek, p_firstweekofyear){
	if(!isDate(p_Date)){return "invalid date: '" + p_Date + "'";}

	var dtPart = new Date(p_Date);
	switch(p_Interval.toLowerCase()){
		case "yyyy": return dtPart.getFullYear();
		case "q": return parseInt(dtPart.getMonth()/3)+1;
		case "m": return dtPart.getMonth()+1;
		case "y": return dateDiff("y", "1/1/" + dtPart.getFullYear(), dtPart);			// day of year
		case "d": return dtPart.getDate();
		case "w": return dtPart.getDay();	// weekday
		case "ww":return dateDiff("ww", "1/1/" + dtPart.getFullYear(), dtPart);		// week of year
		case "h": return dtPart.getHours();
		case "n": return dtPart.getMinutes();
		case "s": return dtPart.getSeconds();
		case "ms":return dtPart.getMilliseconds();	// millisecond	// <-- extension for JS, NOT available in VBScript
		default: return "invalid interval: '" + p_Interval + "'";
	}
}


// REQUIRES: isDate()
// NOT SUPPORTED: firstdayofweek (does system default)
function weekdayName(p_Date, p_abbreviate){
	if(!isDate(p_Date)){return "invalid date: '" + p_Date + "'";}
	var dt = new Date(p_Date);
	var retVal = dt.toString().split(' ')[0];
	var retVal = Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')[dt.getDay()];
	if(p_abbreviate==true){retVal = retVal.substring(0, 3)}	// abbr to 1st 3 chars
	return retVal;
}
// REQUIRES: isDate()
function monthName(p_Date, p_abbreviate){
	if(!isDate(p_Date)){return "invalid date: '" + p_Date + "'";}
	var dt = new Date(p_Date);	
	var retVal = Array('January','February','March','April','May','June','July','August','September','October','November','December')[dt.getMonth()];
	if(p_abbreviate==true){retVal = retVal.substring(0, 3)}	// abbr to 1st 3 chars
	return retVal;
}

// ====================================

// bootstrap different capitalizations
function IsDate(p_Expression){
	return isDate(p_Expression);
}
function DateAdd(p_Interval, p_Number, p_Date){
	return dateAdd(p_Interval, p_Number, p_Date);
}
function DateDiff(p_interval, p_date1, p_date2, p_firstdayofweek, p_firstweekofyear){
	return dateDiff(p_interval, p_date1, p_date2, p_firstdayofweek, p_firstweekofyear);
}
function DatePart(p_Interval, p_Date, p_firstdayofweek, p_firstweekofyear){
	return datePart(p_Interval, p_Date, p_firstdayofweek, p_firstweekofyear);
}
function WeekdayName(p_Date){
	return weekdayName(p_Date);
}
function MonthName(p_Date){
	return monthName(p_Date);
}

function isLeapYr(yr)
{
return new Date(yr,1,29).getDate()==29;
}

function Month_Days(Month_No, yr)
{
if (isNaN(Month_No)) return -1;

var retVal= Array(31,28,31,30,31,30,31,31,30,31,30,31)[Month_No];
if (Month_No==1 && isLeapYr(yr))
	{
	retVal=29;
	}
	
return retVal;
}

function jsChecked_Date(In_Date)
{
var d, m, y
var dstr, mstr
var i
if (!isDate(In_Date)) return ""
var dt1 = new Date(In_Date);
d=dt1.getDate();
m=dt1.getMonth()+1;
y=dt1.getFullYear();

dstr="0"+d.toString()
dstr=dstr.substring(dstr.length-2,dstr.length);
mstr="0"+m.toString()
mstr=mstr.substring(mstr.length-2,mstr.length);
if (jsUSA_Date())
	{
	alert("cd - " + jsUSA_Date() + " - " + mstr + "/" + dstr + "/" + y);
	return mstr + "/" + dstr + "/" + y
	}
else
	{
	alert("cd - " + jsUSA_Date() + " - " + dstr + "/" + mstr + "/" + y);
	return dstr + "/" + mstr + "/" + y
	}
}

function jsgfDate_Format(In_Date, Format_Id)
{
var d, m, y
var dstr, mstr
var i
if (!isDate(In_Date)) return ""
var dt1 = new Date(In_Date);

d=dt1.getDate();
m=dt1.getMonth()+1;
y=dt1.getFullYear();
dstr="0"+d.toString()
dstr=dstr.substring(dstr.length-2,dstr.length);
mstr="0"+m.toString()
mstr=mstr.substring(mstr.length-2,mstr.length);
switch(Format_Id)
	{
	case 1:
		if (jsUSA_Date())
			{
			return mstr + "/" + dstr + "/" + y
			}
		else
			{
			return dstr + "/" + mstr + "/" + y
			}

	case 2:
		return y + "-" + m + "-" + d + " 00:00"

	case 3:
		return y + "-" + m + "-" + d
	}
}


function jsSwap_D_M(In_Date)
{
var d, m, y
var dstr, mstr
var i
if (!isDate(In_Date)) return ""
var dt_Split=In_Date.split("/")
if (jsUSA_Date())
	{
	var dt1 = new Date(dt_Split[0] + "/" + dt_Split[1] + "/" + dt_Split[2]);
	}
else
	{
	var dt1 = new Date(dt_Split[1] + "/" + dt_Split[0] + "/" + dt_Split[2]);
	}

d=dt1.getDate();
m=dt1.getMonth()+1;
y=dt1.getFullYear();

dstr="0"+d.toString()
dstr=dstr.substring(dstr.length-2,dstr.length);
mstr="0"+m.toString()
mstr=mstr.substring(mstr.length-2,mstr.length);
if (!jsUSA_Date())
	{
	return mstr + "/" + dstr + "/" + y
	}
else
	{
	return dstr + "/" + mstr + "/" + y
	}

}

function jsUSA_Date()
{
if (jsgetRefToElement("fUSA_Date").value="False")
	{
	return false;
	}
else
	{
	return true;
	}
}

function jsSwap_Back_D_M(In_Date)
{

var dt_Split=In_Date.split("/")
if (jsUSA_Date())
	{
	var dt1 = dt_Split[0] + "/" + dt_Split[1] + "/" + dt_Split[2];
	}
else
	{
	var dt1 = dt_Split[1] + "/" + dt_Split[0] + "/" + dt_Split[2];
	}

return dt1
}

function Select_Date (Field_Name)
{
var d, m, y
var now = new Date();

if (isDate(jsgetRefToElement(Field_Name).value))
	{
	var dt1 =new Date(jsSwap_D_M(jsgetRefToElement(Field_Name).value));
	d=dt1.getDate();
	m=dt1.getMonth()+1;
	y=dt1.getFullYear();
	}
else
	{
	d=now.getDate();
	m=now.getMonth()+1;
	y=now.getFullYear();
	}
jsOpen_Win( "../common/jsCalendar.asp?Out_Name=" + Field_Name + "&D=" + d + "&M=" + m + "&Y=" + y, 500, 300)
}

function Select_Time (Field_Name)
{
var now = new Date;

var h=now.getHours
var m=now.getMinutes
		
jsOpen_Win("../common/jsClock.asp?Out_Name=" + Field_Name + "&H=" + h + "&M=" + m, 200, 150)
}
/* ***********************
' Date confirm Function
' ***********************
*/
function jsDate_Confirm(Field_Name, isAllow_Future, isAllow_Old)
{
var isAsterisk=false;
var fnCheck_Field_In=jsgetRefToElement(Field_Name).value;
var now = new Date();
if (fnCheck_Field_In.length==0)
	{
	return true;
	}
	
if (fnCheck_Field_In.length==1 && fnCheck_Field_In=="*")
	{
	isAsterisk=true;
	}
var fnCheck_Field="";
var chrTest;
var ptrSlash1=-1;
var ptrSlash2=-1;
var ptrEnd;
for (var i=0; i<=fnCheck_Field_In.length-1; i++)
	{
	chrTest=fnCheck_Field_In.substr(i,1)
	if (chrTest=="/")
		{
		if (ptrSlash1==-1)
			{
			fnCheck_Field=fnCheck_Field + chrTest;
			ptrSlash1=fnCheck_Field.length-1;
			}
		else
			{
			if (ptrSlash2==-1)
				{
				fnCheck_Field=fnCheck_Field + chrTest;
				ptrSlash2=fnCheck_Field.length-1;
				}
			}
		}
	else
		{
		if (!isNaN(chrTest))
			{
			fnCheck_Field=fnCheck_Field + chrTest;
			}
		}		
	}
ptrEnd=fnCheck_Field.length-1;

var Date_Part1="";
var Date_Part2="";
var Date_Part3="";
if (ptrEnd>=0)
	{
	if (ptrSlash1==-1)
		{
		Date_Part1=fnCheck_Field;
		}
	else
		{
		Date_Part1=fnCheck_Field.substring(0, ptrSlash1);
		if (ptrSlash2==-1)
			{
			if (ptrSlash1<ptrEnd)
				{
				Date_Part2=fnCheck_Field.substring(ptrSlash1+1, ptrEnd+1);
			}
			}
		else
			{
			Date_Part2=fnCheck_Field.substring(ptrSlash1+1, ptrSlash2);
			if (ptrSlash2<ptrEnd)
				{
				Date_Part3=fnCheck_Field.substring(ptrSlash2+1, ptrEnd+1);
				}
			}
		}
	}

var dd;
var mm;
var yy;
if (jsUSA_Date())
	{
	dd=Date_Part2;
	mm=Date_Part1;
	}
else
	{
	dd=Date_Part1;
	mm=Date_Part2;
	}

if (dd=="")
	{
	dd=now.getDate();
	}
if (dd==0)
	{
	dd="01";
	}
if (dd.length==1)
	{
	dd="0" + dd;
	}
if (mm=="")
	{
	mm=now.getMonth()+1;
	}
if (mm==0)
	{
	mm="01";
	}
if (mm.toString().length==1)
	{
	mm="0" + mm;
	}
yy=Date_Part3;
if (yy=="")
	{
	yy=now.getFullYear();
	}
else
	{
	if (yy.length==1)
		{
		yy="200" + yy;
		}
	else
		{
		if (yy.length==2)
			{
			if (yy>50)
				{
				yy="19" + yy;
				}
			else
				{
				yy="20" + yy;
				}
			}
		else
			{
			if (yy.length==3)
				{
				yy="2" + yy;
				}
			}
		}
	}
if (dd>Month_Days(mm-1, yy))
	{
	dd=Month_Days(mm-1, yy);
	}

var Date_Out
if (jsUSA_Date())
	{
	Date_Out=mm + "/" + dd + "/" + yy;
	}
else
	{
	Date_Out=dd + "/" + mm + "/" + yy;
	}
	
//jsgetRefToElement(Field_Name).style.backgroundColor="#FFFACD";
//jsgetRefToElement(Field_Name).style.color="#2F4F4F";
//jsgetRefToElement(Field_Name).style.backgroundColor="#FFFFFF";
//jsgetRefToElement(Field_Name).style.color="#2F4F4F";
jsgetRefToElement(Field_Name).value=Date_Out;
if (yy<now.getFullYear())
	{
	if (!isAllow_Old && now.getFullYear()-yy>2)
		{
		jsgetRefToElement(Field_Name).style.backgroundColor="red";
		jsgetRefToElement(Field_Name).style.color="white";
		}
	}
else
	{
	if (!jsUSA_Date())
		{
		Date_Out= jsSwap_D_M(Date_Out);
		}
	if (!isAllow_Future && dateDiff("d", now, Date_Out + " 23:59:59")>0)
		{
		jsgetRefToElement(Field_Name).style.backgroundColor="red";
		jsgetRefToElement(Field_Name).style.color="white";
		}
	}

return true;
}

/* ***********************
' Date range Selection Functions
' Start
' ***********************
*/
function bRefresh_OnClick()
{
if (!isDate(jsgetRefToElement("Review_From").value))
	{
    jsgetRefToElement("Review_From").value = jsgfDate_Format("01/01/2000",1)
	}
	
if (!isDate(jsgetRefToElement("Review_To").value))
	{
    jsgetRefToElement("Review_To").value = jsgfDate_Format("31/12/2099",1)
    }
	
jsgetRefToElement("fReview_Date_Range").action="./" + jsgetRefToElement(Page_Id).value + ".asp"
jsgetRefToElement("fReview_Date_Range").target="_self"
jsgetRefToElement("fReview_Date_Range").submit()
}

function Set_Date_Range (Report_Range)
{
var now = new Date;

var This_Day = now.getDate();
var This_Month = now.getMonth()+1;
var This_Year = now.getFullYear();
var Last_Year=This_Year-1;
var Next_Year=This_Year+1;
var Last_Year_Minus_1=Last_Year-1;

var Report_Start_Date
var Report_End_Date
var End_Date
var Report_Range_ch=Report_Range;

if (isNaN(Report_Range))
	{
    Report_Start_Date = "Invalid Report Range";
    Report_End_Date = "Invalid Report Range";
    return false;
	}
switch(Number(Report_Range))
	{
    case 1:		//This Term
		{
        if(This_Month>=9 && This_Month<=12)
			{
            Report_Start_Date = jsgfDate_Format("09/01/" + This_Year.toString(),1);
            Report_End_Date = jsgfDate_Format("12/31/" + This_Year.toString(),1);
			}
		else if (This_Month>=1 && This_Month<=4)
				{
				Report_Start_Date = jsgfDate_Format("01/01/" + This_Year.toString(),1);
				Report_End_Date = jsgfDate_Format("04/30/" + This_Year.toString(),1);
				}
			else if (This_Month>=5 && This_Month<=8)
					{
					Report_Start_Date = jsgfDate_Format("05/01/" + This_Year.toString(),1);
					Report_End_Date = jsgfDate_Format("07/31/" + This_Year.toString(),1);
					}
		break;
		}
    case 2:		//This School Year
		{
        if(This_Month>=9)
			{
                Report_Start_Date = jsgfDate_Format("09/01/" + This_Year.toString(),1);
                Report_End_Date = jsgfDate_Format("08/31/" + Next_Year.toString(),1);
			}
		else
			{
                Report_Start_Date = jsgfDate_Format("09/01/" + Last_Year.toString(),1);
                Report_End_Date = jsgfDate_Format("08/31/" + This_Year.toString(),1);
			}
		break;
		}
    case 3:		//This Month
 		{
		Report_Start_Date = jsgfDate_Format(This_Month + "/01/" + This_Year.toString(),1);
        Report_End_Date = jsgfDate_Format(This_Month + "/" + Month_Days(This_Month-1, This_Year)+ "/" + This_Year.toString(),1);
		break;
		}
    case 4:		//This Calendar Year
		{
        Report_Start_Date = jsgfDate_Format("01/01/" + This_Year.toString(),1);
        Report_End_Date = jsgfDate_Format("12/31/" + This_Year.toString(),1);
		break;
		}
    case 5:		//Q1
 		{
		if (This_Month >= 4)
			{
			Report_Start_Date = jsgfDate_Format("04/01/" + This_Year.toString(),1);
			Report_End_Date = jsgfDate_Format("06/30/" + This_Year.toString(),1);
			}
		else
			{
			Report_Start_Date = jsgfDate_Format("04/01/" + Last_Year.toString(),1);
			Report_End_Date = jsgfDate_Format("06/30/" + Last_Year.toString(),1);
			}
		break;
		}
    case 6:		//Q2
		{
         if (This_Month >= 4)
			{
			Report_Start_Date = jsgfDate_Format("07/01/" + This_Year.toString(),1);
			Report_End_Date = jsgfDate_Format("09/30/" + This_Year.toString(),1);
			}
		else
			{
			Report_Start_Date = jsgfDate_Format("07/01/" + Last_Year.toString(),1);
			Report_End_Date = jsgfDate_Format("09/30/" + Last_Year.toString(),1);
			}
		break;
		}
    case 7:		//Q3
		{
        if (This_Month >= 4)
			{
			Report_Start_Date = jsgfDate_Format("10/01/" + This_Year.toString(),1);
			Report_End_Date = jsgfDate_Format("12/31/" + This_Year.toString(),1);
			}
		else
			{
			Report_Start_Date = jsgfDate_Format("10/01/" + Last_Year.toString(),1);
			Report_End_Date = jsgfDate_Format("12/31/" + Last_Year.toString(),1);
			}
		break;
		}
    case 8:		//Q4
		{
        if (This_Month >= 4)
			{
			Report_Start_Date = jsgfDate_Format("01/01/" + Next_Year.toString(),1);
			Report_End_Date = jsgfDate_Format("03/31/" + Next_Year.toString(),1);
			}
		else
			{
			Report_Start_Date = jsgfDate_Format("01/01/" + This_Year.toString(),1);
			Report_End_Date = jsgfDate_Format("03/31/" + This_Year.toString(),1);
			}
		break;
		}
    case 9:		//HY1
		{
        if (This_Month >= 4)
			{
			Report_Start_Date = jsgfDate_Format("04/01/" + This_Year.toString(),1);
			Report_End_Date = jsgfDate_Format("09/30/" + This_Year.toString(),1);
			}
		else
			{
			Report_Start_Date = jsgfDate_Format("04/01/" + Last_Year.toString(),1);
			Report_End_Date = jsgfDate_Format("09/30/" + Last_Year.toString(),1);
			}
		break;
		}
    case 10:		//HY2
		{
        if (This_Month >= 4)
			{
			Report_Start_Date = jsgfDate_Format("10/1/" + This_Year.toString(),1);
			Report_End_Date = jsgfDate_Format("03/31/" + Next_Year.toString(),1);
			}
		else
			{
			Report_Start_Date = jsgfDate_Format("10/01/" + Last_Year.toString(),1);
			Report_End_Date = jsgfDate_Format("03/31/" + This_Year.toString(),1);
			}
		break;
		}
    case 11:		//This Financial Year
		{
        if (This_Month >= 4)
			{
			Report_Start_Date = jsgfDate_Format("04/01/" + This_Year.toString(),1);
			Report_End_Date = jsgfDate_Format("03/31/" + Next_Year.toString(),1);
			}
		else
			{
			Report_Start_Date = jsgfDate_Format("04/01/" + Last_Year.toString(),1);
			Report_End_Date = jsgfDate_Format("03/31/" + This_Year.toString(),1);
			}
		break;
		}
    case 12:		//Next 3 months
		{
		var End_Month=This_Month+3;
		var End_Year=This_Year;
		if (End_Month>12)
			{
			End_Month=End_Month-12;
			End_Year++;
			}
		Report_Start_Date = jsgfDate_Format(This_Month.toString() + "/" + This_Day.toString() + "/" + This_Year.toString(),1);
		Report_End_Date = jsgfDate_Format(End_Month.toString() + "/" + This_Day.toString() + "/" + End_Year.toString(),1);
		break;
		}
    case 13:		//Next 6 months
		{
		var End_Month=This_Month+6;
		var End_Year=This_Year;
		if (End_Month>12)
			{
			End_Month=End_Month-12;
			End_Year++;
			}
				
		Report_Start_Date = jsgfDate_Format(This_Month.toString() + "/" + This_Day.toString() + "/" + This_Year.toString(),1);
		Report_End_Date = jsgfDate_Format(End_Month.toString() + "/" + This_Day.toString() + "/" + End_Year.toString(),1);
		break;
		}
    case 14:		//Next 9 months
		{
		var End_Month=This_Month+9;
		var End_Year=This_Year;
		if (End_Month>12)
			{
			End_Month=End_Month-12;
			End_Year++;
			}
				
		Report_Start_Date = jsgfDate_Format(This_Month.toString() + "/" + This_Day.toString() + "/" + This_Year.toString(),1);
		Report_End_Date = jsgfDate_Format(End_Month.toString() + "/" + This_Day.toString() + "/" + End_Year.toString(),1);
		break;
		}
    case 15:		//Next 12 months
		{
		var End_Month=This_Month+12;
		var End_Year=This_Year;
		if (End_Month>12)
			{
			End_Month=End_Month-12;
			End_Year++;
			}
				
		Report_Start_Date = jsgfDate_Format(This_Month.toString() + "/" + This_Day.toString() + "/" + This_Year.toString(),1);
		Report_End_Date = jsgfDate_Format(End_Month.toString() + "/" + This_Day.toString() + "/" + End_Year.toString(),1);
		break;
		}
    case 16:		//Previous 3 months
		{
		var End_Month=This_Month-3;
		var End_Year=This_Year;
		if (End_Month<0)
			{
			End_Month=End_Month+12;
			End_Year--;
			}
				
		Report_Start_Date = jsgfDate_Format(End_Month.toString() + "/" + This_Day.toString() + "/" + End_Year.toString(),1);
		Report_End_Date = jsgfDate_Format(This_Month.toString() + "/" + This_Day.toString() + "/" + This_Year.toString(),1);
		break;
		}
    case 17:		//Previous 6 months
		{
		var End_Month=This_Month-6;
		var End_Year=This_Year;
		if (End_Month<0)
			{
			End_Month=End_Month+12;
			End_Year--;
			}
				
		Report_Start_Date = jsgfDate_Format(End_Month.toString() + "/" + This_Day.toString() + "/" + End_Year.toString(),1);
		Report_End_Date = jsgfDate_Format(This_Month.toString() + "/" + This_Day.toString() + "/" + This_Year.toString(),1);
		break;
		}
    case 18:		//Previous 9 months
		{
		var End_Month=This_Month-9;
		var End_Year=This_Year;
		if (End_Month<0)
			{
			End_Month=End_Month+12;
			End_Year--;
			}
				
		Report_Start_Date = jsgfDate_Format(End_Month.toString() + "/" + This_Day.toString() + "/" + End_Year.toString(),1);
		Report_End_Date = jsgfDate_Format(This_Month.toString() + "/" + This_Day.toString() + "/" + This_Year.toString(),1);
		break;
		}
    case 19:		//Previous 12 months
		{
		var End_Month=This_Month-12;
		var End_Year=This_Year;
		if (End_Month<0)
			{
			End_Month=End_Month+12;
			End_Year--;
			}
				
		Report_Start_Date = jsgfDate_Format(End_Month.toString() + "/" + This_Day.toString() + "/" + End_Year.toString(),1);
		Report_End_Date = jsgfDate_Format(This_Month.toString() + "/" + This_Day.toString() + "/" + This_Year.toString(),1);
		break;
		}
    case 20:		//Older than 12 months
		{
		Report_Start_Date = ""
		Report_End_Date = jsgfDate_Format(This_Month.toString() + "/" + This_Day.toString() + "/" + This_Year.toString(),1);
		break;
		}
    case 21:		//All
		{
		Report_Start_Date = "";
		Report_End_Date = "";
		break;
		}
    case 22:		//This Month ly
 		{
		Report_Start_Date = jsgfDate_Format(This_Month + "/01/" + Last_Year.toString(),1);
        Report_End_Date = jsgfDate_Format(This_Month + "/" + Month_Days(This_Month-1, Last_Year)+ "/" + Last_Year.toString(),1);
		break;
		}
    case 23:		//Last Calendar Year
		{
        Report_Start_Date = jsgfDate_Format("01/01/" + Last_Year.toString(),1);
        Report_End_Date = jsgfDate_Format("12/31/" + Last_Year.toString(),1);
		break;
		}
    case 24:		//Greater than 12 months
		{
		Report_Start_Date = jsgfDate_Format(This_Month.toString() + "/" + This_Day.toString() + "/" + This_Year.toString(),1);
		Report_End_Date = ""
		break;
		}
    case 25:		//Last School Year
		{
        if(This_Month>=9)
			{
                Report_Start_Date = jsgfDate_Format("09/01/" + Last_Year.toString(),1);
                Report_End_Date = jsgfDate_Format("08/31/" + This_Year.toString(),1);
			}
		else
			{
                Report_Start_Date = jsgfDate_Format("09/01/" + Last_Year_Minus_1.toString(),1);
                Report_End_Date = jsgfDate_Format("08/31/" + Last_Year.toString(),1);
			}
		break;
		}
	}
	
jsgetRefToElement("Review_From").value=Report_Start_Date;
jsgetRefToElement("Review_To").value=Report_End_Date;
return false;
}

function Review_From_Changed()
{
jsDate_Confirm("Review_From", true, true);
jsgetRefToElement("ddlSelect_Date_Range").value=0;
}

function Review_To_Changed()
{
jsDate_Confirm("Review_To", true, true);
jsgetRefToElement("ddlSelect_Date_Range").value=0;
}

function ddlSelect_Date_Range_changed()
{
Set_Date_Range(jsgetRefToElement("ddlSelect_Date_Range").value);
}

function bReset_clicked()
{
var Reset_Range=3;

if (jsgetRefToElement("Page_Id").value=="Offsite_menu")
	{
	Reset_Range=13;
	}
Set_Date_Range(Reset_Range);
jsgetRefToElement("ddlSelect_Date_Range").value=Reset_Range;
jsgetRefToElement("fReview_Date_Range").submit();
}

function bPrint_clicked()
{
jsgetRefToElement("fReview_Date_Range").action="./" + jsgetRefToElement("Page_Id").value + ".asp?fprint=1";
jsgetRefToElement("fReview_Date_Range").target="_blank";
jsgetRefToElement("fReview_Date_Range").submit();
}

function bRefresh_clicked()
{
jsgetRefToElement("fReview_Date_Range").action="./" + jsgetRefToElement("Page_Id").value + ".asp";
jsgetRefToElement("fReview_Date_Range").target="_self";
jsgetRefToElement("fReview_Date_Range").submit();
}


/* ***********************
' End
' Date range Selection Functions
' ***********************
*/
function Show_Secure_Menu()
{
jsgetRefToElement("Secure_Menur1").style.display="inline";
jsgetRefToElement("Secure_Menurtd1").style.height="25px";
jsgetRefToElement("Secure_Menur2").style.display="inline";
jsgetRefToElement("Secure_Menurtd2").style.height="25px";
jsgetRefToElement("Secure_Menur3").style.display="inline";
jsgetRefToElement("Secure_Menurtd3").style.height="25px";
}

function Show_Journal(Case_Id)
{
var url="../forms_case/Case_Journal.asp?SID=" + jsgetRefToElement("SID").value + "&Case_Id=" + Case_Id;
//var mwh=screen.availHeight;
//var mww=screen.availWidth;
var mwh=700;
var mww=1100;
var mwt=screen.availTop;
var mwl=screen.availLeft;
var options="menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars,resizable,left=" + mwl + ",top=" + mwt + ",width=" + mww + ",height=" + mwh;
window.open(url,"Journal",options);
}

//*******************************************************
//Handle the crlf to <br> conversion
//*******************************************************

function Replace_CRLF_BR(In_Text)
{
var Out_Text=In_Text;

Out_Text=Out_Text.replace(/\n/g, "<br>")

return Out_Text;
	
}

//*******************************************************
//Handle the Audio Help window
//*******************************************************

function Audio_Help(Help_Name)
{
var Audio_Help_url="http://www.schoolshealthandsafety.co.uk/CYPD/Misc_html/Presentation_Files/" + Help_Name;
jsOpen_Win_Name_Max(Audio_Help_url, "Audio_Help")
}


function addEvent(elem, evtType, func, capture)
{
capture= (capture) ? capture: false;
if (elem.addEventListener)
	{
	elem.addEventListener(evtType, func, capture);
	}
else
	{
	if (elem.attachEvent)
		{
		elem.attachEvent("on"+ evtType, func);
		}
	else
		{
		elem["on"+ evtType]= func;
		}
	}
}

function removeEvent(elem, evtType, func, capture)
{
capture= (capture) ? capture: false;
if (elem.removeEventListener)
	{
	elem.removeEventListener(evtType, func, capture);
	}
else
	{
	if (elem.attachEvent)
		{
		elem.detachEvent("on"+ evtType, func);
		}
	else
		{
		elem["on"+ evtType]= null;
		}
	}
}

// the following routine is courtesy of QuirksWeb

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

//alert("Browser name: " + BrowserDetect.browser);
//alert("Browser version: " + BrowserDetect.version);
//alert("OS name: " + BrowserDetect.OS);

// *****************************************************
// Handle the Field Info areas
// *****************************************************

function Field_Info_Clear()
{
Field_Put_Info("");
}

function Field_Info(Field_Name_Info)
{
Field_Put_Info(Field_Name_Info);
}

function Field_Put_Info(Info)
{
if (parent.parent.document.getElementById("Info_Box"))
	{
	parent.parent.document.getElementById("Info_Box").innerHTML=Info;
	}
else
	{
	if (parent.document.getElementById("Info_Box"))
		{
		parent.document.getElementById("Info_Box").innerHTML=Info;
		}
	else
		{
		if (jsgetRefToElement("Info_Box"))
			{
			jsgetRefToElement("Info_Box").innerHTML=Info;
			}
		}
	}
}


