/**
 * Archivo encargado de los eventos iniciados por el usuario
 *
 * Agrega observadores a los eventos click de los 3 botones del directorio por medio
 * de la libreria prototype y scriptaculous.
 *
 * Los botones son:
 *  - Boton a la derecha de la lista de secretarias
 *  - Boton a la derecha de la lista de organismos autonomos
 *  - Boton a la derecha del buscador por nombre
 * 
 * @author Luis Alfredo Abarca Galicia (luisabarca@guerrero.gob.mx)
 *
 */

/* Botones */
var btnSecretarias = null;
var btnOrgsAutonomos = null;
var btnBuscador = null;

/* Controles */
var selSecretaria = null;
var selOrgsAutonomos = null;
var txtBuscador = null;

/* Enlace otra busqueda */
var lnkOtraBusqueda = null;

// }}
// {{{

/**
 * Parte los valores del select para enviarlos
 * Retorna un arreglo con dos valores, el tipo y el valor
 *
 * @return array
 */
function _getValues(object)
{
    /* Valor de la lista */
    var value = new String(object.options[object.selectedIndex].value);
    
    /* Parte los valores en dos partes a partir del _ guion bajo */
    var datos = value.split('_');
    
    return datos;
}

// }}}
// {{{

/**
 * Envia al usuario a la pagina del buscador
 *
 */
function _goSearch(type, value)
{
    window.location = "/?P=directorio_buscar&t=" + type + "&q=" + value;
}

// }}
// {{{

/**
 * Manejador del evento click del buscador
 *
 */
function onOrgsAutonomos()
{
    var datos = _getValues($('#aut'));
    _goSearch(datos[0], datos[1]);
}

// }}}
// {{{

/**
 * Maneja el evento de cuando se le da click al enlace otra busqueda
 *
 */
function onOtraBusquedaClick()
{
    var msg = '';
    var thebox = $("#dirsearchbox");
    
    // Deshabilita el enlace para los que tienen javascript
    //lnkOtraBusqueda.attr('href', "javascript:;");
    
    // Cambia el mensaje segun el estado del buscador, antes de cambiarlo
    if (thebox.is(':hidden')) {
        // Si estaba oculta, ahora se mostrara
        msg = 'Ocultar buscador';
	} else {
	    // Si estaba visible, ahora se ocultara
	    msg = 'Mostrar buscador';
    }
    
    /* Cambia la visibilidad del buscador */
    thebox.slideToggle('normal');
    
    /* Cambia el mensaje del enlace */
    lnkOtraBusqueda.html('<strong>' + msg + '</strong>');
    
    return false;
}

// }}
// {{{

/* 
 * Inicio
 * Cuando carga la pagina, inicia las variables 
 */
$(document).ready(function()
{
    // Botones
    $('#btndeps').click(function()
    {
        var obj = $('#dep');
        var datos = _getValues(obj);
        _goSearch(datos[0], datos[1]);
    });
    
    btnOrgsAutonomos = $('#btnaut');
    
    // Controles
    selSecretaria = $('#dep');
    selOrgsAutonomos = $('#aut');
    txtBuscador = $('#dirname');
    
    // Formulario de buscar por nombre
    $('#frmDirSearch').submit(function()
    {
        var txtBuscador = $('#qs');
        var value = $.trim(txtBuscador.val());
    
        if (value == "") {
            alert("Al parecer olvidate escribir un nombre para buscar");
            txtBuscador.focus();
            return false;
        }
        
        _goSearch('name', value);
        return false;
    });
    
    // Enlaces
    lnkOtraBusqueda = $('#dirotrabusqueda');
    
    lnkOtraBusqueda.click(function()
    {
        return onOtraBusquedaClick();
    });
    
    // Eventos
    btnOrgsAutonomos.click(onOrgsAutonomos);    
    
    /* Llama por primera vez para ocultar el buscador */
    onOtraBusquedaClick();
    
    /*
    function findValueCallback(event, data, formatted) {
		jQuery("<li>").html( !data ? "No match!" : "Selected: " + formatted).appendTo("#result");
	}
	
	function formatItem(row) {
		return row[0] + " (<strong>id: " + row[1] + "</strong>)";
	}
	function formatResult(row) {
		return row[0].replace(/(<.+?>)/gi, '');
	}
	
	$("#qs").autocomplete("/?P=directorio_json&q=" + $("qs").val(), {
		width: 300,
		multiple: true,
		matchContains: true,
		formatItem: formatItem,
		formatResult: formatResult
	});
	
	$("#qs").autocomplete("/?P=directorio_json&q=" + $("qs").val(), {
		minChars: 0,
		width: 310,
		matchContains: true,
		highlightItem: false
	});
	*/
});