/*-------------- Funcions generiques de validació ------------------------------------------------------------

CalculaNIF(opcionError) -> valida el format d'un nif
ValidaNIF(opcionError) -> valida el format d'un nif
validaDecimal(opcionError) -> valida un número decimal
validaNumero(opcionError) -> valida un número enter
validaLetras(opcionError) -> confirma que un texte estigui composat exclusivament per lletres
validaCaracters(opcionError) -> confirma que un texte estigui composat exclusivament per lletres, números, '@' i '.'
validaTelf(opcionError) -> valida el format de un número de telefon
validaCP(opcionError) -> valida el format de un Codi Postal
validaCorreu(opcionError) -> valida el format d'una adreça de correu
ValidarData(opcionError) -> donada una data en format dd/mm/aaaa, indica si es vàlida
TransformarData(opcionError) -> donada una data, la converteix en format dd/mm/aaaa
ValidarObligatori(opcionError) -> indica si un parametre es obligatori
ValidaMes(opcionError) --> Valida que un mes estigui entre 01 i 12
ValidaNomRaoSocial(opcionError) --> Valida que al sol·licitant estigui informada la persona física o la raó social. També valida que al representant estigui informada la persona física
PropagaCorreu() --> Omple automàticament el correu electrònic de la secció 'Vull rebre...'
PropagaSMS() --> Omple automàticament el telèfon mòbil de la secció 'Vull rebre...'
ValidaTelefon1o2(opcionError) --> Valida que al sol·licitant estigui informat el telèfon 1 (casa) o el telèfon 2 (mòbil)


FUNCIONS DEL COAC
-----------------
ValidaArquitecteCOAC(opcionError) --> Comprova que estigui informat el nom o raó social de l'arquitecte
COAC_AfegirLiniaDocVisat() --> Afegeix una nova linia de documentació tècnica visada
MostrarCursorLink() --> Canvia la forma del cursor per una mà
COAC_IniLiniesDocVisat() --> Configura les linies de documentació visada a mostrar
COAC_EliminarLiniaDocVisat --> Elimina la linia de documentació tècnica visada seleccionada
COAC_IniLiniesConfirmacioValidacio --> Mostra el número de linies de documentació visada que correspongui, en funció de les linies que hagi afegit el ciutadà



Opciones de salida de error
----------------------------
opcionError='rojo' 'Texto en rojo
opcionError='mensaje' 'mensaje de error
--------------------------------------------------------------------------------------------------------------*/


/*-------------- Funcions d'exemple ------------------------------------------------------------
recalcularCampos()->Mostra com interactuar amb els camps del formulari
textoEvento()->Mostra com interactuar amb els events
mostrarPopupTextoClick()->Mostra un exemple de funció associada a un tipus de control i a un tipus d'event
mostrarPopupTexto()->Mostra un exemple de funció associada a un tipus de control
CalculaImportNet() -> A partir d'un import i dos percentatges (Iva y descompte) calcula el import net
ValidaPercentatge(opcionError) --> Valida que un string sigui un percentatge (numeric + que estigui entre 0 i 100)


/*-------------- Funcions de l'eTRACC ------------------------------------------------------------
calculaDataFinal() --> A partir de la data d'inici de l'excursió i de la durada en dies, calcula la data de fi
calculaTotalVehicles() --> Calcula el número total de vehicles indicats en una sol·licitud d'accés motoritzat
ValidaDocument(oTipoDocumento, oNumDoc, opcionError) -> valida el format d'un document en funció del seu tipus (dni, nif...)


--------------------------------------------------------------------------------------------------------------*/
// -------------------- CalculaNIF -------------------------------------
//
// Parametre: nif
// Retorna: 
//			false = format incorrecte
//			true = format correcte
//			DNI = Si la lletra es incorrecta es retorna el codi de DNI amb la lletra corregida.
//			DNI = Si el nif no té lletra de control es retorna el DNI amb la lletra afegida.
//		
	
function CalculaNIF(opcionError, oEvent) {
	var dni;
	var lletra;
	var lletra_correcta;
	var bOk;

	var ocampo;
	
  if (NavegadorIE()) ocampo=oEvent.srcElement;
  else ocampo=oEvent.target;

	if (ocampo)
	{	
	    nif=ocampo.value;
    	nif=nif.toUpperCase( );
      bOk=true;
    	if (nif!='')
    	{
      	if (isNaN(nif)) //Conté lletra
      	{
      		if ((nif.length>2)&&(nif.length<10)) 
      		{	
      			dni=nif.substring(0,nif.length-1); 
				if (!isNumber(dni))
						{
							bOk=false;
						}	
				
      			lletra=nif.substring(nif.length-1,nif.length);
      			if (isNaN(dni)) 
      			{
      				ocampo.style.color='Red'; //Si hi ha un caracter en alguna posició que no es la ultima
      			} 
      			else 
      			{	
      				lletra_correcta=quina_lletra(dni); //Es consulta la lletra correcta del DNI
      				if (lletra!=lletra_correcta) 
      				{
      					dni.concat(lletra_correcta);
      					ocampo.value=dni;
      				}    				
      			}
      		}
      		else // Menys de 2 caracters o mes de 10
      		{
      			bOk=false
      		}
      	} 
      	else  //No conté la lletra
      	{
      		if ((nif.length>2)&&(nif.length<10)) 
      		{            	 
              	//SMP 14/04/2008 INI
				 //ocampo.value=nif.concat(quina_lletra(nif));
				 if(nif.length<9) ocampo.value=nif.concat(quina_lletra(nif));
			   else  bOk=false;
			   
			   
			    //SMP 14/04/2008 FIN
              
              }
          
          else 	
           {
            bOk=false;
          }
        }
       }
       devuelveResultado(ocampo,bOk,opcionError);
      }
      
}

// -------------------- validaNIF -------------------------------------
// Comprova que la lletra, en cas de ser editada, es correcta.
//
// Parametre: tipues error
// Retorna: 
//			false = No es correcte.
//			true = Es correcte.
//			

function ValidaNIF(opcionError, oEvent) {
	var dni;
	var lletra;
	var lletra_correcta;
	var bOk;

	var ocampo;

  if (NavegadorIE()) ocampo=oEvent.srcElement;
  else ocampo=oEvent.target;

	if ((ocampo.name=='WTGNUMDOC') || (ocampo.name=='WTXIPSTDO'))
	{
		ocampoTipo=document.getElementById('WTXIPSTDO');
		ocampo=document.getElementById('WTGNUMDOC');
	}
	else 
	{
		ocampoTipo=document.getElementById('WTXIPRTDO');	
		ocampo=document.getElementById('WTXIPRDNI');
	}
	
	if (ocampoTipo.value=='6-NIF')
	{
		if (ocampo)
		{	
		   nif=ocampo.value;
	    	nif=nif.toUpperCase( );
	      bOk=true;
	    	if (nif!='')
	    	{
	      	if (isNaN(nif)) //Conté lletra
	      	{
	      		if ((nif.length>2)&&(nif.length<10)) 
	      		{	
	      			dni=nif.substring(0,nif.length-1); 
	      			lletra=nif.substring(nif.length-1,nif.length);
	      			if (isNaN(dni)) 
	      			{
	      				bOk=false;
	      			} 
	      			else 
	      			{	
	      				lletra_correcta=quina_lletra(dni); //Es consulta la lletra correcta del DNI
	      				if (lletra!=lletra_correcta) 
	      				{
	      					bOk=false;
	      				}    				
	      			}
	      		}
	      		else // Menys de 2 caracters o mes de 10
	      		{
	      			bOk=false;
	      		}
	      	} 
	      	else  //No conté la lletra
	      	{
	      		bOk=false;
	        	}
	       }
	      }			
	}
else //No han triat NIF
	{
		bOk=true;
	}
	devuelveResultado(ocampo,bOk,opcionError);
   
}

// -------------------- validaDecimal -------------------------------------
// Comprova que el format d'un decimal sigui correcte. El separador ha de ser '.'
//
// Parametre: decimal
// Retorna: 
//			false = No es correcte.
//			decimal = decimal correcte.
//			
function validaDecimal(opcionError, oEvent)
{	
  if (NavegadorIE()) ocampo=oEvent.srcElement;
  else ocampo=oEvent.target;

  bOk=true;
  if (ocampo)
  {
  	decimal=ocampo.value;
  	if(decimal.indexOf(',')>=0) bOk=false;
  	if (bOk)
  	{
    	separador=decimal.indexOf('.');
    	if (separador==-1)
    	{   		
    	  if (!(validaNumeroInterno(decimal))) bOk=false;
    	  else	ocampo.value=decimal + ".0";
    		
    	}
      else
      {
        if (separador==0)
      	{
      		partEntera="0"; partDecimal=decimal.substring(separador+1);;
      	}
      	else
      	{
      		if (separador==decimal.length-1)
      		{
      			partEntera=decimal.substring(0,separador); partDecimal="0";			
      		}
      		else
      		{
      			partEntera=decimal.substring(0,separador);
      			partDecimal=decimal.substring(separador+1);
      		}
      	}
      	if (!(validaNumeroInterno(partDecimal))) bOk=false;
      	if (!(validaNumeroInterno(partEntera))) bOk=false;
      	if (bOk)ocampo.value=partEntera + "." + partDecimal;
      }
    }
    devuelveResultado(ocampo,bOk,opcionError);
}
}

// -------------------- validaNumero -------------------------------------
//
// Parametre: cadena
// Retorna: 
//			false = No es numero
//			true = Es un numero
//			

function validaNumero(opcionError, oEvent)
{

  if (NavegadorIE()) ocampo=oEvent.srcElement;
  else ocampo=oEvent.target;

  bOk=true;
  if (ocampo)
  {
    num=ocampo.value;
    bOk=validaNumeroInterno(num);
	  
	  devuelveResultado(ocampo,bOk,opcionError);
	}
	
}




// -------------------- validaLetras -------------------------------------
// Comprova que cadena estigui composat per lletres exclusivament.

function validaLetras(opcionError, oEvent)
{
  if (NavegadorIE()) ocampo=oEvent.srcElement;
  else ocampo=oEvent.target;

  bOk=true;
  if (ocampo)
  {
    cadena=ocampo.value;  
    
  	for(i=0;i<cadena.length;i++){
  		if (((cadena.charAt(i)<'a') || (cadena.charAt(i)>'z')) && 
  			((cadena.charAt(i)<'A') || (cadena.charAt(i)>'Z')) ) bOk=false;
  	}
	devuelveResultado(ocampo,bOk,opcionError);
	}
}

// -------------------- validaCaracters -------------------------------------
// Comprova que cadena estigui composat per lletres o numeros. Permet '.' i '@' per adreces de correu.

function validaCaracters(opcionError, oEvent)
{
  if (NavegadorIE()) ocampo=oEvent.srcElement;
	else ocampo=oEvent.target;

  bOk=true;
  if (ocampo)
  {
    cadena=ocampo.value;  
    if (cadena!='')
    {
    	for(i=0;i<cadena.length;i++){
    		if (((cadena.charAt(i)<'a') || (cadena.charAt(i)>'z')) && 
    			((cadena.charAt(i)<'A') || (cadena.charAt(i)>'Z')) &&
    			((cadena.charAt(i)<'0') || (cadena.charAt(i)>'9')) &&
    			(cadena.charAt(i)!='.') && (cadena.charAt(i)!='@') ) bOk=false;
    	}
    	devuelveResultado(ocampo,bOk,opcionError);
    }
  }
}

// -------------------- validaTelf -------------------------------------
// Valida un número de telefon

function validaTelf(opcionError, oEvent){

   if (NavegadorIE()) ocampo=oEvent.srcElement;
   else ocampo=oEvent.target;

  bOk=true;
  if (ocampo)
  {
    num=ocampo.value;  
    if(num!='')
    {
    	if (num.length!=9)
    	{
    		if ((num.charAt(0)!='0') || (num.charAt(1)!='0'))
    		{
    			bOk=false;
    		}
    		else
    		{
    			bOk=validaNumeroInterno(num);
    		}
    	}
    	else
    	{
    		bOk=validaNumeroInterno(num);
    	}
    	devuelveResultado(ocampo,bOk,opcionError);
    }
  }
}

// -------------------- validaCP -------------------------------------
// Valida un codi postal

function validaCP(opcionError, oEvent)
{
   if (NavegadorIE()) ocampo=oEvent.srcElement;
   else ocampo=oEvent.target;
  
  bOk=true;
  
  if (ocampo)
  {
    num=ocampo.value; 
    if (num!='')
    {
    	if (num.length==5)
    	{
    		bOk=validaNumeroInterno(num);
    	}
    	else
    	{
    		bOk=false;
    	}
      devuelveResultado(ocampo,bOk,opcionError);
  	}
  }
}

// -------------------- validaCorreu -------------------------------------
// Valida una adreça de correu electronic
// Parametre: adreça
// Retorna:
//			false: el format es incorrecte
//			true: format correcte

function validaCorreu(opcionError, oEvent)
{
   if (NavegadorIE()) ocampo=oEvent.srcElement;
   else ocampo=oEvent.target;

  bOk=true;
  
  if (ocampo)
  {
    adr=ocampo.value; 
    if (adr!='')
    {
    // Mirem que tingui una unica arroba i un punt, que estiguin en aquest ordre, 
    // que no començi per @ i que hi hagi caracters despres del punt
    	if ((adr.indexOf('@')>0) && (adr.indexOf('@')<adr.lastIndexOf('.')) && (adr.indexOf('.')!=adr.length-1) && (adr.indexOf('@')==adr.lastIndexOf('@')) && validaCaractersIntern(adr))
    	{
    		bOk=true;
    
    	}else
    	{
    		bOk=false;
    	}
    	devuelveResultado(ocampo,bOk,opcionError);
    }
   }
}






// -------------------- ValidarData -------------------------------------
//
// Parametre: data en format dd/mm/aaaa
// Retorna: 
//			false = format incorrecte o data inexistent
//			true = Data correcta
//			
function ValidarData(opcionError, oEvent){
  var bTraspas;

   if (NavegadorIE()) ocampo=oEvent.srcElement;
   else ocampo=oEvent.target;
  
  bOk=true;
  
  if (ocampo)
  {
      sData=ocampo.value;   

    	sData = sData.split("/"); //0:Dia  1:Mes  2:Any
    	if(sData.length!=3) 	  //Comprovació del nombre de camps
    	{		bOk=false;	}
    	else
    	{ 
    		if((sData[0].length!=2)||(sData[1].length!=2)||(sData[2].length!=4)) 	//Comprovació de la longitud dels camps
    		{	bOk=false;;
    		}
    		else
    		{
    			if((sData[2]<1900)||(sData[2]>2100)) 		//Tractament d'any
    			{ bOk=false; }
    			else
    			{ 
    				if((sData[1]==1)||(sData[1]==3)||(sData[1]==5)||(sData[1]==7)||(sData[1]==8)||(sData[1]==10)||(sData[1]==12))		//Tractament de mes(amb 31 dies)
    				{
    					if((sData[0]<1)||(sData[0]> 31)) 
    					{ bOk=false; }
    				} 			//Tractament de mes (amb 30	dies) 
    				else 
    				{
    					if((sData[1]==4)||(sData[1]==6)||(sData[1]==9)||(sData[1]==11))
    					{
    						if((sData[0]<1)||(sData[0]>30)) bOk=false;
    					}
    					else //Tractament de Febrer (28 o 29 dies)
    					{
    						if(sData[1]==2)
    						{
    							bTraspas=Traspas(sData[2]);
    							if((bTraspas)&&((sData[0]<1)||(sData[0]>29))) 
    								bOk=false;
    							else if((!bTraspas)&&((sData[0]<1)||(sData[0]>28))) 
    								bOk=false;
    						}
    						else bOk=false; //mes incorrecte
    					}
    				}
    			}
    		}
    	}
    	devuelveResultado(ocampo,bOk,opcionError);
  }
  
}

// -------------------- TransformarData -------------------------------------
//
// Parametre: data
// Retorna: 
//			false = format incorrecte o data inexistent
//			Data = Data en format dd/mm/aaaa
//			
function TransformarData(opcionError, oEvent){
  var iDia;
  var iMes;
  var iAny;

  if (NavegadorIE()) ocampo=oEvent.srcElement;
  else ocampo=oEvent.target;

  bOk=true;
  
  if (ocampo)
  {
      sData=ocampo.value;   
    	sData = sData.split("/"); //0:Dia  1:Mes  2:Any
    	//Comprovació del nombre de camps
    	if(sData.length!=3) bOk=false;
    	else{ 
    		//Tractament de dia
    		if(sData[0].length==1) iDia="0" + sData[0];
    		else iDia=sData[0];
    		
    		//Tractament de mes
    		if(sData[1].length==1) iMes="0" + sData[1];
    		else iMes=sData[1];
    		
    		//Tractament d'any
    		if(sData[2].length==2){
    			if(sData[2][0]>=6) iAny="19" + sData[2];
    			else iAny="20" + sData[2];
    		}
    		else iAny=sData[2];
    	}
    	if (!ValidarDataInterno(iDia + "/" + iMes + "/" + iAny))  bOk=false;
    	else
    	{
    		ocampo.value=(iDia + "/" + iMes + "/" + iAny);
    	}
      devuelveResultado(ocampo,bOk,opcionError); 
   }
}


// -------------------- ValidarObligatori -------------------------------------
// Retorna false si el parametre no te contingut

function ValidarObligatori(opcionError, oEvent)
{ 
  if (NavegadorIE()) ocampo=oEvent.srcElement;
  else ocampo=oEvent.target;

  bOk=true;
  
  if (ocampo)
  {
      s=ocampo.value;   
	    bOk=!((s == null) || (s.lenght == 0 )||s=='')  
	    devuelveResultado(ocampo,bOk,opcionError); 
	 }
}

// -------------------- ValidaMes -------------------------------------
// Retorna false si el parametre (pasat a enter) no esta entre 1 i 12

function ValidaMes(opcionError, oEvent)
{ 
  if (NavegadorIE()) ocampo=oEvent.srcElement;
  else ocampo=oEvent.target;

  bOk=false;
 
  if (ocampo)
  {
  	  if (validaNumeroInterno(ocampo.value))
  	  {
	      s=parseInt(ocampo.value, 10);
	      if (!isNaN(s))
		    bOk=((s > 0) && (s < 13))
	  }
	  devuelveResultado(ocampo,bOk,opcionError); 
  }
}

// -------------------- ValidaNomRaoSocial ---------------------------------------
// Valida que al sol·licitant estigui informada la persona física o la raó social. 
// També valida que al representant estigui informada la persona física

function ValidaNomRaoSocial(opcionError)
{ 
	var oNombre, oApellido1, sMensaje, oRazonSocial;
	var ocampo=null;
	
  ocampo=document.getElementById('checkRepresentante');
	sMensaje='';

	if (ocampo)
	{
		//Comprovar si han marcat la check de representant
		if (ocampo.checked)
		{
			//Validar que el nom i el cognom del representant estan informats
			oNombre=document.getElementById('WTXIPRNOM');
			oApellido1=document.getElementById('WTXIPRAP1');
			if (oNombre.value=='')
			{
				sMensaje=strCampoObligatorio;
				oNombre.focus();
				devuelveResultado(ocampo,false,opcionError,sMensaje);
				return false;
			}
			if (oApellido1.value=='')
			{
				sMensaje=strCampoObligatorio;
				oApellido1.focus();
				devuelveResultado(ocampo,false,opcionError,sMensaje);
				return false;
			}
		}
		// Validar que el nom o la raó social del solicitant estan informats
		oNombre=document.getElementById('WTGNOMBRE');
		oApellido1=document.getElementById('WTGAPELL1');
		oRazonSocial=document.getElementById('WTXIPSRAO');
		if (oNombre.value=="" || oApellido1.value=="")
		{
			if (oRazonSocial.value=="")
			{
				sMensaje=obtenerLiterales(7);
				oNombre.focus();
				devuelveResultado(ocampo,false,opcionError,sMensaje);
				return false;
			}
		}		
		return true;
	}
}

// -------------------- ValidaTelefon1o2 ---------------------------------------
// Valida que a les dades del sol·licitant estigui informat el telèfon 1 (casa) 
// o bé el telèfon 2 (mòbil)

function ValidaTelefon1o2(opcionError)
{ 
	var oTelefCasa, oTelefMovil;
	var ocampo = null;
	
	// Validar que el telèfon de casa o bé el telèfon mòbil del sol·licitant estan informats
	oTelefCasa=document.getElementById('WTGTELEF1');
	oTelefMovil=document.getElementById('WTXIPSTE2');
	if ((oTelefCasa.value=="") && (oTelefMovil.value==""))
	{
		sMensaje=obtenerLiterales(9);
		oTelefCasa.focus();
		devuelveResultado(ocampo,false,opcionError,sMensaje);
		return false;
	}		

	return true;
}


// -------------------- PropagaCorreu ---------------------------------------
// Omple el correu electrònic de la secció 'Vull rebre..' automàticament amb
// l'e-mail del sol·licitant
function PropagaCorreu()
{


	var oCampoMailSolic, oCampoMailRepre, oCampoMailDestino, oCampoCheckDestino;
	var ocampo;
	var sMail="";
	
	oCampoMailSolic=document.getElementById('WTGDIRMAI');
	oCampoMailRepre=document.getElementById('WTXIPRDEM');
	oCampoMailDestino=document.getElementById('WTGMAINOT');
	oCampoCheckDestino=document.getElementById('WTGENVMAI');


	if (oCampoMailSolic && oCampoMailRepre && oCampoMailDestino && oCampoCheckDestino)
	{
		if (oCampoMailRepre.value != "")			
			sMail = oCampoMailRepre.value;
		else if (oCampoMailSolic.value != "")
			sMail = oCampoMailSolic.value;
		else
			sMail = ""			
				

		if (sMail!="")     	
		{
			if ((sMail.indexOf('@')>0) && (sMail.indexOf('@')<sMail.lastIndexOf('.')) && (sMail.indexOf('.')!=sMail.length-1) && (sMail.indexOf('@')==sMail.lastIndexOf('@')) && validaCaractersIntern(sMail))		
			{
				oCampoMailDestino.value = sMail;
				oCampoMailDestino.style.color='Black';
				oCampoCheckDestino.checked = true;
			}
		}
		else
		{
			oCampoMailDestino.value = "";
			oCampoCheckDestino.checked = false;
		}
	}  
  
  return true;

/* esto seria si queremos que siempre se coja el valor del solicitante */
/*
	var oCampoMailSolic, oCampoMailDestino, oCampoCheckDestino;
	var ocampo;
	var sMail="";
	
	oCampoMailSolic=document.getElementById('WTGDIRMAI');
	oCampoMailDestino=document.getElementById('WTGMAINOT');
	oCampoCheckDestino=document.getElementById('WTGENVMAI');

	if (oCampoMailSolic)
	{
		sMail = oCampoMailSolic.value;
		if (sMail!="")
		{
			if ((sMail.indexOf('@')>0) && (sMail.indexOf('@')<sMail.lastIndexOf('.')) && (sMail.indexOf('.')!=sMail.length-1) && (sMail.indexOf('@')==sMail.lastIndexOf('@')) && validaCaractersIntern(sMail))		
			{
				if (oCampoMailDestino)
				{
					oCampoMailDestino.value = sMail;
					oCampoMailDestino.style.color='Black';
				}
				if (oCampoCheckDestino) oCampoCheckDestino.checked = true;
			}
		}
		else
		{
			if (oCampoMailDestino) oCampoMailDestino.value = "";
			if (oCampoCheckDestino) oCampoCheckDestino.checked = true;
		}
	}  
  
  return true;
*/


}

// -------------------- PropagaSMS ---------------------------------------
// Omple el telèfon de la secció 'Vull rebre..' automàticament amb el
// telèfon 2 (mòbil) del sol·licitant
function PropagaSMS()
{


	var oCampoSMSSolic, oCampoSMSRepre, oCampoSMSDestino, oCampoCheckDestino;
	var ocampo;
	var sSMS="";
	var bOk = true;
	

	oCampoSMSSolic=document.getElementById('WTXIPSTE2');
	oCampoSMSRepre=document.getElementById('WTXIPRTE2');
	oCampoSMSDestino=document.getElementById('WTGTELMOV');
	oCampoCheckDestino=document.getElementById('WTGENVSMS');


	if (oCampoSMSSolic && oCampoSMSRepre && oCampoSMSDestino && oCampoCheckDestino)
	{
		if (oCampoSMSRepre.value != "")			
			sSMS = oCampoSMSRepre.value;
		else if (oCampoSMSSolic.value != "")
			sSMS = oCampoSMSSolic.value;
		else
			sSMS = ""			
				
	
		if (sSMS!="")     	
		{
		    	if (sSMS.length!=9)
		    	{
		    		if ((sSMS.charAt(0)!='0') || (sSMS.charAt(1)!='0'))
		    		{
    					bOk=false;
		    		}
    				else
		    		{
    					bOk=validaNumeroInterno(sSMS);
			   	}
	    		}
		    	else
    			{
    				bOk=validaNumeroInterno(sSMS);
	    		}


			if (bOk)
			{
				oCampoSMSDestino.value = sSMS;
				oCampoSMSDestino.style.color='Black';
				oCampoCheckDestino.checked = true;
			}
		}
		else
		{
			oCampoSMSDestino.value = "";
			oCampoCheckDestino.checked = false;
		}
	}  
  
  return true;


/* esto seria si queremos que siempre se coja el valor del solicitante */
/*
	var oCampoSMSSolic, oCampoSMSDestino, oCampoCheckDestino;
	var ocampo;
	var sSMS="";
	var bOk = true;
	

	oCampoSMSSolic=document.getElementById('WTXIPSTE2');
	oCampoSMSDestino=document.getElementById('WTGTELMOV');
	oCampoCheckDestino=document.getElementById('WTGENVSMS');


	if (oCampoSMSSolic)
	{

		sSMS = oCampoSMSSolic.value	
		if (sSMS != "")  	
		{
		    	if (sSMS.length!=9)
		    	{
		    		if ((sSMS.charAt(0)!='0') || (sSMS.charAt(1)!='0'))
		    		{
    					bOk=false;
		    		}
    				else
		    		{
    					bOk=validaNumeroInterno(sSMS);
			   	}
	    		}
		    	else
    			{
    				bOk=validaNumeroInterno(sSMS);
	    		}


			if (bOk)
			{
				if (oCampoSMSDestino)
				{
					oCampoSMSDestino.value = sSMS;
					oCampoSMSDestino.style.color='Black';
				}
				if (oCampoCheckDestino) oCampoCheckDestino.checked = true;
			}
		}
		else
		{
			if (oCampoSMSDestino) oCampoSMSDestino.value = "";
			if (oCampoCheckDestino) oCampoCheckDestino.checked = false;
		}
	}  
  
  	return true;
*/



}

// -------------------- ValidaArquitecteCOAC ---------------------------------------
// Comprova que estigui informat el nom o raó social d'almenys un dels
// arquitectes/enginyers (superior o tècnic)
// - e-mail del sol·licitant en cas contrari
function ValidaArquitecteCOAC(opcionError)
{
	var oCampoArq, oCampoArqTecn;
	
	oCampoArq=document.getElementById('WTXARQUIT');
	oCampoArqTecn=document.getElementById('WTXARQTEC');

	if (oCampoArq && oCampoArqTecn)
	{
		if (oCampoArq.value=="" && oCampoArqTecn.value=="")
		{			
				sMensaje=obtenerLiterales(8);
				oCampoArq.focus();
				devuelveResultado(oCampoArq,false,opcionError,sMensaje);
				return false;			
		}			
	}   
  return true;

}



// -------------------- MostrarCursorLink ---------------------------------------
// Canvia la forma del cursor per una mà

function MostrarCursorLink(elementoEvento)
{
	ocampo=elementoEvento;
	if(document.all)
	ocampo.style.cursor = "hand";
	else
	ocampo.style.cursor = "pointer";
}


// -------------------- COAC_EliminarLiniaDocVisat --------------------------------------
// Elimina la linia de documentació tècnica visada seleccionada

function COAC_EliminarLiniaDocVisat(elementoEvento)
{
	var bFinal = false;
	var ocampo;
	var iLiniaEliminar, iUltimaLiniaVisible, iLiniaActual;
	var aCampoDestino = new Array();
	var aCampoOrigen = new Array();
	var aCampoBorrar = new Array();
	var sPrexifColegiOrigen, sPrexifContingutOrigen, sPrexifReferenciaOrigen;
	var sPrexifColegiDesti, sPrexifContingutDesti, sPrexifReferenciaDesti;
	var oLiniaEliminar;

	//ocampo=event.srcElement;
	ocampo = elementoEvento;
	if (ocampo)
	{
		iLiniaEliminar = ObtenirLiniaDocVisatSeleccionat(ocampo);
		iUltimaLiniaVisible = ObtenirUltimaLiniaVisibleDocVisat();
		if ((iLiniaEliminar>0) && (iUltimaLiniaVisible>0))
		{
			iLiniaActual = iLiniaEliminar;
			while (iLiniaActual < iUltimaLiniaVisible)
			{
				sPrexifColegiDesti = 'WTXCOLPR';
				sPrexifContingutDesti = 'WTXCONTI';
				sPrexifReferenciaDesti = 'WTXREFDO'
				if (iLiniaActual == 9)
				{
						// En el cas en que l'origen sigui la última linia, el nom del camp es diferent (per limitació del número de caràcters)
						sPrexifColegiOrigen = 'WTXCOLP';
						sPrexifContingutOrigen = 'WTXCONT';
						sPrexifReferenciaOrigen = 'WTXREFD';
				}
				else
				{
					sPrexifColegiOrigen = 'WTXCOLPR';
					sPrexifContingutOrigen = 'WTXCONTI';
					sPrexifReferenciaOrigen = 'WTXREFDO';
				}		

				//Combo "col·legi professional"
				aCampoDestino = document.getElementsByName(sPrexifColegiDesti + iLiniaActual);
				aCampoOrigen = document.getElementsByName(sPrexifColegiOrigen + (parseInt(iLiniaActual)+1));
				aCampoDestino[0].selectedIndex = aCampoOrigen[0].selectedIndex;

				//Combo "contingut"
				aCampoDestino = document.getElementsByName(sPrexifContingutDesti + iLiniaActual);
				aCampoOrigen = document.getElementsByName(sPrexifContingutOrigen + (parseInt(iLiniaActual)+1));
				aCampoDestino[0].selectedIndex = aCampoOrigen[0].selectedIndex;

				//Camp "referència document"
				aCampoDestino = document.getElementsByName(sPrexifReferenciaDesti + iLiniaActual);
				aCampoOrigen = document.getElementsByName(sPrexifReferenciaOrigen + (parseInt(iLiniaActual)+1));
				aCampoDestino[0].value = aCampoOrigen[0].value;


				iLiniaActual++;
			}	


			//Si només ens ha quedat una linia, deshabilitem el seu botó de eliminar
			if (iUltimaLiniaVisible == 2)
			{	
				var oImatgeEliminar = document.getElementById('imgEliminarDoc1');
				oImatgeEliminar.style.display = "none";
			}

			//Limpiar valors de la última linia (la que s'eliminarà)
			if (iUltimaLiniaVisible == 10)
			{
					sPrexifColegiOrigen = 'WTXCOLP';
					sPrexifContingutOrigen = 'WTXCONT';
					sPrexifReferenciaOrigen = 'WTXREFD';
			}
			else
			{
				sPrexifColegiOrigen = 'WTXCOLPR';
				sPrexifContingutOrigen = 'WTXCONTI';
				sPrexifReferenciaOrigen = 'WTXREFDO';
			}	
			aCampoBorrar = document.getElementsByName(sPrexifColegiOrigen + iUltimaLiniaVisible);
			aCampoBorrar[0].selectedIndex = 0;
			aCampoBorrar = document.getElementsByName(sPrexifContingutOrigen + iUltimaLiniaVisible);
			aCampoBorrar[0].selectedIndex = 0;
			aCampoBorrar = document.getElementsByName(sPrexifReferenciaOrigen + iUltimaLiniaVisible);
			aCampoBorrar[0].value = "";

			//Fer invisible la última linia visible
			oLiniaEliminar = getElementsByClassName("lineaForm num" + iUltimaLiniaVisible, "div",document )[0];
			//oLiniaEliminar = document.getElementById('docVisat' + iUltimaLiniaVisible);
			if (oLiniaEliminar)
				oLiniaEliminar.style.display = "none";

			//Fer visible el botó "afegir linia" de la que ara serà la última linia		
			var oImatgeAfegir =  getElementsByClassName('imgAnadirDoc' + parseInt(iUltimaLiniaVisible-1),"img",document)[0];
			oImatgeAfegir.style.display = "";

			// Actualitzar el camp ocult que conté el número de linies visibles
			ActualitzaComptadorLiniesVisibles(iUltimaLiniaVisible-1);
			
		}
	}

}


// -------------------- COAC_AfegirLiniaDocVisat ---------------------------------------
// Afegeix una nova linia de documentació tècnica visada

function COAC_AfegirLiniaDocVisat(elementoEvento)
{

	var ocampo;
	var iLiniaActual, idLinia;
	var oLineaMostrar;
	var oImagen;

	//ocampo=event.srcElement;
	ocampo = elementoEvento;

	if (ocampo)
	{

		iLiniaActual = ObtenirLiniaDocVisatSeleccionat(ocampo)
		if (iLiniaActual>0)
		{
			idLinia = parseInt(iLiniaActual) + 1;
			oLineaMostrar = getElementsByClassName("lineaForm num" + idLinia,"div",document)[0];
			//oLineaMostrar = document.getElementById('docVisat' + idLinia);
			if (oLineaMostrar)
			{
				oLineaMostrar.style.display = "";
				ocampo.style.display = "none";
	
				oImagen = getElementsByClassName('imgEliminarDoc1',"img",document)[0];
				if (oImagen)
				{
					oImagen.style.display = "";
				}

				// Si hem arribat al màxim número de linies permès, no permetrem afegir-ne més
				if (idLinia==10)
				{
					oImagen = getElementsByClassName('imgAnadirDoc10',"img",document)[0];
					oImagen.style.display = "none";
				}

				// Actualitzar el camp ocult que conté el número de linies visibles
				ActualitzaComptadorLiniesVisibles(ObtenirUltimaLiniaVisibleDocVisat());

			}
		}

	}
	
  return true;

}

// -------------------- ActualitzaComptadorLiniesVisibles -------------------------------------
// Estableix el valor del camp ocult que serveix per saber el número de linies
// visibles de documentació tècnica visada
function ActualitzaComptadorLiniesVisibles(valor)
{
	var oContador=document.getElementById('WTXNUMLIN');
	
	if (oContador)
	{
		oContador.value = valor;
	}

}

// -------------------- COAC_IniLiniesDocVisat -------------------------------------
// Configura les linies de documentació visada a mostrar

function COAC_IniLiniesDocVisat()
{

	var oPrimerBotoEliminarDocVisat = document.getElementById('imgEliminarDoc1');
	var oLineaMostrar, oImagenAñadir, oImagenEliminar;	
	var i = 0;
	
	document.getElementById("WTXNUMLIN").value = 5;
	var oNumDocsVisats = document.getElementById("WTXNUMLIN");
	
	var linies = getElementsByClassName("subgrupoForm autonumerat", "div", document)	
	    linies = getElementsByClassName("lineaForm", "div", linies[0])
	
	
	while (i < linies.length-1)
	{
		linies[i].style.display = 'none'
		i++;
	}	
	
	
	if (oNumDocsVisats)
	{
		if (oNumDocsVisats.value != "")
		{
			var iNumDocsVisats = parseInt(oNumDocsVisats.value);
			// Mostrar tantes linies com ens indiqui la variable
			for (var idLinia=1; idLinia<=iNumDocsVisats; idLinia++)			
			{
				oLineaMostrar = getElementsByClassName("lineaForm num" + idLinia, "div",document)[0];
				//oLineaMostrar = document.getElementById('docVisat' + idLinia);	
				if (oLineaMostrar)
				{
					oLineaMostrar.style.display = "";

					// Si no estem a la última linia o bé hem arribat al màxim número de linies, deshabilitem el botó d'afegir
					if ((idLinia!=iNumDocsVisats) || (idLinia==10))
					{
						oImagenAñadir = getElementsByClassName('imgAnadirDoc' + idLinia,"img",document)[0];
						if (oImagenAñadir)
							oImagenAñadir.style.display = "none";
					}
				}
			}

			// Si només tenim una linia, no podrà ser eliminable
			if (iNumDocsVisats==1)
			{
				oPrimeraImagen = document.getElementsByClassName('imgEliminarDoc1',"img",document)[0];
				if (oPrimeraImagen)
					oPrimeraImagen.style.display = "none";
			}
	
		}			
		else
		// Si no està informada la variable del número de linies a mostrar, vol dir que només hem de mostrar la primera (amb el
		// botó d'eliminar linia deshabilitat)
		{
			if (oPrimerBotoEliminarDocVisat)
				oPrimerBotoEliminarDocVisat.style.display = 'none';
		}

	}

}


// -------------------- COAC_IniLiniesConfirmacioValidacio --------------------------------------
// Mostra el número de linies de documentació visada que correspongui, en funció de les linies que hagi afegit el ciutadà
/*
function COAC_IniLiniesConfirmacioValidacio()
{

	var oParrs = document.getElementsByTagName("P");
	var oParr;
	var oSpans;
	var oSpan;
	
	for (var i=0; i<oParrs.length; i++)
	{
	  oParr = oParrs[i];
		oSpans = oParr.getElementsByTagName("span");
		if (oSpans.length > 0)
		{
		  var bTodosNulos = true;
		  var bContieneCampos = false;
			var j = 0;
			while ((j<oSpans.length) && (bTodosNulos))
		  {
				 oSpan = oSpans[j];
				 if (oSpan.id == "campoDoc")
				 {
				 	bTodosNulos = (oSpan.innerText == "");
				  bContieneCampos = true;
				 }
				 j++;
		  }
			if ((bTodosNulos) && (bContieneCampos))
				oParr.style.display = "none";
		}
	}

}
*/



// -------------------- ValidarDocVisat -------------------------------------
// Valida el numero de documento utilizando una llamada externa

function ValidarDocVisat(oEvent)
{
	var bOk,oCampoDoc,aCampos,sURL,sIdCol,sAssumeix;

	bOk=true;
	if (NavegadorIE()) oCampoDoc=oEvent.srcElement;
	else oCampoDoc=oEvent.target;
	//Solo validamos si han informado el numero de documento
	if (oCampoDoc.value.length>0)
	{
		//Obtenemos el id del colegio
		aCampos=document.getElementsByName('WTXCAMPRO');
		sIdCol=aCampos.item(0).value;

		//Obtenemos el valor del parametro assumeix
		if (oCampoDoc.name=='WTXREFASS') sAssumeix='S';
		else sAssumeix='N';

		//Realizamos una llamada para validar el documento
		sURL='/ABSIS/eAD/MTM/Acciones/SrvAcciones.asmx/ValidarDocVisat?idCol=' + sIdCol + '&idDoc=' + oCampoDoc.value + '&assumeix=' + sAssumeix;
	  if (NavegadorIE()) xmlHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
		else xmlHttpReq = new XMLHttpRequest();
	  xmlHttpReq.open("GET", sURL, false);
	  xmlHttpReq.send("");
		if (xmlHttpReq.responseXML!=null)
		{
			if (NavegadorIE()) bOk=(xmlHttpReq.responseXML.documentElement.nodeTypedValue=='S');
			else bOk=(xmlHttpReq.responseXML.documentElement.textContent=='S');
		}
		else bOk=false;
	}

	formateaCampoResult(oCampoDoc,bOk);
	if (!bOk) 
	{
		alert(strRefDocIncorrecta);
		oCampoDoc.focus();
	}
}



////////////////////////////////////////////////////////////////////////////////
//FUNCIONS DE l'eTRACC
////////////////////////////////////////////////////////////////////////////////

// -------------------- calculaDataFinal ---------------------------------------------------
// A partir de la data d'inici de l'excursió i de la durada en dies, calcula la data de fi
function calculaDataFinal()
{
	var oCampoDataInici, oCampoDurada, oCampoResult;
	var sDataInici, sDurada, sDataFi;
	var bOk = false;

	oCampoDataInici = document.getElementById("WTXDATAEX");
	oCampoDurada = document.getElementById("WTXDURADA");
	oCampoResult = document.getElementById("WTXDATAFI");
	if ((oCampoDataInici) && (oCampoDataInici) && (oCampoResult))
	{
		if ((oCampoDataInici.value != "") && (oCampoDurada.value != ""))
		{
			sDataInici = oCampoDataInici.value;
			sDurada = oCampoDurada.value;
			if ( (validaNumeroInterno(sDurada)) && (Validar_Data(sDataInici)) )
			{				
				sDataFi = formatDate(addDays(parseDate(sDataInici), parseInt(sDurada)));
				oCampoResult.value = sDataFi;
				bOk = true;
			}
		}
	}
	if ((!bOk) && (oCampoResult))
		oCampoResult.value = "";
}

function addDays(date, increment)
{
	var oneDay = 24*60*60*1000;
	return new Date(date.valueOf() + increment * oneDay) ;
}

function parseDate(datestr)
{
	var dateArray = new Array();
	if(datestr.indexOf("/") != -1)
	{
	  dateArray = datestr.split("/");
	}
	var iDia = parseInt(dateArray[0]);
	var iMes = parseInt(dateArray[1]);
	var iAny = parseInt(dateArray[2]);
	return new Date(iAny, iMes - 1, iDia);
}

function formatDate(date)
{
	var sDia, sMes, sAny;
    
	sDia = date.getDate() + '';
	sMes = (date.getMonth() + 1) + '';
	sAny = date.getFullYear() + '';

	//Format del resultat
	if(sDia.length==1) sDia = "0" + sDia;
	if(sMes.length==1) sMes="0" + sMes;
	
	return (sDia + "/" + sMes + "/" + sAny);
}

// -------------------- calculaTotalVehicles -----------------------------------------------
// Calcula el número total de vehicles indicats en una sol·licitud d'accés motoritzat
function calculaTotalVehicles()
{
	var oCampoQuant1,oCampoQuant2,oCampoQuant3,oCampoQuant4;
	var oCampoQuantTotal;
	var iCampoQuant1 = 0,iCampoQuant2 = 0,iCampoQuant3 = 0,iCampoQuant4 = 0;
	var iQuantTotal = 0;


	oCampoQuant1 = document.getElementById("WTXQUANT1");
	oCampoQuant2 = document.getElementById("WTXQUANT2");
	oCampoQuant3 = document.getElementById("WTXQUANT3");
	oCampoQuant4 = document.getElementById("WTXQUANT4");

	if (oCampoQuant1)
		if (oCampoQuant1.value != "")
			iCampoQuant1 = parseInt(oCampoQuant1.value)
	if (oCampoQuant2)
		if (oCampoQuant2.value != "")
			iCampoQuant2 = parseInt(oCampoQuant2.value)
	if (oCampoQuant3)
		if (oCampoQuant3.value != "")
			iCampoQuant3 = parseInt(oCampoQuant3.value)
	if (oCampoQuant4)
		if (oCampoQuant4.value != "")
			iCampoQuant4 = parseInt(oCampoQuant4.value)

	oCampoQuantTotal = document.getElementById("WTXQTOTAL");
	if (oCampoQuantTotal)
		oCampoQuantTotal.value = (iCampoQuant1 + iCampoQuant2 + iCampoQuant3+ iCampoQuant4);
	
}

// -------------------- ValidaDocument -------------------------------------
// Valida el format d'un document en funció del seu tipus (dni, nif...)
function ValidaDocument(sTipoDocumento, sNumDoc, opcionError) {
	var oTipoDoc;
	var oNumDoc;
	var nif;
	var dni;
	var bOk = false;
	var bTipoNif = false;

	oTipoDoc = document.getElementById(sTipoDocumento);
	oNumDoc = document.getElementById(sNumDoc);
	
	if (sTipoDocumento=='NIF')
	// Hi ha tràmits amb camps 'NIF' sense camp de tipus de document associat
		bTipoNif = true;
	else
		bTipoNif = ((oTipoDoc.value=='6-NIF') || (oTipoDoc.value=='1-DNI'));


	if (bTipoNif)
	{
		if (oNumDoc)
		{	
			nif=oNumDoc.value;
			nif=nif.toUpperCase( );
	      		bOk=true;
	    		if (nif!='')
	    		{
	      			if (isNaN(nif)) //Conté lletra
	      			{
	      				if ((nif.length>2)&&(nif.length<10)) 
	      				{	
	      					dni=nif.substring(0,nif.length-1); 
	      					lletra=nif.substring(nif.length-1,nif.length);
	      					if (isNaN(dni)) 
	      					{
	      						bOk=false;
	      					} 
	      					else 
	      					{	
	      						lletra_correcta=quina_lletra(dni); //Es consulta la lletra correcta del DNI
	      						if (lletra!=lletra_correcta) 
	      						{
	      							bOk=false;
	      						}    				
	      					}
	      				}
	      				else // Menys de 2 caracters o mes de 10
	      				{
	      					bOk=false;
	      				}
	      			} 
	      			else  //No conté la lletra
	      			{
	      				bOk=false;
	        		}
	       		}
		}			
	}
	else //No han triat NIF
	{
		bOk=true;
	}
	devuelveResultado(oNumDoc,bOk,opcionError);
   
}

////////////////////////////////////////////////////////////////////////////////
//FINAL FUNCIONS DE l'eTRACC
////////////////////////////////////////////////////////////////////////////////




////////////////////////////////////////
////EJEMPLOS
/////////////////////////////////////////

//Esta función es un ejemplo de suma de los campos WTXNUMER1 y WTXNUMER2 del formulario.
//El campo WTXRESULT almacena el resultado de dicha suma. Esta función se ha asociado al
//evento que captura el cambio de los campos WTXNUMER1 y WTXNUMER2.
function recalcularCampos()
{
  var result=0;
  var num1=0;
  var num2=0;
  
  if (document.getElementById('WTXNUMER1').value)
  {
    num1=parseInt(document.getElementById('WTXNUMER1').value);
  }
   if (document.getElementById('WTXNUMER2').value)
  {
    num2=parseInt(document.getElementById('WTXNUMER2').value);
  }
  
  result= num1 + num2;
  document.getElementById('WTXRESULT').value=result;
}

//Aquesta funció es un exemple de calcul d'un camp a partir del valor d'altres.
//El camp WTXIMPNET emmagatzema el resultat d'aplicar un percentatge de Iva (WTXPORIVA)
//i un percentatge de descompte (WTXPORDTO) sobre un import brut (WTXIMPBRU).
//Aquesta funció s'ha associat a l'event onfocusout dels camps WTXIMPBRU,WTXPORIVA i WTXPORDTO.
function CalculaImportNet()
{
  var importeBrut=0;
  var percIva=0;
  var percDte=0;
  var importNet=0;
  var result=0;   

  if (document.getElementById('WTXIMPBRU').value)
  {
    if (ValidaDecimalIntern(document.getElementById('WTXIMPBRU').value))
      importeBrut=parseFloat(document.getElementById('WTXIMPBRU').value);
  }
  if (document.getElementById('WTXPORDTO').value)
  {
    if (ValidaPercentatgeIntern(document.getElementById('WTXPORDTO').value))
      percDte=parseInt(document.getElementById('WTXPORDTO').value);
  }
  if (document.getElementById('WTXPORIVA').value)
  {
    if (ValidaPercentatgeIntern(document.getElementById('WTXPORIVA').value))
      percIva=parseInt(document.getElementById('WTXPORIVA').value);
  }

  result = importeBrut - (importeBrut * percDte / 100);
  document.getElementById('WTXIMPNET').value = roundNumber(result + (result*percIva/100), 2);

}

//Aquesta funció es un exemple de validació. En aquest cas, valida que un string sigui un percentatge
//(numeric + que estigui entre 0 i 100)
function ValidaPercentatge(opcionError, oEvent)
{
  if (NavegadorIE()) ocampo=oEvent.srcElement;
  else ocampo=oEvent.target;

  var bOk=true;
  var num;

  if (ocampo)
  {
    num=ocampo.value;
    bOk=ValidaPercentatgeIntern(num); 
    devuelveResultado(ocampo,bOk,opcionError);
  }
}

//Retorna true si el string pasat es un percentatge (número sense decimals entre 0 i 100)
function ValidaPercentatgeIntern(num)
{
  if (validaNumeroInterno(num))
  {
	return ((num>=0) && (num<=100));
  }
  else return false;
}

// Comprova que el format d'un decimal sigui correcte. El separador ha de ser '.'
function ValidaDecimalIntern(decimal){	
  var bOk=true;
  var separador;
  var partEntera;
  var partDecimal;

  if(decimal.indexOf(',')>=0) bOk=false;
  if (bOk)
  {
    separador=decimal.indexOf('.');
    if (separador==-1)
    {   		
      if (!(validaNumeroInterno(decimal))) bOk=false;   		
    }
    else
    {

      if (separador==0)
      {
       partEntera="0"; 
       partDecimal=decimal.substring(separador+1);
      }
      else
      {
        if (separador==decimal.length-1)
      	{
      	  partEntera=decimal.substring(0,separador);
	  partDecimal="0";
      	}
      	else
      	{
      	  partEntera=decimal.substring(0,separador);
	  partDecimal=decimal.substring(separador+1);
      	}
      }

      if (!(validaNumeroInterno(partDecimal))) bOk=false;
      if (!(validaNumeroInterno(partEntera))) bOk=false;
    }
  }
  return bOk;
}


//Esta función muestra un mensaje que contiene información sobre evento provocado. 
//Se puede asociar a cualquier evento de cualquier campo del formulario.
function textoEvento(oEvent)
{
  if (NavegadorIE()) ocampo=oEvent.srcElement;
  else ocampo=oEvent.target;

  var sTexto;
  sTexto='Se ha provocado el evento ' + oEvent.type + ' sobre el campo ' + ocampo.name
  alert(sTexto); 
}

function mostrarPopupTextoClick()
{
  alert('Se ha provocado un click sobre un campo de texto'); 
}
function mostrarPopupTexto()
{
  alert('Se ha provocado un evento sobre un evento texto'); 
}


//FUNCIONS PRIVADES
//--------------------------------------------------
//	Mascara per saber si un any és de traspàs.
//	Només permet un enter de fins a 4 dígits.
//--------------------------------------------------
function Traspas(iAny){
	if((iAny % 4)==0){
			if((iAny % 100)==0){
					if((iAny % 400)==0) return(true);
					else return(false);
			}
			else return(true);
    }
	else return(false);
}
// -------------------- quina_lletra -------------------------------------
//
// Parametre: Dni sense lletra
// Retorna: 
//			false = format incorrecte
//			caracter = lletra corresponent al Dni.
//			
function quina_lletra (Dni){
	var lletra=new Array("T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E");
	if (isNaN(Dni)) return false;
  else  return (lletra[Dni%23]); 
}


// -------------------- validaCaractersIntern -------------------------------------
// Comprova que cadena estigui composat per lletres o numeros. Permet '.','@','_' i '-' per adreces de correu.
function validaCaractersIntern(cadena)
{
	bOk=true;
    	if (cadena!='')
    	{
    		for(i=0;i<cadena.length;i++){
    			if (((cadena.charAt(i)<'a') || (cadena.charAt(i)>'z')) && 
    					((cadena.charAt(i)<'A') || (cadena.charAt(i)>'Z')) &&
							((cadena.charAt(i)<'0') || (cadena.charAt(i)>'9')) &&
			    		(cadena.charAt(i)!='.') && (cadena.charAt(i)!='@') &&
			    		(cadena.charAt(i)!='Ç') && (cadena.charAt(i)!='Ñ') &&
			    		(cadena.charAt(i)!='ç') && (cadena.charAt(i)!='ñ') &&
    					(cadena.charAt(i)!='_') && (cadena.charAt(i)!='-') ) 
				
						bOk=false;
	    	}
	}
	return bOk;
}

function roundNumber(number, decimals) {
	return Math.round(number*Math.pow(10,decimals))/Math.pow(10,decimals);
}

function validaNumeroInterno(num)
{
	for(i=0;i<num.length;i++){
		if (num.charAt(i)<'0' || num.charAt(i)>'9')return false;
	}
	return true;
}

// -------------------- ValidarDataInterno -------------------------------------
//
// Parametre: data en format dd/mm/aaaa
// Retorna: 
//			false = format incorrecte o data inexistent
//			true = Data correcta
//			
function ValidarDataInterno(sData){
var bTraspas;

	sData = sData.split("/"); //0:Dia  1:Mes  2:Any
	if(sData.length!=3) 	  //Comprovació del nombre de camps
	{		return(false);	}
	else
	{ 
		if((sData[0].length!=2)||(sData[1].length!=2)||(sData[2].length!=4)) 	//Comprovació de la longitud dels camps
		{	return(false);
		}
		else
		{
			if((sData[2]<1900)||(sData[2]>2100)) 		//Tractament d'any
			{ return(false); }
			else
			{ 
				if((sData[1]==1)||(sData[1]==3)||(sData[1]==5)||(sData[1]==7)||(sData[1]==8)||(sData[1]==10)||(sData[1]==12))		//Tractament de mes(amb 31 dies)
				{
					if((sData[0]<1)||(sData[0]> 31)) 
					{ return false ; }
				} 			//Tractament de mes (amb 30	dies) 
				else 
				{
					if((sData[1]==4)||(sData[1]==6)||(sData[1]==9)||(sData[1]==11))
					{
						if((sData[0]<1)||(sData[0]>30)) return(false);
					}
					else //Tractament de Febrer (28 o 29 dies)
					{
						if(sData[1]==2)
						{
							bTraspas=Traspas(sData[2]);
							if((bTraspas)&&((sData[0]<1)||(sData[0]>29))) 
								return(false);
							else if((!bTraspas)&&((sData[0]<1)||(sData[0]>28))) 
								return(false);
						}
						else return false; //mes incorrecte
					}
				}
			}
		}
	}
	return(true);
}

function devuelveResultado(ocampo,resultado,opcionError,sMensaje)
{

    if (opcionError=='rojo')
    {
        formateaCampoResult(ocampo,resultado);
    }
    else if (opcionError=='mensaje' && !resultado)
    {
        if (!sMensaje) sMensaje="Campo no válido";
        alert(sMensaje);
    }

}


function formateaCampoResult(ocampo,resultado)
{
  if (resultado)
  {
      ocampo.style.color='Black';
      if (ocampo.style.backgroundColor=='Red' || ocampo.style.backgroundColor=='red')
      {
          ocampo.style.backgroundColor="";
      }  
  }
  else
   {
      if(ocampo.value.length==0)
      {
        ocampo.style.color='White';  
        ocampo.style.backgroundColor='Red';  
      }
      else
      {
        ocampo.style.color='Red';  
        ocampo.style.backgroundColor="";  
      }
   }
}

// -------------------- ObtenirLiniaDocVisatSeleccionat ---------------------------------------
// Retorna el número de linia de document visat que s'ha seleccionat. El paràmetre 'ocampo'
// correspon al botó de la linia que s'ha seleccionat

function ObtenirLiniaDocVisatSeleccionat(ocampo)
{

		var bTrobat = false;
		var oParent;
		var idLinia = -1;

		oParent = ocampo.parentNode.parentNode;
		/*
		while ((!bTrobat) && (oParent!=null))
		{
			if (oParent.id != "")
				bTrobat = (oParent.id.indexOf('docVisat')>=0);
			if (!bTrobat)
				oParent = oParent.parentElement;
		}

		if (bTrobat)
		{
			if (oParent.id.indexOf('docVisat')>=0)
			{
				idLinia = oParent.id.substring(oParent.id.indexOf('docVisat') + 'docVisat'.length);
				if (!validaNumeroInterno(idLinia))
					idLinia = -1;
			}
		}*/
		idLinia = oParent.className.replace("lineaForm num","")
	
		return idLinia;
}


// -------------------- ObtenirLiniaDocVisatSeleccionat ---------------------------------------
// Retorna el número de linia de document visat que s'ha seleccionat. El paràmetre 'ocampo'
// correspon al botó de la linia que s'ha seleccionat

function ObtenirUltimaLiniaVisibleDocVisat()
{

	var i=1;
	var bTrobat=false;
	var oLinia;
	var iUltimaLinia=-1;
	var contenidor;

	while ((!bTrobat) && (i<11))
	{		
		oLinia = getElementsByClassName("lineaForm num" + i, "div",document)[0];
		//oLinia = document.getElementById('docVisat' + i);		
		if (oLinia.style && oLinia.style.display != 'none')
			i++;
		else
			bTrobat = true;
	}

	if (bTrobat)
		iUltimaLinia = i-1;
	else
		iUltimaLinia = 10;

	return iUltimaLinia;		

}

function getElementsByClassName(strClass, strTag, objContElm) {
  strTag = strTag || "*";
  objContElm = objContElm || document;
  var objColl = objContElm.getElementsByTagName(strTag);
  if (!objColl.length &&  strTag == "*" &&  objContElm.all) objColl = objContElm.all;
  var arr = new Array();
  var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
  var arrClass = strClass.split(delim);
  for (var i = 0, j = objColl.length; i < j; i++) {
    var arrObjClass = objColl[i].className.split(' ');
    if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
    var c = 0;
    comparisonLoop:
    for (var k = 0, l = arrObjClass.length; k < l; k++) {
      for (var m = 0, n = arrClass.length; m < n; m++) {
        if (arrClass[m] == arrObjClass[k]) c++;
        if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
          arr.push(objColl[i]);
          break comparisonLoop;
        }
      }
    }
  }
  return arr;
}

// To cover IE 5.0's lack of the push method
Array.prototype.push = function(value) {
  this[this.length] = value;
} 
function CopiarEmail(opcionError, oEvent)
{
  if (NavegadorIE()) ocampo=oEvent.srcElement;
  else ocampo=oEvent.target;

  document.getElementById('WTGMAINOT').value=ocampo.value;
}

// -------------------- Cerrar ventana -------------------------------------
/* 	Utilizado para insertar un enlace de cierre en un popup */
function CerrarVentana(){
	window.close();
}

// -------------------- AjaxAutoCompleter -------------------------------------
/* 	DESTINATARIO -GESTION DE LLAMADAS-
	Muestra una lista de datos obtenidos a partir de una consulta realizada 
	cada vez que se escribe un caracter utilizandolos como filtro de la consulta
*/

    function insertAutoCompleteDestinatario(){
    	//Lo ideal seria poder pasar como parametro el nombre del campo 'WTXNOMDES'
    	if (document.getElementById("WTXNOMDES")){
    	  var sNomCampo='WTXNOMDES';
    	}else{
    	  var sNomCampo='FIL_WUSNOMBRE';
      }
      //alert(sNomCampo);
    	var urlASP='../../forms_base/lstusu.asp'
    	var idtargetDIV='targetLst_' + sNomCampo;
    	var htmltargetDiv='<div id="'+idtargetDIV+'" class="auto_complete" ></div>';
    	
    	//método utilizado al seleccionar un item de la lista de resultados de la consulta
	    var getItemUpdate= function(resp){
	    		//Cargamos los datos del item seleccionado
	    		var oNode=document.getElementById(resp.id);
	    		var sNombre=oNode.getAttribute("WUSNOMBRE");
	    		var sApell1=oNode.getAttribute("WUSAPELL1");
	    		var sApell2=oNode.getAttribute("WUSAPELL2");
	    		if(oNode.getAttribute("WUSDIRMAI")){
	    			var sDirmail=oNode.getAttribute("WUSDIRMAI");
	        }
	    		//actualizamos los valores del formulario
	    		var oNombre, oApell1, oApell2, oDirmail;
	    		if (document.getElementById("WTXNOMDES")){
	    		  oNombre=document.getElementById("WTXNOMDES");
	    		  oNombre.value=sNombre;
	    		
	    		  oApell1=document.getElementById("WTXAP1DES");
	    		  oApell1.value=sApell1;
	    		
	    		  oApell2=document.getElementById("WTXAP2DES");
	    		  oApell2.value=sApell2;
	    		
	    		  if(document.getElementById("WTGMAINOT")){
	    		    oDirmail=document.getElementById("WTGMAINOT");
	    		    oDirmail.value=sDirmail;
	    		  }
	    		 }else{
	    		  oNombre=document.getElementById("FIL_WUSNOMBRE");
	    		  oNombre.value=sNombre;
	    		
	    		  oApell1=document.getElementById("FIL_WUSAPELL1");
	    		  oApell1.value=sApell1;
	    		
	    		  oApell2=document.getElementById("FIL_WUSAPELL2");
	    		  oApell2.value=sApell2;	    		  
	    		 }
	     }    	
    	
    	new Insertion.After(sNomCampo, htmltargetDiv);
    	new Ajax.Autocompleter( sNomCampo, 
    							idtargetDIV, 
    							urlASP, 
    							{updateElement: getItemUpdate});
    }



/////////////////////////////////////////////
//   OMC 13/03/2008
/////////////////////////////////////////////
/* 
PARA FORMULARIOS CON CAMPOS OBLIGATORIOS:
Al validar formulario marca el campo de color al que la vairable se inicializa.
La variable 'colorAvisoCampoVacio' se define a petición del cliente inicializandola con el nombre
o código del color elegido por este.
Si se comenta la declaración el funcionamiento se anula, es decir no se marcará el campo de ningún color
seguirá quedando blanco.
Si se descomenta deberá asignarse a la variable el color a marcar en el campo.
*/
var colorAvisoCampoVacio = "red";
/////////////////////////////////////////////
//   OMC 13/03/2008 FIN.
/////////////////////////////////////////////


// Borra todos los campos no ocutos de un formulario y que no estan en modo solo lectura
function BorrarCampos(oInput){
	var oForm = document.getElementById(oInput.form.id);
	var aTipos = new Array ("input","textarea","select");
	var intALength = aTipos.length;
	if(confirm(strBorrarCampos)){
		for(var x=0;x<intALength;x++){
			var cItems = oForm.getElementsByTagName(aTipos[x]);
			var intCItemsLength = cItems.length;			
			for(var i=0;i<intCItemsLength;i++){
				if(!cItems.item(i).id == "" && cItems.item(i).type != "hidden" && !cItems.item(i).readOnly && cItems.item(i).type != "submit"){
					EstablecerValorCampo(window.document,cItems.item(i).id,'','=');		
					if(document.getElementById(cItems.item(i).id).selectedIndex)
						document.getElementById(cItems.item(i).id).selectedIndex= "-1";
					if(document.getElementById(cItems.item(i).id + "_parent"))
						tinyMCE.activeEditor.setContent("");
				}
			}
		}
	}	
}

//OMC 08/05/2008
function isNumber(s) // Para determinar que una string SOLAMENTE contiene numeros. Si es así retornará TRUE, en caso contrario retornará FALSE.
{
   var i;
    var dotAppeared;
    dotAppeared = false;
    if (isEmpty(s)) 
       if (isNumber.arguments.length == 1) return defaultEmptyOK;
       else return (isNumber.arguments[1] == true);
    
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if( i != 0 ) {
            if ( c == "." ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else     
                if (!isDigit(c)) return false;
        } else { 
            if ( c == "." ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else     
                if (!isDigit(c) && (c != "-") || (c == "+")) return false;
        }
    }
    return true;
}

function isEmpty(s) //Comprueba que sea una cadena la cual no esté vacía.
{
   return ((s == null) || (s.length == 0))
}

function isDigit (c) // Comprueba que sea un numero del 0-9 si es así lo retorna a modo de char.
{
   return ((c >= "0") && (c <= "9"))
}
//OMC FIN  08/05/2008


//OOF VAlida la Selección de checks en el caso de comunicar cambio de domicilio
//Valida que se hayan marcado las checks correctamente en el caso del tramite de comunicacion de canvio de domicilio
function ControlEntitatsaComunicar()
{
	// var AEAT,CatSalut1,CatSalut2,DGP,TGSS,bOK;
	// bOK = true;
	
	// AEAT = document.getElementById("WTXAEATCH").checked;
	// CatSalut1 = document.getElementById("WTXCATSA1").checked;
	// CatSalut2 = document.getElementById("WTXCATSA2").checked; 
	// DGP = document.getElementById("WTXDGPCHK").checked;
	// TGSS = document.getElementById("WTXTGSSCH").checked; 
	// if(!(AEAT || CatSalut1 || CatSalut2 || DGP || TGSS))
	// {
		// alert(strMarcarAlgunaCheck);
		// bOk = false;
	// }
	// if(CatSalut1 && CatSalut2)
	// {
		// alert(strCatSalut);
		// bOK = false;
	// }
	// return bOK;
	
	var capaDestino;
	var checks;
	var idsSel,descSel,idDescTodas;
	var i = 0;
	var cargadas = true;
	idsSel  = "";
	descSel = "";
	idDescTodas ="";
	
	//VALIDAMOS QUE SE HAYAN CARGADO LAS DOS CONSULTAS
	
	if(getElementsByClassName("capaInteriorFormulario", "div",document)[0].style.display != "block")
	{
		cargadas = false;
	}
	
	
	capaDestino = getElementsByClassName("destinoChecks", "div",document);
	//alert(capaDestino.length);
	capaDestino = capaDestino[0];
	checks = capaDestino.getElementsByTagName("input");
	
	if(checks.length < 1 )
	{
		cargadas = false;
	}
	if(cargadas)
	{
		while (i< checks.length)
		{
			if(checks[i].type == "checkbox")
			{
				idDescTodas += checks[i].value + "$$" +checks[i].title + "|"; 
				if(checks[i].checked)
				{
					idsSel  +=  checks[i].value + "|";
					descSel +=  checks[i].title + "|";
				}
			}
			i++;
		}	
		document.getElementById("WTXIDORGA").value = idsSel;
		document.getElementById("WTXDCORGA").value = descSel;
		document.getElementById("WTXDCORGN").value = idDescTodas;
		
		//VALIDAMOS QUE LAS CHECKS ESTEN CORRECTAMENTE
		if(idsSel.length == 0)
		{
			alert(obtenerLiterales(3));
			return false;
		}
		else if(idsSel.indexOf("1|")!=-1 && idsSel.indexOf("2|")!=-1)
		{
			alert(obtenerLiterales(2));
			return false;
		}	
		return true;
	}
	else
	{
		alert(obtenerLiterales(1));
		return false;
	}
	
}
//FUNCION QUE SE EJCUTA AL FINALIZAR LAS CONSULATS ASINCRONAS
function consultaRealizada(sIdConsulta, oForm)
{	
	if(sIdConsulta == "c57E3DD92F0344A21BFA20F3FED0CBEE7")
	{		
		consultaPadroCallBack(oForm);	
	}	
	else if(sIdConsulta == "c4EB2F0DD9E724215AA3947D24B55D437")
	{
		consultaLlistatsCallback(oForm);
	}
}
function consultaLlistatsCallback(oForm)
{
	var organismos    = getElementsByClassName("ClaseId", "*",document);
	var txtOrganismos = getElementsByClassName("txtOrganisme", "*",document);
	var inputForm     = getElementsByClassName("destinoChecks","div",document)[0];
	var i = 0;
	var organismoActual,organismosAcum;
	var campo;
	var trobat = false;
	var aIdOrganismes   = new Array();
	var aTextOrganismes = new Array();
	
	
	
	inputForm.style.background = "none"; 
	inputForm.style.backgroundImage = "none"; 
	inputForm.style.height = "auto"; 
	
	organismosAcum = "";
	while (i < organismos.length)
	{
		organismoActual = organismos[i].innerHTML;
		organismosAcum += organismoActual;
		aIdOrganismes[i] = organismoActual;		
		i++;
	}
	i = 0;
	while (i < txtOrganismos.length)
	{
		
		aTextOrganismes[i] = txtOrganismos[i].innerHTML;
		createCheckBox(inputForm,"NOMCHK"+ aIdOrganismes[i],aIdOrganismes[i],aTextOrganismes[i])		
		i++;
	}
	
	
}

function createCheckBox(capa,nom,valor,descr)
{
	try{
	var capaDivExterna = document.createElement("div");
	capaDivExterna.className = "lnfLinea";
	
	var capaDiv  = document.createElement("div");
	capaDiv.className = "campo_booleano";
	
	var newElement = document.createElement("input");
	newElement.type = "checkbox"; 
	newElement.value = valor;//"N";
	newElement.name = nom;
	newElement.id = nom;
	newElement.title = descr;	
	newElement.className = "booleano";
	capaDiv.appendChild(newElement); 
	
	//INPUTS OCULTS
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = "boolean";
	newElement.name = nom;	
	capaDiv.appendChild(newElement); 	
	
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = "0";
	newElement.name = nom;	
	capaDiv.appendChild(newElement); 
	
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = descr;
	newElement.name = nom;	
	capaDiv.appendChild(newElement); 
	
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = 90 + valor;
	newElement.name = nom;	
	capaDiv.appendChild(newElement); 
	
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = null;
	newElement.name = nom;	
	capaDiv.appendChild(newElement); 
	
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = "false";
	newElement.name = nom;	
	capaDiv.appendChild(newElement); 
	
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = "false";
	newElement.name = nom;	
	capaDiv.appendChild(newElement); 
	
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = "false";
	newElement.name = nom;	
	capaDiv.appendChild(newElement); 


	
	//LABEL
	newElement = document.createElement("label");
	newElement.title = descr;	
	newElement.htmlFor  = nom; 
	newElement.innerHTML = descr; 	
	capaDiv.appendChild(newElement); 
	capaDivExterna.appendChild(capaDiv); 
	capa.appendChild(capaDivExterna); 
	}
catch(err)
  {}
}

function createInputText(capa,nom,valor,descr,size)
{
	try{
	
	valor = valor.split("-")[1];	
	var capaDiv  = document.createElement("div");
	capaDiv.className = "campo_texto";
	var nomCreat = nom.replace("WTX","WCP");
	
	//LABEL
	var newElement = document.createElement("label");
	newElement.title = descr;	
	newElement.htmlFor  = nomCreat; 
	newElement.innerHTML = descr; 	
	capaDiv.appendChild(newElement); 
	
	newElement = document.createElement("br");
	capaDiv.appendChild(newElement); 
	
	newElement = document.createElement("input");
	newElement.type = "text"; 
	newElement.value = valor;//"N";
	newElement.name = nomCreat;
	newElement.id = nomCreat;
	newElement.alt = descr;	
	newElement.size = size;	
	newElement.className = "texto";
	capaDiv.appendChild(newElement); 
	
	//INPUTS OCULTS
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = "varchar";
	newElement.name = nomCreat;	
	capaDiv.appendChild(newElement); 	
	
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = "100";
	newElement.name = nomCreat;	
	capaDiv.appendChild(newElement); 
	
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = descr;
	newElement.name = nomCreat;	
	capaDiv.appendChild(newElement); 
	
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = 80 + document.getElementsByName(nom)[4].value;
	newElement.name = nomCreat;	
	capaDiv.appendChild(newElement); 
	
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = null;
	newElement.name = nomCreat;	
	capaDiv.appendChild(newElement); 
	
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = "false";
	newElement.name = nomCreat;	
	capaDiv.appendChild(newElement); 
	
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = "false";
	newElement.name = nomCreat;	
	capaDiv.appendChild(newElement); 
	
	newElement = document.createElement("input");
	newElement.type = "hidden"; 
	newElement.value = "false";
	newElement.name = nomCreat;	
	capaDiv.appendChild(newElement); 	
		
	//OCULTAMOS SELECT	
	capa.parentNode.parentNode.style.display = "none";
	capa.parentNode.parentNode.style.margin  = "0px";
	capa.parentNode.parentNode.style.padding = "0px";
	capa.parentNode.parentNode.parentNode.insertBefore(capaDiv,capa.parentNode.parentNode);
	}
catch(err)
  {	
	debugger;
  }
}

function consultaPadroCallBack(oForm)
{
	var oBtnAceptar,oBtnAtras;
		
	//HABILITAMOS LOS BOTONES
	oBtnAceptar=oForm['btnAceptar'];
	oBtnAtras=oForm['btnAtras'];
	if (oBtnAceptar!=null) oBtnAceptar.disabled=false;
	if (oBtnAtras!=null) oBtnAtras.disabled=false;
	
	//Copiamos El identificador de municipio
	document.getElementsByName("WTXIDMUNI")[0].value = document.getElementById("FIL_codigoMunicipio").value;
	document.getElementsByName("WTXIDPROV")[0].value = document.getElementById("FIL_codigoProvincia").value;
	
	
	//COMPROVAMOS EDAD
	if(document.getElementsByName("WTXNERROR")[0].value != "1")
	{
		if(document.getElementsByName("WTXNERROR")[0].value == "2")
		{
			PonerCortinaEspera(obtenerLiterales(5));		
		}
		else
		{
			PonerCortinaEspera(obtenerLiterales(10));
		}
	}	
	//COMPROVAMOS EDAD
	if(document.getElementsByName("WTXMYRD16")[0].value == "False")
	{
		PonerCortinaEspera(obtenerLiterales(4));		
	}	
	
	//FORMATEAMOS FECHAS
	document.getElementsByName("WTXDATEXP")[0].value = formateaFecha(document.getElementsByName("WTXDATEXP")[0].value)
	document.getElementsByName("WTXDALPAD")[0].value = formateaFecha(document.getElementsByName("WTXDALPAD")[0].value)
	document.getElementsByName("WTXDTNAIM")[0].value = formateaFecha(document.getElementsByName("WTXDTNAIM")[0].value)
	
	ocultarCamposVaciosyMostrar();
		
}

function ocultarCamposVaciosyMostrar()
{

		//OCULTAMOS LOS CAMPOS VACIOS
		if(document.getElementsByName("WTXPRTCGN")[0].value.length == 0)
		{
			document.getElementsByName("WTXPRTCGN")[0].parentNode.style.display = "none";
		}
		if(document.getElementsByName("WTXPRTCG2")[0].value.length == 0)
		{
			document.getElementsByName("WTXPRTCG2")[0].parentNode.style.display = "none";
		}
		if(document.getElementsByName("WTXCALNUN")[0].value.length == 0)
		{
			document.getElementsByName("WTXCALNUN")[0].parentNode.style.display = "none";
		}
		if(document.getElementsByName("WTXPSEVIA")[0].value.length == 0)
		{
			document.getElementsByName("WTXPSEVIA")[0].parentNode.style.display = "none";
		}		
		
		 //QUITANOS MARGENES DEL CAMPO OLCULTO
		 document.getElementsByName("WTXDATNAI")[0].parentNode.style.margin  = 0;
		 document.getElementsByName("WTXDATNAI")[0].parentNode.style.padding = 0;
		
		 var capa = document.getElementById("WTXIPSMU0");
		 createInputText(capa,capa.name,capa.value,capa.title,20)
		 capa = document.getElementById("WTXIPSMU1");
		 createInputText(capa,capa.name,capa.value,capa.title,70)
		 capa = document.getElementById("WTXIPSEM0");
		 createInputText(capa,capa.name,capa.value,capa.title,20)
		 capa = document.getElementById("WTXIPSEM1");
		 createInputText(capa,capa.name,capa.value,capa.title,70)
		 capa = document.getElementById("WTXIPSTDO");
		 createInputText(capa,capa.name,capa.value,capa.title,20)
		 capa = document.getElementById("WTXTIPVIA");
		 createInputText(capa,capa.name,capa.value,capa.title,20)
		 capa = document.getElementById("WTXPANAIX");
		 createInputText(capa,capa.name,capa.value,capa.title,20)
		
		
		
		//bloqueamos los input text
		var inputs = getElementsByClassName("capaInteriorFormulario","div",document)[0].getElementsByTagName("INPUT");
		var i = 0;
		while(i<inputs.length)
		{
			if(inputs[i].type == "text")
			{				
				inputs[i].readOnly = true;
			}
			i++;
		}
		//MOSTRAMOS LOS INPUTS DEL FORMULARIO
		var capaInt = getElementsByClassName("capaInteriorCargaFormulario","div",document)[0];
		getElementsByClassName("capaInteriorFormulario","div",document)[0].style.display = "block";
		capaInt.style.display = "none";
}
function formateaFecha(fecha)
{
	var anyo = fecha.substring(0,4);
	var mes  = fecha.substring(4,6);
	var dia  = fecha.substring(6,8);
	
	var fechaFormat = dia+"/"+mes+"/"+anyo
	return fechaFormat;
}

function CDomicili_StartCons()
{	
	var bModificar = false;
	
	if(querySt("procedencia").toLowerCase() == "confirmacion")
	{ 
		bModificar = true;
	}
	if (bModificar)
	{		
		ocultarCamposVaciosyMostrar();
		
		var inputForm     = getElementsByClassName("destinoChecks","div",document)[0];		
		inputForm.style.background = "none"; 
		inputForm.style.backgroundImage = "none"; 
		inputForm.style.height = "auto"; 
		
		var organismosAcum = document.getElementById("WTXDCORGN").value;
		var organismos = organismosAcum.split("|");		
		var i = 0;
		while (i < organismos.length)
		{
			var idOrg = organismos[i].split("$$")[0]
			var dsOrg = organismos[i].split("$$")[1]		
			if(idOrg.length > 0)			
			{createCheckBox(inputForm,"NOMCHK"+ idOrg,idOrg,dsOrg);}
			i++;
		}
		var orgSelectedAcum = document.getElementById("WTXIDORGA").value;
		var organismosSel = orgSelectedAcum.split("|");		
		i = 0;
		var busc = "";
		while (i < organismosSel.length)
		{
			if(organismosSel[i].length > 0)
			{				
				busc = "NOMCHK"+organismosSel[i];
				if(document.getElementById(busc))
				{
					document.getElementById(busc).checked = true;
				}
			}
			i++;
		}
	}
	else
	{ 		
		//comprovamos que se haya informado el valor
		if(document.getElementsByName("FIL_numDocumento")[0].value.length > 0 )
		{
			document.getElementsByName("btnAceptar")[0].click();
			document.getElementsByName("btnAceptar")[1].click();
		}
		else
		{
			setTimeout("CDomicili_StartCons()",500);

		}
		
	}
	
	
}

function querySt(ji) 
{
	var retorn = "";
	var hu = window.location.search.substring(1);
	var gy = hu.split("&");
	var ft;
	for (i=0;i<gy.length;i++) 
	{
		ft = gy[i].split("=");
		if (ft[0] == ji) 
		{
			 retorn = ft[1];
		}
	}
	return retorn;
}

function abrirPDFVolante()
{
	if ( ID_PDF_Generat.length >0)
	{
		firma_AbrirVentana("../externos/asp/abrirPDFvolante.asp?id="+ID_PDF_Generat,800,600,"yes","Volant",true);
	}
	else
	{
		alert(obtenerLiterales(6));
	}
}

function obtenerLiterales(id)
{
	var sStr = "";
	var idioma = document.getElementsByName("WTGIDIOMA");
	if (idioma.length > 0 )
	{
		idioma = idioma.item(0).value;
	}
	else
	{
		idioma = "C";
	}
	if(idioma == "S")
	{
		switch(id)
		{
			case 1:
				sStr = "Aun no se han obtenido los datos del padrón.";
				break;
			case 2:
				sStr = "Solo puede seleccionar una de las opciones de notificación al CatSalut.";
				break;
			case 3:
				sStr = "Debe seleccionar un mínimo de un organismo a notificar.";
				break;
			case 4:
				sStr = "Debe ser mayor de 16 años para tramitar.<br><a href=\"./../\" >volver</a>";
				break;	
			case 5:
				sStr = "No esta empadronado en este municipio.<br><a href=\"./../\" >volver</a>";
				break;
			case 6:
				sStr = "Volante no disponible.";
				break;				
			case 7:
				sStr = "Es necesario informar el nombre y primer apellido del solicitante o bien su razón social";
				break;				
			case 8:
				sStr = "Es necesario informar el nombre o razón social de al menos uno de los arquitectos/ingenieros";
				break;				
			case 9:
				sStr = "Es necesario informar el teléfono de casa del solicitante o bien su teléfono movil";
				break;	
			case 10:
				sStr = "Error:Tiempo de espera excedido, pruebe en unos minutos.<br><a href=\"./../\" >volver</a>";
				break;					
			default: 
				sStr = "Error";
				break;
		}
	}
	else
	{
		switch(id)
		{
			case 1:
				sStr = "Encara no s'han carregat les dades del padró.";
				break;
			case 2:
				sStr = "Només pot seleccionar una de les opcions de notificació al CatSalut.";
				break;
			case 3:
				sStr = "Ha de seleccionar com a mínim un organisme a notificar.";
				break;
			case 4:
				sStr = "Has de ser major de 16 anys per tramitar.<br><a href=\"./../\" >Tornar</a>";
				break;		
			case 5:
				sStr = "No esta empadronat en aquest municipi.<br><a href=\"./../\" >Tornar</a>";
				break;		
			case 6:
				sStr = "Volant no disponible.";
				break;	
			case 7:
				sStr = "Es necessari informar el nom i primer cognom del sol·licitant o bé la seva raó social";
				break;				
			case 8:
				sStr = "Es necessari informar el nom o raó social d'almenys un dels arquitectes/enginyers";
				break;				
			case 9:
				sStr = "Es necessari informar el telèfon de casa del sol·licitant o bé el seu telèfon mòbil";
				break;					
			case 10:
				sStr = "Error:Temps d'espera excedit, provi un altre cop en uns minuts.<br><a href=\"./../\" >tornar</a>";
				break;					
			case 11:
				sStr = "Error: Ha d'acceptar les condicions del servei de notificacions electròniques";
				break;	
			default:
				sStr = "Error"; 
				break;
		}
	}
	return sStr;
}
function AnadirValidacionHeLeido(oEvent)
{	var element;
	var ocampo;		
	element = document.getElementById("btnAceptar")
	//Afegim missatge d'error més explicatiu en el click del boto d'enviar o be el treiem perque no es mostri si no hi ha error.
	if (NavegadorIE())
	{				ocampo=oEvent.srcElement;
		if (ocampo.checked)
		{element.attachEvent('onclick',mostrarErrorAcceptacioNormesENotum);}
		else
		{element.detachEvent('onclick',mostrarErrorAcceptacioNormesENotum);}
	}
	else
	{
		ocampo=oEvent.target;	
		if (ocampo.checked )
		{element.addEventListener('click',mostrarErrorAcceptacioNormesENotum,false);}
		else
		{element.removeEventListener('click',mostrarErrorAcceptacioNormesENotum,false);}			
	}
	//Marquem segona check com obligatoria si hem marcat la primera o be desfem aquesta obligariotetat si desmarquem la primera.
	element = document.getElementsByName("WTXHELLEG");
	if (ocampo.checked)
	{			element[5].value = "not null"
			element[0].setAttribute("onblur","CampoObligatorio(WTXHELLEG[0].value);");
			element[0].checked = false;
			element[0].value = "";			
	}
	else
  {
			element[5].value = "null"
			element[0].setAttribute("onblur","");
			element[0].checked = false;
			element[0].value = "S";						
	}	
}

function mostrarErrorAcceptacioNormesENotum()
{ 
		element = document.getElementsByName("WTXHELLEG")
		if (!element[0].checked)
		{
			alert(obtenerLiterales(11));
		}		
}
