window.onresize = SetPageDivHeight;
window.setInterval('showDate()',1000);

function pageLoader()
{
	SetPageDivHeight();
	showDate();
	updateIRDHelp();
	FocusFirst();
}

function SetPageDivHeight()
{
	var NewWidth = (document.body.clientWidth > 800)?800:document.body.clientWidth - 10;
	var NewHeight = document.body.clientHeight - 136;

	NewHeight = (NewHeight < 1)?1:NewHeight;
	NewWidth = (NewWidth < 1)?1:NewWidth;
	
	document.getElementById("PageHeader").style.width = NewWidth;
	document.getElementById("PageContainer").style.height = NewHeight;
	
	if (document.getElementById("ResultDiv")!=null) ResultSize();
}

function showDate()
{
	var dateNow = new Date();
	document.getElementById("DateTime").innerHTML = dateNow.toLocaleString();
}

function updateIRDHelp(obj)
{
	var Help2Use = (document.getElementById("PageHelp").title)?document.getElementById("PageHelp").title:"";
	with (document.getElementById("IRDHelpDiv"))
	{
		if (obj && obj.alt) Help2Use = obj.alt;
		if (obj && obj.title) Help2Use = obj.title;
		innerHTML = (isBlank(Help2Use))?"Sorry, no help available.":Help2Use;
	}
	status = "";
	return true;
}

function IRDHelp()
{
	with (document.getElementById("IRDHelpDiv"))
	{
		style.display = (style.display == 'none')?'':'none';
		var showhelp = (style.display == '')?"Y":"N";
		document.cookie = "SHOWHELP=" + showhelp +";path=/";
	}
}

function FocusFirst()
{
	var ThisForm = document.forms[0];
	if (ThisForm == null || ThisForm.elements == null) return;
	for (i=0;i<ThisForm.elements.length;i++) if (ThisForm.elements[i].className != "readonly" && ThisForm.elements[i].type != "hidden" && !ThisForm.elements[i].disabled) break;
	if (i < ThisForm.elements.length && !isBlank(ThisForm.elements[i].name)) ThisForm.elements[i].focus();
}

function GetForm(obj)
{
	var FormObject = obj.parentElement;
	while (FormObject.tagName != "FORM") FormObject = FormObject.parentElement;
	return FormObject;
}

function isNum(object)
{
	if (!object) return false;
	if (isBlank(object.value)) return false;
	if (isNaN(object.value) || isNaN(parseFloat(object.value))) return false;
	return true;
}

function isBlank(string)
{
	var characters = new RegExp("[^ \t\n\r\f\v]");
	return (string.search(characters) == -1);
}

function dateIsNum(object)
{
	if (!object) return false;
	if (IsBlank(object.value)) return false;
	if (isNaN(object.value) || isNaN(parseFloat(object.value))) return false;
	return true;
}

function CheckForChanges()
{
	var formobject;
	var FieldChanged = false;
	for (j=0;j<document.forms.length;j++)
	{
		formobject = document.forms[j];
		for (i=0;i<formobject.length;i++)
		{
			if (formobject[i].type == "checkbox")
				FieldChanged = FieldChanged  || (formobject[i].defaultChecked != formobject[i].checked);
			else if (formobject[i].type.indexOf("select") != -1)
				FieldChanged =  FieldChanged  || (!formobject[i].disabled && !formobject[i].options[formobject[i].options.selectedIndex].defaultSelected);
			else
				FieldChanged = FieldChanged  || (formobject[i].defaultValue != formobject[i].value);
			if (FieldChanged) break;
		}
		if (FieldChanged) break;
	}
	return (FieldChanged)?confirm("Discard changes ?"):true;
}

function ShowErrors(ErrorArray)
{
	var ErrorString = "";
	for (i=0;i<ErrorArray.length;i++) ErrorString += ErrorArray[i] + "\n";
	if (!isBlank(ErrorString)) alert(ErrorString);
	return false;	
}

function AgeFromDate(birthdate)
{
	var BirthDay = new Date(birthdate);
	var Today = new Date();
	var BirthYear = BirthDay.getFullYear();
	var ThisYear = Today.getFullYear();
	var YearDifference = ThisYear - BirthYear;
	BirthDay.setFullYear(ThisYear);
	
	return (BirthDay > Today)?--YearDifference:YearDifference;
}

function RadioValue(rad)
{
	for (i=0;i<rad.length;i++) if (rad[i].checked) return rad[i].value;
	return "";
}

function DropDownValue(sel)
{
	return sel.options[sel.selectedIndex].value;
}

function DropDownText(sel)
{
	return sel.options[sel.selectedIndex].text;
}

function CheckBoxValue(cb,display)
{
	switch (display)
	{
		case "Y" : return (cb.checked)?"Y":"N";
		case "Yes" : return (cb.checked)?"Yes":"No";
		case "T" : return (cb.checked)?"T":"F";
		case "True" : return (cb.checked)?"True":"False";
		case "1" : return (cb.checked)?"1":"0";
	}
	return "?";
}

function ValueRadio(val,rad)
{
	for (i=0;i<rad.length;i++) if (rad[i].value == val) rad[i].checked = true;
	return;
}

function ValueCheckBox(val,cb,display)
{
	switch (display)
	{
		case "Y" : cb.checked = (val == "Y"); break;
		case "Yes" : cb.checked = (val == "Yes"); break;
		case "T" : cb.checked = (val == "T"); break;
		case "True" : cb.checked = (val == "True"); break;
		case "1" : cb.checked = (val == "1"); break;
		default : cb.checked = false;
	}
}

function RoundDecimal(amount,places)
{
	if (places == null) var places = 2;
	var bouncer = Math.pow(10,places);
	return (Math.round(amount*bouncer)/bouncer);
}

