﻿﻿//页面内模拟窗口-begin
/*
showwin() 打开一个模拟窗口
参数如下：
    winname：窗口名称，必须
    url：窗口链接地址，必须
    title：窗口标题，必须
    wWidth：窗口宽度，可选，默认是400
    wHeight：窗口高度，可选，默认是300
*/
var parentwin=new Array();
var nowindex=100;

//简单实现getElementById-begin
function $() {
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);

    if (arguments.length == 1)
      return element;

    elements.push(element);
  }
  return elements;
}
function setwintitle(winname,title)
{
    $("__divWin"+winname).children[0].rows[0].cells[0].innerHTML=title;
}

function showwin(winname,url,title,wWidth,wHeight,onlyonce,pwin){
    wWidth=(wWidth==null)?400:parseInt(wWidth,10);
    wHeight=(wHeight==null)?300:parseInt(wHeight,10);
    if (wWidth>document.body.clientWidth) {wWidth=document.body.clientWidth-2}
    if (wHeight>document.body.clientHeight) {wHeight=document.body.clientHeight-34-2}

    var flagreload=false;
    if (parentwin[winname]!=pwin){
        flagreload=true;
        parentwin[winname]=pwin;
    }

   
    if ($("__divCover"+winname) ==null){
        var divCover = document.createElement("div");
        divCover.id = "__divCover"+winname;
        divCover.style.cssText = "position:absolute;top:0;left:0;width:" + document.body.clientWidth+ "px; height:" + document.body.clientHeight + "px;background-color:#000000;filter:alpha(opacity=25);display:none;";
        document.body.appendChild(divCover);
    }
    $("__divCover"+winname).style.display="block";
    $("__divCover"+winname).style.zIndex=nowindex+1;
    nowindex++;
    if ($("__iframeCover"+winname) ==null){
        var iframeCover = document.createElement("iframe");
        iframeCover.id = "__iframeCover"+winname;
        iframeCover.style.cssText = "position:absolute;top:0;left:0;width:" + document.body.clientWidth+ "px; height:" + document.body.clientHeight + "px;background-color:#eeeeee;filter:alpha(opacity=0);display:none;";
        document.body.appendChild(iframeCover);
    }
    $("__iframeCover"+winname).style.display="block";
    $("__iframeCover"+winname).style.zIndex=nowindex+1;
    nowindex++; 
//    if ($("__divWin_shadow"+winname) ==null){
//        var divWin_shadow = document.createElement("div");
//        divWin_shadow.id = "__divWin_shadow"+winname;
//        divWin_shadow.style.cssText = "position:absolute;border:0px;top:0;left:0;background-color:#FF6633;filter:progid:DXImageTransform.Microsoft.Blur(makeShadow=true,pixelRadius=3,shadowOpacity=0.5);display:none;";
//     //   divWin_shadow.innerHTML = "<img border=\"0\" src=\"../public/images/div_shadow.gif\" width=\"100%\" height=\"100%\">";
//        document.body.appendChild(divWin_shadow);
//    }
//    $("__divWin_shadow"+winname).style.zIndex=nowindex+1;
//    nowindex++; 
    if ($("__divWin"+winname) ==null){
        var divWin = document.createElement("div");
        divWin.id = "__divWin"+winname;
        divWin.style.cssText = "position:absolute;border:1px #000000 solid;display:none;background-color:#FFFFFF;";
        var tmpstr = "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"width:100%;height:100%;background-Image:url("+imgdir+"/win_head.gif);background-repeat:repeat-x;\"><tr><td height=\"28\" width=\"100%\" style=\"CURSOR: move;padding-left:8px;font-weight:bold;color:#FFFFFF\" onmousedown=\"dmousedown('"+winname+"')\">"+title+"</td><td width=\"60\" style=\"padding-right:8px;\" nowrap align=\"right\">";
        tmpstr += "<a href=\"javascript:void(0)\" hideFocus class=\"closeA\"><img onclick=\"maxwin('"+winname+"',this)\" border=\"0\" src=\""+imgdir+"/max1.gif\" alt=\"最大化\"></a>";
        tmpstr += "<a href=\"javascript:closewin('"+winname+"')\" hideFocus style=\"margin-left:2px;\" class=\"closeA\"><img border=\"0\" src=\""+imgdir+"/close.gif\" alt=\"关闭\"></a></td></tr><tr><td colspan=\"2\" style=\"padding:15px;\"><iframe name=\"__frmWin"+winname+"\" id=\"__frmWin"+winname+"\" frameborder=\"0\" style=\"width:100%;height:100%\" src=\"about:blank\"></iframe></td></tr></table>";
        divWin.innerHTML = tmpstr;
        document.body.appendChild(divWin);
    }
    $("__divWin"+winname).style.zIndex=nowindex+1;
    nowindex++;
    $("__frmWin"+winname).onlyonce=onlyonce;
    if ((onlyonce!=true)||($("__frmWin"+winname).src=="about:blank")||(flagreload)){
        $("__frmWin"+winname).src=""+imgdir+"/../blankload.htm";
       //window.frames["__frmWin"+winname].document.write("页面正在载入中……");
      //  window.setTimeout("$('__frmWin"+winname+"').src='"+url+"';$('__divWin"+winname+"').style.display='block';$('__divWin_shadow"+winname+"').style.display='block';",1);
        window.setTimeout("$('__frmWin"+winname+"').src='"+url+"';$('__divWin"+winname+"').style.display='block';",1);
     
    }
    else{
        $("__divWin"+winname).style.display="block";
//        $("__divWin_shadow"+winname).style.display="block";
    }
    $("__divWin"+winname).childNodes[0].rows[0].cells[0].innerText=title;
    $("__divWin"+winname).style.width=wWidth+"px";
    $("__divWin"+winname).style.height=(wHeight+34)+"px";
    $("__divWin"+winname).childNodes[0].rows[0].cells[1].childNodes[0].childNodes[0].ismax="0";
    $("__divWin"+winname).childNodes[0].rows[0].cells[1].childNodes[0].childNodes[0].src=""+imgdir+"/max1.gif";
//    $("__divWin_shadow"+winname).style.width=(wWidth)+"px";
//    $("__divWin_shadow"+winname).style.height=(wHeight+34)+"px";
    var tmptop=(document.body.clientHeight-wHeight-34)/2;
    if (tmptop<0) {tmptop=1}
    $("__divWin"+winname).style.top=tmptop+"px";
    $("__divWin"+winname).style.left=(document.body.clientWidth-wWidth)/2+"px";
//    
//    $("__divWin_shadow"+winname).style.top=(tmptop+1)+"px";
//    $("__divWin_shadow"+winname).style.left=((document.body.clientWidth-wWidth)/2+1)+"px";
    
 }

/*
closewin() 关闭一个已经打开的模拟窗口
参数如下：
    winname：窗口名称，必须
*/
function closewin(winname){
    winname=(winname==null)?"":winname;
    
//    parentwin[winname]=null;
//    delete parentwin[winname];

//   $("__divCover"+winname).style.display="none";
//   $("__divCover"+winname).style.zIndex=100;
//   $("__divWin"+winname).style.display="none";
//   $("__divWin"+winname).style.zIndex=100;
//   $("__iframeCover"+winname).style.display="none";
//   $("__iframeCover"+winname).style.zIndex=100;

//    document.body.removeChild(document.getElementById("__divCover"+winname));
//    document.body.removeChild(document.getElementById("__iframeCover"+winname));
//    $("__frmWin"+winname).src="about:blank";
//    document.body.removeChild(document.getElementById("__divWin"+winname));

    if  (typeof(window.frames["__frmWin"+winname]._onbeforeunload)=="function")
    {
        if (!window.frames["__frmWin"+winname]._onbeforeunload())
        {
            return;
        }
    }
    //alert(window.frames["__frmWin"+winname])

  $("__divCover"+winname).style.display="none";
   $("__divCover"+winname).style.zIndex=100;
   $("__divWin"+winname).style.display="none";
   $("__divWin"+winname).style.zIndex=100;
   $("__iframeCover"+winname).style.display="none";
   $("__iframeCover"+winname).style.zIndex=100;
//window.setTimeout("$('__frmWin"+winname+"').src='about:blank'",1);
    if (!($("__frmWin"+winname).onlyonce))
    {
        window.setTimeout("if ($('__divWin"+winname+"').style.display=='none') {window.frames['__frmWin"+winname+"'].document.write('');}",2000)
    }
}

function maxwin(winname,item){
    winname=(winname==null)?"":winname;
   // window.status=document.body.clientHeight+"sss"+document.body.clientWidth;
//    
//    var item=window.event.srcElement;

    if (item.ismax=="1")
    {
        item.src=imgdir+"/max1.gif";
        item.ismax="0";
        item.alt="最大化";
        $("__divWin"+winname).style.width=$("__divWin"+winname).oldwidth;
        $("__divWin"+winname).style.height=$("__divWin"+winname).oldheight;
        $("__divWin"+winname).style.top=$("__divWin"+winname).oldtop;
        $("__divWin"+winname).style.left=$("__divWin"+winname).oldleft;
    }
    else
    {
        item.src=imgdir+"/max2.gif";
        item.ismax="1"; 
        item.alt="向下还原";       
        $("__divWin"+winname).oldwidth=$("__divWin"+winname).style.width;
        $("__divWin"+winname).oldheight=$("__divWin"+winname).style.height;
        $("__divWin"+winname).oldtop=$("__divWin"+winname).style.top;
        $("__divWin"+winname).oldleft=$("__divWin"+winname).style.left;
        
        $("__divWin"+winname).style.width=document.body.clientWidth-2;
        $("__divWin"+winname).style.height=document.body.clientHeight-2;
        $("__divWin"+winname).style.top=1;
        $("__divWin"+winname).style.left=1;
    }

}


function getparentwin(winname){
    winname=(winname==null)?"":winname;
    return parentwin[winname];
}

/*
dmousedown() 模拟窗口的拖动，内部函数，不开放
参数如下：
    winname：窗口名称，必须
*/
function dmousedown(winname){
        o=window.event.srcElement
        var d=document;
        var a=window.event;
        var x=a.layerX?a.layerX:a.offsetX,y=a.layerY?a.layerY:a.offsetY;
        if(o.setCapture)
            o.setCapture();
        else if(window.captureEvents)
            window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);

        d.onmousemove=function(a){
            var div1=document.getElementById("__divWin"+winname)
          //  var div2=document.getElementById("__divWin_shadow"+winname)
            if(!a)a=window.event;
            if(!a.pageX)a.pageX=a.clientX;
            if(!a.pageY)a.pageY=a.clientY;
            var tx=a.pageX-x,ty=a.pageY-y;
            var maxx=document.body.clientWidth-div1.clientWidth-3;
            //var maxy=document.body.clientHeight-div1.clientHeight-3;
            var maxy=document.body.clientHeight- 30;
            tx=(tx<0)?0:tx;
            ty=(ty<0)?0:ty;
            tx=(tx>maxx)?maxx:tx;
            ty=(ty>maxy)?maxy:ty;
            
            div1.style.left=tx;
            div1.style.top=ty;
//            div2.style.left=tx+1;
//            div2.style.top=ty+1;
        };

        d.onmouseup=function(){
            if(o.releaseCapture)
                o.releaseCapture();
            else if(window.captureEvents)
                window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
            d.onmousemove=null;
            d.onmouseup=null;
        };

}
//页面内模拟窗口-end

//实现类似MSGBOX的提示
/*
showmsgbox() 实现类似MSGBOX的提示
参数如下：
    text：提示内容  必须
    type：loading,error,success 必须
    focusItem：当error时，点击确定按钮之后聚焦到的页面元素
*/
var imgdir="../public/images";
var pagefocusItem=null;
function showmsgbox(text,type,focusItem,pwin){
    var isNeedConfirmBtn=false;
    type=(type==null)?"":type;
    pagefocusItem=focusItem;
    if ($("__divCoverBar")==null){
                document.body.insertAdjacentHTML("afterBegin","<div id=\"__divCoverBar\" style=\"z-index:9997;position:absolute;top:0;left:0;width:" + document.body.clientWidth+ "px; height:" + document.body.clientHeight + "px;display:none;\"></div><iframe id=\"__iframeCoverBar\" src=\"about:blank\" style=\"z-index:9998;position:absolute; display:none; top:0;left:0;width:" + document.body.clientWidth+ "px; height:" + document.body.clientHeight + "px; z-index:10;filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';\"></iframe>");
    }
    var divCover = $("__divCoverBar");
    var iframeCover = $("__iframeCoverBar");
    if ($("__divMsgBar")==null){
       
        document.body.insertAdjacentHTML("afterBegin","<div id=\"__divMsgBar\" style=\"z-index:9999;text-align:center;position:absolute; top:"+(document.body.scrollTop*3+document.body.clientHeight)/3+"px; left:"+(document.body.clientWidth-320)/2+"; width:320px; height:100;background-color:#FFDDDD;border:1px #FF0000 solid;padding:20px;filter:alpha(opacity=88);display:none;\"><span id=\"__MsgBarText\" style=\"color:#000000\"></span></div>");
    }
    var divMsgBar= $("__divMsgBar");
  
    switch (type) {
        case "loading" :
            divMsgBar.childNodes.item(0).innerHTML = "<img src='"+imgdir+"/loading.gif' align='absmiddle'> " + text;
            divMsgBar.style.backgroundColor="#D7EBFF";
            divMsgBar.style.border="1px #0066FF solid";
            divMsgBar.style.width="230px"
            divMsgBar.style.height="60px"
            break;
        case "error" :
            var errortext="";
            if (pwin){
                if (pwin.ERROR){
                    if (pwin.ERROR.length>0){
                        errortext="<br/><br/><div style='text-align:left;width:300px;height:20px;cursor:pointer;' onclick=\"this.style.display='none';this.nextSibling.style.display='block'\"><img src='"+imgdir+"/showerr.gif' align='absmiddle'> 点击此处查看详细错误信息</div><div style='background-color:white;text-align:left;width:300px;height:130px;overflow:scroll;display:none;'>"+pwin.ERROR+"</div>"
                        pwin.ERROR="";
                    }
                }
            }
            divMsgBar.childNodes.item(0).innerHTML = "<img src='"+imgdir+"/error.gif' align='absmiddle'> " + text + errortext;
            divMsgBar.style.backgroundColor="#FFECEC";
            divMsgBar.style.border="1px #FF0000 solid";
            divMsgBar.style.width="320px"
            divMsgBar.style.height="100px"          
            isNeedConfirmBtn=true;
            break;
        case "success" :
            divMsgBar.childNodes.item(0).innerHTML = "<img src='"+imgdir+"/success.gif' align='absmiddle'> " + text;           
            divMsgBar.style.backgroundColor="#CCFFCC";
            divMsgBar.style.border="1px #00CC66 solid";
            divMsgBar.style.width="320px"
            divMsgBar.style.height="100px"
            isNeedConfirmBtn=true;
            break;
        default :
            this.divMsgBar.childNodes.item(0).innerHTML = text;
            break;
    }
      var htmlText = divMsgBar.childNodes.item(0).innerHTML;
    if(isNeedConfirmBtn){
        htmlText += "<br/><br/><button class=\"btn\" id=\"__divbtnconfirm\" onclick=\"javascript:closemsgbox();";
        if(focusItem!=null){
            htmlText += "itemfocus();";
        }
        htmlText += "\" > 确 认 </button>"
    }
    divMsgBar.childNodes.item(0).innerHTML = htmlText;
 
    divCover.style.zIndex=nowindex+1;
    nowindex++; 
    iframeCover.style.zIndex=nowindex+1;
    nowindex++;   
    divMsgBar.style.zIndex=nowindex+1;
    nowindex++;  
       
    divMsgBar.style.display="block";
    divCover.style.display="block";
    iframeCover.style.display="block";
    if(isNeedConfirmBtn){
        $("__divbtnconfirm").focus();
    }
}
function itemfocus(){
    if (pagefocusItem!=null &&  pagefocusItem!="" && pagefocusItem!=undefined && pagefocusItem.display!="none"){
        try{
            pagefocusItem.focus();
        }
        catch(e){
        }
    }
}
/*
closemsgbox() 关闭MSGBOX的提示
无参数：
*/
function closemsgbox()
{
try{
	$("__divCoverBar").style.display="none";
	$("__divCoverBar").style.zIndex=100;
	$("__divMsgBar").style.display="none";
	$("__divMsgBar").style.zIndex=100;
    $("__iframeCoverBar").style.display="none";
    $("__iframeCoverBar").style.zIndex=100;
} catch (e) {}
}



function opendivwin(winname,strinner,title,wWidth,wHeight,pwin){
 
    wWidth=(wWidth==null)?400:parseInt(wWidth,10);
    wHeight=(wHeight==null)?300:parseInt(wHeight,10);
   // var flagreload=false;
    if (parentwin[winname]!=pwin){
      //  flagreload=true;
        parentwin[winname]=pwin;
    }
    if ($("__divCover"+winname) ==null){
        var divCover = document.createElement("div");
        divCover.id = "__divCover"+winname;
        divCover.style.cssText = "position:absolute;top:0;left:0;width:" + document.body.clientWidth+ "px; height:" + document.body.clientHeight + "px;background-color:#000000;filter:alpha(opacity=25);display:none;";
        document.body.appendChild(divCover);
    }
    $("__divCover"+winname).style.display="block";
    $("__divCover"+winname).style.zIndex=nowindex+1;
    nowindex++;
    if ($("__iframeCover"+winname) ==null){
        var iframeCover = document.createElement("iframe");
        iframeCover.id = "__iframeCover"+winname;
        iframeCover.style.cssText = "position:absolute;top:0;left:0;width:" + document.body.clientWidth+ "px; height:" + document.body.clientHeight + "px;background-color:#eeeeee;filter:alpha(opacity=0);display:none;";
        document.body.appendChild(iframeCover);
    }
    $("__iframeCover"+winname).style.display="block";
    $("__iframeCover"+winname).style.zIndex=nowindex+1;
    nowindex++; 
    if ($("__divWin"+winname) ==null){
        var divWin = document.createElement("div");
        divWin.id = "__divWin"+winname;
        divWin.style.cssText = "position:absolute;border:1px #000000 solid;display:none;background-color:#FFFFFF;";
        divWin.innerHTML = "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"width:100%;height:100%;background-Image:url(../public/images/win_head.gif);background-repeat:repeat-x;\"><tr><td height=\"28\" width=\"100%\" style=\"CURSOR: move;padding-left:8px;font-weight:bold;color:#FFFFFF\" onmousedown=\"dmousedown('"+winname+"')\">"+title+"</td><td width=\"40\" style=\"padding-right:8px;\"><a href=\"javascript:closedivwin('"+winname+"')\" class=\"closeA\"><img border=\"0\" src=\"../public/images/close.gif\" alt=\"关闭\"></a></td></tr><tr><td colspan=\"2\" style=\"padding:15px;\"><div name=\"__divinner"+winname+"\" id=\"__divinner"+winname+"\"></div></td></tr></table>";
        document.body.appendChild(divWin);
    }
    $("__divWin"+winname).style.zIndex=nowindex+1;
    nowindex++;
//    if ((onlyonce!=true)||($("__frmWin"+winname).src=="about:blank")||(flagreload)){
//        $("__frmWin"+winname).src="about:blank";
//        window.setTimeout("$('__frmWin"+winname+"').src='"+url+"';$('__divWin"+winname+"').style.display='block';",10);
//    }
//    else{


        
   // }
    $("__divWin"+winname).childNodes[0].rows[0].cells[0].innerText=title;
    $("__divWin"+winname).style.width=wWidth+"px";
    $("__divWin"+winname).style.height=(wHeight+34)+"px";
    
   // $("__divinner"+winname).style.width=wWidth+"px";
  //  $("__divinner"+winname).style.height=(wHeight+34)+"px";
    $("__divinner"+winname).innerHTML=strinner;
    $("__divWin"+winname).style.display="block";       
    
    var tmptop=(document.body.clientHeight-wHeight-34)/2;
    if (tmptop<0) {tmptop=1}
    $("__divWin"+winname).style.top=tmptop+"px";
    
    $("__divWin"+winname).style.left=(document.body.clientWidth-wWidth)/2+"px"; 
}

function closedivwin(winname){
    winname=(winname==null)?"":winname;
    
   // parentwin[winname]=null;
   // delete parentwin[winname];

   $("__divCover"+winname).style.display="none";
   $("__divCover"+winname).style.zIndex=100;
   $("__divWin"+winname).style.display="none";
   $("__divWin"+winname).style.zIndex=100;
   $("__iframeCover"+winname).style.display="none";
   $("__iframeCover"+winname).style.zIndex=100;

//    document.body.removeChild(document.getElementById("__divCover"+winname));
//    document.body.removeChild(document.getElementById("__iframeCover"+winname));
//    $("__frmWin"+winname).src="about:blank";
//    document.body.removeChild(document.getElementById("__divWin"+winname));

 //   document.body.removeChild(document.getElementById("__divWin_shadow"+winname));
    

   
//   $("__divWin_shadow"+winname).style.display="none";
//   $("__divWin_shadow"+winname).style.zIndex=100;
   
  //   CollectGarbage();
}

function getdivparentwin(winname){
    winname=(winname==null)?"":winname;
    return parentwin[winname];
}
