/**
 * Obtem a área defina como principal para navegação nas áreas do website
 *
 * @author MNDeployer
 * @version 1.0
 * @since 0.01
 */
Mn.Base.Nav.getAreaDefault = function(){
    return this._areaDefault;
}

/**
 * Obtem o url do site
 *
 * @author MNDeployer
 * @version 1.0
 * @since 0.01
 */
Mn.Base.Nav.getBaseUrl = function(){
    return this._baseUrl;
}

/**
 * Navega para uma determinada área
 *
 * @author MNDeployer
 * @version 2.0
 * @since 0.01
 * 
 * @param {String} url
 * @param {Function} callback_before_send
 * @param {Function} callback_complete
 * @param {Function} callback_success
 * @param {Function} callback_error
 */
Mn.Base.Nav.carregaArea = function(url, callback_before_send, callback_complete, callback_success, callback_error){

    //nome da área a carregar
    var area_carregar = Mn.Base.Utils.ltrim(url, '/');

    if(area_carregar != undefined && area_carregar != ''){
        //constroi o url que irá invocar [URL se forem utilizados idiomas]
        var url_aux = Mn.Base.Nav.getBaseUrl() + Mn.Base.Utils.rtrim(Mn.Base.getIdioma(), '/') + '/' + area_carregar;      
        //objecto no qual deverão ser carregados os conteúdos
        var container_area = Mn.Base.Nav.getAreaDefault();
        //processa o pedido ajax
        $.ajax({
            url: url_aux,
            cache: true,
            beforeSend: function(data){
                if($.isFunction(callback_before_send)){
                    callback_before_send(data);
                }
                //coloca um overlay sobre o elemento a carregar
                $(container_area).mask('');
            },
            complete: function(){
                if($.isFunction(callback_complete)){
                    callback_complete();
                }
                //elimina o overlay do elemento
                $(container_area).unmask();
            },
            success: function(data) {
                //coloca os conteúdos no respectivo container
                $(container_area).html(data);
                //obtem o título actual da página
                var titulo = $.address.title().split('-');
                //verifica se existe um subtitulo definido para a página a carregar via ajax
                var sub_titulo = $(container_area).html(data).find('.titulo_pagina').text();

                //assiga o subtitulo caso exista
                if(sub_titulo != ''){
                    $.address.title(titulo[0] + ' - ' + sub_titulo);
                }
                else{
                    $.address.title(titulo[0]);
                }
                if($.isFunction(callback_success)){
                    callback_success(data, sub_titulo);
                }
            },
            error: function(){
                if($.isFunction(callback_error)){
                    callback_error();
                }
            }
        });
    }
}
