﻿//Code to allow document.getElementById() on browsers that use document.all[] instead
if(!document.getElementById)
{
	document.getElementById=function(element)
	{
			return document.all[element];
 	};
}

//The following incorporates code from http://therealcrisp.xs4all.nl/upload/addEvent_dean.html
//Function to add a listener funtion to an event
function addEvent(element,eventType,listenerFunction,useCapture)
{
	if(!document.getElementById) {return;}
	if(!element) {return;}
	if(element.addEventListener)
	{
		element.addEventListener(eventType,listenerFunction,useCapture);
		return true;
	}
	else if(element.attachEvent)
	{
		return element.attachEvent('on'+eventType,listenerFunction);
	}
	else
	{
		if (!listenerFunction.$$guid) listenerFunction.$$guid = addEvent.guid++;
		if (!element.events) element.events = {};
		var handlers = element.events[eventType];
		if (!handlers)
		{
			handlers = element.events[eventType] = {};
			if (element['on' + eventType]) handlers[0] = element['on' + eventType];
			element['on' + eventType] = handleEvent;
		}
		handlers[listenerFunction.$$guid] = listenerFunction;
	}
}
addEvent.guid=1;

//Function to remove a listener funtion from an event
function removeEvent(element,eventType,listenerFunction,useCapture)
{
	if(!document.getElementById) {return;}
	if(!element) {return;}
	if(element.removeEventListener)
	{
		element.removeEventListener(eventType,listenerFunction,useCapture);
		return true;
	}
	else if(element.detachEvent)
	{
		return element.detachEvent('on'+eventType,listenerFunction);
	}
	else
	{
		if (element.events && element.events[eventType] && listenerFunction.$$guid)
			delete element.events[eventType][listenerFunction.$$guid];
	}
}

function EventToAdd(source,type,fn)
{
	this.source=source;
	this.type=type;
	this.fn=fn;
}

var newEvents=new Array();

function newEvent(source,type,fn)
{
	if(newEvent.windowLoaded) addEvent(document.getElementById(source),type,fn);
	else newEvents.push(new EventToAdd(source,type,fn));
}
newEvent.windowLoaded=false;

//Add all submit listener function to keydown events of all <input> tags except buttons
function addEventListeners()
{
    var source;
    
	for(var n=0;n<newEvents.length;n++)
	{
		source=document.getElementById(newEvents[n].source);
		if(source)
		{
			var type=newEvents[n].type;
			var fn=newEvents[n].fn;
			addEvent(source,type,fn,false);
		}
	}
	newEvent.windowLoaded=true;
}

addEvent(window,'load',addEventListeners,false);

//Get value of selected item in a <SELECT>
function getSelectedValue(sel)
{
    return sel.options[sel.selectedIndex].value;
}