var modules = new Array();
var animationLength = 300;
var expandoffset = 0;
var collapseoffset = 0;

//addEvent - attach a function to an event
function addEvent(obj, evType, fn){ 
 if (obj.addEventListener){ 
   obj.addEventListener(evType, fn, false); 
   return true; 
 } else if (obj.attachEvent){ 
   var r = obj.attachEvent("on"+evType, fn); 
   return r; 
 } else { 
   return false; 
 } 
}

//Attach to onload event
addEvent(window, 'load', initColumn);

function initColumn() {
	hidemodule = document.getElementById("ja-collapsedmodules");
	if (hidemodule) {
		p = hidemodule.parentNode;
		while (p.parentNode && p.className.indexOf("module") == -1) p = p.parentNode;
		if (p.style) p.style.display = "none";
		else hidemodule.style.display = "none";
	}

	allmodules = document.getElementsByTagName("h3");
	hc = getHiddenColumn();
	count = 0;
	for (i = 0; i < allmodules.length; ++i) {
		nc = allmodules[i].firstChild;
		while (nc.nodeType != 3) nc = nc.firstChild;
		
		code = hex_md5(nc.nodeValue.trim()).substr(0,5);
		if (modulestring.indexOf(code) != -1) {
			modules[count] = allmodules[i];
			modules[count].fxid = count;
			modules[count].code = code;
			p = modules[count].parentNode;
			while (p.parentNode && p.tagName.toUpperCase() != 'DIV') p = p.parentNode;
			p.h3 = modules[count];
			modules[count].effects = new fxExtra.HeightExtra( p, { duration: animationLength, transition: fxExtra.circ } );
			if (hc.indexOf(modules[count].code) != -1) {
				p.style.height = modules[count].offsetHeight + collapseoffset + "px";
				modules[count].hide = true;
				modules[count].className = "collapse";
			} else {
				modules[count].hide = false;
				modules[count].className = "expand";
				p.style.height = p.offsetHeight + "px";
			}
			modules[count].style.cursor = "pointer";
			
			modules[count].onclick = function() {
				this.effects.toggle();
			}
			
			count++;

		}
	}

}

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); };

function getcookie(name) {
	var start = document.cookie.indexOf(name+"=");
	var len = start+name.length+1;
	if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
	if (start == -1) return null;
	var end = document.cookie.indexOf(";",len);
	if (end == -1) end = document.cookie.length;
	return unescape(document.cookie.substring(len,end));
}

function setcookie(name,value,expires,path,domain,secure) {
	var date = new Date();
	if (expires) {
		date.setTime(date.getTime() + expires*24*60*60*1000)
		expires = date;
	}
	var cookieString = name + "=" +escape(value) +
		( (expires) ? ";expires=" + expires.toGMTString() : "") +
		( (path) ? ";path=" + path : "") +
		( (domain) ? ";domain=" + domain : "") +
		( (secure) ? ";secure" : "");
	document.cookie = cookieString;
}

function getHiddenColumn() {
	hc = getcookie("ja-hiddencolumn");
	return (hc) ? hc : "";
}

function saveHiddenColumn() {
	c = getHiddenColumn();
	for (i=0; i < modules.length; ++i) {
		if (modules[i].hide) {
			if (c.indexOf(modules[i].code) == -1) c += modules[i].code + " ";
		} else {
			if (c.indexOf(modules[i].code) != -1) c = c.replace(modules[i].code + " ", "");
		}
	}
	setcookie("ja-hiddencolumn", c, 365, "http://www.netergy.com.au/");
}

addEvent( window, 'unload', saveHiddenColumn );

function expandAll() {
	for (i=0; i<modules.length; ++i) {
		if (modules[i].hide) {
			modules[i].effects.toggle();
		}
	}
}

function collapseAll() {
	for (i=0; i<modules.length; ++i) {
		if (!modules[i].hide) {
			modules[i].effects.toggle();
		}
	}
}
