﻿EXTRAS = {
	addEvent : function(obj, evType, fn, useCapture){
		if (obj.addEventListener){
			obj.addEventListener(evType, fn, useCapture);
			return true;
		} 
		else if (obj.attachEvent){
			var r = obj.attachEvent("on"+evType, fn);
			return r;
		} 
		else {
			return false;
		}
	},	
	getElementsByClass : function(className,node) {
		if(!node) node=document;
		var refTags = document.all ? node.all : node.getElementsByTagName("*");
		var retVal = new Array();
		for(var z=0;z<refTags.length;z++) {
			if(refTags[z].className == className) 
			retVal.push(refTags[z]);
		}
		return retVal; 
	}
}

init = function() {
    CrearPestanas();
    AccionesFormularios();
    ActivarToggleCheckField();
    ActivarOcultacionCheckField();
    ActivarCategoriasDesplegables();
    ActivarOrdenacion();
    OcultarSeleccionUsuarios();
    ValidacionForm();
    marcadorClientes();
    marcadorPaises0();
    marcadorPaises1();
    marcadorPaises2();
    marcadorPaises3();
    marcadorPaises4();
    marcadorRegiones();
    marcadorZonas();
    marcadorClientesPromo();
    muestraFckEditor();
}



/***************************************************************************/
/*accionar: funcion de despliega un elementoSeccion si esta plegado y lo pliega
/*          si esta desplegado.
/*@param numero numero de orden del menu a desplegar
/***************************************************************************/
var ulArray = new Array();
AccionarCategoria = function(numero) {
	if(ulArray[numero].desplegado) {
		ulArray[numero].cierrate();
	} else {
        	ulArray[numero].abrete();
	}
}
/***************************************************************************/
/*elementoSeccion: Constructor de la clase inicializacion de elementosMenu.
/*@param bar: objeto que contiene un elemento li del arbol de categorias
/*@param num:  numero de orden del elemento
/***************************************************************************/
ElementoSeccion = function(bar, num, funcion) {
   this.element = bar;
   this.indice = num;
   this.desplegado = true;
   this.ul = null;
   ulTags = this.element.getElementsByTagName("UL");
   this.element.style.listStyleType = "none";
   this.element.style.listStyleImage = "none";
   this.element.style.listStylePosition = "outside";
   if(ulTags.length > 0) {
        this.ul = ulTags[0];
        this.displayMode = this.ul.style.display;
        if(this.ul.style.display != "none") {
            this.desplegado = false;
            this.ul.style.display = "none";
        }
        this.contOriginal = this.element.innerHTML;
        this.element.innerHTML = "<a href=\"#anchorArbol\" class=\"cerrado\" onClick=\"javascript:"+
            " "+funcion+"("+ this.indice +");\" title=\"Plegar o desplegar subsecciones\">Desplegar</a>" + this.contOriginal;
        for(var j = 0; j < ulTags.length; j++) {
            if(ulTags[j].className == 'listaContenido' && 
                ulTags[j].style.display != 'none') {
                ulTags[j].style.display = 'none';
            }
        }
   } else {
        this.element.innerHTML = '<div class="imagenEstatica"></div>' + this.element.innerHTML;
   }
   this.abrete = function() {      		
	    if(this.desplegado == false && this.ul != null) {	    	
            	ulTags = this.element.getElementsByTagName("UL");
            	aTags = this.element.getElementsByTagName("A");
                for(var i = 0; i < ulTags.length; i++) {
                    if(ulTags[i].parentNode == this.element) {
                        ulTags[i].style.display = 'block';
                    }
                }
            	aTags[0].className = "abierto";
		this.desplegado = true;
	    }
   }
   this.cierrate = function () { 
	    if(this.desplegado == true && this.ul != null) {
		ulTags = this.element.getElementsByTagName("UL");
            	aTags = this.element.getElementsByTagName("A");
		for(var i = 0; i < ulTags.length; i++) {
                    if(ulTags[i].parentNode == this.element) {
                        ulTags[i].style.display = 'none';
                    }
                }
            	aTags[0].className = "cerrado";
		this.desplegado = false;
	    }
   }
}

/**********************************************************************************************/
/*CategoriasDesplegables: inicializacion de los elementosMenu y disposicion del estado inicial*/
/**********************************************************************************************/
ActivarCategoriasDesplegables = function() {
      try {
	 var divTag = document.getElementById("elementosZonaWeb");
         if(divTag != null) {
             var liTags = divTag.getElementsByTagName("LI");
             var tamano = liTags.length;
             for(var i = 0; i < tamano; i++) {
                ulArray[i] = new ElementoSeccion(liTags[i],i,"AccionarCategoria");
             }
         }
         return true; 
      } catch (exception) {
        return false;
      }	  
}
/**********************************************************************************************/
/*Validación datos:
/**********************************************************************************************/
var element; //variable con el 
ValidacionForm = function(){
  var form = document.getElementById("formValidaDatos");
  if (form != null) {
    this.inputTags = form.getElementsByTagName("INPUT");
    for(var i = 0; i < this.inputTags.length; i++) {
        if((this.inputTags[i].value.match(/Guardar/g) || this.inputTags[i].value.match(/Modificar/g)) && this.inputTags[i].type == "submit") {
            EXTRAS.addEvent(this.inputTags[i],'click',accionarValidacionForm,false);
        }
    }		   
  } 
}

accionarValidacionForm = function(){
 var enviar = true;
    if(window.event) {
            element = window.event.srcElement;
	} else {
            element = this;
    }
            if(document.getElementById("codigocliente") != null){
                if(inputTags.codigocliente.value == '') {
                   alert("Debe insertar un valor para el Código");
                   inputTags.codigocliente.focus();
                   enviar = false;
                   if(!window.event)
                    element.type = 'button';
                   else
                       window.event.returnValue = false;
                   return false;
                } else if(inputTags.codigocliente.value != '') {
                    if (isNaN(inputTags.codigocliente.value)){
                            alert("Debe insertar un valor numérico para el Código");
                            //inputTags.codigocliente.value="";
                            inputTags.codigocliente.focus();
                            enviar = false;
                            if(!window.event)
                                element.type = 'button';
                            else
                                window.event.returnValue = false;
                            return false;
                        } 
                    }
            }
            if(inputTags.dni){
                if (inputTags.dni.value != '') {
                  if(!ValidaDni(inputTags.dni.value)){
                        alert("Debe insertar un DNI válido");
                        //inputTags.dni.value="";
                        inputTags.dni.focus();
                        enviar = false;
                        if(!window.event)
                            element.type = 'button';
                        else
                            window.event.returnValue = false;
                        return false;
                  }
                } else if (element.value == 'Guardar Usuario'){
                        alert("Debe insertar un DNI");
                        inputTags.dni.focus();
                        enviar = false;
                        if(!window.event)
                            element.type = 'button';
                        else
                            window.event.returnValue = false;
                        return false;
                  }
            }
            if(inputTags.nombre){
                if(inputTags.nombre.value == '') {
                   alert("Debe insertar un Nombre");
                   inputTags.nombre.focus();
                   enviar = false;
                   if(!window.event)
                    element.type = 'button';
                   else
                       window.event.returnValue = false;
                   return false;
                }
             }   
          if(inputTags.direccion){
                if(inputTags.direccion.value == '') {
                   alert("Debe insertar una Dirección");
                   inputTags.direccion.focus();
                   enviar = false;
                   if(!window.event)
                    element.type = 'button';
                   else
                       window.event.returnValue = false;
                   return false;
                }
             }
            if(inputTags.cp){
                if(inputTags.cp.value == '') {
                   alert("Debe insertar un Código Postal");
                   inputTags.cp.focus();
                   enviar = false;
                   if(!window.event)
                    element.type = 'button';
                   else
                       window.event.returnValue = false;
                   return false;
                } 
                if(inputTags.cp.value != '' && isNaN(inputTags.cp.value)){
                    alert("Debe insertar un valor numerico para el Código Postal");
                   inputTags.cp.focus();
                   enviar = false;
                   if(!window.event)
                    element.type = 'button';
                   else
                       window.event.returnValue = false;
                   return false;
                }
             }
            if(inputTags.idpais){
                if(inputTags.idpais.value == '') {
                   alert("Debe insertar el Pais");
                   inputTags.idpais.focus();
                   enviar = false;
                   if(!window.event)
                    element.type = 'button';
                   else
                       window.event.returnValue = false;
                   return false;
                }
             }   
            if(inputTags.idregion){
                if(inputTags.idregion.value == '') {
                   alert("Debe insertar la Región");
                   inputTags.idregion.focus();
                   enviar = false;
                   if(!window.event)
                    element.type = 'button';
                   else
                       window.event.returnValue = false;
                   return false;
                }
             }
            if(inputTags.telefono){
                if(inputTags.telefono.value != '') {
                   inputTags.telefono.value = inputTags.telefono.value.split(' ').join('');
                   if (isNaN(inputTags.telefono.value) || (inputTags.telefono.value.length < 9)){
                   alert("Debe insertar un valor válido para el Teléfono.\nDebe tener al menos 9 dígitos ");
                   //inputTags.telefono.value="";
                   inputTags.telefono.focus();
                   enviar = false;
                   if(!window.event)
                    element.type = 'button';
                   else
                       window.event.returnValue = false;
                   return false;
                   }
                }
             }
             if(inputTags.email){
                if (inputTags.email.value != '') {
                  if(!ValidaEmail(inputTags.email.value)){
                        alert("Dirección de email incorrecta.");
                        //inputTags.email.value="";
                        inputTags.email.focus();
                        enviar = false;
                        if(!window.event)
                            element.type = 'button';
                        else
                            window.event.returnValue = false;
                        return false;
                  }
                } else if (element.value == 'Guardar Usuario'){
                        alert("Debe insertar el Email.");
                        inputTags.email.focus();
                        enviar = false;
                        if(!window.event)
                            element.type = 'button';
                        else
                             window.event.returnValue = false;
                         return false;
                   }
            }
            if(inputTags.idusuario){
                if(inputTags.idusuario.value == '') {
                   alert("Debe rellenar Usuario");
                   inputTags.idusuario.focus();
                   enviar = false;
                   if(!window.event)
                    element.type = 'button';
                   else
                       window.event.returnValue = false;
                   return false;
                }
             }
            if(inputTags.password){
                if(inputTags.password.value == '' && element.value == 'Guardar Usuario') {
                   alert("Debe rellenar Password");
                   inputTags.password.focus();
                   enviar = false;
                   if(!window.event)
                    element.type = 'button';
                   else
                       window.event.returnValue = false;
                   return false;
                }
             }
           if(inputTags.bandera){
                if(inputTags.bandera.value == '') {
                   alert("Debe insertar una bandera");
                   inputTags.bandera.focus();
                   enviar = false;
                   if(!window.event)
                    element.type = 'button';
                   else
                       window.event.returnValue = false;
                   return false;
                }
           }
           if(inputTags.archivo){
                if(inputTags.archivo.value == '') {
                   alert("Debe insertar el archivo de traducción");
                   inputTags.archivo.focus();
                   enviar = false;
                   if(!window.event)
                    element.type = 'button';
                   else
                       window.event.returnValue = false;
                   return false;
                }
           }
           if (enviar){
                element.type = 'submit';
            }
           
}

/**********************************************************************************************/
/*AlertaEliminacion: inicializacion del evento en los inputs para pedir confirmación de que se*/
/*                   desea eliminar un item de información*/
/**********************************************************************************************/
var msgConfirmacion = '';
var element; //variable con el 

AlertaEliminacion = function() {
    this.inputTags = document.getElementsByTagName("INPUT");
    for(var i = 0; i < inputTags.length; i++) {
        if(this.inputTags[i].value.match(/Eliminar/g) && inputTags[i].type == "submit") {
            EXTRAS.addEvent(inputTags[i],'click',confirmarEliminacion,false);
        }
    }
    
}

confirmarEliminacion = function() {
	if(window.event) {
		element = window.event.srcElement;
		msgConfirmacion = '¿Esta seguro de que desea ' + element.value + '?';
		if(!confirm(msgConfirmacion)) {
			window.event.returnValue = false;
                }
	} else {
		element = this;
		msgConfirmacion = '¿Esta seguro de que desea ' + element.value + '?';
		if(!confirm(msgConfirmacion)) {
			element.type= 'reset';
                } else {
                                element.type = 'submit';
                }
	}
}

/******************************************************************************
 *Ordenador de tablas. Toma una tabla construida con solo una fila dentro de 
 * <thead> y crea para cada columna un enlace en la misma que permite ordenar el
 * resto de filas dentro de <tbody>.
/*****************************************************************************/
var estadoOrdenacion = "descendente";
var columnaOrdenacion = -1;
var thNodes = null;
var tbodyNode = null;

ActivarOrdenacion = function() {
    var tablaNode = document.getElementsByTagName('TABLE');
    for(var t =0; t < tablaNode.length; t++) {
        var theadNodes = tablaNode[t].getElementsByTagName('THEAD');
        for(var j = 0; j < theadNodes.length; j++) {
            if(theadNodes[j].parentNode == tablaNode[t]) {
                thNodes = theadNodes[j].getElementsByTagName('TH');
                for(var i = 0; i < thNodes.length; i++) {
                        thNodes[i].innerHTML="<a href=\"#\" title=\"Pulse aqu&iacute; para ordenar por esta columna\" onClick=\"javascript: "+
                                "ordenaTabla("+i+",this);\">"+thNodes[i].innerHTML+"</a>";
                }
            }
        }
    }
}

 /**
 * Funcion que ordena una tabla según el número de la cabecera que se le pase
 **/
ordenaTabla = function(nNode, Node) {
    var tableNode = Node.parentNode;//TH
    tableNode = tableNode.parentNode;//TR
    tableNode = tableNode.parentNode;//THEAD
    tableNode = tableNode.parentNode;//TABLE
    var aTbodyNode = tableNode.getElementsByTagName('TBODY');
    tbodyNode = aTbodyNode[0];
    if(tbodyNode != null) {
        var trNodes = tbodyNode.getElementsByTagName('TR');
        var len = trNodes.length;
        var contadorNodes = 0;
        for(var j = 0; j < len ; j++) {
            if(trNodes[j].parentNode == tbodyNode) {
                contadorNodes++;
            }
        }
        var trNodesSaved = new Array();
        for(var j = 0; j < contadorNodes; j++) {
            if(trNodes[0].parentNode == tbodyNode) {
                trNodesSaved[j] = tbodyNode.removeChild(trNodes[0]);
            }
        }
        /** Algoritmo de ordenación....
        * tomamos la primera posicion, calculamos el elemento menor del array y lo
        * intercambiamos por el que está en la primera posición. Después continuamos
        * por la siguiente posición.
        */
        var tdNodes = null;
        var actualText = "";
        var partialText = "";
        var actualNode = null;
        var aux = null;
        var indiceMenor = 0;
        for(var i = 0; i < trNodesSaved.length; i++) {
            tdNodes =  trNodesSaved[i].getElementsByTagName("TD");
            actualNode = trNodesSaved[i];//el TR padre...
            actualText = getTdText(tdNodes[nNode]);//texto del nodo que minimizamos
            for(var j = i; j < trNodesSaved.length; j++) {
                aux = trNodesSaved[j].getElementsByTagName("TD");
                partialText = getTdText(aux[nNode]);
                if(estadoOrdenacion == "descendente" || nNode != columnaOrdenacion){
                    if(partialText < actualText) {
                        indiceMenor = j;
                        actualText = partialText;
                    }
                } else {
                    if(partialText > actualText) {
                        indiceMenor = j;
                        actualText = partialText;
                    }
                }
            }
            if(indiceMenor > i) {
                aux = trNodesSaved[indiceMenor];
                trNodesSaved[indiceMenor] = trNodesSaved[i];
                trNodesSaved[i] = aux;
            }
            indiceMenor = i;
        }
        for(var j = 0; j < trNodesSaved.length; j++) {
            tbodyNode.appendChild(trNodesSaved[j]);
        }
        if(estadoOrdenacion == "descendente") {
            estadoOrdenacion = "ascendente";
        } else {
            estadoOrdenacion = "descendente";
        }
        if(columnaOrdenacion == -1) {
            columnaOrdenacion = nNode;
        }
        thNodes = Node.parentNode.parentNode.getElementsByTagName("TH");
        for(var i = 0; i < thNodes.length; i++) {
            aNodes = thNodes[i].childNodes[0];
            if(i == nNode) {
                if(columnaOrdenacion == nNode) {
                    thNodes[nNode].innerHTML = "<a href=\"#\" title=\"Pulse aqu&iacute; para ordenar por esta columna\" onClick=\"javascript: "+
                        "ordenaTabla("+nNode+",this);\" class=\""+
                        estadoOrdenacion+"\">"+aNodes.innerHTML+"</a>";
                } else {
                    columnaOrdenacion = -1;
                    thNodes[nNode].innerHTML = "<a href=\"#\" title=\"Pulse aqu&iacute; para ordenar por esta columna\" onClick=\"javascript: "+
                        "ordenaTabla("+nNode+",this);\" class=\"ascendente\">"+
                        aNodes.innerHTML+"</a>";
                }
            } else {
                thNodes[i].innerHTML="<a href=\"#\" title=\"Pulse aqu&iacute; para ordenar por esta columna\" onClick=\"javascript: "+
                               "ordenaTabla("+i+",this);\">"+aNodes.innerHTML+"</a>";
            }
        }
        columnaOrdenacion = nNode;
    }
}

/**
 * Obtiene el texto dentro de cualquier td aunque esté contenido en una etiqueta
 * LABEL.
 */
getTdText = function(Node) {
    if(Node.innerText != null) {
        if(Node.innerText.indexOf("º") > 0) {
            return parseInt(Node.innerText);
        } else {
            return Node.innerText;
        }
    } else {
        if(parseInt(Node.textContent) > 0) {
            return parseInt(Node.textContent);
        } else {
            return Node.textContent;
        }
    }
}

/**
*Detectará si en la página existe algún div con id = "/pestana[0-9]+/" y creará
* antes del primero un bloque con id = "enlacesPestanas" que contendrá tantas 
* etiquetas 'a' como el número de bloques 'div' encontrados con dichos id. El 
* contenido de las etiquetas 'a' se corresponderá con el valor del atributo 
* 'title' de los divs encotrados. El enlace presionado tendrá la clase de 
* estilo class = "pestanaActiva".
*/
var aStringInstancias = new Array();

accionar = function(numero, total, esteNodo) {
    var divPestanas = new Array(total);
    for(var j = 0; j < total; j++) {
        divPestanas[j] = document.getElementById("pestana" + j);
        if(divPestanas[j] != null) {
            if(j == numero) {
                divPestanas[j].style.display = 'block';
            } else {
                divPestanas[j].style.display = 'none';
            }
        }
    }
    var enlacesAccion = esteNodo.parentNode.getElementsByTagName("A");
    if(enlacesAccion != null) {
        for(var j = 0;j < enlacesAccion.length; j++) {
            enlacesAccion[j].className = "";
        }
    }
    esteNodo.className = "enlaceActivo";
}

CrearPestanas = function() {
    var divContenido = document.getElementById("contenido");
    var divBlocks =  document.getElementsByTagName("DIV");
    var numPestanasMax = divBlocks.length;
    var contadorPestanas = 0;
    //obtenemos los divs que deberémos convertir en pestañas
    for(var i = 0; i < 9; i++) {
        var divAux = document.getElementById("pestana" + i);
        if(divAux != null) {
            contadorPestanas = contadorPestanas+1;
            crearSubpestanas(divAux);
        }
    }
    if(contadorPestanas > 0) {
        //añadimos el div que contendrá los enlaces
        var divEnlacesPestanas = document.createElement("DIV");
        var pestanas = new Array(contadorPestanas);
        var enlacesPestanas = new Array(contadorPestanas);
        for(var j = 0; j < contadorPestanas; j++) {
            pestanas[j] = document.getElementById("pestana" + j);
            if(pestanas[j] != null && pestanas[j].className != "pestanaActiva"){
                pestanas[j].className = "contenidoPestana";
                divContenido.removeChild(pestanas[j]);
            } else {
                divContenido.insertBefore(divEnlacesPestanas,pestanas[j]);
            }
        }
        divEnlacesPestanas.id = "enlacesPestanas";
        var iniciaEncontrado = false;
        for(var j = 0; j < pestanas.length; j++) {
            if(pestanas[j] != null && pestanas[j].className == "pestanaActiva") {
                iniciaEncontrado = true;
            }
        }
        if(iniciaEncontrado) {
	        for(var j = 0; j < contadorPestanas; j++) {
                      if(pestanas[j] != null) {
                          //añadimos el enlace con el código pertinente (o impertinente?):
                          if(pestanas[j].className != "pestanaActiva"){
                                //añadimos la 'capa'
                                divContenido.appendChild(pestanas[j]);
                                divEnlacesPestanas.innerHTML += "[<a href=\"#\" id=\"p"+j+"\" onClick=\"accionar("
                                   +j+", "+contadorPestanas+", this)\">"+pestanas[j].title+"</a>]";
                                pestanas[j].style.display = "none";
                          } else {
                                divEnlacesPestanas.innerHTML += "[<a href=\"#\" id=\"p"+j+"\" onClick=\"accionar("+
                                j+", "+contadorPestanas+", this)\" class=\"enlaceActivo\">"+pestanas[j].title+"</a>]";
                                ActivarFCKEditor(pestanas[j]);
                          }
                      }
	        }
        } else {
             divContenido.appendChild(divEnlacesPestanas);
             for(var j = 0; j < contadorPestanas; j++) {
                   if(pestanas[j] != null) {
                       //añadimos el enlace con el código pertinente (o impertinente?):
                       //añadimos la 'capa'
                       divContenido.appendChild(pestanas[j]);
                       if(j > 0) {
                         divEnlacesPestanas.innerHTML += "[<a href=\"#\" onClick=\"accionar("+
                         j+", "+contadorPestanas+", this)\">"+pestanas[j].title+"</a>]";
                         pestanas[j].style.display = "none";
                       } else {
                         divEnlacesPestanas.innerHTML += "[<a href=\"#\" name=\"p"+j+"\" onClick=\"accionar("+
                         j+", "+contadorPestanas+", this)\" class=\"enlaceActivo\">"+pestanas[j].title+"</a>]";
                       }
                   }
             }
        }
    }
}
/*
 *Metodo para crear pestanas dentro de una pestana.
 */

accionarSubPestanas = function(idNodo, numero, total,indiceInicio, esteNodo) {
    var divPestanas = new Array(total);
    var enlacesAccion = esteNodo.parentNode.getElementsByTagName("A");
    flag = false;
    for(var j = indiceInicio; j < total; j++) {
        divPestanas[j] = document.getElementById(idNodo+ "" + j);
        if(j == numero && flag == false) {
            divPestanas[j].style.display = "block";
            ActivarFCKEditor(divPestanas[j]);
        } else {
            divPestanas[j].style.display = "none";
        }
    }
    for(var j = 0;j < enlacesAccion.length; j++) {
        enlacesAccion[j].className = "";
    }
    esteNodo.className = "enlaceActivo";
}

crearSubpestanas = function(nodo) {
    var divBlocks =  nodo.getElementsByTagName("DIV");
    var numPestanasMax = divBlocks.length;
    var contadorPestanas = 0;
    var elementosHermanos = new Array();
    var ultimaPestana = null;
    //obtenemos los divs que deberemos convertir en pestañas
    for(var i = 0; i < divBlocks.length; i++) {
        var divAux = document.getElementById(nodo.id+ "" + i);
        if(divAux != null) {
            contadorPestanas = contadorPestanas+1;
            ultimaPestana = divAux;
            var hermanos = ultimaPestana.parentNode.childNodes;
        }
    }
    if(contadorPestanas > 0) {
        if(hermanos != null) {
            for(var j = 0; j < hermanos.length; j++) {
                if(hermanos[j] != null && 
                    hermanos[j].parentNode == ultimaPestana.parentNode &&
                    hermanos[j].nodeName != "#text") {
                    elementosHermanos[elementosHermanos.length] = hermanos[j];
                }
            }
        }
        //Obtenemos el número de bloques de enlacesPestanas que tendremos que crear
        var numBloques = 0;
        var elementosSiguientes = new Array();//elementos siguientes para cada bloque
        var numPestanaMax = new Array();
        if(elementosHermanos != null) {
            for(var j = 0; j < elementosHermanos.length; j++) {
                for(var i = 0; i < contadorPestanas; i++) {
                    if(elementosHermanos[j].id == (nodo.id+""+i)) {
                        if(j < elementosHermanos.length-1) {
                            if(elementosHermanos[j+1].id != (nodo.id+""+(i+1))) {
                                elementosSiguientes[numBloques] = elementosHermanos[j+1];
                                numPestanaMax[numBloques] = i;
                                numBloques++;
                            }
                        } else {
                            elementosSiguientes[numBloques] = null;
                            numPestanaMax[numBloques] = i;
                            numBloques++;
                        }
                    }
                }
            }
        }
        //alert("Numero de bloques: "+numBloques);
        //Obtenemos los elementos anteriores
        var elementoAnterior = null;
        if(elementosHermanos != null) {
            if(elementosHermanos.length > 0) {
                for(var i = 0; i < elementosHermanos.length; i++) {
                    if(i > 0 && elementosHermanos[i-1] != null) {
                        if(elementosHermanos[i-1] == ultimaPestana) {
                            elementoAnterior = elementosHermanos[i];
                        }
                    }
                }
            }
        }
        var contenido = nodo;
        var pestanas = new Array(contadorPestanas);
        var enlacesPestanas = new Array(contadorPestanas);
        
        for(var m = 0 ; m < numBloques; m++) {
            var indiceInicio = 0;
            if(m > 0) {
                indiceInicio = numPestanaMax[m-1]+1;
            }
            var divEnlacesPestanas = document.createElement("DIV");
            for(var j = indiceInicio; j <= numPestanaMax[m]; j++) {
                pestanas[j] = document.getElementById(nodo.id+ "" + j);
                if(pestanas[j] != null && pestanas[j].className != "pestanaActiva") {
                    pestanas[j].className = "contenidoSubPestana";
                    contenido = pestanas[j].parentNode;
                    contenido.removeChild(pestanas[j]);
                }
            }
            var iniciaEncontrado = false;
            for(var j = indiceInicio; j <= numPestanaMax[m]; j++) {
                if(pestanas[j].className == "pestanaActiva") {
                    iniciaEncontrado = true;
                }
            }
            //contenido.appendChild(divEnlacesPestanas);
            divEnlacesPestanas.className = "enlacesSubPestanas";
            
            //añadimos el div que contendrá los enlaces
            elementoAnterior = elementosSiguientes[m];
            if(elementoAnterior != null) {
                contenido.insertBefore(divEnlacesPestanas,elementoAnterior);
            } else {
                contenido.appendChild(divEnlacesPestanas);
            }
            if(iniciaEncontrado) {
                for(var j = indiceInicio; j <= numPestanaMax[m]; j++) {
                    if(pestanas[j] != null) {
                        //añadimos la 'capa'
                        if(elementoAnterior != null) {
                            contenido.insertBefore(pestanas[j],elementoAnterior);
                        } else {
                            contenido.appendChild(pestanas[j]);
                        }
                        //añadimos el enlace con el código pertinente:
                        if(pestanas[j].className != "pestanaActiva") {
                            divEnlacesPestanas.innerHTML += "[<a href=\"#\" onClick=\"accionarSubPestanas('"+nodo.id+"',"
                               +j+", "+(numPestanaMax[m]+1)+","+indiceInicio+", this)\">"+pestanas[j].title+"</a>]";
                            pestanas[j].style.display = "none";
                        } else {
                            divEnlacesPestanas.innerHTML += "[<a href=\"#\" onClick=\"accionarSubPestanas('"+nodo.id+"',"
                                +j+", "+(numPestanaMax[m]+1)+","+indiceInicio+", this)\" class=\"enlaceActivo\">"+pestanas[j].title+"</a>]";
                            ActivarFCKEditor(pestanas[j]);
                        }
                    }
                }
            } else {
                for(var j = indiceInicio; j <= numPestanaMax[m]; j++) {
                    if(pestanas[j] != null) {
                        //añadimos la 'capa'
                        if(elementoAnterior != null) {
                            contenido.insertBefore(pestanas[j],elementoAnterior);
                         } else {
                            contenido.appendChild(pestanas[j]);
                         }
                        //añadimos el enlace con el código pertinente (o impertinente?):
                        if(j > indiceInicio) {
                             divEnlacesPestanas.innerHTML += "[<a href=\"#\" name=\"subp"+j+"\" onClick=\"accionarSubPestanas('"+nodo.id+"',"
                                +j+", "+(numPestanaMax[m]+1)+","+indiceInicio+", this)\"><span class=\"ladoI\">"+pestanas[j].title+"</a>]";
                             pestanas[j].style.display = "none";
                        } else {
                             divEnlacesPestanas.innerHTML += "[<a href=\"#\" name=\"subp"+j+"\" onClick=\"accionarSubPestanas('"+nodo.id+"',"
                                +j+", "+(numPestanaMax[m]+1)+","+indiceInicio+", this)\" class=\"enlaceActivo\">"+pestanas[j].title+"</a>]";
                        }
                    }
                }
            }
        }
    
    }
    return true;
}

/******************************************************************************
 Activa los fck en una pestaña ******************************************************************************/
var textarea;
ActivarFCKEditor = function(nodo) {
    var divFck = nodo.getElementsByTagName("DIV");
    if(divFck != null) {
        for(var i = 0; i < divFck.length; i++) {
        	if(divFck[i].className == "fck") {
	        	textareas = divFck[i].getElementsByTagName("TEXTAREA");
	        	if(textareas != null) {
	        		ActivarFck(textareas[0].id);
	        	}
	        }
        }
    }    
}
/**
* Funcion que crea una instancia de FCK editor con el nombre especificado, si
*  dicha instancia no ha sido creada previamente.
*/
var oFck = new Array();
ActivarFck = function(nombreInstancia) {
	if(oFck.length > 0) {
		var encontrado = false;
		var i= 0;
		for(i = 0; i < oFck.length; i++)  {
			if(oFck[i].InstanceName == nombreInstancia) {
				encontrado = true;
			}
		}
		if(encontrado == false) {
			oFck[i] = new FCKeditor(nombreInstancia);
			oFck[i].BasePath	= './js/fckeditor/';
                        oFck[i].ToolbarSet = 'Default' ;
			oFck[i].Width    = 800;
			oFck[i].Height	= 300;
			oFck[i].ReplaceTextarea();
		}
	} else {
            oFck[0] = new FCKeditor(nombreInstancia);
	    oFck[0].BasePath	= './js/fckeditor/';
            oFck[0].ToolbarSet = 'Default' ;
	    oFck[0].Width    = 800;
	    oFck[0].Height	= 300;
	    oFck[0].ReplaceTextarea();
    }
}
/**
 *Detecta los inputs con id "maestro"+n y "esclavo"+n+m y oculta o muestra todos
 * los "esclavo"+n+m segun el estado de "maestro"+n.
 */
ActivarOcultacionCheckField = function() {
    var j=0;
    var continuarMaestro = true;
    var continuarEsclavo;
    while(continuarMaestro) {
        try {
            var e = document.getElementById("maestro"+j);
            if(e != null) {
                e.onchange = ocultarCheckField;
                e.onfocus = ocultarCheckField;
            } else {
                continuarMaestro = false;
            }
            var i=0;
            continuarEsclavo = true;
            while(continuarEsclavo) {
                try {
                    f = document.getElementById("esclavo"+j+i);
                    if(f != null) {
                        f.onchange = ocultarCheckField;
                        f.onfocus = ocultarCheckField;
                        if(!e.checked) {
                            f.style.display = "none";
                        } else {
                            d.style.display = "block";
                        }
                    } else {
                        continuarEsclavo = false;
                    }
                } catch (exception) {
                    continuarEsclavo = false;
                }
                i++;
            }
        } catch(exception) {
            continuarMaestro = false;
        }
        j++;
    }
}

/**
 *Funcion del disparador para que los esclavos se activen y desactiven al 
 * activar o desactivar el maestro.
 */
ocultarCheckField = function() {
    var j=0;
    var continuarMaestro = true;
    var continuarEsclavo;
    while(continuarMaestro) {
        try {
            var e = document.getElementById("maestro"+j);
            if(e == null) {
                continuarMaestro = false;
            } else {
                var i=0;
                continuarEsclavo = true;
                while(continuarEsclavo) {
                    try {
                        f = document.getElementById("esclavo"+j+i);
                        if(f != null) {
                            if(e.checked == false) {
                                f.style.display = "none";
                                tag = f.tagName;
                                if(tag == "INPUT") {
                                    if(f.type != "checkbox" && 
                                         f.type != "radio") {
                                         f.value == "";
                                    }
                                    if(f.type == "checkbox") {
                                         f.checked = false;
                                    }
                                } else if(tag == "TEXTAREA") {
                                    f.value = "";
                                }
                            } else {
                                f.style.display = "block";
                            }
                        } else {
                            continuarEsclavo = false;
                        }
                    } catch(exception) {
                        continuarEsclavo = false;
                    }
                    i++;
                }
            }
        } catch(exception) {
            continuarMaestro = false;
        }
        j++
    }
}

/**
*Detecta inputs con id "trigger"+n y "slave"+n+m y pone como "disabled" o no
* todos los "slave"+n+m seg estado de "trigger"+n.
*/
ActivarToggleCheckField = function() {
   var j = 0;
   var continuarTrigger = true;
   var continuarSlave;
   while (continuarTrigger) {
        try {
            var e = document.getElementById("trigger"+j);
            var r = document.getElementById("reset");
            if(e!=null) {
                e.onchange = toggleCheckField;
                e.onfocus = toggleCheckField;
                if(r != null) {
                    r.onclick = toggleResetButton;
                }
            } else {
                continuarTrigger = false;
            }
            var i = 0;
            continuarSlave = true;
            while(continuarSlave) {
                try {
                   f = document.getElementById("slave"+j+i);
                   if(f != null) {
                       f.onchange = toggleCheckField;
                       f.onfocus = toggleCheckField;
                       f.disabled = !e.checked;
                       var k = 0;
                       var continuarSub = true;
                       while(continuarSub) {
                            try {
                                s = document.getElementById("subslave"+j+i+k);
                                if(s != null) {
                                    s.disabled = !f.checked;
                                } else {
                                    continuarSub = false;
                                }
                            } catch (exception) {
                                continuarSub = false;
                            }
                            k++;
                       }
                   } else {
                       continuarSlave = false;
                   }
                } catch (exception) {
                    continuarSlave = false;
                }
                i++;
            }
        } catch (exception) {
            continuarTrigger = false;
        }
        j++;
    }
}

/**
*Funcion del disparador para que los slave se activen y desactiven al activar o
* desactivar el trigger.
*/
toggleCheckField = function() {
   var j = 0;
   var continuarTrigger = true;
   var continuarSlave;
   while (continuarTrigger) { 
        try {
            var e = document.getElementById("trigger"+j);
                if(e==null) {
                   continuarTrigger = false;
                } else {
                    var i = 0;
                    continuarSlave = true;
                    while(continuarSlave) {
                        try {
                           f = document.getElementById("slave"+j+i);
                           if(f != null) {
                               if(e.checked == false) {
                                  tag = f.tagName;
                                  if(tag == "INPUT") {
                                      if(f.type != "checkbox" && 
                                         f.type != "radio") {
                                          f.value = "";
                                      }
                                      if(f.type == "checkbox") {
                                          f.checked = false;
                                      }
                                  } else if(tag == "TEXTAREA") {
                                        f.value = "";
                                  }
                               }
                               f.disabled = !e.checked;
                               var k=0;
                               continuarSub = true;
                               while(continuarSub) {
                                   try {
                                       s = document.getElementById("subslave"+j+i+k);
                                       if(s != null) {
                                           if(f.checked == false) {
                                               tag = s.tagName;
                                               if(tag == "INPUT") {
                                                   if(s.type != "radio" && 
                                                    s.type != "checkbox") {
                                                       s.value = "";
                                                   }
                                                   if(s.type == "checkbox") {
                                                       s.checked = false;
                                                   }
                                               } else if(tag == "TEXTAREA") {
                                                   s.value = "";
                                               }
                                           }
                                           s.disabled = !f.checked;
                                       } else {
                                           continuarSub = false;
                                       }
                                   } catch(exception) {
                                       continuarSub = false;
                                   }
                                   k++;
                               }
                           } else {
                               continuarSlave = false;
                           }
                        } catch (exception) {
                            continuarSlave = false;
                        }
                        i++;
                    }
                }
        } catch (exception) {
            continuarTrigger = false;
        }
        j++;
    }
}

/**
*Funcion para que cuando se presione un reset se desactiven todos los slaves
* que existen
*/
toggleResetButton = function () {
    var i = 0;
    var j = 0;
    var continuarTrigger = true;
    var continuarSlave = true;
    var t = document.getElementById("trigger0");
    while(continuarTrigger) {
        t = document.getElementById("trigger"+j);
        if(t != null) {
            i=0;
            continuarSlave = true;
            while(continuarSlave) {
                try {
                   f = document.getElementById("slave"+j+i);
                   if(f != null) {
                       f.disabled = true;
                   } else {
                       continuarSlave = false;
                   }
                } catch (exception) {
                    continuarSlave = false;
                }
                i++;
            }
        } else {
            continuarTrigger = false;
        }
        j++;
    }
}

/**********************************************************************************************/
/*AccionesFormularios: inicializacion del evento en los inputs para pedir confirmaciï¿½n de que se*/
/*                   desea eliminar un item de informaciï¿½n. Tambiï¿½n detectarï¿½ las etiquetas   */
/*                   'a' cuyo contenido concuerde con la cadena 'Eliminar' y pedirï¿½
/*                   confirmaciï¿½n antes de realizar la acciï¿½n. Tambiï¿½n 
/**********************************************************************************************/
var msgConfirmacion = '';
var element;
var inputTags;
var aConfirmTags;
var aHrefs;
AccionesFormularios = function() {
    inputTags = document.getElementsByTagName("INPUT");
    aConfirmTags = document.getElementsByTagName("A");
    var contador = 0;
    var bloqueIzq = document.getElementById("contenido");
    if(inputTags != null) {
        this.confirmar = function() {
            if(!confirm(msgConfirmacion)) {
                for(var i=0; i < inputTags.length; i++){
                    if(inputTags[i].value.match(/Eliminar/g) && inputTags[i].type == "submit") {
                        inputTags[i].type= 'reset';
                    }
                }
            } else {
                for(var i=0; i < inputTags.length; i++){
                    if(inputTags[i].value.match(/Eliminar/g) && (inputTags[i].type == "submit" || inputTags[i].type == "reset")) {
                        inputTags[i].type = 'submit';
                    }
                }
            }
        }
        for(var i = 0; i < inputTags.length; i++) {
            if(inputTags[i].value.match(/Eliminar/g) && inputTags[i].type == "submit") {
                msgConfirmacion = '¿Seguro que desea eliminar el/los elemento(s) seleccionado(s)?';
                EXTRAS.addEvent(inputTags[i],'click',this.confirmar,true);
            }
        }
    }
    contador = 0;
    for(var j = 0; j < aConfirmTags.length; j++) {
        if(aConfirmTags[j].innerHTML.match(/Eliminar/g) || (aConfirmTags[j].href.match(/Eliminar/g) && !aConfirmTags[j].href.match(/#/g))) {
            msgConfirmacion = '¿Seguro que desea eliminar el/los elemento(s) seleccionado(s)?';
            var hrefActual = aConfirmTags[j].href;
            aConfirmTags[j].href = null;
            aConfirmTags[j].href = "javascript:confirmarEnlace('"+hrefActual+"');"
        }
    }
}

/**
 *mostrarDescripcionImagen: Funcion que muestra el input checbox cuando el tipo
 * de zona seleccionada es resumen de secciones. En caso de otra, lo oculta.
 */
mostrarDescripcionImagen = function() {
    var sel = document.getElementById("tipo");
    if(sel) {
        var p = document.getElementById("resumenSecciones");
        if(sel.value == "secciones"){
            p.style.display = "block";
        } else {
            var inp = document.getElementById("mostrarDescripcion");
            inp.checked = false;
            p.style.display = "none";
        }
    }
}
/**
*FUNCIONES JAVASCRIPT PARA VALIDAR FECHAS EN FORMATO dd/mm/aaaa
*/
esdigito = function(schr) {
    var scod = schr.charCodeAt(0);
    return ((scod > 47) && (scod < 58));
}

valsep = function(otxt) {
    var bok = false;
    bok = bok || ((otxt.value.charAt(2) == "/") && (otxt.value.charAt(5) == "/"));
    return bok;
}

finmes = function(otxt) {
    var nmes = parseInt(otxt.value.substr(3, 2), 10);
    var nres = 0;
    switch (nmes){
        case 1: nres = 31; break;
        case 2: nres = 29; break;
        case 3: nres = 31; break;
        case 4: nres = 30; break;
        case 5: nres = 31; break;
        case 6: nres = 30; break;
        case 7: nres = 31; break;
        case 8: nres = 31; break;
        case 9: nres = 30; break;
        case 10: nres = 31; break;
        case 11: nres = 30; break;
        case 12: nres = 31; break;
    }
    return nres;
}

valdia = function(otxt){
    var bok = false;
    var ndia = parseInt(otxt.value.substr(0, 2), 10);
    bok = bok || ((ndia >= 1) && (ndia <= finmes(otxt)));
    return bok;
}

valmes = function(otxt){
    var bok = false;
    var nmes = parseInt(otxt.value.substr(3, 2), 10);
    bok = bok || ((nmes >= 1) && (nmes <= 12));
    return bok;
}

valano = function(otxt){
    var bok = true;
    var nano = otxt.value.substr(6);
    bok = bok && (nano.length == 4);
    if (bok){
        for (var i = 0; i < nano.length; i++){
            bok = bok && esdigito(nano.charAt(i));
        }
    }
    return bok;
}

valfecha = function(otxt){
    var bok = true;
    if (otxt.value != ""){
        bok = bok && (valano(otxt));
        bok = bok && (valmes(otxt));
        bok = bok && (valdia(otxt));
        bok = bok && (valsep(otxt));
        if (!bok){
            alert("Formato de fecha inv૩do.\nFormato correcto (dd/mm/aaaa)");
            otxt.value = "";
            otxt.focus();
        }
    }
}

fechaMayorIgual = function(fec0, fec1) {
    var bRes = false;
    var sDia0 = fec0.substr(0, 2);
    var sMes0 = fec0.substr(3, 2);
    var sAno0 = fec0.substr(6, 4);
    var sDia1 = fec1.substr(0, 2);
    var sMes1 = fec1.substr(3, 2);
    var sAno1 = fec1.substr(6, 4);
    if (sAno0 > sAno1) {
        bRes = true;
    } else {
        if (sAno0 == sAno1) {
            if (sMes0 > sMes1) {
                bRes = true;
            } else {
                if (sMes0 == sMes1) {
                    if (sDia0 >= sDia1) {
                        bRes = true;
                    }
                }
            }
        }
    }
    return bRes;
}

fechaMenorIgual = function(fec0, fec1) {
    var bRes = false;
    var sDia0 = fec0.substr(0, 2);
    var sMes0 = fec0.substr(3, 2);
    var sAno0 = fec0.substr(6, 4);
    var sDia1 = fec1.substr(0, 2);
    var sMes1 = fec1.substr(3, 2);
    var sAno1 = fec1.substr(6, 4);
    if (sAno0 < sAno1) {
        bRes = true;
    } else {
        if (sAno0 == sAno1) {
            if (sMes0 < sMes1) {
                bRes = true;
            } else {
                if (sMes0 == sMes1) {
                    if (sDia0 <= sDia1) {
                        bRes = true;
                    }
                }
            }
        }
    }
    return bRes;
}

accionarOcultarOpcionesVarias = function() {
    var divSeleccion = document.getElementById("opcionesVariasSeccion");
    var enlaceSeleccion = document.getElementById("enlaceOcultarOpcionesVarias");
    if(divSeleccion != null) {
        if(divSeleccion.style.display == "none") {
            divSeleccion.style.display = "block";
            enlaceSeleccion.className = "enlaceUsuariosPermitidosAbierto";
        } else {
            divSeleccion.style.display = "none";
            enlaceSeleccion.className = "enlaceUsuariosPermitidosCerrado";
        }
    }
}

accionarOcultarSeleccionUsuarios = function() {
    var divSeleccion = document.getElementById("opcionesVisibilidadSeccion");
    var enlaceSeleccion = document.getElementById("enlaceOcultarSeleccionUsuarios");
    if(divSeleccion != null) {
        if(divSeleccion.style.display == "none") {
            divSeleccion.style.display = "block";
            enlaceSeleccion.className = "enlaceUsuariosPermitidosAbierto";
        } else {
            divSeleccion.style.display = "none";
            enlaceSeleccion.className = "enlaceUsuariosPermitidosCerrado";
        }
    }
}

accionarOcultarOpcionesDescripcion = function() {
    var divSeleccion = document.getElementById("opcionesDescripcion");
    var enlaceSeleccion = document.getElementById("enlaceOcultarOpcionesDescripcion");
    if(divSeleccion != null) {
        if(divSeleccion.style.display == "none") {
            divSeleccion.style.display = "block";
            enlaceSeleccion.className = "enlaceUsuariosPermitidosAbierto";
        } else {
            divSeleccion.style.display = "none";
            enlaceSeleccion.className = "enlaceUsuariosPermitidosCerrado";
        }
    }
}
OcultarSeleccionUsuarios = function() {
    var divSeleccion = document.getElementById("opcionesVisibilidadSeccion");
    if(divSeleccion != null) {
        var enlace = document.createElement("A");
        enlace.innerHTML= divSeleccion.title;
        enlace.id="enlaceOcultarSeleccionUsuarios";
        enlace.className = "enlaceUsuariosPermitidosCerrado";
        enlace.href = "#";
        EXTRAS.addEvent(enlace,'click',accionarOcultarSeleccionUsuarios,false);
        divSeleccion.parentNode.insertBefore(enlace,divSeleccion);
        if(window.location.href.indexOf("desplegar") < 0) {
            divSeleccion.style.display = "none";
        }
    }
    var divSeleccion = document.getElementById("opcionesVariasSeccion");
    if(divSeleccion != null) {
        var enlace = document.createElement("A");
        enlace.innerHTML= divSeleccion.title;
        enlace.id="enlaceOcultarOpcionesVarias";
        enlace.className = "enlaceUsuariosPermitidosCerrado";
        enlace.href = "#";
        EXTRAS.addEvent(enlace,'click',accionarOcultarOpcionesVarias,false);
        divSeleccion.parentNode.insertBefore(enlace,divSeleccion);
        if(window.location.href.indexOf("desplegar") < 0) {
            divSeleccion.style.display = "none";
        }
    }
    var divSeleccion = document.getElementById("opcionesDescripcion");
    if(divSeleccion != null) {
        var enlace = document.createElement("A");
        enlace.innerHTML= divSeleccion.title;
        enlace.id="enlaceOcultarOpcionesDescripcion";
        enlace.className = "enlaceUsuariosPermitidosCerrado";
        enlace.href = "#";
        EXTRAS.addEvent(enlace,'click',accionarOcultarOpcionesDescripcion,false);
        divSeleccion.parentNode.insertBefore(enlace,divSeleccion);
        if(window.location.href.indexOf("desplegar") < 0) {
            divSeleccion.style.display = "none";
        }
    }
}



/**
**FUNCIÓN VALIDA DNI
**/
ValidaDni = function(valor){
    var temp=valor.toUpperCase();
	var cadenadni="TRWAGMYFPDXBNJZSQVHLCKE";
	if (temp!==''){
		//si no tiene un formato valido devuelve error
		if ((!/^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$/.test(temp) && !/^[T]{1}[A-Z0-9]{8}$/.test(temp)) && !/^[0-9]{8}[A-Z]{1}$/.test(temp)){
			return false;
		}
		//comprobacion de NIFs estandar
		if (/^[0-9]{8}[A-Z]{1}$/.test(temp)) {
			posicion = valor.substring(8,0) % 23;
			letra = cadenadni.charAt(posicion);
			var letradni=temp.charAt(8);
			if (letra == letradni) {
			   	return true;
			} else {
				return false;
			}
		}
 		//algoritmo para comprobacion de codigos tipo CIF
		suma = parseInt(valor[2])+parseInt(valor[4])+parseInt(valor[6]);
		for (i = 1; i < 8; i += 2) {
			temp1 = 2 * parseInt(valor[i]);
			temp1 += '';
			temp1 = temp1.substring(0,1);
			temp2 = 2 * parseInt(valor[i]);
			temp2 += '';
			temp2 = temp2.substring(1,2);
			if (temp2 == '') {
				temp2 = '0';
			}
			suma += (parseInt(temp1) + parseInt(temp2));
		}
		suma += '';
		n = 10 - parseInt(suma.substring(suma.length-1, suma.length));
		//comprobacion de NIFs especiales (se calculan como CIFs)
		if (/^[KLM]{1}/.test(temp)) {
			if (valor[8] == String.fromCharCode(64 + n)) {
				return true;
			} else {
				return false;
			}
		}
		//comprobacion de CIFs
		if (/^[ABCDEFGHJNPQRSUVW]{1}/.test(temp)) {
			temp = n + '';
			if (valor[8] == String.fromCharCode(64 + n) || valor[8] == parseInt(temp.substring(temp.length-1, temp.length))) {
				return true;
			} else {
				return false;
			}
		}
		//comprobacion de NIEs
		//T
		if (/^[T]{1}/.test(temp)) {
			if (valor[8] == /^[T]{1}[A-Z0-9]{8}$/.test(temp)) {
				return true;
			} else {
				return false;
			}
		}
		//XYZ
		if (/^[XYZ]{1}/.test(temp)) {
			pos = str_replace(['X', 'Y', 'Z'], ['0','1','2'], temp).substring(0, 8) % 23;
			if (valor[8] == cadenadni.substring(pos, pos + 1)) {
				return true;
			} else {
				return false;
			}
		}
	}
	return false;
}

function str_replace(search, replace, subject) {
    var f = search, r = replace, s = subject;
    var ra = r instanceof Array, sa = s instanceof Array, f = [].concat(f), r = [].concat(r), i = (s = [].concat(s)).length;
    while (j = 0, i--) {
        if (s[i]) {
            while (s[i] = s[i].split(f[j]).join(ra ? r[j] || "" : r[0]), ++j in f){};
        }
    };
    return sa ? s : s[0];
}

/**
**FUNCIÓN VALIDA EMAIL
**/
ValidaEmail = function(valor){
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor))
      return true;
    else 
      return false;
}

/**
**Funcion que activa todos los checkbox de id idCliente
**/
marcadorClientes = function() {
    var marcador = document.getElementById("marcadorClientes");
    if(marcador != null) {
        EXTRAS.addEvent(marcador,"click",marcarClientes,false);
    }
    var marcadorGrupos = document.getElementById("marcadorGrupos");
    if(marcadorGrupos != null) {
        EXTRAS.addEvent(marcadorGrupos,"click",marcarGrupos,false);
    }
}

/**
**marcarClientes marca como checked todos los inputs con id que comienza por 
** 'idCliente'
**/
clientesMarcados = false;
marcarClientes = function() {
    var marcador = document.getElementById("marcadorClientes");
    var inputsDoc = document.getElementsByTagName("INPUT");
    for(var i = 0; i < inputsDoc.length; i++) {
        if(inputsDoc[i].id.substring(0,7) == "cliente") {
            if(clientesMarcados == false) {
                inputsDoc[i].checked = true;
            } else {
                inputsDoc[i].checked = false;
            }
        }
    }
    if(clientesMarcados == false) {
        clientesMarcados = true;
        marcador.innerHTML = "Desmarcar todos";
    } else {
        clientesMarcados = false;
        marcador.innerHTML = "Marcar todos";
    }
}

/**
**marcarClientes marca como checked todos los inputs con id que comienza por 
** 'idCliente'
**/
gruposMarcados = false;
marcarGrupos = function() {
    var marcador = document.getElementById("marcadorGrupos");
    var inputsDoc = document.getElementsByTagName("INPUT");
    for(var i = 0; i < inputsDoc.length; i++) {
        if(inputsDoc[i].id.substring(0,5) == "grupo") {
            if(gruposMarcados == true) {
                inputsDoc[i].checked = false;
            } else {
                inputsDoc[i].checked = true;
            }
        }
    }
    if(gruposMarcados == false) {
        gruposMarcados = true;
        marcador.innerHTML = "Desmarcar todos";
    } else {
        gruposMarcados = false;
        marcador.innerHTML = "Marcar todos";
    }
}

/**
**Funcion que activa todos los checkbox de idPais de un continente
**/
marcadorPaises0 = function() {
    var marcador = document.getElementById("marcadorPaises0");
    if(marcador != null) {
        EXTRAS.addEvent(marcador,"click",marcarPaises0,false);
    }
}
marcadorPaises1 = function() {
    var marcador = document.getElementById("marcadorPaises1");
    if(marcador != null) {
        EXTRAS.addEvent(marcador,"click",marcarPaises1,false);
    }
}
marcadorPaises2 = function() {
    var marcador = document.getElementById("marcadorPaises2");
    if(marcador != null) {
        EXTRAS.addEvent(marcador,"click",marcarPaises2,false);
    }
}
marcadorPaises3 = function() {
    var marcador = document.getElementById("marcadorPaises3");
    if(marcador != null) {
        EXTRAS.addEvent(marcador,"click",marcarPaises3,false);
    }
}
marcadorPaises4 = function() {
    var marcador = document.getElementById("marcadorPaises4");
    if(marcador != null) {
        EXTRAS.addEvent(marcador,"click",marcarPaises4,false);
    }
}
marcadorRegiones = function() {
    var marcador = document.getElementById("marcadorRegiones");
    if(marcador != null) {
        EXTRAS.addEvent(marcador,"click",marcarRegiones,false);
    }
}
marcadorZonas = function() {
    var marcador = document.getElementById("marcadorZonas");
    if(marcador != null) {
        EXTRAS.addEvent(marcador,"click",marcarZonas,false);
    }
}

/**
**marcarPaises marca como checked todos los inputs con id que comienza por 
** idPais mas el dígito indicado
**/
paisesMarcados0 = false;
marcarPaises0 = function() {
    var marcador = document.getElementById("marcadorPaises0");
    var inputsDoc = document.getElementsByTagName("INPUT");
    for(var i = 0; i < inputsDoc.length; i++) {
        if(inputsDoc[i].id.substring(7,0) == "idPais0") {
            if(paisesMarcados0 == false) {
                inputsDoc[i].checked = true;
            } else {
                inputsDoc[i].checked = false;
            }
        }
    }
    if(paisesMarcados0 == false) {
        paisesMarcados0 = true;
        marcador.innerHTML = "Desmarcar todos";
    } else {
        paisesMarcados0 = false;
        marcador.innerHTML = "Marcar todos";
    }
}
paisesMarcados1 = false;
marcarPaises1 = function() {
    var marcador = document.getElementById("marcadorPaises1");
    var inputsDoc = document.getElementsByTagName("INPUT");
    for(var i = 0; i < inputsDoc.length; i++) {
        if(inputsDoc[i].id.substring(7,0) == "idPais1") {
            if(paisesMarcados1 == false) {
                inputsDoc[i].checked = true;
            } else {
                inputsDoc[i].checked = false;
            }
        }
    }
    if(paisesMarcados1 == false) {
        paisesMarcados1 = true;
        marcador.innerHTML = "Desmarcar todos";
    } else {
        paisesMarcados1 = false;
        marcador.innerHTML = "Marcar todos";
    }
}
paisesMarcados2 = false;
marcarPaises2 = function() {
    var marcador = document.getElementById("marcadorPaises2");
    var inputsDoc = document.getElementsByTagName("INPUT");
    for(var i = 0; i < inputsDoc.length; i++) {
        if(inputsDoc[i].id.substring(7,0) == "idPais2") {
            if(paisesMarcados2 == false) {
                inputsDoc[i].checked = true;
            } else {
                inputsDoc[i].checked = false;
            }
        }
    }
    if(paisesMarcados2 == false) {
        paisesMarcados2 = true;
        marcador.innerHTML = "Desmarcar todos";
    } else {
        paisesMarcados2 = false;
        marcador.innerHTML = "Marcar todos";
    }
}
paisesMarcados3 = false;
marcarPaises3 = function() {
    var marcador = document.getElementById("marcadorPaises3");
    var inputsDoc = document.getElementsByTagName("INPUT");
    for(var i = 0; i < inputsDoc.length; i++) {
        if(inputsDoc[i].id.substring(7,0) == "idPais3") {
            if(paisesMarcados3 == false) {
                inputsDoc[i].checked = true;
            } else {
                inputsDoc[i].checked = false;
            }
        }
    }
    if(paisesMarcados3 == false) {
        paisesMarcados3 = true;
        marcador.innerHTML = "Desmarcar todos";
    } else {
        paisesMarcados3 = false;
        marcador.innerHTML = "Marcar todos";
    }
}
paisesMarcados4 = false;
marcarPaises4 = function() {
    var marcador = document.getElementById("marcadorPaises4");
    var inputsDoc = document.getElementsByTagName("INPUT");
    for(var i = 0; i < inputsDoc.length; i++) {
        if(inputsDoc[i].id.substring(7,0) == "idPais4") {
            if(paisesMarcados4 == false) {
                inputsDoc[i].checked = true;
            } else {
                inputsDoc[i].checked = false;
            }
        }
    }
    if(paisesMarcados4 == false) {
        paisesMarcados4 = true;
        marcador.innerHTML = "Desmarcar todos";
    } else {
        paisesMarcados4 = false;
        marcador.innerHTML = "Marcar todos";
    }
}
regionesMarcadas = false;
marcarRegiones = function() {
    var marcador = document.getElementById("marcadorRegiones");
    var inputsDoc = document.getElementsByTagName("INPUT");
    for(var i = 0; i < inputsDoc.length; i++) {
        if(inputsDoc[i].id.substring(13,0) == "idregionenvio") {
            if(regionesMarcadas == false) {
                inputsDoc[i].checked = true;
            } else {
                inputsDoc[i].checked = false;
            }
          }  
    }
    if(regionesMarcadas == false) {
        regionesMarcadas = true;
        marcador.innerHTML = "Desmarcar todos";
    } else {
        regionesMarcadas = false;
        marcador.innerHTML = "Marcar todos";
    }
}
zonasMarcadas = false;
marcarZonas = function() {
    var marcador = document.getElementById("marcadorZonas");
    var inputsDoc = document.getElementsByTagName("INPUT");
    for(var i = 0; i < inputsDoc.length; i++) {
        if(inputsDoc[i].id.substring(6,0) == "idZona") {
            if(zonasMarcadas == false) {
                inputsDoc[i].checked = true;
            } else {
                inputsDoc[i].checked = false;
            }
          }  
    }
    if(zonasMarcadas == false) {
        zonasMarcadas = true;
        marcador.innerHTML = "Desmarcar todos";
    } else {
        zonasMarcadas = false;
        marcador.innerHTML = "Marcar todos";
    }
}

/**
**Funcion que activa todos los checkbox del Cliente que queremos asignar
**/
marcadorClientesPromo = function() {
    var marcador = document.getElementById("marcadorClientesPromo");
    if(marcador != null) {
        EXTRAS.addEvent(marcador,"click",marcarClientesPromo,false);
    }
}

/**
**marcarClientesPromo marca como checked todos los inputs con id que comienza por 
** 'codigoC'
**/
clientesPromoMarcados = false;
marcarClientesPromo = function() {
    var marcador = document.getElementById("marcadorClientesPromo");
    var inputsDoc = document.getElementsByTagName("INPUT");
    for(var i = 0; i < inputsDoc.length; i++) {
        if(inputsDoc[i].id.substring(0,7) == "codigoC") {
            if(clientesPromoMarcados == false) {
                inputsDoc[i].checked = true;
            } else {
                inputsDoc[i].checked = false;
            }
        }
    }
    if(clientesPromoMarcados == false) {
        clientesPromoMarcados = true;
        marcador.innerHTML = "Desmarcar todos";
    } else {
        clientesPromoMarcados = false;
        marcador.innerHTML = "Marcar todos";
    }
}

cambiaDisplayVerPais = function (obj){
     if (document.getElementById(obj).style.display == 'none'){
            document.getElementById(obj).style.display = 'block';
        } else {
            document.getElementById(obj).style.display = 'none';
        }
    }
muestraFckEditor = function(){
    var nodoId = document.getElementById("descripcionFck");
    if(nodoId != null) {
        ActivarFck(nodoId.id);
    }
}
cambiaDisplayVerRegion = function (obj){
     if (document.getElementById(obj).style.display == 'none'){
            document.getElementById(obj).style.display = 'block';
        } else {
            document.getElementById(obj).style.display = 'none';
        }
    }
cambiaDisplayVerRangos = function (obj){
     if (document.getElementById(obj).style.display == 'none'){
            document.getElementById(obj).style.display = 'block';
        } else {
            document.getElementById(obj).style.display = 'none';
        }
    }
cambiaDisplayVerValoresF = function (obj){
     if (document.getElementById(obj).style.display == 'none'){
            document.getElementById(obj).style.display = 'block';
        } else {
            document.getElementById(obj).style.display = 'none';
        }
    }
function compMarcarDefecto(objTipo, i) {
    if (document.getElementById(objTipo).value == 'Tarifa'){
        document.getElementById("marcarDefecto"+i).style.display = 'block';
    } else {
        document.getElementById("marcarDefecto"+i).style.display = 'none';
        if(document.getElementById(objTipo).value == 'Suplemento'){
            document.getElementById("obligatorio").disabled = false;
            document.getElementById("solicitar").disabled = false;
        } else {
            document.getElementById("obligatorio").disabled = true;
            document.getElementById("obligatorio").checked = false;
            document.getElementById("solicitar").disabled = true;
            document.getElementById("solicitar").checked = false;
        }
    }
}
function crearNuevaCategoria(objTipo, i) {
        if (document.getElementById(objTipo).value == 'Crear nueva'){
            document.getElementById("CrearCatImagenNueva").style.display = 'inline';
        } else {
            document.getElementById("CrearCatImagenNueva").style.display = 'none';
        }
}
function PedidoGastos(obj) {
        if (document.getElementById(obj).value == 'pedido'){
            document.getElementById("pedido").style.display = 'block';
            document.getElementById("gastos").style.display = 'none';
            document.getElementById("cantidadGastos").value = '';
            document.getElementById("porcientoGastos").checked = false;
            document.getElementById("valorGastos").checked = false;
           } 
        if (document.getElementById(obj).value == 'gastos'){
            document.getElementById("gastos").style.display = 'block';
            document.getElementById("pedido").style.display = 'none';
            document.getElementById("cantidadPedido").value = '';
            document.getElementById("porcientoPedido").checked = false;
            document.getElementById("valorPedido").checked = false;
           }    
        if (document.getElementById(obj).value == 'ambos'){
            document.getElementById("gastos").style.display = 'block';
            document.getElementById("pedido").style.display = 'block';
           }    
}
function mostrarCalendario(obj){
    var input = document.getElementById(obj);
    var num = input.id.substring(2);
    var nombre = "fecPD"+num;
    //input.readOnly = true;
    document.write('<img src="./js/jscalendar/calendar.png" id='+nombre+' style="cursor: pointer;" title="Calendario" alt="Calendario" />');
    Calendar.setup( {
    inputField : obj,
    ifFormat : "%d/%m/%Y",
    button : nombre,
    align : "Tl",
    singleClick : true
    } );
}
function cargarValoresFijos(valor){
    var selects = document.getElementsByTagName("select");
    for(var i = 0; i < selects.length; i++) {
    //alert(selects[i].id);
    //alert(document.getElementById(selects[i].id).style.display);
        if(document.getElementById(selects[i].id).style.display == 'block') {
            document.getElementById(selects[i].id).style.display = 'none';
        }
    }	
    var objProp = document.getElementById("idPropiedad"+valor).value;
    var objVf = objProp+"_"+valor;
    if(document.getElementById(objVf)){
        document.getElementById(objVf).style.display = 'block';
        document.getElementById("textovalor"+valor).style.display = 'none';
        document.getElementById("valor"+valor).style.display = 'none';
     } else {
        document.getElementById("textovalor"+valor).style.display = 'block';
        document.getElementById("valor"+valor).style.display = 'block';
     }
}

EXTRAS.addEvent(window, 'load', init, false);
