document.location.get_real = function(inc_sript) {
    var d_url = '/user/interface';
    var expr = /#?(\/[^\/]+\.php)?(\/[^$]*)?$/;
    var m = this.hash ? this.hash.match(expr) : this.pathname.match(expr);
    return !m ? d_url : ( (inc_sript && m[1]) ? m[1] : '' ) + (m[2] || d_url);
}

PageLoader = {
    is_loading: false
}

Overlay = {
    show: function() {
        $('#loading-overlay').height($(document).height());
        $('#loading-overlay').show();
    },
    hide: function() {
        $('#loading-overlay').hide();
    }
}

Loader = {
    show: function() {
        $('#page_loading').show();
        Overlay.show();
    },
    hide: function() {
        $('#page_loading').hide();
        Overlay.hide();
    }
}


$.fn.showPopup = function (options) {
    options = $.extend({
       title: '',
       html: '',
       pure: false,
       url: false,
       hide_prev_popup: true,
       auto_ajax_link: false,
       data: {}
    }, options || {});

    if(options.hide_prev_popup){
        $('#popup_holder_div').remove();
    }

    var holder = $('#popup_holder_div');
    if (!holder[0]) {
        holder = document.createElement('div');
        holder.id = 'popup_holder_div';
        holder = $(holder);
        $('#sub_box').prepend(holder);
    }

    if(options.url){
        $.fn.ajaxLink({
            url: options.url,
            data : options.data,
            success: function(html) {
                options.url = false;
                options.data = {};
                options.html = html;
                $.fn.showPopup(options);
                PageLoader.is_loading = false;
            }
        });
        return;
    }
    
    if(!options.pure){
        options.html = '<div id="popup_window" class="popupDetailWraper">'
        +'<div class="popupDetail">'
            +'<div class="content">'
                +'<h2>'+options.title+'</h2>'
                +'<div class="popupDetailClose">'
                    +'<a href="#" onclick="$(\'.popupDetailWraper\').remove();Overlay.hide();return false;"><img src="/i/user/pdClose.gif" alt=""/></a>'
                +'</div>'
                +options.html
             +'</div><del>&nbsp;</del>'
            +'</div>'
        +'</div>';
    }

    holder.html(options.html);
    if(options.auto_ajax_link){
        var def_onclick = function(){
            $('.popupDetailWraper').remove();
            Overlay.hide();
            $(this).ajaxLink();
            return false;
        }

        holder.find('a').each(function(){
            if ( this.onclick ) return;
            this.onclick = def_onclick;
        });
    }
    Loader.hide();
    Overlay.show();
    var j_data_div = $('.popupDetailWraper');
    var top_offset = ($(window).height() - j_data_div.height()) / 2;
    if (top_offset < 0) {top_offset = 0}
    if ($(window).height() > j_data_div.height()) {
        j_data_div.css({'top' : top_offset});
    } else {
        j_data_div.css({'position' : 'absolute', 'top' : ( top_offset + $(document).scrollTop() )});
    }
}

$.fn.showErrorPopup = function(text) {
    $.fn.showPopup({
        title:'Ошибка',
        html: text ? text : 'При загрузке страницы произошла ошибка.<br/>Попробуйте еще раз.<br/>Если ошибка будет повторяться, пожалуйста, обратитесь к администраторам.'
    });
}

