﻿// JScript File
var Kit = {
    params : null,
    craeteFloatingDiv : function( params , callback )
    {
      Kit.params = params;
      var prevFloatingDiv = $("floatingDiv");
      if(prevFloatingDiv) { this.closeDialog(); }
      
      if(!Kit.params.parent){ Kit.params.parent = document.body; } 
      
      var div = document.createElement("div");
      div.id = Kit.params.id;
      div.className = Kit.params.className;
      div.style.width = Kit.params.measures.width;
      div.style.height = Kit.params.measures.height;
      div.innerHTML = Kit.addOn.popUp( Kit.params );
      
      Kit.params.parent.appendChild(div);
      
      var floatingDiv = $("floatingDiv");
      Kit.addOn.centerElement(floatingDiv);
      
      if(callback) { callback(); }
    },
    
    closeDialog : function()
    {
       var prevFloatingDiv = $("floatingDiv");
       if(prevFloatingDiv) { prevFloatingDiv.parentNode.removeChild(prevFloatingDiv); }
    }
}



Kit.addOn = {
    centerElement : function ( element ) 
    { 
        var measures = Kit.params.measures;
    // First, determine how much the visitor has scrolled
        var Xwidth = measures.width, Yheight = measures.height;
        
        var scrolledX, scrolledY; 
        if( self.pageYOffset ) { 
        scrolledX = self.pageXOffset; 
        scrolledY = self.pageYOffset; 
        } else if( document.documentElement && document.documentElement.scrollTop ) { 
        scrolledX = document.documentElement.scrollLeft; 
        scrolledY = document.documentElement.scrollTop; 
        } else if( document.body ) { 
        scrolledX = document.body.scrollLeft; 
        scrolledY = document.body.scrollTop; 
        }

        // Next, determine the coordinates of the center of browser's window

        var centerX, centerY; 
        if( self.innerHeight ) { 
        centerX = self.innerWidth; 
        centerY = self.innerHeight; 
        } else if( document.documentElement && document.documentElement.clientHeight ) { 
        centerX = document.documentElement.clientWidth; 
        centerY = document.documentElement.clientHeight; 
        } else if( document.body ) { 
        centerX = document.body.clientWidth; 
        centerY = document.body.clientHeight; 
        }

        // Xwidth is the width of the div, Yheight is the height of the 
        // div passed as arguments to the function: 
        var leftOffset = scrolledX + (centerX - Xwidth) / 2; 
        var topOffset = scrolledY + (centerY - Yheight) / 2; 
        // The initial width and height of the div can be set in the 
        // style sheet with display:none; measures is passed as an argument to // the function 
        var o = element; 
        var r = o.style; 
        r.position='absolute'; 
        r.top = topOffset + 'px'; 
        r.left = leftOffset + 'px'; 
        r.display = "block"; 
    },
    
    popUp : function()
    {
        var title  = Kit.params.title;
        var body = Kit.params.body;
        var measures = Kit.params.measures;
        
        var html = this.buildPopUpHTML( measures );
        return Tools.stringFormat(html, title, body);
    },
    
    buildPopUpHTML : function()
    {
        var measures = Kit.params.measures;
        var width = (measures.width > 0) ? measures.width + "px" : "auto"; 
//        var height = (measures.height > 0) ? measures.height + "px" : "auto";
        var height = "auto";
        
        var bodyWrapStyle = 'width:' + height + ';height:' + width + 'px;';
        
        var buffer = new Array();
        
        buffer[buffer.length] = '<table cellpadding="0" cellspacing="0" class="popUp">';
        
        buffer[buffer.length] = '<tr>';
        buffer[buffer.length] = '<td class="border tl" style="' + include.addBackImage(p.core.img.POPUP_BORDER_TL) + '"></td>';
        buffer[buffer.length] = '<td class="border t" style="' + include.addBackImage(p.core.img.POPUP_BORDER_BACK) + '"></td>';
        buffer[buffer.length] = '<td class="border tr" style="' + include.addBackImage(p.core.img.POPUP_BORDER_TR) + '"></td>';
        buffer[buffer.length] = '</tr>';
        
        buffer[buffer.length] = '<tr>';
        buffer[buffer.length] = '<td class="border l" style="' + include.addBackImage(p.core.img.POPUP_BORDER_BACK) + '"></td>';
        buffer[buffer.length] = '<td class="bodyWrap" style="' + bodyWrapStyle + '">';
        if(Kit.params.closeButton) //close button
        {
            buffer[buffer.length] = '<div style="cursor:pointer;padding:5px;text-align:right;" onclick="Kit.closeDialog();">' + Kit.params.closeButton + '</div>'; //X
        }
        
        if(Kit.params.title != "") //Header
        {
            buffer[buffer.length] = '<div class="header">%1s</div>'; 
        }
        else
        {
            buffer[buffer.length] = '%1s';
        }
        
        buffer[buffer.length] = '<div class="body">%2s</div>';//Body
        if((Kit.params.dialog == null) || (Kit.params.dialog == true))
        {
            buffer[buffer.length] = '<div id="dialogMsg">&nbsp;</div>';
        }
        if((Kit.params.actions == null) || (Kit.params.actions == true))
        {
            buffer[buffer.length] = '<div class="action">';//Actions
            if(!Kit.params.menu)
            {
             buffer[buffer.length] = '<div class="button cancel" onclick="Kit.closeDialog();">' + db.zhResources.CANCEL_BUTTON + '</div>';
             buffer[buffer.length] = '<div class="button submit" onclick="' + Kit.params.action + '">' + db.zhResources.UPDATE_BUTTON + '</div>';
            }
            else
            {
                buffer[buffer.length] = Kit.params.menu;
            }
            buffer[buffer.length] = '</div>';
        }
        buffer[buffer.length] = '</td>';
        buffer[buffer.length] = '<td class="border r" style="' + include.addBackImage(p.core.img.POPUP_BORDER_BACK) + '"></td>';
        buffer[buffer.length] = '</tr>';

        buffer[buffer.length] = '<tr>';
        buffer[buffer.length] = '<td class="border bl" style="' + include.addBackImage(p.core.img.POPUP_BORDER_BL) + '"></td>';
        buffer[buffer.length] = '<td class="border b" style="' + include.addBackImage(p.core.img.POPUP_BORDER_BACK) + '"></td>';
        buffer[buffer.length] = '<td class="border br" style="' + include.addBackImage(p.core.img.POPUP_BORDER_BR) + '"></td>';
        buffer[buffer.length] = '</tr>';
        
        buffer[buffer.length] = '';
        buffer[buffer.length] = '';
        buffer[buffer.length] = '</table>';
        
        return buffer.join('');
    }
}
