var pf = "Por favor, ";
var messEMAILVAC = pf+"indique la dirección de E-MAIL. (Si no tiene deje el campo en blanco).";
var messEMAILINC = "La dirección de email tiene un formato incorrecto, por favor introduzca uno correcto.";
var esLetra = "aáàäâbcçdeéèëêfghiíìïîjklmnñoóòöôpqrstuúùüûvwxyzAÁÀÄÂBCÇDEÉÈËÊFGHIÍÌÏÎJKLMNÑOÓÒÖÔPQRSTUÚÙÜÛVWXYZ'`´./ºª # |,-()";
var esLetraUnix = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._0123456789";
var esLetra2 = "abcçdefghijklmnñopqrstuvwxyzABCÇDEFGHIJKLMNÑOPQRSTUVWXYZ._";
var esNum = "0123456789" + esLetra2;
var ctrlEmail=false;

var letraInicio=/^([a-z]|[A-Z])/			
var letraFin=/([a-z]|[A-Z])$/			
								//numeros, espacios, + o -
function alerta(element, message)
{
	alert(message);
	element.focus();
}

function Posicion(Cadena, Caracter) 
{
  return (Cadena.indexOf(Caracter,0));
}

function UltimaPosicion(Cadena, Caracter) 
{
  return (Cadena.lastIndexOf(Caracter));
}

function SoloNumeros(Cadena) 
{
  var Numeros="0123456789";
  var Caracter;
  var Cadena2= new String();

  Cadena=String(Cadena);
  for (var i=0; i < Cadena.length; i++)
  {
    Caracter=Cadena.substring(i,i+1);
    if (Numeros.indexOf(Caracter,0)!=-1)   
      Cadena2=Cadena2+Caracter;
  }
  return(Cadena2) 
}   

function EstaVacia(Cadena) 
{
  if (Cadena=='') return(true);
  for (var i=0; i < Cadena.length; i++) 
  { 
    if (Cadena.substring(i,i+1) != " ") 
      return(false);
  }
  return(true);
} 

function LoEs(Cadena, Letras)
{
  var Caracter;
  var Contador=0;

  for (var i=0; i < Cadena.length; i++) 
  { 
    Caracter=Cadena.substring(i,i+1);
    if (Letras.indexOf(Caracter,0)!=-1) 
      Contador++;
  }
  return(Contador==Cadena.length)
}   

function EsAlfabetica(Cadena) 
{
  return(LoEs(Cadena, esLetra2))
}   

function EsUnix(Cadena) 
{
  return(LoEs(Cadena, esLetraUnix))
}   

function EsAlfaNumerica(Cadena) 
{
  return(LoEs(Cadena, esNum))
}   

function Ocurrencias(Cadena, Caracter)
{
  var Contador=0;
  
  for (var i=0; i < Cadena.length; i++) 
  { 
    if (Caracter==Cadena.substring(i,i+1)) 
      Contador++;
  }
  return(Contador);
}


function ConvierteAEntero(Cadena) 
{
  var Entero="";
  var j=0;
 
 Cadena=SoloNumeros(Cadena);
 while (Cadena.substring(j,j+1)==0)
   j++; 
 for (var i=j; i < Cadena.length; i++) 
 {
   Entero=Entero+Cadena.substring(i,i+1);
 }
 Entero=parseInt(Entero);
 return(Entero); 
}   

function EstaEnIntervalo(Valor, Min, Max) 
{
  if ((ConvierteAEntero(Valor)>=ConvierteAEntero(Min)) && (ConvierteAEntero(Valor)<=ConvierteAEntero(Max)))
    return(true)
  else
    return(false);
}

function ObtieneSubcadena1(Cadena, Caracter) 
{
  var i=UltimaPosicion(Cadena, Caracter);
  return(Cadena.substring(0,i));
}

function ObtieneSubcadena2(Cadena, Caracter) 
{
  var i=UltimaPosicion(Cadena, Caracter);
  var j=Cadena.length;
  return(Cadena.substring(i+1,j));
}

function EsCorrectoUsuario(U)
{
 var j = Ocurrencias(U,".");
 var Sub1 = new String();
 var Sub2 = new String();

 if ( (EstaVacia(U)) || (!(EstaEnIntervalo(U.length,2,30))) )
   return(false);
 else  
 {
   Sub1=U;
   for (var i=0; i <= j; i++) 
   {
     Sub2=ObtieneSubcadena2(Sub1,".");
     if ( !(EsAlfaNumerica(Sub2)) || (EstaVacia(Sub2)))
       return(false);
     else 
       Sub1=ObtieneSubcadena1(Sub1,".");
   }
   return(true);
 }
}

function EsCorrectoNombreDominio(N)
{
 var j = Ocurrencias(N,".");
 var Sub1 = new String();
 var Sub2 = new String();

 if ( (EstaVacia(N)) || (!(EstaEnIntervalo(N.length,2,30))) )
   return(false);
 else  
 {
   Sub1=N;
   for (var i=0; i <= j; i++) 
   {
     Sub2=ObtieneSubcadena2(Sub1,".");
     if ( (!(EsAlfaNumerica(Sub2)) && !(Sub2.indexOf('-'))) || (Sub2.length<2) || (EstaVacia(Sub2)) )
       return(false);
     else 
       Sub1=ObtieneSubcadena1(Sub1,".");
   }
   return(true);
 }
}

function EsCorrectaExtension(E) 
{
  if ( !(EsAlfabetica(E)) || ((EstaVacia(E))) || (!(EstaEnIntervalo(E.length,2,3))) )
    return(false);
  else
    return(true);
}

function VerificaEmail(element) 
{
  var Usuario = new String();
  var Dominio = new String();
  var NombreDominio = new String();
  var Extension = new String();
  var UsuarioOK;
  var NombreDominioOK;
  var ExtensionOK;
   
  if ( (Posicion(element.value,"@")==-1) || (Posicion(element.value,".")==-1) || (Ocurrencias(element.value,"@")>1)) 
  {
    alerta(element,messEMAILINC);
    //element.value='';
    return(false);
  }
  else 
  {
    Usuario=ObtieneSubcadena1(element.value,"@");
    Dominio=ObtieneSubcadena2(element.value,"@");
    NombreDominio=ObtieneSubcadena1(Dominio,".");
    Extension=ObtieneSubcadena2(Dominio,".");
    UsuarioOK=EsCorrectoUsuario(Usuario); 
    NombreDominioOK=EsCorrectoNombreDominio(NombreDominio);
    ExtensionOK=EsCorrectaExtension(Extension); 

    if ( (!UsuarioOK) || (!NombreDominioOK) || (!ExtensionOK) ) 
	{
      alerta(element,messEMAILINC);
      //element.value='';
      return(false);
    }
    else 
      return(true)
  }
}

function EmailOK(element) 
{
 if (!ctrlEmail) 
 {
   ctrlEmail=true;
   if (element.value=='') 
   {
    alerta(element, messEMAILVAC)
    return(false);
   } 
   else 
   { return(VerificaEmail(element)); }
 }
 else
 {
   if (element.value=='') 
   { return(true); } 
   else 
   { return(VerificaEmail(element)); }
 }
}

function sustituyeElTexto(variable) 
{
  //Sustituye el caracter de comilla simple por dos comillas simples

  ComaSimple = /\'/;
  var salida = new Array();
  salida = variable.value;
  //Compruebo si existe ese match
  while(ComaSimple.test(salida))
  {
    salida = salida.replace(ComaSimple,"\"");
  }
  return(salida);
}

function trimCadena(cadena)
{
	//Comprueba que la cadena es igual al nombre 
	// Hace un trim a la cadena que se le pasa
	 cadena = cadena.toLowerCase();
	//veo los tipos de Navegadores aunque es el mismo caso
	if (navigator.appName =="Netscape")
	{
		//alert("cadena :" + cadena);
		var auxBis = "";
		for (var i=0; i<cadena.length; i++)
		{
			 if (cadena[i] != ' ')
			 	auxBis=auxBis + cadena[i];
		}
		//alert("auxBis :" + auxBis);
		return auxBis;
	}
	else
	{//Es el Explorer
		//alert("cadena.length :" + cadena.length);
		//alert("cadena : " + cadena)
		var auxBis = "";
		for (var i=0; i<cadena.length; i++)
		{
			 if (cadena.substr(i,1)  != ' ')
			 	auxBis=auxBis + cadena.substr(i,1);
		}
		//alert("auxBis :" + auxBis);
		return auxBis;
	}
}

function test_blancos(variable)
{
	 //Devuelve true si la string que se le pasa por parametros 
	 //  solo contiene espacios en blanco
	 //o esta vacia
	 if (variable == "")
	 	return true;
	 error = 1;
	 //alert("variable.length :" +variable.length);
	 
	 for (var i=0; i<variable.length; i++) 
	 {
	   if (variable.substr(i,1) != ' ') 
	   {
	    error = false;
	    return false;
	   }
	 }
	 //alert("error: "+ error);
	 if (error == true) 
	 {
	  	//alert("El campo  esta vacio o solo contiene blancos");
	   error2 = true;
	  return true;
	 }
}
 
function comprobarNifTR(objeto)
{
	var cadena=trimCadena(objeto.value);
	var subCadena;
	var auxCadena;
	var ceros=0;
	//Devuelve true si el valor del objeto no se corresponde a un NIF o a una TR
	if (parseInt(cadena.length)<6){return true;}

	// Empiezo a comprobar
	if (letraInicio.test(cadena))
	{//check TR
		if(!letraFin.test(cadena)){return true;}
		else
		{//check only Number inside
			subCadena=cadena.substr(1,cadena.length-2);
			if (isNaN(subCadena)){return true;}
			else
			{// formateo bien
				ceros= 8 - parseInt(subCadena.length);
				auxCadena=formatear(subCadena,ceros);
				objeto.value=((cadena.substr(0,1))+auxCadena+(cadena.substr(cadena.length-1,cadena.length))).toUpperCase();
			}
		} 
	}
	else 
	{//check DNI o NIF
		if(!letraFin.test(cadena))
		{// es un dni check ony number inside
			if(isNaN(cadena)){return true;}
			else
			{//formateo DNI
				ceros= 10 - parseInt(cadena.length);
				auxCadena=formatear(cadena,ceros);
				objeto.value=auxCadena;				
			}
		}
		else
		{// It´s NIF.check only number inside
			subCadena=cadena.substr(0,cadena.length-1);
			
			if (isNaN(subCadena)){return true;}
			else
			{// formateo bien
				ceros= 10 - parseInt(cadena.length);
				auxCadena=formatear(cadena,ceros);				
				objeto.value=auxCadena.toUpperCase();
			}
		}		
	}
}

function compruebaNifTr(objeto)
{//Devuelve true si el valor del objeto se corresponde a un NIF o a una TR
	var cadena=trimCadena(objeto.value);
	var subCadena;
	var auxCadena;
	var ceros=0;	
	var mensaje="";
		
	if (parseInt(cadena.length)<6 || parseInt(cadena.length)>9) {
		//Comprueba que la longitud del NIF sea la válida (entre 6 y 9)
		mensaje="El campo NIF/TR ha de tener una longitud mínima de 6 caracteres y máxima de 9";				
	} else {	
		// Empiezo a comprobar
		NIFInicial=/^([a-h]|[A-H]|[k-m]|[K-M]|p|P|q|Q|s|S|x|X)/		
		if( letraInicio.test(cadena) ) {//check TR(NIE), NIF empresa
			if( !NIFInicial.test(cadena) ) {
				mensaje="El campo NIF/TR no es válido, la primera letra no es válida.";
			} else {
				//check only Number inside
				subCadena=cadena.substr(1,cadena.length-2);
				if (isNaN(subCadena)) {
					mensaje="El campo NIF/TR no es válido, entre las dos letras solo puede haber números.";
				} else {// formateo bien					
					letra1=cadena.substr(0,1);
					letra2=cadena.substr(cadena.length-1,1);
					if( compruebaLetraNifEmp(letra1,subCadena,letra2)==false ) {
						mensaje="El campo NIF/TR no es válido, el último carácter no es válido.";
					} else {
						ceros= 7 - parseInt(subCadena.length);
						auxCadena=formatear(subCadena,ceros);
						objeto.value=((cadena.substr(0,1))+auxCadena+(cadena.substr(cadena.length-1,cadena.length))).toUpperCase();
					}
				}
			}
		} else {//check NIF
			if(!letraFin.test(cadena)) { //Comprueba que	el campo termina con una letra.
				mensaje="El campo NIF/TR debe terminar con una letra.";
			} else {
				// It´s NIF.check only number inside
				subCadena=cadena.substr(0,cadena.length-1);			
				if (isNaN(subCadena)) {
					mensaje="El campo NIF/TR no es válido, antes de la letra solo puede haber números.";
				} else {// formateo bien
					letra=cadena.substr(cadena.length-1,cadena.length);
					if( compruebaLetraNif(subCadena,letra)==false ) {
						mensaje="El campo NIF/TR no es válido, la letra no es válida.";
					} else {				
						ceros= 9 - parseInt(cadena.length);
						auxCadena=formatear(cadena,ceros);				
						objeto.value=auxCadena.toUpperCase();
					}
				}
			}
		}
	}

	if(mensaje!="") {
		alert(mensaje);
		objeto.focus();
		return false;
	} else {
		return true;
	}
}

function compruebaLetraNifEmp(letra1,subCadena,letra2) {
	sumImp = 0;
	sumPares= 0;
	for( i=2;i<=subCadena.length;i=i+2) {		
		sumImp = sumImp + parseInt(subCadena.slice(i-1,i));		
	}
	for( i=1;i<=subCadena.length;i=i+2) {		
		aux = 2 * parseInt(subCadena.slice(i-1,i));
		sumPares = sumPares + parseInt(aux/10) + aux%10;		
	}
	suma = 10 - ((sumImp + sumPares)%10);
	if( letra1.toUpperCase()=='P' || letra1.toUpperCase()=='X' ) { //letra2 debe ser una letra
		//if( letraFin.test(letra2) ) return true;
		//else return false;
		suma=suma+64;
		//Chr(suma);
		/*
		suma=suma+64;
		if( letra2.toUpperCase()==abecedario.slice(suma-1,suma) ) {
			//alert("TRUE letra2: "+letra2+", sacar: "+abecedario.slice(suma-1,suma));
			return true;
		} else {
			//alert("FALSE letra2: "+letra2+", sacar: "+abecedario.slice(suma-1,suma)+", numero: "+suma);
			return false;		
		}*/
	} else { //letra2 debe ser un número
		if( letra2==suma ) return true;
		else return false;
	}	
	return false;
}

function compruebaLetraNif(cadena,letra) {
	caracteres = 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");
	posicion=cadena % 23;	
	if(caracteres.slice(posicion,posicion+1)==letra.toUpperCase()) {
		return true;
	} else {			
		return false;
	}
}

function comprobarNif(objeto)
{
	var cadena=trimCadena(objeto.value);
	var subCadena;
	var auxCadena;
	var ceros=0;
	
	
	
	
	//Devuelve true si el valor del objeto no se corresponde a un NIF o a una TR
	if (parseInt(cadena.length)<6){alert("El campo NIF ha de tener una longitud mínima de 6 caracteres");objeto.focus();return false;}
	
	if (parseInt(cadena.length)>9){alert("El campo NIF ha de tener una longitud máxima de 9 caracteres");objeto.focus();return false;}

	if(!letraFin.test(cadena))
		{// es un dni check ony number inside
			alert("El último carácter del NIF ha de ser una letra comprendida entre A-Z");
			objeto.focus();
			return false;
		}
		else
		{// It´s NIF.check only number inside
			subCadena=cadena.substr(0,cadena.length-1);
			
			if (isNaN(subCadena)){
				//No es un NIF correcto
				alert("Todos los caracteres del NIF han de ser números (excepto el último que ha de ser una letra comprendida entre A-Z)");
				objeto.focus();
				return false;
			}
			else
			{// formateo bien
				ceros= 9 - parseInt(cadena.length);
				auxCadena=formatear(cadena,ceros);				
				objeto.value=auxCadena.toUpperCase();
				return true;
			}
	}		
	
}

function formatear(cad,numero)
{
	//devuelve la cadena(cad) bien formateada
	//el numero es hasta donde quiero añadir o a la izquierda
	var resultado="";
	var aux="";
	var caracteresCadena=cad.length;
	for (i=0; i<numero; i++)
	{
		aux=aux+"0";
	}
	resultado=aux+cad;
	return resultado;
}

function compruebaSSCCEmpresas(objeto) {
//Devuelve true si el valor del objeto se corresponde con un código de la Seguridad Social (xx/xxxxxxx/xx)
	var cadena=trimCadena(objeto.value);
	var subCadena;
	var aux1,aux2;
	var ceros=0;	
	var mensaje="";
	
	//El tamaño del numbero debe ser de trece caracteres incluidas las barras 	
	if( parseInt(cadena.length)!=13 ) {
		mensaje="Cuenta cotización no válida. Debe contener exáctamente 14 dígitos (xx/xxxxxxx/xx).";
	} else { 
		aux1=cadena.slice(2,3);
		aux2=cadena.slice(10,11);
		//Comprobar que las barras están colocadas en los lugares específicos
		if( aux1!="/" || aux2!="/" ) {
			mensaje="Cuenta cotización de empresa no válida. Debe tener el formato xx/xxxxxxx/xx.";			
		} else {
			subCadena=cadena.substr(0,2);			
			subCadena=subCadena.concat(cadena.substr(3,7));
			aux1=cadena.substr(11,2);
			//Comprobar que todos los caracteres son numéricos.
			if( isNaN(subCadena) || isNaN(aux1) ) {
				mensaje="Cuenta cotización de empresa no válida. Debe tener el formato xx/xxxxxxx/xx siendo las x números.";				
			} else {
				//Comprobar el dígito de control del numero.
				aux2=subCadena % 97;
				if( aux2!=aux1 ) {
					mensaje="Cuenta cotización de empresa no válida, el dígito de control no es el adecuado.";					
				}
			}
		}
	}

	if(mensaje!="") {
		alert(mensaje);
		objeto.focus();
		return false;
	} else {
		return true;
	}
}

function compruebaDCCuenta(obj_empresa,obj_oficina,objeto_dc,obj_cuenta) {
//Devuelve true si el valor del objeto se corresponde con una cuenta bancaria (eeee-oooo-dd-xxxxxxxxxx)	
	var digitosControl=objeto_dc.value;//var digitosControl=trimCadena(objeto_dc.value);
	var empresa=obj_empresa.value;//var empresa=trimCadena(obj_empresa.value);
	var oficina=obj_oficina.value;//var oficina=trimCadena(obj_oficina.value);
	var cuenta=obj_cuenta.value;//var cuenta=trimCadena(obj_cuenta.value);
	
	//El tamaño de cada uno de los número debe ser el indicado. 
	if( parseInt(empresa.length)!=4 || isNaN(empresa) ) {		
		alert("Cuenta no válida. El identificador de empresa debe contener 4 dígitos.");
		obj_empresa.focus();
		return false;
	} else {
		if( parseInt(oficina.length)!=4 || isNaN(oficina) ) {		
			alert("Cuenta no válida. El identificador de oficina debe contener 4 dígitos.");
			obj_oficina.focus();
			return false;
		} else {
			if( parseInt(cuenta.length)!=10 || isNaN(cuenta) ) {		
				alert("Cuenta no válida. El identificador de cuenta debe contener 10 dígitos.");
				obj_cuenta.focus();
				return false;
			} else {
				if( parseInt(digitosControl.length)!=2 || isNaN(digitosControl) ) {		
					alert("Cuenta no válida. Los dígitos de control debe contener 2 dígitos.");
					objeto_dc.focus();
					return false;
				}
			}
		}
	}	

	var aux1,aux2,aux3,suma;	
	var mensaje="";

	aux1=empresa+oficina;	
	pesos = new Array(6,3,7,9,10,5,8,4,2,1);
	//Comprobar el primer dígito de control del numero.				
	suma=0;				
	for(i=aux1.length;i>0;i--) {
		suma=suma+aux1.slice(i-1,i)*pesos.slice(aux1.length-i,aux1.length-i+1);
	}				
	aux3=11 - (suma % 11);
	if( aux3==11 ) aux3=0;
	if( aux3==10 ) aux3=1;
	if( aux3!=digitosControl.slice(0,1) ) {
		mensaje="Cuenta cotización de empresa no válida, el dígito de control no es el adecuado.";										
	} else {
		//Comprobar el segundo dígito de control del numero.				
		suma=0;
		for(i=cuenta.length;i>0;i--) {
			suma=suma+cuenta.slice(i-1,i)*pesos.slice(cuenta.length-i,cuenta.length-i+1);
		}				
		aux3=11 - (suma % 11);
		if( aux3==11 ) aux3=0;
		if( aux3==10 ) aux3=1;
		if( aux3!=digitosControl.slice(1,2) ) {
			mensaje="Cuenta cotización de empresa no válida, el dígito de control no es el adecuado.";										
		}
	}

	if(mensaje!="") {
		alert(mensaje);
		obj_empresa.focus();
		return false;
	} else {
		return true;
	}
}	

function compruebaSSCCTrabajadores(objeto) {
//Devuelve true si el valor del objeto se corresponde con un código de la Seguridad Social (xx/xxxxxxxx/xx)
	var cadena=trimCadena(objeto.value);
	var subCadena;
	var aux1,aux2;
	var ceros=0;	
	var mensaje="";
	
	//El tamaño del numbero debe ser de catorce caracteres incluidas las barras 	
	if( parseInt(cadena.length)!=14 ) {
		mensaje="Cuenta cotización no válida. Debe contener exáctamente 14 dígitos (xx/xxxxxxxx/xx).";
	} else { 
		aux1=cadena.slice(2,3);
		aux2=cadena.slice(11,12);
		//Comprobar que las barras están colocadas en los lugares específicos
		if( aux1!="/" || aux2!="/" ) {
			mensaje="Cuenta cotización de trabajador no válida. Debe tener el formato xx/xxxxxxxx/xx.";			
		} else {
			subCadena=cadena.substr(0,2);			
			subCadena=subCadena.concat(cadena.substr(3,8));
			aux1=cadena.substr(12,2);
			//Comprobar que todos los caracteres son numéricos.
			if( isNaN(subCadena) || isNaN(aux1) ) {
				mensaje="Cuenta cotización de trabajador no válida. Debe tener el formato xx/xxxxxxxx/xx siendo las x números.";				
			} else {
				//Comprobar el dígito de control del numero.
				aux2=subCadena % 97;
				if( aux2!=aux1 ) {
					mensaje="Cuenta cotización de trabajador no válida, el dígito de control no es el adecuado.";					
				}
			}
		}
	}

	if(mensaje!="") {
		alert(mensaje);
		objeto.focus();
		return false;
	} else {
		return true;
	}
}

function comprobarTfno(cadena)
{
	//Pasamos la cadena como tfno
	if (cadena.substr(0,1)=="+")
	{
		var auxcadena=cadena.substr(1,cadena.length -1)
		if (isNaN(auxcadena)){return true;}
		else {return false;}
	}
	else
	{
		if (isNaN(cadena)){return true;}
		else {return false;}
	}
}
function sustituyeCaracterRetornoCarro(variable) {
	 //Sustituye el caracter de retorno carro y fin de linea por los caractesres ~ y }
	 retornoCarro = /\r/;
	 finlinea = /\n/
	 var salida = new Array();
	 salida = variable.value;
	//Compruebo si existe ese match
	while(retornoCarro.test(salida)){
		salida = salida.replace(retornoCarro,"~");
		salida = salida.replace(finlinea,"}");
	}
	variable.value = salida;
}
function sustituyeCaracterRetornoCarroParametros(variable,carro,fin) {
	 //Sustituye el caracter de retorno carro y fin de linea por los parametros carro y fin 
	 retornoCarro = /\r/;
	 finlinea = /\n/
	 var salida = new Array();
	 salida = variable.value;
	//Compruebo si existe ese match
	while(retornoCarro.test(salida)){
		salida = salida.replace(retornoCarro,carro);
		salida = salida.replace(finlinea,fin);
	}
	variable.value = salida;
}

function sustituyeDoblesComillasNull(variable) {
	 //Sustituye el caracter de dobles comillas por el caracter nulo
	 dCom = /"/
	 sCom = "";
	 var salida = new Array();
	 salida = variable.value;
	//Compruebo si existe ese match
	while(dCom.test(salida)){
		salida = salida.replace(dCom,sCom);
	}
	variable.value = salida;
}

function introduceCaracterRetornoCarro(variable) {
	 // A la inversa de la fucion de sustituyeCaracterRetornoCarro
	 retornoCarro = /~/
	 //es alt-126
	 finlinea = /}/
	 // es alt-125
	 var salida = new Array();
	 salida = variable.value;
	//Compruebo si existe ese match
	while(retornoCarro.test(salida)){
		salida = salida.replace(retornoCarro,"\r");
		salida = salida.replace(finlinea,"\n");
	}
	variable.value = salida;
}
function introduceCaracterRetornoCarroBis(variable) {
	 //Introduce los caracteres \r y \n cuando
	 // se encuentra dos espacios en blanco seguidos
	 retornoCarro = /~/
	 //es alt-126
	 finlinea = /}/
	 // es alt-125
	 var salida = "";
	 
		j=0;
	 for (var i=0; i<variable.length; i++) 
	 {
	   if (variable.substr(i,1) == ' ' && variable.substr(i+1,1)== ' ') 
	   {
	   	// Se ha encontrado dos espacios en blanco : procedemos a la substituticion
	   	//alert("salida antes :" + salida);
	   	if (j==0)
	   		salida=salida+variable.substring(j,i);
	   	else
	   		salida=salida+"\r\n" +variable.substring(j,i);
	   	j=i+2;
	   	//alert("salida despues :" + salida);
	   }
	 }
	 if (j<variable.length)
	 	salida=salida+"\r\n" +variable.substring(j,variable.length);
	 
	 return salida;
}
function introduceCaracterRetornoCarroHtml(variable) {
	 //Introduce los caracteres \r y \n cuando
	 // se encuentra el tag <br> que es salto de linea
	 saltoHtml = /<br>/
	 //es alt-126
	 // es alt-125
	 var salida = "";
	 salida=variable;
		j=0;
	while(saltoHtml.test(salida)){
		salida = salida.replace(saltoHtml,"\r\n");
	}
	return salida;
	 
	
}

function comprobarRadio(objeto){

	//Devuelve true si  se ha seleccionado una opcion del radio button
	
	for (var i=0; i<objeto.length;i++){
		if (objeto[i].checked == true){
			return true;
		}
	}
	return false;
}


function nombreFichero(cadena,caracter){
	 //Devuelve el nombre del fichero de un path estilo C:\Peppe\file.txt devolveria file.txt
	//alert("funcion nombreFichero, parametro cadena : "  +cadena);
	//alert(" caracter " + caracter);
	var resultado="";
	var contadorCaracter = 0;
	var auxContadorCaracter = 0;
	var salida = new Array();
	 salida = cadena;
	 //alert("cadena.length :" + cadena.length);
	//Compruebo si existe ese match
	for (var i=0;i<cadena.length;i++){
		if (caracter==cadena.substr(i,1))
			contadorCaracter=contadorCaracter+1;
	}
	//alert(" contadorCaracter : " + contadorCaracter);
	for (var j=0;j<cadena.length;j++){
			if (caracter==cadena.substr(j,1)){
				auxContadorCaracter=auxContadorCaracter+1;
				//alert("auxContadorCaracter :"+ auxContadorCaracter);
				if(contadorCaracter==auxContadorCaracter){
					//alert("se ha topado co¡n el ultimoo slash en la posicion :" + j);
					resultado=resultado+cadena.substring(j+1,cadena.length); 		    }
 		  }
	}
	//alert("resultado :" + resultado);
	return resultado;
}

function comprobarExtension(cadena, arr){
	//Se le pasa una cadena , la cual es el nombre de un archivo,y se le comprueba que 
	// tiene una de las estensiones que se le pasa en el array arr
	// Devuelve 1 si lo ha encontrado
	// Devuelve 0 si a) no lo encuentra
	//								b) si la cadena no tiene formato "texto.texto"
	//alert("cadena :" + cadena);
	resultado =0;
	ext = "";
	//saco la extension 
	
		for (var i=0; i<cadena.length; i++) 
	 	{
	   if (cadena.substr(i,1) == '.') 
	   {
	   	// Se ha encontrado el punto
	   	ext=ext + cadena.substring(i+1,cadena.length);
	   	for (k=0; k<arr.length; k++){
	   		if (arr[k]==ext)
	   			resultado=1;
	   		}
	   }
	 }
	 //alert("resultado :"+resultado);
	return resultado;
}

function valueR(objeto){

	//Devuelve el valor de la opcion seleccionada en el radio button
	//Si no hay ninguna devuelve "-1"
	//alert("objeto.length: " + objeto.length);
	for (var i=0; i<objeto.length;i++){
		if (objeto[i].checked == true){
			var resultado;
			resultado=objeto[i].value;
			return resultado;
		}
	
	}
	return -1;
}
function sustituyeAcentoAcute(variable) {
	arrAcentos=new Array();
	arrAcutes=new Array();
	arrAcentos[0]=/á/
	arrAcentos[1]=/é/
	arrAcentos[2]=/í/
	arrAcentos[3]=/ó/
	arrAcentos[4]=/ú/
	arrAcentos[5]=/Á/
	arrAcentos[6]=/É/
	arrAcentos[7]=/Í/
	arrAcentos[8]=/Ó/
	arrAcentos[9]=/Ú/
	arrAcentos[10]=/ñ/
	arrAcentos[11]=/Ñ/
	arrAcentos[12]=/ä/
	arrAcentos[13]=/ë/
	arrAcentos[14]=/ï/
	arrAcentos[15]=/ö/
	arrAcentos[16]=/ü/
	arrAcentos[17]=/Ä/
	arrAcentos[18]=/Ë/
	arrAcentos[19]=/Ï/
	arrAcentos[20]=/Ö/
	arrAcentos[21]=/Ü/
	arrAcutes[0]='&aacute;';
	arrAcutes[1]='&eacute;';
	arrAcutes[2]='&iacute;';
	arrAcutes[3]='&oacute;';
	arrAcutes[4]='&uacute;';
	arrAcutes[5]='&Aacute;';
	arrAcutes[6]='&Eacute;';
	arrAcutes[7]='&Iacute;';
	arrAcutes[8]='&Oacute;';
	arrAcutes[9]='&Uacute;';
	arrAcutes[10]='&ntilde;';
	arrAcutes[11]='&Ntilde;';
	arrAcutes[12]='&auml;';
	arrAcutes[13]='&euml;';
	arrAcutes[14]='&iuml;';
	arrAcutes[15]='&ouml;';
	arrAcutes[16]='&uuml;';
	arrAcutes[17]='&Auml;';
	arrAcutes[18]='&Euml;';
	arrAcutes[19]='&Iuml;';
	arrAcutes[20]='&Ouml;';
	arrAcutes[21]='&Uuml;';
	
	 //Sustituye el caracter de acento por "&"+ caracter + "acute;"
	 var salida = new Array();
	 salida = variable.value;
	//Compruebo si existe ese match
	//alert("arrAcutes.length :" + arrAcutes.length);
	
	for (var i=0;i<arrAcentos.length;i++){
		while(arrAcentos[i].test(salida)){
			salida = salida.replace(arrAcentos[i],arrAcutes[i]);
		}
	}
	variable.value = salida;
}

function sustituyeAcuteAcento(variable) {
		 arrAcentos=new Array();
	 arrAcutes=new Array();
	arrAcentos[0]='á';
	arrAcentos[1]='é';
	arrAcentos[2]='í';
	arrAcentos[3]='ó';
	arrAcentos[4]='ú';
	arrAcentos[5]='Á';
	arrAcentos[6]='É';
	arrAcentos[7]='Í';
	arrAcentos[8]='Ó';
	arrAcentos[9]='Ú';
	arrAcentos[10]='ñ';
	arrAcentos[11]='Ñ';
	arrAcentos[12]='ä';
	arrAcentos[13]='ë';
	arrAcentos[14]='ï';
	arrAcentos[15]='ö';
	arrAcentos[16]='ü';
	arrAcentos[17]='Ä';
	arrAcentos[18]='Ë';
	arrAcentos[19]='Ï';
	arrAcentos[20]='Ö';
	arrAcentos[21]='Ü';
	arrAcutes[0]=/&aacute;/;
	arrAcutes[1]=/&eacute;/;
	arrAcutes[2]=/&iacute;/;
	arrAcutes[3]=/&oacute;/;
	arrAcutes[4]=/&uacute;/;
	arrAcutes[5]=/&Aacute;/;
	arrAcutes[6]=/&Eacute;/;
	arrAcutes[7]=/&Iacute;/;
	arrAcutes[8]=/&Oacute;/;
	arrAcutes[9]=/&Uacute;/;
	arrAcutes[10]=/&ntilde;/;
	arrAcutes[11]=/&Ntilde;/;
	arrAcutes[12]=/&auml;/;
	arrAcutes[13]=/&euml;/;
	arrAcutes[14]=/&iuml;/;
	arrAcutes[15]=/&ouml;/;
	arrAcutes[16]=/&uuml;/;
	arrAcutes[17]=/&Auml;/;
	arrAcutes[18]=/&Euml;/;
	arrAcutes[19]=/&Iuml;/;
	arrAcutes[20]=/&Ouml;/;
	arrAcutes[21]=/&Uuml;/;

	 //Sustituye el caracter de acento por "&"+ caracter + "acute;"
	 var salida = new Array();
	 salida = variable.value;
	//Compruebo si existe ese match
	//alert("arrAcutes.length :" + arrAcutes.length);
	
	for (var i=0;i<arrAcutes.length;i++){
		while(arrAcutes[i].test(salida)){
			salida = salida.replace(arrAcutes[i],arrAcentos[i]);
		}
	}
	variable.value = salida;
}








