//
// Common functions
//

function openClose(id,mode,base_src)
{
	var do_img = false;
	
	if (element = document.getElementById(id))
	{
		if (img = document.getElementById('img_'+id))
			do_img = true;
		
		if (element.style)
		{
			if (mode == 0)
			{
				if (element.style.display == 'block' )
				{
					element.style.display = 'none';
					
					if (do_img)
					{
						img.src = base_src+'plus.png';
						img.alt = "+";
					}
				}
				else {
					element.style.display = 'block';
					
					if (do_img)
					{
						img.src = base_src+'minus.png';
						img.alt = "-";
					}
				}
			}
			else if (mode == 1)
			{
				element.style.display = 'block';
					
				if (do_img)
				{
					img.src = base_src+'minus.png';
					img.alt = "-";
				}
			}
			else if (mode == -1)
			{
				element.style.display = 'none';
				
				if (do_img)
				{
					img.src = base_src+'plus.png';
					img.alt = "+";
				}
			}
		}
	}
}

function openCloseMemory(id,cookie_name,mode,base_src)
{
	var cookie_exp = new Date ();
	cookie_exp.setTime (cookie_exp.getTime() + (365 * 24 * 60 * 60 * 1000)); // ouais, 1 ans !
	
	saved = new Array();
	clean = new Array();
	if (tmp = readCookie(cookie_name))
	{
		saved = tmp.split(',');
	}
	
	for (var i=0; i<saved.length; i++)
	{
		if (saved[i] != id && saved[i] != "")
		{
			clean[clean.length] = saved[i];
		}
	}
	
	if (mode != null)
	{
		openClose(id,mode,base_src);
		
		e = document.getElementById(id);
		if (e.style.display == 'block')
		{
			createCookie(cookie_name,clean.join(','),cookie_exp);
		}
		else {
			clean[clean.length] = id;
			createCookie(cookie_name,clean.join(','),cookie_exp);
		}
	}
	else {		
		var finded = false;
		for (var i=0; i<saved.length; i++)
		{
			if (saved[i] == id && saved[i] != "")
			{
				openClose(id,-1,base_src);
				finded = true;
			}
		}
		
		if (!finded)
			openClose(id,1,base_src);
	}
}

function createCookie(name,value,expires)
{
	cookieContent = name + "=" + value + ";path=/;" +
					((expires) ? "; expires=" + expires.toGMTString() : "");
	
	document.cookie = cookieContent;
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for (var i=0; i < ca.length; i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}


//
// ChainHandler, py Peter van der Beken
//
function chainHandler(obj, handlerName, handler) {
	obj[handlerName] = (function(existingFunction) {
		return function() {
			handler.apply(this, arguments);
			if (existingFunction)
				existingFunction.apply(this, arguments); 
		};
	})(handlerName in obj ? obj[handlerName] : null);
};

//
// On load
//
chainHandler(window,'onload',function() {
		
});
