/*	########################################################################
		(c) 2006, Celona Technologies
	########################################################################	*/

function addOnLoadEvent(fn) {
	/*
		========================================================================
		CALL	: void addOnLoadEvent(function fn)
		DESC	: adds a function supplied as a parameter to the window.onload
			      handler, not overwriting existing ones.
		CREDITS	: implemented using algorithm described by Jeremy Keith
		========================================================================
	*/

	var existfn				= window.onload;

	if (typeof window.onload != "function") {
		window.onload		= fn;
	} else {
		window.onload		= function() {
			existfn();
			fn();
		}
	}
}



function jsController() {
	/*
		========================================================================
		CALL	: void jsController(void)
		DESC	: initialises the Javascript for all pages 
		========================================================================
	*/
	
	var pageId						= document.getElementsByTagName("body")[0].id;

	if (pageId == 'home') {
		// home page
		addEvents();

		initTwisties();

		addFontControls();
	} else {
		// any other page
		addFontControls();
	}

	setFontSize();
}

addOnLoadEvent(jsController);





function addEvents() {
	if (document.getElementById("newsboxheading").addEventListener) {
		// DOM-compatible event listeners
		document.getElementById("newsboxheading").addEventListener("mouseover", function (e) { mouseLinkBox('news', 'hi') }, false);
		document.getElementById("newsboxheading").addEventListener("mouseout", function (e) { mouseLinkBox('news', 'lo') }, false);
	} else if (document.getElementById("newsboxheading").attachEvent) {
		// IE-compatible event listeners
		document.getElementById("newsboxheading").attachEvent("onmouseover", function (e) { mouseLinkBox('news', 'hi') });
		document.getElementById("newsboxheading").attachEvent("onmouseout", function (e) { mouseLinkBox('news', 'lo') });
	}

	if (document.getElementById("evtboxheading").addEventListener) {
		// DOM-compatible event listeners
		document.getElementById("evtboxheading").addEventListener("mouseover", function (e) { mouseLinkBox('evt', 'hi') }, false);
		document.getElementById("evtboxheading").addEventListener("mouseout", function (e) { mouseLinkBox('evt', 'lo') }, false);
	} else if (document.getElementById("evtboxheading").attachEvent) {
		// IE-compatible event listeners
		document.getElementById("evtboxheading").attachEvent("onmouseover", function (e) { mouseLinkBox('evt', 'hi') });
		document.getElementById("evtboxheading").attachEvent("onmouseout", function (e) { mouseLinkBox('evt', 'lo') });
	}

/*
	if (document.getElementById("insideboxheading").addEventListener) {
		// DOM-compatible event listeners
		document.getElementById("insideboxheading").addEventListener("mouseover", function (e) { mouseLinkBox('inside', 'hi') }, false);
		document.getElementById("insideboxheading").addEventListener("mouseout", function (e) { mouseLinkBox('inside', 'lo') }, false);
	} else if (document.getElementById("insideboxheading").attachEvent) {
		// IE-compatible event listeners
		document.getElementById("insideboxheading").attachEvent("onmouseover", function (e) { mouseLinkBox('inside', 'hi') });
		document.getElementById("insideboxheading").attachEvent("onmouseout", function (e) { mouseLinkBox('inside', 'lo') });
	}
*/

	if (document.getElementById("newsshorttextlink").addEventListener) {
		// DOM-compatible event listeners
		document.getElementById("newsshorttextlink").addEventListener("click", function (e) { toggleShortText('news') }, false);
	} else if (document.getElementById("newsshorttextlink").attachEvent) {
		// IE-compatible event listeners
		document.getElementById("newsshorttextlink").attachEvent("onclick", function (e) { toggleShortText('news') });
	}

	if (document.getElementById("evtshorttextlink").addEventListener) {
		// DOM-compatible event listeners
		document.getElementById("evtshorttextlink").addEventListener("click", function (e) { toggleShortText('evt') }, false);
	} else if (document.getElementById("evtshorttextlink").attachEvent) {
		// IE-compatible event listeners
		document.getElementById("evtshorttextlink").attachEvent("onclick", function (e) { toggleShortText('evt') });
	}

	if (document.getElementById("item01shorttextlink").addEventListener) {
		// DOM-compatible event listeners
		document.getElementById("item01shorttextlink").addEventListener("click", function (e) { toggleShortText('item01') }, false);
	} else if (document.getElementById("item01shorttextlink").attachEvent) {
		// IE-compatible event listeners
		document.getElementById("item01shorttextlink").attachEvent("onclick", function (e) { toggleShortText('item01') });
	}

	if (document.getElementById("item02shorttextlink").addEventListener) {
		// DOM-compatible event listeners
		document.getElementById("item02shorttextlink").addEventListener("click", function (e) { toggleShortText('item02') }, false);
	} else if (document.getElementById("item02shorttextlink").attachEvent) {
		// IE-compatible event listeners
		document.getElementById("item02shorttextlink").attachEvent("onclick", function (e) { toggleShortText('item02') });
	}

	if (document.getElementById("item03shorttextlink").addEventListener) {
		// DOM-compatible event listeners
		document.getElementById("item03shorttextlink").addEventListener("click", function (e) { toggleShortText('item03') }, false);
	} else if (document.getElementById("item03shorttextlink").attachEvent) {
		// IE-compatible event listeners
		document.getElementById("item03shorttextlink").attachEvent("onclick", function (e) { toggleShortText('item03') });
	}
}


function initTwisties() {
	/* closes twisties on home page after page load completes */
	
	document.getElementById('newsshorttext').style.display				= 'none';
	document.getElementById('evtshorttext').style.display				= 'none';
	document.getElementById('item01shorttext').style.display			= 'none';
	document.getElementById('item02shorttext').style.display			= 'none';
	document.getElementById('item03shorttext').style.display			= 'none';
}


function mouseLinkBox(thebox, thestate) {
	/* mouse over/out handler for heading boxes on home page */
	
	if (thestate == 'hi') {
		document.getElementById(thebox + 'boxheading').className				= 'boxheadhi';
	} else {
		document.getElementById(thebox + 'boxheading').className				= 'boxheadlo';
	}
}


function toggleShortText(thebox) {
	/* twistie handler for home page, also changes class name of headline boxes to facilitate highlighting */
	
	var theEl	= document.getElementById(thebox + 'shorttext');
	
	if (theEl.style.display == 'none') {
		theEl.style.display														= 'block';
		document.getElementById(thebox + 'shorttextlink').className				= 'stopenlink';
	} else {
		theEl.style.display														= 'none';
		document.getElementById(thebox + 'shorttextlink').className				= 'stcloselink';
	}
}
