window.onload = function () {
	initBehaviors ();
	initPreferences ();
	initToolbar ();
	if (getUser () != false)
	{
		initEditor ();
	}
};

function getUser ()
{
	var links = document.getElementsByTagName("link");
	for (var i=0; i <links.length; i++)
	{
		if (links.item(i).getAttribute("rel") == "current user")
			return links.item(i).getAttribute("href");
	}
	return false;
}

function initEditor ()
{
	var content = document.getElementById("content");
	content.setAttribute("contentEditable", true);
}

// Préférences 
function initPreferences() {
/* Récupération du cookie de stockage des préférences */
	var size = getCookie("fontSize");
	if (size != null)
	{
		document.getElementById("structure").style.fontSize = size;
	}

	if (getCookie("contextHided") != null)
	{
		document.getElementById("context").style.display = "none";
		document.getElementById("_content").style.width = "956px";
		var button = document.getElementById("hideContext");
		button.setAttribute("src", "/images/icons/20/show.png");
		button.setAttribute("title", "Voir la zone de contexte");
		button.setAttribute("id", "showContext");
	}
}

function initToolbar () {
	var toolbar = document.getElementById("pageToolbar");
	toolbar.style.display = "block";
	var inputs 	= toolbar.getElementsByTagName("input");
	for (var i=0; i<inputs.length; i++)
		inputs.item(i).onclick = doCommand;
}

function doCommand (event) 
{
	var element;
	var psize;
	switch (this.getAttribute("id"))
	{
		case "fIncrease":
			element = document.getElementById("structure");
			pSize = element.style.fontSize.substr(0, document.getElementById("structure").style.fontSize.length - 1) ;
			if (pSize.length)
			{
				element.style.fontSize = (pSize*1+10) + "%";
				//element.style.lineHeight = (pSize*1+10) + "%";
			}
			else
			{
				element.style.fontSize = "110%";
				//element.style.lineHeight = "110%";
			}
			setCookie( "fontSize", element.style.fontSize, 180, "/" );
			break;
		case "fDecrease":
			element = document.getElementById("structure");
			pSize = element.style.fontSize.substr(0, document.getElementById("structure").style.fontSize.length - 1) ;
			if (pSize*1 < 80)
				return false;
			if (pSize.length)
			{
				element.style.fontSize = (pSize*1-10) + "%";
				//element.style.lineHeight = (pSize*1-10) + "%";
			}
			else
			{
				element.style.fontSize = "90%";
				//element.style.lineHeight = "90%";
			}
			setCookie( "fontSize", element.style.fontSize, 180, "/" );
			break;
		case "fReset":
			document.getElementById("structure").style.fontSize = "100%";
			deleteCookie("fontSize", "/");
			break;
		case "mail":
			break;
		case "print":
			window.print();
			break;
		case "hideContext":
			this.setAttribute("src", "/images/icons/20/show.png");
			this.setAttribute("title", "Voir la zone de contexte");
			this.setAttribute("id", "showContext");
			document.getElementById("context").style.display = "none";
			document.getElementById("_content").style.width = "956px";
			setCookie("contextHided", "true", 180, "/" );
			break;
		case "showContext":
			this.setAttribute("src", "/images/icons/20/hide.png");
			this.setAttribute("title", "Cacher la zone de contexte");
			this.setAttribute("id", "hideContext");
			document.getElementById("context").style.display = "block";
			document.getElementById("_content").style.width = "705px";
			deleteCookie("contextHided", "/" );
			break;
		case "disableCss":
			setCookie("disableCss", "true", 180, "/" );
			return true;
		case "enableCss":
			deleteCookie("disableCss", "/" );
			return true;
	}
	return false;
}


function initBehaviors () {
	var imgs = document.getElementsByTagName("img");
	for (var i=0; i<imgs.length; i++)
	{
		if (imgs.item(i).getAttribute("id") && imgs.item(i).getAttribute("id").indexOf("_") == 0)
		{
			switch (imgs.item(i).getAttribute("id").substr(1))
			{
				case "hideContext":
					imgs.item(i).onclick = hideContext;
					break;
			}
		}
	}
	
	osearch = document.getElementById("search");
	
	osearch.onfocus = function () {this.value='';};
	
	var selects = document.getElementsByTagName("select");
	for (i=0; i<selects.length; i++)
	{
		if (selects.item(i).getAttribute("name") == "goto[goto]")
		{
			//selects.item(i).nextSibling.nextSibling.style.display = "none";
			var options = selects.item(i).getElementsByTagName("option");
			for (var j=0; j<options.length; j++)
			{
				options.item(j).onclick = goToPage;
			}
		}
	}
}


/* Fonctions Standards */
function goToPage (event)
{
	document.location.href = this.getAttribute("value");
}

/* Fonctions importées */

// Modified from Bill Dortch's Cookie Functions (hidaho.com) 
// (found in JavaScript Bible)
function setCookie(name,value,days,path,domain,secure) {
  var expires, date;
  if (typeof days == "number") {
    date = new Date();
    date.setTime( date.getTime() + (days*24*60*60*1000) );
		expires = date.toGMTString();
  }
  document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}

// Modified from Jesse Chisholm or Scott Andrew Lepera ?
// (found at both www.dansteinman.com/dynapi/ and www.scottandrew.com/junkyard/js/)
function getCookie(name) {
  var nameq = name + "=";
  var c_ar = document.cookie.split(';');
  for (var i=0; i<c_ar.length; i++) {
    var c = c_ar[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameq) == 0) return unescape( c.substring(nameq.length, c.length) );
  }
  return null;
}

// from Bill Dortch's Cookie Functions (hidaho.com) 
function deleteCookie(name,path,domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}
/* Suppression des tabulation et sauts de ligne d'une chaine */
function escapeString (string) {
	var estring = escape(string);
	for(var i=0; i < estring.length; i++) 
	{
			if(estring.indexOf("%0D%0A") > -1)
				estring = estring.replace("%0D%0A"," ");
			else if(estring.indexOf("%0A") > -1)
				estring = estring.replace("%0A"," ");
			else if(estring.indexOf("%0D") > -1)
				estring = estring.replace("%0D"," ");
			else if(estring.indexOf("%20%20") > -1)
				estring = estring.replace("%20%20","");
	}
	return unescape(estring);
}
