/**
 * @author jgt
 */

$(document).ready( function() {
	var m = null;
	m = getParameter("m");
	login();	
	listarRevistas( m );
});

function getParameter(parameter){
	/**
	 *  Obtiene la cadena completa de URL
	 */
	var url = location.href;
	/**
	 *  Obtiene la posicion donde se encuentra el signo ?, ahi es donde empiezan los parametros 
	 */
	var index = url.indexOf("?");
	/**
	 *  Obtiene la posicion donde termina el nombre del parametro e inicia el signo =
	 */
	index = url.indexOf(parameter,index) + parameter.length;
	/**
	 *  Verifica que efectivamente el valor en la posicion actual es el signo =
	 */
	if (url.charAt(index) == "=") {
		// Obtiene el valor del parametro
		var result = url.indexOf("&",index);
		if (result == -1){result=url.length;};
		// Despliega el valor del parametro
		valor = url.substring(index + 1,result);
		return valor;
	}
} 

/**
 *  Solicitar la lista de revistas 
 */
function listarRevistas( medio ) {
	params = "q=revistas";
	if (medio) params += "&m=" + medio;
    $("div.loading").show();
    $.ajax({
        type: "GET",
        url: "data.php",
        data: params,
        error: function(data){
			$("div.loading").hide();
            alert(data);
        },
        success: function(data){
			var obj = $("#cboRevistas");
            obj.empty();
            obj.append(data);
            $("div.loading").hide();
			mostrarHemeroteca( obj.val() );
        }
    });	

}

/**
 *  Solicitar la revista indicada en codMedio
 */
function mostrarRevista() {
	var codigo = $("#cboRevistas").val();
	if (codigo) mostrarHemeroteca(codigo);
}

/**
 *  Solicitar la hemeroteca de la revista indicada en codMedio
 */
function mostrarHemeroteca( codigo ) {
	var params = "q=hemeroteca" + "&m=" + codigo;
	
    $("div.loading").show();
    $.ajax({
        type: "GET",
        url: "data.php",
        data: params,
        error: function(data){
			$("div.loading").hide();
            alert(data);
        },
        success: function(data){
			var obj = $("#hemeroteca > div.bxContent");
            obj.empty();
            obj.append(data);
            $("div.loading").hide();
			mostrarBannersLateral( codigo );
			mostrarEdicion( codigo, null );
        }
    });	
}

/**
 *  Solicitar la banners de la revista indicada en codMedio
 */
function mostrarBannersLateral( codigo ) {
	var params = "q=bannersLateral" + "&m=" + codigo;
	
    $("div.loading").show();
    $.ajax({
        type: "GET",
        url: "data.php",
        data: params,
        error: function(data){
			$("div.loading").hide();
            alert(data);
        },
        success: function(data){
			var obj = $("#bannersLateral");
            obj.empty();
            obj.append(data);
            $("div.loading").hide();
			mostrarEdicion( codigo, null );
        }
    });	
}

/**
 *  Solicitar la edicion de la revista indicada en codigo
 */
function mostrarEdicion( codigo, edicion ) {

	var params = "q=edicion";
	if ( codigo ) params += "&m=" + codigo
	if ( edicion ) params += "&e=" + edicion

    $("div.loading").show();
    $.ajax({
        type: "GET",
        url: "data.php",
        data: params,
        error: function(data){
			$("div.loading").hide();
            alert(data);
        },
        success: function(data){
			var obj = $("#numRevista > div.bxContent");
			obj.empty();
			obj.append(data);
			$("div.loading").hide();
			var tEdicion = $("#tEdicion").text();
			$("#numRevista > h2.bxTitle").text( tEdicion );
        }
    });	
	
}

/**
 * Muestra el dialogo para que el usuario se autentique en la zona privada
 */
function mostrarLogin() {
	var params = "q=mostrarLogin";

    $("div.loading").show();
    $.ajax({
        type: "GET",
        url: "data.php",
        data: params,
        error: function(data){
			$("div.loading").hide();
            alert(data);
        },
        success: function(data){
			$("div.loading").hide();
			var box = dialogBox(data, 'Acceso privado');
			box.dialog('option', 'buttons', { "Aceptar": function() { $(this).dialog("close"); login(); } });
			box.dialog( 'open' );
        }
    });	
}

/**
 * Muestra el dialogo para que el usuario se autentique en la zona privada
 */
function login( codEdicion ) {
	var params = "q=login";
	var usuario = $("#txtLogin").val();
	var clave = $("#txtClave").val();
	if ( usuario ) params += "&u=" + usuario;
	if ( clave ) params += "&p=" + clave;

    $("div.loading").show();
    $.ajax({
        type: "GET",
        url: "data.php",
        data: params,
		async: false,
        error: function(data){
			$("div.loading").hide();
            alert(data);
        },
        success: function(data){
			$("div.loading").hide();
			var login = eval("(" + data + ")");
			if ( login.error ) {
				var box = dialogBox( login.msgHtml, 'Error en acceso privado' );
				box.dialog('option', 'buttons', { "Aceptar": function() { $(this).dialog("close"); } });
				box.dialog( 'open' );
			} else {
				$("#btnLogin").empty();
				$("#btnLogin").append( login.msgHtml );
				if ( login.ok && codEdicion ) descargar( codEdicion );				
			}
        }
    });	
}

/**
 * Muestra el dialogo para que el usuario se autentique en la zona privada
 */
function logout() {
	var params = "q=logout";

    $("div.loading").show();
    $.ajax({
        type: "GET",
        url: "data.php",
        data: params,
        error: function(data){
			$("div.loading").hide();
			var box = dialogBox( data, 'Error' );
			box.dialog('option', 'buttons', { "Aceptar": function() { $(this).dialog("close"); } });
			box.dialog( 'open' );
        },
        success: function(data){
			$("div.loading").hide();			
			$("#btnLogin").empty();
			$("#btnLogin").append( data );
        }
    });	
}

/**
 * Solicitar la hemeroteca de la revista indicada en codMedio
 * @param {Object} codigo
 */
function descargar( codigo ) {

	var params = "q=descargar";
	if ( codigo ) params += "&i=" + codigo

    $("div.loading").show();
    $.ajax({
        type: "GET",
        url: "data.php",
        data: params,
        error: function(data){
			$("div.loading").hide();
			var box = dialogBox( data, 'Error en descarga' );
			box.dialog('option', 'buttons', { "Aceptar": function() { $(this).dialog("close"); } });
			box.dialog( 'open' );
        },
        success: function(data){
			$("div.loading").hide();
			var descarga = eval("(" + data + ")");
			if ( descarga.error ) {
				var box = dialogBox( descarga.strHtml, 'Error en descarga' );
				box.dialog('option', 'buttons', { "Aceptar": function() { $(this).dialog("close"); } });
			} else {
				if ( descarga.notLogged ) {
					var box = dialogBox( descarga.strHtml, 'Descarga privada' );
					box.dialog('option', 'buttons', { "Acceder": function() { $(this).dialog("close"); login( codigo ); } });
				} else {
					var box = dialogBox( descarga.strHtml, 'Descarga' );
				}				
			}
			box.dialog( 'open' );
        }
    });	

}


function dialogBox( content, titulo ) {
	$("#dialog").remove();
	$("body").append('<div id="dialog" style="width: 320px; overflow: hidden; ">' + content + '</div>');

	var box = $("#dialog");
	box.dialog({
		autoOpen: false,
		title: titulo,
		bgiframe: true,
		modal: true,
		resizable: false,
		width: 320
	});
	return box;	
}
function closeDialogBox() {
	$("#dialog").dialog("close");
}

