// Gestion de select
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 hacerTrim(texto)
{
	while ((texto.length>=0) && (texto.charAt(0)==" "))
		texto = texto.substring(1);
	while ((texto.length>=0) && (texto.charAt(texto.length-1)==" "))
		texto = texto.substring(0, texto.length-1);
	return texto;
}

// Gestion ayuda de campo
function ayudaCampo(pLink)
{
	var ancho = (document.all)?top.document.body.clientWidth:window.innerWidth;
//	var ancho = 760;
	var alto = (document.all)?top.document.body.clientHeight:top.window.innerHeight;
	top.ifContAyuda.ifAyudaCampo.location = pLink;

	top.document.getElementById("cAyudaCampo").style.left = Math.round((ancho - top.document.getElementById("cAyudaCampo").offsetWidth)/2);
	var posY = Math.round((alto - top.document.getElementById("cAyudaCampo").offsetHeight)/2);
	if(posY<0) posY = 0;
	top.document.getElementById("cAyudaCampo").style.top = posY;
	top.document.getElementById("cAyudaCampo").style.visibility = "visible";
	top.document.getElementById("cAyudaCampo").style.zIndex = 10000;
}
function cerrarAyuda()
{
	top.document.getElementById("cAyudaCampo").style.visibility = "hidden";
	top.document.getElementById("cAyudaCampo").style.left = "0px";
	top.document.getElementById("cAyudaCampo").style.top = "0px";
}


//nombreForm: nom del formulari
//nombreCampo: nom del camp
//txtCampo: text del camp (el text que es mostra en cas d'error)
//tipo: E:Email, S:Select, T:text, P:password, N:numero, F:Fichero, C: Color, CB: Checkbox
//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] != "D") && (args[i+2] != "SF"))
				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] == "D") && obligatori) error += comprovarTextosDependientes(args[0], args[i],args[i+1]);
			if (args[i+2] == "P") error += comprovarPassword(val,args[i+1]);
			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] == "S") error += comprovarSelect(args[0],args[i],args[i+1]);
			if (args[i+2] == "SF") error += comprovarSelectFrase(args[0],args[i],args[i+1]);
			if (args[i+2] == "JPG") error += comprovarJPG(val,args[i],args[i+1],obligatori);
			if (args[i+2] == "PDF") error += comprovarPDF(val,args[i+1],obligatori);
			if (args[i+2] == "F") error += comprovarFichero(val,args[i+1],args[i+3]);
			if (args[i+2] == "C") error += comprovarColor(val,args[i+1],obligatori);
			if (args[i+2] == "CB") error += comprovarCheckBox(args[0], args[i],args[i+1]);
			i=i+4;
		}
		if(error!="")
		{
		 alert(textoInicioFrase
			+ error
			+ textoFinalFrase);
		}
		resultat = (error=="");
	}
	return resultat;
}

function comprovarEmail(pEmail, ptextoCampo, pObligatori)
{
	var error = "";
	if ((pEmail =="") && (pObligatori))
		return(textoObligatorio.replace("#nombreCampo#",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("#nombreCampo#",ptextoCampo));	
	}	
	return error;
}

function comprovarNumero(pNumero,ptextoCampo, pObligatori)
{
	var error="";
	if ((pNumero == "") && pObligatori) return(textoObligatorio.replace("#nombreCampo#",ptextoCampo));
	if (pNumero != "")
	{
		if (isNaN(pNumero)) return(textoIncorrecto.replace("#nombreCampo#",ptextoCampo));	
	}
	return error;
}

function comprovarText(pText, ptextoCampo)
{
	if (pText == "")  return(textoObligatorio.replace("#nombreCampo#",ptextoCampo));
	else	return "";
}

function comprovarPassword(pText, ptextoCampo)
{
	if (pText == "")  return(textoObligatorio.replace("#nombreCampo#",ptextoCampo));
	else 
	{
		if (pText.length<4) return(textoCampo + ptextoCampo + textPassword);
		else return "";
	}
}

function comprovarSelect(pNomForm,pNomCamp,ptextoCampo)
{
 	var campo = eval('document.' + pNomForm + '.' + pNomCamp);
 	if (campo.options.length<=0)
 		return (txtCampoValor.replace("#nombreCampo#",ptextoCampo))
	else
	 return "";
}

function comprovarSelectFrase(pNomForm,pNomCamp,ptextoCampo)
{
	var campos = pNomCamp.split("|");
 	var campo = eval('document.' + pNomForm + '.' + campos[0]);
 	if (campo.options.length<=0)
 		return (txtFrase)
 	
 	campo = eval('document.' + pNomForm + '.' + campos[1]);
 	if (campo.options.length<=0)
 		return (txtFrase)

	 return "";
}

function comprovarJPG(pFichero, pCampoFichero, ptextoCampo, pObligatori)
{
	var error="";
	if ((pFichero == "") && pObligatori) 
	{
		if(document.getElementById("div_"+pCampoFichero).innerHTML=="")
			return(textoObligatorio.replace("#nombreCampo#",ptextoCampo));
		else
		{
			if(eval("document.fEdit."+pCampoFichero+"_borrar.value=='S'"))
				return(textoObligatorio.replace("#nombreCampo#",ptextoCampo));
		}
	}
	if (pFichero != "")
	{
		var fAux = pFichero.toLowerCase();
		var pos= fAux.lastIndexOf (".jpg");
		if(pos!=fAux.length-4)
		{	
			pos= fAux.lastIndexOf (".jpeg");
			if(pos!=fAux.length-5)
				return(textoCampo + ptextoCampo + txtJPG);	
		}
	}
	return error;
}


function comprovarFichero(pFichero, ptextoCampo, pTipo)
{
	var error="";

	var tipo = pTipo.split(",");
	obligatorio = (tipo[0] == "R");
	var encontrado = false;
	var i;
	
	if ((pFichero == "") && obligatorio) 
		return(textoObligatorio.replace("#nombreCampo#",ptextoCampo));

	if (pFichero != "")
	{
		var fAux = pFichero.toLowerCase();
		var pos= fAux.lastIndexOf(".");
		if(pos==-1) 
			return txtFicheroExt.replace("#lista#",pTipo.substring(2));
	
		var extension = fAux.substring(pos+1);
		for(i=0;i<tipo.length;i++)
		{
			if(tipo[i].toLowerCase() == extension)
			{
				encontrado = true;
				break;
			}
		}		
		if (!encontrado) 
			return txtFicheroExt.replace("#lista#",pTipo.substring(2));
	}
	return error;
}

function comprovarColor(pColor, ptextoCampo, pObligatori)
{
	if ((pColor == "") && pObligatori) return(textoObligatorio.replace("#nombreCampo#",ptextoCampo));
	if (pColor != "")
	{
		var i;
		var color = pColor.toLowerCase();
		if(color.length != 7)
			return txtColor.replace("#campo#", ptextoCampo);
		if(color.charAt(0) != "#")
			return txtColor.replace("#campo#", ptextoCampo);
		for(i=1;i<color.length;i++)
		{
			if(isNaN(color.charAt(i)))
			{
				if ( (color.charAt(i)<"a") || (color.charAt(i)>"f") ) 
					return txtColor.replace("#campo#", ptextoCampo);
			}			
		}
	}	
	return "";
}

function comprovarCheckBox(pNomForm, pNomCamp, ptextoCampo)
{
	var campo = eval('document.' + pNomForm + '.' + pNomCamp);
	if(campo.checked==false)
 	 return (textoObligatorio.replace("#nombreCampo#",ptextoCampo))
	else
	 return "";
}