var sload,newScript,jceh='js',grace=new cebcls();for(var isrv=0;isrv<grace.mm("script").length;isrv++){newScript=grace.mm("script")[isrv].innerHTML||null;if(newScript)if(newScript.indexOf("export")!=-1||newScript.indexOf("expand")!=-1)if(newScript.replace(/(^\s*)|(\s*$)/g,"").substr(0,6)=="export"||newScript.replace(/(^\s*)|(\s*$)/g,"").substr(0,6)=="expand")eval(grace.getScript(newScript));}grace.getScript();
function cebcls(){
	var tmp,appoint,myerr;
	var userAgent = navigator.userAgent.toLowerCase();
	browser = {
		firefox:(/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)),
		opera:(/opera/.test(userAgent)),
		msie:(/msie/.test(userAgent)&&!/opera/.test(userAgent)),
		safari:(/webkit/.test(userAgent)),
		version:(userAgent.match( /(?:firefox|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1]
	};
	/*是否为window操作系统*/
	isWin = (navigator.platform=="Win32")||(navigator.platform=="Windows");
	this.oo = function(obj){
		var is_IE5;
		return typeof(obj) != "string" ? obj : (is_IE5 ? document.all(obj) : document.getElementById(obj));
	}
	this.nn = function(obj){
		return document.getElementsByName(obj);
	}
	this.mm = function(obj){
		return document.getElementsByTagName?document.getElementsByTagName(obj):new Array();
	}
	this.tt = function(name,n,obj){
		if(!obj){
			return (this.mm(name)[n]);
		}else{
			if(typeof(obj)=="string"){
				return (this.oo(obj).getElementsByTagName(name)[n]);
			}else{
				return (obj.getElementsByTagName(name)[n]);
			}
		}
	}
	this.ar = function(obj,name){
		if(typeof(obj)=="string"){
			obj = this.oo(obj);
			if(obj) return (obj.getElementsByTagName(name));
		}else{
			return (obj.getElementsByTagName(name));
		}
	}
	this.rndnum = function(n,a){
		var rnd='';
		if(!a){
			for(var i=0;i<n;i++){
				rnd+=Math.floor(Math.random()*10);
			}
		}else{
			rnd = parseInt(Math.random()*(n-a+1)+a);
		}
		return rnd;
	}
	this.isFract = function (s){    //取小数点后2位并四舍五入
		return Math.round(s*100)/100;
	}
	this.getXML = {
		load : function(){
			var xmlDoc,isoBj;
			try{
				isoBj = true;
				xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			}catch(e){
				isoBj = false;
				xmlDoc = document.implementation.createDocument("","",null);
			}
			xmlDoc.async = false;
			xmlDoc.load(this.url);
			var xmloBj = xmlDoc.getElementsByTagName("code")[this.id];
			this.sreturn = (isoBj?xmloBj.text:xmloBj.textContent);
		}
	}
	this.form = function(s){
		ato = {
			m:s.obj.method,
			a:s.obj.action
		};
		if(ato.a){
			s.act.exc(s.obj);
			if(s.act.per){
				method = (ato.m?(ato.m.toLowerCase()=='post'?false:true):true);
				inobj = this.ar(s.obj,"input");
				var nvfor = npost = "";
				for(var i=0;i<inobj.length;i++){
					if(inobj[i].name){
						intyp = inobj[i].type.toLowerCase();
						nvfor += inobj[i].name+"="+(intyp=='checkbox'?inobj[i].checked:inobj[i].value.trim())+"&";
						npost += "{name:'" + inobj[i].name + "',value:'" + (intyp=='checkbox'?inobj[i].checked:inobj[i].value.trim()) + "'},";
					}
				}
				inobj = this.ar(s.obj,"select");
				for(var i=0;i<inobj.length;i++){
					if(inobj[i].name){
						nvfor += inobj[i].name+"="+inobj[i].value+"&";
						npost += "{name:'" + inobj[i].name + "',value:'" + inobj[i].value + "'},";
					}
				}
				inobj = this.ar(s.obj,"textarea");
				for(var i=0;i<inobj.length;i++){
					if(inobj[i].name){
						nvfor += inobj[i].name+"="+inobj[i].value+"&";
						npost += "{name:'" + inobj[i].name + "',value:'" + inobj[i].value + "'},";
					}
				}
				if(method){
					ato.a = ato.a + "?" + nvfor.substr(0,nvfor.length-1);
					npost = false;
				}else{
					npost = eval("["+npost+"{name:'_____ceb_hidden',value:1}]");
				}
				myerr = function(){
					alert("表单提交错误");
				}
				this.getData(ato.a,method,function(sreturn){
					s.act.com(sreturn);
				},npost);
			}
		}
		return false;
	}
	this.getData = function(url,gtse,process,forms){
		//format  myerr
		var oBj,sreturn;
		if(gtse==false){
			var nvfor = "";
			for(var i=0;i<forms.length;i++){
				nvfor += forms[i].name+"="+forms[i].value+"&";
			}
			nvfor = nvfor.substr(0,nvfor.length-1);
			var gtse = "POST";
			var snus = nvfor;
		}else{
			var gtse = "GET";
			var snus = null;
		}
		if(window.XMLHttpRequest){
			oBj = new XMLHttpRequest();
		}else if(window.ActiveXObject){
			oBj = new ActiveXObject("Microsoft.XMLHTTP");
		}else{
			alert("您使用的浏览器不支持XMLHttpRequest的创建");
			return false;
		}
		oBj.onreadystatechange = function(){
			if(oBj.readyState == 4){
				if(oBj.status == 200){
					if(sload){
						sreturn = true;
					}else{
						sreturn = unescape(oBj.responseText);
						sreturns = sreturn;
						if(!appoint){
							if(sreturn.indexOf("export")!=-1){
								sreturn.replace(/import ([a-zA-Z0-9\s]+)/g,function($1,$2){
									imports = $2;
								});
								sreturn = sreturn.replace(/export/,"cebcls.prototype."+imports+" =");
								sreturn = sreturn.replace("import "+imports+";","");
							}
						}
						if(!grace.getData.format){
							sreturn = eval("("+unescape(sreturn)+")");
						}else{
							sreturn = unescape(sreturn);
						}
					}
					process(sreturn,sreturns);
				}else{
					if(myerr){
						myerr();
						return false;
					}else{
						alert("Load XMLHttpRequest Error Not File....");
						return false;
					}
				}
				oBj = null;
			}
		}
		oBj.open(gtse,url,true);
		//oBj.overrideMimeType("text/html;charset=gb2312"); //firefox支持
		if(gtse=="POST"){
			oBj.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded");
		}
		oBj.send(snus);
	}
	this.lScript = function(url,process){
		var oBj;
		if(window.XMLHttpRequest){
			oBj = new XMLHttpRequest();
		}else if(window.ActiveXObject){
			oBj = new ActiveXObject("Microsoft.XMLHTTP");
		}else{
			alert("您使用的浏览器不支持XMLHttpRequest的创建");
			return false;
		}
		oBj.onreadystatechange = function(){
			if(oBj.readyState == 4){
				if(oBj.status == 200){
					process(oBj.responseText);
				}else{
					alert("Load XMLHttpRequest Error Not File....");
					return false;
				}
				oBj = null;
			}
		}
		oBj.open("GET",url,true);
		oBj.send(null);
	}
	this.CreateTag = function(s){
		if(!s.obj){alert("对象不存在,不能创建新标签");return false;}
		var Cobj = document.createElement(s.elt);
		this.Cobj = Cobj;
		for(var i=0;i<s.tag.length;i++){
			if(s.tag[i][0]=="style"){
				var rw = s.tag[i][1];
				var stt = Cobj.style;
				for(var ii=0;ii<rw.length;ii++){
					stt[rw[ii][0]] = rw[ii][1];
				}
			}else{
				Cobj[s.tag[i][0]] = s.tag[i][1];
			}
		}
		s.obj.appendChild(Cobj);
	}
	this.reperor = function(inputStr){
		inputStr = inputStr.replace(/'/g,"&acute;");
		inputStr = inputStr.replace(/"/g,"&quot;");
		return inputStr;
	}
	this.judge = function(positive,value){
		return positive.test(value);
	}
	this.getRequest = function(s){
		if(s){
			var url = window.location.hash;
			if(url)return url.split("=")[1];
		}else{
			var theRequest = new Object();
			var url = location.search.toLowerCase();
			if(url.indexOf('?') != -1){ 
				var str = url.substr(1);
				str = str.split("&");
				for(var i = 0; i < str.length; i ++) { 
					theRequest[str[i].split("=")[0]]=unescape(str[i].split("=")[1]);
				}
			}
		}
		return theRequest;
	}
	this.cookies = function(name,value,path){
		if(value){
			document.cookie = name+"="+escape(value)+";path="+(path?path:'/');
			return escape(value);
		}else{
			if(name.indexOf(",")!="-1"){
				var usca = "1";
				var chkname = name.split(",");
				name = chkname[0];
			}
			var allcookies = document.cookie;
			var cookie_pos = allcookies.indexOf(name);
			if(cookie_pos!= -1){
				cookie_pos += name.length + 1;
				var cookie_end = allcookies.indexOf(";", cookie_pos);
				if(cookie_end == -1){
					cookie_end = allcookies.length;
				}
				var value = unescape(allcookies.substring(cookie_pos,cookie_end));
			}
			if(usca=="1"){
				if(value){
					name = chkname[1];
					cookie_pos = value.indexOf(name);
					if(cookie_pos!= -1){
						cookie_pos += name.length + 1;
						cookie_end = value.indexOf("&",cookie_pos);
						if(cookie_end == -1){
							cookie_end = value.length;
						}
						value = value.substring(cookie_pos,cookie_end);
					}
				}else{
					value = false;
				}
			}
			if(!value){value = false;}
			if(value==undefined){value = false;}
			return value;
		}
	}
	this.getAttribute = function(s){
		var attr = s.obj.attributes[s.ele];
		return (attr)?attr.nodeValue:null;
	}
	this.getScript = function(s){
		if(s){
			var e = "",p,r;
			if(s.indexOf("expand")!=-1&&s.indexOf("import")!=-1){
				var patterns = /\n?import\s+([^;\n]+)\s*;/ig,ret;
				while((ret=patterns.exec(s))!=null){
					this.lScript(jceh+"/lib/"+ret[1]+".js",function(sreturn){
						eval(sreturn);
					});
				}

			}else if(s.indexOf("export")!=-1&&s.indexOf("import")!=-1){
				s = s.split("import");
				for(var i=1;i<s.length;i++){
					r = "import "+s[i];
					r.replace(/import([a-zA-Z0-9\s_]+)/g,function($1,$2){
						imports = $2;
					});
					p = r.replace("import"+imports,"");
					p = p.substr(0,p.length-2);
					imports = imports.replace(/\s/g,"");
					if(imports.indexOf("void")!=-1){
						imports = imports.replace("void","");
						p = imports +" = function()"+p
					}else{
						p = "grace."+imports+" = function"+p;
					}
					e = e+"\n"+p;
				}
				return e;
			}
		}else{
			var vele = this.getAttribute({
				obj:this.mm("script")[0],
				ele:"cite"
			});
			if(vele!=null){
				vele = vele.split(",");
				for(var i=0;i<vele.length;i++){
					var r = jceh+"/lib/"+vele[i]+".js?"+this.rndnum(10);  //////正式发布时这里的随机函数需删除
					appoint = true;myerr = function(){
						alert("Load Module Error....");
					}
					this.getData(r,true,function(sreturn){
					});appoint = false;
				}
			}
		}
	}
	this.fixed = function(s){
		if(this.oo("fixeds")) return;
		var fix_dd = document.documentElement;
		s.height = s.height>(fix_dd.clientHeight-20)?fix_dd.clientHeight-20:s.height;
		var fix_body = document.body;
		var fix_wh = (fix_body.clientHeight>fix_dd.clientHeight?fix_body.clientHeight:fix_dd.clientHeight) + "px";
		var fix_ih = fix_dd.offsetHeight;
		if(fix_body.clientHeight<fix_ih) fix_wh = "100%";
		this.fixed.clean = function(f){
			var objClean = grace.oo("fixeds");
			if(objClean) objClean.parentNode.removeChild(objClean);
			if(!f){
				objClean = grace.oo("ScreenOver");
				if(objClean) objClean.parentNode.removeChild(objClean);
			}
		}
		this.fixed.convert = function(){
			if(grace.oo("ScreenOver")) return;
			grace.CreateTag({
				obj:fix_body,
				elt:"div",
				tag:[
					["id","ScreenOver"],
					browser.msie&&browser.version=='6.0'?["innerHTML","<iframe src='about:blank' style='width:100%;height:"+fix_wh+";filter:alpha(opacity=0);'></iframe>"]:'',
					["style",[
							["position","absolute"],
							["zIndex","100"],
							["top","0px"],
							["width","100%"],
							["height",fix_wh],
							["background","#CCC"],
							browser.msie?["filter","alpha(opacity=30)"]:["opacity",30/100]
						]
					]
				]
			});
		}
		if(s.border){
			var j = {b:2,t:2,r:1};
		}else{
			var j = {b:3,t:3,r:2};
		}
		var style = {
			dp : "border:0px;margin:0px auto;padding:0px;text-align:left;height:auto;",
			p : "float:right;background:#709CD2;",
			p1 : "position:absolute;top:3px;left:3px;padding:1px;background:#709CD2;color:#F2F2F2;",
			p2 : "position:absolute;top:0;right:0;background:#709CD2;",
			a : "color:#F2F2F2;text-decoration:none;",
			div : ["height:14px;padding:0 1px;position:absolute;top:"+j.t+"px;right:"+j.r+"px;z-index:100;","background:#FFF;border:#709CD2 "+j.b+"px solid;height:"+s.height+"px;"]
		},scontent;
		this.fixed.layer = function(s){
			var obj = grace.oo("fixeds");
			if(!obj) return;
			if(grace.oo("layerOver")) return;
			grace.CreateTag({
				obj:obj,
				elt:"div",
				tag:[
					["id","layerOver"],
					browser.msie&&browser.version=='6.0'?["innerHTML","<iframe src='about:blank' style='width:100%;height:"+obj.clientHeight+6+";filter:alpha(opacity=0);'></iframe>"]:'',
					["style",[
							["position","absolute"],
							["zIndex","103"],
							["top","0px"],
							["width","100%"],
							["height",obj.clientHeight+6],
							["background","#CCC"],
							browser.msie?["filter","alpha(opacity=30)"]:["opacity",30/100]
						]
					]
				]
			});
			style.div[0] = "position:absolute;top:50%;left:50%;margin:-"+(s.height/2)+"px 0 0 -"+(s.width/2)+"px;z-index:104;width:"+s.width+"px;height:"+s.height+"px;background:#FFF;border:#709CD2 3px solid;";
			scontent = (typeof(s.content)!="string"?(s.content?s.content.innerHTML:'对象不存在'):s.content);
			scontent = (s.title?"<p style='"+style.dp+""+style.p1+"'>"+s.title+"</p>":'')+"<div id='msgolc' style='"+style.dp+""+style.div[0]+"'><p style='"+style.dp+""+style.p2+"'><a href='javascript:;' style='"+style.a+"' onclick='grace.fixed.layer.clean();'>关闭</a></p><div style='"+style.dp+"'>"+scontent+"</div>";
			obj.insertAdjacentHTML("beforeEnd",scontent);
			s.cmd ? s.cmd() : '';
		}
		this.fixed.layer.clean = function(f){
			var objClean = grace.oo("msgolc");
			if(objClean) objClean.parentNode.removeChild(objClean);
			objClean = grace.oo("layerOver");
			if(objClean) objClean.parentNode.removeChild(objClean);
		}
		if(!s.ScreenOver){
			if(!this.oo("ScreenOver")) this.fixed.convert();
		}
		scontent = (typeof(s.content)!="string"?(s.content?s.content.innerHTML:'对象不存在'):s.content);
		if(grace.cseek(scontent,"url:")>-1){
			scontent = scontent.replace("url:",'');
			scontent = "<iframe src='"+scontent+"' name='fisidjs' id='fisidjs' style='width:"+(s.width-6)+"px;height:"+s.height+"px;' frameborder='0'></iframe>";
		}
		scontent = (s.title?"<p style='"+style.dp+""+style.p1+"'>"+s.title+"</p>":'')+"<div style='"+style.dp+""+style.div[0]+"'><p style='"+style.dp+""+style.p+"'>"+(s.isclean?"":"<a href='javascript:;' style='"+style.a+"' onclick='grace.fixed.clean();'>关闭</a>")+"</p></div><div style='"+style.dp+""+style.div[1]+"'>"+scontent+"</div>";
		this.CreateTag({
			obj:fix_body,
			elt:"div",
			tag:[
				["id","fixeds"],
				["innerHTML",scontent],
				["style",[
						["position","fixed"],
						["zIndex","101"],
						["top","50%"],
						["left","50%"],
						["margin","-"+(s.height/2)+"px 0 0 -"+(s.width/2)+"px"],
						["width",s.width+"px"],
						["height",s.height+"px"]
					]
				]
			]
		});
		if(browser.msie&&browser.version=='6.0'){
			fixed = grace.oo("fixeds").style;
			with(fixed){
				position = "absolute";
				top = fix_dd.scrollTop+((fix_dd.clientHeight-s.height)/2)+(s.height/2);
			}
			window.onscroll = function(){
				ntop = fix_dd.scrollTop+((fix_dd.clientHeight-s.height)/2)+(s.height/2);
				fixed.top = ntop;
			}
			if(this.oo("fisidjs"))fisidjs.window.location.reload();
		}
		s.cmd ? s.cmd() : '';
	}
	/*
	data = {
		style:{
			tag:"span", //创建的标签名
			width:65, //宽
			height:22, //高
			fsize:12, //字体大小
			bdcolor:"#999", //边框颜色
			bgcolor:"#EEE" //背景颜色
		},
		choose : 2, //默认
		fors:[
			{
				name:"所有风格",
				href:"ashhs.html",
				onclick:function(){
					alert(1);
				}
			}
		]
	}
	grace.csel(grace.oo("ddd"),data);
	*/
	this.csel = function(obj,data){
		if(!data.style){
			data.style = {
				tag:"div", //创建的标签名
				width:65, //宽
				height:22, //高
				fsize:12, //字体大小
				bdcolor:"#999", //边框颜色
				bgcolor:"#EEE" //背景颜色
			}
		}
		if(!data.style.width) data.style.width = 65;
		if(!data.style.height) data.style.height = 22;
		if(!data.style.fsize) data.style.fsize = 12;
		if(!data.style.bdcolor) data.style.bdcolor = "#999";
		if(!data.style.bgcolor) data.style.bgcolor = "#EEE";
		data.style.my = {
			a:"height:"+data.style.height+"px;line-height:"+data.style.height+"px;",
			span:"top:"+data.style.height+"px;width:"+data.style.width+"px;background:"+data.style.bgcolor+";border:1px solid "+data.style.bdcolor+";border-top:0;"
		}
		var forh = "",defs;
		for(var i=0;i<data.fors.length;i++){
			if(!data.fors[i].href){
				data.fors[i].href = "javascript:;";
			}else{
				if(data.fors[i].onclick) data.fors[i].href = "javascript:;";
			}
			if(!data.fors[i].onclick){
				data.fors[i].onclick = function(){};
			}
			if(data.choose&&data.choose==i){
				defs = data.fors[i].name;
			}else{
				if(!defs){
					defs = data.fors[0].name;
					if(data.choose)forh += "<a href=\""+data.fors[i].href+"\" onclick='data.fors["+i+"].onclick();' style=\""+data.style.my.a+"\">"+data.fors[i].name+"</a>";
				}else{
					forh += "<a href=\""+data.fors[i].href+"\" onclick='data.fors["+i+"].onclick();' style=\""+data.style.my.a+"\">"+data.fors[i].name+"</a>";
				}
			}
		}
		forh = "<a href=\"javascript:;\" style=\""+data.style.my.a+"\">"+defs+"</a><span style=\""+data.style.my.span+"\">"+forh+"</span>";
		grace.CreateTag({
			obj:obj,
			elt:(data.style.tag?data.style.tag:"div"),
			tag:[
				["innerHTML",forh],
				["className","csel"],
				["style",[
						["background",data.style.bgcolor+" url(\"/images/xjt.gif\") "+(data.style.width-10)+"px center no-repeat"],
						["width",data.style.width+"px"],
						["border","1px solid "+data.style.bdcolor],
						["font-size",data.style.fsize+"px"]
					]
				]
			]
		});
	}
	this.select = {
		date : function(s){
			s.choose = s.choose.split("-");
			sel = grace.oo(s.obj[0]);
			sel.options.length = 0;
			sel.options[sel.options.length] = new Option("","");
			ia = 0;
			if(s.attach){
				ia = s.attach.length;
				for(var i=0;i<ia;i++){
					sel.options[sel.options.length] = new Option(s.attach[i],i);
					s.choose[0]?(i==s.choose[0]?sel.selectedIndex=i+1:''):'';
				}
			}
			for(var i=s.bst[0],ii=0;i<=s.bst[1];i++,ii++){
				sel.options[sel.options.length] = new Option(i,i);
				s.choose[0]?(i==s.choose[0]?sel.selectedIndex=ii+1+ia:''):'';
			}
			sel = grace.oo(s.obj[1]);
			sel.options.length = 0;
			sel.options[sel.options.length] = new Option("","");
			for(var i=1;i<=12;i++){
				sel.options[sel.options.length] = new Option(i,i);
				s.choose[1]?(i==s.choose[1]?sel.selectedIndex=i:''):'';
			}
			s.cmd?s.cmd({y:s.choose[0],m:s.choose[1]}):'';
		},
		text : function(s){
			sel = grace.oo(s.obj);
			s.cmd ? s.cmd() : '';
			s.onchange ? sel.onchange = s.onchange : '';
			sel.options.length = 0;
			sel.options[sel.options.length] = new Option((s.def?s.def:"请选择"),'');
			for(var i=0;i<s.bst.length;i++){
				sel.options[sel.options.length] = new Option(s.bst[i].value,s.bst[i].id);
				s.choose?(s.bst[i].id==s.choose?sel.selectedIndex=i+1:''):'';
			}
		},
		connect : function(s){
			nobj = eval(s.bst+".$"+s.id);
			sel = grace.oo(s.obj);
			s.choose?s.choose = s.choose.split(","):'';
			s.cmd ? sel.onchange = s.cmd : '';
			sel.options.length = 0;
			sel.options[sel.options.length] = new Option((s.def?s.def:"请选择"),'');
			if(nobj){
				for(var i=0,ii=0;i<nobj.length;i++,ii++){
					nvd = nobj[i];
					sel.options[sel.options.length] = new Option(nvd.name,nvd.id);
					s.choose?(s.choose[0]?(nvd.id==s.choose[0]?sel.selectedIndex = ii+1:''):''):'';
				}
			}
			if((s.choose)&&(s.choose[0]&&s.choose[1])){
				this.connect({
					bst:s.bst,
					id:s.choose[0],
					obj:s.eobj,
					choose:s.choose[1]
				});
			}
			s.lod ? s.lod(s):'';
		}
	}
	/*下载文件*/
	this.jsLoader = {
		load : function(f){
			var oTags=document.getElementsByTagName("script");
			for(i=oTags.length-1;i>=0;i--){
				var src=oTags[i].src;
				if(src&&src.indexOf(f)>-1){
					this.onsuccess();
					return;
				}
			}
			var s=document.createElement("script");
			var header=document.getElementsByTagName("head").item(0);
			s.setAttribute("src",f);
			s.setAttribute("type","text/javascript");
			s.setAttribute("language","javascript");
			header.appendChild(s);
			var _self=this;
			s.onload=s.onreadystatechange=function(){
				if(this.readyState && this.readyState=="loading")
					return;
				_self.onsuccess();
			}
			s.onerror=function(){
				header.removeChild(s);
				_self.onfailure();
			}
		},
		onfailure : function(){},
		onsuccess : function(){}
	}
	this.Url = {
		encode : function (string){
			return escape(this._utf8_encode(string));
		},
		decode : function (string){
			return this._utf8_decode(unescape(string));
		},
		_utf8_encode : function (string){
			string = string.replace(/\r\n/g,"\n");
			var utftext = "";
			for(var n = 0; n < string.length; n++) {
				var c = string.charCodeAt(n);
				if(c < 128){
					utftext += String.fromCharCode(c);
				}else if((c > 127) && (c < 2048)){
					utftext += String.fromCharCode((c >> 6) | 192);
					utftext += String.fromCharCode((c & 63) | 128);
				}else{
					utftext += String.fromCharCode((c >> 12) | 224);
					utftext += String.fromCharCode(((c >> 6) & 63) | 128);
					utftext += String.fromCharCode((c & 63) | 128);
				}
			}
			return utftext;
		},
		_utf8_decode : function(utftext){
			var string = "";
			var i = 0;
			var c = c1 = c2 = 0;
			while ( i < utftext.length ){
				c = utftext.charCodeAt(i);
				if(c < 128){
					string += String.fromCharCode(c);
					i++;
				}else if((c>191)&&(c<224)){
					c2 = utftext.charCodeAt(i+1);
					string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
					i += 2;
				}else{
					c2 = utftext.charCodeAt(i+1);
					c3 = utftext.charCodeAt(i+2);
					string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
					i += 3;
				}
			}
			return string;
		}
	}
	this.cseek = function(data,key){//查找数据 找到返回 > -1
		var re = new RegExp(key,[''])
		return (data.toString().replace(re,"<ceb\0>").replace(/[^,<ceb\0>]/g,'')).indexOf("<ceb\0>")
	}
	this.openwin = function(s){
		if(!s){
			s={};
			s.url = s.name = s.width = s.height = false;
		}
		s.url = (s.url?s.url:"about:blank");
		s.name = (s.name?s.name:'');
		s.width = (s.width?s.width:800);
		s.height = (s.height?s.height:1000);
		var intTop = 0;
		var intLeft = 0;
		var winWidth = window.screen.availWidth;
		var winHeight = window.screen.availHeight-50;
		var scrollNorY= (s.scroll?"yes":"no");
		if(parseInt(s.height)==8888){//如果高度为8888,那么全屏显示
			s.width = window.screen.availWidth;
			s.height = window.screen.availHeight-50;
		}else{ //从中间呈现
			intTop = (window.screen.availHeight-parseInt(s.height))/2;
			intLeft = (window.screen.availWidth-parseInt(s.width))/2;
			if(intTop < 30)intTop = 0;
			if(intLeft < 30)intLeft = 0;
		}
		if(s.width>winWidth){
			s.width=winWidth;
			scrollNorY = "yes";
		}
		if(s.height>699)scrollNorY = "yes";
		if(s.height>winHeight){
			if(s.height==5555){
				scrollNorY = "no";
			}else{
				scrollNorY = "yes";
			}
			s.height = winHeight;
		}
		var windowconfig = "status=no,scrollbars=" + scrollNorY + ",top=" + intTop + ",left=" + intLeft + ",resizable=0,width=" + s.width + ",height=" + s.height;
		return window.open(s.url,s.name,windowconfig);
	}
	this.roll = function(s){
		var slideBox = (typeof s.o == 'string')?this.oo(s.o):s.o;
		var delay = s.t||1000, speed=s.f||20, lh = s.h||20;
		var tid = null, pause = false;
		var start = function() {
			tid=window.setInterval(slide, speed);
		}
		var slide = function() {
			if (pause) return;
			slideBox.scrollTop += 2;
			if(slideBox.scrollTop % lh==0){
				clearInterval(tid);
				slideBox.appendChild(slideBox.getElementsByTagName(s.e)[0]);
				slideBox.scrollTop = 0;
				window.setTimeout(start,delay);
			}
		}
		slideBox.onmouseover = function(){
			pause=true;
		}	
		slideBox.onmouseout = function(){
			pause=false;
		}
		window.setTimeout(start,delay);
	}
	this.arc = function(arr,s){ //删除指定数组 arr=数组 s=指定删除值
		var j=0;
		for(i=0;i<arr.length;i++){
			if(arr[i]==s){
				break;
			}
			j++;
		}
		arr.splice(j,1);
	}
	this.findPos = function(obj){
		var curleft = curtop = curwidth = curheight = 0;
		if(obj.offsetParent){
			curleft = obj.offsetLeft;
			curtop = obj.offsetTop;
			curwidth = obj.offsetWidth;
			curheight = obj.offsetHeight;
			while(obj = obj.offsetParent){
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			}
		}
		return {l:curleft,t:curtop,w:curwidth,h:curheight};
	}
	this.tips = function(data){
		if(grace.oo("___tips")) return;
		var n = this.findPos(data.obj);
		if(data.width) n.w = data.width;
		var ie6s = ['',''];
		if(browser.msie&&browser.version=='6.0'){
			ie6s = ["<iframe src='about:blank' style='width:"+n.w+"px;"+(data.height?"height:"+(data.height+32)+"px;":'')+"filter:alpha(opacity=0);'></iframe><div style='position:absolute;top:0;left:0;'>","</div>"];
		}
		grace.CreateTag({
			obj:document.body,
			elt:"div",
			tag:[
				["id","___tips"],
				["className","c_tips"],
				["innerHTML",ie6s[0]+"<p class=\"t\"><span class=\"fl\">"+(data.title?data.title:'')+"</span><a href=\"javascript:;\" onclick=\"grace.tips.clean();\" class=\"fr\"><img src=\"/images/del8.jpg\" /></a></p><div class=\"c\" style=\"height:"+data.height+"px;\">"+data.content+"</div>"+ie6s[1]],
				["style",[
						["top",(n.t+n.h)+"px"],
						["left",n.l+"px"],
						data.height?["height",(data.height+32)+"px"]:'',
						["width",n.w+"px"]
					]
				]
			]
		});
		this.tips.clean = function(){
			grace.oo("___tips").style.display = "none";
		}
		var eventRelation = function(pObj,oId,l,t){	//鼠标点击到所指定层以外关闭标签
			if(!l) l=0;
			if(!t) t=0;
			var obj=grace.oo(oId);
			Andy_relating.nowStyle = new Andy_relatingStyle(l, t);
			Andy_relating.relating(oId,pObj);
		}
		this.jsLoader.onsuccess=function(){
			eventRelation(data.obj,"___tips",n.l,n.t);
		};
		this.jsLoader.load("/js/common/andy_relating.js");
	}
	this.autoSize = function(obj,w,h){
		var oIMG=new Image()
		oIMG.onload=function(){
			var oW=this.width;
			var oH=this.height;
			var tax=1;
			if(oW>w||oH>h)
			tax=(oW/oH) > (w/h)?(w/oW):(h/oH);
			obj.style.marginLeft=(w-Math.floor(oW*tax))/2+"px";
			obj.style.marginTop =(h-Math.floor(oH*tax))/2+"px";
			obj.width=oW*tax;
			obj.height=oH*tax;
		}
		oIMG.src=obj.src;
	}
	this.pull = function(s){
		var tl = this.findPos(s.obj)
		var fix_body = document.body;
		var scontent='';
		for(var i=0;i<s.data.length;i++){
			scontent += "<li onmousedown='alert(\""+s.data[i]+"\");'>"+ s.data[i] + "</li>";
		}
		grace.CreateTag({
			obj:fix_body,
			elt:"ul",
			tag:[
				["id","inputpull"],
				["innerHTML",scontent],
				["style",[
						["position","absolute"],
						["zIndex","5"],
						["top",tl.t+s.obj.offsetHeight+2+"px"],
						["left",tl.l+3+"px"],
						["width",s.obj.clientWidth+"px"],
						["height","60px"],
						["border","#004D91 1px solid"],
						["background","#FFF"],
						["cursor","pointer"]
					]
				]
			]
		});
	}
/*
	移动图层函数：
		o->需要移动的元素对象
		m->布尔值 false代表没限制 全屏移动 true表示在父层对象下移动
	函数使用条件：
		移动对象需要css设置为绝对定位 如果需要移动图片 那么需要在图片外面套一个非图片标签 移动该非图片标签
		如果m为true 父层需要设置为相对定位
	函数使用限制：
		在IE浏览器下功能正常
		在firefox中需要把HTML页面的头部w3c验证标准  以及<html>标签里的属性删除
*/
	this.drag = function(o,m){
		var x,y;
		o.onmousedown=MouseDown;
		if(o.firstChild)o.firstChild.onmousedown=function(){return false};
		var oP=o.parentNode;
		var r=new Array();
		function MouseDown(evt){
			var evt=evt?evt:window.event;
			if(o.setCapture)
			o.setCapture();
			else if(!isFirefox&&window.captureEvents)
			window.captureEvents(evt.mousemove|evt.mouseup);
			if(m){
				r[0]=oP.layerLeft?oP.layerLeft:oP.offsetLeft;
				r[1]=r[0]+oP.offsetWidth?oP.offsetWidth:oP.layerWidth;
				r[2]=oP.layerTop?oP.layerTop:oP.offsetTop
				r[3]=r[2]+oP.offsetHeight?oP.offsetHeight:oP.layerHeight;
			}
			x=evt.layerX?evt.layerX:evt.offsetX;
			y=evt.layerY?evt.layerY:evt.offsetY;
			document.onmousemove=MouseMove;
			document.onmouseup=MouseUp;
			stopEvent(evt);
			return false;
			function MouseMove(evt){
				var evt=evt?evt:window.event;
				var Tx=evt.pageX?evt.pageX:evt.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft);
				var Ty=evt.pageY?evt.pageY:evt.clientY+(document.documentElement.scrollTop||document.body.scrollTop);
				if(m){
					Tx=Tx-r[0];
					Ty=Ty-r[2];
				}
				o.style.left=parseInt(Tx-x);
				o.style.top=parseInt(Ty-y);
				document.body.style.cursor="move";
				stopEvent(evt)
				return false;
			}
			function MouseUp(evt){
				evt=evt||window.event;
				if(o.releaseCapture)
				o.releaseCapture();
				else if(!isFirefox&&window.releaseEvents)
				window.releaseEvents(evt.mousemove|evt.mouseup);
				document.onmousemove=null;
				document.onmouseup=null;
				document.body.style.cursor="";
				stopEvent(evt)
				return false;
			}
			function stopEvent(evt){
				if(evt.preventDefault){
					evt.stopPropagation();
					evt.preventDefault();
				}else{
					evt.returnValue=false;
					evt.cancelBubble=true;
				}
			}
		}
	}
}
String.prototype.trim = function(){
	return grace.reperor(this.replace(/(^\s*)|(\s*$)/g,""));
}
String.prototype.lennum = function(){
	str = this;
	return str.length+escape(str).split("%u").length-1;
}
Array.prototype.in_array = function(v){
	for(key in this){
		if(this[key]==v) return true;
	}
	return false;
}
var Events=new Object();
/* 
   为一个元素添加事件 
   oTarget 需要添加事件的对象
   sEventType 事件类型  (不需要加on)
   fnLister   事件触发函数
   例如Events.addEventList($('img'),'click',request)
*/
Events.addEvent=function(oTarget,sEventType,fnLister){
	if(oTarget.addEventListener){
		oTarget.addEventListener(sEventType,fnLister,false);
	}else if(oTarget.attachEvent){
		oTarget.attachEvent("on"+sEventType,fnLister);
	}else{
		oTarget["on"+sEventType]=fnLister;
	}
}
/* 
	删除某个对象上的事件 
    oTarget    需要删除事件的对象
    sEventType 事件类型  (不需要加on)
    fnLister   事件触发函数
    例如Events.removeEvent($('img'),'click',request)
*/
Events.removeEvent=function(oTarget,sEventType,fnLister){
	if(oTarget.removeEventListener){
		oTarget.removeEventListener(sEventType,fnLister,false);
	}else if(oTarget.detachEvent){
		oTarget.detachEvent("on"+sEventType,fnLister);
	}else{
		oTarget["on"+sEventType]=null;
	}
}
/*
	格式化鼠标事件参数  最大程度的达到IE和firefox兼容
*/
Events.formatEvent=function(oEvent){
	if(browser.msie&&isWin){
		/*按键码*/
		oEvent.charCode     =(oEvent.type=="keypress")?oEvent.keyCode:0;
		oEvent.eventPhase   =2;
		/*按键是否为字符*/
		oEvent.isChar       =(oEvent.charCode>0);
		/*鼠标点离屏幕左距离*/
		oEvent.pageX        =oEvent.cleintX+(document.body.scrollLeft||document.documentElement.scrollLeft);
		/*鼠标点离屏幕顶距离*/
		oEvent.pageY        =oEvent.cleintY+(document.body.scrollTop||document.documentElement.scrollTop);
		/*鼠标事件返回值*/
		oEvent.preventDefalt=function(){this.returnValue=false;}
		if(this.type=="mouseout"){
			oEvent.relatedTarget=oEvent.toElement;
		}else if(this.type=="mouseover"){
			oEvent.relatedTarget=oEvent.fromElement;
		}
		/*鼠标点击对象*/
		oEvent.target=oEvent.srcElement;
		oEvent.time  =(new Date()).getTime();
	}
	return oEvent;
}
/*
	函数内部获取触发该函数的鼠标对象
	在通常情况下可以由参数直接获取  但是当函数为句柄时无法传递参数时派上用场
*/
Events.getEvent=function(){
	if(window.event)
	return this.formatEvent(window.event);
	else
	return Event.getEvent.caller.arguments[0];
}
grace.login = function(){
	if(grace.cookies("Uid")){
		var ccls;
		switch(parseInt(grace.cookies("Ucls"))){
			case 1:ccls="owner";break;
			case 2:ccls="company";break;
			case 3:ccls="design";break;
			case 4:ccls="seller";break;
		}
		grace.ar("login","b")[0].innerHTML=grace.cookies("Uname")+"&nbsp;";
		grace.ar("login","span")[0].innerHTML="[<a href=\"/"+ccls+"/"+grace.cookies("Uid")+"/index.html\" class=\"red\" target=\"_blank\">我的网站</a>]&nbsp;[<a href=\"/member/login.html?acot=out\">安全退出</a>]";
	}
}
function addFav(){//加入收藏夹
	if(document.all){
		window.external.addFavorite('http://www.86es.cn', '易饰网-打造装修装饰新模式！');
	}else if(window.sidebar){
		window.sidebar.addPanel('易饰网-打造装修装饰新模式！', 'http://www.86es.cn','');
	}
}
function SetHome(obj){
	try{
        obj.style.behavior='url(#default#homepage)';
        obj.setHomePage('http://www.86es.cn');
    }catch(e){
		if(window.netscape){
            try{
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
            }catch(e){
                alert("抱歉，此操作被浏览器拒绝！\n\n请在浏览器地址栏输入“about:config”并回车然后将[signed.applets.codebase_principal_support]设置为'true'");
            }
        }else{
            alert("抱歉，您所使用的浏览器无法完成此操作。\n\n您需要手动将'http://www.86es.cn/'设置为首页。");
        }
    }
}
function zxkf(){
	grace.openwin({
		name : "86es_kf",
		width : 697,
		height : 470,
		url : "http://chat.5251.net/client.jsp?companyId=5462&style=12719&username=&locate=cn&refer="+escape(document.referrer)+"&keyword=&userid=1277344802625_2349&workId=5649&flag=3"
	});
}