// This Java Script file is used to collapse and expand block and save them in the cookies.
//#######################################################
/**
* Handle Firebug calls when Firebug is not available (getfirebug.com)
*/
if (!window.console || !console.firebug)
{
	window.console = {};
	var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
	for (var i = 0; i < names.length; ++i) window.console[names[i]] = function() {};
}
//#######################################################
//Setup Variables
//@var boolean 	is_regexp - does window.regExp exist? - Catch errors with less capable browsers
var is_regexp = (window.RegExp) ? true : false;
// #######################################################
/**
* Function to emulate document.getElementById
* @param	string	Object ID
* @return	mixed	null if not found, object if found
*/
function fetch_object(idname) {
	if (document.getElementById) {
		return document.getElementById(idname);
	} else if (document.all) {
		return document.all[idname];
	} else if (document.layers) {
		return document.layers[idname];
	} else {
		return null;
	}
}
// #######################################################
// Cookie handlers
/**
* Sets a cookie
* @param	string	Cookie name
* @param	string	Cookie value
* @param	date	Cookie expiry date
*/
function set_cookie(name, value, expires) {
	console.log("Set Cookie :: %s = '%s'", name, value);
	document.cookie = name + '=' + escape(value) + '; path=/' + (typeof expires != 'undefined' ? '; expires=' + expires.toGMTString() : '');
}
//#######################################################
/**
* Fetches the value of a cookie
* @param	string	Cookie name
* @return	string
*/
function fetch_cookie(name) {
	cookie_name = name + '=';
	cookie_length = document.cookie.length;
	cookie_begin = 0;
	while (cookie_begin < cookie_length) {
		value_begin = cookie_begin + cookie_name.length;
		if (document.cookie.substring(cookie_begin, value_begin) == cookie_name) {
			var value_end = document.cookie.indexOf (';', value_begin);
			if (value_end == -1) {
				value_end = cookie_length;
			}
			var cookie_value = unescape(document.cookie.substring(value_begin, value_end));
			console.log("Fetch Cookie :: %s = '%s'", name, cookie_value);
			return cookie_value;
		}
		cookie_begin = document.cookie.indexOf(' ', cookie_begin) + 1;
		if (cookie_begin == 0) {
			break;
		}
	}
	console.log("Fetch Cookie :: %s (null)", name);
	return null;
}
//#######################################################
/**
* Toggles the collapse state of an object, and saves state to 'mb_collapse' cookie
* @param	string	Unique ID for the collapse group
* @return	boolean	false
*/
function toggle_collapse(objid,img_up,img_down) { 
	if (!is_regexp) {
		return false;
	}
	var obj = fetch_object('collapseobj_' + objid);
	var img = fetch_object('collapseimg_' + objid);	
	if (!obj) {
		
		if (img) {
			
			img.style.display = 'none';
		}
		return false;
	}
	
	if (obj.style.display == 'none') { 
		obj.style.display = '';
		save_collapsed(objid, false);
		if (img) {
			img.className = 'collapse';
			img.title = "Collapse";
		}
	} else if (obj.style.display != 'none') {
		obj.style.display = 'none';
		save_collapsed(objid, true);
		if (img) {
			img.className = 'expand';
			img.title = "Expand";
		}
	}
	return false;
}
//#######################################################
/**
* Updates mb_collapse cookie with collapse preferences
* @param	string	Unique ID for the collapse group
* @param	boolean	Add a cookie
*/
function save_collapsed(objid, addcollapsed) {
	// mb_collapse is the name of the cookies.
	var collapsed = fetch_cookie('mb_collapse');
	// Made the "collapsedFlg" Flag to check wheather the value exists in the cookies.
	var collapsedFlg = 0;
	var tmp = new Array();
	if (collapsed != null && collapsed != '') { // Check the cookies for not null
		collapsed = collapsed.split('\n');

		for (i=0;i<collapsed.length;i++) { 
			if (collapsed[i] != objid && collapsed[i] != '') {	
				tmp[tmp.length] = collapsed[i];
				addcollapsed=true;
			} else if(collapsed[i] == objid && collapsed[i] != '') { // check if already exist then 
				delete tmp[tmp.length];
				addcollapsed=false; 
				collapsedFlg = 1;
			}			
		}
	} else {
		tmp[tmp.length] = objid;
	}
	if (addcollapsed && !collapsedFlg) { 
		tmp[tmp.length] = objid;
	}
	expires = new Date();
	expires.setTime(expires.getTime() + (1000 * 86400 * 365));
	set_cookie('mb_collapse', tmp.join('\n'), expires);
}
//#######################################################