// JScript source code
$(document).ready(pageReady);

function pageReady() {
    /// <summary>Executa a inicialização da página principal</summary>
    
    // -----------------------------------------------------------------------------------------------------------------
    // Define as funções associadas aos eventos do menu
    // -----------------------------------------------------------------------------------------------------------------
    $(".submenu-text").click(Selection);
    $("#main_menu * .menu-text:not(.submenu-text)").filter("[pagename]").click(CloseSubmenu).click(Selection).end().not("[pagename]").click(SubMenu);
    // -----------------------------------------------------------------------------------------------------------------

    window.setTimeout(switchInfo, 15000);

}

function switchInfo() {
//    $("#browserInfo").fadeOut(5000).$("#newsInfo").fadeIn(5000).delay(8000).$("#newsInfo").fadeOut(5000).$("#newsImg").fadeIn(5000);

    $("#browserInfo").fadeOut(5000,
        function() {
            $("#newsInfo").fadeIn(5000,
                function() {
                    $("#newsInfo").delay(15000).fadeOut(5000,
                        function() {
                            $("#newsImg").fadeIn(5000);
                        }
                    );
                }
            );
        }
    );
}

//----------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------
function Selection(event){
    /// <summary>Substitui a página apresentada no elemento frame<summary>
    /// <param name="event" type="Object" optional="false", mayBeNull="false">Objecto com as propriedades do evento (jQuery)</param>
    
    var $menuItem = $(this);
    var pageName = $menuItem.attr("pagename");
    var ext = "aspx";
    var lang = $("#language").val() || "";

    if (pageName === undefined)
        pageName = "underConstruction";
    else {
        var v = pageName.split(".");
        ext = v.pop();
        pageName = v.join(".");
    }

    $("#pageTitle").text($menuItem.text()).attr("key", $menuItem.attr("key"));
    $("#pageframe").attr("src", pageName + "." + lang + "." + ext);
}
//----------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------
function SubMenu(event) {
    /// <summary>Abre um submenu e fecha o submenu anterior se algum se encontrar aberto<summary>
    /// <param name="event" type="Object" optional="false", mayBeNull="false">Objecto com as propriedades do evento (jQuery)</param>

    var $submenuDomElement = $("#" + this.id + "_items");
    var display = $submenuDomElement.css("display");
    CloseSubmenu(event);

    if (display === "none")
        $submenuDomElement.css("display", "block").attr("open", true);
}
//----------------------------------------------------------------------------------------------------------------------
// Fecha o submenu assinalado como aberto
//----------------------------------------------------------------------------------------------------------------------
function CloseSubmenu(event) {
    /// <summary>Abre um submenu e fecha o submenu anterior se algum se encontrar aberto<summary>
    /// <param name="event" type="Object" optional="false", mayBeNull="false">Objecto com as propriedades do evento (jQuery)</param>
    $("[open = true]").attr("open", false).css("display", "none");
}

//----------------------------------------------------------------------------------------------------------------------------------
//  Abre uma form de acordo com a lingua selecionada
//----------------------------------------------------------------------------------------------------------------------------------
    function openForm(name,ext){
//        var sCulture = "." + document.getElementById("language").value;
//        var sName=name + sCulture + ext;
        if(ext === ".doc")
            location.replace(sName);
        else
            open(sName);
    }

//----------------------------------------------------------------------------------------------------------------------------------
//  Abre a pagina do sistema de registo online
//----------------------------------------------------------------------------------------------------------------------------------
//    function openRegistration() {
//        window.open("RegClosed.aspx",null,"width=585,height=500,top=150,left=100,status=no,directories=no,location=no,menubar=no,resizable=yes,titlebar=no,toolbar=no");
//        window.open("https://www.licom.pt/amforht/registration/OnlineReg.asp",null,"width=585,height=500,top=150,left=100,status=no,directories=no,location=no,menubar=no,resizable=yes,titlebar=no,toolbar=no");
//    }

//----------------------------------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------------------------------
function changeCulture() {
    /// <summary>Efectua um pedido assincrono a fim de obter o conteudo da página na lingua selecionada<summary>
    $.ajaxSetup({ error: requestError });
    $.post("ChangeCulture.aspx", "culture=" + $("#language").val(), cultureCallback, "text");
}
//----------------------------------------------------------------------------------------------------------------------------------
//  Recebe e coloca na página o seu conteudo de acordo com a lingua selecionada
//----------------------------------------------------------------------------------------------------------------------------------
function cultureCallback(result, status, request) {
    /// <summary>Altera o conteudo da página para a lingua selecionada<summary>
    /// <param name="result" type="String" optional="false", mayBeNull="false">Objecto em formato json com o conteudo da página</param>
    /// <param name="status" type="String" optional="false", mayBeNull="false">Resultado do pedido efectuado</param>
    /// <param name="request" type="Object" optional="false", mayBeNull="false">Objecto XMLHttpRequest</param>
 
    if (status === "success") {
        try {
            var collection = eval("(" + result + ")");
            $("[key]").text(function() { return collection[$(this).attr("key")]; });
            var $frame = $("#pageframe");
            var pageName = $("#pageframe").attr("source");
            $("#pageframe").attr("src", function(index) {
                var vector = $(this).attr("src").split(".");
                vector[1] = $("#language").val();
                var newPageName = vector.join(".");
                return newPageName;
            });
        }
        catch (e) {
            alert("Inconsistent data retrived from server");
        }
    }
}    
function requestError(request,errorType,exception){
    /// <summary>Gere a existencia de um pedido falhado do conteudo da página numa determinada língua<summary>
    /// <param name="request" type="Object" optional="false", mayBeNull="false">Objecto XMLHttpRequest</param>
    /// <param name="errorType" type="String" optional="false", mayBeNull="false">Descrição do tipo do erro</param>
    /// <param name="exception" type="Object" optional="true", mayBeNull="false">Objecto erro</param>
    alert("Error retriving new data from server");
}
