
function alternarTabs(){

    $("#tabs td").click(function(){
        // Desactivar las demás capas
        $("#tabs td[id != '"+$(this).attr("id")+"']").each(function(){
            var id = "#" + $(this).attr("id");
            id = id.replace("tab_", "");
            // Desactivar la capa no seleccionada
            $(this).removeClass("seleccionada");
            $(id).hide();
        });

        // ID de la capa seleccionada
        var id = "#" + $(this).attr("id");
        id = id.replace("tab_", "");

        // Activar la capa pulsada
        $(this).addClass("seleccionada");
        $(id).fadeIn("normal");
    });

    $("#tabs td:eq(0)").click();
}


function alternarDisplay(capa, estilo){
    var d = $(capa).css("display");

    if(d == "none"){
        if(estilo == "slide"){
            $(capa).slideDown("fast");
        }
    } else {
        if(estilo == "slide"){
            $(capa).slideUp("fast");
        }
    }
}

function alternarCasillas(boton, chbox){
    // Hacer click en el botón de Marcar todos
    $(boton).click(function(){
        $(chbox).each(function(){
            $(this).attr("checked", $(boton).attr("checked"));
        });
    });

    // Desmarcar alguna casilla de la tabla
    $(chbox).change(function(){
        $(boton).attr("checked", "");

        // Si se marcan todos, se marca el inicial
        var sel = chbox + ":checked";
        if($(sel).length == $(chbox).length){
            $(boton).attr("checked", "checked");
        }
    });
}

function alternarListaCheckbox(idBoton, nombre){
    $("#"+idBoton).click(function(){
        if($(this).attr("checked")){
            $("input[name='"+nombre+"']").each(function(){
                $(this).attr("checked", "checked");
            });
        } else {
            $("input[name='"+nombre+"']").each(function(){
                $(this).attr("checked", "");
            });
        }
    });
}

function checkboxMarcados(chbox){
    var marcados = '';
    $(chbox).each(function(){
        if($(this).is(":checked")){
            marcados += ',' + $(this).val();
        }
    });

    if(marcados != ''){
        marcados = marcados.substr(1);
    }

    return marcados;
}

function checkboxMarcadosAlerta(chbox, alerta, texto_alerta){
    var marcados = '';
    $(chbox).each(function(){
        marcados += ',' + $(this).val();
    });

    if(marcados != ''){
        marcados = marcados.substr(1);
    } else if(alerta){
        alert(texto_alerta);
    }

    return marcados;
}

function inputMarcados(nombre){
    var marcados = '';
    $("input[name='"+nombre+"']:checked").each(function(){
        marcados += ',' + $(this).val();
    });

    if(marcados != ''){
        marcados = marcados.substr(1);
    }

    return marcados;
}

function compararFechas(fecha1,fecha2){
    fecha1=fecha1.substring(6,10)+fecha1.substring(3,5)+fecha1.substring(0,2);
    fecha2=fecha2.substring(6,10)+fecha2.substring(3,5)+fecha2.substring(0,2);
    if(fecha1==fecha2) return 0;
    if(fecha1>fecha2)  return 1;
    return 2;
}

function cambio(abc)
{
    if (document.getElementById(abc).style.display == 'none')
        document.getElementById(abc).style.display = '';
    else
        document.getElementById(abc).style.display = 'none';
}


function validar_documento(input,valor)
{
    var numero = input;
    if (valor == "")
        numero.id='';
    else if (valor == 1)
        numero.id = '*C';

    else if (valor == 2)
        numero.id = '*N';

    else if (valor == 3)
        numero.id = '*';

    else if (valor == 4)
        numero.id = '*D';
}

function check_dir_postal(formulario)
{
    var via2 = formulario.via2;

    if (via2.id== '')
    {
        via2.id = '*';
    }
    else if (via2.id== '*')
    {
        via2.id = '';
    }

    var numero2 = formulario.numero2;

    if (numero2.id== '')
    {
        numero2.id = '*';
    }
    else if (numero2.id== '*')
    {
        numero2.id = '';
    }

    var cod_postal2 = formulario.cod_postal2;

    if (cod_postal2.id=='')
    {
        cod_postal2.id = '*P';
    }
    else if (cod_postal2.id== '*P')
    {
        cod_postal2.id = '';
    }
    var check = formulario.direccion_check;
    if (check.value == 'true')
    {
        check.value = 'false';
    }
    else
    {
        check.value = 'true';
    }
}


function ShowPopup(hoveritem, popup)
{
    hp = document.getElementById(popup);

    // Set position of hover-over popup
    hp.style.top = hoveritem.offsetTop + 18;
    hp.style.left = hoveritem.offsetLeft + 20;

    // Set popup to visible
    hp.style.visibility = "Visible";
}

function HidePopup(popup)
{
    hp = document.getElementById(popup);
    hp.style.visibility = "Hidden";
}


function mostrarElemento( id )
{
    el = document.getElementById(id);
    el.style.display = "";
}

function esconderElemento( id )
{
    el = document.getElementById(id);
    el.style.display = "none";
}

function ventanaSecundaria( URL, nombre, forma ){
    window.open( URL, nombre, forma );
}

function actualizaPadreClick(boton, campo, valor){
    var campos = campo.split(",_,");
    var valores = valor.split(",_,");

    for(i = 0; i < campos.length; i++)
    {
        window.opener.document.forms[0][campos[i]].value = valores[i];
    }

    window.opener.document.forms[0][boton].click();
    window.close();
}

function actualizaPadre(campo, valor){
    window.opener.document.forms[0][campo].value = valor;
    window.close();
}

function actualizaPadre2( form, c1, c2, v1, v2 ){
    window.opener.document.forms[form][c1].value = v1;
    window.opener.document.forms[form][c2].value = v2;
    window.close();
}

function actualizamismo( form, c1, c2, v1, v2 ){
    window.document.forms[form][c1].value = v1;
    window.document.forms[form][c2].value = v2;
    enviarDatos('');
}

function actualizaPadre3( form, c1, c2, c3, v1, v2, v3 ){
    window.opener.document.forms[form][c1].value = v1;
    window.opener.document.forms[form][c2].value = v2;
    window.opener.document.forms[form][c3].value = v3;
    window.close();
}


function actualizaPadre4( form, c1, c2, c3, c4, v1, v2, v3, v4 ){
    window.opener.document.forms[form][c1].value = v1;
    window.opener.document.forms[form][c2].value = v2;
    window.opener.document.forms[form][c3].value = v3;
    window.opener.document.forms[form][c4].value = v4;
    window.close();
}

function actualizaPadre5( form, c1, c2, c3, c4, c5, v1, v2, v3, v4, v5 ){
    window.opener.document.forms[form][c1].value = v1;
    window.opener.document.forms[form][c2].value = v2;
    window.opener.document.forms[form][c3].value = v3;
    window.opener.document.forms[form][c4].value = v4;
    window.opener.document.forms[form][c5].value = v5;
    window.close();
}

function actualizaPadre7( form, c1, c2, c3, c4, c5, c6, c7, v1, v2, v3, v4, v5, v6, v7 ){
    window.opener.document.forms[form][c1].value = v1;
    window.opener.document.forms[form][c2].value = v2;
    window.opener.document.forms[form][c3].value = v3;
    window.opener.document.forms[form][c4].value = v4;
    window.opener.document.forms[form][c5].value = v5;
    window.opener.document.forms[form][c6].value = v6;
    window.opener.document.forms[form][c7].value = v7;
    window.close();
}

// Función que devuelve un número redondeao a dos decimales
function redondearFloat( num )
{
    return (Math.round( num * 100 ) / 100);
}


// Función que devuelve un Float a partir de un número formateado
function obtenerFloat( cadena )
{
    if( !(cadena > 0))
    {
        cadena2 = cadena.split( '.' ).join( '' );
        cadena2 = cadena2.replace( ',', '.' );
    }
    else cadena2 = cadena;

    return redondearFloat( cadena2 );
}


// Función que devuelve un número formateado para mostrar en pantalla
function formatear( num )
{
    number = redondearFloat( num );
    cadena = "";
    contador = 0;

    number = (number == Math.floor(number)) ? number + '.00' : ((number * 10 == Math.floor(number * 10)) ? number + '0' : number);
    cadena2 = number.toString();

    if( number >= 1000 )
    {
        cadena2 = cadena2.replace('.', ',');
        extraer = cadena2.substr( 0, cadena2.length -3 );

        for( s = extraer.length; s >= 0 ; s-- )
        {
            if( contador == 4 )
            {
                cadena = cadena2.charAt(s) + '.' + cadena;
                contador = 1;
            }
            else
            {
                cadena = cadena2.charAt(s) + cadena;
            }
            contador++;
        }
        cadena += cadena2.substr( cadena2.length - 2, cadena2.length );
    }
    else
    {
        cadena = cadena2.replace('.', ',');
    }

    return cadena;
}


function multiplicar( s1, s2, form, campo )
{
    document.forms[form][campo].value = formatear(obtenerFloat(s1)*obtenerFloat(s2));
}

function sumar( form, campo, s1, s2 )
{
    document.forms[form][campo].value = parseFloat(s1)+parseFloat(s2);
}

function calcularTotalAlbaran( subtotal, descuento, iva, form, campo )
{
    subtotal = obtenerFloat(subtotal);
    iva = obtenerFloat(iva);
    var tmp = redondearFloat(subtotal-(subtotal*(descuento/100)));
    document.forms[form][campo].value = formatear(redondearFloat(tmp+(tmp*(iva/100))));
}

function calcular_descuento( form, campo, valor, descuento )
{
    valor = obtenerFloat(valor);
    document.forms[form][campo].value = formatear(redondearFloat(valor*descuento/100));
}

function calcular_descuento_base( form, campo, valor, descuento )
{
    valor = obtenerFloat(valor);
    document.forms[form][campo].value = formatear(redondearFloat(valor-(valor*(descuento/100))));
}

function calcular_iva( form, campo, valor, iva )
{
    valor = obtenerFloat(valor);
    iva = obtenerFloat(iva);
    document.forms[form][campo].value = formatear(redondearFloat(valor*iva/100));
}

function calcular_iva_formatear( form, campo, valor, iva )
{
    valor = valor.replace('.', '');
    valor = valor.replace(',', '.');
    valor = obtenerFloat(valor);
    iva = obtenerFloat(iva);
    document.forms[form][campo].value = formatear(redondearFloat(valor*iva/100));
}

function cambiar_valor( form, elemento, valor )
{
    if( document.forms[form][elemento].value == 1 )
        document.forms[form][elemento].value = 0;
    else if( document.forms[form][elemento].value == 0 )
        document.forms[form][elemento].value = 1;
}

function cambiar_valor_binario( form, elemento )
{
    if( document.forms[form][elemento].value == 1 )
        document.forms[form][elemento].value = 0;
    else if( document.forms[form][elemento].value == 0 )
        document.forms[form][elemento].value = 1;
}


function comprobar_checkbox( form, checkbox, num )
{
    if( num == 1 )
    {
        if( document.forms[form][checkbox].checked == false)
        {
            document.forms[form][checkbox].value = -1;
        }
        else document.forms[form][checkbox].value = document.forms[form][checkbox].id;
    }
    else
        for( i = 0; i < document.forms[form][checkbox].length; i++ )
        {
            if( document.forms[form][checkbox][i].checked == false)
            {
                document.forms[form][checkbox][i].value = -1;
            }
            else document.forms[form][checkbox][i].value = document.forms[form][checkbox][i].id;
        }
}
/******************************************************************************/
function marcar_conjunto_checkbox2(formulario,elemento){
    var chequeados,i,id;
    var desmarcar = true;
    chequeados =0;
    id="";

    for (i=0;i<=formulario.length;i++){
        obj= document.getElementById(elemento + i);
        if (obj!= null && !obj.checked){
            desmarcar = false;
            obj.click();
        }
    }
    if( desmarcar )
        for (i=0;i<=formulario.length;i++){
            obj= document.getElementById(elemento + i);
            if (obj!= null)
                obj.click();
        }
}
/******************************************************************************/
function desmarcar_conjunto_checkbox2(formulario,elemento){
    var chequeados,i,id;
    chequeados =0;
    id="";

    for (i=0;i<=formulario.length;i++){
        obj= document.getElementById(elemento + i);
        if (obj!= null){
            obj.checked = false;
        }
    }
}
/******************************************************************************/
function marcar_conjunto_checkbox( form, checkbox, num )
{
    var desmarcar = true;

    if( num == 1 )
        document.forms[form][checkbox].click();
    else if(num > 0)
    {
        for( i = 0; i < document.forms[form][checkbox].length; i++ )
            if( document.forms[form][checkbox][i].checked == false)
            {
                desmarcar = false;
                document.forms[form][checkbox][i].click();
            }
        if( desmarcar )
            for( i = 0; i < document.forms[form][checkbox].length; i++ )
                document.forms[form][checkbox][i].click();
    }
}

function marcarDesmarcarCheckbox( form, checkbox )
{
    var desmarcar = true;
    var num = document.forms[form][checkbox].length;

    if(num == undefined)
        document.forms[form][checkbox].click();
    else
    {
        for( i = 0; i < document.forms[form][checkbox].length; i++ )
            if( document.forms[form][checkbox][i].checked == false)
            {
                desmarcar = false;
                document.forms[form][checkbox][i].click();
            }
        if( desmarcar )
            for( i = 0; i < document.forms[form][checkbox].length; i++ )
                document.forms[form][checkbox][i].click();
    }
}


function eliminar_alumno_curso(num_doc_alumno,cod_curso,cod_servicio)
{
    document.forms[0].accion.value = 'eliminar';
    document.forms[0].alumno_eliminar.value = num_doc_alumno;
    document.forms[0].curso_eliminar.value = cod_curso;
    document.forms[0].servicio_eliminar.value = cod_servicio;
    document.forms[0].submit();
}

function actualizar_grupo_alumno(num_doc_alumno,cod_curso,cod_servicio,cod_convocatoria)
{
    document.forms[0].accion.value = 'actualizar_grupo';
    document.forms[0].alumno_actualizar.value = num_doc_alumno;
    document.forms[0].curso_actualizar.value = cod_curso;
    document.forms[0].servicio_actualizar.value = cod_servicio;
    document.forms[0].cod_convocatoria_actualizar.value = cod_convocatoria;
    document.forms[0].submit();
}


function submitboton(form, campo ,e)
{
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;

    if (keycode == 13)
    {
        document.forms[form][campo].click();
        return false;
    }
    else
        return true;
}


function submitformulario(form, campo ,e)
{
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;

    if (keycode == 13)
    {
        campo.form.submit();
        return false;
    }
    else
        return true;
}


function valorRadioBoton( form, radio )
{
    for( r = 0; r < document.forms[form][radio].length; r++ )
        if( document.forms[form][radio][r].checked == true)
        {
            return document.forms[form][radio][r].value;
        }
    return "";
}


function confirmarUsuario(direccion)
{
    mensaje = "Si YA es cliente, pulse “CANCELAR” e introduzca su usuario y contraseña.\n\nSi NO es cliente, pulse “ACEPTAR” e introduzca un usuario y contraseña \npara iniciar el proceso de contratación";
    if(confirm(mensaje))
    {
        location.href=direccion
    }
}
function aCesta(form, checkbox, campo,url,detalles )
{
    var desmarcar = true;
    var valores = '';
    div = detalles;

    chequearElementosCampoAlertaMensaje(document.forms[form],checkbox,campo,true,'Debe seleccionar al menos una Inscripción')

    //  if (valores.length > 0 ){
    cargaXML(url + '&' + campo + '=' + document.forms[form][campo].value);
    /*  }
  else
  {
     cargaXML(url);
  }*/

    desmarcar_conjunto_checkbox2(form, checkbox);

}

/*función genérica para n campos pasados en una cadena separada por comas*/
function actualizaPadreN(form,campos,valores){
    var variables;
    var variablesvalores;
    variables = campos.split("#,");
    variablesvalores = valores.split("#,");
    for (i=0;i<variables.length;i++){
        window.opener.document.forms[form][variables[i]].value = variablesvalores[i];
    }
    window.close();
}



function concatenaMarcados( form, checkbox, num )
{
    var concatenados = "";
    var nconcat = 0;
    if( num == 1 )
    {
        if( document.forms[form][checkbox].checked == true)
        {
            return document.forms[form][checkbox].value;
        }
    }
    else if (num > 1)
        for( con = 0; con < document.forms[form][checkbox].length; con++ )
        {
            if( document.forms[form][checkbox][con].checked == true)
            {
                if(nconcat == 0)
                {
                    concatenados += document.forms[form][checkbox][con].value;
                    nconcat++;
                }
                else
                {
                    concatenados += "," + document.forms[form][checkbox][con].value;
                    nconcat++;
                }
            }
        }
    return concatenados;
}


function concatenaMarcadosNumerados( form, checkbox, num )
{
    var concatenados = "";
    var nconcat = 0;

    for( con = 0; con < num; con++ )
    {
        if( document.forms[form][checkbox+(con+1)].checked == true)
        {
            if(nconcat == 0)
            {
                concatenados += document.forms[form][checkbox+(con+1)].value;
                nconcat++;
            }
            else
            {
                concatenados += "," + document.forms[form][checkbox+(con+1)].value;
                nconcat++;
            }
        }
    }
    return concatenados;
}


function obtenerValorCheckbox( form, checkbox )
{
    var concatenados = "";
    var num = document.forms[form][checkbox].length;

    if(num == undefined && document.forms[form][checkbox].checked == true)
        return document.forms[form][checkbox].value;
    else{
        for( con = 0; con < document.forms[form][checkbox].length; con++ )
        {
            if( document.forms[form][checkbox][con].checked == true)
                concatenados += document.forms[form][checkbox][con].value + ",";
        }
        if(concatenados != '') concatenados = concatenados.substr(0, concatenados.length - 1);
    }

    return concatenados;
}

function getSelectMultipleValues( form, select )
{
    var concatenados = "";
    var num = document.forms[form][select].length;

    if(num == undefined && document.forms[form][select].selected == true)
        return document.forms[form][select].value;
    else{
        for( con = 0; con < document.forms[form][select].length; con++ )
        {
            if( document.forms[form][select][con].selected == true)
                concatenados += document.forms[form][select][con].value + ",";
        }
        if(concatenados != '') concatenados = concatenados.substr(0, concatenados.length - 1);
    }

    return concatenados;
}


function limitarTexto(campo, numeroLimite) {
    if (campo.value.length > numeroLimite) {
        campo.value = campo.value.substring(0, numeroLimite);
    }
}


function insertarHTML(idContenedor, html)
{
    document.getElementById(idContenedor).innerHTML = html;
}


function elemento(form, nombre)
{
    return document.forms[form][nombre];
}


function cambiaObligatorioNombre(form, input)
{
    if(document.forms[form][input].id == '') document.forms[form][input].id = '*';
    else if(document.forms[form][input].id == '*') document.forms[form][input].id = '';
}

function ponerObligatorioNombre(form, input)
{
    document.forms[form][input].id = '*';
}

function quitarObligatorioNombre(form, input)
{
    document.forms[form][input].id = '';
}

function valorElemento(form, nombre)
{
    return document.forms[form][nombre].value;
}

function estaCheckeado( form, nombre )
{
    return document.forms[form][nombre].checked;
}

function bloquearFormulario(nombre){
    formulario = document.forms[nombre];
    for(i = 0; i < formulario.length; i++){
        formulario.elements[i].disabled = true;
    }
}


function estaEnCadena(cadenaBusqueda, valor){
    var aux = cadenaBusqueda.split(",");

    for (i = 0; i < aux.length; i++) {
        if (aux[i] == valor) {
            return true;
        }
    }

    return false;
}


function generarExcel(div, titulo, consulta){
    jAjaxDiv(div, "../auxiliar/exportar_a_excel.jsp", new Array("nombre", "consulta"), new Array(titulo + ".xls", consulta));
}



function getFechaDifMeses(fecha, meses){
    var dia = fecha.substr(0, 2);
    var mes = fecha.substr(3, 2);
    var anio = fecha.substr(6, fecha.length);
    
    // Calcular el mes
    var nuevo_mes = parseInt(mes) + parseInt(meses) - 1;
    var dif_anios = Math.floor(parseInt(nuevo_mes) / 12);

    // Comprobar año
    if(nuevo_mes > 12){
        anio = parseInt(anio) + dif_anios;
    } else if(nuevo_mes < 0){
        anio = parseInt(anio) - dif_anios;
    }

    // Comprobar mes
    if(nuevo_mes > 12 || nuevo_mes < 0){
        nuevo_mes = nuevo_mes % 12 + 1;
    }

    return dia + "/" + (nuevo_mes < 10 ? "0" : "") + nuevo_mes + "/" + anio;
}