/*	Declaración de variables globales */

/* Identificadores de clases css */
var divMainContent = 'maincontent';
var divLoader = 'loader';
var divLoaderMsj = 'loadermsg';
var divInactive = 'inactive';
var divMessageBox = 'messagebox';
var divNewsContent = 'newscontent';
var divLoginContent = 'logincontent';

/* Mensajes útiles para AJAX */
var msgLoading 	= 'Cargando contenido...';
var msgLoaded 	= 'Obteniendo contenido...';
var txtLoader = '<table><tr><td><img src="/templates/MAC/images/others/loading.gif" border="0" width="32" height="32" /></td><td><b>Cargando...</b></td></tr></table>';

/* Otras */
var History;
var urlContent	= 'modules.php';
var myAjaxLogin;


/*	Función objHistory. Manejador del historial del Navegador */
function objHistory() {
	this.historyListener = function(historyHash) {
		if((historyHash == '')||(historyHash == historyHashHome)) {
			historyHash = historyHashHome;
			loadContent(divNewsContent, historyHashNews);
			$(divNewsContent).style.display = '';
            $(divNewsContent).style.visibility = 'visible';
		} else {
            $(divNewsContent).innerHTML = '';
            $(divNewsContent).style.display = 'none';
            $(divNewsContent).style.visibility = 'hidden';
        }
		loadContent(divMainContent, historyHash);
	};
	unFocus.History.addEventListener('historyChange', this.historyListener);
	this.historyListener(unFocus.History.getCurrent());
}

/*	Función loadMainContent. Permite cargar contenido en el contenedor principal utilizando el historial del navegador */
loadMainContent = function(url) {
    unFocus.History.addHistory(url);
};

/*	Función loadContent. Permite cargar contenido en el contenedor principal mediante AJAX */
function loadContent(div, url)
{
	$(div).hide();
    var myAjax = new Ajax.Updater( div, urlContent + '?q=' + url, { 
		method 			: 'get', 
		encoding 		: 'UTF-8',
		onUninitialized	: startLoader(),
		onLoading 		: animateLoader(msgLoading),
		onLoaded 		: animateLoader(msgLoaded),
		onSuccess		: function(transport)
						  {
                            i=transport.responseText.indexOf('<div class="title">');
                            j=transport.responseText.indexOf('</div>');
                            document.title = Pagetitle + ': ' + transport.responseText.substring(i+19,j);
                            hideLoader();
							new Effect.Appear($(div), {duration:1, from:0, to:1.0});
						  }
	});
}

/* Funciones útiles para el Loader */
function startLoader() {
	$(divLoader).style.display		= '';
	$(divLoader).style.visibility	= '';
	$(divInactive).style.display 	= 'block';
	$(divInactive).style.visibility = '';
}
function animateLoader(msjLoader) {
	$(divLoaderMsj).innerHTML 			= msjLoader;
	$(divLoaderMsj).style.background 	= "url('loading.gif') no-repeat";
}
function hideLoader() {
	$(divLoader).style.display		= 'none';
	$(divLoader).style.visibility	= 'hidden';
	$(divInactive).style.display 	= 'none';
	$(divInactive).style.visibility	= 'hidden';
}

/*Envio de formularios*/
function sendForm(url, urltogo, params) {
    new Ajax.Request(urlContent + '?q=' + url, {
        method			: 'post',
		parameters		: params,
		encoding 		: 'UTF-8',
		contentType 	: 'application/x-www-form-urlencoded; charset=UTF-8',
		onUninitialized	: startLoader(),
		onLoading 		: animateLoader(msgLoading),
		onLoaded 		: animateLoader(msgLoaded),
		onSuccess		: function(transport) {
			var resAJAX = transport.responseXML;
			var error = trim(resAJAX.getElementsByTagName('error').item(0).firstChild.data);
			var message = trim(resAJAX.getElementsByTagName('message').item(0).firstChild.data);
            
            if (error != '0') {
                alert(message);
            } else {
                alert(message);
                loadMainContent(urltogo);
            }
            hideLoader();
		}
    });
}
