﻿var RootDir='';var ExName='.htm';
var g_agt = navigator.userAgent.toLowerCase();
var is_opera = (g_agt.indexOf("opera") != -1);
var g_title = "";
var g_iframeno = 0;
var g_dialog_sWord;
var g_dialog_sButton;
var g_dialog_sAction;
var g_dialog_excss;
function $(id){return document.getElementById(id)}
/*************************************对话框************************************************/
function exist(s)
{
	return $(s)!=null;
}
function myInnerHTML(idname, html)
{
	if (exist(idname))
	{
		$(idname).innerHTML = html;
	}
}
function dialog(v_w, v_h, v_title , if_close)
{
	var width = v_w;
	var height = v_h;
	var title = v_title;
	g_title = title;
	
	var sBox = '\
		<div id="dialogBox" style="display:none;width:'+width+'px;">\
			<div id="tit" >\
			    <h1>'+title+'</h1>\
				';
	if (if_close=="yes")
	{
	    sBox += '<span><a href="javascript:" onclick="javascript:new dialog().close();">关闭</a></span>';
	}
	sBox +=	'\
						   </div>\
						   <div id="dialogBody" style="height:' + (height-28) + 'px"></div>\
	';
	sBox += '\
			</div>\
		    <div id="dialogBoxShadow" style="display:none;z-index:19998;"></div>\
	';
	
	var sIfram = '\
		<iframe id="dialogIframBG" name="dialogIframBG" frameborder="0" marginheight="0" marginwidth="0" hspace="0" vspace="0" scrolling="no"></iframe>\
	';
	
	var sBG = '\
		<div id="dialogBoxBG"></div>\
	';
	
	this.init = function()
	
	{
		$('dialogCase') ? $('dialogCase').parentNode.removeChild($('dialogCase')) : function(){};
		
		
		var oDiv = document.createElement('span');
		oDiv.id = "dialogCase";
		if (!is_opera)
		{
			oDiv.innerHTML = sBG + sIfram + sBox;
		}
		else
		{
			oDiv.innerHTML = sBG + sBox;
		}
		document.body.appendChild(oDiv);
		Drag.init(tit, dialogBox);
	}

	this.open = function(_sUrl)
	{		
		this.show();
		var openIframe = "<iframe width='100%' height='100%' name='iframe_parent' id='iframe_parent' src='" + _sUrl + "' frameborder='0' scrolling='auto'></iframe>";
		myInnerHTML('dialogBody', openIframe);
	}

	this.show = function()
	{

		this.middle('dialogBox');
		if ($('dialogIframBG'))
		{
			$('dialogIframBG').style.top = $('dialogBox').style.top;
			$('dialogIframBG').style.left = $('dialogBox').style.left;
			$('dialogIframBG').style.width = $('dialogBox').offsetWidth + "px";
			$('dialogIframBG').style.height = $('dialogBox').offsetHeight + "px";
			$('dialogIframBG').style.display = 'block';
		}
		if (!is_opera) {
			this.shadow();
		}
	}
	
	this.reset = function()
	{
		this.close();
	}

	this.close = function()
	{
		if (window.removeEventListener) 
		{
			window.removeEventListener('resize', this.event_b, false);
			window.removeEventListener('scroll', this.event_b, false);
		} 
		else if (window.detachEvent) 
		{
			try {
				window.detachEvent('onresize', this.event_b);
				window.detachEvent('onscroll', this.event_b);
			} catch (e) {}
		}
		if ($('dialogIframBG')) {
			$('dialogIframBG').style.display = 'none';
		}
		$('dialogBox').style.display='none';
		$('dialogBoxBG').style.display='none';
		$('dialogBoxShadow').style.display = "none";
		if (typeof(parent.onDialogClose) == "function")
		{
			parent.onDialogClose($('dialogBoxTitle').innerHTML);
		}
	}

	this.shadow = function()
	{
		this.event_b_show();
		if (window.attachEvent)
		{
			window.attachEvent('onresize', this.event_b);
			window.attachEvent('onscroll', this.event_b);
		}
		else
		{
			window.addEventListener('resize', this.event_b, false);
			window.addEventListener('scroll', this.event_b, false);
		}
	}
	
	this.event_b = function()
	{
		var oShadow = $('dialogBoxShadow');
		
		if (oShadow.style.display != "none")
		{
			if (this.event_b_show)
			{
				this.event_b_show();
			}
		}
	}
	
	this.event_b_show = function()
	{
		var oShadow = $('dialogBoxShadow');
		oShadow['style']['position'] = "absolute";
		oShadow['style']['display']	= "";		
		oShadow['style']['opacity']	= "0.5";
		oShadow['style']['filter'] = "alpha(opacity=50)";
		oShadow['style']['background']	= "#000";
		var sClientWidth =  document.body.offsetWidth;
		var sClientHeight = (document.body.offsetHeight>document.documentElement.clientHeight ? document.body.offsetHeight : document.documentElement.clientHeight);
		var sScrollTop = parent ? (parent.document.body.scrollTop+parent.document.documentElement.scrollTop) : (document.body.scrollTop+document.documentElement.scrollTop);
		oShadow['style']['top'] = '0px';
		oShadow['style']['left'] = '0px';
		oShadow['style']['width'] = sClientWidth + "px";
		oShadow['style']['height'] = (sClientHeight + sScrollTop) + "px";
	}

	this.middle = function(_sId)
	{
		$(_sId)['style']['display'] = '';
		$(_sId)['style']['position'] = "absolute";

		var sClientWidth = parent.document.body.clientWidth;
		var sClientHeight = parent.document.body.clientHeight;
		var sScrollTop = parent.document.body.scrollTop+parent.document.documentElement.scrollTop;

		var sleft = (sClientWidth - $(_sId).offsetWidth) / 2;
		var iTop = sScrollTop + 90;
		var sTop = iTop > 0 ? iTop : 0;

		$(_sId)['style']['left'] = sleft + "px";
		$(_sId)['style']['top'] = sTop + "px";
	}
}

function openWindow(_sUrl, _sWidth, _sHeight, _sTitle /*,_sNeedHead*/)
{
	var oEdit = new dialog(_sWidth, _sHeight, _sTitle,'yes');
	oEdit.init();
	oEdit.open(_sUrl);
}


function openAlert(_sWord, _sButton , _sWidth, _sHeight, _sTitle , _sAction)
{
    var html = '<ul class="MessageBox">\
			     <li class="alert_tit">\
				  '+_sWord+'\
				 </li>\
			    <li class="btn">\
				   <button title="'+_sButton+'" class="rb1-12" onclick="javascript:'+_sAction+'" >'+_sButton+'</button>\
			    </li>\
		       </ul>';
	var oEdit = new dialog(_sWidth, _sHeight, _sTitle,'');
	oEdit.init();
	oEdit.show();
	myInnerHTML('dialogBody', html);
}function openMsg(_sWord, _sButton , _sWidth, _sHeight, _sTitle , _sAction)
{
    var html = '<ul class="MessageBox">\
			     <li class="msg_tit">\
				  '+_sWord+'\
				 </li>\
			    <li class="btn">\
				   <button title="'+_sButton+'" class="rb1-12" onclick="javascript:'+_sAction+'" >'+_sButton+'</button>\
			    </li>\
		       </ul>';
	var oEdit = new dialog(_sWidth, _sHeight, _sTitle,'');
	oEdit.init();
	oEdit.show();
	myInnerHTML('dialogBody', html);
}

/**
 * Base class of Drag
 * @example:
 * Drag.init( header_element, element );
 */
var Drag = {
	// 对这个element的引用，一次只能拖拽一个Element
	obj: null , 
	/**
	 * @param: elementHeader	used to drag..
	 * @param: element			used to follow..
	 */
	init: function(elementHeader, element) {
		// 将 start 绑定到 onmousedown 事件，按下鼠标触发 start
		elementHeader.onmousedown = Drag.start;
		// 将 element 存到 header 的 obj 里面，方便 header 拖拽的时候引用
		elementHeader.obj = element;
		// 初始化绝对的坐标，因为不是 position = absolute 所以不会起什么作用，但是防止后面 onDrag 的时候 parse 出错了
		if(isNaN(parseInt(element.style.left))) {
			element.style.left = "0px";
		}
		if(isNaN(parseInt(element.style.top))) {
			element.style.top = "0px";
		}
		// 挂上空 Function，初始化这几个成员，在 Drag.init 被调用后才帮定到实际的函数
		element.onDragStart = new Function();
		element.onDragEnd = new Function();
		element.onDrag = new Function();
	},
	// 开始拖拽的绑定，绑定到鼠标的移动的 event 上
	start: function(event) {
		var element = Drag.obj = this.obj;
		// 解决不同浏览器的 event 模型不同的问题
		event = Drag.fixE(event);
		// 看看是不是左键点击
		if(event.which != 1){
			// 除了左键都不起作用
			return true ;
		}
		// 参照这个函数的解释，挂上开始拖拽的钩子
		element.onDragStart();
		// 记录鼠标坐标
		element.lastMouseX = event.clientX;
		element.lastMouseY = event.clientY;
		// 绑定事件
		document.onmouseup = Drag.end;
		document.onmousemove = Drag.drag;
		return false ;
	}, 
	// Element正在被拖动的函数
	drag: function(event) {
		event = Drag.fixE(event);
		if(event.which == 0 ) {
		 	return Drag.end();
		}
		// 正在被拖动的Element
		var element = Drag.obj;
		// 鼠标坐标
		var _clientX = event.clientY;
		var _clientY = event.clientX;
		// 如果鼠标没动就什么都不作
		if(element.lastMouseX == _clientY && element.lastMouseY == _clientX) {
			return	false ;
		}
		// 刚才 Element 的坐标
		var _lastX = parseInt(element.style.top);
		var _lastY = parseInt(element.style.left);
		// 新的坐标
		var newX, newY;
		// 计算新的坐标：原先的坐标+鼠标移动的值差
		newX = _lastY + _clientY - element.lastMouseX;
		newY = _lastX + _clientX - element.lastMouseY;
		// 修改 element 的显示坐标
		element.style.left = newX + "px";
		element.style.top = newY + "px";
		// 记录 element 现在的坐标供下一次移动使用
		element.lastMouseX = _clientY;
		element.lastMouseY = _clientX;
		// 参照这个函数的解释，挂接上 Drag 时的钩子
		element.onDrag(newX, newY);
		return false;
	},
	// Element 正在被释放的函数，停止拖拽
	end: function(event) {
		event = Drag.fixE(event);
		// 解除事件绑定
		document.onmousemove = null;
		document.onmouseup = null;
		// 先记录下 onDragEnd 的钩子，好移除 obj
		var _onDragEndFuc = Drag.obj.onDragEnd();
		// 拖拽完毕，obj 清空
		Drag.obj = null ;
		return _onDragEndFuc;
	},
	// 解决不同浏览器的 event 模型不同的问题
	fixE: function(ig_) {
		if( typeof ig_ == "undefined" ) {
			ig_ = window.event;
		}
		if( typeof ig_.layerX == "undefined" ) {
			ig_.layerX = ig_.offsetX;
		}
		if( typeof ig_.layerY == "undefined" ) {
			ig_.layerY = ig_.offsetY;
		}
		if( typeof ig_.which == "undefined" ) {
			ig_.which = ig_.button;
		}
		return ig_;
	}
};
/****************************************   表单验证类 ***********************************************/
JmzForm = {
	// 过滤空格
	ignoreSpaces : function (str) {
		var temp = "";
		str = '' + str;splitstr = str.split(" ");
		for(i = 0; i < splitstr.length; i++) temp += splitstr[i];
		return temp;
	},
	// 长度比较和判断
	FindLength :function (lang,rn){
		if(rn.indexOf('-') != -1){
			var rnArray = rn.split("-");
			if(isNaN(rnArray[0])||isNaN(rnArray[1]) )return false;
			if(lang >rnArray[0] && lang < rnArray[1])return true
		} else{
			var First  = rn.substr(0,1),number=rn.substr(1,10)*1;
			if(isNaN(number))return false;
			switch (First) {
				case '<':return (lang < number);
				case '>':return (lang > number);
				default:return (lang == (isNaN(First)?number:First));
			}
		}
		return false;
	},
	// 输出提示
	Tips:function (name,status,tips){
		var toObj = $('J'+name),color = '#F00',thisTips = tips? tips:'x';
		if(toObj==null)return;
		if(status == true){
			color = '#0F0';
			thisTips = '√';
		}
		toObj.style.color = color;
		toObj.innerHTML = thisTips;
	},
	// 服务端验证返回
	Error:function(tipsTag,string){
		var Array = string.split(',');
		for(var i=0;i < Array.length;i++){
			var Obj = $('J'+Array[i]),tips = $(Array[i]).getAttribute(tipsTag) ,status = false;	if(Obj !=null) JmzForm.Tips(Array[i],status,tips);
		}
	},
	// 单选和多选检测
	FindObj:function(thisObj,TagName){
		var status= true,chk = false,box='0',getID = thisObj[0].name;
		if($(getID) !=null){
			var toObj = $('J'+getID),type = thisObj[0].type,fun= $(getID).getAttribute(TagName);
			if(fun != null){
				for (var i=0; i<thisObj.length; i++){
					if(type == 'radio' && thisObj[i].checked){ chk = true;	break; };
					if(type == 'checkbox' && thisObj[i].checked)box++;
				}
				// 检测选项
				if( fun.indexOf('Y')== 0){
					if(type == 'radio') status =  chk;
					// 多选项检测
					if(type == 'checkbox')status = JmzForm.FindLength(box,fun.split(':')[1]);
				}
			}
		}
		return status;
	},
	// 检测方法加载
	FindFunction : function (Value,fun){
		if(fun==null)return true;
		var funArr =  fun.split(':'),funType=funArr[0], FunArray = funArr[1]?funArr[1].split(','):null,stars= true;
		if(funType == 'N' && Value =='')return stars;
		if(FunArray){
			for(var i=0;i < FunArray.length;i++){if(JmzForm.Detection(Value,FunArray[i])== false)stars = false;}
			return stars;
		}
		// 默认为不能为空
		return  JmzForm.ignoreSpaces(Value)==''?false:true;
	},
	// 密码检测
	Password:function (name){
		var value = $(name).value,toID = 'J'+name, Obj = $(toID), getResult;
		if(Obj!=null){
			getResult = function(s){ if(s.length < 4)return 0;var ls = 0;		if (s.match(/[a-z]/ig))	ls++;	if (s.match(/[0-9]/ig))	ls++;	if (s.match(/(.[^a-z0-9])/ig))	ls++; if (s.length < 6 && ls > 0)	ls--;return ls;}
			//定义对应的消息提示
			var msg=new Array(4);msg[0]="差";msg[1]="一般";	msg[2]="好";	msg[3]="强",id = getResult(value);
			Obj.innerHTML="安全性:" + msg[ id ];
			return id<1?false:true;
		}
	},
	// 字段对比
	Contrast:function (Name){
		var Tag = $(Name).getAttribute('contrast');
		if(Tag!=null) return $(Name).value!= $(Tag).value?false:true;
		return true;
	},
	// 检测匹配条件
	Detection:function(str,key){
		var JmzDet = new Array();
		/*---------------------------------------- 这里扩展你的检测方法开始 ----------------------------------------*/
		JmzDet["isMobel"]           = /^[1]([3][0-9]{1}|[5][0-9]{1}|[8][0-9]{1})[0-9]{8}$/; // 检查输入手机号码是否正确
		JmzDet["isInteger"]         = /^[-]{0,1}[0-9]{1,}$/; // 检查输入对象的值是否为数字
		JmzDet["isNumber"]          = "^[0-9]+$"; // 检查输入字符串是否为0-9数字组合
		JmzDet["isEnglish"]         = /^[A-Za-z]+$/; // 检测英文字母
		JmzDet["isChinese"]         = "^[a-zA-Z\u4e00-\u9fa5]+$"; // 检测是否为中文,字母
		JmzDet["isEmail"]           = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/; // 检查输入的Email信箱格式是否正确
		JmzDet["isUrl"]             = /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/;  // 检查输入的URL格式是否正确
		JmzDet["isMoney"]           = "^[0-9]+[\.][0-9]{0,3}$"; // 检查输入字符串是否符合金额格式
		JmzDet["isNumberLetter"]    = "^[0-9a-zA-Z_-]+$"; // 判断是否是数字或字母
		JmzDet["isChineseNumbLett"] = "^[0-9a-zA-Z\u4e00-\u9fa5]+$"; // 检查输入字符串是否只由汉字、字母、数字组成
		JmzDet["isPhone"]           = /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/;
		JmzDet["isTime"]            = /^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}$/;
		JmzDet["isIdcard"]          = /^[0-9X]{18}$/;
		JmzDet["isCkMoney"]         = "^[0-9-.]+$"; // 检测是否金额
		JmzDet["isEmailNum"]        = /^([\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+)|(\d{5,15})$/; // 检查输入的Email信箱格式是否正确
		/*------------------------------------------  扩展你的检测方法结束 ----------------------------------------*/
		if(JmzDet[key] == undefined) {
			// 检测字节长度 调用:0-3
			var lengValue = function (str,rn){
				var string =JmzForm.ignoreSpaces(str),lang = string.length;
				return JmzForm.FindLength(lang,rn);
			}
			return lengValue(str,key);
		}else{
			var re = new RegExp( JmzDet[key] );
			//if(key==''|| **)	return  (re.test(str)== false? true:false);
			return re.test(str);
		}
	},
	check: function  ()  {
		for(i=0;i <document.form1.r1.length;i++)
		if(document.form1.r1[i].checked){alert(document.form1.r1[i].value);return;}
	} ,
	// 触发验证 调用方法: <script>JmzForm.ActAuto('Jmz','findFun','tips');</script>
	ActAuto:function(ID ,TagName,tipsTag){
		var Obj = $( ID); if( Obj == null)return;
		for(var   i=0;i < Obj.elements.length;i++){
			var thisObj = Obj.elements[i],status=true;
			if(thisObj.type == 'submit')return;
			if (thisObj.getAttribute(TagName)!=''){
				Obj.elements[i].onblur = (function(i) {	return function() {
					var thisObj = Obj.elements[i],Name = thisObj.name,toObj = $('J'+Name),tips = ($(Name)!=null?$(Name).getAttribute(tipsTag):''),status=true;
					if (thisObj.type == "radio"||thisObj.type == "checkbox"){
						status = JmzForm.FindObj( $(thisObj.name).getElementsByTagName('input'),TagName);
						JmzForm.Tips(Name,status,tips);	
					}
					if(thisObj.type == "password")
					{JmzForm.Password(Name);}
					if(thisObj.type == "text" ||thisObj.type == "textarea" || thisObj.type.indexOf('select')== 0)
					{ 
					   status = JmzForm.FindFunction(thisObj.value, thisObj.getAttribute(TagName));	
					   //服务器端难验证
					   if (status==true)
					   {
					      var FunAjax=thisObj.getAttribute("AjaxFun")?thisObj.getAttribute("AjaxFun"):null;
					      if (FunAjax)
						  {
							  var AjaxAction=FunAjax.split(':')[0],AjaxTips=FunAjax.split(':')[1];
							 jQuery.post(RootDir+'/Ajax'+ExName, {action:AjaxAction, v:thisObj.value,param:Math.random() }, 
                             function(msg)
                             {
								// alert(msg);
                                 if(msg.indexOf("succs")>-1)
                                 {
									JmzForm.Tips(Name,status,tips);
                                 }
                                 else
                                 {
									 JmzForm.Tips(Name,false,AjaxTips);	
                                 }
                              }
                             ); 
						  }
						  JmzForm.Tips(Name,status,tips);
					   }
					   else
					   {
					      JmzForm.Tips(Name,status,tips);
					   }
					}
					if(JmzForm.Contrast(Name)== false)
					{JmzForm.Tips(Name,false,tips);}
				}})(i);
			}
		}
	},
	// 提交验证 调用方法:<form id="Jmz" name="Jmz" onsubmit="return JmzForm.ActForm(this,'findFun','tips')"> contrast="pass" 当前对象比对
	ActForm :function(ID ,TagName,tipsTag) {
		var Obj = $(ID); if( Obj == null) return;
		var textArray = new Array(), otherObj = new Object(),other,formStatus= true,Name;
		for (var i=0; i<Obj.elements.length; i++){
			var thisObj = Obj.elements[i],Name =thisObj.name, toObj = $('J' + thisObj.name),_Status;
			if (thisObj.type == "text" || thisObj.type == "textarea" || thisObj.type.indexOf('select')== 0||thisObj.type == "password"){
				if(thisObj.type == "password")
				{
					_Status =  JmzForm.Password(Name);
				}
				else
				{
					_Status = JmzForm.FindFunction(thisObj.value, thisObj.getAttribute(TagName));
					
					if (_Status==true)
					{
						var FunAjax=thisObj.getAttribute("AjaxFun")?thisObj.getAttribute("AjaxFun"):null;
					      if (FunAjax)
						  {
							  var AjaxAction=FunAjax.split(':')[0],AjaxTips=FunAjax.split(':')[1];
							 jQuery.post(RootDir+'/Ajax'+ExName, {action:AjaxAction, v:thisObj.value,param:Math.random() }, 
                             function(msg)
                             {
                                 if(msg.indexOf("succs")>-1)
                                 {
									//JmzForm.Tips(Name,status,tips);
                                 }
                                 else
                                 {
									 return false;
									 JmzForm.Tips(Name,false,AjaxTips);	
                                 }
                              }
                             ); 
						  }
					}
					
				}
				if(_Status==true) _Status = JmzForm.Contrast(Name);
				if(_Status == false){
					formStatus = false;
					JmzForm.Tips(Name,formStatus,thisObj.getAttribute(tipsTag));
				};
				
			};
			if (thisObj.type == "radio"||thisObj.type == "checkbox") {
				
				other = otherObj[Name];
				if (!other)other = new Array();
				other[other.length] = thisObj;
				otherObj[Name] = other;
				
			};
			
		}
		// 单选和多选检测
		RadioCheckbox = function(Array,TagName,tipsTag){
			var status= true;
			for (var key in Array)	{	var thisObj = Array[key];if(JmzForm.FindObj(thisObj,TagName)== false){status = false;JmzForm.Tips(key,status,$(key).getAttribute(tipsTag));}}
			return status;
		};
		
		if( RadioCheckbox(otherObj,TagName,tipsTag) ==  false )formStatus = false;
		
		if(formStatus == false)alert('未填写完整!');
		
		return formStatus ;
	}
}
function getEvent(){     //同时兼容ie和ff的写法
         if(document.all)    return window.event;        
         func=getEvent.caller;            
         while(func!=null){    
             var arg0=func.arguments[0];
             if(arg0){
                 if((arg0.constructor==Event || arg0.constructor ==MouseEvent)
                     || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){    
                     return arg0;
                 }
             }
             func=func.caller;
         }
         return null;
 }
function sxCode()
{
	$("code").src=RootDir+"/code"+ExName+"?rnd="+Math.random();
}
