
//>>>>>>	MUEVE ELEMENTOS DE UNA LISTA ORIGEN A UNA LISTA DESTINO
function MoverElementoLista(sOrigen,sDestino){
		var iCont;
		var jCont;
		var bHecho=false;
		var filaOrigen;
		var filaDestino;
		var sSeleccionados='';
		var vSeleccionados;
		
		
		if(document.getElementById(sOrigen).selectedIndex>=0){
			
			filaOrigen=document.getElementById("fila_"+sOrigen).innerHTML;
			filaDestino=document.getElementById("fila_"+sDestino).innerHTML;
		
			filaOrigen=filaOrigen.substring(0,filaOrigen.toUpperCase().indexOf("<OPTION"));
			filaDestino=filaDestino.substring(0,filaDestino.toUpperCase().indexOf("</SELECT>"));
		
		
			for (iCont=0; iCont<document.getElementById(sOrigen).options.length; iCont++){
				if((document.getElementById(sOrigen)[iCont].selected==true) && (document.getElementById(sOrigen)[iCont].value!="")){
					filaDestino=filaDestino+'<OPTION value="'+document.getElementById(sOrigen)[iCont].value+'">'+document.getElementById(sOrigen)[iCont].text+'</OPTION> ';
					bHecho=true;
				}
				if(bHecho!=true){
					if(document.getElementById(sOrigen)[iCont].value!="")
						filaOrigen=filaOrigen+'<OPTION value="'+document.getElementById(sOrigen)[iCont].value+'">'+document.getElementById(sOrigen)[iCont].text+'</OPTION> ';
				}
				bHecho=false;
			}
		
		
			filaOrigen=filaOrigen+'</SELECT>'
			filaDestino=filaDestino+'</SELECT>'
			
			document.getElementById("fila_"+sOrigen).innerHTML=filaOrigen;
			document.getElementById("fila_"+sDestino).innerHTML=filaDestino;
		}
}


/* ********************************************************************************************************** */
/* ELIMINA LOS ESPACIOS EN BLANCO DE UNA CADENA DE TEXTO		 				      */
/* Creada 24-08-2006 por Natalia									      */
/* ********************************************************************************************************** */

function QuitaBlancos(string) {
	var temp = "";
	string = '' + string;
	splitstring = string.split(" ");
	for(i = 0; i < splitstring.length; i++)
	temp += splitstring[i];
	return(temp);
}


/* ********************************************************************************************************** */
/* ESTA FUNCIÓN VALIDA UN CAMPO FECHA                                                                         */
/* ********************************************************************************************************** */
function isDate(sFecha) {

	var bError = 0;
	var sDia = "";
	var sMes = "";
	var sAnyo = "";
	var i = 0;
	sMensaje = "Se han encontrado los siguientes errores:\n"
	aMensajeError = new Array();
	aMensajeError[0] = '';
	aMensajeError[1] = 'Error en el formato de fecha. Falta algun dato.';
	aMensajeError[2] = 'El dia "dd" es incorrecto';
	aMensajeError[3] = 'El mes "mm" es incorrecto';
	aMensajeError[4] = 'El año "aa" o "aaaa" es incorrecto';
	aMensajeError[5] = 'El numero de dias en Febrero no corresponde'; 
	aMensajeError[6] = 'El numero de dias en ese mes no corresponde';
	aMensajeError[7] = 'Error en el formato de fecha. Separador incorrecto.';

	var daysInMonth = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
	
	aFecha = sFecha.split("/")
	
	if (aFecha.length == 3) {
		sDia = aFecha[0]
		sMes = aFecha[1]
		sAnyo = aFecha[2]
	}
	else {
		aFecha = sFecha.split("-")
		if (aFecha.length == 3) {
			
			sFecha= sFecha.replace(/-/g, "/")
			sDia = aFecha[0]
			sMes = aFecha[1]
			sAnyo = aFecha[2]

		}
		else
		{
			sMensaje += aMensajeError[7] + "\n";
			bError = 1;
		}
	}
		
	if (aFecha.length == 3) {	
		if (sDia != "" && sMes != "" && sAnyo != "") {
		
			if (isNum(sDia)) {
				if (( parseInt(sDia,10) > 31 ) || ( parseInt(sDia,10) < 1 ) || (sDia < "0") || (sDia > "9")) {
					sMensaje += aMensajeError[2] + "\n";
					bError = 1;
				}
			} else {
				sMensaje += aMensajeError[2] + "\n"
				bError = 1;
			}
			
			if (isNum(sMes)) {
				if (( parseInt(sMes,10) > 12 ) || ( parseInt(sMes,10) < 1 ) || sMes < "0" || sMes > "9") {
					sMensaje += aMensajeError[3] + "\n"
					bError = 1;
				}
			} else {
				sMensaje += aMensajeError[3] + "\n"
				bError = 1;
			}
			
			if (( parseInt(sMes,10) == 2) && ( parseInt(sDia,10) > daysInFebruary(parseInt(sAnyo)) )) {
				sMensaje += aMensajeError[5] + "\n";
				bError = 1;
			}
			else {
				//Control "Dia del Mes" correcto, menos febrero
				if (daysInMonth[parseInt(sMes,10)-1] < parseInt(sDia,10)) {
					sMensaje += aMensajeError[6] + "\n";
					bError = 1;
				}
			}
					
			if (isNum(sAnyo)) {
				if ( (sAnyo.length != 2) && (sAnyo.length != 4) ) {
					sMensaje += aMensajeError[4] + "\n"; 
					bError = 1;
				}
			} else {
				sMensaje += aMensajeError[4] + "\n"
				bError = 1;
			}
		
		}
		else {
			sMensaje += aMensajeError[1] + "\n"; 
			bError = 1;
		}
	}
		if ( bError != 0 ) {
			// Este alert mostraría el mensaje concretando el error en caso de ser necesario
			return false;
		}
		else{
			return true;
		}

}


//Laura Varela: 
function daysInFebruary (year)
{   
// Febrero tiene 29 dias en cualquier año divisible por 400 excepto los siglos
    return (  ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) ) ) ? 29 : 28 );
} 


/* ********************************************************************************************************** */
/* ESTA FUNCIÓN DEVUELVE TRUE SI EL DATO ENVIADO COMO PARÁMETRO A LA FUNCIÓN ES NUMÉRICO, Y FALSE SI NO LO ES */
/* Creada 17-08-2006 por Natalia									      */
/* ********************************************************************************************************** */
 function isNum(st) {
    var RefString="1234567890";
    var esNumerico=true;
    for (i=0; i < st.length; i++) {
      if (RefString.indexOf(st.charAt(i), 0) == -1) {
        esNumerico = false;
      }
    }
    return(esNumerico);
  }
  


/* ********************************************************************************************************** */
/* SOLO SE ADMITEN NÚMEROS ANULANDO EL RESTO DE LAS TECLAS						      */
/* Creada 21-08-2006 por Natalia									      */
/* ********************************************************************************************************** */
function ControlNumeros(e){
	var bCodigoOK=false;
	var ventana=window;
/*
	Determinar si el navegador es Internet Explorer y, en función de si lo es o no, capturar la tecla
	a través del procedimiento correspondiente.
*/
	
	var ie=true;
	var indice=ventana.navigator.appName.toLowerCase().indexOf('microsoft internet explorer');
	if(indice<0)
		ie=false;	
	 if(ie==true){
	 	//Código de la tecla pulsada en navegador Internet Explorer
		var codigo=window.event.keyCode;
	}
	 else{
	 	//Código de la tecla pulsada en otros navegadores distintos a Internet Explorer
		var codigo=e.which;
	}

	//Determinar si la tecla pulsada es un número:  48="0"    57="9" 
	if((codigo>=48 && codigo<=57) || codigo==8 || codigo==0) bCodigoOK=true;
	
	return bCodigoOK;
}


/* ********************************************************************************************************** */
/* NO SE ADMITEN NÚMEROS ANULANDOSE LA TECLA SI ES ASÍ							      */
/* Creada 13-12-2006 por Natalia									      */
/* ********************************************************************************************************** */
function ControlCaracteres(e){
	var bCodigoOK=false;
	
	var ventana=window;
/*
	Determinar si el navegador es Internet Explorer y, en función de si lo es o no, capturar la tecla
	a través del procedimiento correspondiente.
*/
	
	var ie=true;
	var indice=ventana.navigator.appName.toLowerCase().indexOf('microsoft internet explorer');
	if(indice<0)
		ie=false;	
	 if(ie==true){
	 	//Código de la tecla pulsada en navegador Internet Explorer
		var codigo=window.event.keyCode;
	}
	 else{
	 	//Código de la tecla pulsada en otros navegadores distintos a Internet Explorer
		var codigo=e.which;
	}
//alert(codigo);
	//Determinar si la tecla pulsada no es un número: 48="0"    57="9" 
	if(!(codigo>=48 && codigo<=57)) bCodigoOK=true;
	
	return bCodigoOK;
}

function ComprobarFechas(sFechaIni,sFechaFin){
	var sDia;
	var sMes;
	var sAnio;
	var vAux;
	
	var sAFI;
	var sAFF;
	
	//Disgregar la Fecha de Inicio en elementos de un array
	vAux=sFechaIni.split('/');
	//Asignar a cada variable correspondiente el elemento del array
	sDia=vAux[0];
	sMes=vAux[1];
	sAnio=vAux[2];
	
	//Componer la fecha en formato aaaammdd para comprobar si es mayor o menor
	sAFI=sAnio+sMes+sDia;
	
	//Disgregar la Fecha de Fin en elementos de un array
	vAux=sFechaFin.split('/');
	//Asignar a cada variable correspondiente el elemento del array
	sDia=vAux[0];
	sMes=vAux[1];
	sAnio=vAux[2];
	
	//Componer la fecha en formato aaaammdd para comprobar si es mayor o menor
	sAFF=sAnio+sMes+sDia;
	
	//Si la fecha de Fin es menor que la fecha de Inicio, se devuelve FALSE
	if(parseInt(sAFF)<parseInt(sAFI)) return(false);
	else return(true)
	
}



/* ********************************************************************************************************** */
/* VALIDA QUE AL INTRODUCIR UN PRECIO, SÓLO SE PERMITAN DOS DECIMALES, Y QUE EL ÚNICO CARACTER PERMITIDO SEA  */
/* EL SIGNO DE PUNTUACIÓN COMA ANULANDO LOS DEMÁS							      */
/* Creada 18-08-2006 por Natalia									      */
/* ********************************************************************************************************** */
function ControlMoneda(oCampo,e){
	var sDato;
	//Inicializar la variable que controla el la tecla pulsada como erronea
	var bCodigoOK=false;
/*
	Determinar si el navegador es Internet Explorer y, en función de si lo es o no, capturar la tecla
	a través del procedimiento correspondiente.
*/
	var ie=true;
	var indice=ventana.navigator.appName.toLowerCase().indexOf('microsoft internet explorer');
	if(indice<0)
		ie=false;	
		
	if(ie==true){
	 	//Código de la tecla pulsada en navegador Internet Explorer
		var codigo=window.event.keyCode;
	}
	 else{
	 	//Código de la tecla pulsada en otros navegadores distintos a Internet Explorer
		var codigo=e.which;
	}


	//Determinar si la tecla pulsada es una coma o un número:   44=","    48="0"    57="9" 
	if((codigo>=48 && codigo<=57) || codigo==44){
		//Presuponer que la cifra introducida es correcta hasta que se valide lo contrario
		bCodigoOK=true;
		
		//Obtener el contenido del campo
		sDato=oCampo.value;
		//Longitud del campo
		var iLongitud=sDato.length-1;
		//Localización del caracter coma
		var iPosComa=sDato.indexOf(',');
		
		
		//La tecla pulsada es una coma	
		if(codigo==44){
			//Comprobar si es la única (para evitar 0,0,00)
			if(iPosComa>=0) bCodigoOK=false;
			//Comprobar que no se está introduciendo antes que un número (no permitir ,50 p.ej.)
			if(iLongitud==-1) bCodigoOK=false;
		}
		
		//La tecla pulsada es un número y la cifra ya tiene una coma
		if((codigo>=48 && codigo<=57) && (iPosComa>=0)) {
			//Comprobar si se está excediendo el límite de dos decimales
			if((iLongitud - iPosComa)>1) bCodigoOK=false;
		}
		//alert(iPosComa);
	}

	//Si el caracter introducido no se considera válido, anularlo para Internet Explorer y otros navegadores
	if(!bCodigoOK){		
		if(ie) window.event.keyCode=0;
		else e.which=0;
	}

}


/* ********************************************************************************************************** */
/* COMPRUEBA QUE EL PRECIO INTRODUCIDO SEA EN UN FORMATO CORRECTO: No tenga más de 2 decimales y 	      */
/* en la primera posición no haya una coma								      */
/* Creada 18-08-2006 por Natalia									      */
/* ********************************************************************************************************** */
function ComprobarPuntuacion(sDato){
	var bOK=true;
	
	//Longitud del campo
	var iLongitud=sDato.length-1;
	//Localización del caracter coma
	var iPosComa=sDato.indexOf(',');
	
	//Si se ha introducido coma decimal
	if(iPosComa>=0){
		//Si en la primera posición hay una coma, informar del error
		if(iPosComa==0) bOK=false;
	
		//Si el precio tiene más de dos decimales, informar del error
		if((iLongitud-iPosComa)>2) bOK=false;
	}
	if(bOK){
		if(iPosComa>0){
			bOK=isNum(sDato.substring(0,iPosComa-1));
			if(bOK){
				bOK=isNum(sDato.substring(iPosComa+1,iLongitud))
			}
		}
		else{
			bOK=isNum(sDato);
		}
	}
	return(bOK);

}


/* ********************************************************************************************************** */
/* COMPRUEBA QUE SE ESTÁ INTRODUCIENDO UN ARCHIVO DE IMAGEN A TRAVÉS DE SU EXTENSIÓN.			      */
/* Validacion: jpg, jpeg, gif, png									      */
/* Creada 21-08-2006 por Natalia									      */
/* ********************************************************************************************************** */
function esImagen(sArchivo){
	var bOK=false;
	var sExtension;
	
	//Comprobar si es .jpg, .gif o .png obteniendo los últimos cuatro caracteres
	sExtension=sArchivo.substring(sArchivo.length-4, sArchivo.length)
	//Mayúsculas
	sExtension=sExtension.toUpperCase();
	
	if(sExtension=='.JPG' || sExtension=='.GIF' || sExtension=='.PNG') bOK=true;
	
	//Si no es ninguna de las extensiones anteriores, comprobar si es .jpeg
	if(!bOK){
		sExtension=sArchivo.substring(sArchivo.length-5, sArchivo.length)
		//Mayúsculas
		sExtension=sExtension.toUpperCase();
		if(sExtension=='.JPEG') bOK=true;
	}	
	return(bOK);
	
}


/* ********************************************************************************************************** */
/* COMPRUEBA QUE SE ESTÁ INTRODUCIENDO UN ARCHIVO PDF A TRAVÉS DE SU EXTENSIÓN.				      */
/* Validacion: pdf											      */
/* Creada 21-08-2006 por Natalia									      */
/* ********************************************************************************************************** */
function esPDF(sArchivo){
	var bOK=false;
	var sExtension;
	
	//Comprobar si es .pdf obteniendo los últimos cuatro caracteres
	sExtension=sArchivo.substring(sArchivo.length-4, sArchivo.length)
	//Mayúsculas
	sExtension=sExtension.toUpperCase();
	
	if(sExtension=='.PDF') bOK=true;
		
	return(bOK);
	
}


/* ********************************************************************************************************** */
/* COMPRUEBA QUE SE ESTÁ INTRODUCIENDO UNA URL VÁLIDA							      */
/* Validación del comienzo de la url: http://								      */
/* Creada 21-08-2006 por Natalia									      */
/* ********************************************************************************************************** */
function esURLValida(sDireccion){
	var bOK=false;
	var sHTTP;
	
	sHTTP=sDireccion.substring(0,7);
	
	if(sHTTP.toUpperCase()=='HTTP://') bOK=true;
	
	return(bOK);	
}


/****************************************************************************************************************
	Si la dirección de enlace es únicamente http:// (valor por defecto), devolver cadena vacía.
	En caso contrario, completar la dirección con http:// si hiciera falta y devolver la cadena completa
****************************************************************************************************************/

function CompletaEnlace(sEnlace){
	var bOK=true;
	
	//Si el enlace no es únicamente el valor que tiene asignado por defecto (http://)
	if (sEnlace.toUpperCase()!='HTTP://'){
		//Comprobar que el enlace comienza con http://
		bOK=esURLValida(sEnlace);
		//Si no es así, completarlo por la izquierda
		if(!bOK) sEnlace='http://'+sEnlace;
	}
	else{
		sEnlace='';
	}
	
	return(sEnlace);
	
}



/* ********************************************************************************************************** */
/* ESTA FUNCIÓN COMPRUEBA SI ES UN CAMPO DE EMAIL Y ESTÁ CORRECTO                                             */
/* ********************************************************************************************************** */
function C_email(valor){
	
	if(valor.indexOf(" ")>=0)
		return false;
	
	pos_A= valor.indexOf("@");

	if(pos_A==-1 || pos_A==0 || pos_A==valor.length-1)
		return false;
	
	pos_P= valor.indexOf(".",pos_A)
	
	if(pos_P==-1 || pos_P==0 || pos_P==valor.length-1)
		return false;
		
	sFinal=valor.substring(pos_P+1,valor.length);
	
	if(sFinal.indexOf("xx")>=0)
		return false;
	
	return true;
}


function ValidarTelefono(sTelefono){
	//validar Telefono
	var bOk=true;
	if(sTelefono!=''){
		bOk=isNum(sTelefono);
		if(bOk){
			//alert(sTelefono.indexOf("9"))
			bOk=(((sTelefono.indexOf("9")==0) || (sTelefono.indexOf("6")==0) || (sTelefono.indexOf("8")==0)) && sTelefono.length==9)
		}
	
	}	
	return(bOk);	
}

/* ********************************************************************************************************** */
/* SOLO SE ADMITEN NÚMEROS, GUIONES O X ANULANDO EL RESTO DE LAS TECLAS										  */
/* Creada 20-01-2007 por Natalia																			  */
/* ********************************************************************************************************** */
function ControlISBN(e){
	var bCodigoOK=false;
	var ventana=window;
/*
	Determinar si el navegador es Internet Explorer y, en función de si lo es o no, capturar la tecla
	a través del procedimiento correspondiente.
*/
	
	var ie=true;
	var indice=ventana.navigator.appName.toLowerCase().indexOf('microsoft internet explorer');
	if(indice<0)
		ie=false;	
	 if(ie==true){
	 	//Código de la tecla pulsada en navegador Internet Explorer
		var codigo=window.event.keyCode;
	}
	 else{
	 	//Código de la tecla pulsada en otros navegadores distintos a Internet Explorer
		var codigo=e.which;
	}

	//Determinar si la tecla pulsada es un número:  48="0"    57="9"   45="-" 88="X"  120="x"
	if((codigo>=48 && codigo<=57) || codigo==8 || codigo==0 || codigo==45 || codigo==88 || codigo==120) bCodigoOK=true;
	//alert(codigo)
	return bCodigoOK;
}


