/*
 * <p>Title: Style Management</p>
 * <p>Description: JavaScript for css and font-size management based on cookies. Tested on Win (IE, Moz, Opera) and Mac (Safari)</p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: http://www.mac4.it</p>
 * @author m.casati@mac4.it
 * @version 1.1
 */
  
/**************************************************************************\
	STRING PROTOTYPE
\**************************************************************************/

function replaceText(pattern, substitute)
{
	return this.split(pattern).join(substitute);
}
String.prototype.replaceText = replaceText;
function trim()
{
	var newstr = this + "";
	newstr = newstr.lTrim();
	newstr = newstr.rTrim();
	return newstr;
}
String.prototype.trim = trim;
function lTrim()
{
	var newstr = this + "";
	while(newstr.charAt(0) == " ") 
		newstr = newstr.substring(1, newstr.length);	
	return newstr;
}
String.prototype.lTrim = lTrim;
function rTrim()
{
	var newstr = this + "";
	while(newstr.charAt(newstr.length - 1) == " ") 
		newstr = newstr.substring(0, newstr.length - 1);	
	return newstr;
}
String.prototype.rTrim = rTrim;

/**************************************************************************\
	COOKIES
\**************************************************************************/
function setCookie(key, value, expirationdate)
{
	var c = key + "=" + escape(value) + ";";
	c += "path=/;";
	if(expirationdate)
		c += "expires=" + expirationdate.toUTCString() + ";";
	document.cookie = c;
}
function getCookieList()
{
	var cl = document.cookie.split(";");
	var c = new Array();
	for(var i = 0; i < cl.length; i++)
	{
		var a = cl[i].split("=");
		if(a.length == 2)
			c[a[0].trim()] = escape(a[1].trim());
	}
	return c;
}
function getCookie(key)
{
	return getCookieList()[key];
}

/**************************************************************************\
	CSS
\**************************************************************************/
var COOKIE_CSS_KEY = "style_schermo";
var CSS_LIST = 
{
	"default"	    : "schermo.css",
	"grande"		: "schermo.css",
	"solotesto"	    : "schermo2.css"



};var DEFAULT_CSS = "default";
function setCSS(css)
{
	setCookie(COOKIE_CSS_KEY, css, getCookieExpirationDate());
	document.location.reload();
}
function initCSS()
{
	if(!document.getElementsByTagName)
		return;
	var css = getCookie(COOKIE_CSS_KEY);
	if(css)
	{
		var links = document.getElementsByTagName("link");
		for(var i = 0; i < links.length; i++)
		{
			if(links[i].media == "screen" && links[i].title == DEFAULT_CSS && CSS_LIST[css])
			links[i].href = CSS_LIST[css];
		}	
	}
}

/**************************************************************************\
	TEXT SIZE
\**************************************************************************/
var COOKIE_TEXT_SIZE_KEY = "textsize";
var TEXT_SIZE_LIST = 
{
	"m"				: "100%",
		"t"				: "130%",
	"l"				: "115%"
};
var DEFAULT_TEXT_SIZE = "m";

function getkey(e)
{
	if (window.event)
   		return window.event.keyCode;
	else if (e)
   		return e.keyCode;
	else
   		return null;
}

function setTextSize(s)
{
	setCookie(COOKIE_TEXT_SIZE_KEY, s, getCookieExpirationDate());
	document.location.reload();
}

function initTextSize()
{
	if(!document.getElementsByTagName)
		return;
	var cs = getCookie(COOKIE_TEXT_SIZE_KEY);
	s = (cs) ? cs : DEFAULT_TEXT_SIZE;
	document.getElementsByTagName("html")[0].style.fontSize = TEXT_SIZE_LIST[s];
}

/**************************************************************************\
	COMMONS
\**************************************************************************/
function getCookieExpirationDate()
{
	var dt = new Date();
	dt.setFullYear(dt.getFullYear() + 1);	// cookie expires after 1 year
	return dt;
}

/**************************************************************************\
	EVENT HANDLER
\**************************************************************************/
function scriptError(msg, url, line)
{
	//window.status = "ERROR: " + msg + " @ line " + line;
	return true;
}
window.onerror = scriptError;

function initPage(e)
{
	initCSS();
	initTextSize();
}
if(navigator.platform.toLowerCase().indexOf("mac") != -1)	// MAC OS: use event handler
	window.onload = initPage;
else		// NOT MAC OS (Win, Unix, Solaris, ...): call function directly to prevent page reload effect
	initPage();
