var ultimMenu = '';
var ultimDivAjax = null;
var ultimDivAjaxContingutAnterior = '';

function componentAjax(url) {
	if (window.XMLHttpRequest) {
		ajax = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		ajax = new ActiveXObject("Microsoft.XMLHTTP");
	}
	if(ajax == null) {
		alert("El teu explorador no suporta XmlHttpRequest");
		return;
	} else {
		ajax.onreadystatechange = rebentDades;
		ajax.open("GET", url, true);
		carregant();
		ajax.send(null);
	}
}

function accioAjax() {
	if (document.getElementById('seleccio').value != ',' && document.getElementById('seleccio').value != '') {
		var url = "servlet/realitzarAccio?";
		url += "tip=" + document.getElementById('selAccio').value;
		url += "&seleccio=" + document.getElementById('seleccio').value;
		ultimDivAjax = document.getElementById('divContingutAjax');
		componentAjax(url);
	}
}

function canviDesplegable(obj, cmp, ref,control) {
	var url = "servlet/canviDesplegable?";
	url += "tip=loc";
	url += "&obj=" + document.getElementById('nomFormulari').value;
	url += "&comp=" + cmp;
	url += "&ref=" + ref;
	url += "&val=" + encodeURIComponent(obj.value);
	ultimComponentCanviat = control;
	ultimDivAjax = document.getElementById('div'+cmp);
	ultimDivAjaxContingutAnterior = document.getElementById('div'+cmp).innerHTML;
	ultimDivAjax.innerHTML = '<div style=\"width: '+ ultimDivAjax.offsetWidth +'px; height: '+ ultimDivAjax.offsetHeight +'px; display: table-cell; text-align: center; vertical-align: middle;\"><img width=\"25\" height=\"25\" src="img/carregant.gif" /></div>';
	componentAjax(url);
}

function mostrarOpac() {
	if (document.getElementById('seleccio').value != ',' && document.getElementById('seleccio').value != '') {
		document.getElementById('divOpac').style.display = 'block';
		document.getElementById('divContingutOpac').style.display = 'block';
		document.getElementById('divContingutAjax').innerHTML = "<img src=\"img/carregant.gif\" />";
	}
}

function ocultarOpac() {
	document.getElementById('divOpac').style.display = 'none';
	document.getElementById('divContingutOpac').style.display = 'none';
}

function rebentDades() {
	if(ajax.readyState==1){
		// Carregant
    } else if(ajax.readyState==4){
        // A carregat
       	if(ajax.status==200) {
        	// Tot OK
			var resposta = ajax.responseText; 
			comand = resposta.substring(0,10);
			if (comand == "<#!DAIC!#>") {
				document.getElementById("divAmpliacioInfo").innerHTML = resposta.substring(10, resposta.length);
			} else if ("<#!DAII!#>") {
				document.getElementById('divAmpliacioInfo').innerHTML = "<img src=\"img/carregant.gif\" />";
				document.getElementById('divAmpliacioInfo').style.display = 'none';
			} else if (comand == "<#!ASEC!#>") {
				try {eval(resposta.substring(10, resposta.length));} catch(e) {}
			} else if (comand == "<#!AFCD!#>") {
				var divC = resposta.substring(11, resposta.indexOf('>', 11));
				document.getElementById(divC).innerHTML = resposta.substring(resposta.indexOf('>', 11) + 1);
				executar(document.getElementById(divC));
			} else if (comand == "<#!AMCD!#>") {
				var divC = resposta.substring(11, resposta.indexOf('>', 11));
				document.getElementById(divC).innerHTML = resposta.substring(resposta.indexOf('>', 11) + 1);
				document.getElementById(divC).style.display = 'block';
				executar(document.getElementById(divC));
			} else {
				ultimDivAjax.innerHTML = ajax.responseText;
				document.getElementById(ultimComponentCanviat).focus();
				document.getElementById("contingutAssistent").innerHTML = resposta.substring(10, resposta.length);
			}
			carregat();
        } else if(ajax.status==404){
			// No existeix
			ultimDivAjax.innerHTML = "404 - Error when communicating with the server. Try it again.";
			carregat();
        } else{
            // Altres
            //alert("Error:" + ajax.status);
			ultimDivAjax.innerHTML = ajax.status + " - Error when communicating with the server. Try it again.";
			carregat();
        }
    }
}

function obrirMenu(n){
	if (document.getElementById('ultimMenu').value != '') {
		document.getElementById('divmenu' + document.getElementById("ultimMenu").value).style.display = 'none';
		document.getElementById('div' + document.getElementById("ultimMenu").value).style.fontWeight = 'normal';
		document.getElementById('div' + document.getElementById("ultimMenu").value).style.color = 'black';
	}
	document.getElementById("divmenu"+n).style.display = '';
	document.getElementById('divSubMenu').style.display = '';
	document.getElementById('div'+n).style.fontWeight = 'bold';

	document.getElementById('div'+n).style.color = 'white';
	if (ultimMenu != '') document.getElementById('div'+ultimMenu).style.fontWeight = 'normal';
	if (ultimMenu != '') document.getElementById('div'+ultimMenu).style.color = 'black';
	document.getElementById("ultimMenu").value = n;
	ultimMenu = n;
}

function llistatSeleccionar(control, id) {
	if (control.checked == true || control.checked == 'true') {
		if (document.getElementById("seleccio"+control.id).value.indexOf(","+ id + ",") == -1) {
			document.getElementById("seleccio"+control.id).value += id+',';
		}
	} 
	else {
		if (document.getElementById("seleccio"+control.id).value.indexOf("," + id + ",") > -1) {
			inici = document.getElementById("seleccio"+control.id).value.indexOf("," + id + ",");
			valor = document.getElementById("seleccio"+control.id).value.substring(0,inici+1);
			valor += document.getElementById("seleccio"+control.id).value.substring(inici + 1 + id.length + 1);
			document.getElementById("seleccio"+control.id).value = valor;
		}
	}
}

function llistatSeleccionar(control, id, nomllistat) {
	if (control.checked == true || control.checked == 'true') {
		if (document.getElementById("seleccio"+nomllistat).value.indexOf(","+ id + ",") == -1) {
			document.getElementById("seleccio"+nomllistat).value += id+',';
		}
	} 
	else {
		if (document.getElementById("seleccio"+nomllistat).value.indexOf("," + id + ",") > -1) {
			inici = document.getElementById("seleccio"+nomllistat).value.indexOf("," + id + ",");
			valor = document.getElementById("seleccio"+nomllistat).value.substring(0,inici+1);
			valor += document.getElementById("seleccio"+nomllistat).value.substring(inici + 1 + id.length + 1);
			document.getElementById("seleccio"+nomllistat).value = valor;
		}
	}
}

function comprovar(control,parametres) {
	var p = parametres.split(',');
	var error = false;
	for (i = 0 ; i < p.length ; i++) {
		if (error == false) {
			switch (p[i]) {
				case "requerit":
					if (control.value == "" || control.value == " ") {
						document.getElementById('error' + control.id).innerHTML = "*";
						document.getElementById('error' + control.id).style.display = 'inline';
						error = true;
					}
					break;
				case "numero":
					var regex = new RegExp('/^[0-9]+$/');
					if (!regex.test(control.value)) {
						document.getElementById('error' + control.id).innerHTML = "*";
						document.getElementById('error' + control.id).style.display = 'inline';
						error = true;
					}
				break;
				case "decimal":
					control.value = control.value.replace(",",".");
					control.value = control.value.replace("'",".");
					var regex = new RegExp('/^[0-9]?[\.]?[0-9]+$/');
					if (!regex.test(control.value)) {
						document.getElementById('error' + control.id).innerHTML = "*";
						document.getElementById('error' + control.id).style.display = 'inline';
						error = true;
					}
				break;
				case "nomesLletres":
				break;
				case "senseNumeros":
				break;
				case "majusculesPrimera":
					var valor = control.value;
				break;
				case "senseEspais":
					var regex = new RegExp('/^\t$/');
					if (!regex.test(control.value)) {
						document.getElementById('error' + control.id).innerHTML = "*";
						document.getElementById('error' + control.id).style.display = 'inline';
						error = true;
					}
				break;
				case "senseDecimals":
				break;
				case "telefon":
				break;
				case "eliminarEspais":
					control.value = control.value.split(' ').join('');
				break;
				case "eliminarGuions":
					control.value = control.value.split('-').join('');
				break;
			}
		}
		if (error == false) {
			document.getElementById('error' + control.id).innerHTML = '';
			document.getElementById('error' + control.id).style.display = 'none';
		}	
	}
	
	// No pot estar en blanc
	// Ha de ser número
	// Majúscules la primera lletra
	// Majúscules la primera lletra després de cada espai
	// No pot tenir espais
	// No pot tenir decimals
	// Ha de ser una data
	// 
}

function pujarImatgeAlumne() {
	document.getElementById('frameUpload').style.display = 'none';
	document.getElementById('imgAlumne').src = document.getElementById('imgAlumne').src;
	document.getElementById('imgAlumne').style.display = '';
	return true;
}

function mostrarAjuda(control, text) {
	aj = document.getElementById('divAjuda');
	te = document.getElementById('divTextAjuda');
	aj.style.top = getRealPos(control, 'top') + 'px';
	aj.style.left = ((getRealPos(control, 'left') + control.offsetWidth) + 2) +'px';
	te.innerHTML = text;
	aj.style.display = 'block';
}

function ocultarAjuda() {
	document.getElementById('divAjuda').style.display = 'none';
}

function getAbsPos(control, tl) {
	var val = 0;
	var suma = "V: ";
	while (control.nodeName != "DIV") {
		val += (tl == 'top') ? parseInt(control.offsetTop) : parseInt(control.offsetLeft);
		control = control.parentNode;
	}
	return val;
}

function getRealPos(ele, tl){
	(tl == 'left') ? pos = ele.offsetLeft : pos = ele.offsetTop;
	tempEle = ele.offsetParent;
	while (tempEle != null) {
		pos += (tl == 'left') ? tempEle.offsetLeft : tempEle.offsetTop;
		tempEle = tempEle.offsetParent;
	}
	return pos;
}

function parametresLlistatProfessors(url) {
	var param = url;
	//param += '?usuari='+document.getElementById('usuari'+linia).checked;
	param += '&telefon='+document.getElementById('telefon').checked;
	param += '&mobil='+document.getElementById('mobil').checked;
	param += '&email='+document.getElementById('email').checked;
	param += '&dataAlta='+document.getElementById('dataAlta').checked;
	param += '&dataNaixement='+document.getElementById('dataNaixement').checked;
	param += '&anyEscolar='+document.getElementById('anyEscolar').value;
	return param;
}

function parametresLlistatAlumnes(url) {
	var param = url;
	param += '&telefon='+document.getElementById('telefon').checked;
	param += '&poblacio='+document.getElementById('poblacio').checked;
	param += '&email='+document.getElementById('email').checked;
	param += '&dataNaixement='+document.getElementById('dataNaixement').checked;
	param += '&anyEscolar='+document.getElementById('anyEscolar').value;
	return param;
}

function carregant() {
	var control = document.getElementById('contingutAssistent');
	document.getElementById('divOpac').style.height = control.offsetHeight + 'px';
	document.getElementById('divOpac').style.width = control.offsetWidth + 'px';
	document.getElementById('divOpac').style.top = getRealPos(control,'top') + 'px';
	document.getElementById('divOpac').style.left = (getRealPos(control,'left')) + 'px';
	document.getElementById('divOpac').style.display = 'block';
}

function carregat() {
	document.getElementById('divOpac').style.display = 'none';
}

function ampliarInformacio(tipus, id) {
	var url = "servlet/ampliarInformacio?";
	url += "tipus=" + tipus;
	url += "&id=" + id;
	componentAjaxAssistent(url);
}

function displayCol(tbl,col, m){
	fila=document.getElementById(tbl).getElementsByTagName('tr');
	for (i=0;i<fila.length;i++)
			fila[i].getElementsByTagName('td')[col].style.display= m;
}

function mostrarDiv(d,t){
	if (d.mostrant != true) {
		d.mostrant = true;
		d.ocultar = false;
		$(d).css({ left: getRealPos(t, 'left') + 'px'});
		$(d).slideToggle('normal',function() { d.mostrant = false; });
		d.onmouseout = function(){
			d.ocultar = false;
			ocultarDiv(d.id);
			d.ocultar = true;
		};
		d.onmouseover = function(){
			d.ocultar = false;
		};
	}
}

function mostrantDiv(dv,t) {
	var c = false;
	d = document.getElementById(dv);
	if (d.offsetWidth < d.widthInicial) {
		d.style.width = (d.offsetWidth + 1) + 'px';
		c = true;
	}
	if (d.offsetHeight < d.heightInicial) {
		d.style.height = (d.offsetHeight + 1) + 'px';
		c = true;
	}
	if (c) 
		setTimeout("mostrantDiv('" + d.id + "'," + t + ");", t);
	else {
		d.mostrant = false;
		ocultarDiv(dv,3000);
	}
}

function ocultarDiv(dv,t) {
	if (dv.ocultar == false) {
		dv.ocultar = true;
		$(document.getElementById(dv)).slideToggle('fast', function(){
			dv.ocultar = false
		});
	}
	/**
	var t;
	d = document.getElementById(dv);
	if (d.ocultar == true) d.style.display = 'none';
	else t = setTimeout("ocultarDiv('"+d.id+"',"+t+");",t);
	**/
}