// $ 取代 document.getElementById
	function $() {
	  var elements =[];
	
	  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 $BindFun(obj,evenType,funName){
        if (obj.addEventListener) {
            obj.addEventListener(evenType,funName,true);
            return true;
        }else if(obj.attachEvent) {
            return obj.attachEvent("on"+evenType,funName);
        }else{
            return false;
        }
    }
*/
//取消方法绑定
/*    function $reBindFun(obj,evenType,funName) {
        if (obj.removeEventListener) {
            obj.removeEventListener(evenType,funName,true);
            return true;
        }else if(obj.detachEvent) {
            return obj.detachEvent("on"+evenType,funName);
        }else{
            alert('出错!');
        }
    }
*/
// 获取对象坐标
/*	 function $getPos(obj) {
		    var top = 0;
		    var left = 0;
		    var width = obj.offsetWidth;
		    var height = obj.offsetHeight;
			while(obj.offsetParent) {
				    top += obj.offsetTop;
				    left += obj.offsetLeft;
				    obj = obj.offsetParent;
			    }
		    return {"top":top,"left":left,"width":width,"height":height};
	 }
*/
// 根据class名称来获取对象
   function getParentByClass(source,className) {
        while (source.offsetParent) {
              if (source.className == className) {
                  return source;
                }
			    source = source.offsetParent;
            }
        return null;
   }

// $cn 取代 encodeURIComponent(escape())
    function $cn(str) {
	  return escape(str);//encodeURIComponent(escape(str));
	  //服务器端用Response.Write Unescape("中文信息")反回，就不会出现乱码
    }

//清除两边空白字符
    function $trim(str) {
        return str.replace(/(^\s*)|(\s*$)/g, "");
    }

//--------------------------------------------------------------------

//去除HTML标记
    function $noHtml(html){
  		//html = html.replace(/function[^}]*}/g, "\r\n");
		//html = html.replace(/{[^}]*}/g, "\r\n");
		html = html.replace(/BODY[^}]*}/g, "\r\n");
		html = html.replace(/H1[^}]*}/g, "\r\n");
		html = html.replace(/H2[^}]*}/g, "\r\n");
		html = html.replace(/A:link[^}]*}/g, "\r\n");
		html = html.replace(/A:visited[^}]*}/g, "\r\n");
        html = html.replace(/<[pb][r*][^>]+>/g, "\r\n");
        //html = html.replace(/\s/g, " ");
        html = html.replace(/\r\n(\s)*/g, "\r\n");
        html = html.replace(/&quot;|"/g, "\"");//"“");
        html = html.replace(/&amp;|&/g, "&");//＆");
        html = html.replace(/'/g, "\'");//"‘");
        html = html.replace(/<[^>]+>/g, "");
        return html;
    }

//----------------------------------------------------------------------

//-------------以下是对像移动------------------------------------------

//检查浏览器是否技持DOM
    function chkDOM() {
        var isSupportDOM = !!document.getElementById; //两个取反，意思是强制转型
        //alert("你的浏览器"+(isSupportDOM?"":"不")+"支持DOM！");
        if(!isSupportDOM) {alert('你的浏览器不支持DOM!');}
    }

//chkDOM();//可能与首页有冲突,所以关了

//反回浏览器对像
    function Browse() {
        this.ie = document.all;
        this.ns = document.layers?document.layers:(document.getElementById && !document.all)?document.getElementById:null;
    }

//获取对像的属性值
    function getObjProperty(propertyType,getType,targetObj) {
        if(!propertyType) {alert('你没有设置对像所要反回的属性类型！');return false;}
        var browse = new Browse();
        //var tmpObj = null;
        //if(!targetObj) {alert('没有指定目标对像!');}
        switch(propertyType) {
            case 'client'://反回对像偏移值
                if(!getType) {alert('你没有设置对像所要反回值的属性！');return false;}
                switch(getType) {
                    case 'X':
                        return browse.ie?event.clientX:e.clientX;
                        break;
                    case 'Y':
                        return browse.ie?event.clientY:e.clientY;
                        break;
                    default:
                        alert('client null!');
                        return null;
                        break;
                }
                break;
            case 'style'://反回对像位置
                if(!getType) {alert('你没有设置对像所要反回值的属性！');return false;}
                //if(!tmpObj) {alert('你没有选择目标对像！');return false;}
                if(!targetObj) {alert('没有指定对像!'+targetObj+'-'+propertyType+'-'+getType);return false;}   //目标对像
                switch(getType) {
                    case 'left':
                        return parseInt(targetObj.currentStyle.left!=''?targetObj.currentStyle.left:'0');
                        break;
                    case 'top':
                        return parseInt(targetObj.currentStyle.top!=''?targetObj.currentStyle.top:'0');
                        break;
                    case 'width':
                        return parseInt(targetObj.currentStyle.width!=''?targetObj.currentStyle.width:'0');
                        break;
                    case 'height':
                        return parseInt(targetObj.currentStyle.height!=''?targetObj.currentStyle.height:'0');
                        break;
                    case 'zIndex':
                        return parseInt(targetObj.currentStyle.zIndex!=''?targetObj.currentStyle.zIndex:'0');
                        break;
                    default:
                        alert('style null!');
                        return null;
                        break;
                }
                break;
            case 'srcElementID':
                if(!targetObj) {alert('你没有选择目标对像名称！');return false;}
                //if(!targetObj) {alert('没有指定对像!'+targetObj+'-'+propertyType+'-'+getType);return false;}   //目标对像
                if(browse.ie) {
                    //alert($(targetObj).id);
                    return event.srcElement.id == targetObj;
                }else if(browse.ns) {
                    return e.target.id == targetObj;
                }else{
                    alert('else');
                    return event.srcElement.id == targetObj;
                }
                break;
            default:
                alert('no client,no style,no srcElementID result null!');
                return null;
                break;
        }
    }

//------------------------------------------------------------------------

//输出从服务端传输过来的数据
	function startShow(objId, html, reType) {
		obj = $(objId);//输出html内容的目标对像
		var ie = navigator.appVersion.match(/MSIE/),opera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1);
		//为避免在ie中重复执行innerHtml中带有defer属性的脚本。所以要判定是否为ie，然后再检测将要执行的脚本是否带有defer属性即可。
		//但在判断ie浏览器时，需要避免被opera的浏览器识别欺骗，所以也要判断不是opera。
		if (ie && !opera) {
			html = "<span style=\"display: none\">ie hack</span>" + html;
		}
		switch(reType) {
			case 'iT'://innerText
				obj.innerText = html;
				break;
			case 'iH'://innerHtml
				obj.innerHTML = html;
				break;
			case 'oT'://outerText
				obj.outerText = html;
				break
			case 'oH'://outerHtml
				obj.outerHTML = html;
				break;
			default://innerText
				obj.innerText = html;
				break;
		}
		obj.innerHTML = html;//先输出html
		runScript(objId);//再执行需要输出的内容中的js
	}

//js执行函数
	function runScript(objId,scriptsLeft,htmlLeft) {
		obj = $(objId);//输出内容的目标对像
		var scripts = obj.getElementsByTagName("script");//取出js脚本对像
		if (scripts) {
			var tmpScripts = [];//用于存放输出内容中js对像的单个js内容
			var tmpHtml = "" + obj.innerHTML;//用于存放输出内容目标对像的内容
			for (var i = 0; i < scripts.length; i++) {
				//alert(scripts[i].text + '\r\n' + scripts[i].text.replace(/(^\s*)|(\s*$)/g, ""));
				tmpScripts[i] = $trim(scripts[i].text);//把数组中的js赋给存放临时js的数组中
				tmpHtml = tmpHtml.replace(scripts[i].text,"");//去除html中的js脚本
			}
	
			if(scriptsLeft) {//附加js脚本
				tmpScripts = tmpScripts.concat(scriptsLeft);//将scriptsLeft附加到tmpScripts后面
			}
			document.write = function (str) {//重定义write
					obj.innerHTML += str;
				}
			document.writeln = function (str) {//重定义writeln
					obj.innerHTML += str + "<br>";
				}
			
			//按js脚本所在位置划分,把html划分成数组存到HTMLcodeWithoutScript中
			var HTMLcodeWithoutScript = tmpHtml.replace(/<script[\s\S]+?<\/script>/ig,"{-jsS_cript-}").split("{-jsS_cript-}");
			if(htmlLeft) {//附加html
                //不太清楚作者为何如下写,我个人认为可以换个更明了的方法写
                //,但考虑到作者可能还有其他的因素考虑在内,所以我就没改了
                //tmpValue = "";
                //tmpValue += "{-原HTMLcodeWithoutScript: " + HTMLcodeWithoutScript + "-}\r\n{-原htmlLeft: " + htmlLeft + "-}\r\n";
                //tmpValue += "{-原htmlLeft[0]: " + htmlLeft[0] + "-}\r\n";
				htmlLeft[0] = HTMLcodeWithoutScript[HTMLcodeWithoutScript.length-1]+htmlLeft[0];
				//tmpValue += "{-htmlLeft[0] = HTMLcodeWithoutScript[HTMLcodeWithoutScript.length-1] + htmlLeft[0]: " + htmlLeft[0] + "-}\r\n";
				HTMLcodeWithoutScript.pop();
				//tmpValue += "{-HTMLcodeWithoutScript.pop(): " + HTMLcodeWithoutScript + "-}\r\n";
				HTMLcodeWithoutScript=HTMLcodeWithoutScript.concat(htmlLeft);
				//tmpValue += "{-HTMLcodeWithoutScript = HTMLcodeWithoutScript.concat(htmlLeft): " + HTMLcodeWithoutScript + "-}\r\n";
				//alert(tmpValue);
			}
	
			//向目标元素写入第一段脚本之前的html内容
			obj.innerHTML=HTMLcodeWithoutScript[0];
			var script;
			for (var i = 0; i < tmpScripts.length; i++) {//循环运行tmpScripts数组中的js脚本
				script = tmpScripts[i];
				if (tmpScripts[i].src) {//如果第i个脚本是路径引用的,则重建一个script对像,并对引用js进行引用
					script = document.createElement("script");
					script.src = tmpScripts[i].src;
					script.defer = true;
					script.type =  tmpScripts[i].type;
					var head = document.getElementsByTagName("head").item(0);
					head.appendChild(script);
				}else if (script.substr(0, 4) == "<!--") {//如果不是脚本引用的js,且第一段为<!--的js则跳过<!--再进行执行js
					eval(script.substr(4));
				}else {//如果不是脚本引用的js,且第一段不为<!--的js则直接执行js
					//alert(script);
                    eval(script);
				}
	
				//如果存在用document.write()写scripts的情况，则递归调用本函数
				//if(scripts.length>0){
				//	runScript(objId,tmpScripts.slice(i+1),HTMLcodeWithoutScript.slice(i+1));
				//	return;
				//}
	
				//向目标元素写入每段脚本之后的html内容
				obj.innerHTML+=HTMLcodeWithoutScript[i+1];
			}
		}
	}
	
//表单提交，将用户输入异步提交到服务器
	function mgAjaxSubmit(fileUrl, mgFormName, destObjName, reType, other, execScripts){
		//获取用户输入
		if(!$(mgFormName)) {alert('表单不存在!');}
		var mgForm = $(mgFormName);
//		if(!mgForm) {
//            alert('表单对像为空!');
//            return;
//		}
		var dot = '',postString = '';
		for(var i=0;i<mgForm.length;i++) {
			postString += dot + mgForm[i].name + '=' + $cn(mgForm[i].value);
			dot = '&';
		}
		//alert(fileUrl+'?'+postString+other);
		//创建XMLHttpRequest对象
		var xmlhttp;
		try{
			xmlhttp = new XMLHttpRequest();
		}catch(e){
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		//创建请求结果处理程序
		xmlhttp.onreadystatechange = function(){
			if(xmlhttp.readyState == 4) {
                if(xmlhttp.status == 200 ) {
    			    var tmpHtml = xmlhttp.responseText;
   			        //alert(tmpHtml);
                    startShow(destObjName, tmpHtml, reType);
                    if(execScripts) {
                        eval(execScripts);
                    }
    			    tmpHtml = $trim(tmpHtml);
    			    if(tmpHtml=='') {
                        alert('服务器端返回空页面！');
                    }
    			}else{
    			    errMessage(destObjName, reType, xmlhttp.status,xmlhttp.responseText,true);//返回出错信息
    			}
		    }
		}
		//打开连接，true表示异步提交
		xmlhttp.open("post", fileUrl, true);
		//当方法为post时需要如下设置http头
		xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
		//发送数据
		xmlhttp.send(postString+other);
	}

//用于处理函数内定义全局代码
	var MG={} //my namespace
	MG.Eval=function(code){
		if(!!(window.attachEvent && !window.opera)){
			//ie
			execScript(code);
		}else{
			//not ie
			window.eval(code);
		}
	}

//普通数据提交，将用户输入异步提交到服务器
	function mgAjaxQuery(fileUrl, destObjName, reType, other, execScripts){
		//alert(fileUrl+'?'+other);
		//创建XMLHttpRequest对象
		var xmlhttp;
		try{
			xmlhttp = new XMLHttpRequest();
		}catch(e){
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		//创建请求结果处理程序
		xmlhttp.onreadystatechange = function(){
			if(xmlhttp.readyState == 4) {
                if(xmlhttp.status == 200 ) {
                    var tmpHtml = xmlhttp.responseText;
    			    //alert('显示返回结果(tmpHtml):'+tmpHtml);
                    startShow(destObjName, tmpHtml, reType);
                    if(execScripts) {
                        //eval(execScripts);
						//alert(execScripts);
						MG.Eval(execScripts);
                    }
    			}else{
					errMessage(destObjName, reType, xmlhttp.status,xmlhttp.responseText);//返回出错信息
					/*
					var aa = xmlhttp.responseText;
					aa = aa.replace('<', '&lt;');
					aa = aa.replace('>', '&gt;');
					alert(aa);
					var ss = mgAjaxQuery2('/trade/inc/err.asp', '?v='+(encodeURI(aa)));
					alert(ss);
					errMessage(destObjName, reType, xmlhttp.status,ss);//返回出错信息
					*/
			    }
            }
		}
		
		//errinfo = encodeURI(errinfo);
		//errinfo = encodeURI(errinfo); //最重要的部分,两次调用encodeURI ,就是编码两次，用于解决使用GET方式传递中文时乱码问题
		
		//打开连接，true表示异步提交
		xmlhttp.open("post", fileUrl, true);
		//当方法为post时需要如下设置http头
		xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
		//发送数据
		xmlhttp.send(other);
	}
	
/*
//普通数据提交，将用户输入异步提交到服务器
	function mgAjaxQuery2(fileUrl, other){
		//alert(fileUrl+'?'+other);
		//创建XMLHttpRequest对象
		var xmlhttp;
		try{
			xmlhttp = new XMLHttpRequest();
		}catch(e){
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		//创建请求结果处理程序
		xmlhttp.onreadystatechange = function(){
			if(xmlhttp.readyState == 4) {
				var tmpHtml = xmlhttp.responseText;
				alert(tmpHtml);
				return tmpHtml;
			}
		}

		//打开连接，true表示异步提交
		xmlhttp.open("post", fileUrl, true);
		//当方法为post时需要如下设置http头
		xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
		//发送数据
		xmlhttp.send(other);
	}
*/

//ajax出错信息提示
    function errMessage(destObjName, reType, statuscode,errinfo,isSubmit) {
        var errorinfo = '';
        if(errinfo) {
            //errorinfo = '\r\n'+$noHtml(errinfo);
			errorinfo = errinfo.replace('<html>', '');
			errorinfo = errorinfo.replace('</html>', '');
			errorinfo = errinfo.replace('<title>', '');
			errorinfo = errorinfo.replace('</title>', '');
			errorinfo = errinfo.replace('<head>', '');
			errorinfo = errorinfo.replace('</head>', '');
			errorinfo = errinfo.replace('<body>', '');
			errorinfo = errorinfo.replace('</body>', '');
        }
		
		startShow(destObjName, errorinfo, reType);//输出错误信息到页面
		
        switch(statuscode) {
            case 500:
                alert('Internet 服务错误(err:500)!');
                break;
            case 204:
                alert('服务端没有返回内容(err:204)!');
                break;
            case 405:
                alert('不技持此方法(err:405)!');
                break;
            default:
                if(isSubmit) {
                    alert('表单提交过程中出错(err:'+statuscode+')!');
                }else{
                    alert('向服务器获取数据时出错(err:'+statuscode+')!');
					//window.clipboardData.setData('text', errorinfo);//把数据拷贝到windows剪贴板
                }
                break;
        }
    }

//载入进度显示
    function goCallback(loadState) {
        switch(loadState) {
            case 1:
                Msg = '数据读取中...';
                break;
            case 2:
                Msg = '数据初始化...';
                break;
            case 3:
                Msg = '数据载入中...';
                break;
            case 4:
                Msg = '页面加载中...';
                break;
            default:
                Msg = '操作出错!';
                break;
        }
	}

//预先载入图片
	function LoadImg() {
		var LI = document;
		if(LI.images){
			if(!LI.Imgs) LI.Imgs = new Array();
			var i,j = LI.Imgs.length, tImg = LoadImg.arguments;
			for(i=0; i<tImg.length; i++) {
				if (tImg[i].indexOf("#")!=0){
					LI.Imgs[j] = new Image;
					LI.Imgs[j++].src = tImg[i];
				}
			}
		}
	}

//载入数据前的初始
    function LoadingInitialize(targetObj) {
        if($(targetObj)) {
            $(targetObj).innerHTML = '<h2><img src="img/schedule1.gif"></h2>';
        }
    }

//刷新图片验证码
    function refreshVerifyCode() {
      if($('VerifyCodeImg')) {
        $('VerifyCodeImg').src='/inc/VerifyCode.asp?tmp='+Math.random();
      }
    }

//关闭表单信息
    function closeFormInfo() {
    	if($('mg_DefiladeDiv')) {$('mg_DefiladeDiv').style.visibility = 'hidden';}
    	if($('mg_FormInfo')) {$('mg_FormInfo').innerHTML = '';}
    }

//调出广告
	function mgGetAD(ADCode) {
		if($('ad'+ADCode).innerHTML==''){
			var tmpADCode = '';
			if(ADCode) {tmpADCode = 'id='+(ADCode+1);}	//ADCode setting for here.
			mgAjaxQuery('/trade/get_ad3.asp','ad'+ADCode,'iH',tmpADCode);
		}
		$('FaceAD').innerHTML = $('ad'+ADCode).innerHTML;
	}

//显示当天日期
	function mgGetDate(DateObj) {
        if(DateObj) {
            mgAjaxQuery('/trade/inc/getdate.asp',DateObj,'iH','');
        }
	}

//获取站点地图
    function getMap(area) {
        mgAjaxQuery('/get_map.asp','mg_FormInfo','iH','area='+area,'if($(\'site_map\')){$(\'mg_DefiladeDiv\').style.visibility = \'visible\';$(\'site_map\').style.visibility = \'visible\';}');
    }

