/*-------------- 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

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)



--------------------------------------------------------------------------------------------------------------*/
// -------------------- 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) {
	var dni;
	var lletra;
	var lletra_correcta;
	var bOk;

	var ocampo;
	ocampo=document.getElementById(event.srcElement.name);
	
	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)) 
      			{
      				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)) 
      		{            	 
              	 ocampo.value=nif.concat(quina_lletra(nif));
              }
          
          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) {
	var dni;
	var lletra;
	var lletra_correcta;
	var bOk;

	var ocampo;

	

	ocampo=document.getElementById(event.srcElement.name);
	if ((event.srcElement.name=='WTGNUMDOC') || (event.srcElement.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){	
  ocampo=document.getElementById(event.srcElement.name);
  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)
{
  ocampo=document.getElementById(event.srcElement.name);
  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)
{
  ocampo=document.getElementById(event.srcElement.name);
  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)
{
  ocampo=document.getElementById(event.srcElement.name);
  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){
  ocampo=document.getElementById(event.srcElement.name);
  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)
{
  ocampo=document.getElementById(event.srcElement.name);
  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)
{
  
  ocampo=document.getElementById(event.srcElement.name);
  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){
  var bTraspas;
  ocampo=document.getElementById(event.srcElement.name);
  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){
  var iDia;
  var iMes;
  var iAny;
	ocampo=document.getElementById(event.srcElement.name);
  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)
{ 
  ocampo=document.getElementById(event.srcElement.name);
  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)
{ 

  ocampo=document.getElementById(event.srcElement.name);
  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); 
  }
}

// -------------------- 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();
	}
}

////////////////////////////////////////
////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)
{
  var ocampo=document.getElementById(event.srcElement.name);
  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()
{
  var sTexto;
  sTexto='Se ha provocado el evento ' + event.type + ' sobre el campo ' + event.srcElement.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="";  
      }
   }
}

function CopiarEmail()
{
  document.getElementById('WTGMAINOT').value=document.getElementById(event.srcElement.name).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});
    }




