﻿// JScript 文件
/*
    作者:张明忠
    时间:2008-2-16
	用途:自定义窗口
	用法:1.在页面的head引用本脚本,
		 2.在要弹出警告框的地方声明一个警告框对象,如:
		 var dialog = new Window("This is a test","Hello World");
		 dialog.showDialog();
		 两个参数中,第一个参数是警告的内容,第二个参数是警告的标题,也可以只传一个参数,如:
		 var dialog = new Window("This is a test");
		 dialog.showDialog();
		 只传一个参数就当成警告的内容.
		 注意:两个参数者支持HTML代码的.
		 还可以直接传一个obj对象,如一个div对象,div里面的内容就是要显示的内容.如:
		 在页面里面添加一个隐藏的div,<div style="display:none" id="divContent">Hello World</div>
		 var dialog = new Window(document.getElementById("divContent"),"Hello World");
		 dialog.Show();
		 
		 还有一个方法setAction可以自定义OK按钮触发的事件,如:
		 dig.setAction("Open()");
		 还然在页面添加js方法Open,这样,当点击OK时,就会触发Open的事件
		 
		 setSpeed(speed)是定义窗口打开的速度,默认是40,值越大,速度越快
		 setSize(width,height) 是定义窗口的大小,窗口的默认大小为300 * 100
		 setButtonVisible(flag) 定义Button按钮是否显示
*/
var screenLeft = screen.width/2;
var screenTop = screen.height/2;
var downX;
var downY;
var currentLeft;
var currentTop;
var moveDialog;

var startLeft = 0; //横坐标移动变量
var startTop = 0; //纵坐标移动变量
var endLeft = 0;
var endTop = 0;
var startWidth = 0;
var startHeight = 0;
var step = 0; //展开的循环次数
var filter = 0;
var moveDiv //移动的DIV
var rateHW = 0;
var stepWidth = 0;
var stepHeight = 0;
var speed = 40;
function WindowDiv(content)
{
	WindowDiv(content,null);
}
//如果要传一个URL地址的话，content是一个URL地址,isFrame传true
function WindowDiv(content,title,isFrame)
{
    //对象属性
    var frame = false;
	var _title = "警告";
	if(isFrame != null && isFrame != undefined)
	{
		frame = isFrame;
	}
	if(title != null && title != undefined)
	{
		_title = title;
	}
	var divBody = document.getElementById("DIVBody");
	if(divBody == null || divBody == undefined)
	{
	    if(content.innerHTML !=null && content.innerHTML != undefined)
	    {
		    _content = content.innerHTML;
		    content.innerHTML = "";
	    }
	    else
	    {
		    _content = content;
	    }
	}
   //遮罩层
    var layer = document.getElementById("DIVLayer");
    if(layer == null || layer == undefined)
    {
        layer = document.createElement("DIV");
        layer.id="DIVLayer";
    }
    layer.style.width = document.body.scrollWidth;
    layer.style.height = document.body.scrollHeight + 50;
    layer.style.background = "#444444";
    layer.style.filter="alpha(opacity=60)";
    layer.style.zIndex = 900;
    layer.style.position="absolute";
    layer.style.left =0;
    layer.style.top = 0;
    document.body.appendChild(layer);
	//生成窗口DIV
    var dialog = document.getElementById("DIVBODY");
    if(dialog == null || dialog == undefined)
    {
        dialog = document.createElement("DIV");
        dialog.id="DIVBODY";
    }
    dialog.style.position="absolute";
    dialog.style.zIndex = 1000;
    dialog.style.width = "300px";
    dialog.style.height = "100px";
    dialog.style.display = "none";
    dialog.style.overFlow = "hidden";
    dialog.className="zoneBody";
    dialog.style.background = "#ffffff";
	rateHW = parseFloat(1/3);

	var saveButton = CreateButton("OK", 60, 22, "btnOK");
	
//    var divHTML = "<div id=\"DIVHead\" style=\"width:100%;height:20px;padding-top:2px;cursor:move;background:#\" >";
//    divHTML +="<div style=\"float:left;margin-top:3px;\"><span class='verdana11ptbo'><b>&nbsp;"+_title+"</b></span>";
//    divHTML +="</div><div style=\"width:16px;float:right;margin-top:3px;\"></div></div>";
    divHTML ="<div id=\"DIVContent\" style=\"width:100%;overflow:hidden;text-align:center;overflow:auto;background:#ffffff;\">";
    if(frame)
    {
        divHTML +="<iframe id=\"ifWin\" src=\""+_content+"\" width=\"100%\" height=\"100%\" frameborder=\"0\"></iframe>";
    }
    else
    {
        divHTML +=_content;
    }
    divHTML +="</div>";
//    divHTML +="<div style=\"width:100%;height:30px;overflow:hidden;text-align:center;background:#ffffff;\">";
//    divHTML += "<table border='0' cellpadding='0' cellspacing='0' width='100%'><tbody><tr><td style='width:60%'></td><td style='width:40%;text-align:left;'>" + saveButton.outerHTML + "</td></tr></tbody></table>";  
//    divHTML += "<span id=\"Action\" style=\"display:none\"></span></div>";
    divHTML +="</div>";
    dialog.innerHTML = divHTML;
    document.body.appendChild(dialog);
    
	//窗口中的对象
    //var btnOK = document.getElementById("btnOK");
    //var divHead = document.getElementById("DIVHead");
	//var btnClose = document.getElementById("imgClose");
	//var action = document.getElementById("Action");
	var divContent = document.getElementById("DIVContent");
	var ifWin = document.getElementById("ifWin");
	//显示窗口
    this.Show = function()
    {
        //禁用页面的所有DropDownList，包含Iframe里的
        //debugger;
        var scrollPos; 
        if (typeof window.pageYOffset != 'undefined') { 
            scrollPos = window.pageYOffset; 
        } 
        else if (typeof document.compatMode != 'undefined' && 
              document.compatMode != 'BackCompat') { 
            scrollPos = document.documentElement.scrollTop; 
        } 
        else if (typeof document.body != 'undefined') { 
            scrollPos = document.body.scrollTop; 
        }
        if(ifWin)
        {
            ifWin.src=_content;
        }
        screenLeft = document.body.clientWidth/2;
        screenTop = scrollPos + screen.height/2 -100;
        layer.style.display="";
		startLeft = screenLeft;
		startTop = screenTop;
		endLeft = startLeft-parseInt(dialog.style.width)/2;   //屏幕中心点Left
		endTop = startTop - parseInt(dialog.style.height)/2;   //屏幕中心点Top
		step = (startLeft-endLeft)/speed;  //计算展开的循环次数
		stepWidth = parseInt(dialog.style.width)/step;
		stepHeight = parseInt(dialog.style.height)/step;
		dialog.style.left = endLeft;
        dialog.style.top = endTop;
		//dialog.style.width = 0;
		//dialog.style.height = 0;
		dialog.style.display="";
		moveDiv = dialog;
		//MoveDialog();
        //dialog.style.left = screenLeft - dialog.clientWidth/2;
        //dialog.style.top = screenTop - dialog.clientWidth/2;
    }
	//关闭窗口
    this.Close = function()
    {
        //恢复被禁用的DropDownList
        //dialog.style.display="none";
        document.body.removeChild(dialog);
        layer.style.display="none";
    }
	//定义Button的触发事件
	this.setAction = function(eventStr)
	{
		action.innerText = eventStr;
	}
	//定义窗口大小
	this.setSize = function(width,height)
	{
		dialog.style.width = width;
		dialog.style.height = height;
		if(frame)
		{
		    divContent.style.height = height;
		}
		rateHW = parseFloat(height/width);
	}
	//定义窗口打开速度
	this.setSpeed = function(sp)
	{
		speed = sp;
	}
	this.setButtonVisible = function(flag)
	{
		if(!flag)
		{
			//btnOK.style.display = "none";
		}
	}
	//OKButton的触发事件
//    btnOK.onclick = function()
//    {
//		var eventStr = action.innerText;
//		dialog.style.display="none";
//		layer.style.display="none";
//		if(eventStr != "")
//		{
//			eval(eventStr);
//		}
//    }
	//窗口的关闭按钮事件
//	btnClose.onclick = function()
//	{
//	    //恢复被禁用的DropDownList
//	    EnableDrop();
//		//dialog.style.display="none";
//		document.body.removeChild(dialog);
//        layer.style.display="none";
//		
//	}
//	//当按下窗口标题栏时,记录下窗口当前的位置,用于拉动
//    divHead.onmousedown= function()
//    {
//        moveDialog = dialog;
//        var event = event ? event : (window.event ? window.event : null);
//        if(event != undefined && event!=null)
//        {
//           downX = event.clientX;
//           downY = event.clientY;
//        }
//        currentLeft = dialog.offsetLeft;
//        currentTop = dialog.offsetTop;
//        moveDialog.setCapture();
//    }
//	//移动窗口
//    document.onmousemove = function()
//    {
//        if(moveDialog)
//        {
//            var endX = currentLeft + event.clientX - downX;
//            var endY = currentTop + event.clientY - downY;
//            moveDialog.style.left = endX;
//            moveDialog.style.top = endY;
//        }
//    }
//	//停止移动
//    document.onmouseup = function()
//    {
//        if(moveDialog)
//        {
//            downX = null;
//            downY = null;
//            currentLeft = null;
//            currentTop = null;
//            moveDialog.releaseCapture();
//            moveDialog = null;
//        }
//    }
}
function EnableDrop()
{
        var dropList = document.getElementsByTagName("select");
        EnableDropDownList(dropList);
        var frames = document.getElementsByTagName("iframe");
        for(var i=0;i<frames.length;i++)
        {
            var frameDrop = frames[i].contentWindow.document.getElementsByTagName("select");
            EnableDropDownList(frameDrop);
            var childFrames =  frames[i].contentWindow.document.getElementsByTagName("iframe");
            for(var j=0;j<childFrames.length;j++)
            {
                var childSelect = childFrames[j].contentWindow.document.getElementsByTagName("select");
                EnableDropDownList(childSelect);
            }
        }
}
function DisableDrop()
{
       
       var dropList = document.getElementsByTagName("select");
        DisableDropDownList(dropList);
        var frames = document.getElementsByTagName("iframe");
        for(var i=0;i<frames.length;i++)
        {
            var frameDrop = frames[i].contentWindow.document.getElementsByTagName("select");
            DisableDropDownList(frameDrop);
            var childFrames =  frames[i].contentWindow.document.getElementsByTagName("iframe");
            for(var j=0;j<childFrames.length;j++)
            {
                var childSelect = childFrames[j].contentWindow.document.getElementsByTagName("select");
                DisableDropDownList(childSelect);
            }
        }
}
function MoveDialog()
	{
		if(moveDiv)
	   {
		   if(startLeft < endLeft && startTop < endTop)
		   {
			   startLeft = 0;
			   startTop = 0;
			   endLeft = 0;
			   endTop = 0;
			   startWidth = 0;
			   startHeight = 0;
			   step = 0;
			   filter = 0;
			   moveDiv = null;
			   return;
		   }
		   startLeft = startLeft - speed;
		   startTop = startTop - rateHW*speed;
		   startWidth = startWidth + stepWidth;
		   startHeight = startHeight + stepHeight;
		   filter = filter + 100/step;
		   moveDiv.style.left = startLeft;
		   moveDiv.style.top = startTop;
		   moveDiv.style.width = parseInt(startWidth);
		   moveDiv.style.height = parseInt(startHeight);
		   //为什么加上下面一句,Button的Text就不见啦.
		   moveDiv.style.filter="alpha(opacity="+filter+")";
		   window.setTimeout("MoveDialog()",50);
	   }
	}
 function CreateButton(title, width, height, buttonID)
 {
    var btnTable = document.createElement("<table width='60' height='22' border='0' cellpadding='0' cellspacing='0' style='cursor:hand;'>");
    btnTable.setAttribute("width", width);
    btnTable.setAttribute("height", height);
    btnTable.id = buttonID;
    var btnTBody = document.createElement("<TBODY>"); 
    var btnTR = document.createElement("<tr>");
    var btnTD = document.createElement("<td align='center' valign='middle' class='btsearch'>");
    var btnAHref = document.createElement("<a href='#'>");
    btnAHref.innerText = title;
    
    btnTD.appendChild(btnAHref);
    btnTR.appendChild(btnTD);
    btnTBody.appendChild(btnTR);
    btnTable.appendChild(btnTBody);    
    return btnTable;   
 } 