/*
Descripción: funciónpara escribir la fecha
Fecha: 29/11/2003
Autor: javi ruiz ( almería )
*/
function escribirfechahoy() {
	var daynames = new Array("Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado");
	var monthnames = new Array("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"); 
	var fechahoy = new Date();
     document.write("" + daynames[fechahoy.getDay()] + ", " + fechahoy.getDate() + " de " + monthnames[fechahoy.getMonth()]+ " de "+fechahoy.getFullYear()); 
}

//función que nos solicita confirmación de borrado
function borrar() {
	if (window.confirm('¿Seguro que desea borrar el registro seleccionado?')) {
		return true;
	}else{	
		return false;
	}
}

/*
Función para comprobar que en un text area no se pasan de los
caracteres máximos.
Fecha: 11/04/2003
Realización: javi ruiz (almería)
*/
function comprobarLimite(campo, maxLength)
{
	longitud_actual = campo.value.length ;
	if ( longitud_actual > maxLength ) {
		campo.value = campo.value.substring(0,maxLength);
		charleft = 0;
		alert("Ha alcanzado el limite de caracteres de este campo ( "+maxLength+"\ caracteres ).\nSu contenido ha sido recortado automáticamente.");
	} else { 
		charleft = maxLength - campo.value.length;
	}
}

/*
Función para comprobar que un campo contiene un valor de dinero €
En caso correcto devuelve el valor correcto para la base de datos.
Fecha: 28/02/02
Autor: Javi Ruiz (Almería)
*/
function precioValidar(campo){
	valor_campo = campo.value;
           //COMPRUEBO QUE NO UTILICEN EL PUNTO PARA LOS MILLARES, COMPROBANDO QUE SÓLO LE SIGUEN 2 CIFRAS
	var expresion=new RegExp("^(([0-9]*)|([0-9]*\\.[0-9]{0,2})|([0-9]*\\,[0-9]{0,2}))$");
	if ( expresion.test(valor_campo) == false ){
	   alert("No utilice el punto como separador de millares, se utiliza para los decimales. \nSolo puede utilizar 2 decimales.");
	   campo.value = 0;
	   campo.focus();
	   return false;
	}
	
	//lo primero es validar si hay decimales y sólo un separador
	if (valor_campo.indexOf(".")!=-1 || valor_campo.indexOf(",")!=-1){
		if (valor_campo.indexOf(".")!=-1){
			precio = valor_campo.split(".",2);
			if (esNumeroNatural(precio[0]) && esNumeroNatural(precio[1])){
				precio_final=precio[0]+"."+precio[1]
			}else{
				alert("Este campo debe contener un número ( Ej: 2358 ó 70850.60 )");
				campo.value = 0;
				campo.focus();
				return false;
			}
		}
		if (valor_campo.indexOf(",")!=-1){
			precio=valor_campo.split(",",2);
			if (esNumeroNatural(precio[0]) && esNumeroNatural(precio[1])){
				precio_final=precio[0]+"."+precio[1]
			}else{
				alert("Este campo debe contener un número ( Ej: 23 ó 50.23 )");
				campo.value = 0;
				campo.focus();
				return false;
			}
		}
		//ponemos el valor validado en el campo que estamos validando
		campo.value = precio_final;
		return true;
	}else{
		if (esNumeroNatural(valor_campo)) return true;
		else{
				alert("Este campo debe contener un número ( Ej: 23 ó 50.23 )");
				campo.value = 0;
				campo.focus();
				return false;
			}
	}
}



/*
Función para comprobar que un campo contiene un valor de dinero €, permite importes negativos
*/

function importeValidar(campo){
	var exp=new RegExp("^-?[0-9]*[\.]?[0-9]{0,2}$");
           if (exp.test(campo.value) == false) {
              alert('Compruebe que el importe sea correcto');
              campo.value="";
	   campo.focus();
	   return false;
           }
           return true;
}

/*
Función para comprobar que un valor es un número entero
Fecha: 28/02/02
Autor: Javi Ruiz (Almería)
*/
function numeroValidar(campo)
{
	numero = campo.value;
	if (esNumeroNatural(numero)) return true;
	else {
		alert("Este campo debe contener un número natural.");
		campo.value = 0;
		campo.focus();
		return false;
	}
}

/*
Funcion para validar el formato de una fecha una fecha. dd/mm/aaaa or aa
Fecha: 14/04/03
Autor: Javi Ruiz (Almería)
*/
function fechaValidar(campo)
{
	fecha = campo.value;
	var exp=new RegExp("(^([0-9]{2})/([0-9]{2})/([0-9]{4})$)");
	if ( fecha == "" ){
		return false;
	}
	partes=fecha.split('/');
	switch (partes[1])
	{
//	case '1' : limite_dias= 31;
//		break;
	case '01' : limite_dias= 31;
		break;
//	case '3' : limite_dias= 31;
//		break;
	case '03' : limite_dias= 31;
		break;
//	case '5' : limite_dias= 31;
//		break;
	case '05' : limite_dias= 31;
		break;
//	case '7' : limite_dias= 31;
//		break;
	case '07' : limite_dias= 31;
		break;
//	case '8' : limite_dias= 31;
//		break;
	case '08' : limite_dias= 31;
		break;
	case '10' : limite_dias= 31;
		break;
	case '12' : limite_dias= 31;
		break;
//	case '4' : limite_dias= 30;
//		break;
	case '04' : limite_dias= 30;
		break;
//	case '6' : limite_dias= 30;
//		break;
	case '06' : limite_dias= 30;
		break;
//	case '9' : limite_dias= 30;
//		break;
	case '09' : limite_dias= 30;
		break;
	case '11' : limite_dias= 30;
		break;
/*	case '2': if (partes[2]%400==0) limite_dias=29
					else if (partes[2]%100==0) limite_dias=28
							else if (partes[2]%4==0) limite_dias=29
									else limite_dias=28;
		break;*/
	case '02': if (partes[2]%400==0) limite_dias=29
					else if (partes[2]%100==0) limite_dias=28
							else if (partes[2]%4==0) limite_dias=29
									else limite_dias=28;
		break;
	default : limite_dias=0;
	}
	if (exp.test(fecha) == false || partes[0]>limite_dias || partes[0]<1 || partes[1]<1 || partes[1]>12){
		alert ("Compruebe que la fecha es correcta y el formato es dd/mm/aaaa . Ej: 01/06/2003 .")
		campo.value="";
		campo.focus();
		return false;
	}
	return true;
}

/*
Funcion para validar el formato de una fecha una fecha. dd/mm/aaaa or aa
Fecha: 14/04/03
Autor: Javi Ruiz (Almería)
*/
function horaValidar(campo)
{
	hora = campo.value;
	var exp=new RegExp("(^([0-9]{2}):([0-9]{2})$)");
	if ( hora == "" ){
		return false;
	}
	partes=hora.split(':');
	if ( exp.test(hora) == false || partes[0]<0 || partes[0]>23 || partes[1]>59 || partes[1]<0 ){
		alert ("Compruebe que la hora es correcta y el formato es hh:mm Ej: 09:05 .")
		campo.value="";
		campo.focus();
		return false;
	}
	return true;
}

/*
Funcion para validar el formato de un e-mail.
Tiene que tener al menos, la @ y un punto indicador del dominio
Fecha: 14/04/03
Autor: Javi Ruiz (Almería)
*/
function emailValidar(campo)
{
	email = campo.value;
	if (email!='' && (email.indexOf("@")==-1 || email.indexOf(".")==-1 ) ){
		alert ("Compruebe que el formato del E-mail es: \nnombre@nombredominio.dominio (Ej: soporte@clubcultura.com ).")
		return false;
	}
	return true;	
}

/*
Función para validar una URL.
Fecha: 14/04/03
Autor: Javi Ruiz (Almería)
*/
function urlValidar(url)
{
	if ( (url.indexOf("http://")==-1 && url.indexOf("www")==-1) || url.indexOf(".")==-1){
		return false;
	}
	return true;	
}

/*
Funcion para comprobar que un campo no está vacío. Por ejemplo en los
campo tipo checkbox o select tendrán que estar seleccionados.
text(value),textarea(value),checkbox(checked),hidden(value),select-multiple(selectedIndex,-1),radio(checked,value)
Fecha: 15/02/02
Autor: Javi Ruiz (Almería)
*/
function campoEsNulo(campo_nombre,campo_tipo,formulario_nombre)
{
	switch (campo_tipo)	{
		case "text":
			return (eval("document.getElementById('"+campo_nombre+"').value")=="")?true:false
			break;
		case "password":
			return (eval("document.getElementById('"+campo_nombre+"').value")=="")?true:false
			break;
		case "textarea":
			return (eval("document.getElementById('"+campo_nombre+"').value")=="")?true:false
			break;
		case "checkbox":
			return (!eval("document.getElementById('"+campo_nombre+"').checked"))?true:false
			break;
		case "hidden":
			return (eval("document.getElementById('"+campo_nombre+"').value")=="")?true:false
			break;
		case "select-one":
			return (eval("document.getElementById('"+campo_nombre+"').selectedIndex")==-1 || eval("document.getElementById('"+campo_nombre+"').selectedIndex") == "")?true:false
			break;
		case "select-multiple":
			return (eval("document.getElementById('"+campo_nombre+"').selectedIndex")==-1 || eval("document.getElementById('"+campo_nombre+"').selectedIndex") == "")?true:false
			break;
		case "radio":
			return (!eval("document.getElementById('"+campo_nombre+"').checked"))?true:false
			break;
		case "file":
			return (eval("document.getElementById('"+campo_nombre+"').value")=="")?true:false
			break;
		default:
			valor_si = eval("document.getElementById('"+campo_nombre+"')[0].checked");
			valor_no = eval("document.getElementById('"+campo_nombre+"')[1].checked");
			if (!valor_si && !valor_no) return true;
			else return false;
	}

}

/*
Comprueba que el campo, que es obligatorio está o no rellenado
Fecha: 30/11/2003
Autor: Javi Ruiz (Almería)
*/
function campoEstaCumplimentado(campo, texto){
    if ( campoEsNulo(campo,document.getElementById(campo).type,'form1') ){
        alert(texto); 
        tipo = eval('document.form1.'+campo+'.type'); 
	switch (tipo)	{
		case "text":
			eval('document.form1.'+campo+'.focus()');
			break;
		case "textarea":
			eval('document.form1.'+campo+'.focus()');
			break;
		case "checkbox":
			eval('document.form1.'+campo+'.focus()');
			break;
		case "hidden":
			break;
		case "select-one":
			eval('document.form1.'+campo+'.focus()');
			break;
		case "select-multiple":
			eval('document.form1.'+campo+'.focus()');
			break;
		case "radio":
			eval('document.form1.'+campo+'[0].focus()');
			break;
		case "file":
			eval('document.form1.'+campo+'.focus()');
			break;
		default:
                            eval('document.form1.'+campo+'[0].focus()');
	}        
        return false; 
    } 
	return true;
}

/*
Función para comprobar que un valor es un número entero
Fecha: 28/02/02
Autor: Javi Ruiz (Almería)
*/
function esNumeroNatural(numero){
 if (numero>=0 && numero.indexOf(".")==-1 && numero.indexOf(",")==-1) return true;
 else return false;
}

/* 
Funcion para cambiar el color del borde de un objeto
Fecha: 01/12/03
*/
function cambiarBorde(objeto, color){
eval("document.form1."+objeto+".style.borderColor='"+color+"'");
}

/* 
Añade el texto a un select y lo selecciona 
Fecha 02/12/03
*/
function anyadeSelect(lista,texto){
		nuevo=new Option(texto,'-1',true,true);
		eval ("document.form1."+lista+".options["+lista.length+"]=nuevo");
}

/*
Deshabilita los campos de un vector
Fecha 02/12/03
*/
function deshabilitarCampos(campos){
	for(i=0;i<campos.length;i++){
		eval("document.form1."+campos[i]+".disabled=true");
	}
}

/*
Habilita los campos de un vector
Fecha 02/12/03
*/
function habilitarCampos(campos){
	for(i=0;i<campos.length;i++){
		eval("document.form1."+campos[i]+".disabled=false");
	}
}

/*
Cambia el color de los campos en un vector
Fecha 02/12/03
*/
function cambiarBordeCampos(campos,color){
	for(i=0;i<campos.length;i++){
		cambiarBorde(campos[i],color);
	}
}
	
function MM_openBrWindow(theURL,winName,features) { //v2.0
  ventana=window.open(theURL,winName,features);
  ventana.focus();
}

function expandir(curobj){
var ns6=document.getElementById&&!document.all?1:0;
var folder='';	folder=ns6?document.getElementById(curobj).style:eval("document.all["+curobj+".sourceIndex].style");
	if (folder.display == "none"){
		folder.display = ""
	}
	/*else{
		folder.display = "none"
	}*/
}

function contraer(curobj){
var ns6=document.getElementById&&!document.all?1:0;
var folder='';	folder=ns6?document.getElementById(curobj):eval("document.all["+curobj+".sourceIndex]");
folder.style.display = "none";
}

function cargarImagenes(){
    im=cargarImagenes.arguments;
    l=im.length;
    i=new Array();
    for (a=0;a<l;a++){
        i[a]=new Image();
        i[a].src=im[a];
    }
}

function cargarImagenesArray(im){
    l=im.length;
    i=new Array();
    for (a=0;a<l;a++){
        i[a]=new Image();
        i[a].src=im[a];
    }
}

/*
Descripcion: Función para validar un NIF
Actualización: 28/11/2003
*/
function nifValidar(campo){   
           nif=campo.value;
	cadena="TRWAGMYFPDXBNJZSQVHLCKE";
	numeros="0123456789";
	if (nif.length!=9){
	   alert ("El N.I.F. introducido no es válido.");
	   campo.focus();
	   return false;
	}
	for (i=0;i<8;i++) {
        numero = nif.charAt(i);
		if ( numeros.lastIndexOf(numero) == -1) return false; //comprueba si nif(i) no es un numero
	}
    //comprueba si la ultima es una letra
	letra=nif.charAt(8).toUpperCase();
	if ( cadena.lastIndexOf(letra) == -1) {
	   alert ("El N.I.F. introducido no es válido.");
	   campo.focus();
	   return false;
	}
	//comprueba si la letra correpsondiente al numero mod 23 segun el orden "$cadena" es igual al del digito del nif
    letra_calculada = cadena.charAt((nif.substr(0,8) % 23));
	if( letra_calculada != letra){
              alert ("El N.I.F. introducido no es válido.");
	   campo.focus();
	   return false;
	}
	return true;
}

function popUp(direccion){
    ventana=window.open(direccion,'','toolbar=0');
    ventana.focus;  
}

