function activar_pestana(activo) {
    activar_div(activo, 'pestanas', 'content_');
}

function activar_idioma(activo) {
    activar_div(activo, 'pestanas_lang', 'lang_');
}

function activar_div(activo, class_content, prefijo) {
    var divs = document.getElementsByTagName('div');

    var div_pestanas = null;
    for (i = 0; i < divs.length; i++) {
        if (divs[i].className == class_content) div_pestanas = divs[i];
    }

    if (!div_pestanas) {
        alert('no hay');
        return false;
    }

    divs = div_pestanas.getElementsByTagName('div');
    for (i = 0; i < divs.length; i++) {
        if (divs[i].id.indexOf(prefijo) != -1) {
            current_id = divs[i].id.substr(divs[i].id.indexOf(prefijo) + prefijo.length);
            document.getElementById('link_' + current_id).className = '';
            document.getElementById(prefijo + current_id).style.display = 'none';
        }
    }
    document.getElementById('link_' + activo).className = 'on';
    document.getElementById(prefijo + activo).style.display = 'block';

    return;
}


/**/


function trim(cadena) {
    while (cadena.charAt(0) == ' ' && cadena != '') cadena = cadena.substr(1);
    while (cadena.charAt(cadena.length - 1) == ' ' && cadena != '') cadena = cadena.substr(0, cadena.length - 1);
    return cadena;
}

function openwindow(theURL, winName, features) {
    //2.0 , NHT-NORWICK (jGoncalves)

    array_features = features.split(",");

    var width = false;
    var height = false;
    var top = false;
    var left = false;

    final_features = "";
    for (i = 0; i < array_features.length; i++) {
        key_value = array_features[i].split("=");
        if (key_value[0] != "width" && key_value[0] != "height" && key_value[0] != "top" && key_value[0] != "left") final_features += "," + array_features[i];
        if (key_value[0] == "width" || key_value[0] == "height" || key_value[0] == "top" || key_value[0] == "left") eval(key_value[0] + "=\"" + key_value[1] + "\"");
    }

    if (width == "max") {
        width = screen.availWidth - 13;
        left = 1;
    }
    if (height == "max") {
        height = screen.availHeight - 31;
        top = 1;
    }

    if (left == false) left = parseInt((screen.availWidth - Number(width)) / 2);
    if (top == false) top = parseInt((screen.availHeight - (Number(height) + 20)) / 2);

    final_features += ",width=" + width + ",height=" + height + ",left=" + left + ",top=" + top;

    final_features = final_features.substr(1);
    w = window.open(theURL, winName, final_features);
    return w;
}


function es_formato_euro(valor) {
    var expresion = new RegExp('^[0-9]+(,[0-9]{2})?$');
    if (expresion.test(valor)) return true;
    return false;
}


function esta_elemento_en_array(array, elemento) {
    for (zz = 0; zz < array.length; zz++) {
        if (array[zz] == elemento) return true;
    }
    return false;
}


/**/


/***/

function comprobarMail(s) {
    var expresion = new RegExp('^[0-9a-zA-Z_]+(([\\.-]?[0-9a-zA-Z_]+)+)?@[0-9a-zA-Z_-]+(\\.([0-9a-zA-Z_-])+)+$');
    if (expresion.test(s)) return true;
    else return false;
}

function format_to_array(obj) {
    array = new Array();
    if (obj.length) for (z = 0; z < obj.length; z++) array[z] = obj[z];
    else array[0] = obj;
    return array;
}

function validarFecha(strFecha) {
    // formato dd/mm/aaaa
    if (strFecha.length != 10) return false;
    arr = strFecha.split("/");
    str2 = arr[1] + "/" + arr[0] + "/" + arr[2];
    fecha = new Date(str2);
    if ((fecha.getDate() == arr[0]) && ((fecha.getMonth() + 1) == arr[1]) && (fecha.getFullYear() == arr[2])) {
        return true;
    }
    else {
        return false;
    }
}

function es_fecha_mayor(fecha_mayor, fecha_referencia) {
    fecha_mayor = parseInt('' + fecha_mayor.split('/')[2] + '' + fecha_mayor.split('/')[1] + '' + fecha_mayor.split('/')[0]);
    fecha_referencia = parseInt('' + fecha_referencia.split('/')[2] + '' + fecha_referencia.split('/')[1] + '' + fecha_referencia.split('/')[0]);
    if (fecha_mayor > fecha_referencia) return true;
    return false;
}

function comprobar_IP(s) {
    var expresion = new RegExp('^(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])(\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])){3}$');
    return expresion.test(s);
}

function etiquetas_errores(codigo, etiqueta) {
    var errores = new Array();
    errores[0] = '   - El campo ' + etiqueta + ' es obligatorio.\n';
    errores[1] = '   - El campo ' + etiqueta + ' debe ser una dirección válida de e-mail.\n';
    errores[2] = '   - El campo ' + etiqueta + ' debe contener sólo números.\n';
    errores[3] = '   - El campo ' + etiqueta + ' debe ser una fecha válida en formato dd/mm/aaaa.\n';
    errores[4] = '   - El campo ' + etiqueta + ' no contiene elementos.\n';
    errores[5] = '   - El campo ' + etiqueta.split('~')[1] + ' debe ser mayor que el campo ' + etiqueta.split('~')[0] + '.\n';
    errores[6] = '   - El campo ' + etiqueta + ' debe ser una imagen de tipo JPG, GIF o PNG.\n';
    errores[7] = '   - El campo ' + etiqueta + ' debe ser una dirección IP válida.\n';
    return errores[codigo];
}


function validar(f) {
    errores = '';
    for (i = 1; i < arguments.length; i++) {

        tipo = arguments[i].split('|')[1];
        etiqueta = arguments[i].split('|')[2];
        vacio_permitido = arguments[i].split('|')[3] == 'vacio_permitido' ? true : false;

        switch (tipo) {                // primer switch para definir la variable 'campo'

            case 'grupochecks':        campo = (arguments[i].split('|')[0]).split('~');
                break;
            case 'fecha_mayor':        campo = (arguments[i].split('|')[0]).split('~');
                break;


            default:                campo = eval('f.' + arguments[i].split('|')[0]);
        }

        switch (tipo) {

            case 'texto':            if (trim(campo.value) == '') errores += etiquetas_errores(0, etiqueta);
                break;




            case 'mail':            if (trim(campo.value) == '') {
                if (!vacio_permitido) errores += etiquetas_errores(0, etiqueta);
            }
            else if (!comprobarMail(campo.value)) errores += etiquetas_errores(1, etiqueta);
                break;




            case 'telefono':        if (trim(campo.value) == '') {
                if (!vacio_permitido) errores += etiquetas_errores(0, etiqueta);
            }
            else if (isNaN(campo.value)) errores += etiquetas_errores(2, etiqueta);
                break;



            case 'fecha':            if (trim(campo.value) == '') {
                if (!vacio_permitido) errores += etiquetas_errores(0, etiqueta);
            }
            else if (!validarFecha(campo.value)) errores += etiquetas_errores(3, etiqueta);
                break;




            case 'fecha_mayor':        if (campo.length != 2) {
                break;
            }
                fecha_1 = eval('f.' + campo[0] + '.value');
                fecha_2 = eval('f.' + campo[1] + '.value');
                if (!validarFecha(fecha_1) || !validarFecha(fecha_2)) {
                    break;
                }

                if (!es_fecha_mayor(fecha_2, fecha_1)) {
                    errores += etiquetas_errores(5, etiqueta);
                }
                break;



            case 'radio':            campo = format_to_array(campo);
                seleccionado = false;
                for (j = 0; j < campo.length && !seleccionado; j++) {
                    if (campo[j].checked) seleccionado = true;
                }
                if (!seleccionado) errores += etiquetas_errores(0, etiqueta);
                break;




            case 'select':
                if (campo.options.length > 1 && campo.options[campo.selectedIndex].value == '') errores += etiquetas_errores(0, etiqueta);
                break;

            case 'image':
                if (trim(campo.value) == '') {
                    if (!vacio_permitido) errores += etiquetas_errores(0, etiqueta);
                } else {
                    var extension = campo.value.substr(campo.value.lastIndexOf('.') + 1).toLowerCase();
                    if (extension != "jpg" && extension != "gif" && extension != "png") {
                        errores += etiquetas_errores(6, etiqueta);
                    }
                }
                break;


            case 'lista_vacia':
                if (campo.length <= 0) errores += etiquetas_errores(4, etiqueta);
                break;



            case "grupochecks":        seleccionado = false;
                for (j = 0; j < campo.length && !seleccionado; j++) {
                    elemento = eval('f.' + campo[j]);
                    if (elemento.checked) seleccionado = true;
                }
                if (!seleccionado) errores += etiquetas_errores(0, etiqueta);
                break;


            case 'ip':
                if (trim(campo.value) == '') {
                    if (!vacio_permitido) errores += etiquetas_errores(0, etiqueta);
                } else if (!comprobar_IP(campo.value)) errores += etiquetas_errores(7, etiqueta);
                break;



        }
        // fin de switch
    }
    // fin de for de argumentos


    return errores;
    /*
	if (errores!='') {
		alert('Se han producido los siguientes errores:\n\n' + errores + '\n');
		return false;
	}
	else {
		return true;
	}*/
}


function mostrar_errores(errores) {
    alert('Se han producido los siguientes errores:\n\n' + errores + '\n');
}

