
// Some vars to customize window:
var frame_paddingb = 0;
var titlebar_hb = 25;
var toolbar_hb = 8;
var statusbar_hb = 35;
var clientarea_marginb = 0;

// preload button images to ensure un-delayed image swapping    
var button_down_outsetb = new Image();
var button_down_insetb = new Image();
var button_up_outsetb = new Image();
var button_up_insetb = new Image();
button_down_outsetb.src = 'button_down_outset.gif';
button_down_insetb.src = 'button_down_inset.gif';
button_up_outsetb.src = 'button_up_outset.gif';
button_up_insetb.src = 'button_up_inset.gif';

// to save window height when window is minimized
var last_window_hb;


// initWindow() moves elements to their adequate locations
// and builds coherences between these elements by converting outer frame, client area and images for resize functionalities
// to 'childern' of the draggable titlebar 
function initWindowb()
{
    dd.elements.titlebarb.moveTo(dd.elements.frameb.x+2+frame_paddingb, dd.elements.frameb.y+2+frame_paddingb);
    dd.elements.titlebarb.addChild("frameb");
    dd.elements.titlebarb.setZ(dd.elements.frameb.z+1); // ensure that titlebar is floating above frame
    dd.elements.titlebarb.resizeTo(dd.elements.frameb.w-4-(frame_paddingb<<1), titlebar_hb);

    dd.elements.clientareab.moveTo(dd.elements.frameb.x+2+frame_paddingb+clientarea_marginb, dd.elements.titlebarb.y+titlebar_hb+toolbar_hb+clientarea_marginb);
    dd.elements.titlebarb.addChild("clientareab");
dd.elements.clientareab.resizeTo(dd.elements.frameb.w-4-(frame_paddingb<<1)-(clientarea_marginb<<1), dd.elements.frameb.h-titlebar_hb-toolbar_hb-statusbar_hb-4-(frame_paddingb<<1)-clientarea_marginb);

    dd.elements.resizehandleb.moveTo(dd.elements.frameb.x+dd.elements.frameb.w-dd.elements.resizehandleb.w-2, dd.elements.frameb.y+dd.elements.frameb.h-dd.elements.resizehandleb.h-2);
    dd.elements.resizebuttonb.moveTo(dd.elements.titlebarb.x+dd.elements.titlebarb.w-dd.elements.resizebuttonb.w-frame_paddingb-(titlebar_hb>>1)+Math.round(dd.elements.resizebuttonb.w/2), dd.elements.titlebarb.y+Math.round(titlebar_hb/2)-Math.round(dd.elements.resizebuttonb.h/2));
    dd.elements.titlebarb.addChild("resizebuttonb");
    dd.elements.titlebarb.addChild("resizehandleb");
    
    dd.elements.titlebarb.show();
}
initWindowb();


// my_PickFunc, my_DragFunc and my_DropFunc override their namesakes in wz_dragdrop.js
function my_PickFuncb()
{
    if (dd.obj.name == "resizebuttonb")
    {
        dd.obj.swapImage(dd.elements.clientareab.visible? button_up_insetb.src : button_down_insetb.src);
    }
}


function my_DragFuncb()
{
    if (dd.obj.name == "resizehandleb")
    {
        dd.elements.frameb.resizeTo(dd.obj.x-dd.elements.frameb.x+dd.obj.w+2, dd.obj.y-dd.elements.frameb.y+dd.obj.h+2);
        dd.elements.titlebarb.resizeTo(dd.obj.x-dd.elements.titlebarb.x+dd.obj.w-frame_paddingb, titlebar_hb);
        dd.elements.clientareab.resizeTo(dd.elements.frameb.w-4-(frame_paddingb<<1)-(clientarea_marginb<<1), dd.elements.frameb.h-titlebar_hb-toolbar_hb-statusbar_hb-4-(frame_paddingb<<1)-clientarea_marginb);
        dd.elements.resizebuttonb.moveTo(dd.elements.titlebarb.x+dd.elements.titlebarb.w-dd.elements.resizebuttonb.w-frame_paddingb-(titlebar_hb>>1)+Math.round(dd.elements.resizebuttonb.w/2), dd.elements.resizebuttonb.y);
    }
}


function my_DropFuncb()
{
    if (dd.obj.name == "resizebuttonb")
    {
        if (dd.elements.clientareab.visible)
        {
            dd.obj.swapImage(button_down_outsetb.src);
            dd.elements.clientareab.hide();
            dd.elements.resizehandleb.hide();
            last_window_hb = dd.elements.frameb.h;
            dd.elements.frameb.resizeTo(dd.elements.frameb.w, titlebar_hb+(frame_paddingb<<1)+4);
        }
        else
        {
            dd.obj.swapImage(button_up_outsetb.src);
            dd.elements.clientareab.show();
            dd.elements.resizehandleb.show();
            dd.elements.frameb.resizeTo(dd.elements.frameb.w, last_window_hb);
        }
    }
}