var ROM = {
	
	// Initialise
	init: function() {
		
		// Set the default style of "collapse" to all icons
		var elems = ROM.getElems("sectionIcon");
		for (i in elems) elems[i].className = "sectionIcon collapse";
		
		// Add onclick events to all alpha-nav sections to allow for auto expand
		var nav = ROM.getElems("alpha-nav");
		if (nav[0]) {
			var links = nav[0].getElementsByTagName("A");
			
			var count = links.length;
			for (var i = 0; i < count; i++) {
				links[i].onclick = function(event) {
					ROM.extractID(event);
				}
			}
		}
		
	},
	
	// Return the Event Target
	eTarget: function (e) {
		
		// Valid Event?
	    if (!e) e = window.event;

	    // Reference the Object that fired the event
	    return (e.srcElement) ? e.srcElement : e.target;
	    
	},
	
	extractID: function (e) {
		
		e = ROM.eTarget(e).href.split("#form");
		if (e[1]) ROM.toggle('section-'+e[1], true);
		
	},
	
	// Toggle collapse/expand
	toggle: function (id, forceExpand) {
		
		var e = document.getElementById(id);
		var parent = ROM.findParent(e);
		
		if (!forceExpand && parent.className == "om_Table") {
			
			// Collapse
			parent.className = "om_Table collapsed";
			e.className = "sectionIcon expand";
			
		} else {
			
			// Expand
			parent.className = "om_Table";
			e.className = "sectionIcon collapse";
			
		}
	},
	
	// Find the TABLE parent node
	findParent: function (e) {
		
		while (e.tagName != "TABLE" && e.parentNode) {
			e = e.parentNode;
		}
		return e;
		
	},
	
	// Custom version of getElementsByClassName as it is not supported in IE!
	getElems: function (cName) {
		
		var found = [];
		var elems = document.getElementsByTagName("DIV");
		var count = elems.length;
		
		for (var i = 0; i < count; i++) {
			
			if (elems[i].className && elems[i].className == cName)
				found.push(elems[i]);
			
		}
		return found;
		
	}
	
}

// Bind an event to the window onload event
window.onDOMReady = function (fn) {
	
	if(document.addEventListener) {
		// According to standard implementation 
		document.addEventListener("DOMContentLoaded", fn, false);  
	} else {
		// IE
		document.onreadystatechange = function() {
			checkReadyState(fn);
		}
	}
}

function checkReadyState(fn) {
	if(document.readyState == "complete") fn(); 
}

window.onDOMReady(
	function () {
		// Initialise
		ROM.init();
	}
);
