/* FUNCIONS BÀSIQUES JavaScript
   desembre de 2005, */

// Script per redimensionar el navegador

function Browser() {
  var ua, s, i;
  this.isIE    = false;  
  this.isNS    = false;  
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}

function doNothing(){
return true;
}

function getParam(purl, parametro, defvalue)
{
	var inicio = -1, siguiente = -1, fin = -1;
	var url = purl;
	
	inicio = url.indexOf(parametro);

	if (inicio != -1)
	{
		//Si hem trobat el parametre hem de buscar el seu valor
		inicio = url.indexOf("=", inicio);
		siguiente = url.indexOf("&", inicio);
		fin = (siguiente != -1 ? siguiente : url.length);
		return url.substring(inicio + 1, fin);
	}
	else
		return (defvalue == null ? '' : defvalue);
}

function get_cookie(name_to_get) {
	var cookie_pair;
	var cookie_name;
	var cookie_value;
	var cookie_array = document.cookie.split('; ');
	var cont;
	for (cont = 0; cont < cookie_array.length; cont++) {
		cookie_pair = cookie_array[cont].split('=');
		cookie_name = cookie_pair[0];
		cookie_value = cookie_pair[1];
		if (cookie_name == name_to_get) {return unescape(cookie_value)}
	}
	return null;
}

function set_cookie(name_to_set, value_to_set, expire_time) {
	//expire_time: dies que trigarà en expirar. P. ex. 365
	if (!navigator.cookieEnabled)  return;
	if (CookiePath == '') {
		var inicio = window.location.pathname.lastIndexOf('/');
		CookiePath = window.location.pathname.substr(0, inicio);
	}
	var cad = name_to_set + "=" + escape(value_to_set);
	if (expire_time) {
		var expire_date = new Date();
		var ms_from_now = expire_time * 24 * 60 * 60 * 1000;
		expire_date.setTime(expire_date.getTime() + ms_from_now);
		var cadexp = expire_date.toGMTString();
		cad += '; expires=' + cadexp;
	}
	cad += "; path=" + CookiePath;
	document.cookie = cad
}

// Scripts per ubicar en la pantalla
//----------------------------------------------------------------------------
// Obté la màxima posició per a la coordenada x
//----------------------------------------------------------------------------
function ObtenirMaxX() {
  var maxX;

  if (browser.isNS) {
    maxX = window.scrollX + window.innerWidth;
  }
  if (browser.isIE && browser.version < 6) {
    maxX = document.body.scrollLeft + document.body.clientWidth;
  }
  if (browser.isIE && browser.version >= 6) {
    maxX = document.body.scrollLeft + document.body.clientWidth;
  };
  return maxX
}

//----------------------------------------------------------------------------
// Obté la màxima posició per a la coordenada y
//----------------------------------------------------------------------------
function ObtenirMaxY() {
  var maxY;

  if (browser.isNS) {
    maxY = window.scrollY + window.innerHeight;
  }
  if (browser.isIE && browser.version < 6) {
    maxY = document.body.scrollTop  + document.body.clientHeight;
  }
  if (browser.isIE && browser.version >= 6) {
    maxY = document.body.scrollTop  + document.body.clientHeight;
  };
  return maxY
}

function getPageOffsetLeft(el) {
  var x;
  x = el.offsetLeft;
  if (el.offsetParent != null)
    x += getPageOffsetLeft(el.offsetParent);

  return x;
}

function getPageOffsetTop(el) {
  var y;
  y = el.offsetTop;
  if (el.offsetParent != null)
    y += getPageOffsetTop(el.offsetParent);

  return y;
}
//
//	Retorna elements
//
function gE(e) {
   if (document.layers) return document.layers[e];
   if (document.all) return document.all[e];
   return document.getElementById(e);
}


function FinestraCarregada() {
	if (Precarrega === true) {
		Precarrega = false;
		AmagaPrecarrega();
	}
	if (browser.isNS) {
		var Imatges = document.getElementsByTagName("img");
		for (var i = 0; i < Imatges.length; i++) {
				if (Imatges[i].className == "AltToTitle") {Imatges[i].title = Imatges[i].alt;}
		}	
	}
	for (var j = 0 ; j < FuncionsExecutarInici.length; j++) {
		eval(FuncionsExecutarInici[j]);
	}
	if (ScriptDeclarat("pos_menu.js")) {
		if (IdDivMenu != "") {
			var menu = gE(IdDivMenu);
			if (menu != null) EngegarTimerPosicionarMenu();
		}
	}
}

function ScriptDeclarat(NomScript) {
	var lenNom = NomScript.length;
	var lenSrc = 0;
	var cadNomSrc = "";
	var Declarat = false;
	if (browser.isIE) {var S = document.scripts}
	else {var S = document.getElementsByTagName("script")}
	for (var i = 1 ; i < S.length; i++) {
		lenSrc = S[i].src.length;
		cadNomSrc = S[i].src.substr(lenSrc - lenNom);
		if (NomScript == cadNomSrc) {
			Declarat = true;
			break;
		}
	}
	return Declarat;
}

function EscriureCorreuDominiUB(Usuari, Classe) {
	if (!Usuari) {Usuari = "";}
	else {Usuari = Trim(String(Usuari));}
	if (Usuari != "") {
		if (!Classe) {Classe = "";}
		else {Classe = Trim(String(Classe));}
		if (Classe != "") Classe = ' class="' + Classe + '"';
		var EnllaçCorreu = '<a' + Classe + ' href="mailto:' + Usuari + '@ub.edu">' + Usuari + '@ub.edu</a>';
		document.write(EnllaçCorreu);
	}
}

function ValueInArray(Value, Array) {
	var Resultat = false;
	for (var Clau in Array) {
		if (Value == Array[Clau]) {
			Resultat = true;
			break;
		}
	}
	return Resultat;
}

function KeyInArray(Key, Array) {
	var Resultat = false;
	for (var Clau in Array) {
		if (Key == Clau) {
			Resultat = true;
			break;
		}
	}
	return Resultat;
}

function numKeyInArrayFromKey(Key, Array) {
	var Resultat = false;
	var n = 0;
	for (var Clau in Array) {
		if (Key == Clau) {
			Resultat = n;
			break;
		}
		n++;
	}
	return Resultat;
}

function numKeyInArrayFromValue(Value, Array) {
	var Resultat = false;
	var n = 0;
	for (var Clau in Array) {
		if (Value == Array[Clau]) {
			Resultat = n;
			break;
		}
		n++;
	}
	return Resultat;
}

function keyInArrayFromNumKey(Num, Array) {
	var Resultat = false;
	var n = 0;
	for (var Clau in Array) {
		if (n == Num) {
			Resultat = Clau;
			break;
		}
		n++;
	}
	return Resultat;
}

function ArraySearch(Valor, Array) {
	var Resultat = null;
	for (var Clau in Array) {
		if (Valor == Array[Clau]) {
			Resultat = Clau;
			break;
		}
	}
	return Resultat;
}

function ArrayValuesToString(Arr, sep) {
	var str = "";
	var n = 0;
	for (var Clau in Arr) {
		if (n > 0) str += sep;
		str += Arr[Clau];
		n++;
	}
	return str;
}

function ArrayKeysToString(Arr, sep) {
	var str = "";
	var n = 0;
	for (var Clau in Arr) {
		if (n > 0) str += sep;
		str += Clau;
		n++;
	}
	return str;
}

function ArrayKeysAndValuesToString(Arr, sep, sepKeyValue) {
	var str = "";
	var n = 0;
	for (var Clau in Arr) {
		if (n > 0) str += sep;
		str += Clau + sepKeyValue + Arr[Clau];
		n++;
	}
	return str;
}

function ArrayKeysAndNotEmptyStringValuesToString(Arr, sep, sepKeyValue) {
	var str = "";
	var n = 0;
	for (var Clau in Arr) {
		if (Arr[Clau] != "") {
			if (n > 0) str += sep;
			str += Clau + sepKeyValue + Arr[Clau];
			n++;
		}
	}
	return str;
}

function StringToArray (str, sep) {
	var len = sep.length;
	var ind = str.indexOf(sep);
	var Arr = new Array();
	while (ind>-1) {
		Arr[Arr.length] = str.substring(0, ind);
		str = str.substr(ind + len);
		ind = str.indexOf(sep)
	}
	if (str != "") Arr[Arr.length] = str;
	return Arr;
}

function Trim (Cadena) {
	while (Cadena.substr(0, 1) == ' ') {Cadena = Cadena.substr(1);}
	while (Cadena.substr(Cadena.length - 1) == ' ') {Cadena = Cadena.substring(Cadena.length - 1, 0);}
	return Cadena;
}

function AfegirFuncioExecutarInici (nomFuncio) {
	FuncionsExecutarInici[FuncionsExecutarInici.length] = nomFuncio;
}

var IdDivMenu = "";
var Precarrega = false;
var FuncionsExecutarInici = new Array();
var browser = new Browser();
window.onload=FinestraCarregada;
