﻿// Archivo JScript
// Tratamiento de capas

////////////////////////////////////////////////////////////////////////////////////
// Funciones para tratamiento de pestañas en las páginas de edición con formularios 
////////////////////////////////////////////////////////////////////////////////////
var v_divanterior="div_ficha";
var v_form_estado="";

/* Cambia el estado de visualización de las diferentes pestañas */
function fn_form_muestra(pr_mensaje) {
    /* Dependiendo el estado del formulario */
    if (v_form_estado == "Edit" || v_form_estado == "New") {
        if ( v_divanterior.length > 0 ) {
            /* Oculta el div */
            document.getElementById(v_divanterior).style.display = "none";
            }
        /* Muestra el div */
        document.getElementById(pr_mensaje).style.display = "inline";
        /* Pone el div visualizado */
        v_divanterior=pr_mensaje;
        }
    }
/* Guarda el estado del formulario */
function fn_form_estado(pr_mensaje) {
    v_form_estado=pr_mensaje;
    }
////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////
// Funciones de cambios-visualización capas
////////////////////////////////////////////////////////////////////////////////////
// Función que oculta una capa y cambia el texto de un objeto que la activa
function fn_div_muestra(pr_capa,pr_control,pr_texto1,pr_texto2,pr_imagen1,pr_imagen2) {
    var s_div_capa;
    var s_control;
    
    /* Obtiene los objetos */
    s_div_capa=document.getElementById(pr_capa);
    /* Muestra el area encima */
    s_div_capa.style.display=s_div_capa.style.display == "block" ? "none" : "block";
    if (pr_control.length > 0) {
        s_control=document.getElementById(pr_control);
        if (s_control.tagName == "INPUT") 
            s_control.value=s_control.value == pr_texto1 ? pr_texto2 : pr_texto1;
        else
            s_control.title=s_control.title == pr_texto1 ? pr_texto2 : pr_texto1;
        }
        if (arguments.length > 4) {
            s_temp=s_control.src;
            if (s_temp.indexOf(pr_imagen1) > 0) {
                s_control.src=pr_imagen2;
            }
            else {
                s_control.src=pr_imagen1;
            }
        }
    }
// Función que oculta una capa, muestra otra y cambia el texto de un objeto que la activa
function fn_div_cambia(pr_capa1,pr_capa2,pr_control,pr_texto1,pr_texto2) {
    var s_div_capa1, s_div_capa2;
    var s_control;
    
    /* Obtiene los objetos */
    s_div_capa1=document.getElementById(pr_capa1);
    s_div_capa2=document.getElementById(pr_capa2);
    /* Muestra el area encima */
    s_div_capa1.style.display=s_div_capa1.style.display == "block" ? "none" : "block";
    s_div_capa2.style.display=s_div_capa2.style.display == "block" ? "none" : "block";
    if (pr_control.length > 0) {
        s_control=document.getElementById(pr_control);
        if (s_control.tagName == "INPUT") 
            s_control.value=s_control.value == pr_texto1 ? pr_texto2 : pr_texto1;
        else
            s_control.title=s_control.title == pr_texto1 ? pr_texto2 : pr_texto1;
        }
    }
/* Desactiva el marco pasado como parametro y muestra el segundo marco */
function fn_div_desactiva(pr_ocultar,pr_control) {
    var s_div_control;
    
    /* Obtiene los objetos */
    s_div_control=document.getElementById(pr_control);
    /* Muestra el area encima */
    s_div_control.style.display=s_div_control.style.display == "block" ? "none" : "block";
    /* Deshabilita los objetos */
    fn_div_creatmp(pr_ocultar);
    }
/* Activa el marco y oculta el segundo marco */
function fn_div_activa(pr_control) {
    var s_div_control;
    
    /* Obtiene los objetos */
    s_div_control=document.getElementById(pr_control);
    /* Muestra el area encima */
    s_div_control.style.display=s_div_control.style.display == "block" ? "none" : "block";
    /* Deshabilita los objetos */
    fn_div_removetmp();
    }
/* Oculta los elementos pasados como parametros, superponiendo una capa */ 
/* Utiliza una variable global para almacenar los div creados */           
v_divs_tmp = new Array();
function fn_div_creatmp(){
    document.getElementsByTagName("html")[0].style.overflow = "hidden";
    
    d = document.getElementsByTagName("BODY")[0];
    v_divs_tmp[v_divs_tmp.length] = document.createElement("DIV");
    v_divs_tmp[v_divs_tmp.length-1].style.width = "100%";
    v_divs_tmp[v_divs_tmp.length-1].style.height = "100%";
    v_divs_tmp[v_divs_tmp.length-1].style.position = "absolute";
    v_divs_tmp[v_divs_tmp.length-1].style.left = "0%";
    v_divs_tmp[v_divs_tmp.length-1].style.top = "0%";
    v_divs_tmp[v_divs_tmp.length-1].style.backgroundColor = "#999999";
    v_divs_tmp[v_divs_tmp.length-1].style.opacity = .6;
    v_divs_tmp[v_divs_tmp.length-1].style.filter = "alpha(opacity=60)";
    v_divs_tmp[v_divs_tmp.length-1].style.zindex =" 50";
    d.appendChild(v_divs_tmp[v_divs_tmp.length-1]);
    }
function fn_div_creatmp1(){
    d = document.getElementsByTagName("BODY")[0];
    for(x=0;x<arguments.length;x++){
        if (document.getElementById(arguments[x]))    {
            xPos = document.getElementById(arguments[x]).offsetLeft;
            yPos = document.getElementById(arguments[x]).offsetTop;
            oWidth = document.getElementById(arguments[x]).offsetWidth;
            oHeight = document.getElementById(arguments[x]).offsetHeight;
            v_divs_tmp[v_divs_tmp.length] = document.createElement("DIV");
            v_divs_tmp[v_divs_tmp.length-1].style.width = oWidth+"px";
            v_divs_tmp[v_divs_tmp.length-1].style.height = oHeight+"px";
            v_divs_tmp[v_divs_tmp.length-1].style.position = "absolute";
            v_divs_tmp[v_divs_tmp.length-1].style.left = xPos+"px";
            v_divs_tmp[v_divs_tmp.length-1].style.top = yPos+"px";
            v_divs_tmp[v_divs_tmp.length-1].style.backgroundColor = "#999999";
            v_divs_tmp[v_divs_tmp.length-1].style.opacity = .6;
            v_divs_tmp[v_divs_tmp.length-1].style.filter = "alpha(opacity=60)";
            v_divs_tmp[v_divs_tmp.length-1].style.zindex =" 50";
            d.appendChild(v_divs_tmp[v_divs_tmp.length-1]);
            }
        }
    }
/* Elemina las capas creadas para deshabilitar los objetos */
function fn_div_removetmp(){
    for (hippopotamus=0;hippopotamus<v_divs_tmp.length;hippopotamus++){
        document.getElementsByTagName("BODY")[0].removeChild(v_divs_tmp[hippopotamus]);
        }
    v_divs_tmp = [];
    document.getElementsByTagName("html")[0].style.overflow = "auto";
    }
    
/* Funciones de presentación */
var v_temporizadorplegar;
var v_temporizadordesplegar;
/* Despliega una capa, modificando su altura con un temporizador */
function fn_div_desplegar(pr_objeto,pr_maximo,pr_rango){
    clearTimeout(v_temporizadorplegar);
    var altura=parseInt(document.getElementById(pr_objeto).style.height);

    if(altura < pr_maximo) {
        altura=altura + pr_rango;
        document.getElementById(pr_objeto).style.height=altura+"px";
//		v_temporizadordesplegar=setTimeout("fn_div_desplegar('" + pr_objeto + "')",1);
        v_temporizadordesplegar=setTimeout( function () {
            fn_div_desplegar(pr_objeto,pr_maximo,pr_rango);
            } ,10);
        }
    else
        {
        clearTimeout(v_temporizadordesplegar);
        }
    }
/* Pliega la capa, modificando su altura con un temporizador */
function fn_div_plegar(pr_objeto, pr_rango) {
    clearTimeout(v_temporizadordesplegar);
    var altura=parseInt(document.getElementById(pr_objeto).style.height);

    if(altura > 0)
        {
        altura=altura - pr_rango;
        document.getElementById(pr_objeto).style.height=altura + "px";
//		v_temporizadorplegar=setTimeout("fn_div_plegar('" + pr_objeto + "')",10);
        v_temporizadorplegar=setTimeout( function() {
            fn_div_plegar(pr_objeto,pr_rango);
            },10);
        }
    else
        { 
        clearTimeout(v_temporizadorplegar);
        }
    }
/* Simula un flash cambiando entre dos colores una capa */
/* Parámetros: nombre capa, contador=0, color 1, color 2, número de vesces del flash 0=continuo, frecuencia del cambio de color */
function fn_div_flash(pr_objeto, pr_count, pr_color1, pr_color2, pr_max, pr_intervalo) {
    var s_div_control;
    
    /* Obtiene los objetos */
    s_div_control=document.getElementById(pr_objeto);
    s_div_control.style.backgroundColor = s_div_control.style.backgroundColor == pr_color1 ? pr_color2 : pr_color1;
    if (pr_count >= pr_max && pr_max > 0)
        return;
    window.setTimeout(function() {
        fn_div_flash(pr_objeto, pr_count + 1, pr_color1, pr_color2, pr_max, pr_intervalo);
        }, pr_intervalo);
    }
/* Simula un flash cambiando la clase de estinos de una capa */
/* Parámetros: nombre capa, contador=0, clase 1, clase 2, número de vesces del flash 0=continuo, frecuencia del cambio de color */
function fn_div_flash_class(pr_objeto, pr_count, pr_clase1, pr_clase2, pr_max, pr_intervalo) {
    var s_div_control;
    
    /* Obtiene los objetos */
    s_div_control=document.getElementById(pr_objeto);
    s_div_control.className = s_div_control.className == pr_clase1 ? pr_clase2 : pr_clase1;
    if (pr_count >= pr_max && pr_max > 0)
        return;
    window.setTimeout(function() {
        fn_div_flash_class(pr_objeto, pr_count + 1, pr_clase1, pr_clase2, pr_max, pr_intervalo);
        }, pr_intervalo);
    }

