﻿ /*************************************************
	Validator v1.05
	code by 我佛山人
	wfsr@msn.com
*************************************************/
 Validator = {
	Require : /.+/,
	Email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
	Phone : /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/,
	Mobile : /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/,
	Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
	Domain : /^[0-9a-z]([a-z0-9\-_]*[a-z0-9])?\.[a-zA-Z]{2,4}$/,
	IdCard : "this.IsIdCard(value)",
	Currency : /^\d+(\.\d+)?$/,
	Number : /^\d+$/,
	Zip : /^[1-9]\d{5}$/,
	QQ : /^[1-9]\d{4,8}$/,
	Integer : /^[-\+]?\d+$/,
	Double : /^[-\+]?\d+(\.\d+)?$/,
	English : /^[A-Za-z]+$/,
	Chinese :  /^[\u0391-\uFFE5]+$/,
	Username : /^[a-z]\w{3,}$/i,
	UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
	IsSafe : function(str){return !this.UnSafe.test(str);},
	SafeString : "this.IsSafe(value)",
	Filter : "this.DoFilter(value, getAttribute('accept'))",
	Limit : "this.limit(value.length,getAttribute('min'),  getAttribute('max'))",
	LimitB : "this.limit(this.LenB(value), getAttribute('min'), getAttribute('max'))",
	Date : "this.IsDate(value, getAttribute('min'), getAttribute('format'))",
	Repeat : "value == document.getElementsByName(getAttribute('to'))[0].value",
	Range : "getAttribute('min') <= (value|0) && (value|0) <= getAttribute('max')",
	Compare : "this.compare(value,getAttribute('operator'),getAttribute('to'))",
	Custom : "this.Exec(value, getAttribute('regexp'))",
	Group : "this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'))",
	ErrorItem : [document.forms[0]],
	ErrorMessage : ["以下原因导致提交失败：\t\t\t\t"],
	Validate : function(theForm, mode){
	//********************************************我改动**************************************************************************
	//var obj = theForm || event.srcElement;
	//改为如下
		if(theForm==null)
			var obj = document.forms[0] || event.srcElement;
		else
			var obj = theForm || event.srcElement;
		if(mode==null) mode = 4;
	//***********************************************我改动结束*******************************************************************
		var count = obj.elements.length;
		this.ErrorMessage.length = 1;
		this.ErrorItem.length = 1;
		this.ErrorItem[0] = obj;
		for(var i=0;i<count;i++){
			with(obj.elements[i]){
				var _dataType = getAttribute("dataType");
				if(typeof(_dataType) == "object" || typeof(this[_dataType]) == "undefined")  continue;
				this.ClearState(obj.elements[i]);
				if(getAttribute("require") == "false" && value == "") continue;
				switch(_dataType){
					case "IdCard" :
					case "Date" :
					case "Repeat" :
					case "Range" :
					case "Compare" :
					case "Custom" :
					case "Group" : 
					case "Limit" :
					case "LimitB" :
					case "SafeString" :
					case "Filter" :
						if(!eval(this[_dataType]))	{
							this.AddError(i, getAttribute("msg"));
						}
						break;
					default :
						if(!this[_dataType].test(value)){
							this.AddError(i, getAttribute("msg"));
						}
						break;
				}
			}
		}
		if(this.ErrorMessage.length > 1){
			mode = mode || 1;
			var errCount = this.ErrorItem.length;
			switch(mode){
			case 2 :
				for(var i=1;i<errCount;i++)
					this.ErrorItem[i].style.color = "red";
			case 1 :
				alert(this.ErrorMessage.join("\n"));
				this.ErrorItem[1].focus();
				break;
			case 3 :
				for(var i=1;i<errCount;i++){
				try{
					var span = document.createElement("SPAN");
					span.id = "__ErrorMessagePanel";
					span.style.color = "red";
					this.ErrorItem[i].parentNode.appendChild(span);
					span.innerHTML = this.ErrorMessage[i].replace(/\d+:/,"*");
					}
					catch(e){alert(e.description);}
				}
				this.ErrorItem[1].focus();
				break;
			//***************************************************************************************************我增加***********
			case 4 :
				alert(this.ErrorMessage[1].replace(/\d+:/,""));
				Validator.ErrorItem[1].focus();
				break;
			case 5://自定义对话框
				Validator.ErrorItem[1].focus();
				_msg_show('操作提示',Validator.ErrorMessage[1].replace(/\d+:/,""), '5',false,'Validator.ErrorItem[1].focus()');
				break;
			//************************************************************************************************增加结束*********
			default :
				alert(this.ErrorMessage.join("\n"));
				break;
			}
			//***********************************************************************我加的控制*********
			return false;
		}
		return true;
	},
	limit : function(len,min, max){
		min = min || 0;
		max = max || Number.MAX_VALUE;
		return min <= len && len <= max;
	},
	LenB : function(str){
		return str.replace(/[^\x00-\xff]/g,"**").length;
	},
	ClearState : function(elem){
		with(elem){
			if(style.color == "red")
				style.color = "";
			var lastNode = parentNode.childNodes[parentNode.childNodes.length-1];
			if(lastNode.id == "__ErrorMessagePanel")
				parentNode.removeChild(lastNode);
		}
	},
	AddError : function(index, str){
		this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index];
		this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length + ":" + str;
	},
	Exec : function(op, reg){
		return new RegExp(reg,"g").test(op);
	},
	compare : function(op1,operator,op2){
		switch (operator) {
			case "NotEqual":
				return (op1 != op2);
			case "GreaterThan":
				return (op1 > op2);
			case "GreaterThanEqual":
				return (op1 >= op2);
			case "LessThan":
				return (op1 < op2);
			case "LessThanEqual":
				return (op1 <= op2);
			default:
				return (op1 == op2);            
		}
	},
	MustChecked : function(name, min, max){
		var groups = document.getElementsByName(name);
		var hasChecked = 0;
		min = min || 1;
		max = max || groups.length;
		for(var i=groups.length-1;i>=0;i--)
			if(groups[i].checked) hasChecked++;
		return min <= hasChecked && hasChecked <= max;
	},
	DoFilter : function(input, filter){
return new RegExp("^.+\.(?=EXT)(EXT)$".replace(/EXT/g, filter.split(/\s*,\s*/).join("|")), "gi").test(input);
	},
	IsIdCard : function(number){
		var date, Ai;
		var verify = "10x98765432";
		var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
		var area = ['','','','','','','','','','','','北京','天津','河北','山西','内蒙古','','','','','','辽宁','吉林','黑龙江','','','','','','','','上海','江苏','浙江','安微','福建','江西','山东','','','','河南','湖北','湖南','广东','广西','海南','','','','重庆','四川','贵州','云南','西藏','','','','','','','陕西','甘肃','青海','宁夏','新疆','','','','','','台湾','','','','','','','','','','香港','澳门','','','','','','','','','国外'];
		var re = number.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/i);
		if(re == null) return false;
		if(re[1] >= area.length || area[re[1]] == "") return false;
		if(re[2].length == 12){
			Ai = number.substr(0, 17);
			date = [re[9], re[10], re[11]].join("-");
		}
		else{
			Ai = number.substr(0, 6) + "19" + number.substr(6);
			date = ["19" + re[4], re[5], re[6]].join("-");
		}
		if(!this.IsDate(date, "ymd")) return false;
		var sum = 0;
		for(var i = 0;i<=16;i++){
			sum += Ai.charAt(i) * Wi[i];
		}
		Ai +=  verify.charAt(sum%11);
		return (number.length ==15 || number.length == 18 && number == Ai);
	},
	IsDate : function(op, formatString){
		formatString = formatString || "ymd";
		var m, year, month, day;
		switch(formatString){
			case "ymd" :
				m = op.match(new RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));
				if(m == null ) return false;
				day = m[6];
				month = m[5]*1;
				year =  (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
				break;
			case "dmy" :
				m = op.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));
				if(m == null ) return false;
				day = m[1];
				month = m[3]*1;
				year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10));
				break;
			default :
				break;
		}
		if(!parseInt(month)) return false;
		month = month==0 ?12:month;
		var date = new Date(year, month-1, day);
        return (typeof(date) == "object" && year == date.getFullYear() && month == (date.getMonth()+1) && day == date.getDate());
		function GetFullYear(y){return ((y<30 ? "20" : "19") + y)|0;}
	},



//*************************************从这里以下的东西是我加的，为了实际操作需要************************************************
	
//以下是回车转换成tab的代码，用法，在form里加：onKeyDown="return Validator.enterKeyDown(event);"
/**
 * 触发指定的事件。
 * @param elem 对象。
 * @eventName 事件名。
 */
fireEvent:function(elem,eventName)
{
  if(!elem || !eventName)
    return;
  try
  {
    if(elem.fireEvent(eventName))//ie is ok,firefox isn't ok
      return;
  }
  catch(e)
  {
    if(eventName.toLowerCase()=="onchange" && elem.onchange)
    {
      elem.onchange();
      return;
    }
    if(eventName.toLowerCase()=="onclick" && elem.onclick)
    {
      elem.onclick();
      return;
    }
    var eventBodyObj=elem.getAttribute(eventName);
    if(!eventBodyObj)
      return;
    var eventBody=eventBodyObj.toString();
    if(eventBody=="undefined")
      return;
    var i=eventBody.indexOf("{");
    if(i>-1)
      eventBody=eventBody.substring(i+1);
    i=eventBody.lastIndexOf("}");
    if(i>-1)
      eventBody=eventBody.substring(0,i);
    eventBody=eventBody.replace(/document/ig,"elem.document");
    eval(eventBody); 
  }   
},

/**
 * 取激发事件的对象。
 * @param event 事件体。
 */
eventTarget:function(event)
{
  // Internet Explorer
  if (event.srcElement)
    return event.srcElement;
  // W3C DOM
  if (event.target)
    return event.target;
},

 enterKeyDown:function(event)
 {
   event || (event=window.event);
   //ev.keyCode==13)ev.keyCode=9
   if(event.keyCode!=13)
	  return;
   var elem=this.eventTarget(event);
   if(!elem)
	   return;
   var tagName=elem.tagName.toLowerCase();
   if(tagName=="input")
   {
     switch(elem.type.toLowerCase())
     {
        case "button":
          if(elem.getAttribute("enterfireclick")!=null && elem.onclick!="")
            this.fireEvent(elem,"onclick");
          break;
        case "image":
        case "reset":
        case "submit":
          break;
        case "text":
        case "password":
        case "checkbox":
        case "radio":
          this.focusNextInput(event);
          break;
        default:
          break;
      }
   }
   else if(tagName=="select")
   {
	   this.focusNextInput(event);//elem'type="select-one","select-multiple":
   }
   else if(tagName=="a" || tagName=="img")
   {
     if(elem.getAttribute("enterfireclick")!=null && elem.onclick!="")//在报表中会存在很多链接，所以通过enterfireclick设定
       this.fireEvent(elem,"onclick");
     else
       this.focusNextInput(event);
   }
 },
 
	//判断浏览器的类型
	isIE : ( /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent) ),
	isIE5 : ( this.isIE && /msie 5\.0/i.test(navigator.userAgent) ),
	isOpera: /opera/i.test(navigator.userAgent),
	isKHtml : /Konqueror|Safari|KHTML/i.test(navigator.userAgent),
	isFirefox: /Firefox/i.test(navigator.userAgent),
	isNS: /Netscape/i.test(navigator.userAgent),
	/**
	* 将焦点移到下一输入框。
	* @param event 事件体。
	*/
	focusNextInput:function(event)
	{
		if(this.isIE)
		{
		 event.keyCode=9;
		 return;
		}
		var elem=this.eventTarget(event);   
		if(!elem.form)
		 return;   
		var elemArr=elem.form.elements;
		for(var i=0;i<elemArr.length;i++)
		{     
		 if(elemArr[i]==elem && i<elemArr.length-1)
		 {
		   for(var j=i+1;j<elemArr.length;j++)
		   {
			 var tagName=elemArr[j].tagName.toLowerCase();
			 if(tagName=="input" && (elemArr[j].type=="text" || elemArr[j].type=="password") ||
				tagName=="select" || tagName=="textarea")
			 {
			   if(event.cancelable)
				 event.preventDefault();//不起作用，以后要研究
			   elemArr[j].focus();
			   return;
			 }
		   }
		 }
		}
	},
//以下是控制输入时间的代码，调用，在文本框里加： onKeyDown="return Validator.chkInputDate(this)"
	CheckInputDate:function(obj){
		var str=obj.value;
		document.selection.createRange().text='';
		var strLength=obj.value.length;
		if(event.keyCode==13||event.keyCode==9||keyCode==8)return true;
		var keyCode = window.event.keyCode;
		if((keyCode>=96&&keyCode<=105)||keyCode==109||(keyCode>=48&&keyCode<=57)||keyCode==189){
			if(strLength==10)return this.IsDate(obj.value, "ymd");
			if(strLength==0){
				//只能输入1，2
				if(keyCode==97||keyCode==49||keyCode==98||keyCode==50){
					return true;
				}
				//如果录入3-9则前面家19
				if((keyCode>=99&&keyCode<=105)||(keyCode>=51&&keyCode<=57)){
					obj.value=obj.value+"19";
					return true;
				}
				return false;
			}/*
			if(strLength==1){
				//当前一位为1时只能输入9
				if(1==obj.value.substring(0,1)&&(keyCode==105||keyCode==57)){
					return true;
				}
				//当前一位为2时只能输入0,1
				if(2==obj.value.substring(0,1)&&(keyCode==96||keyCode==48||keyCode==97||keyCode==49)){
					return true;
				}
				return false;
			}*/
			if(strLength>=1&&strLength<4&&keyCode!=109&&keyCode!=189)return true;
			if(strLength==4){
				//当"1"时 返回true
				if(keyCode==97||keyCode==49||keyCode==96||keyCode==48){				
						obj.value=obj.value+"-";
						return true;
				}
				//当是"-"时 返回true
				if(keyCode==109||keyCode==189){
						return true;
	
				}
				//当大于"1"时
				if(!(keyCode==97||keyCode==49||keyCode==96||keyCode==48||keyCode==109||keyCode==189)){
					obj.value=obj.value+"-0";
						return true;
				}
				return false;
			}
			if(strLength==5){
				//只能输入0，1
				if(keyCode==97||keyCode==49||keyCode==96||keyCode==48){
					return true;
				}
				//输入2-9前面自动加0	
				if(!(keyCode==97||keyCode==49||keyCode==96||keyCode==48||keyCode==109||keyCode==189)){
					obj.value=obj.value+"0";
					return true;
				}	
				return false;
			}
			if(strLength==6){
				//只能输入1-9
				if(0==obj.value.substring(5,6)&&(keyCode!=109&&keyCode!==189&&keyCode!=96&&keyCode!=48)){
						return true;
				}
				//当前一位为1时只能输入0-2
				if(1==obj.value.substring(5,6)&&((keyCode>=96&&keyCode<=98)||(keyCode>=48&&keyCode<=50))){
					return true;
				}
				return false;
			}
			if(strLength==7){
				//当是"-"时 返回true
				if(keyCode==109||keyCode==189){
						return true;
	
				}
			
				//当"0,1,2,3"时 返回true
				if((keyCode>=96&&keyCode<=99)||(keyCode>=48&&keyCode<=51)){				
						obj.value=obj.value+"-";
						return true;
				}
				//当"4-9"时自动加"-0"
				if((keyCode>=100&&keyCode<=105)||(keyCode>=52&&keyCode<=57)){				
						obj.value=obj.value+"-0";
						return true;
				}			
				return false;
			}
			if(strLength==8){
				//当"0,1,2,3"时 返回true
				if((keyCode>=96&&keyCode<=99)||(keyCode>=48&&keyCode<=51)){				
						return true;
				}
				//当"4-9"时 自动加0
				if((keyCode>=100&&keyCode<=105)||(keyCode>=52&&keyCode<=57)){	
					obj.value=obj.value+"0";			
						return true;
				}
				return false;
			}
			if(strLength==9){
				//当前一位为3时 只能输入0，1
				if(3==obj.value.substring(8,9)&&(keyCode>=96&&keyCode<=97)||(keyCode>=48&&keyCode<=49)){				
						return true;
				}
				//当前一位为0，1，2时 输入0-9
				if( (0<=obj.value.substring(8,9)&&2>=obj.value.substring(8,9))&&((keyCode>=96&&keyCode<=105)||(keyCode>=48&&keyCode<=57))){
					return true;
				}
				return false;
			}
			return false;
		}else{
			return false;
		}
	}

	
 }


//////////////////////////////////
//自定义队话框类

document.write('\
<style type="text/css"><!--\
BODY{margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;}\
.play78_dialog_MenuWhite{font-size: 9pt;color:White;font-family:宋体;font-weight: bold;}\
.play78_dialog_btn1 {border-right: #7b9ebd 1px solid; padding-right: 2px; border-top: #7b9ebd 1px solid; padding-left: 2px;font-size: 12px; filter: progid:dximagetransform.microsoft.gradient(gradienttype=0, startcolorstr=#ffffff, endcolorstr=#cecfde); border-left: #7b9ebd 1px solid; cursor: hand; color: black; padding-top: 2px; border-bottom: #7b9ebd 1px solid; width:70;}\
.play78_dialog_btn2 {border-right: #7ebf4f 1px solid; padding-right: 2px; border-top: #7ebf4f 1px solid; padding-left: 2px; font-size: 12px; filter: progid:dximagetransform.microsoft.gradient(gradienttype=0, startcolorstr=#ffffff, endcolorstr=#cae4b6); border-left: #7ebf4f 1px solid; cursor: hand; color: black; padding-top: 2px; border-bottom: #7ebf4f 1px solid; width:70;}\
#dialogBoxBG{position:absolute;left:230px;top:100px;z-index:10000;visibility:hidden;}\
#MW_mask{position:absolute;left:0px;top:0;filter:alpha(opacity=0);visibility:hidden;}\
.play78_dialog_noborder {border: 0px;}.play78_dialog_noborder td{border: 0px;padding:0px}\
}--></style>\
	');
function dialog(initName){
	var titile = '';
	var width = 358;
	var height = 100;
	var src = "";
	var showCancel=false;
	var path = "/images/dialog/";
	
	this.o=0;
	this.opacity=10;
	this.doAlpha;
	this.name=initName;
	this.speed=5;
	//var imgPath = '';	
	var sFunc = '<input id="dialogOk" type="button" value="确 认" class="play78_dialog_btn1" onmouseover="this.className=\'play78_dialog_btn2\'" onmouseout="this.className=\'play78_dialog_btn1\'" onclick="'+this.name+'.MW_Method(1);" /> <input id="dialogCancel" type="button" value="取 消" class="play78_dialog_btn1" onmouseover="this.className=\'play78_dialog_btn2\'" onmouseout="this.className=\'play78_dialog_btn1\'" onclick="'+this.name+'.MW_Method(2);" />';
	var sClose = '<input type="image" class="play78_dialog_noborder" style="height:18px" id="dialogBoxClose" onclick="'+this.name+'.MW_Method(0);" src="' + path + 'dialogClose0.gif" border="0" width="17" height="17" onmouseover="this.src=\'' + path + 'dialogCloseF.gif\';" onmouseout="this.src=\'' + path + 'dialogClose0.gif\';" align="absmiddle" />';
	var sBody = '\
		<table id="dialogBodyBox" class="play78_dialog_noborder" align="center" cellpadding="0" cellspacing="0" width="100%">\
			<tr height="10"><td colspan="4"></td></tr>\
			<tr>\
				<td  style="width:20px"></td>\
				<td width="20" style="text-align: center" valign="absmiddle"><img id="dialogBoxFace" border="0" src=""/></td>\
				<td id="dialogMsg" style="color:#315100;font-size:14px;font-weight:bold;line-height:125%;" align="left"></td>\
				<td style="width:20px"></td>\
			</tr>\
			<tr height="10"><td colspan="4" style="text-align: center"></td></tr>\
			<tr><td id="dialogFunc" colspan="4" style="text-align: center">' + sFunc + '</td></tr>\
			<tr height="10"><td colspan="4"style="text-align: center"></td></tr>\
		</table>\
	';
	var sBox = '\
		<table id="dialogBox" width="' + width + '" class="play78_dialog_noborder" cellpadding="0" cellspacing="0" style="border:1px solid #000;display:none;z-index:10;">\
			<tr height="26">\
				<td style="background:url(/images/dialog/tit_dialog.gif)">\
					<table onselectstart="return false;" style="-moz-user-select:none;" width="100%" border="0" cellpadding="0" cellspacing="0" class="play78_dialog_noborder">\
						<tr>\
							<td style="width:6px"></td>\
							<td id="dialogBoxTitle" onmousedown="'+this.name+'.moveStart(event, \'dialogBox\')" style="color:#2B4801;cursor:move;font-size:12px;font-weight:bold;text-align:left;">&nbsp;</td>\
							<td id="dialogClose" style="width:18px" align="right" valign="middle">\
								' + sClose + '\
							</td>\
							<td style="width:6px"></td>\
						</tr>\
					</table>\
				</td>\
			</tr>\
			<tr id="dialogHeight" style="height:' + height + '">\
				<td id="dialogBody" style="background:url(/images/dialog/bg_dialog.gif) left top repeat-x #FFF;">' + sBody + '</td>\
			</tr>\
		</table>\
		<div id="dialogBoxShadow" style="display:none;z-index:9;" class="play78_dialog_noborder"></div>\
	';
	var sBG = '\
		<div id="dialogBoxBG"  class="play78_dialog_noborder" style="position:absolute;top:0px;left:0px;width:100%;height:100%;background:url(images/blank.gif);"></div>\
<img id=\"MW_mask\" src=\"'+path+'mask.gif\" alt=\"\" width=\"100%\" height=\"'+getPageSize()[1]+'\" \/>\
';
	function $(_sId){return document.getElementById(_sId)}
	this.show = function(){
		showCancel==true  ? this.button('dialogCancel', '') : $('dialogCancel').style.display = 'none';
		$('dialogOk').focus();
		this.middle('dialogBox');
		this.shadow();
		$("MW_mask").style.visibility="visible";
		clearInterval(this.doAlpha);
		this.doAlpha=setInterval(this.name+".fadeIn()",this.speed);
		this.hideSelect(true);//隐藏select
		//$("dialogBoxBG").style.width = document.body.scrollWidth;
		//$("dialogBoxBG").style.height = document.body.scrollHeight;
	}
	this.reset = function(){
		
		$('dialogBox').style.display='none';$('dialogBoxBG').style.display='none';$('dialogBoxShadow').style.display = "none";$('dialogBody').innerHTML = sBody;
		getBrowserDocument().style.overflow = "";
		clearInterval(this.doAlpha);
		this.hideSelect(false);//隐藏select
		this.doAlpha=setInterval(this.name+".fadeOut()",this.speed);
		}	
	this.html = function(_sHtml){$("dialogBody").innerHTML = _sHtml;this.show();}
	this.init = function(){
		$('dialogCase') ? $('dialogCase').parentNode.removeChild($('dialogCase')) : function(){};
		var oDiv = document.createElement('span');
		oDiv.id = "dialogCase";
		oDiv.innerHTML = sBG + sBox;
		document.body.appendChild(oDiv);
		$('dialogBoxBG').style.height = document.body.scrollHeight;
	}
	this.button = function(_sId, _sFuc){
		if($(_sId)){
			$(_sId).style.display = '';
			if($(_sId).addEventListener){
				if($(_sId).act){$(_sId).removeEventListener('click', function(){eval($(_sId).act)}, false);}
				$(_sId).act = _sFuc;
				$(_sId).addEventListener('click', function(){eval(_sFuc)}, false);
			}else{
				if($(_sId).act){$(_sId).detachEvent('onclick', function(){eval($(_sId).act)});}
				$(_sId).act = _sFuc;
				$(_sId).attachEvent('onclick', function(){eval(_sFuc)});
			}
		}
	}
	this.shadow = function(){
		var oShadow = $('dialogBoxShadow');
		var oDialog = $('dialogBox');
		oShadow['style']['position'] = "absolute";
		oShadow['style']['background']	= "#000";
		oShadow['style']['display']	= "";
		oShadow['style']['opacity']	= "0.2";
		oShadow['style']['filter'] = "alpha(opacity=20)";		
		oShadow['style']['top'] = oDialog.offsetTop + 6;
		oShadow['style']['left'] = oDialog.offsetLeft + 6;
		oShadow['style']['width'] = oDialog.offsetWidth;
		oShadow['style']['height'] = oDialog.offsetHeight;
	}
	this.open = function(_sUrl, _sMode){
		this.show();
		if(!_sMode || _sMode == "no" || _sMode == "yes"){
			$("dialogBody").innerHTML = "<iframe width='100%' height='100%' src='" + _sUrl + "' frameborder='0' scrolling='" + _sMode + "'></iframe>";
		}
	}
	this.showWindow = function(_sUrl, _iWidth, _iHeight, _sMode, _sTitle){
		var oWindow;
		var sLeft = (screen.width) ? (screen.width - _iWidth)/2 : 0;
		var iTop = -40 + (document.documentElement.scrollTop + document.documentElement.clientHeight - _iHeight)/2;
		iTop = iTop > 0 ? iTop : (document.documentElement.scrollTop + document.documentElement.clientHeight - _iHeight)/2;
		var sTop = (document.documentElement.scrollTop + document.documentElement.clientHeight) ? iTop : 0;
		if(window.showModalDialog && _sMode == "m"){
			oWindow = window.showModalDialog(_sUrl,_sTitle,"dialogWidth:" + _iWidth + "px;dialogheight:" + _iHeight + "px");
		} else {
			oWindow = window.open(_sUrl, _sTitle, 'height=' + _iHeight + ', width=' + _iWidth + ', top=' + sTop + ', left=' + sLeft + ', toolbar=no, menubar=no, scrollbars=' + _sMode + ', resizable=no,location=no, status=no');
			this.reset();
		}
	}
	this.event = function(_sMsg, _sOk, _sCancel, _sClose){
		$('dialogFunc').innerHTML = sFunc;
		$('dialogClose').innerHTML = sClose;
		$('dialogBodyBox') == null ? $('dialogBody').innerHTML = sBody : function(){};
		
		$('dialogMsg') ? $('dialogMsg').innerHTML = _sMsg  : function(){};
		_sOk && _sOk != "" ? this.button('dialogOk', _sOk) : $('dialogOk').style.display = 'none';
		////_sOk ? this.button('dialogOk', _sOk) : _sOk == "" ? function(){} : $('dialogCancel').style.display = 'none';
		////_sCancel ? this.button('dialogCancel', _sCancel) : _sCancel == "" ? function(){} : $('dialogCancel').style.display = 'none';
		_sClose ? this.button('dialogBoxClose', _sClose) : function(){};
		this.show();
		showCancel==true  ? this.button('dialogCancel', _sCancel) : $('dialogCancel').style.display = 'none';
	}
	this.set = function(_oAttr, _sVal){
		var oShadow = $('dialogBoxShadow');
		var oDialog = $('dialogBox');
		var oHeight = $('dialogHeight');

		if(_sVal != ''){
			switch(_oAttr){
				case 'title':
					$('dialogBoxTitle').innerHTML = _sVal;
					title = _sVal;
					break;
				case 'showCancel':
					showCancel = _sVal;
					break;
				case 'width':
					oDialog['style']['width'] = _sVal;
					width = _sVal;
					break;
				case 'height':
					oHeight['style']['height'] = _sVal;
					height = _sVal;
					break;
				case 'msg':
					$('dialogMsg') ? $('dialogMsg').innerHTML = _sVal  : function(){};
					break;
				case 'icon':
					if(parseInt(_sVal) > 0){
						$('dialogBoxFace') ? $('dialogBoxFace').src = path + _sVal + '.gif' : function(){};						
					}else{
						$('dialogBoxFace') ? $('dialogBoxFace').src = _sVal : function(){};
					}
					src = _sVal;
					break;
			}
		}
		this.middle('dialogBox');
		oShadow['style']['top'] = oDialog.offsetTop + 6;
		oShadow['style']['left'] = oDialog.offsetLeft + 6;
		oShadow['style']['width'] = oDialog.offsetWidth;
		oShadow['style']['height'] = oDialog.offsetHeight;
	}
	this.moveStart = function (event, _sId){
		var oObj = $(_sId);
		oObj.onmousemove = mousemove;
		oObj.onmouseup = mouseup;
		oObj.setCapture ? oObj.setCapture() : function(){};
		oEvent = window.event ? window.event : event;
		var dragData = {x : oEvent.clientX, y : oEvent.clientY};
		var backData = {x : parseInt(oObj.style.top), y : parseInt(oObj.style.left)};
		function mousemove(){
			var oEvent = window.event ? window.event : event;
			var iLeft = oEvent.clientX - dragData["x"] + parseInt(oObj.style.left);
			var iTop = oEvent.clientY - dragData["y"] + parseInt(oObj.style.top);
			oObj.style.left = iLeft;
			oObj.style.top = iTop;
			$('dialogBoxShadow').style.left = iLeft + 6;
			$('dialogBoxShadow').style.top = iTop + 6;
			dragData = {x: oEvent.clientX, y: oEvent.clientY};
			
		}
		function mouseup(){
			var oEvent = window.event ? window.event : event;
			oObj.onmousemove = null;
			oObj.onmouseup = null;
			if(oEvent.clientX < 1 || oEvent.clientY < 1 || oEvent.clientX > document.body.clientWidth || oEvent.clientY > document.body.clientHeight){
				oObj.style.left = backData.y;
				oObj.style.top = backData.x;
				$('dialogBoxShadow').style.left = backData.y + 6;
				$('dialogBoxShadow').style.top = backData.x + 6;
			}
			oObj.releaseCapture ? oObj.releaseCapture() : function(){};
		}
	}
	this.hideModule = function(_sType, _sDisplay){
		var aIframe = parent.document.getElementsByTagName("iframe");aIframe=0;
		var aType = document.getElementsByTagName(_sType);
		var iChildObj, iChildLen;
		for (var i = 0; i < aType.length; i++){
			aType[i].style.display	= _sDisplay;
		}
		for (var j = 0; j < aIframe.length; j++){
			iChildObj = document.frames ? document.frames[j] : aIframe[j].contentWindow;
			iChildLen = iChildObj.document.body.getElementsByTagName(_sType).length;
			for (var k = 0; k < iChildLen; k++){
				iChildObj.document.body.getElementsByTagName(_sType)[k].style.display = _sDisplay;
			}
		}
	}
	this.middle = function(_sId){
		/*
		var sClientWidth = parent ? parent.document.documentElement.clientWidth : document.documentElement.clientWidth;
		var sClientHeight = parent ? parent.document.documentElement.clientHeight : document.documentElement.clientHeight;
		var sScrollTop = parent ? parent.document.documentElement.scrollTop : document.documentElement.scrollTop;
		$(_sId)['style']['display'] = '';
		$(_sId)['style']['position'] = "absolute";
		$(_sId)['style']['left'] = (document.documentElement.clientWidth / 2) - ($(_sId).offsetWidth / 2);
		var sTop = -40 + (sClientHeight / 2 + sScrollTop) - ($(_sId).offsetHeight / 2);		
		$(_sId)['style']['top'] = sTop > 0 ? sTop : (sClientHeight / 2 + sScrollTop) - ($(_sId).offsetHeight / 2);
		*/
		var posLeft,posTop
		var winWidth = $(_sId).clientWidth;
		var winHeight = $(_sId).clientHeight;
		var pageScroll=getPageScroll();
		var pageSize=getPageSize();
		//解决firefox下滚动条会复位
		var scrollTop = getBrowserDocument().scrollTop; 
		var scrollLeft = getBrowserDocument().scrollLeft; 
		getBrowserDocument().scrollTop = scrollTop;   
		getBrowserDocument().scrollLeft = scrollLeft; 
		//初始化窗口位置
		posLeft=pageScroll[0]+(pageSize[2]-winWidth)/2;
		posTop=pageScroll[1]+(pageSize[3]-winHeight)/2;
		$(_sId).style.left =posLeft +"px";
		$(_sId).style.top = posTop + "px"; 
		$(_sId)['style']['display'] = '';
		$(_sId)['style']['position'] = "absolute";
	}
	
//
	this.fadeIn=function(){
		if(this.o<this.opacity){
			setOpacity($("MW_mask"),this.o)
			this.o+=5;
		}else{
			clearInterval(this.doAlpha)
		}
	}
	//淡出
	this.fadeOut=function(){
		try{
		if(this.o>0){
			setOpacity($("MW_mask"),this.o)
			this.o-=5;
		}else{
			clearInterval(this.doAlpha)
			$("MW_mask").style.visibility="hidden";
			this.hideSelect(false)
		}
		}
		catch(e){}
	}
	//隐藏所有select标签
	this.hideSelect=function(hide){
		var elemSelect = document.getElementsByTagName('select');
		var intN=elemSelect.length;	
		for(var i=0;i<intN;i++){
			if(hide){
				elemSelect[i].style.visibility="hidden";
			}else{
				elemSelect[i].style.visibility="visible";
			}
		}
	}
	//按钮事件
	this.MW_Method=function(method){
		this.callback(method)
	}
	//回调函数
	this.callback=function(args){this.reset()}
//
}
//判断浏览器的类型
function getBrowser()
{
	var ua = navigator.userAgent.toLowerCase ();
	var os = new Object();
	os.isFirefox = ua.indexOf ("gecko") != -1;
	os.isOpera = ua.indexOf ("opera") != -1;
	os.isIE = !os.isOpera && ua.indexOf ("msie") != -1;
	return os;
}	
//判断文档类型
function getBrowserDocument()
{
   var _dcw = document.documentElement.clientHeight;
   var _dow = document.documentElement.offsetHeight;
   var _bcw = document.body.clientHeight;
   var _bow = document.body.offsetHeight;		   
   if(_dcw == 0) return document.body;
   if(_dcw == _dow) return document.documentElement;		   
   if(_bcw == _bow && _dcw != 0) 
	 return document.documentElement;
   else
	 return document.body;
}	
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
function getPageSize(){ 
	 var xScroll, yScroll; 
	 if (window.innerHeight && window.scrollMaxY) { 
	  xScroll = document.body.scrollWidth;
	  yScroll = window.innerHeight + window.scrollMaxY;
	 } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
	  xScroll = document.body.scrollWidth;
	  yScroll = document.body.scrollHeight;
	 } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
	  xScroll = document.body.offsetWidth;
	  yScroll = document.body.offsetHeight;
	 } 
	 var windowWidth, windowHeight;
	 if (self.innerHeight) { // all except Explorer
	  windowWidth = self.innerWidth;
	  windowHeight = self.innerHeight;
	 } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
	  windowWidth = document.documentElement.clientWidth;
	  windowHeight = document.documentElement.clientHeight;
	 } else if (document.body) { // other Explorers
	  windowWidth = document.body.clientWidth;
	  windowHeight = document.body.clientHeight;
	 }  
	 // for small pages with total height less then height of the viewport
	 if(yScroll < windowHeight){
	  pageHeight = windowHeight;
	 } else { 
	  pageHeight = yScroll;
	 }
	 // for small pages with total width less then width of the viewport
	 if(xScroll < windowWidth){ 
	  pageWidth = windowWidth;
	 } else {
	  pageWidth = xScroll;
	 }
	 arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	 return arrayPageSize;
}
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
function getPageScroll(){
	 var XScroll,yScroll;
	 if (self.pageXOffset) {
		XScroll = self.pageXOffset;
	 } else if (document.documentElement && document.documentElement.scrollLeft){  // Explorer 6 Strict
		XScroll = document.documentElement.scrollLeft;
	 } else if (document.body) {// all other Explorers
		XScroll = document.body.scrollLeft;
	 }
	 if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	 } else if (document.documentElement && document.documentElement.scrollTop){  // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	 } else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	 }
	 arrayPageScroll = new Array(XScroll,yScroll) 
	 return arrayPageScroll;
}
//设置不透明度
function setOpacity(obj,opacity)
{
	if(opacity >=1 ) opacity = opacity / 100;				
	try{obj.style.opacity = opacity; }catch(e){}			
	try{if(obj.filters) obj.filters("alpha").opacity = opacity * 100;}catch(e){}
}
//以上是固定方法

function _msg_show(title,msg, icon, showCancel,click_ok, click_no, top, left, width, height)
{
    click_ok = click_ok ? click_ok : ' ';
    click_no = click_no ? click_no : ' ';
    if(!title)title = '【系统提示信息】';
    //top = top ? top : 40;
    title = '<span class=play78_dialog_MenuWhite>'+title+'</span>';
    
    dg=new dialog("dg");
	
    dg.init();
	if(showCancel==true||showCancel=="true")dg.set("showCancel",true);
    dg.set('icon', icon);   // smile
    dg.set('title', title);

    if (width)
    {
        dg.set('width', width);
    }
    if (height)
    {
        dg.set('height', height);
    }

    dg.event(msg, click_ok, click_no, click_no);

    if (left)
    {
         document.getElementById('dialogBox')['style']['left'] = left;
         document.getElementById('dialogBoxShadow')['style']['left'] = left;
    }
    if (top)
    {
         document.getElementById('dialogBox')['style']['top'] = top;
         document.getElementById('dialogBoxShadow')['style']['top'] = top;
    }
}

function _show_window(title,url, sModel,top, left, width, height)
{
    
    dg=new dialog("dg");
	
    dg.init();
    dg.set('icon', 6);   // smile
    dg.set('title', title);

    if (width)
    {
        dg.set('width', width);
    }
    if (height)
    {
        dg.set('height', height);
    }

	dg.open(url,sModel);
		    if (left)
    {
         document.getElementById('dialogBox')['style']['left'] = left;
         document.getElementById('dialogBoxShadow')['style']['left'] = left;
    }
    if (top)
    {
         document.getElementById('dialogBox')['style']['top'] = top;
         document.getElementById('dialogBoxShadow')['style']['top'] = top;
    }
	
}

