﻿var outerLayout;
var pageLayout;
var centerLayout;
var contentLayout;
var contentBottomLayout;
var actionsHelpLayout;

var northHeight = 92;
var southHeight = 27;
var leftWidth;
var leftIsClosed;
var layoutHandlerURL;

function blockScreen() {
    $.blockUI({
        overlayCSS: {
            backgroundColor: '#000',
            opacity: 0
        },
        css: {
            top: ($(window).height() - 150) / 2 + 'px',
            left: ($(window).width() - 150) / 2 + 'px',
            border: '1px solid #697077',
            backgroundColor: '#EEEEEE',
            color: '#000',
            width: '150px',
            height: '150px'
        },
        message: $("#busyScreen")
    });
}

function unblockScreen() {
    if ($('#hdnMasterName').val() == 'MWS')
        renderMWSLayout();
    else
        renderDefaultLayout();

    $.unblockUI();
}

var resizeFlag = false;
var resizeTimer = null;

$(document).ready(function() {
    $(window).bind('resize', resizeLayout);
});

function resizeWidow() {

    if (resizeTimer) clearTimeout(resizeTimer);
    resizeTimer = setTimeout(resizeLayout, 200);

}

function resizeLayout() {


    if (resizeFlag)
        return;

    //alert(arguments.callee.caller);
    //debugger;
    if ($('#hdnMasterName').val() == 'MWS')
        renderMWSLayout();
    else
        renderDefaultLayout();


}


/*--- Render the Default.master layout ---*/
function renderDefaultLayout() {

    outerLayout = $('div.site_page').layout({
        north__paneSelector: ".header",
        center__paneSelector: ".center_def",
        south__paneSelector: ".footer",

        north__size: northHeight,
        north__resizable: false,
        north__togglerLength_open: 0,
        north__spacing_open: 0,
        north__resizerClass: "resizerHorizontal",

        center__size: 1000,

        south__size: southHeight,
        south__resizable: false,
        south__togglerLength_open: 0,
        south__spacing_open: 0,
        south__resizerClass: "resizerHorizontal",

        west__isHidden: true,
        east__isHidden: true,
        enableCursorHotkey: false
    });

    setDefBodyHeight();

    $('div.footer_bg').css({ zIndex: 0 });
    $('div.site_page').css({ zIndex: 1 });

}

function setDefBodyHeight() {
    var h1 = $('div.header').outerHeight(true);
    var h2 = $('div.workspaceInner').outerHeight(true);
    var h3 = $('div.footer').outerHeight(true);

    var h4 = $(window).height();

    var h5 = h1 + h2 + h3 + 15;

    var h6;

    if (h4 > h5) {
        h6 = h4;
        $('body').height(h4);
        $('body').css('overflow-y', 'hidden');
        $('html').css('overflow-y', 'hidden');
    }
    else {
        h6 = h5;
        $('body').height(h5);
        $('body').css('overflow-y', 'auto');
        $('html').css('overflow-y', 'auto');
    }

    $('form').css('overflow-y', 'hidden');

    resizeFlag = true;
    outerLayout.resizeAll();
    resizeFlag = false;

    var footer_bg = $('div.footer_bg');
    footer_bg.css({ zIndex: 0, top: h6 - 27 });

    $('div.site_page').css({ zIndex: 1 });
}

/*--- Render the MWS.master layout ---*/
function renderMWSLayout() {

    var resizerCursor = $.browser.msie ? "../Images/col-resize.cur" : "url(../Images/col-resize.cur) , pointer";

    outerLayout = $('div.site_page').layout({
        center__paneSelector: ".center_mws",
        west__paneSelector: ".left",
        east__paneSelector: ".right",
        north__paneSelector: ".header",
        south__paneSelector: ".footer",

        north__size: northHeight,
        north__resizable: false,
        north__togglerLength_open: 0,
        north__resizerClass: "resizerHorizontal",
        north__spacing_open: 0,

        south__size: southHeight,
        south__resizable: false,
        south__togglerLength_open: 0,
        south__spacing_open: 1,
        south__resizerClass: "resizerHorizontal",

        west__resizable: false,
        west__size: leftWidth,
        west__togglerLength_open: 0,
        west__spacing_open: 0,

        east__resizable: false,
        east__togglerLength_open: 0,
        east__spacing_open: 0,
        east__size: 5,
        enableCursorHotkey: false
    });

    $('div.left_top').css({ 'margin-left': 5 });
    $('div.left_bottom').css({ 'margin-left': 5 });

    centerLayout = $('div.center_mws').layout({
        north__paneSelector: ".sub_header",
        center__paneSelector: ".content",

        north__size: 30,
        north__resizable: false,
        north__togglerLength_open: 0,
        north__resizerClass: "resizerHorizontal",
        north__spacing_open: 0,

        center__size: "auto",
        center__resizable: false,
        center__togglerLength_open: 0,

        south__isHidden: true,
        west__isHidden: true,
        east__isHidden: true,
        enableCursorHotkey: false
    });



    contentLayout = $('div.content').layout({
        north__paneSelector: ".filters",
        center__paneSelector: "#workspace",

        north__size: 40,
        north__resizable: false,
        north__togglerLength_open: 0,
        north__spacing_open: 0,
        north__resizerClass: "resizerHorizontal",

        center__size: "auto",
        center__resizable: false,
        center__togglerLength_open: 0,

        south__isHidden: true,
        west__isHidden: true,
        east__isHidden: true,
        enableCursorHotkey: false
    });



    setMwsBodyHeight();

}

function setMwsBodyHeight() {
    resizeFlag = true;

    //debugger;
    var h0 = $('div.workspace').length > 0 ? $('div.workspace').outerHeight(true) : $('div.workspace2').outerHeight(true);
    var h1 = $('div.workspaceInner').outerHeight(true);
    var p = h0 - $('div.workspace').height();

    var withFilters = $('div.filters').length > 0 ? true : false;

    var h2 = $('div.filters').outerHeight(true);

    if (!withFilters)
        h2 = ($('div.workspace2').outerHeight(true) - $('div.workspace2').height());


    var h3 = $('div.sub_header').outerHeight(true);

    var h4 = $('div.header').outerHeight(true);
    var h5 = $('div.footer').outerHeight(true);

    var h6 = $('div.left_bottom').outerHeight(true);
    var h7 = $('div.left_top').outerHeight(true);

    var window_height = $(window).height();
    var window_width = $(window).width();
    var h9 = $('body').outerHeight(true);

    var offset = 0;
    if ($.browser.opera)
        offset = 0;
    else if ($.browser.webkit)
        offset = 7;

    var right_height = h4 + h3 + h2 + h1 + (withFilters?45:20) + /*  (h6 == null ? 65 : 45)  +*/h5 + offset;
    var left_height = h4 + h6 + h7 + h5 + 1;
    var content_height = Math.max(left_height, right_height);

    var actual_height = 0;

    if (window_height > content_height) {
        actual_height = window_height;
    }
    else {
        actual_height = content_height;
    }

    if (!withFilters) {
        $('body').height(actual_height - 27);
        $('div.site_page').height(actual_height /*+ 20*/);

    }
    else {
        $('body').height(actual_height);
    }


    if (outerLayout != null)
        outerLayout.resizeAll();

    if (centerLayout != null)
        centerLayout.resizeAll();

    if (contentLayout != null)
        contentLayout.resizeAll();


    var footer_bg = $('div.footer_bg');
    footer_bg.css({ zIndex: 0, top: $('div.site_page').height() - 27 });

    $('div.site_page').css({ zIndex: 1 });

    resizeFlag = false;
}


/*--- Save the MWS.master layout state ---*/
function saveLeftState() {
    if (outerLayout == null)
        return;


    var newLeftWidth = outerLayout.state.west.size;
    var newLeftIsClosed = outerLayout.state.west.isClosed;

    if (outerLayout.state != null && (leftWidth != newLeftWidth || leftIsClosed != newLeftIsClosed)) {
        //saveState(newLeftWidth, newLeftIsClosed);

        leftWidth = newLeftWidth;
        leftIsClosed = newLeftIsClosed;
    }
}

function saveState(p_leftWidth, p_leftIsClosed) {
    var result = $.ajax({
        url: layoutHandlerURL,
        type: "GET",
        data: 'leftWidth=' + p_leftWidth + "&leftIsClosed=" + p_leftIsClosed,
        cache: false,
        async: false
    }).responseText;
}



