/*
 * Grup de funcions que modificaran la mida de les fonts i dels tags que ens intenresi
 * @author ferran
 */

//Creem l'event onDomReady
window.onDomReady = initReady;

// Initializem l'event depenent del navegador que el usuari fa servir
function initReady(fn)
{
	// W3C - navegador compilant
	if(document.addEventListener) 
	{
		document.addEventListener("DOMContentLoaded", fn, false);
	}

	//IE
	else 
	{
		document.onreadystatechange = function(){readyState(fn)}
	}
}

//Funcio a executar per a IE
function readyState(func)
{
	// DOM esta preparat
	if(document.readyState == "interactive" || document.readyState == "complete")
	{
		func();
	}
}

// Executem just despres de carregar el DOM
window.onDomReady(initializeFontSize);

function zoomFontSize(percent) 
{
	// Nomes pedem canviar la mida de les fonts si el que ens donen es un numero -10/0/+10 etc...
	if(typeof(percent) == 'number')
	{
		var currentFontSize = document.body.style.fontSize;

		if(currentFontSize == '' || percent == 0)
		{
			currentFontSize = 80;
		}
		else
		{
			currentFontSize = parseInt(currentFontSize);
		}

		// Calculem la nova mida de les fonts
		currentFontSize = currentFontSize + percent;

                // No permetem una mida de font mes petita del 50% ni mes gran del 150
                if((currentFontSize >50) && (currentFontSize < 150))
                {
                    saveFontSize(currentFontSize + '%');
                }
	}
        
} 

function initializeFontSize() 
{
	var cookies = document.cookie.split(';');
	var size = '';

	for(var i = 0; i < cookies.length; i++)
	{
		/* Escrivim la matriu d'entrada a una varible de coockie i substituim els espais*/
		var cookie = cookies[i].replace(/ /g, "");

		var posOfEqualsSign = cookie.indexOf('=');
	
		if(cookie.substring(0, posOfEqualsSign) == 'fontSize')
		{
			size = cookie.substring(posOfEqualsSign + 1, cookie.length);
			saveFontSize(size);

			break;
		}
	}
}

function saveFontSize(size) 
{
	/* Guardem la mida de les fonts actuals per a poder modificar la mida si la pagina
           es refresca */
	document.cookie = "fontSize=" + String(size) + ";path=/";
	document.body.style.fontSize = String(size);
}


/**
 *
 * Funcions suplementaries per a la redimineso de les lletres i les imatges
 *
 */

var BrowserDetect =
{
    init: function ()
    {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
            || this.searchVersion(navigator.appVersion)
            || "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function (data)
    {
        for (var i=0;i<data.length;i++)
        {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString)
            {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function (dataString)
    {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
    },
    dataBrowser:
    [
        {
            string: navigator.userAgent,
            subString: "Chrome",
            identity: "Chrome"
        },
        {
            string: navigator.userAgent,
            subString: "OmniWeb",
            versionSearch: "OmniWeb/",
            identity: "OmniWeb"
        },
        {
            string: navigator.vendor,
            subString: "Apple",
            identity: "Safari"
        },
        {
            prop: window.opera,
            identity: "Opera"
        },
        {
            string: navigator.vendor,
            subString: "iCab",
            identity: "iCab"
        },
        {
            string: navigator.vendor,
            subString: "KDE",
            identity: "Konqueror"
        },
        {
            string: navigator.userAgent,
            subString: "Firefox",
            identity: "Firefox"
        },
        {
            string: navigator.vendor,
            subString: "Camino",
            identity: "Camino"
        },
        {
            // for newer Netscapes (6+)
            string: navigator.userAgent,
            subString: "Netscape",
            identity: "Netscape"
        },
        {
            string: navigator.userAgent,
            subString: "MSIE",
            identity: "Explorer",
            versionSearch: "MSIE"
        },
        {
            string: navigator.userAgent,
            subString: "Gecko",
            identity: "Mozilla",
            versionSearch: "rv"
        },
        {
            // for older Netscapes (4-)
            string: navigator.userAgent,
            subString: "Mozilla",
            identity: "Netscape",
            versionSearch: "Mozilla"
        }
    ],
    dataOS :
    [
        {
            string: navigator.platform,
            subString: "Win",
            identity: "Windows"
        },
        {
            string: navigator.platform,
            subString: "Mac",
            identity: "Mac"
        },
        {
            string: navigator.platform,
            subString: "Linux",
            identity: "Linux"
        }
    ]

};
 