//	javascript file pour le theme SouffreJour
//	**javascript pour expanding menus **




//--------------------------------------------------------------------------------------------------
// Setup Variables

var is_regexp        = (window.RegExp) ? true : false;


//--------------------------------------------------------------------------------------------------
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
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
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;
}


//--------------------------------------------------------------------------------------------------
// Collapsible element handlers

// Toggles the collapse state of an object, and saves state to 'sjTest_collapse' cookie
function toggle_collapse(objid)
{
	if (!is_regexp)
	{
		return false;
	}

	obj = fetch_object('collapseobj_' + objid);
	img = fetch_object('collapseimg_' + objid);
	cel = fetch_object('collapsecel_' + objid);
	hlp = fetch_object('collapsehlp_' + objid);

	if (!obj)
	{
		// nothing to collapse!
		if (img)
		{
			// hide the clicky image if there is one
			img.style.display = 'none';
		}
		return false;
	}

	if (obj.style.display == 'none')
	{
		obj.style.display = '';
		if(hlp)
		{
			hlp.style.display = 'none';
		}
		save_collapsed(objid, false);
		if (img)
		{
			img_re = new RegExp("_collapsed\\.png$");
			img.src = img.src.replace(img_re, '.png');
		}
		if (cel)
		{
			cel_re = new RegExp("^(thead|tcat)(_collapsed)$");
			cel.className = cel.className.replace(cel_re, '$1');
		}
	}
	else
	{
		obj.style.display = 'none';
		if(hlp)
		{
			hlp.style.display = '';
		}
		save_collapsed(objid, true);
		if (img)
		{
			img_re = new RegExp("\\.png$");
			img.src = img.src.replace(img_re, '_collapsed.png');
		}
		if (cel)
		{
			cel_re = new RegExp("^(thead|tcat)$");
			cel.className = cel.className.replace(cel_re, '$1_collapsed');
		}
	}
	return false;
}

// Updates sjTest_collapse cookie with collapse preferences
function save_collapsed(objid, addcollapsed)
{
	var collapsed = fetch_cookie('sjTest_collapse');
	var tmp = new Array();

	if (collapsed != null)
	{
		collapsed = collapsed.split('\n');

		for (var i in collapsed)
		{
			if (collapsed[i] != objid && collapsed[i] != '')
			{
				tmp[tmp.length] = collapsed[i];
			}
		}
	}

	if (addcollapsed)
	{
		tmp[tmp.length] = objid;
	}

	expires = new Date();
	expires.setTime(expires.getTime() + (1000 * 86400 * 365));
	set_cookie('sjTest_collapse', tmp.join('\n'), expires);
}

//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
// LOAD SAVED COOKIE SETTINGS (gbarlier)

function gb_hideCollapsed(objid)
{
	if (!is_regexp)
	{
		return false;
	}

	obj = fetch_object('collapseobj_' + objid);
	img = fetch_object('collapseimg_' + objid);
	cel = fetch_object('collapsecel_' + objid);
	hlp = fetch_object('collapsehlp_' + objid);

	if (obj.style.display != 'none')
	{
		obj.style.display = 'none';
		if (img)
		{
			img_re = new RegExp("\\.png$");
			img.src = img.src.replace(img_re, '_collapsed.png');
		}
		if (cel)
		{
			cel_re = new RegExp("^(thead|tcat)$");
			cel.className = cel.className.replace(cel_re, '$1_collapsed');
		}
	}
	if (hlp.style.display == 'none')
	{
		hlp.style.display = '';
	}
	return false;
}

function gb_checkCollapsed(objid)
{
	var collapsed = fetch_cookie('sjTest_collapse');

	if (collapsed != null)
	{
		collapsed = collapsed.split('\n');

		for (var i in collapsed)
		{
			if (collapsed[i] == objid)
			{
				gb_hideCollapsed(objid);
			}
		}
	}
}



//--------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------

