﻿    // Some vars to customize window:
    var frame_padding = 0;
    var titlebar_h = 19;
    var toolbar_h = 20;
    var statusbar_h = 20;
    var clientarea_margin = 4;
    var isload = false;
    var id_timer;

    // preload button images to ensure un-delayed image swapping    
//    var button_down_outset = new Image();
//    var button_down_inset = new Image();
//    var button_up_outset = new Image();
//    var button_up_inset = new Image();
//    button_down_outset.src = '../_img/common/button_down_outset.gif';
//    button_down_inset.src = '../_img/common/button_down_inset.gif';
//    button_up_outset.src = '../_img/common/button_up_outset.gif';
//    button_up_inset.src = '../_img/common/button_up_inset.gif';
    
    // to save window height when window is minimized
    var last_window_h;
     
    function ShowHelpPopup(helpid) {
            HelpService.GetHelp(helpid,OnGetHelpPopup);
    }
    
    function OnGetHelpPopup(result, userContext, methodName)
    {
        var itemhelp = result;
        dd.elements.frame_popup.resizeTo(itemhelp.Width, itemhelp.Height);
               
        if (!isload)
            initWindow();
        else
            showPopup();
       
        document.getElementById("titlebartext_popup").innerHTML = itemhelp.Title;
        document.getElementById("clientarea_popup").innerHTML = itemhelp.Text;            
    }   
    
    // 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 initWindow()
    {
        var page_width = dd.getWndW();
        var x = (page_width-dd.elements.frame_popup.w);
        var y = dd.getScrollY();
            
        dd.elements.frame_popup.moveTo(x,y);
        dd.elements.titlebar_popup.moveTo(x+2+frame_padding, y+2+frame_padding);
        dd.elements.titlebar_popup.addChild("frame_popup");
        dd.elements.titlebar_popup.setZ(dd.elements.frame_popup.z+1); // ensure that titlebar is floating above frame
        dd.elements.titlebar_popup.resizeTo(dd.elements.frame_popup.w-4-(frame_padding<<1), titlebar_h);

        dd.elements.clientarea_popup.moveTo(x+frame_padding+clientarea_margin, dd.elements.titlebar_popup.y+titlebar_h+clientarea_margin);
        dd.elements.titlebar_popup.addChild("clientarea_popup");
        dd.elements.clientarea_popup.resizeTo(dd.elements.frame_popup.w-(frame_padding<<1)-(clientarea_margin<<1), dd.elements.frame_popup.h-titlebar_h-toolbar_h);
        
        if (dd.ie)
            dd.elements.resizehandle_popup.moveTo(x+dd.elements.frame_popup.w-dd.elements.resizehandle_popup.w, y+dd.elements.frame_popup.h-dd.elements.resizehandle_popup.h);
        else
            dd.elements.resizehandle_popup.moveTo(x+dd.elements.frame_popup.w-dd.elements.resizehandle_popup.w, y+dd.elements.frame_popup.h-dd.elements.resizehandle_popup.h);
        
        dd.elements.resizebutton_popup.moveTo(dd.elements.titlebar_popup.x+dd.elements.titlebar_popup.w-dd.elements.resizebutton_popup.w-frame_padding-(titlebar_h>>1)+Math.round(dd.elements.resizebutton_popup.w/2), dd.elements.titlebar_popup.y+2);
        dd.elements.closebutton_popup.moveTo(4+dd.elements.closebutton_popup.w+dd.elements.titlebar_popup.x-dd.elements.resizebutton_popup.w-(titlebar_h>>1)+Math.round(dd.elements.resizebutton_popup.w/2), dd.elements.titlebar_popup.y+2);
        
        dd.elements.titlebar_popup.addChild("resizebutton_popup");
        dd.elements.titlebar_popup.addChild("resizehandle_popup");
        dd.elements.titlebar_popup.addChild("closebutton_popup");
      
        isload = true;
        showPopup();        
    }
    
    function showPopup()
    {
        id_timer = setInterval('div_Scroll()',10);
        dd.elements.titlebar_popup.show();
        dd.elements.closebutton_popup.show();        
    }
    
    function hidePopup()
    {
        dd.elements.titlebar_popup.hide();
        clearInterval(id_timer);
    }
    
    function div_Scroll()
    {
        dd.elements.titlebar_popup.moveTo(dd.elements.titlebar_popup.x,dd.getScrollY());
    }

    // my_PickFunc, my_DragFunc and my_DropFunc override their namesakes in wz_dragdrop.js
    function my_PickFunc()
    {
        if (dd.obj.name == "resizebutton_popup")
        {
            //dd.obj.swapImage(dd.elements.clientarea_popup.visible? button_up_inset.src : button_down_inset.src);
        }
        if (dd.obj.name == "closebutton_popup")
        {
            hidePopup();
        }
    }


    function my_DragFunc()
    {
        var page_width = dd.getWndW();
        var x = (page_width-dd.elements.frame_popup.w);
        if (dd.obj.name == "resizehandle_popup")
        {
            dd.elements.frame_popup.resizeTo(dd.obj.x-dd.elements.frame_popup.x+dd.obj.w+2, dd.obj.y-dd.elements.frame_popup.y+dd.obj.h+2);
            dd.elements.titlebar_popup.resizeTo(dd.obj.x-dd.elements.titlebar_popup.x+dd.obj.w-frame_padding, titlebar_h);
            dd.elements.clientarea_popup.resizeTo(dd.elements.frame_popup.w-(frame_padding<<1)-(clientarea_margin<<1), dd.elements.frame_popup.h-titlebar_h-toolbar_h);
            dd.elements.resizebutton_popup.moveTo(dd.elements.titlebar_popup.x+dd.elements.titlebar_popup.w-dd.elements.resizebutton_popup.w-frame_padding-(titlebar_h>>1)+Math.round(dd.elements.resizebutton_popup.w/2), dd.elements.titlebar_popup.y+2);
            dd.elements.closebutton_popup.moveTo(4+dd.elements.closebutton_popup.w+dd.elements.titlebar_popup.x-dd.elements.resizebutton_popup.w-(titlebar_h>>1)+Math.round(dd.elements.resizebutton_popup.w/2),dd.elements.titlebar_popup.y+2);
        }
    }


    function my_DropFunc()
    {
        if (dd.obj.name == "resizebutton_popup")
        {
            if (dd.elements.clientarea_popup.visible)
            {
                //dd.obj.swapImage(button_down_outset.src);
                dd.elements.clientarea_popup.hide();
                dd.elements.resizehandle_popup.hide();
                last_window_h = dd.elements.frame_popup.h;
                dd.elements.frame_popup.resizeTo(dd.elements.frame_popup.w, titlebar_h+(frame_padding<<1)+4);
            }
            else
            {
                //dd.obj.swapImage(button_up_outset.src);
                dd.elements.clientarea_popup.show();
                dd.elements.resizehandle_popup.show();
                dd.elements.frame_popup.resizeTo(dd.elements.frame_popup.w, last_window_h);
            }
        }
    } 

