/*
Basic Javascript Library

(Common functions etc.)
*/

/*
-------------------------------------------------------------------
Onload Handler

Facilitates array of onload events to be fired on window load. Old
school since it will be run in the public website too.
*/

var onload_fns = new Array();//Add to this globally like onload_fns[onload_fns.length] = 'foo()';

function onload_handler()
{
	for(var i=0;i<onload_fns.length;i++)
		eval(onload_fns[i]);//Note expects function as full string e.g. "my_fn()" or "my_fn(a,b)"
	
	event_handler();//Always last by default
}

function onload_fn_add(fn)
{
	onload_fns[onload_fns.length] = fn;
}

window.onload = onload_handler;

/*
-------------------------------------------------------------------
Event Handlers

Assigns event handlers on page load. Add to event_handlers array as
required. Called at end of onload_fns.  Old school since it will be run
in the public website too.
*/

var event_handlers = new Array();//Holds array of array, [0] is ID, [1] is action (onclick etc.), [2] is function ('foo', 'bar' etc.)

function event_handler()
{
	for(var i=0;i<event_handlers.length;i++)
	{
		if(document.getElementById(event_handlers[i][0]))
			eval("document.getElementById('"+event_handlers[i][0]+"')."+event_handlers[i][1]+" = "+event_handlers[i][2]+";");
	}
}

function event_handler_add(eh)
{
	event_handlers[event_handlers.length] = eh;
}

/*
-------------------------------------------------------------------
Base Functions

Some basic functions.
*/

function isset(varname)
{
	//Tests if variable has been defined or not
	return(typeof(window[varname])!='undefined');
}

function get_child_ids(parentID,child_node_name)
{
	//Gets list of IDs of child elements

	var child_ids = new Array();
	var cn = document.getElementById(parentID).childNodes;
	for(var i=0;i<cn.length;i++)
	{
		if(cn[i].nodeName == child_node_name)
			child_ids[child_ids.length] = cn[i].id;
	}
	return child_ids;
}

function get_att(eID,att)
{
	//Get node attribute using loop (for browser compatibility)

	var el = document.getElementById(eID);
	for(var i = 0; i < el.attributes.length; i++ )
	{
		if(el.attributes[i].nodeName.toLowerCase() == att)
		{
			return el.attributes[i].nodeValue;
			break;
		}
	}
	return '';
}

function preload_img(img)
{
	//Loads images into browser cache

	var load_img = new Image();
	var path = '/images/'+esd+'/template1/';//TODO: global var for img path, maybe a JS sets file?
	load_img.src = isset('url')? url+path+img:path+img;
}

