// JavaScript Document
function ir(pPagina)
{
	document.location = pPagina;
}

function borrarListBox(lista)
{
	for (i = lista.options.length;i > 0;i--)
		 lista.options[0] = null;
}

function anadirOpt(lista, nombre, valor, estado)
{
	var optionName = new Option(nombre,valor,estado,estado)
  var length = lista.options.length;
  lista.options[length] = optionName;
}

function quitarOpt(lista, id)
{
	lista.options[id] = null;
}

function mover(pCampo,pDireccion)
{
	var campo = eval(pCampo);
	var pos=campo.selectedIndex;
	if(pos<0) return false;
	if ((pos==0) && (pDireccion==-1)) return false;
	if ((pos==campo.options.length-1) && (pDireccion==1)) return false;
	var valor = campo.options[pos].value;
	var texto = campo.options[pos].text;
	campo.options[pos].value = campo.options[pos+pDireccion].value;
	campo.options[pos].text = campo.options[pos+pDireccion].text;
	campo.options[pos+pDireccion].value = valor;
	campo.options[pos+pDireccion].text = texto;
	campo.selectedIndex = pos+pDireccion;
}	

function anadirItem(pCampoOrigen,pLista)
{
	var campo = eval(pCampoOrigen);
	var lista = eval(pLista);
	var pos = campo.selectedIndex;
	if(pos < 0) pos = 0;
	var valor = campo.options[pos].value;
	var nombre = campo.options[pos].text;
	
	//miramos si el valor ya esta en la lista
	var encontrado = false;
	var i;
	for(i=0;((!encontrado) && (i<lista.options.length));i++)
	{
		encontrado = (lista.options[i].value == valor)
	}
	if(!encontrado)
		anadirOpt(lista, nombre, valor, false)
}

function eliminarItem(pLista)
{
	var lista = eval(pLista);
	var pos = lista.selectedIndex;
	if(pos<0) return;
	quitarOpt(lista,pos)
}

function obtenerItems(pLista,pSeparador)
{
	var res = "";
	var lista = eval(pLista);
	var i;
	for(i=0;i<lista.options.length;i++)
	{
		if(res!="") res += pSeparador;
		res += lista.options[i].value;
	}
	return res;
}

//nombreForm: nom del formulari
//nombreCampo: nom del camp
//txtCampo: text del camp (el text que es mostra en cas d'error)
//tipo: T:text, D:fecha, CK: checkboxs; F:Fichero imagen; 
//opciones: R:Obligatori
//return: true:form ok; false: form ko
function validarForm() 
{ 
	var resultat;
	var arrayArgs = validarForm.arguments;
	var args;
	if(arrayArgs.length == 1)
		args = arrayArgs[0];
	else 
		args = arrayArgs;
	var obligatori=false
	if (((args.length-1) % 4)!=0) resultat = false;
	else
	{
		var i=1;
		var error = "";
		var val;
		var obj = "";
		while(i<args.length)
		{
			var obligatori = (args[i+3].indexOf('R')!=-1);			

			if ((args[i+2] != "FI")||(args[i+2] != "FF")||(args[i+2] != "S"))
				val = eval('document.' + args[0] + '.' + args[i] + '.value');
			res = 0;
			if ((args[i+2] == "T") && obligatori) error += comprovarText(val,args[i+1]);
			if (args[i+2] == "F") error += comprovarFichero(args[0],args[i],args[i+1],obligatori);
			if (args[i+2] == "FCK") error += comprovarTextFCKEditor(args[0],args[i],args[i+1],obligatori);
			if (args[i+2] == "N") error += comprovarNumero(val,args[i+1],obligatori);
			if (args[i+2] == "E") error += comprovarEmail(val,args[i+1],obligatori);
			if (args[i+2] == "D") error += comprovarFecha(args[0],args[i],args[i+1],args[i+3]);
			if (args[i+2] == "S") error += comprovarSelect(args[0],args[i],args[i+1],args[i+3]);
			if (args[i+2] == "FI") error += comprovarExtensionJPEG(args[0],args[i],args[i],args[i+1],obligatori);
			
			i=i+4;
		}
		if(error!="")
		{
		 alert(textoInicioFrase
			+ error
			+ textoFinalFrase);
		}
		resultat = (error=="");
	}
	return resultat;
}



function comprovarNumero(pNumero,ptextoCampo, pObligatori)
{
	var error="";
	if ((pNumero == "") && pObligatori) return(textoObligatorio.replace("#nombre#", ptextoCampo));
	if (pNumero != "")
	{
		if (isNaN(pNumero)) return(textoIncorrecto.replace("#nombre#", ptextoCampo));	
	}
	return error;
}

function comprovarText(pText, ptextoCampo)
{
	if (pText == "")  return(textoObligatorio.replace("#nombre#", ptextoCampo));
	else	return "";
}



function comprovarEmail(pEmail, ptextoCampo, pObligatori)
{
	var error = "";
	if ((pEmail =="") && (pObligatori))
		return(textoObligatorio.replace("#nombre#", ptextoCampo));
	if (pEmail !="")
	{ 
  var arroba = pEmail.indexOf('@');
  var punt = pEmail.indexOf('.',arroba);
  if ((arroba<1) || (punt<1) || (arroba==(pEmail.length-1)) || (punt==(pEmail.length-1)) || (punt<arroba))
		return(textoIncorrecto.replace("#nombre#", ptextoCampo));	
	}	
	return error;
}

function comprovarFichero(pNomForm, pCampo, ptextoCampo, pObligatorio)
{
	
	if(pObligatorio)
	{
		var campo = eval('document.' + pNomForm + '.' + pCampo);
		if(campo.value=="")
		{
			campo = eval('document.' + pNomForm + '.' + pCampo + "_old");
			if(campo.value=="")
				return(textoObligatorio.replace("#nombre#", ptextoCampo));
		}
	}
	return "";
}

function comprovarTextFCKEditor(pNomForm, pCampo, ptextoCampo, pObligatorio)
{
	
	if(pObligatorio)
	{
		var api=FCKeditorAPI.GetInstance(pCampo);
		var campo = api.GetHTML();
		if(campo=="")
			return(textoObligatorio.replace("#nombre#", ptextoCampo));
	}
	return "";
}

function comprovarFecha(pNomForm, pCampo, ptextoCampo, pObligatorio)
{
	var campo = eval('document.' + pNomForm + '.' + pCampo);

	if((pObligatorio.indexOf('R')!=-1)&& (campo.value==""))
		return (textoObligatorio.replace("#nombre#", ptextoCampo));

	if(campo.value!="")
	{
		var arrayFecha = campo.value.split("/");
		var textocampos = ptextoCampo;
	
		if(((pObligatorio.indexOf('R')!=-1)&&arrayFecha.length!=3))
			return (textoIncorrecto.replace("#nombre#", ptextoCampo));
		if(arrayFecha.length!=3)
			return (textoIncorrecto.replace("#nombre#", ptextoCampo));
		var campoDia = arrayFecha[0];
		var campoMes = arrayFecha[1];
		var campoAnyo = arrayFecha[2];

		//if(campoDia.length>=2) return (textoIncorrecto.replace("#nombre#", ptextoCampo));
		//if(campoMes.length>=2) return (textoIncorrecto.replace("#nombre#", ptextoCampo));
		if(campoAnyo.length!=4) return (textoIncorrecto.replace("#nombre#", ptextoCampo));
		var dia = -1;
		if(campoDia.charAt(0)=="0") campoDia = campoDia.charAt(1);
		if(isNaN(campoDia)) return (textoIncorrecto.replace("#nombre#", ptextoCampo));
		else dia = parseInt(campoDia);

		if(campoMes.charAt(0)=="0") campoMes = campoMes.charAt(1);
		if(isNaN(campoMes)) return (textoIncorrecto.replace("#nombre#", ptextoCampo));
		else mes = parseInt(campoMes)-1;

		if(isNaN(campoAnyo)) return (textoIncorrecto.replace("#nombre#", ptextoCampo));
		else anyo = parseInt(campoAnyo);
		
		var numDias = diasMes(mes, anyo)
		if(dia>numDias)
		 return (textoIncorrecto.replace("#nombre#", ptextoCampo));
	}
	return "";
}

function esBisiesto(pAnyo) { 
return (((pAnyo % 4 == 0) && (pAnyo % 100 != 0)) || (pAnyo % 400 == 0)) ? 1 : 0;
}

function diasMes(pMes, pAnyo)
{
	if (pMes==1)
	{
	 if (!esBisiesto(pAnyo)) return 28;
	 else return 29;
	}
	else
	{
		if ((pMes==0) || (pMes==2) || (pMes==4) || (pMes==6) || (pMes==7) || (pMes==9) || (pMes==11)) return 31
		else return 30;
	}
}

function comprovarSelect(pNomForm,pNomCamp,ptextoCampo,pValorDef)
{
 	var campo = eval('document.' + pNomForm + '.' + pNomCamp);
 	var pos = campo.selectedIndex;
 	if(pos<0) 
 	{
 		return (textoObligatorio.replace("#nombre#", ptextoCampo));
 	}
 	if(campo.options[pos].value==pValorDef)
 	{
 		return (textoObligatorio.replace("#nombre#", ptextoCampo));
 	}
	else
	 return "";
}

function comprovarExtensionJPEG(pForm, pCampo, pCampoFichero, ptextoCampo, pObligatori)
{
	var error="";
	var fichero = eval("document."+pForm+"."+pCampo+".value");
	if ((fichero == "") && pObligatori) 
		return(textoObligatorio.replace("#nombre#",ptextoCampo));

	if (fichero != "")
	{
		var fAux = fichero.toLowerCase();
		var pos= fAux.lastIndexOf (".jpg");
		if(pos!=fAux.length-4)
		{
			pos= fAux.lastIndexOf (".jpeg");
			if(pos!=fAux.length-4)
			{
				return(txtFicheroJPG.replace("#nombre#",ptextoCampo));
			}
		}
	}
	return error;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
