addToEvent(window, "load", setupButtons);
function setupButtons()
{
	if (!document.getElementById || !document.getElementsByTagName) return;
	var buttons = document.getElementsByTagName("input");
	for (var i = buttons.length-1; i>=0; i--)
	{
		if (buttons[i].type == "image")
		{
			if (isInCssClass(buttons[i], "download"))
				setupRollOver(buttons[i].src, GetButtonOverStateUrl(buttons[i].src), buttons[i] );
			if (isInCssClass(buttons[i], "remove"))
				setupRollOver(buttons[i].src, GetButtonOverStateUrl(buttons[i].src), buttons[i] );
		}
		
	}
}
addToEvent(window, "load", setupAnchorEvents);
function setupAnchorEvents()
{
	if (!document.getElementById || !document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	var rel;
	for (var i = anchors.length-1; i>=0; i--)
	{
		rel = anchors[i].getAttribute("rel") + "";
		if (rel.indexOf("closeWindow") >= 0)
			anchors[i].onclick = function () { window.close(); return false; }
		if (rel.indexOf("printPage") >= 0)
			anchors[i].onclick = printPage;
		if (rel.indexOf("AccessKeyPointer") >= 0)
			anchors[i].onclick = function () { return false; }
	}
}

addToEvent(window, "load", setupMonitorErrorFields);
function setupMonitorErrorFields()
{
	if (!document.getElementById || !document.getElementsByTagName) return;
	var fields = ErrorFields();
	if (fields.length <= 0) return;
	document.getElementsByTagName("form")[0].errorFields = fields;
	//MonitorErrorFields();
}
function MonitorErrorFields()
{
	var form = document.getElementsByTagName("form")[0];
	var isError;
	for (var i = form.errorFields.length-1; i>=0; i--)
	{
		isError = false;
		for (var j = form.errorFields[i][0].length - 1; j>=0; j--)
		{
			if (form.errorFields[i][0][j].style.display != "none")
			{
				isError = true;
				break;
			}
		}
		if (isError){
			addToClassName(form.errorFields[i][1], "error");
		}
		else if (isInCssClass(form.errorFields[i][1], "error")){
			delFromClassName(form.errorFields[i][1], "error");
		}
	}
	setTimeout("MonitorErrorFields();",65);
}
function ErrorFields()
{
	var fields = new Array();
	var lis = document.getElementsByTagName("li");
	var spans;
	var errorspans;
	for (var i=lis.length-1;i>=0;i--)
	{
		spans = lis[i].getElementsByTagName("span");
		errorspans = new Array();
		for (var j=spans.length-1;j>=0;j--)
		{
			if (!isInCssClass(spans[j], "error")) continue;
			errorspans.push(spans[j]);			
		}
		if (errorspans.length > 0)
			fields.push(new Array( errorspans,getElementsByTagNames("input,select", lis[i])[0]));
	}
	return fields;
}

addToEvent(window, "load", setupFormFields);
function setupFormFields()
{
	if (!document.getElementById || !document.getElementsByTagName) return;
	var fields = document.getElementsByTagName("input");
	var delimiter = "$";
	var startValue;
	var startIndex;
	var endIndex;
	for (var i = fields.length-1; i>=0; i--)
	{
		if (fields[i].type != "text") continue;
		if (!isInCssClass(fields[i], delimiter)) continue;
		startIndex = fields[i].className.indexOf(delimiter);
		endIndex = fields[i].className.indexOf(delimiter, startIndex+1);
		if (endIndex < 0) continue;
		startValue = fields[i].className.slice(startIndex+1, endIndex);
		fields[i].startValue = startValue;
		fields[i].onfocus = formField_onFocus;
		fields[i].className = fields[i].className.replace(delimiter + startValue + delimiter, "").trim();
	}
}

addToEvent(window, "load", setupCheckboxFields);
function setupCheckboxFields()
{
	if (!document.getElementById || !document.getElementsByTagName) return;
	var fields = document.getElementsByTagName("input");
	for (var i = fields.length-1; i>=0; i--)
	{
		if (isInCssClass(fields[i], "button") && isInCssClass(fields[i], "checkboxSelectDeselect"))
			prepareCheckboxes( fields[i] );
	}
}

/* Functions to unobtrusively open links in new windows when className is "new-window" */
addToEvent(window, "load", getNewWindowLinks);
/* Create the new window */
function openInNewWindow(e) {
	var event;
	if (!e) event = window.event;
	else event = e;
	// Abort if a modifier key is pressed
	if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) {
		return true;
	}
	else {
		// Change "_blank" to something like "newWindow" to load all links in the same new window
	    var newWindow = window.open(this.getAttribute('href'), '_blank');
		if (newWindow) {
			if (newWindow.focus) {
				newWindow.focus();
			}
			return false;
		}
		return true;
	}
}

/*
Add the openInNewWindow function to the onclick event of links with a class name of "new-window"
*/
function getNewWindowLinks() {
	
	// Check that the browser is DOM compliant
	if (document.getElementById && document.createElement && document.appendChild) {
		// Find all links 
		var links = document.getElementsByTagName('a');
		var link;
		for (var i = 0; i < links.length; i++) {
			link = links[i];
			// Find all links with a class name of "non-html"
			if (/\bnew-window\b/.test(link.className)) {
				// append new window function to onclick & onkeypress events (for accessibility!)
				link.onclick = openInNewWindow;
				link.onkeypress = openInNewWindow;
			}
		}
		objWarningText = null;
	}
}


function prepareCheckboxes( button )
{
	//get the UL containing all the fields to work with
	var ul = getParentNode( button, "ul" );
	if (ul == null) return;
	var fields = ul.getElementsByTagName("input");
	var checkboxes = new Array();
	
	for (var i = fields.length - 1; i>=0; i--)
	{
		if (fields[i].type.toLowerCase() == "checkbox")
			checkboxes.push(fields[i]);
	}
	ul.checkBoxGroup = checkboxes;
	button.onclick = buttonSelectDeselect_onClick;
}

function buttonSelectDeselect_onClick()
{
	var ul = getParentNode( this, "ul" );
	if (ul == null) return;
	var checkboxes = ul.checkBoxGroup;
	var allSelected = true;
	for (var i = checkboxes.length-1; i>=0; i--)
	{
		if (!checkboxes[i].checked)
			allSelected = false;
	}
	for (i = checkboxes.length-1; i>=0; i--)
	{
		checkboxes[i].checked = !allSelected;
	}
	
	
	return false;
}

function formField_onFocus()
{
	if (this.startValue == "" || this.startValue == null) 
		return;
	if (this.value == this.startValue) 
		this.value = "";
}

function printPage()
{
	if (window.print)
	{
		var header = document.getElementById("Header");
		if (header)
		{
			var url = document.createElement("p");
			url.id = "printpage_url";
			url.innerHTML = top.location.href;
			url.className = "clear";
			header.parentNode.insertBefore(url, header);
		}
		window.print();
		setTimeout("printPage_cleanUp()", 10000);
	}
	return false;
}
function printPage_cleanUp()
{
	var url = document.getElementById('printpage_url');
	if (url)
		url.parentNode.removeChild(url);
}

function popup(url)
{
	window.open(url, 'popup', 'width=700,height=350,resizable=yes,scrollbars=yes');
	return false;
}

function setupAnchorEvents()
{
	if (!document.getElementById || !document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	var rel;
	for (var i = anchors.length-1; i>=0; i--)
	{
		rel = anchors[i].getAttribute("rel") + "";
		if (rel.indexOf("closeWindow") >= 0)
		  anchors[i].onclick = function () { window.close(); return false; }
		if (rel.indexOf("printPage") >= 0)
		    anchors[i].onclick = printPage;
		if (rel.indexOf("AccessKeyPointer") >= 0)
			anchors[i].onclick = function () { return false; }
		if (rel.indexOf("popup") >= 0)
		{
			anchors[i].onclick = function()
			{
				var newWin = window.open(this.href, escape(this.html)); 
				if (newWin)
			{
			newWin.focus();
            return false;
        }
        else
            return true;
    }
}
}
}
//Disable input field certificate presentation Mt bsi
function disableField(check, field){
	var checkboxElm = document.getElementById(check);
	var fieldElm = document.getElementById(field);
	if (checkboxElm.checked == false){
		fieldElm.disabled = true;
	}
}

//check key press for textbox, press relevant button if key is return
function keyDownHandler(event, btn){
	// process only the Enter key
	if (event.keyCode == 13){
		// cancel the default submit
		event.returnValue=false;
		event.cancel = true;
		btn.click();
	}
}

//check key press for textbox, press relevant button if key is return
function cancelKeyDownHandler(event){
	// process only the Enter key
	if (event.keyCode == 13){
		// cancel the default submit
		event.returnValue=false;
		event.cancel = true;
		return false;				
	}
}