﻿/*----------------------------------------------------------------
// Copyright (C) 2004 PHOOK
// 版权所有。 
//
// 文件名：			MessageBox.js
// 文件功能描述：	JS弹出对话框
//
// 创建标识：		张吉锋20071030
// 修改标识：		张吉锋20080329
// 修改描述：
//----------------------------------------------------------------
// 功能说明：
//----------------------------------------------------------------
// 在使用此弹出层之前引用MessageBox.js
// MessageBox(标题，要嵌入弹出层的对象ID) 标准对话框
// MessageBoxError() 错误对话框
// MessageBox_NoClose() 无关闭按钮的对话框
// MessageBox_Closing() 点击顶部关闭按钮前触发事件，返回false取消关闭操作。
// MessageBox_Close_Back() 关闭后事件
// MessageBox_Close() 关闭对话框
//----------------------------------------------------------------*/

// 是否IE6
var IsIE6 = navigator.appVersion.indexOf('MSIE 6.0') != -1;

// 当前显示的TABLE
var m_MessageTableID;

// 预先加载图片
var messageBoxImages = new Array();
messageBoxImages[0] = new Image();
messageBoxImages[1] = new Image();
messageBoxImages[2] = new Image();
messageBoxImages[3] = new Image();
messageBoxImages[4] = new Image();
messageBoxImages[5] = new Image();
messageBoxImages[6] = new Image();
messageBoxImages[7] = new Image();
messageBoxImages[8] = new Image();
messageBoxImages[0].src = '/images/cen-tanchu_sl.gif';
messageBoxImages[1].src = '/images/cen-tanchu_bg.gif';
messageBoxImages[2].src = '/images/cen-tanchu_biao.gif';
messageBoxImages[3].src = '/images/cen-tanchu_sr.gif';
messageBoxImages[4].src = '/images/cen-tanchu_zlbg.gif';
messageBoxImages[5].src = '/images/cen-tanchu_zrbg.gif';
messageBoxImages[6].src = '/images/cen-tanchu_xl.gif';
messageBoxImages[7].src = '/images/cen-tanchu_xbg.gif';
messageBoxImages[8].src = '/images/cen-tanchu_xr.gif';

var messageBoxErrorImages = new Array();
messageBoxErrorImages[0] = new Image();
messageBoxErrorImages[1] = new Image();
messageBoxErrorImages[2] = new Image();
messageBoxErrorImages[3] = new Image();
messageBoxErrorImages[4] = new Image();
messageBoxErrorImages[5] = new Image();
messageBoxErrorImages[6] = new Image();
messageBoxErrorImages[7] = new Image();
messageBoxErrorImages[8] = new Image();
messageBoxErrorImages[0].src = '/images/cen-tanchu_chucuo_sl.gif';
messageBoxErrorImages[1].src = '/images/cen-tanchu_chucuo_sbg.gif';
messageBoxErrorImages[2].src = '/images/cen-tanchu_biao.gif';
messageBoxErrorImages[3].src = '/images/cen-tanchu_chucuo_sr.gif';
messageBoxErrorImages[4].src = '/images/cen-tanchu_chucuo_lbg.gif';
messageBoxErrorImages[5].src = '/images/cen-tanchu_chucuo_rbg.gif';
messageBoxErrorImages[6].src = '/images/cen-tanchu_chucuo_xl.gif';
messageBoxErrorImages[7].src = '/images/cen-tanchu_chucuo_xbg.gif';
messageBoxErrorImages[8].src = '/images/cen-tanchu_chucuo_xr.gif';

// 图片路径
var msgBoxImages = new Array();

// 边框尺寸
var topHeight = 30;
var topWidth = 10;
var bottomHeight = 10;

// 背景层的透明度
var backgroundOpacity = 50;

// 是否显示关闭按钮
var isShowClose = true;

// 没有关闭按钮的对话框
function MessageBox_NoClose(strTitle,strID){
	isShowClose = false;
	MessageBox_private(strTitle,strID)
}

// 显示正常对话框
function MessageBox(strTitle,strID){
	isShowClose = true;
	MessageBox_private(strTitle,strID)
}

// 显示错误提示对话框
function MessageBoxError(strTitle,strID){
	isShowClose = true;
	MessageBox_private(strTitle,strID,true)
}

// 创建对话框
function MessageBox_private(strTitle,strID,isError){

	// 初始化
	if(isError)
	{
		topHeight = 30;
		topWidth = 10;
		bottomHeight = 10;
		backgroundOpacity = 10;
		msgBoxImages[0] = messageBoxErrorImages[0].src;
		msgBoxImages[1] = messageBoxErrorImages[1].src;
		msgBoxImages[2] = messageBoxErrorImages[2].src;
		msgBoxImages[3] = messageBoxErrorImages[3].src;
		msgBoxImages[4] = messageBoxErrorImages[4].src;
		msgBoxImages[5] = messageBoxErrorImages[5].src;
		msgBoxImages[6] = messageBoxErrorImages[6].src;
		msgBoxImages[7] = messageBoxErrorImages[7].src;
		msgBoxImages[8] = messageBoxErrorImages[8].src;
	}
	else
	{
		topHeight = 30;
		topWidth = 5;
		bottomHeight = 14;
		backgroundOpacity = 50;
		msgBoxImages[0] = messageBoxImages[0].src;
		msgBoxImages[1] = messageBoxImages[1].src;
		msgBoxImages[2] = messageBoxImages[2].src;
		msgBoxImages[3] = messageBoxImages[3].src;
		msgBoxImages[4] = messageBoxImages[4].src;
		msgBoxImages[5] = messageBoxImages[5].src;
		msgBoxImages[6] = messageBoxImages[6].src;
		msgBoxImages[7] = messageBoxImages[7].src;
		msgBoxImages[8] = messageBoxImages[8].src;
	}

	var divBackground = fc_divMessageBox_CreateDivBackground(backgroundOpacity);
	var divMessage = fc_divMessageBox_CreateDivMessage();

	var strHTML;
	strHTML = "<table id=\"tableMessageBox\" cellpadding=\"0\" cellspacing=\"0\">";
	strHTML += "<tr>";
	strHTML += "<td style=\"background-image:url(" + msgBoxImages[0] + "); width:" + topWidth + "px; height:" + topHeight + "px;\"></td>";
	strHTML += "<td style=\"background-image:url(" + msgBoxImages[1] + "); vertical-align:middle;\">";
	strHTML += "<span style=\"float:left; color:#ffffff; font-weight:bold; line-height:27px; vertical-align:middle; font-size:14px; margin-left:5px;\">";

	//对话框标题
	strHTML += strTitle;

	strHTML += "</span>";
	
	//是否显示关闭按钮
	if(isShowClose){
		strHTML += "<img style=\"cursor:pointer;float:right; margin-top:5px;\"";
		strHTML += "onclick=\"MessageBox_Close_Button();\" alt=\"关闭\"";
		strHTML += " src=\"" + msgBoxImages[2] + "\"  />";
	}
	strHTML += "</td>";
	strHTML += "<td style=\"background-image:url(" + msgBoxImages[3] + "); width:" + topWidth + "px;\"></td>";
	strHTML += "</tr>";
	strHTML += "<tr>";
	strHTML += "<td style=\"background-image:url(" + msgBoxImages[4] + ");\"></td>";
	strHTML += "<td style=\"background-color:White;\">";
	strHTML += "<div id=\"div_MessageBox_Content\" style=\"padding:10px;\" >";
	strHTML += "</div>";
	strHTML += "</td>";
	strHTML += "<td style=\"background-image:url(" + msgBoxImages[5] + "); \"></td>";
	strHTML += "</tr>";

	strHTML += "<tr>";
	strHTML += "<td style=\"background-image:url(" + msgBoxImages[6] + "); height:" + bottomHeight + "px;\"></td>";
	strHTML += "<td style=\"background-image:url(" + msgBoxImages[7] + ")\">";
	strHTML += "</td>";
	strHTML += "<td style=\"background-image:url(" + msgBoxImages[8] + "); \"></td>";
	strHTML += "</tr>";
	strHTML += "</table>";
	divMessage.innerHTML = strHTML;

	m_MessageTableID = strID;
	var o = document.getElementById(strID);
	var divMessageBoxContent = document.getElementById('div_MessageBox_Content');
	divMessageBoxContent.appendChild(o);

	//将SELECT隐藏
	if(IsIE6){
		var inputs = document.getElementsByTagName('select');
		var myInputs = o.getElementsByTagName('select');
		for(var i=0; i<inputs.length; i++){
			var isMy = true;
			for(var j=0; j<myInputs.length; j++){
				if(inputs[i].uniqueID == myInputs[j].uniqueID){
					isMy=false;
					break;
				}
			}
			if(isMy)inputs[i].style.display = 'none';
		}
	}

	o.style.display = 'block';
	o.style.visibility = 'visible';
	var divContainHeight = o.offsetHeight;
	var tbMsgBox = document.getElementById('tableMessageBox');
	divBackground.style.display = 'block';
	divMessage.style.display = 'block';
	tbMsgBox.style.position = 'relative';
	//edit by baixiaoyu 
	var mstBoxHeight = (document.documentElement.clientHeight - tbMsgBox.offsetHeight)/2 + GetScrollTop() ;
	if (mstBoxHeight < 0){
		mstBoxHeight = 0;
	}
	tbMsgBox.style.top = mstBoxHeight ;
	tbMsgBox.style.left = (document.documentElement.clientWidth - tbMsgBox.offsetWidth)/2 + GetScrollLeft();
}

//创建覆盖整个页面的层
function fc_divMessageBox_CreateDivBackground(opacity){
    MessageBox_Close();
    
    var msgDiv = document.createElement('div')
    msgDiv.id = 'div_Page_NotEdit';
    msgDiv.style.position = 'absolute';
    msgDiv.style.zIndex = 100;
    msgDiv.style.top = 0;
    msgDiv.style.left = 0;
    msgDiv.style.width = document.body.scrollWidth;
    msgDiv.style.height = document.body.scrollHeight;
    
    if(document.body.scrollHeight < document.documentElement.clientHeight){
		msgDiv.style.height = document.documentElement.clientHeight;
    }
    if(document.body.scrollWidth < document.documentElement.clientWidth){
		msgDiv.style.width = document.documentElement.clientWidth;
    }
    msgDiv.style.backgroundColor = '#666666';
    msgDiv.style.display = 'none';
    msgDiv.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + opacity + ')';
    
    return document.forms[0].appendChild(msgDiv);
}

//创建对话框层
function fc_divMessageBox_CreateDivMessage(){
    var msgDiv = document.createElement('div')
    msgDiv.id = 'div_MessageBox';
    msgDiv.style.position = 'absolute';
    msgDiv.style.zIndex = 101;
    msgDiv.style.top = 0;
    msgDiv.style.left = 0;
    msgDiv.style.width = document.body.scrollWidth;
    msgDiv.style.height = document.body.scrollHeight;
    
    if(document.body.scrollHeight < document.documentElement.clientHeight){
		msgDiv.style.height = document.documentElement.clientHeight;
    }
    if(document.body.scrollWidth < document.documentElement.clientWidth){
		msgDiv.style.width = document.documentElement.clientWidth;
    }
    msgDiv.style.display = 'none';
    msgDiv.style.textAlign = 'left';
    msgDiv.style.overflow = 'hidden';
    
    return document.forms[0].appendChild(msgDiv);
}

//点击关闭按钮
function MessageBox_Close_Button(){
	try
	{
		if(!MessageBox_Closing())
		{
			return;
		}
	}
	catch(ex)
	{}
	MessageBox_Close();
	
    //回调函数
    try{
		MessageBox_Close_Back();
    }
    catch(ex){}
}

//关闭显示的对话框
function MessageBox_Close(){
    var tb = document.getElementById(m_MessageTableID);
    if(tb){
        document.forms[0].appendChild(tb);
        tb.style.display = 'none';
    }
    
    var divBackground = document.getElementById('div_Page_NotEdit')
    if(divBackground){
        divBackground.style.display = 'none';
        document.forms[0].removeChild(divBackground);
        divBackground = null;
    }
    
    var divMessage = document.getElementById('div_MessageBox')
    if(divMessage){
        divMessage.style.display = 'none';
        document.forms[0].removeChild(divMessage);        
    }
    
    //显示SELECT
    if(IsIE6){
        var inputs = document.getElementsByTagName('select');
        for(var i=0; i<inputs.length; i++){
            inputs[i].style.display = 'inline';
        }
    }
    
}

//获取ScrollTop ScrollLeft
function IeTrueBody(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

var w3c=(document.getElementById)? true: false;
var agt=navigator.userAgent.toLowerCase();
var ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1) && (agt.indexOf("omniweb") == -1));

function GetScrollTop(){
	return ie ? IeTrueBody().scrollTop : window.pageYOffset;
}

function GetScrollLeft(){
	return ie ? IeTrueBody().scrollLeft : window.pageXOffset;
}
