function Excel(){
    url = document.location.href;
    if(url.indexOf("?")>0) url+="&excel=yes";
    else url+="?excel=yes";
    window.frames.iframe_excel.location=url;
}


function OpenDlgCalendar(origen,fecha) {
	VentanaHija=window.open("find_calendar.asp?origen="+origen+"&fecha="+fecha,"DialogCalendar","width=230,height=159,top=160,left=260,scrollbars=no,toolbar=no");
}


function trim(texto) {
	return texto.replace(/^\s+/g,'').replace(/\s+$/g,'');
}


function DateDiff(date1,date2) {
	// Convertir Primera Fecha
	fecha=date1.split("/");
	fecha1=new Date(fecha[2],fecha[1]-1,fecha[0]);
	fecha1=new Date(fecha1.valueOf()+31*86400000);

	// Convertir Segunda Fecha
	fecha=date2.split("/");
	fecha2=new Date(fecha[2],fecha[1]-1,fecha[0]);
	fecha2=new Date(fecha2.valueOf()+31*86400000);

	return(fecha1-fecha2) 
}


function Valdat(fecha) {
	var diames=new Array("31","28","31","30","31","30","31","31","30","31","30","31");
	fallo=0;

	if (fecha.length==10) {
		if (fecha.substring(2,3)!='\/' || fecha.substring(5,6)!='\/') fallo=1;

		wdia=fecha.substring(0,2); wmes=fecha.substring(3,5); wany=fecha.substring(6,10);
		if (isNaN(wdia) || isNaN(wmes) || isNaN(wany)) fallo=1;

		if (fallo==0) {
			// Año Bisiesto
			if (wany%4==0) diames[1]=29;
			else diames[1]=28;

			if (wdia<"01" || wdia>diames[wmes-1] || wmes<"01" || wmes>"12" || wany<"1980") fallo=1;
		}
	}
	else fallo=1;

	return fallo;
}


// Rutina de Entrada de Matrículas
function InputMatricula() {
	tecla=window.event.keyCode;
	if (tecla>=97 && tecla<=122) tecla-=32;

	if ((tecla<48 || tecla>57) && (tecla<65 || tecla>90)) window.event.keyCode=0;
	else window.event.keyCode=tecla;
}


// Rutina para Abrir la Ventana de Ayuda
function AbrirAyuda(id) {
	VentanaHija=window.open("ayuda.asp?id="+id,"HelpDialog","width=400,height=500,top=96,left=96,scrollbars=no,toolbar=no");
}


// Crear Objeto para AJAX
function createXMLHttp() {
	var aVersions=["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];

	if (typeof XMLHttpRequest!="undefined") {
		return new XMLHttpRequest();
	}
	else {
		for (i=0; i<aVersions.length;i++) {
			try {
				var oXmlHttp=new ActiveXObject(aVersions[i]);
				return oXmlHttp;
			}
			catch (oError) {
				// Nothing
			}
		}
	}

	alert("MSXMLm is not installed");
}


// Proceso de Exportación. Encadenamiento.
function Exportado(id) {
	eval("window.parent.document.formulario.id_"+id+".checked=false");
	eval("window.parent.document.formulario.env_"+id+".value=1");
	eval("window.parent.document.images['img"+id+"'].src='../img/ok.gif'");
	window.parent.estado=1;
}


// Listados: Al pulsar el botón de Imprimir
function Imprimir() {
    // Activar las páginas a Imprimir
    ini=document.form_listado.pag_ini.value;
    fin=document.form_listado.pag_fin.value;

    for(f=1;f<=maximo;f++) {
	    wdisp=(f>=ini && f<=fin?'':'none');

	    eval("cap"+f+".style.display='"+wdisp+"'");
	    eval("det"+f+".style.display='"+wdisp+"'");
    }
    // Ocultar la Botonera
    botonera.style.display='none';
    print();
    /*A pesar que con 1 milisegundo ya funciona bien le pondremos 5 por si las moscas.*/
    setTimeout("OcultarDespuesDeImprimir();",5);
}

function OcultarDespuesDeImprimir(){
    // Mostrar la Botonera
    botonera.style.display='';

    // Desactivar todas las páginas excepto la actual;
    for(f=1;f<=maximo;f++) {
	    wdisp=(f==pagina?'':'none');

	    eval("cap"+f+".style.display='"+wdisp+"'");
	    eval("det"+f+".style.display='"+wdisp+"'");
    }
}

// Listados: Mostrar la página siguiente
function ImprimirPagNext(accion) {
	if (pagina==maximo) return;

	eval("cap"+pagina+".style.display='none'");
	eval("det"+pagina+".style.display='none'");

	if (accion=="+") pagina++;
	else pagina=maximo;

	eval("cap"+pagina+".style.display=''");
	eval("det"+pagina+".style.display=''");

	ImprimirPonerPos();
}

// Listados: Mostrar la página anterior
function ImprimirPagPrev(accion) {
	if (pagina<2) return;

	eval("cap"+pagina+".style.display='none'");
	eval("det"+pagina+".style.display='none'");

	if (accion=="-") pagina--;
	else pagina=1;

	eval("cap"+pagina+".style.display=''");
	eval("det"+pagina+".style.display=''");

	ImprimirPonerPos();
}

// Listados: Mostrar página actual
function ImprimirPonerPos() {
	document.form_listado.punto.value=pagina+" / "+maximo;
	document.form_listado.pag_ini.value="1";
	document.form_listado.pag_fin.value=maximo;
}

// Coger la fecha del sistema en formato "dd/mm/aaaa"
function CogerFecha() {
	fecha = new Date()

	wdia=Left("00"+fecha.getDate(),2);
	wmes=Left("00"+fecha.getMonth(),2);
	wany=Left("0000"+fecha.getYear(),4);

	return wdia+"/"+wmes+"/"+wany;
}

// Función "Left" de un string
function Left(texto,largo) {
	wlargo=texto.length;

	if (wlargo<=largo) wleft=texto;
	else wleft=texto.substring(wlargo-largo,wlargo);

	return wleft;
}

// Abrir Quadro Dialogo Ficheros
function OpenDialogFiles(origen) {
	if (origen.substring(0,7)=='adjunto') 
		VentanaHija=window.open("find_ficheros.asp?origen="+origen+"&tipo=adjunto","DialogFiles","width=710,height=517,top=20,left=40,scrollbars=no,toolbar=no");
	else
		VentanaHija=window.open("find_ficheros.asp?origen="+origen+"&tipo=imagen","DialogFiles","width=710,height=517,top=20,left=40,scrollbars=no,toolbar=no");
}


// Poner el campo a Zero si no hay nada
function ValorZero(campo){
	if (eval("document.formulario."+campo+".value")=="") eval("document.formulario."+campo+".value=0");
}


// Pasar un numero a dos decimales
function RoundNumber(campo) {
	eval("numero=document.formulario."+campo+".value");
	numero=Round(numero);
	eval("document.formulario."+campo+".value=numero");
}


// Pasar un numero a dos decimales
function Round(numero) {
	return Math.round(numero*100)/100;
}


// Abrir Quadro Dialogo Registros
function OpenDialogRegistros(tipo,origen) {
	VentanaHija=window.open("find_registros.asp?tipo="+tipo+"&origen="+origen,"DialogRegistros","width=550,height=350,top=100,left=100,scrollbars=yes,toolbar=no");
}


// Abrir Quadro Dialogo Enlaces
function OpenDialogLinks(tipo,origen) {
	VentanaHija=window.open("web_find_enlaces.asp?tipo="+tipo+"&origen="+origen,"DialogLinks","width=710,height=525,top=20,left=40,scrollbars=no,toolbar=no");
}


// Enviar el nombre del archivo seleccionado
function AceptarFichero(destino) {
	eval("opener.formulario."+destino+".value='"+document.visor.src+"'");
	window.close();
}


// Accion de cambiar Carpeta
function VerImagen(imagen) {
	ext=imagen.substring(imagen.length-4,imagen.length);

	if (ext==".gif" || ext==".jpg") document.visor.src=imagen;
	else document.visor.src="../img/null.gif";
}


function AnimaBtn() {
	var argumentos=AnimaBtn.arguments;
	if (argumentos.length >= 2){
		var imagen = eval("document.images."+argumentos[0]);
		imagen.src = argumentos[1];
		if (argumentos[2] != null) {
				window.status = argumentos[2];
				return true;		
		}
	}
}


function NumeroDecimal() {
	k=false;

	tecla=window.event.keyCode;
	if (tecla==46) k=true;
	if (tecla>=48 && tecla<=57) k=true;

	if (k==false) window.event.keyCode=0;
}


function Numeros() {
	tecla=window.event.keyCode;
	if (tecla<48 || tecla>57) window.event.keyCode=0;
}


function NumeroDecimalNeg() {
	k=false;

	tecla=window.event.keyCode;
	
	if (tecla==45) k=true;
	if (tecla==46) k=true;
	if (tecla>=48 && tecla<=57) k=true;

	if (k==false) window.event.keyCode=0;
}

// Rutina de Validación de Formularios
// ===================================
//  Ejemplo:
//		if (ValidaForm("formulario",form_campo,form_valor,form_tipo) == 0)
//			document.formulario.submit();
//
//	Parámetros:
//		1) Nombre del Formulario.
//		2) Matriz con los mensajes a imprimir si falla ese campo.
//		3) Matriz con los nombres de los campos en el formulario.
//		4) Matriz con los tipos de campos:
//				"t":		Campo de texto.
//				"n","nxx":	Campo numérico. "xx" indica el tamaño del campo.
//				"e":		Campo de email.
//				"l":		Campo "Select".
//				"r":		Campo "Radio".
//				"m","mxx":	campo "TextArea". "xx" indica la longitud máxima.
//				"f":		Campo "Fecha".
//
function ValidaForm(form_nombre,form_campo,form_valor,form_tipo) {
	var diames=new Array("31","28","31","30","31","30","31","31","30","31","30","31");
	var docuform="document."+form_nombre;
	mensaje="Por favor, llenar: \n";
	error=0;
	
	for (i=0; i<form_campo.length; i++) {
		fallo=0;
		tipo=form_tipo[i].substring(0,1);
		largo=parseInt(form_tipo[i].substring(1,5));
		if (isNaN(largo)) largo=0;
		
		switch (tipo) {
			case "t":
				if (eval(docuform+"."+form_valor[i]+".value")=="") fallo=1;
				break;
			case "n":
				if (isNaN(eval(docuform+"."+form_valor[i]+".value")) ||
					eval(docuform+"."+form_valor[i]+".value")=="" ||
					(eval(docuform+"."+form_valor[i]+".value.length")!=largo && largo!=0)) fallo=1;
				break;
			case "e":
				valor=eval(docuform+"."+form_valor[i]+".value");
				if (valor.indexOf("@")<0 || valor.indexOf(".")<0 || valor.indexOf(" ")>=0) fallo=1;
				break;
			case "l":
				if (eval(docuform+"."+form_valor[i]+".selectedIndex")==0) fallo=1;
				break;
			case "r":
				fallo=1;
				valor=eval(docuform+"."+form_valor[i]+".length");

				for (f=0; f<valor; f++)
					if (eval(docuform+"."+form_valor[i]+"["+f.toString()+"].checked")==true) fallo=0;
				break;
			case "m":
				if (eval(docuform+"."+form_valor[i]+".value.length")>largo && largo>0) fallo=1;
				break;
			case "f":
				largo=eval(docuform+"."+form_valor[i]+".value.length");
				valor=eval(docuform+"."+form_valor[i]+".value");

				if (largo!=0) {
					if (largo!=10) fallo=1;
					if (valor.substring(2,3)!='\/' || valor.substring(5,6)!='\/') fallo=1;
					for (f=0; f<10; f++) {
						char=valor.substring(f,f+1);

						if (f!=2 && f!=5) {
							if (char<"0" || char>"9") fallo=1;
						}
						else {
							if (char!="\/") fallo=1;
						}
					}
					if (fallo==0) {
						dia=valor.substring(0,2);
						mes=valor.substring(3,5);
						any=valor.substring(6,10);

						// Año Bisiesto
						if (any%4==0) diames[1]=29;
						else diames[1]=28;

						if (any.length!=4) fallo=1;

						if (dia<"01" || dia>diames[mes-1] || mes<"01" || mes>"12" || any<"1980") fallo=1;
					}
				}
				break;
		}

		if (fallo) mensaje+=(error++!=0?", ":"")+form_campo[i];
	}
	
	if (error) alert(mensaje+".");
	return error;
}

function DateToText(fecha) {
	return fecha.substring(6,10)+fecha.substring(3,5)+fecha.substring(0,2);
}

//////////////////////////////////////////////////////////////
//															//
//	COLECCION DE FUNCIONES PARA EL GESTOR DE CONTENIDOS		//
//															//
//////////////////////////////////////////////////////////////

// Añadir un enlace
function NuevoBloque(numero) {
	document.formulario.accion.value="";
	document.formulario.numero.value=numero;
	document.formulario.submit();
}

// Borrar un enlace
function BorrarBloque(numero) {
	id=SeleccionId();

	if (id!="") {
		if (id!="-1") {
			document.formulario.accion.value="borrar";
			document.formulario.numero.value=numero;
			document.formulario.marcado.value=id;
			document.formulario.submit();
		}
		else alert("Deber haber más de un bloque.");
	}
	else alert("Seleccionar el bloque a eliminar.");
}

// Coger el Id del bloque seleccionado
function SeleccionId() {
    try{
        if ((numero=document.formulario.marca.length)==undefined) numero=1;    
    }
	catch (err){
	    return "-1";
	}
	if (numero>1) {
		for (f=0; f<numero; f++)
			if (document.formulario.marca[f].checked==true)
				return document.formulario.marca[f].value;
	}
	else return document.formulario.marca.value;

	return "";
}

// Mover un Bloque
function MoverBloque(accion,numero) {
	id=SeleccionId();

	if (id!="") {
		if (accion=="subir" && id=="1") {
			alert("No se puede subir el primer bloque.");
			return;
		}
		if (accion=="bajar" && id==numero.toString()) {
			alert("No se puede bajar el último bloque.");
			return;
		}

		if (id!="-1") {
			document.formulario.accion.value=accion;
			document.formulario.numero.value=numero;
			document.formulario.marcado.value=id;
			document.formulario.submit();
		}
		else alert("Debe haber más de un bloque.");
	}
	else alert("Seleccionar el bloque a mover.");
}

// Poner Tag en el Editor
function PonerTag(tipo) {
	// Coger el texto seleccionado
	wtxt=document.selection.createRange().text;

	if (wtxt!="") {
		// Modificar la Seleccion y poner el Tag
		document.selection.createRange().text="<"+tipo+">"+wtxt+"</"+tipo+">";
	}
}

// Poner el ID del enlace a 0
function AnulaEnlace(tipo,valor,valorid) {
	if (tipo==true) {
		if (eval("document.formulario."+valor+".value.substring(0,7)!='http://'"))
			eval("document.formulario."+valor+".value='http://'+document.formulario."+valor+".value;");
	}
	else eval("document.formulario."+valor+".value=''");

	eval("document.formulario."+valorid+".value='0'");
}
