var jsx = 
{
	version : "2.0",
	onTime : new Date().getTime(),
	pageId : window.location.href.replace("http:\/\/","").replace(/[?&=/.]/g,"_"),
	onRun : false
}

if(external.max_version)
{
	jsx.userAgent = navigator.userAgent.toLowerCase().replace(/msie[^;]*/,"maxthon " + external.max_version);
}
else
{
	jsx.userAgent = navigator.userAgent.toLowerCase();
}
jsx.browser = 
{
	version: navigator.userAgent.toLowerCase().replace(/.+?(rv|it|ra|ie)[/: ]([\d.]+).*/,"$2"),
	safari: /webkit/.test(jsx.userAgent),
	opera: /opera/.test(jsx.userAgent),
	maxthon: /maxthon/.test(jsx.userAgent),
	msie: /msie/.test(jsx.userAgent) && !/opera/.test(jsx.userAgent && !/maxthon/.test(jsx.userAgent)),
	coreie: /msie|maxthon/.test(jsx.userAgent) && !/opera/.test(jsx.userAgent),
	mozilla: /mozilla/.test(jsx.userAgent) && !/(compatible|webkit)/.test(jsx.userAgent)
};
function $()
{
	if(arguments.length == 1)
	{
		return document.getElementById(arguments[0]);
	}
	return document.getElementById(arguments[0]);
}
function $F()
{
	if(arguments.length == 1)
	{
		return document.getElementById(arguments[0]).value;
	}
	return document.getElementById(arguments[0]).value = arguments[1];
}
function $$()
{
	if(arguments.length == 1)
	{
		return arguments[1].getElementsByTagName(arguments[0]);
	}
	return document.getElementsByTagName(arguments[0]);
}
function $OS(obj)
{
	return obj.currentStyle;
}
if(!jsx.browser.coreie)
{
	eval('function $OS(obj){return document.defaultView.getComputedStyle(obj,null);}');
}

function $getInt(str)
{
	return parseInt(0+str);
}

function getNodes(pNode)
{
	if(pNode.nodeType == 3)
	{
		return null;
	}
	var node,nodes = new Array();
	for(var i=0;node= pNode.childNodes[i];i++)
	{
		if(node.nodeType == 1)
		nodes.push(node);
	}
	return nodes;
}

function setCookie(name,value)
{
	if(typeof(value) == "string")
	{
		var ct = "s";
	}
	else if(typeof(value) == "number")
	{
		var ct = "n";
	}
	else if(value.constructor == window.Array)
	{
		var ct = "a";
	}
	else
	{
		throw new Error(typeof(value)+"是Cookies不可装载对象!");
		return;
	}
	var Days = 30;
	var exp = new Date();
	exp.setTime(exp.getTime() + Days*24*60*60*1000);
	document.cookie = name + "=" + ct + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getCookie(name)
{
	var arr,reg=new RegExp("(^| )"+name+"=(.)=([^;]*)(;|$)");
	if(arr=document.cookie.match(reg))
 	{
 		var ct = arr[2];
 		if(ct == "n")
 		{
 			return Number(unescape(arr[3]));
 		}
 		if(ct == "a")
 		{
 			return unescape(arr[3]).split(",");
 		}
		return unescape(arr[3]);
	}
	else return null;
}
function delCookie(name)
{
 var exp = new Date();
 exp.setTime(exp.getTime() - 1);
 var cval=getCookie(name);
 if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}

function ajax()
{
	var xmlObj = false;
	var ObjSelf = this;
	if(jsx.browser.coreie)
	{
		try
		{
			xmlObj=new ActiveXObject("MSXML2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				xmlObj=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e2)
			{
				xmlObj=false;
			}
		}
	}
	else
	{
		try
		{
			xmlObj = new XMLHttpRequest;
		}
		catch(e3)
		{
			xmlObj=false;
		}
	}	
	if(!xmlObj)
	{
		throw new Error("无法创建XMLHTTP对象!");
		return false;
	}
	this.method="GET";
	this.url;
	if(arguments.length > 0)
	{
		this.url = arguments[0];
	}	
	this.cache = true;
	this.async = true;
	this.content = "";
	this.callBackObj = null;
	this.callBack;
	this.send = function()
	{
		if(!this.method||!this.url||!this.async)
		{
			throw new Error("Ajax arguments Error!");
			return false;
		}
		if(!this.cache)
		{
			if(this.url.indexOf("?")>0)
			{
				var t=new Date().getTime();
				this.url += "&ct="+t;
			}
			else
			{
				var t=new Date().getTime();
				this.url += "?ct="+t;
			}
		}
		xmlObj.open(this.method, this.url, this.async);
		if(this.method=="POST")
		{
			xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		}
		xmlObj.onreadystatechange = function()
		{
			if(xmlObj.readyState==4)
			{
				if(xmlObj.status==200)
				{
					if(ObjSelf.callBackObj != null)
					{
						ObjSelf.callBack(xmlObj,ObjSelf.callBackObj);
					}
					else
					{
						ObjSelf.callBack(xmlObj);
					}
				}
				else if(xmlObj.status==204 || xmlObj.status==205)
				{
					ObjSelf.callBack("HTTP status" + xmlObj.status);
				}
				else
				{
					throw new Error("HTTP ERROR : " + xmlObj.status);
					return false;
				}
			}
		}
		if(this.method == "POST")
		{
			xmlObj.send(this.content);
		}
		else
		{
			xmlObj.send(null);
		}
	}
}

var __sto = setTimeout;
window.setTimeout = function(callback,timeout,param)
{
    var args = Array.prototype.slice.call(arguments,2);
    var _cb = function()
    {
        try{callback.apply(null,args);}catch(e){}
    }
    
    __sto(_cb,timeout);
}

var __siv = setInterval;
window.setInterval = function(callback,timeout,param)
{
    var args = Array.prototype.slice.call(arguments,2);
    var _cb = function()
    {
        try{callback.apply(null,args);}catch(e){}
    }
    
    __siv(_cb,timeout);
}

function fixObjClick()
{
	if(jsx.browser.msie)
	{
		var ObjArr = document.getElementsByTagName("object");
		for(var i=0; i<ObjArr.length; i++)
		{
			ObjArr[i].outerHTML = ObjArr[i].outerHTML;
		}
	}
}


function checkInput()
{
	var tCArr;
	var obj;
	if(arguments.length == 2)
	{
		obj = arguments[1];
		tCArr = arguments[0];
	}
	else
	{
		obj = arguments[0];
		var tObjArr = arguments[0].getElementsByTagName("*");
		tCArr = new Array();
		var x = 0;
		for(var i=0; i<tObjArr.length; i++)
		{
			if(!!tObjArr[i].getAttribute("rule"))
			{
				tCArr[x++] = tObjArr[i].getAttribute("rule").replace(/([^|]*)/,"$1|"+tObjArr[i].getAttribute("name"));
			}
		}
	}
	var tArr;
	var tStr;
	for(var i=0; i<tCArr.length; i++)
	{
		try
		{
			tArr = tCArr[i].split("|");
			eval("tStr = obj."+tArr[1]+".value");
			if(tArr[3] == "true" && tStr == "")
			{
				$(tArr[1]).focus();
				alert(tArr[0]+"不能为空!");
				return false;
			}
			else
			{
				switch(tArr[2].toLowerCase())
				{
					case "string":
						if(tStr != "" && /[<>]/g.test(tStr))
						{
							$(tArr[1]).focus();
							alert(tArr[0]+"含有非法字符!");
							return false;
						}
						break;
					case "number":
						if(tStr != "" && /[^0-9]/g.test(tStr))
						{
							$(tArr[1]).focus();
							alert(tArr[0]+"含有非数字字符!");
							return false;
						}
						break;
					case "email":
						if(tStr != "" && !/^[^@]+@[^.]+?\..+$/.test(tStr))
						{
							$(tArr[1]).focus();
							alert(tArr[0]+"不是一个合法的E-mail地址!");
							return false;
						}
						break;
					case "en":
						if(tStr != "" && /[^a-zA-Z]/g.test(tStr))
						{
							$(tArr[1]).focus();
							alert(tArr[0]+"含有非英文字符!");
							return false;
						}
						break;
					case "cn":
						if(tStr != "" && !/[^\u4e00-\u9fa5]/g.test(tStr))
						{
							$(tArr[1]).focus();
							alert(tArr[0]+"含有非中文字符!");
							return false;
						}
						break;
					case "phone":
						if(tStr != "" && !/^\d{3}[- －　]*\d{7,8}$|^\d{4}[- －　]*\d{6,7}$/.test(tStr))
						{
							$(tArr[1]).focus();
							alert(tArr[0]+"不是合法的电话号码!");
							return false;
						}
						break;
					case "mobi":
						if(tStr != "" && !/^\d{11}$/.test(tStr))
						{
							$(tArr[1]).focus();
							alert(tArr[0]+"不是合法的移动电话号码!");
							return false;
						}
						break;
					case "phonex":
						if(tStr != "" && !/^\d{3}[- －　]*\d{7,8}$|^\d{4}[- －　]*\d{6,7}$|^\d{11}$/.test(tStr))
						{
							$(tArr[1]).focus();
							alert(tArr[0]+"不是合法的电话\/手机号码!");
							return false;
						}
						break;
					case "id":
						if(tStr != "" && !/^\d{15}|\d{18}$/.test(tStr))
						{
							$(tArr[1]).focus();
							alert(tArr[0]+"不是合法的身份证号码!");
							return false;
						}
						break;
					case "ip":
						if(tStr != "" && !/^\d+\.\d+\.\d+\.\d+$/.test(tStr))
						{
							$(tArr[1]).focus();
							alert(tArr[0]+"不是合法的IP!");
							return false;
						}
						break;
					case "postcode":
						if(tStr != "" && !/^[1-9]\d{5}(?!\d)$/.test(tStr))
						{
							$(tArr[1]).focus();
							alert(tArr[0]+"含有非字符!");
							return false;
						}
						break;
					default :
						$(tArr[1]).focus();
						alert(tArr[0]+"未指定检查类型!")
						return false;
				}
				if(tArr[4] != "" && !(tArr[3] == "false" && tStr == ""))
				{
					var tPass = false;
//					var tN = tArr[4].split(/[-,]/g);
//					if(tN.length == 1)
//					{
//						if(tStr.length == tN[0])
//						{
//							tPass = true;
//						}
//						else
//						{
//							tPass = false;
//						}
//					}
//					else
//					{
//						if(tStr.length < tN[0] || tStr.length > tN[0])
//						{
//							tPass = false;
//						}
//						else
//						{
//							tPass = true;
//						}
//					}

					var lenReg = new RegExp("^[\\s\\S]{"+ tArr[4].replace("-",",") +"}$");
					tPass = lenReg.test(tStr);
					if(!!tPass == false)
					{
						$(tArr[1]).focus();
						alert(tArr[0]+"长度不是"+tArr[4].replace("-","到")+"个!");
						return false;
					}
				}
			}
		}
		catch(e){alert("出现意外错误!");return false;}
	}
	return true;
}

function dis()
{
	for(var i=0; i<arguments.length; i++)
	{
		if(typeof(arguments[i]) == "string")
		{
			var tArr = document.getElementsByName(arguments[i]);
			for(var j=0; j<tArr.length; j++)
			{
				tArr[j].disabled = true;
			}
		}
		else
		{
			arguments[i].disabled = true;
		}
	}
}
function cus()
{
	for(var i=0; i<arguments.length; i++)
	{
		if(typeof(arguments[i]) == "string")
		{
			var tArr = document.getElementsByName(arguments[i]);
			for(var j=0; j<tArr.length; j++)
			{
				tArr[j].disabled = false;
			}
		}
		else
		{
			arguments[i].disabled = false;
		}
	}
}

//obj:FORM name:NAME strict :严格? false/空时可取disabled了的VALUE 
function formValue(obj,name,strict)
{
	var tArr;
	if(strict == undefined)
	{
		strict = false;
	}
	eval('tArr = obj.'+name);
	if(tArr.length > 1)
	{
		if(tArr.type == "select-one")
		{
			return tArr.value;
		}
		var xType = false;
		var tRu = new Array();
		if(strict)
		{
			if(tArr[0].disabled == true)
			{
				return "";
			}
		}
		for(var i=0; i<tArr.length; i++)
		{
			if(tArr[0].type=="radio")
			{
				if(tArr[i].checked == true)
				{
					return tArr[i].value;
				}
			}
			else if(tArr[0].type=="checkbox")
			{
				tRu[i] = tArr[i].value;
			}
			else
			{
				return tArr[0].value;
			}
		}
		if(tArr[0].type=="radio")
		{
			return "";
		}
		return tRu;
	}
	else
	{
		if(strict)
		{
			if(tArr.disabled == true)
			{
				return "";
			}
		}
		if(tArr.type == "radio" && tArr.checked != true)
		{
			return "";
		}
		return tArr.value;
	}
}


function getRunTime()
{
	return new Date().getTime() - jsx.onTime;
}

function onRun()
{
	if(jsx.onRun)
	{
		return;
	}
	jsx.onRun = true;
	fixObjClick();
}

function xTag(id)
{
	var boxs = getNodes($(id).getElementsByTagName("ul")[0]);
	for(var i=0; i<boxs.length;i++)
	{
		boxs[i].getElementsByTagName("h2")[0].onmouseover = __showTag(boxs,i);
	}	
}
function __showTag(objs,x)
{
	return function()
	{
		var tObj = new Object();
		tObj.objs = objs;
		tObj.i = x;
		window.setTimeout(__showTagFinal,500,tObj)
	}
}

function __showTagFinal(tObj)
{
	var objs = tObj.objs;
	var x = tObj.i;
	var tclass = objs[x].className;
	if(/on/.test(tclass))
	{
		return;
	}
	for(var i=0; i<objs.length;i++)
	{
		if(i != x)
		{
			objs[i].className = objs[i].className.replace(/ ?on/,"");
		}
	}
	objs[x].className = tclass.replace(/(.*) on/,"$1") + " on";
}

window.onload = onRun;