﻿function pasarSegundaParteOrg() 
{
	var $pan1 = $('#datosCuenta');
	var $pan2 = $('#loginContactoPral');
	$pan1.fadeOut('', function() {
	$pan2.fadeIn();
	});
	return false;
}
function pasarSegundaParteOrgUsu() 
{   
    var error = '';
    
    if($('#ctl00_CPH1_cbUsarMyGNOSS').is(':checked')){
        if ($('#ctl00_CPH1_txtCargo').val() == '') {
		    error += '<li>'+form.camposVacios+'</li>';
	    }
    }
    else{
        if ($('#ctl00_CPH1_txtCargo').val() == '' || $('#ctl00_CPH1_txtEmail').val() == '') {
		    error += '<li>'+form.camposVacios+'</li>';
	    }
	    else{
	        if (!validarEmail($('#ctl00_CPH1_txtEmail').val())) {
		        error += '<li>'+form.emailValido+'</li>';
	        }
	    }
    }
    
	if (error.length) {
		crearError('<ul>'+error+'</ul>', '#divError', true);
		return false;
	}
	else{	
	      return true;
	    }
}

//                                                                       Busquedas guardadas
//------------------------------------------------------------------------------------------
	$('ul.busquedasGuardadas a.miniEliminar').click( function() {
		miniConfirmar('Desea minieliminar esta b&uacute;squeda?', $(this).parents('li').eq(0), function() {
			alert('Funciona al uso');
	});
});

//                                                                  registro de organizaciones
//--------------------------------------------------------------------------------------------
function registroOrganizacionSiguiente(funcion,id, id2){
   var error = '';
   
    if(!(document.getElementById('ctl00_CPH1_lblErrorLogo') == null || document.getElementById('ctl00_CPH1_lblErrorLogo').innerHTML == ''))
    {
        return false;
    }   
        
    if($('#ctl00_CPH1_txtRazonSocial').val() == ''
    || $('#ctl00_CPH1_editDia').val() == ''
    || $('#ctl00_CPH1_txtAlias').val() == ''
    || $('#ctl00_CPH1_txtDireccionSede').val() == ''
    || $('#ctl00_CPH1_txtCP').val() == ''
    || $('#ctl00_CPH1_txtPoblacion').val() == ''
    || (($('#ctl00_CPH1_txtProvincia').val() == '') && (document.getElementById('ctl00_CPH1_txtProvincia').style.display=="")))
    {
        error+='<li>'+form.camposVacios+'</li>';
    }
    if(document.getElementById('ctl00_CPH1_ddlTipoOrganizacion').selectedIndex == 0){
        error+='<li>'+form.tipoorgincorrecta+'</li>';
    }
    if(document.getElementById('ctl00_CPH1_ddlSector').selectedIndex == 0){
        error+='<li>'+form.sectorincorrecto+'</li>';
    }
    
    if(document.getElementById('ctl00_CPH1_ddlEmpleados').selectedIndex == 0){
        error+='<li>'+form.numeroemplincorrecto+'</li>';
    }
    
    if ((document.getElementById('ctl00_CPH1_editPais') != null) && (document.getElementById('ctl00_CPH1_editPais').selectedIndex == 0)){
        error+='<li>'+form.paisincorrecto+'</li>';
    }
    if ((document.getElementById('ctl00_CPH1_editProvincia').style.display=="") && (document.getElementById('ctl00_CPH1_editProvincia').selectedIndex == 0)){
        error+='<li>'+form.provinciaincorrecta+'</li>';
    }

	//Comprobamos la fecha
	var diaSeleccionado = document.getElementById('ctl00_CPH1_editDia').selectedIndex;
	var mesSeleccionado = document.getElementById('ctl00_CPH1_editMes').selectedIndex;
	var anioSeleccionado = document.getElementById('ctl00_CPH1_editAnio').options[document.getElementById('ctl00_CPH1_editAnio').selectedIndex].value;
    if(!esFecha(diaSeleccionado,mesSeleccionado,anioSeleccionado))
    {
        error+='<li>'+form.fechafunincorrecta+'</li>';
    }
	
    if($('#ctl00_CPH1_txtNif').val() != ''){
      var texto = $('#ctl00_CPH1_txtNif').val().toUpperCase();
      //Juan Valer: Quito esto porque no valida bien los CIF
      //error += validarCif(texto);
    }
	
	//Comprobamos si la URL se ha introducido si es válida
	var url = document.getElementById("ctl00_CPH1_txtWeb");
	if(url.value.length > 0 && !esURL(url.value))
	{
		error+='<li>'+form.paginaweb+'</li>';
	}
    	
    //Comprobamos razon social
    var razonSocialOrg = document.getElementById('ctl00_CPH1_txtRazonSocial').value;    
    var RegExPatternrazonSocialOrg = /<|>$/;
    if (razonSocialOrg.match(RegExPatternrazonSocialOrg))
    {
	    error += '<li>'+form.formatoRazonSocial+'</li>';
    }

    //Comprobamos el alias
    var aliasOrg = document.getElementById('ctl00_CPH1_txtAlias').value;
    var RegExPatternaliasOrg = /<|>$/;
    if (aliasOrg.match(RegExPatternaliasOrg) || aliasOrg.indexOf(',') != -1)
    {
	    error += '<li>'+form.formatoAlias+'</li>';
    }

    //Comprobamos el CIF
    var CIFOrg = document.getElementById('ctl00_CPH1_txtNif').value;
    var RegExPatternCIFOrg = /<|>$/;
    if (CIFOrg.match(RegExPatternCIFOrg))
    {
	    error += '<li>'+form.formatoCIF+'</li>';
    }
    //Comprobamos la dirección
    var direccionOrg = document.getElementById('ctl00_CPH1_txtDireccionSede').value;
    var RegExPatterndireccionOrg = /<|>$/;
    if (direccionOrg.match(RegExPatterndireccionOrg))
    {
	    error += '<li>'+form.formatoDireccion+'</li>';
    }

    //Comprobamos el CP
    var CPOrg = document.getElementById('ctl00_CPH1_txtCP').value;
    var RegExPatternCPOrg = /<|>$/;
    if (CPOrg.match(RegExPatternCPOrg))
    {
	    error += '<li>'+form.formatoCP+'</li>';
    }

    //Comprobamos la localidad
    var localidadOrg = document.getElementById('ctl00_CPH1_txtPoblacion').value;
    var RegExPatternlocalidadOrg = /<|>$/;
    if (localidadOrg.match(RegExPatternlocalidadOrg))
    {
	    error += '<li>'+form.formatoLocalidad+'</li>';
    }

    //Comprobamos la provincia   
    if(document.getElementById('ctl00_CPH1_txtProvincia')!=null){
        var provinciaOrg = document.getElementById('ctl00_CPH1_txtProvincia').value;
       
        var RegExPatternprovinciaOrg = /<|>$/;
        if (provinciaOrg.match(RegExPatternprovinciaOrg))
        {
	        error += '<li>'+form.formatoProvincia+'</li>';
        }
    }
	
	if (!ValidarNombreCortoUsuario($('#ctl00_CPH1_txtNombreCorto').val()))
	{
	    error += '<li>' + form.nombrecortoincorrecto + '</li>';
	}
    
    if (error.length) {
		crearError('<ul>'+error+'</ul>', '#tikitakaOrg', true);
		return false;
	} else {
	    if (document.getElementById('lblBtnPrefieroUsuario') != null)
	    {
	        document.getElementById('lblBtnPrefieroUsuario').style.display = 'none';
	    }
        id = '#' + id;
        id2 = '#' + id2;
	    funcion = funcion.replace("$$","&" + $(id).val().replace('\'','\\\'') + "&" + $(id2).val());
	    eval(funcion);
	}
    	
}

function validarCif(texto)
{
    var pares = 0;
    var impares = 0;
    var suma;
    var ultima;
    var unumero;
    var uletra = new Array("J", "A", "B", "C", "D", "E", "F", "G", "H", "I");
    var xxx;
    
    var regular = new RegExp(/^[ABCDEFGHKLMNPQS]\d\d\d\d\d\d\d[0-9,A-J]$/g);
     if (!regular.exec(texto))
     {
        error+='<li>'+form.nifincorrecto+'</li>';
     }
     else
     {
         ultima = texto.substr(8,1);

         for (var cont = 1 ; cont < 7 ; cont ++){
             xxx = (2 * parseInt(texto.substr(cont++,1))).toString() + "0";
             impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1));
             pares += parseInt(texto.substr(cont,1));
         }
         xxx = (2 * parseInt(texto.substr(cont,1))).toString() + "0";
         impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1));
         
         suma = (pares + impares).toString();
         unumero = parseInt(suma.substr(suma.length - 1, 1));
         unumero = (10 - unumero).toString();
         if(unumero == 10) unumero = 0;
         
         if (!((ultima == unumero) || (ultima == uletra[unumero])))
             error+='<li>'+form.nifincorrecto+'</li>';  
     }  
}

function validarNombreCortoComunidad(nombre)
{
    var RegExPatternNombreCorto = /^([a-zA-Z0-9ñÑüÜáéíóúÁÉÍÓÚàèìòùÀÈÌÒÙâêîôûÂÊÎÔÛ'´`çÇ-]{4,30})$/;   
	return (nombre.match(RegExPatternNombreCorto) && nombre !='') ;
}



//                                                                    formulario de registro
//------------------------------------------------------------------------------------------
function registroUsuario_1(ultimoCheck, funcionComprobar) {
	var error = '',
    $dC = $('#ctl00_CPH1_datosCuenta');
    
    var RegExPatternUsuario = /^([a-zA-Z0-9-_.ñÑüÜáéíóúÁÉÍÓÚàèìòùÀÈÌÒÙâêîôûÂÊÎÔÛ'´`çÇ]{4,12})$/;
    
	var RegExPatternPass = /(?!^[0-9]*$)(?!^[a-zA-ZñÑüÜ]*$)^([a-zA-ZñÑüÜ0-9#_$*]{6,12})$/;
	
	// primero comprobamos los campos
	var longUsu = $('#ctl00_CPH1_txtNombreUsuario').val().length;
	if ((longUsu < 4) || (longUsu > 12)) {
		error += '<li>'+form.longitudUsuario+'</li>';
	}
	else if (!$('#ctl00_CPH1_txtNombreUsuario').val().match(RegExPatternUsuario) || $('#ctl00_CPH1_txtNombreUsuario').val()=='') {
		error += '<li>'+form.formatoUsuario+'</li>';
	}
	if(!ultimoCheck){
	    if (!$('#ctl00_CPH1_txtContrasenya').val().match(RegExPatternPass)) {
		error += '<li>'+form.pwFormato+'</li>';
	    }
	    if ($('#ctl00_CPH1_txtContrasenya').val() != $('#ctl00_CPH1_txtcContrasenya').val()) {
		    error += '<li>'+form.pwIgual+'</li>';
	    }
	}
	if (!validarEmail($('#ctl00_CPH1_txtCorreoE').val())) {
		error += '<li>'+form.emailValido+'</li>';
	}
	
	if (!ValidarNombreCortoUsuario($('#ctl00_CPH1_txtNombreCorto').val()))
	{
	    error += '<li>' + form.nombrecortoincorrecto + '</li>';
	}
	
	if (error.length) {
		crearError('<ul>'+error+'</ul>', '#ctl00_CPH1_datosCuenta div.reg', true);
		return false;
	} else if(ultimoCheck == true) {
		// si no hay error y estamos comprobando el formulario por ultima vez (antes de enviarlo, por ejemplo)...
		return true;
	} else {
	    funcionComprobar = funcionComprobar.replace("$$","&"+$('#ctl00_CPH1_txtNombreUsuario').val() +","+ $('#ctl00_CPH1_txtCorreoE').val() +","+ $('#ctl00_CPH1_txtNombreCorto').val());
	    eval(funcionComprobar);
//		// ... de otro modo ocultamos y mostramos las capas pertinentes y...
//		$dC.fadeOut('', function() {
//			$('#registroUsuario').find('div.ko').remove();
//			$('#datosPersonales').fadeIn();
//		});
//		// ... evitamos el comportamiento normal del botoncico
		return false;
	}
}

function ValidarNombreCortoUsuario(nombre)
{
	var RegExPatternNombreCorto = /^([a-zA-Z0-9ñÑüÜáéíóúÁÉÍÓÚàèìòùÀÈÌÒÙâêîôûÂÊÎÔÛ'´`çÇ-]{4,30})$/;
	return (nombre.match(RegExPatternNombreCorto) && nombre !='') ;
}

function pasarSegundaParte(){
            $dC = $('#ctl00_CPH1_datosCuenta');
            $dC.fadeOut('', function() {
			$('#registroUsuario').find('div.ko').remove();
			$('#ctl00_CPH1_datosPersonales').fadeIn();
		    });
		    $('#queEsEstoParte1').fadeOut('', function() {
			$('#queEsEstoParte2').fadeIn();
		    });
		    
}
function registroUsuario_2(IdCaptcha,funcionComprobar) {
    if(!(document.getElementById('ctl00_CPH1_lblErrorFoto') == null || document.getElementById('ctl00_CPH1_lblErrorFoto').innerHTML == ''))
    {
        return false;
    }
	var $dP   = $('#fielDatosPersonales'),
	    error = '';
	// comprobamos el anterior fieldset, por si el usuario trastea por el DOM como si se creyese Tarzan
	if (!registroUsuario_1(true))
	{
		$('#registroUsuario button.anterior:eq(0)').click();
		return false;
	}
	// ahora comprobamos los campos personales
	$dP.find('label:contains(*)').each( function () {
		// todos aquellos label que contengan un asterisco:
		var $label = $(this);
		var $input = $label.next();
		if (!$input.val().length) {
			error += '<li>'+$label.text().replace('*', '')+form.obligatorio+'</li>';
		}
	});
	
	//Comprobamos el formato de nombre de usuario
	var nombreUsuario = document.getElementById('ctl00_CPH1_txtNombrePersonal').value;
    var RegExPatternNombreUsuario = /^([a-zA-Z0-9-\sñÑüÜáéíóúÁÉÍÓÚàèìòùÀÈÌÒÙâêîôûÂÊÎÔÛ'´`Çç]{0,})$/;
	if (!nombreUsuario.match(RegExPatternNombreUsuario))
	{
		error += '<li>'+form.formatoNombre+'</li>';
	}
	
	//Comprobamos el formato de los apellidos del usuario
	var apellidosUsuario = document.getElementById('ctl00_CPH1_txtApellidos').value;
	var RegExPatternApellidosUsuario = /^([a-zA-Z0-9-\sñÑüÜáéíóúÁÉÍÓÚàèìòùÀÈÌÒÙâêîôûÂÊÎÔÛ'´`Çç]{0,})$/;
	if (!apellidosUsuario.match(RegExPatternApellidosUsuario))
	{
		error += '<li>'+form.formatoApellidos+'</li>';
	}

	//Comprobamos el sexo
	if(document.getElementById('ctl00_CPH1_editSexo').selectedIndex == 0)
	{
        error+='<li>'+form.sexoincorrecto+'</li>';
    }
    
    //Comprobamos provincia
    if(document.getElementById('ctl00_CPH1_txtProvincia').style.display==""){
	    var provinciaUsuario = document.getElementById('ctl00_CPH1_txtProvincia').value;
	    var RegExPatternprovinciaUsuario = /<|>$/;
	    if (provinciaUsuario.match(RegExPatternprovinciaUsuario))
	    {
		    error += '<li>'+form.formatoProvincia+'</li>';
	    }
	}
	//Comprobamos codigopostal
	var CPUsuario = document.getElementById('ctl00_CPH1_txtCodigoPost').value;
	var RegExPatternCPUsuario = /<|>$/;
	if (CPUsuario.match(RegExPatternCPUsuario))
	{
		error += '<li>'+form.formatoCP+'</li>';
	}
	//Comprobamos localidad
	var localidadUsuario = document.getElementById('ctl00_CPH1_txtPoblacion').value;
	var RegExPatternlocalidadUsuario = /<|>$/;
	if (localidadUsuario.match(RegExPatternlocalidadUsuario))
	{
		error += '<li>'+form.formatoLocalidad+'</li>';
	}
   
	
	//Comprobamos la fecha
	var diaSeleccionado = document.getElementById('ctl00_CPH1_editDia').selectedIndex;
	var mesSeleccionado = document.getElementById('ctl00_CPH1_editMes').selectedIndex;
	var anioSeleccionado = document.getElementById('ctl00_CPH1_editAnio').options[document.getElementById('ctl00_CPH1_editAnio').selectedIndex].value;
    if(!esFecha(diaSeleccionado,mesSeleccionado,anioSeleccionado))
    {
        error+='<li>'+form.fechanacincorrecta+'</li>';
    }
    else if (!fechaMayorQueLimite(diaSeleccionado,mesSeleccionado,anioSeleccionado, 'ctl00_CPH1_'))
    {
        error+='<li>'+form.fechanacinsuficiente+'</li>';
    }
	
    if ((document.getElementById('ctl00_CPH1_editProvincia').style.display=='') && (document.getElementById('ctl00_CPH1_editProvincia').selectedIndex == 0)){
        error+='<li>'+form.provinciaincorrecta+'</li>';
    }
    if(($('#ctl00_CPH1_txtProvincia').val() == '') && (document.getElementById('ctl00_CPH1_txtProvincia').style.display==""))
    {
        error+='<li>'+form.camposVacios+'</li>';
    }
    
	if (!$('#ctl00_CPH1_cbLegalLeido').is(':checked')) {
		error += '<li>'+form.aceptarLegal+'</li>';
	}
	if (error.length) {
		crearError('<ul>'+error+'</ul>', '#fielDatosPersonales div.textBox:first', true);
		$('body, html').animate({scrollTop: $dP.offset().top}, 600);
		return false;
	}
	else
	{
	    IdCaptcha = '#' + IdCaptcha;
	    funcionComprobar = funcionComprobar.replace("$$","&"+$(IdCaptcha).val());
	    eval(funcionComprobar);
	}
}

function fechaMayorQueLimite(pDiaSeleccionado,pMesSeleccionado,pAnioSeleccionado, pIDRelativoHacks)
{
    var diaLimite = document.getElementById(pIDRelativoHacks + 'txtHackDiaLimite').value;
    var mesLimite = document.getElementById(pIDRelativoHacks + 'txtHackMesLimite').value;
    var anioLimite = document.getElementById(pIDRelativoHacks + 'txtHackAnioLimite').value;
    
    if (diaLimite.length < 2)
    {
        diaLimite = '0' + diaLimite;
    }
    
    if (mesLimite.length < 2)
    {
        mesLimite = '0' + mesLimite;
    }
    
    if (pDiaSeleccionado.length < 2)
    {
        pDiaSeleccionado = '0' + pDiaSeleccionado;
    }
    
    if (pMesSeleccionado.length < 2)
    {
        pMesSeleccionado = '0' + pMesSeleccionado;
    }
    
    if (pAnioSeleccionado > anioLimite)
    {
        return false;
    }
    else if (pAnioSeleccionado == anioLimite)
    {
        if (pMesSeleccionado > mesLimite)
        {
            return false;
        }
        else if (pMesSeleccionado == mesLimite)
        {
            if (pDiaSeleccionado > diaLimite)
            {
                return false;
            }
        }
    }
    
    return true;
}

// asignamos los eventos
$( function() {
	//$('#registroUsuario #datosCuenta button.siguiente').click(registroUsuario_1);
	$('#registroUsuario').submit( function() {
		return registroUsuario_2();
	});
	// boton anterior
	$('#wrap').filter('.registro').find('button.anterior').click( function() {
		var $this = $(this);
		$this.parents('form').find('fieldset:visible').fadeOut('', function() {
			$this.parents('fieldset').prev('fieldset').fadeIn();		});
		return false;
	});
});

function irAnteriorUsu(){
		$('#ctl00_CPH1_datosPersonales').fadeOut('', function() {
			$('#ctl00_CPH1_datosCuenta').fadeIn();
		});
		$('#queEsEstoParte2').fadeOut('', function() {
			$('#queEsEstoParte1').fadeIn();
		});
		
		return false;
}

//                                                                 Agregar datos de contacto
//------------------------------------------------------------------------------------------

function crearDatosContacto() 
{
    var $dP   = $('#fielDatosPersonales'),
	    error = '';
	    
    // ahora comprobamos los campos personales
	$dP.find('label:contains(*)').each( function () {
		// todos aquellos label que contengan un asterisco:
		var $label = $(this);
		var $input = $label.next();
		if (!$input.val().length) {
			error += '<li>'+$label.text().replace('*', '')+form.obligatorio+'</li>';
		}
	});
	
	//Comprobamos el formato de nombre de usuario
	var nombreUsuario = document.getElementById('ctl00_CPH1_txtNombrePersonal').value;
    var RegExPatternNombreUsuario = /^([a-zA-Z0-9-\sñÑüÜáéíóúÁÉÍÓÚàèìòùÀÈÌÒÙâêîôûÂÊÎÔÛ'´`Çç]{0,})$/;
	if (!nombreUsuario.match(RegExPatternNombreUsuario))
	{
		error += '<li>'+form.formatoNombre+'</li>';
	}
	
	//Comprobamos el formato de los apellidos del usuario
	var apellidosUsuario = document.getElementById('ctl00_CPH1_txtApellidos').value;
	var RegExPatternApellidosUsuario = /^([a-zA-Z0-9-\sñÑüÜáéíóúÁÉÍÓÚàèìòùÀÈÌÒÙâêîôûÂÊÎÔÛ'´`Çç]{0,})$/;
	if (!apellidosUsuario.match(RegExPatternApellidosUsuario))
	{
		error += '<li>'+form.formatoApellidos+'</li>';
	}
	
	if(document.getElementById('ctl00_CPH1_txtEmail').value != "")
	{
	    if (!validarEmail(document.getElementById('ctl00_CPH1_txtEmail').value)) 
	    {
		    error += '<li>'+form.emailValido+'</li>';
        }
    }
	
	if (error.length) 
	{
		crearError('<ul>'+error+'</ul>', '#fielDatosPersonales div.textBox:first', true);
		$('body, html').animate({scrollTop: $dP.offset().top}, 600);
		return false;
	}
	else
	{
	    eval(document.getElementById('ctl00_CPH1_btnHackCrearDatos').href);
	}
}

//                                                                             Suscripciones
//------------------------------------------------------------------------------------------

function confirmarSuscripcion(control,accion,nombre) {
		var $this = $('#'+control);
		var texto = dialogo.confirmarSuscripcion.replace("@1@",nombre);
		mascaraCancelar(texto, $this, accion);
}

function eliminarSuscripcion(control,accion,nombre) {
		var $this = $('#'+control);
		var texto = dialogo.eliminarSuscripcion.replace("@1@",nombre);
		mascaraCancelar(texto, $this, accion);
}
function confirmarSuscripcionBlog(control,accion,nombre) {
		var $this = $('#'+control);
		var texto = dialogo.confirmarSuscripcionBlog.replace("@1@",nombre);
		mascaraCancelar(texto, $this, accion);
}

function eliminarSuscripcionBlog(control,accion,nombre) {
		var $this = $('#'+control);
		var texto = dialogo.eliminarSuscripcionBlog.replace("@1@",nombre);
		mascaraCancelar(texto, $this, accion);
}



//                                                                    listado de comunidades
//------------------------------------------------------------------------------------------
$( function() { // ejemplo de borrado de comunidad
	$('#wrap').filter('.comunidades').find('ul.imagenAsociada a.cancelarSuscr').click( function() {
		var $this = $(this); 
		var $li = $this.parents('li').eq(0);
		mascaraCancelar(borr.suscripcion, $li.get(0), function() {
			alert('Aqui iria algun tipo de funcion para borrar "'+$li.find('h3').text()+'" de la base de datos o de donde se crea conveniente.');
		});
	});
});

//                                                                          listado de blogs
//------------------------------------------------------------------------------------------
$( function() { // ejemplo de borrado de suscripcion
	$('#wrap').filter('.blogs').find('ul.imagenAsociada a.cancelarSuscr').click( function() {
		var $this = $(this); 
		var $li = $this.parents('li').eq(0);
		mascaraCancelar(borr.suscripcion, $li.get(0), function() {
			alert('Aqui iria algun tipo de funcion para borrar "'+$li.find('h3').text()+'" de la base de datos o de donde se crea conveniente.');
		});
	});
});

//                                                                     listado de borradores
//------------------------------------------------------------------------------------------
/*$( function() { // ejemplo de borrado de borrador
	$('#wrap').filter('.borradores').find('ul.imagenAsociada a.cancelar').click( function() {
		var $this = $(this); 
		var $li = $this.parents('li').eq(0);
		mascaraCancelar(borr.borrador, $li.get(0), function() {
			alert('Aqui iria algun tipo de funcion para borrar "'+$li.find('h3').text()+'" de la base de datos o de donde se crea conveniente.');
		});
	});
});*/

function borrarBorrador(control,accion){
		var $this = $(control); 
		var $li = $this.parents('li').eq(0);
		mascaraCancelar(borr.borrador, $li.get(0), accion);
}
 //                                                                 listado de suscripciones
//------------------------------------------------------------------------------------------
/*$( function() { // ejemplo de borrado de suscripcion
	$('#wrap').filter('.suscripciones').find('ul.imagenAsociada a.cancelarSuscr').click( function() {
		var $this = $(this); 
		var $li = $this.parents('li').eq(0);
		mascaraCancelar(borr.suscripcion, $li.get(0), function() {
			alert('Aqui iria algun tipo de funcion para borrar "'+$li.find('h3').text()+'" de la base de datos o de donde se crea conveniente.');
		});
	});
});
*/
function borrarSuscripcion(control,accion) {
		var $this = $(control); 
		var $li = $this.parents('li').eq(0);
		mascaraCancelar(borr.suscripcion, $li.get(0), accion);
}
 //                                                                   listado de comentarios
//------------------------------------------------------------------------------------------

/* 
$( function() { // ejemplo de borrado de comentarios
	$('#wrap').filter('.comentarios').find('ul.imagenAsociada a.cancelar').click( function() {
		var $this = $(this); 
		var $li = $this.parents('li').eq(0);
		mascaraCancelar(borr.comentario, $li.get(0), function() {
			alert('Aqui iria algun tipo de funcion para borrar "'+$li.find('h3').text()+'" de la base de datos o de donde se crea conveniente.');
		});
	});
});
*/
function borrarComentario(control,accion) { // ejemplo de borrado de comentarios
		var $this = $(control); 
		var $li = $this.parents('li').eq(0);
		mascaraCancelar(borr.comentario, $li.get(0), accion);
}

//function AccionFichaPersona(texto,id,accion) { 
//		var $li = $(document.getElementById(id)); 
//		mascaraCancelar(texto, $li, accion);
//}

function AccionFichaPersona(texto,id,accion,textoInferior) { 
		var $li = $(document.getElementById(id)); 
		mascaraCancelar2(texto, $li, accion,textoInferior);
}

function AccionAlerta(texto,id) { 
		var $li = $(document.getElementById(id)); 
		mascaraCancelar(texto, $li);
}

function MostrarPopUp(texto,control,accion) { 
		var $this = $(control); 
		var $li = $this.parents('li').eq(0);
		mascaraCancelar(texto, $li.get(0), accion);
}

function aceptarInvitacion(control,accion) { 
		var $this = $(control); 
		var $li = $this.parents('li').eq(0);
		mascaraCancelar(invitaciones.aceptar, $li.get(0), accion);
}

function ignorarInvitacion(control,accion) { 
		var $this = $(control); 
		var $li = $this.parents('li').eq(0);
		mascaraCancelar(invitaciones.ignorar, $li.get(0), accion);
}




//                                                      funciones asociadas a base recursos
//------------------------------------------------------------------------------------------
//$( function() {
//	$('#selectoresBase img.ascendente').click(function(){
//		if ('img/onUp.gif' == this.src) return false;
//		this.src = 'img/onUp.gif'; 
//		$('#selectoresBase img.descendente').attr('src', 'img/offDown.gif');
//		alert('Recargar el listado?');
//		return false;
//	});
//	$('#selectoresBase img.descendente').click(function(){
//		if ('img/onDown.gif' == this.src) return false;
//		this.src = 'img/onDown.gif'; 
//		$('#selectoresBase img.ascendente').attr('src', 'img/offUp.gif');
//		alert('Recargar el listado?');
//		return false;
//	});
	
//	$('#baseRecursos a:contains(Aadir recurso a categora), button:contains(Editar Categorias), #anyadirACategoria, #anyadirEditores').click( function() {
//		// meto esto aqui porque imagino que se tendra que llamar por Ajax al listado,
//		// bastar con inyectarlo como ultimo elemento del <body/>.
//		// Ademas, podeis darle un identificador al <a> para no tener que buscarlo por
//		// el DOM usando su contenido =)
//		var $capa = $('#capaModal');
//		$capa.find('div.mascara').height($(document).height());
//		$capa.find('form.anyadirCategorias').css('top', ($('html').attr('scrollTop') || $('body').attr('scrollTop') || 0) + 'px')
//		$capa.fadeIn();
//		// una vez llamado deberian prepararse los eventos
//		$capa.find('a.icoEliminar').unbind('click').click(function(){
//			$capa.fadeOut();
//		});
//		return false;
//	});
	
//	$('#baseRecursos a:contains(Crear categora)').click(function() {
//		// id. que anterior
//		$('#baseRecursos div.ko').remove()
//		$('#editarCategoria').slideUp();
//		$('#crearCategoria').slideDown().find('button[type=reset]').unbind('click').click(function(){
//			$('#crearCategoria').slideUp();
//		});
//		return false;
//	});
//	
//	$('#baseRecursos a:contains(Editar)').click(function() {
//		// id. que anterior
//		var $a = $('#baseRecursos div.listadoCategorias ul:gt(0) a.activo');
//		if(!$a.length){
//			crearError('<p>'+baseRec.noCategoria+'</p>','div.listadoCategorias');
//			return false;
//		}
//		$('#baseRecursos div.ko').remove();
//		$('#crearCategoria').slideUp();
//		$('#editarCategoria').slideDown().find('input').val($a.text().replace(/\(\d*\)/,'')).find('button[type=reset]').unbind('click').click(function(){
//			$('#editarCategoria').slideUp();
//		});
//		return false;
//	});
//});



/*---------     Modificado todo by Javier     --------------*/

function MostrarPopUpSelectorCategorias() {
        // meto esto aqui porque imagino que se tendra que llamar por Ajax al listado,
		// bastar con inyectarlo como ultimo elemento del <body/>.
		// Ademas, podeis darle un identificador al <a> para no tener que buscarlo por
		// el DOM usando su contenido =)
		window.scrollTo(0,0);
		
		var $capa = $('#capaModal');
		var $iframe = null;
		//var $mask = $capa.find('div.mascara').height($(document).height());
		var cssMascaraCom = {
            'height': '100%',
            'width': '100%',
            'position': 'fixed',
            'top': 0,
            'left' : 0
        }
		var $mask = $capa.find('div.mascara').css(cssMascaraCom);
		//$capa.find('div.anyadirCategorias').css('top', ($('html').attr('scrollTop') || $('body').attr('scrollTop') || 0) + 'px')
		/*var cssMascaraComCat = {
            'position': 'fixed',
            'top': 100
        }
		$capa.find('div.anyadirCategorias').css(cssMascaraComCat);*/
		$capa.fadeIn();
		if ($.browser.msie && $.browser.version < 7) {
			$iframe = $('<iframe></iframe>').css({
				position:'absolute',
				top:0,
				left:'50%',
				zIndex:parseInt($mask.css('zIndex')) - 1,
				width:'1000px',
				marginLeft:'-500px',
				height:$mask.height(),
				filter:'mask()'
			}).insertAfter($mask);
		}
		// una vez llamado deberian prepararse los eventos
		$capa.find('a.icoEliminar').unbind('click').click(function(){
			$capa.fadeOut();
			if ($iframe) {$iframe.remove();}
		});
		return false;
	}
	
	function MostrarPopUpSelectorEditoresYCat(pCapa) {
        // meto esto aqui porque imagino que se tendra que llamar por Ajax al listado,
		// bastar con inyectarlo como ultimo elemento del <body/>.
		// Ademas, podeis darle un identificador al <a> para no tener que buscarlo por
		// el DOM usando su contenido =)
		
		//0 -> selector de categorias
		//1 -> selector de editores
		
		if(pCapa == 0){
		document.getElementById('panEditores').style.display='none';
		document.getElementById('panSelectorLectores').style.display='none';
		document.getElementById('panCategorias').style.display='block';
		}
		else if(pCapa == 1){
		document.getElementById('panEditores').style.display='block';
		document.getElementById('panCategorias').style.display='none';
		document.getElementById('panSelectorLectores').style.display='none';
		}
		else{
		document.getElementById('panEditores').style.display='none';
		document.getElementById('panCategorias').style.display='none';
		document.getElementById('panSelectorLectores').style.display='block';
		}
		MostrarPopUpSelectorCategorias();
		
		
		/*var $capa = $('#capaModal');
		var $iframe = null;
		var $mask = $capa.find('div.mascara').height($(document).height());
		$capa.find('div.anyadirCategorias').css('top', ($('html').attr('scrollTop') || $('body').attr('scrollTop') || 0) + 'px')
		$capa.fadeIn();
		if ($.browser.msie && $.browser.version < 7) {
			$iframe = $('<iframe></iframe>').css({
				position:'absolute',
				top:0,
				left:'50%',
				zIndex:parseInt($mask.css('zIndex')) - 1,
				width:'1000px',
				marginLeft:'-500px',
				height:$mask.height(),
				filter:'mask()'
			}).insertAfter($mask);
		}
		// una vez llamado deberian prepararse los eventos
		$capa.find('a.icoEliminar').unbind('click').click(function(){
			$capa.fadeOut();
			if ($iframe) {$iframe.remove();}
		});
		return false;*/
	}

function MostrarSelectorCategorias() {
		// meto esto aqui porque imagino que se tendra que llamar por Ajax al listado,
		// bastar con inyectarlo como ultimo elemento del <body/>.
		// Ademas, podeis darle un identificador al <a> para no tener que buscarlo por
		// el DOM usando su contenido =)
		
		document.getElementById('panCompartirDocPopUp').style.display='none';
        document.getElementById('panAgregarCatDocPopUp').style.display='block';
        document.getElementById('panAgregarTagDocPopUp').style.display='none';
        
        if(document.getElementById('panInfoEnvioTwitterPopUp') != null){
        document.getElementById('panInfoEnvioTwitterPopUp').style.display='none';
        }
		
		MostrarPopUpSelectorCategorias();
		
		/*var $capa = $('#capaModal');
		var $iframe = null;
		var $mask = $capa.find('div.mascara').height($(document).height());
		$capa.find('div.anyadirCategorias').css('top', ($('html').attr('scrollTop') || $('body').attr('scrollTop') || 0) + 'px')
		$capa.fadeIn();
		if ($.browser.msie && $.browser.version < 7) {
			$iframe = $('<iframe></iframe>').css({
				position:'absolute',
				top:0,
				left:'50%',
				zIndex:parseInt($mask.css('zIndex')) - 1,
				width:'1000px',
				marginLeft:'-500px',
				height:$mask.height(),
				filter:'mask()'
			}).insertAfter($mask);
		}
		// una vez llamado deberian prepararse los eventos
		$capa.find('a.icoEliminar').unbind('click').click(function(){
			$capa.fadeOut();
			if ($iframe) {$iframe.remove();}
		});
		return false;*/
	}
	
function MostrarEditorTags() {
		// meto esto aqui porque imagino que se tendra que llamar por Ajax al listado,
		// bastar con inyectarlo como ultimo elemento del <body/>.
		// Ademas, podeis darle un identificador al <a> para no tener que buscarlo por
		// el DOM usando su contenido =)
		
		document.getElementById('panCompartirDocPopUp').style.display='none';
        document.getElementById('panAgregarCatDocPopUp').style.display='none';
        document.getElementById('panAgregarTagDocPopUp').style.display='block';
        
        if(document.getElementById('panInfoEnvioTwitterPopUp') != null){
        document.getElementById('panInfoEnvioTwitterPopUp').style.display='none';
        }
		
		MostrarPopUpSelectorCategorias();
		
		/*var $capa = $('#capaModal');
		var $iframe = null;
		var $mask = $capa.find('div.mascara').height($(document).height());
		$capa.find('div.anyadirCategorias').css('top', ($('html').attr('scrollTop') || $('body').attr('scrollTop') || 0) + 'px')
		$capa.fadeIn();
		if ($.browser.msie && $.browser.version < 7) {
			$iframe = $('<iframe></iframe>').css({
				position:'absolute',
				top:0,
				left:'50%',
				zIndex:parseInt($mask.css('zIndex')) - 1,
				width:'1000px',
				marginLeft:'-500px',
				height:$mask.height(),
				filter:'mask()'
			}).insertAfter($mask);
		}
		// una vez llamado deberian prepararse los eventos
		$capa.find('a.icoEliminar').unbind('click').click(function(){
			$capa.fadeOut();
			if ($iframe) {$iframe.remove();}
		});
		return false;*/
	}
	
function MostrarCompartidorDocumentos() {
		// meto esto aqui porque imagino que se tendra que llamar por Ajax al listado,
		// bastar con inyectarlo como ultimo elemento del <body/>.
		// Ademas, podeis darle un identificador al <a> para no tener que buscarlo por
		// el DOM usando su contenido =)
		
		document.getElementById('panCompartirDocPopUp').style.display='block';
        document.getElementById('panAgregarCatDocPopUp').style.display='none';
        document.getElementById('panAgregarTagDocPopUp').style.display='none';
        
        if(document.getElementById('panInfoEnvioTwitterPopUp') != null){
        document.getElementById('panInfoEnvioTwitterPopUp').style.display='none';
        }
		
		MostrarPopUpSelectorCategorias();
	}
	
function MostrarInfoEnvioTwitter()
{
    if(document.getElementById('panInfoEnvioTwitterPopUp') != null)
    {
        document.getElementById('panInfoEnvioTwitterPopUp').style.display='block';
    }
    if (document.getElementById('panCompartirDocPopUp') != null)
    {
        document.getElementById('panCompartirDocPopUp').style.display='none';
    }
    if (document.getElementById('panAgregarCatDocPopUp') != null)
    {    
        document.getElementById('panAgregarCatDocPopUp').style.display='none';
    }
    if (document.getElementById('panAgregarTagDocPopUp') != null)
    {
        document.getElementById('panAgregarTagDocPopUp').style.display='none';
	}
	MostrarPopUpSelectorCategorias();
}
	
function CerrarSelectorCategorias(){
            var $capa = $('#capaModal');
			$capa.fadeOut();
		}
		
function CerrarSelectorCualquiera(capa){
            var $capa = $('#'+capa);
			$capa.fadeOut();
		}
		
function AjustarPanelDesplegableBusqAvanzParaAutoCompTags()
{
    if (document.getElementById('panBusquedaAv').style.overflow!="visible")
    {
        document.getElementById('panBusquedaAv').style.overflow="visible";
    }
    else
    {
        document.getElementById('panBusquedaAv').style.overflow="hidden";
    }
}

	
function CalcularTopPanelYMostrar(evento, panelID) {
	if(!evento.target){
	var hijo = evento.srcElement;
	}
	else{
	var hijo = evento.target;
	}
	if(hijo.nodeName == 'IMG'){
	    hijo = $(hijo).parent();
	}
	var $padre = $(hijo).parent();
	
	$(document.getElementById(panelID)).css({
			top: $padre.offset().top + $padre.height() + 'px',
			display: ''
		});
	return false;
}

	
/*---------     Fin by Javier     --------------*/

/*---------     RIAM: Funci�n para modificar un checkBox       --------------*/
function ModificarCheck(checkID, estado)
			{
			    var check = document.getElementById(checkID);
			    if(check != null)
			    {
			        check.checked = estado;
			    }
			}
			
/*---------     FIN RIAM: Funci�n para modificar un checkBox       --------------*/



/*---------    REGION RESALTAR TAGS, BY ALTU    --------------------------------------------*/


//NOTA:   NO TOCAR SIN EL COSENTIMIENTO DE JAVIER.



function ResaltarTags(pListaTags)
{
    var listaColoresResaltar = new Array(8);
    listaColoresResaltar[0] = "#8F529D";//"rgb(143, 82, 157)";
    listaColoresResaltar[1] = "#4C8FB5";//"rgb(76, 143, 181)";
    listaColoresResaltar[2] = "#E08552";//"rgb(224, 133, 82)";
    listaColoresResaltar[3] = "#E55982";//"rgb(229, 89, 130)";
    listaColoresResaltar[4] = "#C4A3CB";//"rgb(196, 163, 203)";
    listaColoresResaltar[5] = "#B5DDF1";//"rgb(181, 221, 241)";
    listaColoresResaltar[6] = "#F8C0A9";//"rgb(248, 192, 169)";
    listaColoresResaltar[7] = "#F6ABCF";//"rgb(246, 171, 207)";
    
    listaPlanaColoresResaltar = "#8F529D #4C8FB5 #E08552 #E55982 #C4A3CB #B5DDF1 #F8C0A9 #F6ABCF";
    
    listaArtiConjuPrep = ",el,la,los,las,un,una,lo,unos,unas,y,o,u,e,ni,a,con,de,del,en,para,por,al,";
    
    listaCaracteresExpurios = [" ",",","\"","\'","(",")",";","<",">",":"];

    var elementos = $('.Resaltable');
    var elementosTags = $('.TagResaltable');
    
    
    var listaTags = pListaTags.split(",");
    
    for(var i=0;i<elementos.length;i++){
    
        var texto = elementos[i].innerHTML;
        elementos[i].innerHTML = ObtenerTextoConEnfasisSegunLosTags(texto, listaTags, listaColoresResaltar, false);
    }
    
    for(var i=0;i<elementosTags.length;i++){
    
        var textoTags = elementosTags[i].innerHTML;
        //elementosTags[i].innerHTML = ObtenerTextoConEnfasisSegunLosTagsParaCadenaDeTags(textoTags, listaTags, listaColoresResaltar);
        elementosTags[i].innerHTML = ObtenerTextoConEnfasisSegunLosTags(textoTags, listaTags, listaColoresResaltar, false);
    }
}

function ObtenerTextoConEnfasisSegunLosTags(pTexto, pListaTags, pListaColoresResaltar, pExpandirPalabra)
{
    var textoConEnfasis = pTexto;
    
    var count = 0;
    for (var i=0;i<pListaTags.length;i++)
    {
        var tag = pListaTags[i];
        
        var textoEnMinusSinAcentos = QuitarAcentosConvertirMinuscula(textoConEnfasis);
        var tagEnMinusSinAcentos = QuitarAcentosConvertirMinuscula(tag);
    
        if (textoEnMinusSinAcentos.indexOf(tagEnMinusSinAcentos) != -1)
        {//Contiene todo el tag por lo enfatizo entero:
            
            textoConEnfasis = ProcesarTagEnTextoUnaOVariosVeces(textoConEnfasis, tag, count, pListaColoresResaltar, listaCaracteresExpurios, pExpandirPalabra);
        }
        else
        {//Puede que contenga alguna palabra del tag por lo que la enfatizo individualmente:
            var trozosTag = SepararTextoPorCarater(tag, ' ');
        
            for (var x=0;x<trozosTag.length;x++)
            {
                var trozoTag = trozosTag[x];
            
                if (!EsArticuloOConjuncionOPreposicionesComunes(trozoTag))
                {
                    var textoRecompuesto = "";
                    var separador = "";
                    
                    var palabras = SepararTextoPorCarater(textoConEnfasis, ' ');
                    
                    for(var z=0;z<palabras.length;z++)
                    {
                        var palabra = palabras[z];
                        
                        var palabraLimpia = QuitarAcentosConvertirMinuscula(palabra);
                        var trozoTagLimpio = QuitarAcentosConvertirMinuscula(trozoTag);
                    
                        if (palabraLimpia == trozoTagLimpio)
                        {
                            textoRecompuesto += separador + AgregarEnfasisATexto(palabra, count, pListaColoresResaltar);
                        }
                        else if (pExpandirPalabra && palabraLimpia.indexOf(trozoTagLimpio) != -1)
                        {
                            if(caracterEnPListaCaracteresExpurios(listaCaracteresExpurios, palabra.charAt(0)))
                            {
                                textoRecompuesto += separador + palabra.charAt(0) + AgregarEnfasisATexto(palabra.substring(1), count, pListaColoresResaltar);
                            }
                            else if (caracterEnPListaCaracteresExpurios(listaCaracteresExpurios,palabra[palabra.length-1]))
                            {
                                textoRecompuesto += separador + AgregarEnfasisATexto(palabra.substring(0, palabra.length - 1), count, pListaColoresResaltar) + palabra.charAt(palabra.length - 1);
                            }
                            else
                            {
                                textoRecompuesto += separador + AgregarEnfasisATexto(palabra, count, pListaColoresResaltar);
                            }
                        }
                        else
                        {
                            textoRecompuesto += separador + palabra;
                        }

                        separador = " ";
                    }
                    
                    textoConEnfasis = textoRecompuesto;
                }
            }
        }

        count++;
        if (count >= pListaColoresResaltar.length)
        {
            count = 0;
        }
    }

    return textoConEnfasis;
}

function ObtenerTextoConEnfasisSegunLosTagsParaCadenaDeTags(pTexto, pListaTags, pListaColoresResaltar)
{
    var textoConEnfasis = pTexto;
    
    var count = 0;
    for (var i=0;i<pListaTags.length;i++)
    {
        var tag = pListaTags[i];
        
        var tagContieneTrozoTag = false;
        
        var textoEnMinusSinAcentos = QuitarAcentosConvertirMinuscula(textoConEnfasis);
        var tagEnMinusSinAcentos = QuitarAcentosConvertirMinuscula(tag);

        if (textoEnMinusSinAcentos.indexOf(tagEnMinusSinAcentos) != -1)
        {//Contiene todo el tag por lo enfatizo el tag entero entero:
            tagContieneTrozoTag = true;
        }
        else
        {//Puede que contenga alguna palabra del tag por lo que la enfatizo individualmente:
            var trozosTag = SepararTextoPorCarater(tag, ' ');
        
            for (var x=0;x<trozosTag.length;x++)
            {
                var trozoTag = trozosTag[x];
                
                if (!EsArticuloOConjuncionOPreposicionesComunes(trozoTag))
                {
                    var palabras = SepararTextoPorCarater(textoConEnfasis, ' ');
                    
                    for(var z=0;z<palabras.length;z++)
                    {
                        var palabra = palabras[z];
                        
                        if (QuitarAcentosConvertirMinuscula(palabra) == QuitarAcentosConvertirMinuscula(trozoTag))
                        {
                            tagContieneTrozoTag = true;
                            break;
                        }
                    }
                }
            }
        }

        if (tagContieneTrozoTag && textoConEnfasis.indexOf("<span") == -1)
        {
            textoConEnfasis = AgregarEnfasisATexto(EliminarEspaciosExteriores(textoConEnfasis), count, pListaColoresResaltar);
        }
        else
        {
            textoConEnfasis = EliminarEspaciosExteriores(textoConEnfasis);
        }

        count++;
        if (count >= pListaColoresResaltar.Length)
        {
            count = 0;
        }
    }
    return textoConEnfasis;
}

function ProcesarTagEnTextoUnaOVariosVeces(pTexto, pTag, pEstiloResalto, pListaColoresResaltar, pListaCaracteresExpurios, pExpandirPalabra)
{
    var textoConEnfasis = pTexto;

    var textoEnMinusSinAcentos = QuitarAcentosConvertirMinuscula(textoConEnfasis);
    var tagEnMinusSinAcentos = QuitarAcentosConvertirMinuscula(pTag);
    
    if (textoEnMinusSinAcentos.indexOf(tagEnMinusSinAcentos) != -1)
    {//Contiene todo el tag por lo enfatizo entero:
            
        if (pTexto.length > pTag.length)
        {
            var inicioTagEnTexto = textoEnMinusSinAcentos.indexOf(tagEnMinusSinAcentos);
            var finTagEnTexto = inicioTagEnTexto + pTag.length;
                
            if (pExpandirPalabra)
            {
                //Expandimos el tag hasta tener palabras completas, o el final del texto:
                while (inicioTagEnTexto != 0 && !caracterEnPListaCaracteresExpurios(pListaCaracteresExpurios, textoConEnfasis.charAt(inicioTagEnTexto - 1)))
                {
                    inicioTagEnTexto--;
                }
                while (finTagEnTexto != textoConEnfasis.length && !caracterEnPListaCaracteresExpurios(pListaCaracteresExpurios, textoConEnfasis.charAt(finTagEnTexto)))
                {
                    finTagEnTexto++;
                }

                textoConEnfasis = textoConEnfasis.substring(0, inicioTagEnTexto) + AgregarEnfasisATexto(textoConEnfasis.substring(inicioTagEnTexto, finTagEnTexto), pEstiloResalto, pListaColoresResaltar) + ProcesarTagEnTextoUnaOVariosVeces(textoConEnfasis.substring(finTagEnTexto), pTag, pEstiloResalto, pListaColoresResaltar, pListaCaracteresExpurios, pExpandirPalabra); //+ textoConEnfasis.substring(finTagEnTexto);
            }
            else
            {
                if ((inicioTagEnTexto == 0 || caracterEnPListaCaracteresExpurios(pListaCaracteresExpurios, textoConEnfasis.charAt(inicioTagEnTexto - 1))) && (finTagEnTexto == textoEnMinusSinAcentos.length || caracterEnPListaCaracteresExpurios(pListaCaracteresExpurios, textoConEnfasis.charAt(finTagEnTexto))))
                { //Solo si la cadena contiene el propio pTag como palabra
                    textoConEnfasis = textoConEnfasis.substring(0, inicioTagEnTexto) + AgregarEnfasisATexto(textoConEnfasis.substring(inicioTagEnTexto, finTagEnTexto), pEstiloResalto, pListaColoresResaltar) + ProcesarTagEnTextoUnaOVariosVeces(textoConEnfasis.substring(finTagEnTexto), pTag, pEstiloResalto, pListaColoresResaltar, pListaCaracteresExpurios, pExpandirPalabra);
                }
                else
                {
                    textoConEnfasis = textoConEnfasis.substring(0, finTagEnTexto) + ProcesarTagEnTextoUnaOVariosVeces(textoConEnfasis.substring(finTagEnTexto), pTag, pEstiloResalto, pListaColoresResaltar, pListaCaracteresExpurios, pExpandirPalabra);
                }
            } 
        }
        else
        {
            textoConEnfasis = AgregarEnfasisATexto(textoConEnfasis, pEstiloResalto, pListaColoresResaltar);
        }
    }
    
    return textoConEnfasis;
}

function caracterEnPListaCaracteresExpurios(pListaCaracteresExpurios, caracter)
{
	for(i = 0; i < pListaCaracteresExpurios.length; i++)
	{
		if(pListaCaracteresExpurios[i] == caracter)
		{
			return true;
		}
	}
	
	return false;
}

function AgregarEnfasisATexto(pTexto, pEstiloResalto, pListaColoresResaltar)
{
    if (pTexto.indexOf("style=") == -1 && pTexto.indexOf("<span class") == -1 && pTexto.indexOf("</span") == -1 && pTexto != "span" && pTexto != "class=" && pTexto != "tag" && pTexto != "background-color" && pTexto != "/span" && pTexto != "color" && pTexto != "#FFFFFF" && listaPlanaColoresResaltar.indexOf(pTexto) == -1)
    {
        return "<span class=\"tag\" style=\"color:#FFFFFF;background-color:" + pListaColoresResaltar[pEstiloResalto] + ";\">" + pTexto + "</span>";
    }
    else
    {
        return pTexto;
    }
}

function EliminarEspaciosExteriores(pTexto)
{
    var textoSinEspacios = pTexto;
    var hayEspacios = true;
    
    while (textoSinEspacios.length > 0 && hayEspacios)
    {
        if (textoSinEspacios.charAt(0) == ' ')
        {
            textoSinEspacios = textoSinEspacios.substring(1);
        }
        else if (textoSinEspacios[textoSinEspacios.length - 1] == ' ')
        {
            textoSinEspacios = textoSinEspacios.substring(0, textoSinEspacios.length - 1);
        }
        else
        {
            hayEspacios = false;
        }
    }
    
    return textoSinEspacios;
}

function SepararTextoPorCarater(pTexto, pCaracter)
{
      var palabras = pTexto.split(pCaracter);
      
      //Quito elementos vacíos:
      var textoAuxiliar = "";
      var separador = "";
      
      for(var i=0;i<palabras.length;i++)
      {
        if (palabras[i] != '')
        {
            textoAuxiliar += separador + palabras[i];
            separador = ",";
        }
      }
      

      return textoAuxiliar.split(",");
}

function EsArticuloOConjuncionOPreposicionesComunes(pTexto)
{
    if (pTexto.length > 4)
    {
        //No hay ninguna preposición, conjunción o artículo con las de 4 caracteres.
        return false;
    }
    else
    {
        return (listaArtiConjuPrep.indexOf(','+pTexto+',') != -1);
    }
}

function QuitarAcentosConvertirMinuscula(pTexto)
{
    var textoLimpio = pTexto;
    
    textoLimpio = textoLimpio.replace(/\á/g,'a');
    textoLimpio = textoLimpio.replace(/\Á/g,'a');
    
    textoLimpio = textoLimpio.replace(/\é/g,'e');
    textoLimpio = textoLimpio.replace(/\É/g,'e');
    
    textoLimpio = textoLimpio.replace(/\í/g,'i');
    textoLimpio = textoLimpio.replace(/\Í/g,'i');
    
    textoLimpio = textoLimpio.replace(/\ó/g,'o');
    textoLimpio = textoLimpio.replace(/\Ó/g,'o');
    
    textoLimpio = textoLimpio.replace(/\ú/g,'u');
    textoLimpio = textoLimpio.replace(/\Ú/g,'u')
    
    textoLimpio = textoLimpio.toLowerCase();
    
    return textoLimpio;
}





/*--------    FIN REGION RESALTAR TAGS    ---------------------------------------------------*/



/*--------    REGION BUSQUEDA POR VARIAS CATEGORÍAS -----------------------------------------*/

function AceptarSelectorCatBusqueda(pTxtHackIds, pTxtControlSelector)
{
    document.getElementById(pTxtHackIds).value=document.getElementById(pTxtControlSelector).value;

    var categoriaIDs = document.getElementById(pTxtHackIds).value;
    var divs = document.getElementById('divSelCatTesauro');
    document.getElementById('contenedorFiltrosCategorias').innerHTML = '';
    var numSeleccionados = AgregarCategoriasASeleccion(divs, categoriaIDs, pTxtHackIds, pTxtControlSelector);
    
    var divsLista = document.getElementById('divSelCatLista');
    AjustarCategoriasSeleccion(divsLista.children[1], categoriaIDs);
    
    if(numSeleccionados > 0)
    {
        document.getElementById('filtrosCategorias').style.display='';
        //EjecutarScriptsIniciales();
    }
    else
    {
        document.getElementById('filtrosCategorias').style.display = 'none';
    }
    
    FiltrarBusqueda();
}

function AgregarCategoriasASeleccion(pDivs, pCategoriaIDs, pTxtHackIds, pTxtControlSelector)
{
//    var numSeleccionados = 0;

//    var catIDs = pCategoriaIDs;
//    
//    while (catIDs != '')
//    {
//        var categoriaID = catIDs.substring(0, catIDs.indexOf(','));
//        catIDs = catIDs.replace(categoriaID + ',', '');
//        
//        var spans = document.getElementsByName(categoriaID);
//        
//        document.getElementById('contenedorFiltrosCategorias').innerHTML += '<a id="idTemp" onclick="EliminarCategoriaFiltroBusqueda(\''+categoriaID+'\',\''+pTxtHackIds+'\', \''+pTxtControlSelector+'\');">' + spans[0].children[1].innerHTML + '</a> ';
//        numSeleccionados ++;
//    }
//    
//    return numSeleccionados;
    
    var numSeleccionados = 0;
    
    for(var i=0;i<pDivs.children.length;i++)
    {
        if (pCategoriaIDs.indexOf(pDivs.children[i].children[1].className) != -1)
        {
            document.getElementById('contenedorFiltrosCategorias').innerHTML += '<a id="idTemp" onclick="EliminarCategoriaFiltroBusqueda(\''+pDivs.children[i].children[1].className+'\',\''+pTxtHackIds+'\', \''+pTxtControlSelector+'\');">' + pDivs.children[i].children[1].children[1].innerHTML + '</a> ';
            numSeleccionados ++;
            pDivs.children[i].children[1].children[0].checked = true;
        }
        else if (pDivs.children[i].children[1].children[0].checked)
        {
            pDivs.children[i].children[1].children[0].checked = false;
        }
        
        if (pDivs.children[i].children.length == 3)
        {
            numSeleccionados = numSeleccionados + AgregarCategoriasASeleccion(pDivs.children[i].children[2], pCategoriaIDs, pTxtHackIds, pTxtControlSelector);
        }
    }
    
    return numSeleccionados;
}

function AjustarCategoriasSeleccion(pDivs, pCategoriaIDs)
{
    for(var i=0;i<pDivs.children.length;i++)
    {
        if (pCategoriaIDs.indexOf(pDivs.children[i].children[0].className) == -1)
        {
            pDivs.children[i].children[0].children[0].checked = false;
        }
        else
        {
            pDivs.children[i].children[0].children[0].checked = true;
        }
        
        if (pDivs.children[i].children.length == 2)
        {
            AjustarCategoriasSeleccion(pDivs.children[i].children[1], pCategoriaIDs);
        }
    }
}

function EliminarCategoriaFiltroBusqueda(pCategoriaID, pTxtHackIds, pTxtControlSelector)
{
//    document.getElementById(pTxtControlSelector).value = document.getElementById(pTxtControlSelector).value.replace(pCategoriaID + ',','');
//    
//    var spans = document.getElementsByName(pCategoriaID);
//    for(var i=0;i<spans.length;i++)
//    {
//        spans[i].children[0].checked = false;
//    }
//    
//    AceptarSelectorCatBusqueda(pTxtHackIds, pTxtControlSelector);
    document.getElementById(pTxtControlSelector).value = document.getElementById(pTxtControlSelector).value.replace(pCategoriaID + ',','');
    
    AceptarSelectorCatBusqueda(pTxtHackIds, pTxtControlSelector);
}

function MostrarOcultarPanelCatBusqueda(pPanelCatID)
{
    Desplegar(this, pPanelCatID);
    
    if (document.getElementById(pPanelCatID).style.display != 'none')
    {
        document.getElementById('aspnetForm').setAttribute('onclick','OcultarPanelCategoriasBusqueda(\''+pPanelCatID+'\');'); 
    }
}

function OcultarPanelCategoriasBusqueda(pPanelCatID)
{
    if (document.getElementById('txtHackNoCerrarSelector').value == '' && document.getElementById(pPanelCatID).style.display != 'none')
    {
        Desplegar(this, pPanelCatID);
    }
    
    document.getElementById('txtHackNoCerrarSelector').value = '';
}

function LimpiarCatSelecciondas(pTxtHackIds, pTxtControlSelector, pPanelCatID)
{
//    var catIDs = document.getElementById(pTxtControlSelector).value;
//    
//    while (catIDs != '')
//    {
//        var categoriaID = catIDs.substring(0, catIDs.indexOf(','));
//        catIDs = catIDs.replace(categoriaID + ',', '');
//        
//        var spans = document.getElementsByName(categoriaID);
//        for(var i=0;i<spans.length;i++)
//        {
//            spans[i].children[0].checked = false;
//        }
//    }

//    document.getElementById(pTxtControlSelector).value='';
//    AceptarSelectorCatBusqueda(pTxtHackIds, pTxtControlSelector);
//    Desplegar(this, pPanelCatID);

    document.getElementById(pTxtControlSelector).value='';
    AceptarSelectorCatBusqueda(pTxtHackIds, pTxtControlSelector);
    Desplegar(this, pPanelCatID);
}

/*--------    FIN REGION BUSQUEDA POR VARIAS CATEGORÍAS    ----------------------------------*/
