// 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] != "F")||(args[i+2] != "S")||(args[i+2] != "PSWD")||(args[i+2] != "CB")||(args[i+2] != "FCK"))
				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] == "COD") error += comprovarCodigo(val,args[i+1],obligatori);
			if (args[i+2] == "F") error += comprovarFichero(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] == "DT") error += comprovarFechaTiempo(args[0],args[i],args[i+1],args[i+3]);
			if (args[i+2] == "DP") error += comprovarFechaPosterior(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] == "PSWD") error += comprovarPassword(args[0],args[i],args[i+1]);
			if (args[i+2] == "CB") error += comprovarCheckbox(args[0],args[i],args[i+1],args[i+3]);
			if (args[i+2] == "FCK") error += comprovarTextFCKEditor(args[0],args[i],args[i+1],obligatori);
			
			i=i+4;
		}
		if(error!="")
		{
		 alert(textoInicioFrase
			+ error
			+ textoFinalFrase);
		}
		resultat = (error=="");
	}
	return resultat;
}

//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 validarFormArray(arrayArgs) 
{ 
	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] != "F")||(args[i+2] != "S")||(args[i+2] != "PSWD")||(args[i+2] != "CB")||(args[i+2] != "FCK"))
				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] == "COD") error += comprovarCodigo(val,args[i+1],obligatori);
			if (args[i+2] == "F") error += comprovarFichero(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] == "DT") error += comprovarFechaTiempo(args[0],args[i],args[i+1],args[i+3]);
			if (args[i+2] == "DP") error += comprovarFechaPosterior(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] == "PSWD") error += comprovarPassword(args[0],args[i],args[i+1]);
			if (args[i+2] == "CB") error += comprovarCheckbox(args[0],args[i],args[i+1],args[i+3]);
			if (args[i+2] == "FCK") error += comprovarTextFCKEditor(args[0],args[i],args[i+1],obligatori);

			i=i+4;
		}
		if(error!="")
		{
		 alert(textoInicioFrase
			+ error
			+ textoFinalFrase);
		}
		resultat = (error=="");
	}
	return resultat;
}

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 comprovarNumero(pNumero,ptextoCampo, pObligatori)
{
	var error="";
	if ((pNumero == "") && pObligatori) return(textoObligatorio.replace("#nombre#", ptextoCampo));
	if (pNumero != "")
	{
		if (isNaN(pNumero)) return(txtNumero.replace("#nombre#", ptextoCampo));	
	}
	return error;
}

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

function comprovarCodigo(pText, ptextoCampo, pObligatori)
{
	if ((pText == "") && pObligatori) return(textoObligatorio.replace("#nombre#", ptextoCampo));
	var arrayCodigo = pText.split("/");
	if(arrayCodigo.length!=2)
		return(textoIncorrecto.replace("#nombre#", ptextoCampo));	
	if(isNaN(arrayCodigo[0]))
		return(textoIncorrecto.replace("#nombre#", ptextoCampo));	
	if(isNaN(arrayCodigo[1]))
		return(textoIncorrecto.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 comprovarFechaTiempo(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 arrayInfo = campo.value.split(" ");
		if(((pObligatorio.indexOf('R')!=-1)&&arrayInfo.length!=2))
			return (txtFechaTiempo.replace("#nombre#", ptextoCampo));
		if(arrayInfo.length!=2)
			return (txtFechaTiempo.replace("#nombre#", ptextoCampo));
		
		var tiempo = arrayInfo[1].split(":");
		if(tiempo.length!=2)
			return (txtFechaTiempo.replace("#nombre#", ptextoCampo));
		if(tiempo[0].length!=2)
			return (txtFechaTiempo.replace("#nombre#", ptextoCampo));
		if(isNaN(tiempo[0]))
			return (txtFechaTiempo.replace("#nombre#", ptextoCampo));
		if(tiempo[1].length!=2)
			return (txtFechaTiempo.replace("#nombre#", ptextoCampo));
		if(isNaN(tiempo[1]))
			return (txtFechaTiempo.replace("#nombre#", ptextoCampo));
				
		var arrayFecha = arrayInfo[0].split("/");
		var textocampos = ptextoCampo;
	
		if(((pObligatorio.indexOf('R')!=-1)&&arrayFecha.length!=3))
			return (txtFechaTiempo.replace("#nombre#", ptextoCampo));
		if(arrayFecha.length!=3)
			return (txtFechaTiempo.replace("#nombre#", ptextoCampo));
		var campoDia = arrayFecha[0];
		var campoMes = arrayFecha[1];
		var campoAnyo = arrayFecha[2];

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

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

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

function comprovarFechaPosterior(pNomForm, pCampo, ptextoCampo, pcampoFechaInicial)
{
	var resp = "";
	//comprovamos la fecha 
	resp = comprovarFecha(pNomForm, pCampo, ptextoCampo, "R");
	
	if(resp!="") return resp;
	
	if(pcampoFechaInicial!="")
		resp = comprovarFecha(pNomForm, pcampoFechaInicial, ptextoCampo, "R");
	
	if(resp!="") return "";
	
	//obtenemos la fecha
	var campo = eval('document.' + pNomForm + '.' + pCampo);
	var arrayFecha = campo.value.split("/");
	var miFecha = new Date(arrayFecha[2],arrayFecha[1]-1,arrayFecha[0]);
	
	//obtenemos la fecha inicial
	if(pcampoFechaInicial=="")
		fechaInicial = new Date();
	else
	{
		campo = eval('document.' + pNomForm + '.' + pcampoFechaInicial);
		//alert(campo.value);
		arrayFecha = campo.value.split("/");
		fechaInicial = new Date(arrayFecha[2],arrayFecha[1]-1,arrayFecha[0]);
	}
	

	if(miFecha<fechaInicial)
		return (textoIncorrecto.replace("#nombre#", ptextoCampo));
	else
    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 if ((pMes==3) || (pMes==5)  || (pMes==8) || (pMes==10) ) return 30
		else return -1;
	}
}

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 comprovarCheckbox(pNomForm,pNomCamp,ptextoCampo,pValorDef)
{
 	var campo = eval('document.' + pNomForm + '.' + pNomCamp);
 	if(!campo.checked)
 		return (textoObligatorio.replace("#nombre#", ptextoCampo));
	
	return "";
}




function comprovarPassword(pNomForm,pNomCamp,ptextoCampo)
{
 	var campo = eval('document.' + pNomForm + '.' + pNomCamp);
 	var campoConf = eval('document.' + pNomForm + '.' + pNomCamp + "_conf");
 	
 	if(campo.value=="")
 		return (textoObligatorio.replace("#nombre#", ptextoCampo));
 	
 	if(campo.value!=campoConf.value)
 		return txtPswd;
	
	return "";
}

// this function returns true if the passed date is special
function isBeforeToday(year, month, day) {
	miFecha = new Date(year,month,day)
	hoy = new Date();
	
	if(miFecha<hoy)
		return true;
	else
    return false;
}

function trim(str)
{
	return str.replace(/^\s*|\s*$/g,"");
}

function normalizar(titular, eliminarPuntuacion) 
{
	letras = new Array();
	
	letras["á"] ="a";	letras["à"] ="a";	letras["ä"] ="a";	letras["â"] ="a";
	letras["é"] ="e";	letras["è"] ="e";	letras["ë"] ="e";	letras["ê"] ="e";
	letras["í"] ="i";	letras["ì"] ="i";	letras["ï"] ="i";	letras["î"] ="i";
	letras["ó"] ="o";	letras["ò"] ="o";	letras["ö"] ="o";	letras["ô"] ="o";
	letras["ú"] ="u";	letras["ù"] ="u";	letras["ü"] ="u";	letras["û"] ="u";
	letras["ç"] ="c";	letras["ñ"] ="n";	
	letras["Á"] ="A";	letras["À"] ="A";	letras["Ä"] ="A";	letras["Â"] ="A";
	letras["É"] ="E";	letras["È"] ="E";	letras["Ë"] ="E";	letras["Ê"] ="E";
	letras["Í"] ="I";	letras["Ì"] ="I";	letras["Ï"] ="I";	letras["Î"] ="I";
	letras["Ó"] ="O";	letras["Ò"] ="O";	letras["Ö"] ="O";	letras["Ô"] ="O";
	letras["Ú"] ="U";	letras["Ù"] ="U";	letras["Ü"] ="U";	letras["Û"] ="U";
	letras["Ç"] ="C";	letras["Ñ"] ="N";
	
	puntuacion = new Array();
	puntuacion['"']="";
	puntuacion["'"]="";
	puntuacion["’"] = ""; puntuacion["´"] = ""; puntuacion["`"] = ""
	puntuacion["%"] = ""; puntuacion["?"] = ""; puntuacion["¿"] = ""
	puntuacion["''"] = ""; puntuacion["."] = ""
	puntuacion["/"] = ""; puntuacion["+"] = ""; puntuacion["*"] = ""
	puntuacion["!"] = ""; puntuacion["¡"] = ""; puntuacion["; puntuacion["] = ""
	puntuacion[";"] = ""; puntuacion[":"] = ""; puntuacion["("] = ""; puntuacion[")"] = ""; puntuacion["["] = ""; puntuacion["]"] = ""
	puntuacion["@"] = ""; puntuacion["#"] = ""; puntuacion['$'] = ""; puntuacion["&"] = ""; puntuacion["="] = ""; puntuacion["|"] = ""
	puntuacion["ª"] = ""; puntuacion["º"] = ""
	puntuacion['\\'] = "";
	puntuacion[' '] = "-";
	
	for(clave in letras)
	{
		valor = letras[clave];
		titular = titular.replace(clave, valor);
		if(eliminarPuntuacion==true)
    {
			for(clavePuntuacion in puntuacion)
			{
				valorPuntuacion = puntuacion[clavePuntuacion];
	    	titular = titular.replace(clavePuntuacion, valorPuntuacion);
	    }
    	
    }	
	}
//	foreach (letras as clave => valor)
//    	$titular = str_replace($clave, $valor, $titular);
//    if($eliminarPuntuacion)	
//    {
//		foreach ($puntuacion as $clave => $valor)
//	    	$titular = str_replace($clave, $valor, $titular);
//    	
//    }	
	titular = trim(titular);
	return titular.toLowerCase();
}