﻿//Content: http://agile.vn
//Author:		<HongHV>
//Email:honghv@agile.vn


var enableCache=false;
var jsCache=new Array();
var htmlLoadingImage ="<div align=center style='width:500px;'><img src='../css-Js/img/loading.gif' border=0/>Đang tải dữ liệu...</div>";
var dynamicContent_ajaxObjects=new Array();


function ajax_showContent(divId,ajaxIndex,url)
{
    var targetObj=document.getElementById(divId);    
    targetObj.innerHTML=dynamicContent_ajaxObjects[ajaxIndex].response;
    if(enableCache)
    {
        jsCache[url]=dynamicContent_ajaxObjects[ajaxIndex].response;
    };
    dynamicContent_ajaxObjects[ajaxIndex]=false;
    ajax_parseJs(targetObj);
};
function ajax_loadContent(divId,url)
{
    if(enableCache&&jsCache[url])
    {
        document.getElementById(divId).innerHTML=jsCache[url];
        return;
    };
    
    var ajaxIndex=dynamicContent_ajaxObjects.length;
    //document.getElementById(divId).innerHTML='<div align=center>Loading content - please wait...</div>'
    document.getElementById(divId).innerHTML= htmlLoadingImage;
    dynamicContent_ajaxObjects[ajaxIndex]=new sack();
    dynamicContent_ajaxObjects[ajaxIndex].requestFile=url;
    dynamicContent_ajaxObjects[ajaxIndex].onCompletion=function(){ajax_showContent(divId,ajaxIndex,url);};
    dynamicContent_ajaxObjects[ajaxIndex].runAJAX();
};
function ajax_parseJs(obj)
{
    var scriptTags=obj.getElementsByTagName('SCRIPT');
    var string='';
    var jsCode='';
    for(var no=0;no<scriptTags.length;no++)
    {
        if(scriptTags[no].src)
        {
            var head=document.getElementsByTagName("head")[0];
            var scriptObj=document.createElement("script");
            scriptObj.setAttribute("type","text/javascript");
            scriptObj.setAttribute("src",scriptTags[no].src);
        }
        else
        {
            if(navigator.userAgent.indexOf('Opera')>=0)
            {
                jsCode=jsCode+scriptTags[no].text+'\n';
            }
            else
            {
                jsCode=jsCode+scriptTags[no].innerHTML;
            }
        }
    }
    if(jsCode)
    {
        ajax_installScript(jsCode);
    }
};
function ajax_installScript(script)
{
    if(!script)
        return;
    if(window.execScript)
    {
        window.execScript(script);
    }
    else
    {
        try
        {
            if(window.jQuery&&jQuery.browser.safari)
            {
                window.setTimeout(script,0);
            }
            else
            {
                window.setTimeout(script,0);
            }
        }
        catch(ex)
        {
            eval(script);
        }
        
    }
}


// JScript File modal-message

DHTML_modalMessage=function()
{
    var url;
    var htmlOfModalMessage;
    var divs_transparentDiv;
    var divs_content;
    var iframe;
    var layoutCss;
    var width;
    var height;
    var existingBodyOverFlowStyle;
    var dynContentObj;
    var cssClassOfMessageBox;
    var shadowDivVisible;
    var shadowOffset;
    var MSIE;
    this.url='';
    this.htmlOfModalMessage='';
    this.layoutCss='modal-message.css';
    this.height=200;
    this.width=400;
    this.cssClassOfMessageBox=false;
    this.shadowDivVisible=true;
    this.shadowOffset=5;
    this.MSIE=false;
    if(navigator.userAgent.indexOf('MSIE')>=0)
    this.MSIE=true;
};
    DHTML_modalMessage.prototype={
    setSource : function(urlOfSource){
    this.url=urlOfSource;}
    ,
    setHtmlContent : function(newHtmlContent){
    this.htmlOfModalMessage=newHtmlContent;}
    ,
    setSize : function(width,height){
    if(width)this.width=width;
    if(height)this.height=height;}
    ,
    setCssClassMessageBox : function(newCssClass){
    this.cssClassOfMessageBox=newCssClass;
    if(this.divs_content){
    if(this.cssClassOfMessageBox)
    this.divs_content.className=this.cssClassOfMessageBox;
    else
    this.divs_content.className='modalDialog_contentDiv';}}
    ,
    setShadowOffset : function(newShadowOffset){
    this.shadowOffset=newShadowOffset;}
    ,
    display : function(){
    if(!this.divs_transparentDiv){
    this.__createDivs();}
    this.divs_transparentDiv.style.display='block';
    this.divs_content.style.display='block';
    this.divs_shadow.style.display='block';
    if(this.MSIE)this.iframe.style.display='block';
    this.__resizeDivs();
    window.refToThisModalBoxObj=this;
    setTimeout('window.refToThisModalBoxObj.__resizeDivs()',150);
    this.__insertContent();}
    ,
    setShadowDivVisible : function(visible){
    this.shadowDivVisible=visible;}
    ,
    close : function(){
    this.divs_transparentDiv.style.display='none';
    this.divs_content.style.display='none';
    this.divs_shadow.style.display='none';
    if(this.MSIE)this.iframe.style.display='none';}
    ,
    addEvent : function(whichObject,eventType,functionName,suffix){
    if(!suffix)suffix='';
    if(whichObject.attachEvent){
    whichObject['e'+eventType+functionName+suffix]=functionName;
    whichObject[eventType+functionName+suffix]=function(){whichObject['e'+eventType+functionName+suffix](window.event);};
    whichObject.attachEvent('on'+eventType,whichObject[eventType+functionName+suffix]);
    }else
    whichObject.addEventListener(eventType,functionName,false);}
    ,
    __createDivs : function(){
    this.divs_transparentDiv=document.createElement('DIV');
    this.divs_transparentDiv.className='modalDialog_transparentDivs';
    this.divs_transparentDiv.style.left='0px';
    this.divs_transparentDiv.style.top='0px';
    document.body.appendChild(this.divs_transparentDiv);
    this.divs_content=document.createElement('DIV');
    this.divs_content.className='modalDialog_contentDiv';
    this.divs_content.id='DHTMLSuite_modalBox_contentDiv';
    this.divs_content.style.zIndex=100000;
    if(this.MSIE){
    this.iframe=document.createElement('<IFRAME src="about:blank" frameborder=0>');
    this.iframe.style.zIndex=90000;
    this.iframe.style.position='absolute';
    document.body.appendChild(this.iframe);};
    document.body.appendChild(this.divs_content);
    this.divs_shadow=document.createElement('DIV');
    this.divs_shadow.className='modalDialog_contentDiv_shadow';
    this.divs_shadow.style.zIndex=95000;
    document.body.appendChild(this.divs_shadow);
    window.refToModMessage=this;
    this.addEvent(window,'scroll',function(e){window.refToModMessage.__repositionTransparentDiv()});
    this.addEvent(window,'resize',function(e){window.refToModMessage.__repositionTransparentDiv()});}
    ,
    __getBrowserSize : function(){
    var bodyWidth=document.documentElement.clientWidth;
    var bodyHeight=document.documentElement.clientHeight;
    var bodyWidth,bodyHeight;
    if(self.innerHeight){
    bodyWidth=self.innerWidth;
    bodyHeight=self.innerHeight;
    }else if(document.documentElement&&document.documentElement.clientHeight){
    bodyWidth=document.documentElement.clientWidth;
    bodyHeight=document.documentElement.clientHeight;
    }else if(document.body){
    bodyWidth=document.body.clientWidth;
    bodyHeight=document.body.clientHeight;};
    return [bodyWidth,bodyHeight];}
    ,
    __resizeDivs : function(){
    var topOffset=Math.max(document.body.scrollTop,document.documentElement.scrollTop);
    if(this.cssClassOfMessageBox)
    this.divs_content.className=this.cssClassOfMessageBox;
    else
    this.divs_content.className='modalDialog_contentDiv';
    if(!this.divs_transparentDiv)return;
    var st=Math.max(document.body.scrollTop,document.documentElement.scrollTop);
    var sl=Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
    window.scrollTo(sl,st);
    setTimeout('window.scrollTo('+sl+','+st+');',10);
    this.__repositionTransparentDiv();
    var brSize=this.__getBrowserSize();
    var bodyWidth=brSize[0];
    var bodyHeight=brSize[1];
    this.divs_content.style.width=this.width+'px';
    this.divs_content.style.height=this.height+'px';
    var tmpWidth=this.divs_content.offsetWidth;
    var tmpHeight=this.divs_content.offsetHeight;
    this.divs_content.style.left=Math.ceil((bodyWidth-tmpWidth)/2)+'px';
    this.divs_content.style.top=(Math.ceil((bodyHeight-tmpHeight)/2)+topOffset)+'px';
    if(this.MSIE){
    this.iframe.style.left=this.divs_content.style.left;
    this.iframe.style.top=this.divs_content.style.top;
    this.iframe.style.width=this.divs_content.style.width;
    this.iframe.style.height=this.divs_content.style.height;};
    this.divs_shadow.style.left=(this.divs_content.style.left.replace('px','')/1+this.shadowOffset)+'px';
    this.divs_shadow.style.top=(this.divs_content.style.top.replace('px','')/1+this.shadowOffset)+'px';
    this.divs_shadow.style.height=tmpHeight+'px';
    this.divs_shadow.style.width=tmpWidth+'px';
    if(!this.shadowDivVisible)this.divs_shadow.style.display='none';}
    ,
    __repositionTransparentDiv : function(){
    this.divs_transparentDiv.style.top=Math.max(document.body.scrollTop,document.documentElement.scrollTop)+'px';
    this.divs_transparentDiv.style.left=Math.max(document.body.scrollLeft,document.documentElement.scrollLeft)+'px';
    var brSize=this.__getBrowserSize();
    var bodyWidth=brSize[0];
    var bodyHeight=brSize[1];
    this.divs_transparentDiv.style.width=bodyWidth+'px';
    this.divs_transparentDiv.style.height=bodyHeight+'px';}
    ,
    __insertContent : function(){
    if(this.url){ajax_loadContent('DHTMLSuite_modalBox_contentDiv',this.url);}else{this.divs_content.innerHTML=this.htmlOfModalMessage;}}
}