// 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 args = validarForm.arguments;
	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] != "S")&&(args[i+2] != "D")&&(args[i+2] != "CB")&&(args[i+2] != "SMUL"))
				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] == "AR") && obligatori) error += comprovarArticulo(val,args[i+1]);
			if (args[i+2] == "CK") error += comprovarCheck(args[0],args[i], txtCheck);
			if (args[i+2] == "F") error += comprovarExtension(args[0],args[i],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] == "SMUL") error += comprovarSelectMultiple(args[0],args[i],args[i+1],args[i+3]);
			if (args[i+2] == "CB") error += comprovarCheckBox(args[0], args[i],args[i+1]);
			if (args[i+2] == "SM") error += comprovarSelectMinimo(args[0],args[i],args[i+1],args[i+3]);
			
			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 comprovarArticulo(pText, ptextoCampo)
{
	if (pText == "")  return(txtArticulo);
	else	return "";
}

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

	if (fichero != "")
	{
		var fAux = fichero.toLowerCase();
		var pos= fAux.lastIndexOf (".jpg");
		if(pos!=fAux.length-4)
		{
			var pos= fAux.lastIndexOf (".jpeg");
			if(pos!=fAux.length-5)
				return(txtFichero);	
		}
	}
	return error;
}

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 comprovarSelectMultiple(pNomForm,pNomCamp,ptextoCampo,pValorDef)
{
	var formulario = eval('document.' + pNomForm);
	var i;
	var campo;
	var encontrado = false;
	for(i=0;i<formulario.elements.length;i++)
	{
		if(formulario.elements[i].name==pNomCamp)
		{
			campo = formulario.elements[i];
			encontrado = true;
		}
	}
	if(encontrado)
	{
		for(i=0;i<campo.options.length;i++)
		{
			if(campo.options[i].selected)
				return "";
		}
	}
	return (textoObligatorio.replace("#nombre#", ptextoCampo));
}
function comprovarSelectMinimo(pNomForm,pNomCamp,ptextoCampo,pValorDef)
{
 	var campo = eval('document.' + pNomForm + '.' + pNomCamp);
 	var pos = campo.selectedIndex;
 	if(pos<0) 
 	{
 		return (textoObligatorio.replace("#nombre#", ptextoCampo));
 	}
	 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 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 comprovarCheckBox(pNomForm, pNomCamp, ptextoCampo)
{
	var campo = eval('document.' + pNomForm + '.' + pNomCamp);
	if(campo.checked==false)
 	 return (textoObligatorio.replace("#nombre#", ptextoCampo))
	else
	 return "";
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

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);
//    	
//    }	
	
	return titular;
}