    
    function validaArchivoPdf(source, arguments) {
    
        //alert(arguments.Value);
    
        var filePath = arguments.Value;

        if(filePath.indexOf('.') == -1){
            arguments.IsValid = false;
            return;
        }
        var validExtensions = new Array();
        var ext = filePath.substring(filePath.lastIndexOf('.') + 1).toLowerCase();
    
        validExtensions[0] = 'pdf';
        /*
        validExtensions[1] = 'jpeg';
        validExtensions[2] = 'bmp';
        validExtensions[3] = 'png';
        validExtensions[4] = 'gif';  
        validExtensions[5] = 'tif';  
        validExtensions[6] = 'tiff';
        validExtensions[7] = 'txt';
        validExtensions[8] = 'doc';
        validExtensions[9] = 'xls';
        validExtensions[10] = 'pdf';
        */
        for(var i = 0; i < validExtensions.length; i++) {
            if(ext == validExtensions[i]){
                arguments.IsValid = true;
                return;
            }
                
        }
        //alert('Los archivos ' + ext.toUpperCase() + ' no son válidos.');
        arguments.IsValid = false;
        return;
    }
    
    function validaArchivoImagen(source, arguments) {
        var filePath = arguments.Value;

        if(filePath.indexOf('.') == -1){
            arguments.IsValid = false;
            return;
        }
        
        var validExtensions = new Array();
        var ext = filePath.substring(filePath.lastIndexOf('.') + 1).toLowerCase();
    
        validExtensions[0] = 'jpg';
        validExtensions[1] = 'gif';
        validExtensions[2] = 'png';
        
        for(var i = 0; i < validExtensions.length; i++) {
            if(ext == validExtensions[i]){
                arguments.IsValid = true;
                return;
            }
        }

        //alert('Los archivos ' + ext.toUpperCase() + ' no son válidos.');
        arguments.IsValid = false;
        return;
    }
    
    function validaArchivoVideo(source, arguments) {
        var filePath = arguments.Value;

        if(filePath.indexOf('.') == -1){
            arguments.IsValid = false;
            return;
        }
        
        var validExtensions = new Array();
        var ext = filePath.substring(filePath.lastIndexOf('.') + 1).toLowerCase();
    
        validExtensions[0] = 'flv';
        
        for(var i = 0; i < validExtensions.length; i++) {
            if(ext == validExtensions[i]){
                arguments.IsValid = true;
                return;
            }
        }

        //alert('Los archivos ' + ext.toUpperCase() + ' no son válidos.');
        arguments.IsValid = false;
        return;
    }
    
    
    function getViewWidth(){
        var x;
        if (self.innerHeight) { // MOS
            x = self.innerWidth;
        } else if (document.documentElement && document.documentElement.clientWidth) { // IE6 Strict
            x = document.documentElement.clientWidth;
        } else if (document.body.clientHeight) { // IE quirks
            x = document.body.clientWidth;
        }
        return x;
    }
    
    var a, mes, dia, anyo, febrero;
    
    var catalan = false; 
	 
	function fechar()
	{	
		var dateF = new Date();
		var anyoF = dateF.getYear();
		var diaF = dateF.getDay();
		var mesF = dateF.getMonth();
		var ndiaF = dateF.getDate(); 
		var fechaF = "";
		if (catalan){
			if (diaF==0) {var diaF="Diumenge"};
			if (diaF==1) {var diaF="Dilluns"};
			if (diaF==2) {var diaF="Dimarts"};
			if (diaF==3) {var diaF="Dimecres"};
			if (diaF==4) {var diaF="Dijous"};
			if (diaF==5) {var diaF="Divendres"};
			if (diaF==6) {var diaF="Dissabte"};
			if (mesF==0) {var mesF="Gener"};
			if (mesF==1) {var mesF="Febrer"};
			if (mesF==2) {var mesF="Març"};
			if (mesF==3) {var mesF="Abril"};
			if (mesF==4) {var mesF="Maig"};
			if (mesF==5) {var mesF="Juny"};
			if (mesF==6) {var mesF="Juliol"};
			if (mesF==7) {var mesF="Agost"};
			if (mesF==8) {var mesF="Setembre"};
			if (mesF==9) {var mesF="Octubre"};
			if (mesF==10) {var mesF="Novembre"};
			if (mesF==11) {var mesF="Desembre"};
			if (!ie4){
				anyo = "20" + (anyo.toString()).substring(1,3);
			}
			if (mesF == "Abril" || mesF == "Agost" || mesF == "Octubre"){
				fechaF = diaF + ", " + ndiaF + " d'" + mesF + " de " + anyoF;
			}else{
				fechaF = diaF + ", " + ndiaF + " de " + mesF + " de " + anyoF;
			}
			
		}else{
			if (diaF==0) {var diaF="Domingo"};
			if (diaF==1) {var diaF="Lunes"};
			if (diaF==2) {var diaF="Martes"};
			if (diaF==3) {var diaF="Miercoles"};
			if (diaF==4) {var diaF="Jueves"};
			if (diaF==5) {var diaF="Viernes"};
			if (diaF==6) {var diaF="Sabado"};
			if (mesF==0) {var mesF="Enero"};
			if (mesF==1) {var mesF="Febrero"};
			if (mesF==2) {var mesF="Marzo"};
			if (mesF==3) {var mesF="Abril"};
			if (mesF==4) {var mesF="Mayo"};
			if (mesF==5) {var mesF="Junio"};
			if (mesF==6) {var mesF="Julio"};
			if (mesF==7) {var mesF="Agosto"};
			if (mesF==8) {var mesF="Septiembre"};
			if (mesF==9) {var mesF="Octubre"};
			if (mesF==10) {var mesF="Noviembre"};
			if (mesF==11) {var mesF="Diciembre"};
			if (!ie4){
				anyo = "20" + (anyo.toString()).substring(1,3);
			}
				fechaF = diaF + " " + ndiaF + " de " + mesF + " de " + anyoF;
		}
		
		return fechaF;
	}
	
	function trim(out){
		//quitamos los espacios al principio y al final
		if (out=="") {
		    return out;
		}
		while(out.charAt(out.length-1)==" "){
			out = out.substring(0, out.length-1);
		}
		while(out.charAt(0)==" "){
			out = out.substring(1, out.length);
		}
		return out;
	}
	
	function isNumeric(sText){//solo numeros enteros
		   var ValidChars = "0123456789.";
		   var IsNumber=true;
		   var Char;
		   for (i = 0; i < sText.length && IsNumber == true; i++) { 
			  Char = sText.charAt(i); 
			  if (ValidChars.indexOf(Char) == -1) {
				 IsNumber = false;
			  }
		   }
		   return IsNumber;
	}
	
    function anyoBisiesto(anyo){
        if (anyo < 100)
            var fin = anyo + 1900;
        else
            var fin = anyo ;
        if (fin % 4 != 0)
            return false;
        else
        {
            if (fin % 100 == 0)
            {
                if (fin % 400 == 0)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return true;
            }
        }
    }
    
    function validarFecha(fecha){
       a=fecha.value;
       dia=a.split("/")[0];
       mes=a.split("/")[1];
       anyo=a.split("/")[2];
       
       if(anyoBisiesto(anyo))
           febrero=29;
       else
           febrero=28;
       if ((mes<1) || (mes>12))
       {
	   	   if (catalan){
				   alert("Mes no vàlid. Format dd/mm/aaaa");		
		   }else{
				   alert("Mes no válido. Formato dd/mm/aaaa.");
		   }
           fecha.focus();
           fecha.select();
           return;
       }
       if ((mes==2) && ((dia<1) || (dia>febrero)))
       {
	   		if (catalan) {
           		alert("Dia no vàlid. Format dd/mm/aaa");		
			}else{
				alert("Dia no válido. Formato dd/mm/aaaa");
			}
           fecha.focus();
           fecha.select();
           return;
       }
       if (((mes==1) || (mes==3) || (mes==5) || (mes==7) || (mes==8) || (mes==10) || (mes==12)) && ((dia<1) || (dia>31)))
       {
           	if (catalan){
		   		alert("Dia no vàlid. Format dd/mm/aaa");
			}else{
				alert("Dia no válido. Formato dd/mm/aaaa");
			}
           fecha.focus();
           fecha.select();
           return;
       }
       if (((mes==4) || (mes==6) || (mes==9) || (mes==11)) && ((dia<1) || (dia>30)))
       {
           if (catalan){
		   		alert("Dia no vàlid. Format dd/mm/aaa");
			}else{
				alert("Dia no válido. Formato dd/mm/aaaa");
			}
           fecha.focus();
           fecha.select();
           return;
       }
       if ((anyo<1900) || (anyo>2100))
       {
           	if (catalan){
		   		alert("Any no vàlid. Format dd/mm/aaaa");
			}else{
				alert("Año no válido. Formato dd/mm/aaaa");
			}		  
           fecha.focus();
           fecha.select();
       } 
       else
          return true;
    }
    
function formateafecha(inputFecha){
	var a=inputFecha.value;
    var dia=a.split("/")[0];
    var mes=a.split("/")[1];
    var anyo=a.split("/")[2];
	if (dia==null || mes==null || anyo==null){
		return false;
	}
	if (dia.length==1){
		dia = "0" + dia;
	}
	if (mes.length==1){
		mes = "0" + mes;
	}
	if (anyo.length==2){
		anyo = "20" + anyo;
	}
	inputFecha.value = dia + "/" + mes + "/" + anyo;
	return true;
}

function verificaFecha(fecha){
	var charsValidos = "0123456789/";
	var temp = "";
	for (var i=0;i<fecha.value.length;i++){
		temp=fecha.value.substring(i,i+1)
		if (charsValidos.indexOf(temp)==-1){
			if (catalan){
				alert("caràcters no vàlids al camp data.");
			}else{
				alert("Caracteres no válidos en el campo fecha.");
			}
			fecha.select();
			fecha.focus();
			return false;
		}
  	}
	if (!formateafecha(fecha)){
		if (catalan){
			alert("Format de data incorrecte. Ha d’ésser dd/mm/aaaa.");
		}else{
			alert("Formato de fecha incorrecto. Debe ser dd/mm/aaaa.");
		}
		fecha.select();
		fecha.focus();
		return false;
	}
	var dia = "";
	var mes = "";
	var ano = ""
	if (fecha.value!=""){
		if (fecha.value.indexOf("/")==-1){
			if (catalan){
				alert("Ha d'introduir la data amb el format dd/mm/aaaa");
			}else{
				alert ("Debe introducir la fecha con el formato dd/mm/aaaa");
			}
			fecha.focus();
			fecha.select();
			return false;
		}
		dia = fecha.value.substring(0, fecha.value.indexOf("/"));
		if (dia.indexOf("0")==0){
			dia = dia.substring(1,2);
		}
		if (parseInt(dia, 10)<1 || parseInt(dia, 10)>31){
			if (catalan){
				alert("Ha introduït una data incorrecta.");
			}else{
				alert ("Ha introducido una fecha incorrecta.");
			}
			fecha.focus();
			fecha.select();
			return false;
		}
		if(validarFecha(fecha)){
			return true;
		}else{
			return false;
		}
		return true;
	}
	return true;
}

function verificaFecha__2(source, arguments){
	var charsValidos = "0123456789/";
	var valor = trim(arguments.Value);
	var temp = "";
	for (var i=0;i<valor.length;i++){
		temp = valor.substring(i,i+1)
		if (charsValidos.indexOf(temp)==-1){
			arguments.IsValid = false;
            return;
		}
  	}
	if (!formateafecha(fecha)){
		arguments.IsValid = false;
        return;
	}
	var dia = "";
	var mes = "";
	var ano = ""
	if (valor!=""){
		if (valor.indexOf("/")==-1){
			arguments.IsValid = false;
            return;
		}
		dia = valor.substring(0, valor.indexOf("/"));
		if (dia.indexOf("0")==0){
			dia = dia.substring(1,2);
		}
		if (parseInt(dia, 10)<1 || parseInt(dia, 10)>31){
			arguments.IsValid = false;
            return;
		}
		if(validarFecha(fecha)){
			return true;
		}else{
			return false;
		}
		return true;
	}
	return true;
}

function verificaImagen(inputImagen){
	var tipoImagen
	tipoImagen = inputImagen.value.substring(inputImagen.value.length-3, inputImagen.value.length)
	tipoImagen = tipoImagen.toLowerCase();
	if (tipoImagen!="gif" && tipoImagen!="jpg"){
		if (catalan){
			alert("La imatge ha tenir format GIF o JPG.");
		}else{
			alert("La imagen ha de ser en formato GIF o JPF.");
		}
		inputImagen.focus();
		return false;
	}else{
		return true;
	}
}

function verificaArchivo(inputArchivo){
	var tipoArchivo = "";
	tipoArchivo = inputArchivo.value.substring(inputArchivo.value.length-3, inputArchivo.value.length)
	tipoArchivo = tipoArchivo.toLowerCase();
	if (tipoArchivo!="gif" && tipoArchivo!="jpg" && tipoArchivo!="zip" && tipoArchivo!="doc" && tipoArchivo!="xls" && tipoArchivo!="mdb" && tipoArchivo!="dwg" && tipoArchivo!="pt8" && tipoArchivo!="tif") {
		if (catalan){
			alert("L'arxiu ha de tenir formar ZIP, DWG, GIF, JPG, TIF, Word, Access, Excel o Presto.");
		}else{
			alert("El archivo ha de ser en formato ZIP, DWG, GIF, JPG, TIF, Word, Access, Excel o Presto.");
		}
		inputArchivo.focus();
		return false;
	}else{
		return true;
	}
}

function verificaArchivoDoc(inputArchivo){
	var tipoArchivo = "";
	tipoArchivo = inputArchivo.value.substring(inputArchivo.value.length-3, inputArchivo.value.length)
	tipoArchivo = tipoArchivo.toLowerCase();
	if (tipoArchivo!="doc") {
		if (catalan){
			alert("L'arxiu ha d'ésser en format Word. [.doc]");
		}else{
			alert("El archivo ha de ser en formato Word [.doc]");
		}
		inputArchivo.focus();
		return false;
	}else{
		return true;
	}
}

function diferenciaFechas(fecha1, fecha2){
	var fechaInicio = new Date(fecha1.value.substring(3, 5) + "/" + fecha1.value.substring(0, 2) + "/" +fecha1.value.substring(6, 10))
	var fechaFin =  new Date(fecha2.value.substring(3, 5) + "/" + fecha2.value.substring(0, 2) + "/" +fecha2.value.substring(6, 10));
	var diferencia = fechaFin.getTime() - fechaInicio.getTime();
	var diasDif = Math.floor(diferencia/(1000*60*60*24));
	return diasDif;
}

function fechaFutura(fechaActual){
	var today = new Date();
	var year = today.getYear();
	if(year<1000) year+=1900;
	var fechaInicio = new Date((today.getMonth()+1) + "/" + today.getDate() + "/" + year); 
	var fechaFin =  new Date(fechaActual.substring(3, 5) + "/" + fechaActual.substring(0, 2) + "/" +fechaActual.substring(6, 10));
	var diferencia = fechaFin.getTime() - fechaInicio.getTime();
	var diasDif = Math.floor(diferencia/(1000*60*60*24));
	if (diasDif<0){
		return false;
	}else{
		return true;
	}
}
///////////////////////////////////////////////////
function sinAcentos(str){
	var out = "";
	out = str;
	var acentos =   "áéíóúàèìòùäëïöüâêîôû'";
	var sinAcentos ="aeiouaeiouaeiouaeiou´";
	for(var cont=0; cont < str.length; cont++){
		if(acentos.indexOf(str.charAt(cont))!=-1){
			//alert(cont);
			out = out.substring(0, cont) + sinAcentos.charAt(acentos.indexOf(out.charAt(cont))) + out.substring(cont+1, out.length);
			
		}
	}
	return out;
}

function suprimeEspacios(str) {
	var numComillasDobles = 0;
	var out = "";
	flag = 0;
	for (i = 0; i < str.length; i++) {
		if (str.charAt(i) != " ") {
			if (str.charAt(i) == "\"" || str.charAt(i) == "'"){
				if (str.charAt(i) == "\"") {
					numComillasDobles ++;
					if (numComillasDobles % 2 == 0) {
						out += "”";
					}else{
						out += "“";
					}
				}else{
					out += "’";
					//out += "’";//‘ ’
				}
			}else{
				out += str.charAt(i);
			}
			flag = 0;
		}else{
			if(flag == 0) {
				out += " ";
				flag = 1;
      		}else{
      			out += "";
				flag = 1;
      		}
   		}
	}
	//quitamos los espacios al principio y al final
	while(out.charAt(out.length-1)==" "){
				out = out.substring(0, out.length-1);
	}
	while(out.charAt(0)==" "){
		out = out.substring(1, out.length);
	}
	return out;

}
function quitaEspaciosForm(objForm){
	for (var i=0;i<objForm.elements.length;i++){
		if (objForm.elements[i].type.toLowerCase() == "text" || objForm.elements[i].type.toLowerCase() == "textarea" || objForm.elements[i].type.toLowerCase() == "password"){
			objForm.elements[i].value = suprimeEspacios(objForm.elements[i].value);
			if (objForm.elements[i].value==" "){
				objForm.elements[i].value="";
			}
		}
	}
}

//////////////////quita espacios y comillas pero permite código html////////////////////////////////////
function suprimeEspacios2(str) {
	var numComillasDobles = 0;
	var out = "";
	flag = 0;
	for (i = 0; i < str.length; i++) {
		if (str.charAt(i) != " ") {
			if (str.charAt(i) == "\"" || str.charAt(i) == "'"){
					out += "''";
			}else{
				out += str.charAt(i);
			}
			flag = 0;
		}else{
			if(flag == 0) {
				out += " ";
				flag = 1;
      		}else{
      			out += "";
				flag = 1;
      		}
   		}
	}
	//quitamos los espacios al principio y al final
	while(out.charAt(out.length-1)==" "){
				out = out.substring(0, out.length-1);
	}
	while(out.charAt(0)==" "){
		out = out.substring(1, out.length);
	}
	return out;

}
function quitaEspaciosForm2(){
	for (var i=0;i<document.forms[0].elements.length;i++){
		if (document.forms[0].elements[i].type.toLowerCase() == "text" || document.forms[0].elements[i].type.toLowerCase() == "textarea" || document.forms[0].elements[i].type.toLowerCase() == "password"){
			document.forms[0].elements[i].value = suprimeEspacios2(document.forms[0].elements[i].value);
			if (document.forms[0].elements[i].value==" "){
				document.forms[0].elements[i].value="";
			}
		}
	}
}
///////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////
function testCodPostal(inputCP){
    var cadenaTest='1234567890.,';
    var temp;
    if (inputCP.value==""){
		if (catalan){
			alert("Ha d'introduir un codi postal.");	
		}else{
	    	alert ("Debe introducir un código postal.");
		}
    	inputCP.focus();
    	return false;
    }	
    inputCP.value = inputCP.value.replace('.','');
    inputCP.value = inputCP.value.replace(',','');
    
    for (var i=0;i<inputCP.value.length;i++){
	    temp=inputCP.value.substring(i,i+1);
	    if (cadenaTest.indexOf(temp)==-1){
			if (catalan) {
				alert("Ha introduït caràcters no vàlids al codi postal.");
			}else{
	        	alert("Ha introducido carácteres no validos en el código postal");
	   		}		
			inputCP.focus();
	   		return false;
	    }
    }
    if (inputCP.value.length!=5 ){
    	var diferencia = (5-parseInt(inputCP.value.length, 10));
    	var msg="";
    	if (diferencia>0){
			if (catalan){
				alert("Falten "+(5-parseInt(inputCP.value.length, 10))+" dígits al codi postal.");
			}else{
    			alert("Faltan "+(5-parseInt(inputCP.value.length, 10))+" dígitos en el código postal.");
			}
    	}else{
			if (catalan){
				alert("El codi postal ha de tenir 5 dígits.");
			}else{
    			alert("El codigo postal ha de ser de 5 dígitos.");
			}
    	}
    	inputCP.focus();
	return false;
    }
    return true;
}

function testCampo(campo, nombreCampo, minimoCaracteres){
	campo.value = suprimeEspacios(campo.value);
    if (campo.value.length < parseInt(minimoCaracteres, 10)){
	//alert ("La dada '"+nombreCampo+"' ha de tenir més de "+minimoCaracteres+" caracters");
		if (catalan){
			alert("La dada '"+nombreCampo+"' es obligatòria.");
		}else{
			alert ("El dato '"+nombreCampo+"' es obligatorio.");
		}
		campo.focus();
		return false;
    }else{
    	return true;
    }
}

function verificaFecha2(source, arguments){
    
    var valor = trim(arguments.Value);
    if (valor == "") {
        arguments.IsValid = false;
    
        return;
    }
    
    var arrFecha = valor.split("/");
  
    var dia = arrFecha[0];
    var mes = arrFecha[1];
    var any = arrFecha[2];
    
    if (dia=="" || dia==undefined || mes=="" || mes==undefined || any=="" || any==undefined) {
        //alert("false");
        arguments.IsValid = false;
        return;
    }
    
    if (dia.length<2 || mes.length<2 || any.length<4) {
        //alert("false2");
        arguments.IsValid = false;
        return;
    }
    if (parseInt(dia, 10)<1 || parseInt(dia, 10)>31){
        arguments.IsValid = false;
        return;
    }
    if (parseInt(mes, 10)<1 || parseInt(mes, 10)>12){
        arguments.IsValid = false;
        return;
    }
    if (parseInt(any, 10)>2100 || parseInt(any, 10)<1900) {
        //alert("false3");
        arguments.IsValid = false;
        return;
    }
    var febrero = 0;
    if (anyoBisiesto(any)){
        febrero = 29;
    }else{
        febrero = 28;
    }
    if ((mes==2) && ((dia<1) || (dia>febrero))){
        //alert("false4");
        arguments.IsValid = false;
        return;
    }
    
    if (((mes==1) || (mes==3) || (mes==5) || (mes==7) || (mes==8) || (mes==10) || (mes==12)) && ((dia<1) || (dia>31))){
        
       //alert("false5");
       arguments.IsValid = false;
       return;
    }
    if (((mes==4) || (mes==6) || (mes==9) || (mes==11)) && ((dia<1) || (dia>30))){
       
       //alert("false6");
       arguments.IsValid = false;
       return;
    }
       
    arguments.IsValid = true;
    return;
     	
}

function verificaFecha3(source, arguments){ //Permite dejar la fecha en blanco
   
    var valor = trim(arguments.Value);
    if (valor == "") {     
        arguments.IsValid = true;
        return;
    }
    
    var arrFecha = valor.split("/");
  
    var dia = arrFecha[0];
    var mes = arrFecha[1];
    var any = arrFecha[2];
    
    if (dia=="" || dia==undefined || mes=="" || mes==undefined || any=="" || any==undefined) {
        //alert("false");
        arguments.IsValid = false;
        return;
    }
    
    if (dia.length<2 || mes.length<2 || any.length<4) {
        //alert("false2");
        arguments.IsValid = false;
        return;
    }
    if (parseInt(dia, 10)<1 || parseInt(dia, 10)>31){
        //alert("==>" + parseInt("08" + ""));
        arguments.IsValid = false;
        return;
    }
    if (parseInt(mes, 10)<1 || parseInt(mes, 10)>12){
        arguments.IsValid = false;
        return;
    }
    if (parseInt(any, 10)>2100 || parseInt(any, 10)<1900) {
        //alert("false3");
        arguments.IsValid = false;
        return;
    }
    var febrero = 0;
    if (anyoBisiesto(any)){
        febrero = 29;
    }else{
        febrero = 28;
    }
    if ((mes==2) && ((dia<1) || (dia>febrero))){
        //alert("false4");
        arguments.IsValid = false;
        return;
    }
    
    if (((mes==1) || (mes==3) || (mes==5) || (mes==7) || (mes==8) || (mes==10) || (mes==12)) && ((dia<1) || (dia>31))){
        
       //alert("false5");
       arguments.IsValid = false;
       return;
    }
    if (((mes==4) || (mes==6) || (mes==9) || (mes==11)) && ((dia<1) || (dia>30))){
       
       //alert("false6");
       arguments.IsValid = false;
       return;
    }
       
    arguments.IsValid = true;
    return;
     	
}



function verificaNIF (source, arguments){
    
    var valor = arguments.Value;
    valor = trim(valor);
    
    valor = valor.replace('-','');
    valor = valor.replace('/','');
    valor = valor.replace('.','');
    valor = valor.replace('.','');
    valor = valor.replace(',','');
    valor = valor.replace(' ','');
    valor = valor.replace(' ','');
    
    if (valor == "") {
        arguments.IsValid = false;
        return;
    }
    var nif = valor;
    var numValidos="0123456789";
    var temp = "";
    if (nif.length>9){
   	 
   	 arguments.IsValid = false;
   	 return;
    }
    
    var numeros = nif.substring(0, nif.length-1);
    var letra = nif.charAt(nif.length-1);
    letra = letra.toUpperCase();
    valor=numeros+letra;
    if(letra<'A' || letra>'Z'){
   	    
   	    arguments.IsValid = false;
   	    return;
    }
   
    for (var i=0;i<numeros.length;i++){
	    temp=numeros.substring(i,i+1);
	    if (numValidos.indexOf(temp)==-1){
    	   	
	   	    arguments.IsValid = false;
	   	    return;
	    }
    }	
    var cadena = 'TRWAGMYFPDXBNJZSQVHLCKET';
    var posicion = numeros % 23;
    var letraCalculada = cadena.charAt(posicion);
    if (letra==letraCalculada) {
     arguments.IsValid = true;
   	 return;
    }else{

		arguments.IsValid = false;
		
		return;
    }
    arguments.IsValid = true;
}

function verificaNIF__OLD (inputNIF){
   
   inputNIF.value = trim(inputNIF.value);
   
   inputNIF.value = inputNIF.value.replace('-','');
   inputNIF.value = inputNIF.value.replace('/','');
   inputNIF.value = inputNIF.value.replace('.','');
   inputNIF.value = inputNIF.value.replace('.','');
   inputNIF.value = inputNIF.value.replace(',','');
   inputNIF.value = inputNIF.value.replace(' ','');
   inputNIF.value = inputNIF.value.replace(' ','');
   
   if (obligatorio && inputNIF.value=="") {
        return false;
   }
   
   var nif = inputNIF.value;
   var numValidos="0123456789";
   var temp = "";
   if (nif.length>9){
   	if (catalan){
		alert("Introdueixi el NIF amb el format 12345678A");
	}else{	
		alert("Introduzca el NIF con el formato 12345678A");
	}
   	inputNIF.value="";
   	inputNIF.focus();
   	return false;
   }
   var numeros = nif.substring(0, nif.length-1);
   var letra = nif.charAt(nif.length-1);
   letra = letra.toUpperCase();
   inputNIF.value=numeros+letra;
   if(letra<'A' || letra>'Z'){
   	if (catalan){
		alert("Introdueixi el NIF amb el format 12345678A");
	}else{	
		alert("Introduzca el NIF con el formato 12345678A");
	}
   	inputNIF.value="";
   	inputNIF.focus();
   	return false;
   }
   for (var i=0;i<numeros.length;i++){
	    temp=numeros.substring(i,i+1);
	    if (numValidos.indexOf(temp)==-1){
	        alert("Introduzca el NIF con el formato 12345678C");
   		inputNIF.value="";
	   	inputNIF.focus();
	   	return false;
	    }
  }	
   var cadena = 'TRWAGMYFPDXBNJZSQVHLCKET';
   var posicion = numeros % 23;
   var letraCalculada = cadena.charAt(posicion);
   if (letra==letraCalculada) {
   	return true;
   }else{
   		if (catalan){
			alert("El NIF introduït no es vàlid. ");	
		}else{	
			alert ("El NIF introducido no es válido.");
		}
   		inputNIF.value="";
		inputNIF.focus();
		return false;
   }
}

function validaNum(inputNum){
	var digits="0123456789.,"
	var temp = "";
	var entero="";
	var decimal="";
	var entero1="";
	if (inputNum.value=="") {
		if (catalan){
			alert("Número no vàlid!");
		}else{
			alert("Número no válido!")
		}
		inputNum.value="";
		inputNum.focus();
		//foco (inputNum);
		return false
	}
	for (var i=0;i<inputNum.value.length;i++){
		temp=inputNum.value.substring(i,i+1)
		if (digits.indexOf(temp)==-1){
			if (catalan){
				alert("Número no vàlid!");
			}else{
				alert("Número no válido!")
			}
			//inputNum.value="0";
			inputNum.select();
			inputNum.focus();
			//foco(inputNum);
			return false;
		}
	}
	if(inputNum.value.indexOf(",")!=-1){
		entero = inputNum.value.substring(0, inputNum.value.indexOf(","));
		decimal = inputNum.value.substring(inputNum.value.indexOf(",")+1, inputNum.value.length);
	}else{
		entero = inputNum.value;
		//decimal = "00";
	}
	if (decimal.length>2){
		decimal = decimal.substring(0,2);
	}
	if(decimal.indexOf(".")!=-1){
		if (catalan){
			alert("Número no vàlid!");
		}else{
			alert("Número no válido!")
		}
		//inputNum.value="0";
		inputNum.select();
		inputNum.focus();
		//foco(inputNum);
		return false;
	}
	if(entero.indexOf(".")!=-1){
		entero1=entero.substring(0, entero.indexOf("."));
		if (entero1.length>3){
			if (catalan){
				alert("Número no vàlid!");
			}else{
				alert("Número no válido!")
			}
			//inputNum.value="0";
			inputNum.select();
			inputNum.focus();
			//foco(inputNum);
			return false;
		}
		entero=entero.substring(entero.indexOf(".")+1, entero.length);
		if (!(entero.length==3 || entero.length==7 ||entero.length==11 || entero.length==15 || entero.length==19)){
			if (catalan){
				alert("Número no vàlid!");
			}else{
				alert("Número no válido!")
			}
			//inputNum.value="0";
			inputNum.select();
			inputNum.focus();
			//foco(inputNum);
			return false;
		}
		for (var i=0; i<entero.length; i++){
			temp=entero.substring(i,i+1);
			if (temp=="." && !(i==3 || i==7 || i==11 || i==15 || i==19)){
				if (catalan){
					alert("Número no vàlid!");
				}else{
					alert("Número no válido!")
				}
				//inputNum.value="0";
				inputNum.select();
				inputNum.focus();
				//foco(inputNum);
				return false;
			}
		}    
	}
	if (entero1.length!=0){
		if (decimal.length==0){
			//decimal="00";
		}
		if (decimal.length!=0){
			inputNum.value=entero1+"."+entero+","+decimal;
		}
	
	}else{
		if (decimal.length!=0){
			inputNum.value=entero+","+decimal;
		}else{
			inputNum.value=entero;
		}
		
	}
	return true;
}

function capitalizarString(cadena){
    var b, c;
    var temp="";
    var str = cadena;
    b=true;
    for (var i=0;i<str.length;i++){
	    c=str.substring(i,i+1);
	    if(b) temp=temp + c.toUpperCase();
	    else temp=temp + c.toLowerCase();
	    if (c==" ") b=true;
	    else b=false;
    }	
    return temp;
}
// Habria que controlar que el email no tuviera ningun espacio...
function verificaEmail(valor) {
   	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(valor)){
    	return (true)
  	} else {
		
    	return (false);
  	}
}

function verificaTelefono(inputNum, telf_o_fax, vacio){// vacio=true --> puede estar vacio
	var digits = "0123456789-.()";
	var tempChar = '';
	var len = inputNum.value.length;
	for (var i=0;i<len;i++){
		inputNum.value = inputNum.value.replace('-','');
		inputNum.value = inputNum.value.replace('.','');
		inputNum.value = inputNum.value.replace('(','');
		inputNum.value = inputNum.value.replace(')','');
		// eliminación de todos los espacios.
		inputNum.value = inputNum.value.replace(' ','');
	}
	if (inputNum.value=="" && vacio==false) {
		if (catalan){
			alert("Ha d'introduir el número de " + telf_o_fax + ".");	
		}else{
			alert("Ha de introducir el número de " + telf_o_fax + ".");
		}
		return false
	}
	if (inputNum.value!=""){
		for (var i=0;i<inputNum.value.length;i++){
			tempChar=inputNum.value.substring(i,i+1)
			if (digits.indexOf(tempChar)==-1){
				if (catalan){
					alert("Caràcters  no vàlids al número de " + telf_o_fax + ".");
				}else{
					alert("Carácteres no válidos en el número de " + telf_o_fax + ".");
				}
				return false;
			}
		}
		if (inputNum.value.length > 12 || inputNum.value.length < 9){
			if (catalan){
				alert("Número de " + telf_o_fax + " no vàlid.");
			}else{
				alert("Número de " + telf_o_fax + " no válido.");
			}
			return false;
		}
	}
	return true;
}

function verificaUserPass(inputUserPass){
	
	var validos="abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZçÇ0123456789";
	var caracter="";
	for(var i=0; i<inputUserPass.value.length; i++){
		caracter = inputUserPass.value.charAt(i);
		if (validos.indexOf(caracter)==-1){
			if (inputUserPass.type=="text"){			
				if (catalan) {
					alert ("El nom d'usuari introduït conté caràcters no vàlids.");
				}else{
					alert ("El nombre de usuario introducido contiene caracteres no válidos.");
				}
			}else{
				if (catalan) {
					alert ("El password introduït conté caràcters no vàlids.");
				}else{
					alert ("El password introducido contiene caracteres no válidos.");
				}
			}
			inputUserPass.value="";
			inputUserPass.value="";
			inputUserPass.focus();
			return false;
		}
	}
	return true;
}

function formatNumDb(strNum){//formatea el número introducido por el usuario a 1234567.90
    if (strNum.indexOf(',')!=-1){
        entero = strNum.substring(0, strNum.indexOf(','));
        decimal = strNum.substring(strNum.indexOf(',')+1);
    }else{
        entero=strNum;
        decimal="00";
    }
    while (entero.indexOf('.')!=-1){
        entero = entero.replace('.','');
    }
    numFinal= entero +'.'+decimal;
    return (numFinal);
}

function formatNumUser(strNum){//formatea el número para presentarlo al usuario a  1.234.567,90
    if (strNum.indexOf('.')!=-1){
        entero = strNum.substring(0, strNum.indexOf('.'));
        decimal = strNum.substring(strNum.indexOf('.')+1);
    }else{
        entero=strNum;
        decimal="00";
    }  
    i=0;
    entero2="";
        while(i <= entero.length){
             if (i==3 || i==6 || i==9 || i==12 || i==15){
                entero2 = "."+entero.substring(entero.length-i, entero.length-i+1) + entero2;
             }else{
                entero2 = entero.substring(entero.length-i, entero.length-i+1) + entero2;
             }
            i=i+1;
        }
    if (entero2.indexOf('.')==0){
        entero2 = entero2.substring(1);
    }
    //numFinal= entero2 +','+decimal;
	numFinal= entero2;
    return (numFinal);
}


function resaltarFila(input, posicion)//resalta las filas que seleccionamos para entrar
{
    var i=0;
    for (i=0 ; i<3; i++){
        if (input.checked==true){
            document.forms[0].elements[(posicion)*3+i].style.background = '#cccccc';    
        }else{ 
            document.forms[0].elements[(posicion)*3+i].style.background = 'transparent';             
        }
	  
    }
    document.forms[0].elements[(posicion)*3].style.background = '#ffffff';  
}

function resaltarFilaRegs(input, posicion, longLinea)//resalta las filas que seleccionamos para entrar
{
    var i=0;
    for (i=1 ; i<longLinea; i++){
			//alert((document.forms[0].elements[(posicion)*longLinea+i].type).toLowerCase());
		if ((document.forms[0].elements[(posicion)*longLinea+i].type).toLowerCase()=="text") {
			
			if (input.checked==true){
				document.forms[0].elements[(posicion)*longLinea+i].style.background = '#cccccc';    
			}else{ 
				document.forms[0].elements[(posicion)*longLinea+i].style.background = 'transparent';             
			}
		}
    }
}

function resaltarFilaTots(input, posicion)//resalta las filas que seleccionamos para entrar
{
    var i=0;
    for (i=0 ; i<3; i++){
        if (input.checked==true){
            document.forms[0].elements[(posicion)*3+i].style.background = '#ECE7DE';    
        }else{ 
            document.forms[0].elements[(posicion)*3+i].style.background = 'transparent';              
        }
	  
    }
    document.forms[0].elements[(posicion)*3].style.background = '#ffffff';  
}

var nav4 = window.Event ? true : false; 

function acceptNum(evt){//permite punto decimal
    //var nav4 = window.Event ? true : false; 
	//Backspace = 8, Enter = 13, '0' = 48, '9' = 57
	//llamada --> onKeyPress="return acceptNum(event)"
	var key = (evt.which) ? evt.which : event.keyCode;
	return (key <= 13 || (key >= 48 && key <= 57) || key==46);
	
}

function acceptNumInt(evt){//solo permite enteros
	//var nav4 = window.Event ? true : false;  	
	//Backspace = 8, Enter = 13, '0' = 48, '9' = 57
	//llamada --> onKeyPress="return acceptNumInt(event)"
	var key = (evt.which) ? evt.which : event.keyCode;
	return (key <= 13 || (key >= 48 && key <= 57));
}
function acceptDate(evt){
	//var nav4 = window.Event ? true : false;  	
	//Backspace = 8, Enter = 13, '0' = 48, '9' = 57
	//llamada --> onKeyPress="return acceptDate(event)"
	var key = (evt.which) ? evt.which : event.keyCode;
	return (key <= 13 || (key >= 48 && key <= 57) || key==47);
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
