
var frame_paddingc = 0;
var titlebar_hc = 25;
var toolbar_hc = 8;
var statusbar_hc = 35;
var clientarea_marginc = 0;

// preload button images to ensure un-delayed image swapping    
var button_down_outsetc = new Image();
var button_down_insetc = new Image();
var button_up_outsetc = new Image();
var button_up_insetc = new Image();
button_down_outsetc.src = 'button_down_outset.gif';
button_down_insetc.src = 'button_down_inset.gif';
button_up_outsetc.src = 'button_up_outset.gif';
button_up_insetc.src = 'button_up_inset.gif';

// to save window height when window is minimized
var last_window_hc;


// 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 initWindowc()
{
    dd.elements.titlebarc.moveTo(dd.elements.framec.x+2+frame_paddingc, dd.elements.framec.y+2+frame_paddingc);
    dd.elements.titlebarc.addChild("framec");
    dd.elements.titlebarc.setZ(dd.elements.framec.z+1); // ensure that titlebar is floating above frame
    dd.elements.titlebarc.resizeTo(dd.elements.framec.w-4-(frame_paddingc<<1), titlebar_hc);

    dd.elements.clientareac.moveTo(dd.elements.framec.x+2+frame_paddingc+clientarea_marginc, dd.elements.titlebarc.y+titlebar_hc+toolbar_hc+clientarea_marginc);
    dd.elements.titlebarc.addChild("clientareac");
dd.elements.clientareac.resizeTo(dd.elements.framec.w-4-(frame_paddingc<<1)-(clientarea_marginc<<1), dd.elements.framec.h-titlebar_hc-toolbar_hc-statusbar_hc-4-(frame_paddingc<<1)-clientarea_marginc);

    dd.elements.resizehandlec.moveTo(dd.elements.framec.x+dd.elements.framec.w-dd.elements.resizehandlec.w-2, dd.elements.framec.y+dd.elements.framec.h-dd.elements.resizehandlec.h-2);
    dd.elements.resizebuttonc.moveTo(dd.elements.titlebarc.x+dd.elements.titlebarc.w-dd.elements.resizebuttonc.w-frame_paddingc-(titlebar_hc>>1)+Math.round(dd.elements.resizebuttonc.w/2), dd.elements.titlebarc.y+Math.round(titlebar_hc/2)-Math.round(dd.elements.resizebuttonc.h/2));
    dd.elements.titlebarc.addChild("resizebuttonc");
    dd.elements.titlebarc.addChild("resizehandlec");
    
    dd.elements.titlebarc.show();
}
initWindowc();


// my_PickFunc, my_DragFunc and my_DropFunc override their namesakes in wz_dragdrop.js
function my_PickFuncc()
{
    if (dd.obj.name == "resizebuttonc")
    {
        dd.obj.swapImage(dd.elements.clientareac.visible? button_up_insetc.src : button_down_insetc.src);
    }
}


function my_DragFuncc()
{
    if (dd.obj.name == "resizehandlec")
    {
        dd.elements.framec.resizeTo(dd.obj.x-dd.elements.framec.x+dd.obj.w+2, dd.obj.y-dd.elements.framec.y+dd.obj.h+2);
        dd.elements.titlebarc.resizeTo(dd.obj.x-dd.elements.titlebarc.x+dd.obj.w-frame_paddingc, titlebar_hc);
        dd.elements.clientareac.resizeTo(dd.elements.framec.w-4-(frame_paddingc<<1)-(clientarea_marginc<<1), dd.elements.framec.h-titlebar_hc-toolbar_hc-statusbar_hc-4-(frame_paddingc<<1)-clientarea_marginc);
        dd.elements.resizebuttonc.moveTo(dd.elements.titlebarc.x+dd.elements.titlebarc.w-dd.elements.resizebuttonc.w-frame_paddingc-(titlebar_hc>>1)+Math.round(dd.elements.resizebuttonc.w/2), dd.elements.resizebuttonc.y);
    }
}


function my_DropFuncc()
{
    if (dd.obj.name == "resizebuttonc")
    {
        if (dd.elements.clientareac.visible)
        {
            dd.obj.swapImage(button_down_outsetc.src);
            dd.elements.clientareac.hide();
            dd.elements.resizehandlec.hide();
            last_window_hc = dd.elements.framec.h;
            dd.elements.framec.resizeTo(dd.elements.framec.w, titlebar_hc+(frame_paddingc<<1)+4);
        }
        else
        {
            dd.obj.swapImage(button_up_outsetc.src);
            dd.elements.clientareac.show();
            dd.elements.resizehandlec.show();
            dd.elements.framec.resizeTo(dd.elements.framec.w, last_window_hc);
        }
    }
}
