﻿/*
************************
**Auther:张老黑 AS Commandos Black Hurricane@www.dewsong.com
**E-mail:old-black@163.com
************************
**页面通用的JS库，更新日期2009-1-10
************************
*/
var cms=0.98;
var dl='数据处理中&nbsp;<img class="spanning" src="'+rt+'img/loading.gif" />';
var cp=1;//常量
var mp=10;//页面显示数量
var ie=document.all?true:false;
/*处理用户状态*/
var User=new function(){
	var ur=this;
	ur.url=rt+'pro/cms.user.asp';
	ur.Uid='0';
	ur.Unm='0';
	ur.Ulv='0';
	ur.Gru='0';
	ur.Ust=[];
	ur.uK=false;
	ur.pK=false;
	ur.Pass=function(){};
	ur.Fail=function(){};
	ur.Close=function(){};
	ur.After=function(){};
	ur.loginForm='<div class="regForm"> <table width="700" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="231" height="307" valign="top" style="border:1px #97A5C4 solid;"><table width="213" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" class="HOME12lan">已经是商都体育成员？</td> </tr> <tr> <td height="30" colspan="2" class="fong14zch" style="border-bottom:1px #97A5C4 solid;">请登录</td> </tr> <tr> <td width="57" height="35" align="right">用户名：</td> <td width="156"> <input type="text" class="str" id="cms_username" onkeypress="User.CheckK(event);" onblur="User.CheckU(this);"/> </td> </tr> <tr> <td height="35" align="right">密码：</td> <td> <input type="password" class="str" id="cms_password" onkeypress="User.Enter(event);" onblur="User.CheckP(this);"/> </td> </tr> <tr> <td height="30">&nbsp;</td> <td><input type="checkbox" name="checkbox" id="cms_expires" style="vertical-align:middle;" /> <label for="cms_expires">下次自动登陆</label></td> </tr> <tr> <td height="30">&nbsp;</td> <td><button type="button" onclick="User.Login();">&nbsp;登&nbsp;陆&nbsp;</button> <a href="#" class="font12lan18">忘记密码?</a></td> </tr> <tr> <td height="30" colspan="2"><span id="urNotice"></span></td> </tr> </table></td> <td width="19">&nbsp;</td> <td width="450" onclick="" valign="top" style="border:1px #97A5C4 solid;"><form id="reg_userInfo"> <table width="433" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" class="HOME12lan"><a id="closeUserForm" class="closeBtn" href="javascript:;"></a>还没有加入组织吗？</td> </tr> <tr> <td height="30" colspan="2" class="fong14zch" style="border-bottom:1px #97A5C4 solid;">请注册</td> </tr> <tr> <td width="93" height="35" align="right">用户名：</td> <td width="340"> <input type="text" id="reg_username" class="str" onblur="User.CheckName(this);" /> <span style="color:#3D4A65;" id="regtips_1"></span></td> </tr> <tr> <td height="35" align="right">注册密码：</td> <td> <input type="password" id="reg_password" class="str" onkeypress="User.Cipher(this);" onblur="User.Compare();User.Cipher(this);" /> <span style="color:#3D4A65;" id="regtips_2"></span></td> </tr> <tr> <td height="30">&nbsp;</td> <td class="font12huiz" id="reg_ckpassword">密码安全程度</td> </tr> <tr> <td height="50" align="right" >重复密码：</td> <td> <input type="password" id="reg_repassword" class="str" onblur="User.Compare();" /> <span style="color:#3D4A65;" id="regtips_3"></span></td></tr> <tr> <td height="50" align="right" valign="top">邮箱：</td> <td valign="top"> <input type="text" id="reg_email" class="str" rule="1||6||60||" tip="请填写您的常用邮箱,这将有助于帮助您在忘记密码时快速找回" warn="" pass="您的邮箱可以使用" tiparea="regtips_4" /><br /><span style="color:#3D4A65;" id="regtips_4"></span></td></tr> <tr> <td height="30" align="right"></td> <td><button type="button" onclick="User.Reg();">&nbsp;注册新用户&nbsp;</button> <br /><span style="color:#3D4A65;line-height:24px;" id="regtips_5">点击注册按钮就代表,您已了解并愿遵守 <a style="color:#497681;" href="#">《用户注册协议》</a></span></td> </tr> </table></form></td> </tr> </table> </div>';
	ur.loginFormWidth=716;
	ur.Check=function(withForm){
		ur.Uid=gC('userId');
		if (ur.Uid!=''&&ur.Uid!=0){
			uP('formLogin');
			ur.Unm=unescape(gC('userName'));
			ur.Ulv=gC('userLevel');
			ur.Gru.indexOf('|'+ur.Ulv+'|')>-1?ur.Pass():ur.Fail();
			ur.After();
			var u=ur.url+'?op=track&id='+ur.Uid;
			var x=function(o){
				var t=aRP(unescape(o.responseText)).split('|');
				ur.Ust=t[0].split('$');
			}
			gD(u,x);
		}
		else{
			if (withForm) ur.PrintForm();
			else ur.After();
		}
	}
	ur.PrintForm=function(){
		cFF('formLogin',ur.loginFormWidth,parseInt((getPageSize().wW-ur.loginFormWidth)/2),config.MaskColor,ur.loginForm);
		ur.Notice=g('urNotice');
		ur.Notice.innerHTML='';
		if (g('reg_userInfo')) {
			ur.regForm=new UI_Form(g('reg_userInfo'));
			g('reg_userInfo').reset();
			g('reg_ckpassword').innerHTML='密码安全程度';
			var cmd=function(){
				uP('formLogin');
				ur.Close();
				if (ie) return false;
			}
			$e(g('closeUserForm'),'click',cmd);
			for (var j=1;j<5;j++){
				g('regtips_'+j).innerHTML='';
			}
		}
	}
	ur.Login=function(){
		ur.CheckU(g('cms_username'));
		ur.CheckP(g('cms_password'));
		var s='<span class="chk_fail">请将';
		if (!ur.uK){
			s+='用户名';
			if (!ur.pK){s+='和密码';}
			cue.Notice(ur.Notice,s+'填写完整</span>');
		}
		else if (!ur.pK){
			s+='密码';
			cue.Notice(ur.Notice,s+'填写完整</span>');
		}
		else{
			var U=g('cms_username').value;
			var K=g('cms_password').value;
			var E=g('cms_expires')&&g('cms_expires').checked?'336':'0';
			ur.Notice.innerHTML=dl;
			var u=ur.url+'?op=login&cex='+E+'&un='+escape(U)+'&pw='+escape(K);
			var x=function(o){
				if (aRP(o.responseText)=='false'){
					g('cms_username').focus();
					cue.Notice(ur.Notice,'<span class="chk_fail">用户名或密码错误，请重输</span>');
				}
				else{
					ur.uK=false;
					ur.pK=false;
					ur.Check();
					if (config.HasForum){//待完善的论坛登录
						var s='password='+pw+'&username='+un;
						var u=rt+'bbs/loginBBs.aspx?op=login';
						var x=function(o){}
						sD(u,s,x);
					}
				}
			}
			gD(u,x);
		}
	}
	ur.Logout=function(){
		var u=ur.url+'?op=logout';
		var x=function(o){
			if (config.HasForum){//待完善的论坛登录
				var u=rt+'bbs/loginBBs.aspx?op=logout';
				var x=function(o){}
				gD(u,x);
			}
			document.location.reload();
		}
		gD(u,x);
	}
	ur.CheckU=function(O){
		var UN=O.value;
		if (UN!=''){
			if (strCount(UN)<4||strCount(UN)>14){
				cue.Notice(ur.Notice,'<span class="chk_fail">用户名长度应在4～14位之间</span>');
				ur.uK=false;
			}
			else{
				ur.uK=true;
				ur.Notice.innerHTML='';
			}
		}
	}
	ur.CheckP=function(O){
		var KE=O.value;
		if (KE!=''){
			if (KE.length<6||KE.length>16){
				cue.Notice(ur.Notice,'<span class="chk_fail">密码长度应在6～16位之间</span>');
				ur.pK=false;
			}
			else{
				ur.pK=true;
				ur.Notice.innerHTML='';
			}
		}
	}
	ur.CheckK=function(event){
		var t=ie?window.event.keyCode:event.which;
		var O=ie?window.event.srcElement:event.target;
		if (ie&&((t<48)||((t>57)&&(t<65))||((t>90)&&(t<97))||(t>122))&&(t!=95)){
			var s=O.value;
			O.value=s.substring(0,s.length-1);
			cue.Notice(ur.Notice,'<span class="chk_fail">用户名中只包含汉字，英文字母，数字或下划线</span>');
		}
	}
	ur.Enter=function(event){
		var t=ie?window.event.keyCode:event.which;
		if (t==13){
			ur.CheckU(g('cms_username'));
			ur.CheckP(g('cms_password'));
			ur.Login();
		}
	}
	ur.CheckName=function(O){
		var un=O.value;
		var nt=g('regtips_1');
		if (un!=''){
			var t=strCount(un);
			if (t>=4&&t<=12){
				var u=ur.url+'?op=check&un='+escape(un);
				function x(o){
					if (o.responseText=='true'){
						nt.innerHTML='<span class="chk_pass">您的用户名可以使用</span>';
						ur.uK=true;
					}
					else{
						nt.innerHTML='<span class="chk_fail">对不起，您的用户名已经被占用</span>';
						ur.uK=false;
					}
				}
				gD(u,x);
			}
			else{
				nt.innerHTML='<span class="chk_fail">请选择4~12位的用户名</span>';
				ur.uK=false;
			}
		}
	}
	ur.Cipher=function(O){
		var v=O.value;
		var t=1;
		if (v.match(/[0-9]/ig)) t=t*2;
		if (v.match(/[a-z]/ig)) t=t*3;
		if (v.match(/(.[^a-z0-9])/ig)) t=t*3;
		t+=v.length;
		if (t<=9){
			s='密码安全程度<div style="background-color:#FC5050;color:#ffffff;line-height:15px;width:60px;">低</div>';
		}
		else if (t>9&&t<=15){
			s='密码安全程度<div style="background-color:#FF953E;color:#ffffff;line-height:15px;width:120px;">中</div>';
		}
		else if (t>15){
			s='密码安全程度<div style="background-color:#A5F15F;color:#ffffff;line-height:15px;width:180px;">高</div>';
		}
		g('reg_ckpassword').innerHTML=s;
	}
	ur.Compare=function(){
		var pw=g('reg_password').value;
		var rw=g('reg_repassword').value;
		if (pw!=''){
			if (strCount(pw)>=6&&strCount(pw)<=12){
				g('regtips_2').innerHTML='<span class="chk_pass">您的密码可以使用</span>';
				if (rw!=''){
					if (pw==rw){
						g('regtips_3').innerHTML='<span class="chk_pass">重复密码正确</span>';
						ur.pK=true;
					}
					else{
						g('regtips_3').innerHTML='<span class="chk_fail">密码与第一次输入的不同</span>';
						ur.pK=false;
					}
				}
			}
			else{
				g('regtips_2').innerHTML='<span class="chk_fail">请选择长度在6~12之间的密码</span>';
				ur.pK=false;
			}
		}
	}
	ur.Reg=function(){
		ur.Compare();
		if (ur.uK&&ur.uK&&ur.regForm&&ur.regForm.checkForm()){
			var s='un='+escape(g('reg_username').value)+'&pw='+escape(g('reg_password').value)+'&ul=user&ug=3&lg=true&em='+escape(g('reg_email').value);
			var u=ur.url+'?op=create';
			var x=function(o){
				if (aRP(unescape(o.responseText))=='true'){
					ur.uK=false;
					ur.pK=false;
					ur.Check();//此处不激活论坛登录
				}
				else{
					g('regtips_5').innerHTML='注册失败,请检查网络并稍后重试';
				}
			}
			sD(u,s,x);
		}
	}
	ur.getProfile=function(){
		var u=ur.url+'?op=getProfile&id='&ur.Uid;
		var x=function(o){
//0username,1nickName,2email,3ontect,4bday,5userset,6website,7icq,8qq
//9yahoo,10msn,11skype,12location,13customstatus,14avatar,15realname,16mobile,17phone,18address
			var t=aRP(unescape(o.responseText)).split('$');

			//下面写调用函数
		}
		gD(u,x);
	}
}
//搜索<select id="types"></select><input type="text" id="keyword" /><input type="button" onclick="sKW();" />gTl(O,v,false,3);
function UI_Search(o,to,u){
	var k=trim(g(o).value);
	var i=g(to)?g(to).value:0;
	if (k==''||k=='输入关键字'){
		alert('搜索前请输入关键字。');
		g(o).focus();
	}
	else{
		document.location.href=u+'?kw='+escape(k)+'&cp=1&id='+i;
	}
	ur.getAuthority=function(aid){
		var au=false;
		if (ur.Ulv=='root'||ur.Ulv=='admin'||ur.Uid==aid){
			au=true;
		}
		return au;
	}
}
//tip对象
var Tip=new function(){
	var style='normal';
	var nomask=false;
	this.ctObj=null;
	this.ctId='';
	this.ctType='';
	this.count=0;
	this.cTO=null;
	this.Tip=function(msg,style,obj){
		if (!obj) Tip.Cue(msg,style);
		else{
			if (ie) document.body.style.height='100.1%';
			var tipObj=$c('div');
			tipObj.id='tip_'+timeStr();
			tipObj.className='cmsUI tip '+style;
			tipObj.innerHTML=msg+'<div class="angle"></div>';
			var of=getOffset(obj);
			tipObj.style.left=of.x+'px';
			tipObj.style.top=(of.y-28)+'px';
			document.body.appendChild(tipObj);
			if (ie) document.body.style.height='100%';//处理ie下border消失Bug
			Tip.ctType='Tip';
			Tip.ctObj=tipObj;
			Tip.ctId=tipObj.id;
			$e(obj,'blur',Tip.Cancel);
		}
	}
	this.Cue=function(msg,style){
		var cueObj=$c('div');
		cueObj.id='cue_'+timeStr();
		cueObj.className='cmsUI cue '+style;
		cueObj.innerHTML=msg;
		var win=getPageSize();
		cueObj.style.left=(config.CueLeft+win.sL)+'px';
		cueObj.style.top=(config.CueTop+win.sT)+'px';
		document.body.appendChild(cueObj);
		Tip.ctType='Cue';
		Tip.ctObj=cueObj;
		Tip.ctId=cueObj.id;
		Tip.count=3;
		Tip.cTO=setTimeout(Tip.CountDown,1000);
	}
	this.Warn=function(msg,style,nomask,para){//para=string 替换为按钮文字 para=int n秒后自动关闭
		var id='warn_'+timeStr();
		var btn='确定';
		var pt=getObjType(para);
		switch (pt){
			case 'string':
				btn=para;break;
			case 'number':
				btn='窗口将在'+para+'秒后关闭';break;
		}
		msg='<div class="icon"></div><div class="msg">'+msg+'</div><div class="btns"><a class="btn" href="javascript:void(0)" onclick="Tip.Cancel();">'+btn+'</a></div>';
		var warnForm=new floatForm(id,msg,'cmsUI warn '+style,280,nomask);
		warnForm.Show();
		Tip.ctType='Warn';
		Tip.ctObj=warnForm;
		Tip.ctId=id;
		if (pt=='number'){
			clearTimeout(Tip.cTO);
			Tip.count=para;
			Tip.cTO=setTimeout(Tip.CountDown,1000);
		}
	}
	this.Confirm=function(msg,style,nomask){
	}
	this.Cusfirm=function(msg,style,nomask,para){//para=操作数组
		var id='cus_'+timeStr();
		if (getObjType(para)!='array'&&para.length<1){
			Tip.Warn(msg,style,nomask);
		}
		else{
			msg='<div class="icon"></div><div class="msg">'+msg+'</div><div class="btns"></div>';
			var cusForm=new floatForm(id,msg,'cmsUI cusfirm '+style,280,nomask);
			cusForm.Show();
			for (var i in para){
				var btn=$c('a');
				btn.className='btn';
				btn.href='javascript:void(0);';
				btn.innerHTML=para[i][0];
				$e(btn,'click',Tip.Cancel);
				$e(btn,'click',para[i][1]);
				$a(g(id).childNodes[2],btn);
			}
			Tip.ctType='Cusfirm';
			Tip.ctObj=cusForm;
			Tip.ctId=id;
		}
	}
	this.CountDown=function(){
		if (Tip.count<=0) Tip.Cancel();
		else{
			Tip.count--;
			if (Tip.ctType!='Cue') g(Tip.ctId).childNodes[2].childNodes[0].innerHTML='窗口将在'+Tip.count+'秒后关闭';
			Tip.cTO=setTimeout(Tip.CountDown,1000);
		}
	}
	this.Cancel=function(){
		clearTimeout(Tip.cTO);
		if (Tip.ctObj){
			if (Tip.ctType=='Tip'||Tip.ctType=='Cue'){
				$d(Tip.ctObj);
			}
			else{
				Tip.ctObj.Hide();
			}
		}
	}
}
var cue=new function(){//3秒自动清除的提示
	var nt=this;
	nt.ot=[];
	nt.Notice=function (obj,msg,cto){
		if (nt.ot[obj]) clearTimeout(nt.ot[obj]);
		obj.innerHTML=msg;
		var cmd=function(){
			obj.innerHTML='';
		}
		cto=cto?cto:3000;
		nt.ot[obj]=setTimeout(cmd,cto);
	}
}
//表单对象
function UI_Form(eForm){
	var oForm=this;
	this.eList=new Array();
	this.setup=function(eForm){
		var eList1=eForm.getElementsByTagName('input');
		var eList2=eForm.getElementsByTagName('select');
		var eList3=eForm.getElementsByTagName('textarea');
		var mx=eList1.length;
		for (var i=0;i<mx;i++){
			oForm.eList.push(eList1[i]);
		}
		mx=eList2.length;
		for (var i=0;i<mx;i++){
			oForm.eList.push(eList2[i]);
		}
		mx=eList3.length;
		for (var i=0;i<mx;i++){
			oForm.eList.push(eList3[i]);
		}
		mx=oForm.eList.length;
		for (var i=0;i<mx;i++){
			if ($u(oForm.eList[i],'rule')){
				$e(oForm.eList[i],'blur',oForm.checkInput);
			}
			if ($u(oForm.eList[i],'tip')&&$u(oForm.eList[i],'tip')!=''){
				$e(oForm.eList[i],'focus',oForm.showTip);
			}
		}
	}
	this.verify=function(v,r,e){//验证函数
		var t=r.split('||');
		var error=[];
		if (t[0]==1&&e){
			if (strCount(v)==0) error[error.length]='empty';
			if (t[1]!=0&&v!=''){
				if (strCount(v)<t[1]) error[error.length]='less';
			}
			if (t[2]!=0&&v!=''){
				if (strCount(v)>t[2]) error[error.length]='more';
			}
			if (t[3]!=''&&v!=''){
				var p=new RegExp(t[3]);
				if (!p.test(v)) error[error.length]='wrong';
			}
		}
		else if (v!=''){
			if (t[1]!=0){
				if (strCount(v)<t[1]) error[error.length]='less';
			}
			if (t[2]!=0){
				if (strCount(v)>t[2]) error[error.length]='more';
			}
			if (t[3]!=''){
				var p=new RegExp(t[3]);
				if (!p.test(v)) error[error.length]='wrong';
			}
		}
		return error.length==0?'true':error;//返回true 或 错误类型
	}
	this.showTip=function(event){//单项检验
		var o=ie?window.event.srcElement:event.target;
		g($u(o,'tiparea')).innerHTML=$u(o,'tip');
	}
	this.checkInput=function(event){//单项检验
		var o=ie?window.event.srcElement:event.target;
		var v=o.value;
		var s='';
		if (v!=''){
			var pass=oForm.verify(v,$u(o,'rule'),false);
			s='<span class="chk_pass">'+$u(o,'pass')+'</span>';
			if (pass!='true'){
				s='<span class="chk_fail"></span>';
				switch (pass[0]){
					case 'empty':
						s+='此项必须填写';break;
					case 'less':
						s+='内容小于规定长度';break;
					case 'more':
						s+='内容大于规定长度';break;
					case 'wrong':
						s+='内容格式不正确';break;
				}
				s+='</span>';
			}
		}
		g($u(o,'tiparea')).innerHTML=s;
	}
	this.checkForm=function(){//表单检验
		mx=oForm.eList.length;
		var error=[];
		for (var i=0;i<mx;i++){
			var o=oForm.eList[i];
			if ($u(o,'rule')){
				var v=o.value;
				var r=$u(o,'rule');
				var tpass=oForm.verify(v,r,true);
				if (tpass=='true'){
					g($u(o,'tiparea')).innerHTML=$u(o,'pass');
				}
				else{
					error[error.length]=[i,tpass[0]];
					g($u(o,'tiparea')).innerHTML=$u(o,'warn');
				}
			}
		}
		return error.length==0?'true':error;//返回 true 或 错误类型数组
	}
	this.getValue=function(e){//取值
		mx=oForm.eList.length;
		var s='';
		for (var i=0;i<mx;i++){
			var o=oForm.eList[i];
			if (e){
				s+='&'+o.id+'='+escape(o.value);
			}
			else{
				s+='&'+o.id+'='+o.value;
			}
		}
		return s.substring(1);
	}
	this.setup(eForm);
}
//用户表单优化对象
var UI_Input=new function(){
	var ipo=this;
	var eList=[];
	var eValue='';
	ipo.data=null;
	ipo.show='';
	ipo.cto=null;
	ipo.Setup=function(){
		var elem=$g('input');
		var mx=elem.length;
		for (var i=0;i<mx;i++){
			var type=$u(elem[i],'ui');
			switch (type){
				case 'UI_dropList_suggest':
					$e(elem[i],'keyup',ipo.suggest);
					$e(elem[i],'blur',ipo.valueCheck);
					eList[eList.length]=elem[i];
					$e(document,'click',ipo.clear);
					break;
				case 'UI_dropList_select':
					$e(elem[i],'click',ipo.select);
					ipo.printSelect(elem[i]);
					eList[eList.length]=elem[i];
					break;
			}
		}
		mx=eList.length;
		for (var i=0;i<mx;i++){
			var hid=$c('input');
			hid.type='hidden';
			hid.value=eList[i].value;
			hid.id=eList[i].id;
			eList[i].id=hid.id+'_dis';
			eList[i].parentNode.insertBefore(hid,eList[i]);
		}
	}
	ipo.suggest=function(event){
		var e=ie?window.event.srcElement:event.target;
		var k=ie?window.event.keyCode:event.which;
		var v=trim(e.value);
		var eid=e.id.split('_')[0];
		var ew=e.clientWidth;
		if (v!=''&&(k<33||k>46)&&(eValue!=v||!g('dropList'))){
			eValue=v;
			var layer=$j($u(e,'layout'));
			if (!g('dropList')){
				var list=$c('span');
				list.id='dropList';
				list.innerHTML='<ul id="slt_opts" style="position:absolute;background:#fff;border:1px #ccc solid;top:'+(getOffset(e).y+e.clientHeight)+'px;left:'+getOffset(e).x+'px;width:'+ew+'px;"></ul>';
				e.parentNode.insertBefore(list,e);
			}
			else{
				g('slt_opts').innerHTML='';
			}
			var u=$u(e,'src');
			var x=function(o){
				var nodes=XML.parse(aRP(unescape(o.responseText))).getElementsByTagName(layer[0].layer);
				var mx=nodes.length;
				var ct=0;
				for (var i=0;i<mx;i++){
					if ($u(nodes[i],layer[0].dis).indexOf(v)>-1){
						var li=$c('li');
						li.innerHTML=$u(nodes[i],layer[0].dis).replace(v,'<span style="font-weight:900;">'+v+'</span>');
						li.className='line';
						li.setAttribute('info',eid+'||'+$u(nodes[i],layer[0].dis)+'||'+$u(nodes[i],layer[0].value));
						$e(li,'click',ipo.assign);
						$e(li,'mouseover',highLight);
						$e(li,'mouseout',highLight);
						g('slt_opts').appendChild(li);
						ct++;
					}
					if (ct>=99){
						break;
					}
				}
			}
			gD(u,x);
		}
		else{
			if (g('dropList')){
				$d(g('dropList'));
			}
		}
	}
	ipo.printSelect=function(e){
		var v=trim(e.value);
		var layer=$j($u(e,'layout'));
		var eid=e.id.split('_')[0];
		var ops=getOffset(e);
		if (!g(eid+'_drop')){
			var list=$c('span');
			list.id=eid+'_drop';
			list.className='dropList';
			var y=ie?ops.h:0;
			list.innerHTML='<ul id="'+eid+'_opts" style="display:none;top:'+(y+2)+'px;left:0px;width:'+ops.w+'px;"></ul>';
			e.parentNode.insertBefore(list,e);
		}
		else{
			g(eid+'_opts').innerHTML='';
		}
		var u=$u(e,'src');
		var x=function(o){
			ipo.data=XML.parse(aRP(unescape(o.responseText))).getElementsByTagName(layer[0].layer);
			ipo.printList(eid+'_opts',eid,ops.w,ipo.data,layer,0);
		}
		gD(u,x);
	}
	ipo.select=function(event){
		var e=ie?window.event.srcElement:event.target;
		var eid=e.id.split('_')[0];
		g(eid+'_opts').style.display='';
		ipo.show=eid+'_opts';
		$e(document,'click',ipo.hide);
		$e(e,'blur',ipo.valueCheck);
		selectFix('hidden');
	}
	ipo.multiselect=function(event){
	}
	ipo.printList=function(fid,eid,ew,fNode,cLayout,cLv){
		var obj=g(fid);
		if (obj.innerHTML==''){
			var mx=fNode.length;
			for (var i=0;i<mx;i++){
				var nid=eid+'List_'+cLv+'_'+i
				var li=$c('li');
				li.className='menuS';
				li.innerHTML=$u(fNode[i],cLayout[cLv].dis);
			//	$e(li,'mouseover',highLight);
			//	$e(li,'mouseout',highLight);
				$a(obj,li);
				var cd=0;
				if (cLayout[cLv+1]){
					var nodes=fNode[i].getElementsByTagName(cLayout[cLv+1].layer);
					var mx2=nodes.length;
					if (mx2>0){
						cd=1;
						li.className='menuS subListDelta';
						$e(li,'mouseover',ipo.showList);
						$e(li,'mouseout',ipo.hideList);
						var ops=getOffset(li);
						var ul=$c('ul');
						ul.id=nid;
						ul.className='menuF';
						ul.style.display='none';
						ul.style.left=ew+'px';
						ul.style.width=ew+'px';
						$a(li,ul);
						ipo.printList(nid,eid,ew,nodes,cLayout,cLv+1);
					}
					else{
						$e(li,'click',ipo.assign);
					}
				}
				else{
					$e(li,'click',ipo.assign);
				}
				var ndis=[];
				var nvl=[];
				var lv=cLv;
				var tNode=fNode[i];
				while (lv>=0){
					ndis[ndis.length]=$u(tNode,cLayout[lv].dis);
					nvl[nvl.length]=$u(tNode,cLayout[lv].value);
					tNode=tNode.parentNode;
					lv--;
				}
				ndis.reverse();
				nvl.reverse();
				li.setAttribute('info',eid+'||'+ndis.join('-')+'||'+nvl.join('-')+'||'+nid+'||'+cd);
			}
		}
	}
	ipo.assign=function(event){//赋值
		var e=ie?window.event.srcElement:event.target;
		var info=$u(e,'info').split('||');
		var vct=$u(g(info[0]+'_dis'),'vct');
		if (vct==1){
			g(info[0]+'_dis').value=info[1];
			g(info[0]).value=info[2];
			g(ipo.show).style.display='none';
			$er(document,'click',ipo.hide);
			selectFix('inherit');
		}
		else{
			var dvc=g(info[0]+'_dis').value.split(';');
			var hvc=g(info[0]).value.split(';');
			if (dvc.length==hvc.length){
				if (vct==0||vct>hvc.length){
					dvc.pop();
					g(info[0]+'_dis').value=dvc.join(';')+info[1]+';';
					g(info[0]).value+=info[2]+';';
				}
			}
		}
	}
	ipo.valueCheck=function(event){//检测值
		var e=ie?window.event.srcElement:event.target;
		var id=e.id.split('_dis')[0];
		var lyt=$j($u(e,'layout'));
		lyt=lyt[lyt.length-1];
		var vd=e.value.split(';');
		var vh=g(id).value.split(';');
		var mx=vd.length;
		for (var i=0;i<mx;i++){
			if (vd[i]&&vh[i]){
				var eid=e.id.split('_')[0];
				var nodes=g(eid+'_opts').getElementsByTagName('li');
				var nmx=nodes.length;
				var ctn=true;
				var tVl=$u(nodes[i],'info').split('||')[1];
				var tDs=nodes[i].innerHTML;
				if (vd[i]!=''&&vh[i]!=''){
					for (var j=0;j<nmx;j++){
						if (tVl==vh[i]&&tDs==vd[i]){
							ctn=false;
							break;
						}
						else if (tVl==vh[i]&&tDs!=vd[i]){
							vd[i]=tDs;
							ctn=false;
							break;
						}
						else if (tVl!=vh[i]&&tDs==vd[i]){
							vh[i]=tVl;
							ctn=false;
							break;
						}
					}
				}
				else if (vd[i]==''&&vh[i]!=''){
					for (var j=0;j<nmx;j++){
						if (tVl==vh[i]){
							vd[i]=tDs;
							ctn=false;
							break;
						}
					}
				}
				else if (vd[i]!=''&&vh[i]==''){
					for (var j=0;j<nmx;j++){
						if (tDs==vd[i]){
							vh[i]=tVl;
							ctn=false;
							break;
						}
					}
				}
				if (ctn){
					vd.splice(i,1);
					vh.splice(i,1);
					i--;
				}
			}
		}
		e.value=vd.join(';');
		g(id).value=vh.join(';');
	}
	ipo.showList=function(event){
		var e=ie?window.event.srcElement:event.target;
		if ($u(e,'info').length>0){
			var vl=$u(e,'info').split('||');
			if (vl[4]==1){
				e=e.childNodes[1];
			}
		}
		while (e.className!='dropList'){
			if (e.style) e.style.display='';
			e=e.parentNode;
		}
	}
	ipo.hideList=function(event){
		var e=ie?window.event.srcElement:event.target;
		if ($u(e,'info').length>0){
			var vl=$u(e,'info').split('||');
			if (vl[4]==1){
				e=e.childNodes[1];
			}
		}
		while (e.className!='dropList'){
			if (e.className=='menuF'){
				e.style.display='none';
				break;
			}
			e=e.parentNode;
		}
	}
	ipo.clear=function(event){
		var e=ie?window.event.srcElement:event.target;
		if (e.id.indexOf('slt_opt_')==-1&&g('dropList')&&(!$u(e,'ui'))){
			$d(g('dropList'));
		}
	}
	ipo.hide=function(event){
		var e=ie?window.event.srcElement:event.target;
		var doom=true;
		while (e.nodeName.toUpperCase()!='BODY'){
			if ((e.id&&e.id==ipo.show)||($u(e,'ui'))){
				doom=false;break;
			}
			e=e.parentNode;
		}
		if (doom){
			g(ipo.show).style.display='none';
			$er(document,'click',ipo.hide);
			selectFix('inherit');
		}
	}
}
/*文件上传对象
<input type="upload" id="photoup" filelist="main" vars="fType=img&fSize=10485760&iIH=240&iIW=320&iTH=80&iTW=120" />*/
var uploader=new function(){
	var UP=this;
	var files=[];
	var fileArea=null;
//	var fileInfo='<li><span class="fileName"><name></span> - <span class="fileSize"><size></span><progress><input type="hidden" id="upd_value_" /></li>';
	UP.init=function(){//初始化uploader对象
		var inputList=$g('input');
		for (var i=0;i<inputList.length;i++){
			if ($u(inputList[i],'type')=='upload'){
				fileArea=g($u(inputList[i],'filelist'));
				var vars=$u(inputList[i],'vars')+'&userId='+gC('userId');
				inputList[i].style.display='none';
				var div=$c('div');
				div.innerHTML='<object id="flashuploader" style="width: 230px; height: 24px;" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"> <param value="/imgs/uploader.swf" name="movie" /> <param value="high" name="quality" /> <param name="wmode" value="Opaque" /> <param name="allowScriptAccess" value="always" /> <param name="FlashVars" value="'+vars+'" /> <embed id="flashuploaderobj" style="width: 230px; height: 24px;" FlashVars="'+vars+'" allowScriptAccess="always" type="application/x-shockwave-flash" wmode="opaque" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" quality="high" src="/imgs/uploader.swf"></embed> </object>';
				inputList[i].parentNode.appendChild(div);
			}
		}
	}
	UP.addFile=function(fileString){//选择文件后创建列表
		var fileArray=fileString.split('|');
		var s='<div class="cmsUI fileList"> <h3>文件列表</h3> <ul>';
		for (var i=1;i<fileArray.length;i++){
			var file=fileArray[i].split('$');//name,size,type
			var type=getFileType(file[0]);
			s+='<li class="fileArea '+type+'" id="upd_file_'+file[0]+'"><span class="fileName">'+file[0]+'</span> - <span class="fileSize">'+fixSize(file[1])+'</span><div class="fileProgress" id="upd_prog_'+file[0]+'"></div><input type="hidden" id="upd_value_'+file[0]+'" /><div id="upd_prw_'+file[0]+'" style="padding:6px;"></div></li>';
		}
		s+='</ul>';
		if (fileArray.length>0){
			fileArea.innerHTML=s;
		}
	}
	UP.sendFile=function(fileName){//开始上传
//		var pg=g('upd_prog_'+fileName);
		g('upd_value_'+fileName).value=g('upd_file_'+fileName).className;
		g('upd_file_'+fileName).className='fileArea sending';
	}
	UP.sendingFile=function(fileName,byteSend,byteTotal){//上传进度条
		var pg=g('upd_prog_'+fileName);
		var bw=parseInt(pg.clientWidth);
		var bl=parseInt((byteSend/byteTotal)*bw)-500;
		pg.style.backgroundPosition=bl+'px center';
	}
	UP.sendedFile=function(fileName,fileData){//完成上传
		var pg=g('upd_prog_'+fileName);
		pg.className='fileProgressDone';
		var file=fileData.split('$');
//		run(file);
		g('upd_file_'+fileName).className=g('upd_value_'+fileName).value;
		g('upd_value_'+fileName).value=file[1];
		g('upd_prw_'+fileName).innerHTML='<img src="'+file[1]+'" /><br/>上传地址：<input type="text" size="30" value="'+file[1]+'">';
	}
	UP.clearFile=function(){
		fileArea.innerHTML='';
	}
	UP.onError=function(errorType){//错误处理 errorType=http/io/security
		Tip.Warn('发生了 '+errorType+' 错误，请稍后重试','wrong');
	}
	UP.init();
}
//覆盖式编辑器对象
var inputer=new function(){
	var ipt=this;
	ipt.obj=null;
	ipt.input=null;
	ipt.url='';
	ipt.org='';
	ipt.fct=0;
	ipt.cbk=function(){};
	ipt.Create=function(obj,url,cbk){
		if (!ipt.obj){
			ipt.obj=obj;
			ipt.url=url;
			ipt.cbk=cbk;
			var v=ipt.obj.innerHTML;
			ipt.org=v;
			ipt.obj.parentNode.style.position='relative';
			var input=$c('input');
			input.style.width=ipt.obj.clientWidth+'px';
			input.style.height=ipt.obj.clientHeight+'px';
			input.style.position='absolute';
			if (ie){
				ipt.obj.parentNode.style.position='relative';
				input.style.left='1px';
				input.style.top='1px';
			}
			else{
				input.style.left=(ipt.obj.parentNode.offsetLeft+1)+'px';
				input.style.top=(ipt.obj.parentNode.offsetTop+1)+'px';
			}
			input.value=v;
			ipt.obj.parentNode.appendChild(input);
			ipt.input=input;
			var cmd=function(){$e(document.body,'click',ipt.Change);}
			setTimeout(cmd,10);
		}
	}
	ipt.Change=function(event){
		var e=ie?window.event.srcElement:event.target;
		if (e!=ipt.input) ipt.Save();
	}
	ipt.Save=function(){
		var v=ipt.input.value;
		if (v!=ipt.org){//有改变
			ipt.input.disabled=true;
			ipt.input.value='保存中...';
			var u=ipt.url+escape(v);
			var x=function(o){
				if (aRP(unescape(o.responseText)).split('$')[0]!='true'){//保存失败
					if (ipt.fct<4){//保存次数小于三
						T=confirm('保存失败，要重试请点击“确定”,恢复原值请点击“取消”');
						if (T){//选重试
							ipt.fct++;
							ipt.input.value=v;
							ipt.input.disabled=false;
							ipt.Save();
						}
						else{//选取消
							v=ipt.org;
							ipt.Clear(v);
						}
					}
					else{//保存次数大于三次
						alert('重试三次均为成功，请您检查网络并稍后重试。');
						v=ipt.org;
						ipt.Clear(v);
					}
				}
				else{//保存成功
					ipt.Clear(v);
				}
			}
			gD(u,x);
		}
		else{//未改变
			ipt.Clear();
		}
	}
	ipt.Clear=function(v){
		ipt.obj.parentNode.removeChild(ipt.input);
		if (ie) ipt.obj.parentNode.style.position='static';
		ipt.obj.innerHTML=v?v:ipt.org;
		$er(document.body,'click',ipt.Change);
		ipt.obj=null;
		ipt.input=null;
		ipt.url='';
		ipt.org='';
		ipt.fct=0;
		if (v) ipt.cbk();
		ipt.cbk=function(){};
	}
}
/*锁定a按钮的对象*/
var locker=new function(){
	var lk=this;
	lk.obj=null;
	lk.cmd='';
	lk.txt='';
	lk.sta=false;
	lk.Lock=function(obj){
		if (!lk.sta){
			lk.obj=obj;
			lk.cmd=obj.href;
			lk.txt=obj.innerHTML;
			lk.sta=true;
			var cmd=function(){
				obj.href='javascript:;';
				obj.innerHTML='保存中...';
			}
			setTimeout(cmd,1);
		}
	}
	lk.Unlock=function(){
		if (lk.sta){
			var cmd=function(){
				lk.obj.href=lk.cmd;
				lk.obj.innerHTML=lk.txt;
				lk.cmd='';
				lk.txt='';
				lk.obj=null;
				lk.sta=false;
			}
			setTimeout(cmd,2);
		}
	}
}
/*Editor前台编辑器*/
var UI_Editor=new function(){
	var UE=this;
	UE.eList=[];
	UE.Setup=function(){
		UE.eList=$g('module');
		var mx=UE.eList.length;
		for (var i=0;i<mx;i++){
			$e(UE.eList[i],'click',UI_Editor.Focus);
			$e(UE.eList[i],'mouseover',UI_Editor.Over);
			$e(UE.eList[i],'mouseout',UI_Editor.Out);
			UE.eList[i].title='单击左键对此内容进行编辑';
		}
		if (mx>0){
			var js=$c('script');
			js.type='text/JavaScript';
			js.src=rt+'pro/fckeditor/fckeditor.js';
			$a(document.body,js);
		}
	}
	UE.Over=function(e){
		var O=ie?window.event.srcElement:e.target;
		O.parentNode.style.backgroundColor='#E9EEF3';
	}
	UE.Out=function(e){
		var O=ie?window.event.srcElement:e.target;
		O.parentNode.style.backgroundColor='';
	}
	UE.Focus=function(e){
		var O=ie?window.event.srcElement:e.target;
		O=$s(O,'motype');
		var oT=$u(O,'motype');
		var id=O.id;
		var cid=$u(O,'cid');
		switch (oT){
			case 'cms_block':
				UE.Edit(id,cid);break;
			case 'cms_article':
				UE.Edit(id,cid);break;
		}
	}
	UE.Edit=function(id,cid){
		var O=g(id);
		$d(g('moduleEditor'));
		var temp='<div style="text-align:left;">　<button onclick="UI_Editor.Save(\''+id+'\','+cid+');">保存修改</button>　<button onclick="UI_Editor.Blur();">取消修改</button>　<span id="moduleEditorNotice"></span></div><textarea id="'+id+'_edit" style="height:700px;width:700px;">'+O.innerHTML+'</textarea>';
		cFF('moduleEditor',700,parseInt((getPageSize().wW-700)/2),config.MaskColor,temp);
		var oFCKeditor=new FCKeditor(id+'_edit',700,700,'Article');
		oFCKeditor.BasePath=rt+"pro/fckeditor/";
		oFCKeditor.ReplaceTextarea();
	}
	UE.Blur=function(){
		uP('moduleEditor');
	}
	UE.Save=function(id,cid){
		var cn=FCKeditorAPI.GetInstance(id+'_edit').GetXHTML(true);
		var N=g('moduleEditorNotice');
		var s='bN=&nid=&bT=&bD=&bC='+escape(cn)+'&rP=&vl=0&uI='+User.Uid;
		var u=rt+'pro/cms.module.asp?op=updata&id='+cid;
		var x=function(o){
			var t=aRP(o.responseText).split('$');
			if (t[0]=='true'){
				N.innerHTML='<span class="chk_fail">模块信息成功保存。</span>';
				g(id).innerHTML=cn;
				uP('moduleEditor');
				if (c||i==0) manage_closeTab('tab_'+m,'ma_'+m);
				var cmd=function(){manage_editMO(t[1]);}
				if (!c&&i==0) setTimeout(cmd,0);
			}
			else{
				N.innerHTML='<span class="chk_fail">模块保存失败，请检查网络是否正常并稍后重试。</span>';
			}
		}
		sD(u,s,x);
	}
}
/*Comment评论*/
function UI_Comment(i,O,Ns,stH,stB,stF,mp){
	var cmt=this;
	this.cp=1;
	this.page=function(e){//id"0,uid"1,username"2,content"3,subdate"4,update"5,onred"6
		g(O).innerHTML=dl;
		cmt.cp=cmt.cp+e;
		var U=rt+'pro/cms.comment.asp?op=page&id='+i+'&mp='+mp+'&cp='+cmt.cp;
		var x=function(o){
			var t=aRP(unescape(o.responseText)).split('|');
			var s=stH;
			var m=t.length;
			for (var i=1;i<m;i++){
				var e=t[i].split('$');
				var st=stB.replace(/<cmt_User>/g,e[2]);
				st=st.replace(/<cmt_Date>/g,e[4]);
				st=st.replace(/<cmt_Content>/g,e[3]);
				s+=st;
			}
			s+=stF;
			m=parseInt(t[0].split('$')[0]/mp);
			if ((t[0].split('$')[0]%mp)>0){m++;}
			s+='<p align="center">[共'+m+'页，当前在第'+cp+'页]';
			if (t[0].split('$')[0]>mp){
				if (cp>1){s+='&nbsp;&nbsp;<a href="javascript:'+Ns+'.page(-1);"><<<上一页</a>';}
				if (cp<m){s+='&nbsp;&nbsp;<a href="javascript:'+Ns+'.page(1);">下一页>>></a>';}
				s+='&nbsp;&nbsp;跳转到:<select id="chgCmtPage_'+i+'"><option value="0">当前页</option>';
				for (var i=1;i<=m;i++){
					s+='<option value="'+i+'">第'+i+'页</option>';
				}
				s+='</select>';
			}
			s+='</p>';
			g(O).innerHTML=s;
			if (g('chgCmtPage_'+i)){
				g('chgCmtPage_'+i).onchange=function(){
					page(cmt.page(),g('chgCmtPage_'+i));
				}
			}
		}
		gD(U,x);
	}
	this.post=function(fm){
		var uid=gC('userId');
		uid=uid==''?0:uid;
		var ac=g(fm).value;
		if (ac!=''){
			if (strCount(ac)>1000||strCount(ac)<5){
				alert('请输入5～1000字的评论内容。');
			}
			else{
				var s='aid='+i+'&uid='+uid+'&ac='+escape(eTB(ac))+'&od=false&po=10&cl=false&pa=true';
				var u=rt+'pro/cms.comment.asp?op=create';
				var x=function(o){
					if (o.responseText=='true'){
						alert('您的评论已经提交，谢谢您的关注请，并请留意网站其它内容。');
						cmt.page(0);
					}
					else{
						alert('评论创建失败，请检查网络是否正常并稍后重试。')
					}
				}
				sD(u,s,x);
			}
		}
		else{
			alert('信息不完整，请检查。');
		}
	}
}
//购物车对象
function UI_Cart(tArea,bArea,bSpare,bSpareBlank){//总额显示区域,用户栏位数组,栏位模板,空栏位模板
	var cart=this;
	this.goods=new Array();
	this.showTotalPrice=tArea;
	this.basket=bArea;
	this.basketLimit=bArea.length;
	this.spare=bSpare;
	this.spareBlank=bSpareBlank?bSpareBlank:'';
	//this.coin=tArea.innerHTML.split('/');
	this.total=0;
	this.setup=function(){
	}
	this.add=function(gid,gname,gprice){//产品id,产品名称,产品价格
		var place=cart.goods.length;
		if (place<cart.basketLimit||cart.basketLimit==1){
			cart.goods[place]=[gid,gname,gprice];
			cart.total+=gprice;
			cart.print();
		}
		else{
			alert('您的购物车达到上限。');
		}
	}
	this.remove=function(place){
		cart.total-=cart.goods[place][2];
		cart.goods.splice(place,1);
		cart.print();
	}
	this.print=function(){
		for (var i=0;i<cart.basketLimit;i++){
			var s=cart.spareBlank;
			if (cart.goods[i]){
				var s=cart.spare.replace('[goodName]',cart.goods[i][1]);
				s=s.replace('[goodPrice]',cart.goods[i][2]);
				s=s.replace('[remove]','cart1.remove('+i+')');
			}
			if (cart.basketLimit==1){
				cart.basket[0].innerHTML+=s;
			}
			else{
				cart.basket[i].innerHTML=s;
			}
		}
		var s=cart.total;
		/*var s=cart.coin+'/'+cart.total;
		if (cart.coin<cart.total){
			s='<span style="color:red;">'+s+'</span>';
		}*/
		cart.showTotalPrice.innerHTML=s;
	}
	this.save=function(){
		var tAr=[];
		var mx=cart.goods.length;
		for (var i=0;i<mx;){
		}
	}
	this.get=function(){
	}
	this.buy=function(){
		/*if (cart.coin<cart.total){
			cFF('nmForm',547,parseInt((getPageSize().wW-547)/2),'#fffbdf','<table width="547" border="0" cellpadding="0" cellspacing="0" background="images/x_02.jpg" bgcolor="#fffbdf"> <tr> <td width="525" height="22" valign="top"><table width="213" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="43" height="20" align="center" class="fonthei">游戏</td> <td width="15" class="fonthei"><img src="images/x_05.png" width="15" height="13" /></td> <td width="72" align="center" class="fonthei">挣 [ 金币 ]</td> <td width="15" class="fonthei"><img src="images/x_05.png" width="15" height="13" /></td> <td width="68" align="center" class="fonthei">兑换商品</td> </tr> </table></td> <td width="22"><img src="images/x_03.jpg" width="15" height="13" onclick="uP(\'nmForm\')" /></td> </tr> <tr> <td height="440" colspan="2" valign="top"><table width="507" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="68">&nbsp;</td> <td width="61">&nbsp;</td> <td width="378">&nbsp;</td> </tr> <tr> <td><img src="images/x_01.jpg" width="52" height="53" /></td> <td colspan="2" class="font14hei" style="line-height:28px;">对不起，<span class="font14cuhong">您目前的[金币]数额还不够兑换这些商品。</span></td> </tr> <tr> <td height="93">&nbsp;</td> <td colspan="2" class="font14">快快到游戏竞赛空间和其他网友<span class="font14hong">竞赛</span>吧！！！！ <br /> 可以<span class="font14hong">赢得更多[金币]</span>来兑换你喜爱的商品阿！！！！ <p></p></td> </tr> <tr> <td height="95">&nbsp;</td> <td colspan="2" align="center" class="font14"><table width="177" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="108" align="center"><a href="javascript:uP(\'nmForm\')" class="fonthei"><img src="images/x_04.png" width="34" height="34" /><br /> 返回</a></td> <td width="69">&nbsp;</td> </tr> </table></td> </tr> </table></td> </tr> </table>');//id，宽，左，背景，内容
		}
		else */
		if (cart.total==0){
			alert('您还没有选择商品。');
		}
		else{
			document.location.href='/order.asp';
		}
	}
}
/*digg挖它*/
function UI_Digg(i,O,Ns,st,iH){
	var dg=this;
	this.repoll=false;
	this.print=function(){
		var u=rt+'pro/cms.digg.asp?op=get&aid='+i;
		var x=function(o){
			var t=unescape(aRP(o.responseText)).split('$');//0total,1point,2U,3D,4Name
			var UP=parseInt(t[2]/t[0]*100);
			var UI=parseInt(t[2]/t[0]*iH);
			var DP=parseInt(t[3]/t[0]*100);
			var DI=parseInt(t[3]/t[0]*iH);
			var sr=st.replace(/<dg_UP>/g,UP);//比例
			sr=sr.replace(/<dg_DP>/g,DP);
			sr=sr.replace(/<dg_UI>/g,UI);//图片高度/长度
			sr=sr.replace(/<dg_DI>/g,DI);
			sr=sr.replace(/<dg_UC>/g,t[2]);//数量
			sr=sr.replace(/<dg_DC>/g,t[3]);
			sr=sr.replace(/<dg_US>/g,Ns+'.digg(\'up\')');//按钮
			sr=sr.replace(/<dg_DS>/g,Ns+'.digg(\'down\')');
			sr=sr.replace(/<dg_Name>/g,t[4]);//标题
			g(O).innerHTML=sr;
		}
		gD(u,x);
	}
	this.digg=function(D){
		if (!dg.repoll){
			var u=rt+'pro/cms.digg.asp?op=digg&sp='+D+'&pt=0&aid='+i;
			var x=function(o){
				var t=unescape(aRP(o.responseText));
				if (t=='true') dg.print();
				dg.repoll=true;
			}
			gD(u,x);
		}
	}
}
/*vote投票*/
function UI_Vote(i,O,Ns,sH,sB,sF,c,cl,iH,sn){
	var vt=this;
	vt.optCount=0;
	this.repoll=false;
	this.points=new Array();
	this.print=function(){
		var u=rt+'pro/cms.vote.asp?op=get&id='+i;
		var x=function(o){//0id,1uid,2void,3voteName,4voteDes,5subdate,6enddate,7closed,8type,9point,10basecount,11count
			c=c?c:1;
			var t=aRP(unescape(o.responseText)).split('|');
			var e=t[0].split('$');
			var de=e[2];//默认值
			var ot=e[8];//类型
			var na=e[3];//名称
			var ds=e[4];//描述
			var tl=parseInt(e[10])+parseInt(e[11]);
			if (tl==0) tl=1;
			var m=t.length;
			vt.optCount=m;
			var s='';
			for (var j=1;j<m;j++){//0id,1vid,2optName,3optDes,4closed,5point,6basecount,7count
				e=t[j].split('$');
				if (j%c==1||c==1) s+='<'+cl+'>';
				var st='<input type="';
				switch (ot){
					case 'single':
						st+='radio';break;
					case 'multi':
						st+='checkbox';break;
				}
				st+='" name="vt_'+i+'" id="vt_'+i+'_'+j+'" value="'+e[0]+'"';
				st+=e[0]==de?' checked="checked"':'';
				st+=' ><label for="vt_'+i+'_'+j+'">'+e[2]+'</label>';
				vt.points[j]=e[5];
				st=sB.replace(/<vt_Opt>/g,st);
				st=st.replace(/<vt_OptD>/g,e[3]);
				var ctl=parseInt(e[6])+parseInt(e[7]);
				st=st.replace(/<vt_OptC>/g,ctl);
				st=st.replace(/<vt_OptP>/g,parseInt(ctl/tl));
				st=st.replace(/<vt_OptH>/g,parseInt((ctl/tl)*iH));
				s+=st;
				if (j%c==0||c==1) s+='</'+cl+'>';
			}
			if (j%c!=0&&c!=1) s+='</'+cl+'>';
			s=sH+s+sF;
			s=s.replace(/<vt_Name>/g,na);
			s=s.replace(/<vt_Des>/g,ds);
			s=s.replace(/<vt_Total>/g,tl);
			s=s.replace(/<vt_Vote>/g,Ns+'.vote()');
			s=s.replace(/<vt_View>/g,Ns+'.view()');
			g(O).innerHTML=s;
		}
		gD(u,x);
	}
	this.vote=function(){
		if (!this.repoll){
			var uid=gC('userId');
			uid=uid==''?0:uid;
			var u=rt+'pro/cms.vote.asp?op=poll&uI='+uid+'&id='+i+'&vI=';
			var ct=0;
			var pt=0;
			for (var k=1;k<vt.optCount;k++){
				if (g('vt_'+i+'_'+k).checked){
					u+=g('vt_'+i+'_'+k).value+'$';
					ct++;
					pt+=parseInt(vt.points[k]);
				}
			}
			if(pt<0) pt=0;
			if (ct>0){
				var x=function(o){
					var t=aRP(unescape(o.responseText));
					if (t=='repoll'){
						alert('请不要重复提交');
						this.repoll=true;
					}
					else if (t=='false'){
						alert('提交失败，请检查网络并稍后再试');
					}
					else{
						if (sn){
							sn(pt);
						}
						else{
							alert('您的投票已经成功提交');
						}
						this.repoll=true;
					}
				}
				gD(u,x);
			}
			else{
				alert('请选择一个选项后再提交');
			}
		}
	}
	this.view=function(){
		var vtRs='<div class="formHead">投票结果</div><div class="formBody" id="vtmain"></div><div class="formFoot"><span id="nNotice"></span><a class="aBtn" href="javascript:uP(\'formVt\')">关闭</a></div>';
		cFF('formVt',500,parseInt((getPageSize().wW-500)/2),config.MaskColor,vtRs);
		var u=rt+'pro/cms.vote.asp?op=get&id='+i;
		var x=function(o){//0id,1uid,2void,3voteName,4voteDes,5subdate,6enddate,7closed,8type,9point,10basecount,11count
			var t=aRP(unescape(o.responseText)).split('|');
			var e=t[0].split('$');
			s='<div class="formC">'+e[3]+'，总票数'+(parseInt(e[10])+parseInt(e[11]))+'</div>';
			var m=t.length;
			var rs=0;
			for (var j=1;j<m;j++){//0id,1vid,2optName,3optDes,4closed,5point,6basecount,7count
				e=t[j].split('$');
				rs+=(parseInt(e[6])+parseInt(e[7]));
			}
			for (var j=1;j<m;j++){//0id,1vid,2optName,3optDes,4closed,5point,6basecount,7count
				e=t[j].split('$');
				var pe=rs!=0?((parseInt(e[6])+parseInt(e[7]))/rs*100).toFixed(1):0;
				s+='<div class="formC"><span class="vtcol"><img src="/img/rb_'+j+'.gif" style="width:'+parseInt(pe*2)+'px;height:8px;"/>&nbsp;'+pe+'% '+(parseInt(e[6])+parseInt(e[7]))+'票</span>·'+e[2]+'</div>';
			}
			g('vtmain').innerHTML=s;
		}
		gD(u,x);
	}
}
/*test测试*/
function UI_Test(i,O,Ns,tsD,tsR,sH,sB,sF,c,cl){
	var te=this;
	this.onstep=0;
	this.quiz=null;
	this.point=0;
	this.load=function(){//0id,1nodeid,2testName,3testDes,4subBy,5subDate,6closed
		var u=rt+'app/test.aspx?op=get&id='+i;
		var x=function(o){
			var t=aRP(unescape(o.responseText)).split('$');
			var s=tsD.replace(/<te_Name>/g,t[2]);
			s=s.replace(/<te_Des>/g,t[3]);
			s=s.replace(/<te_Start>/g,Ns+'.step(1)');
			g(O).innerHTML=s;
		}
		gD(u,x);
	}
	this.step=function(e){
		te.onstep+=e;
		var u=rt+'app/step.aspx?op=get&id='+i+'&step='+te.onstep;
		var x=function(o){//0id,1tid,2vid,3step
			var t=aRP(unescape(o.responseText)).split('$');
			if (t[0]!='false'){
				te.quiz=new UI_Vote(t[2],O,Ns+'.quiz',sH,sB,sF,c,cl,0,function(p){te.point+=p;te.step(1);});
				te.quiz.print();
			}
			else{
				var u2=rt+'app/record.aspx?op=create&tid='+i+'&mark='+te.point;
				var x2=function(o2){
					t2=aRP(unescape(o2.responseText));
					if (t2=='true'){
						var u3=rt+'app/result.aspx?op=getMark&tid='+i;
						var x3=function(o3){//0id,1tid,2markMin,3markMax,4rsName,5rsDes
							t3=aRP(unescape(o3.responseText)).split('$');
							if (t3[0]!='false'){
								var s=tsR.replace(/<te_Rname>/g,t3[4]);
								s=s.replace(/<te_Rdes>/g,t3[5]);
								s=s.replace(/<te_Rmin>/g,t3[2]);
								s=s.replace(/<te_Rmax>/g,t3[3]);
								s=s.replace(/<te_Rpoint>/g,te.point);
								g(O).innerHTML=s;
							}
						}
						gD(u3,x3);
					}
				}
				gD(u2,x2);
			}
		}
		gD(u,x);
	}
}
/*DOM*/
function g(i){//获取id对象
	return document.getElementById(i);
}
function $g(n){//获取name数组
	return document.getElementsByTagName(n);
}
function $s(o,s){//获取对象父对象的s属性不为空的第一个对象
	while (!$u(o,s)) o=o.parentNode;
	return o;
}
function $c(s){//创建节点
	return document.createElement(s);
}
function $a(o,c){//增加子结点
	if (o) o.appendChild(c);
}
function $d(o){//删除子结点
	if (o) o.parentNode.removeChild(o);
}
function $e(o,e,f){//事件注册
	if(o.addEventListener){
		o.addEventListener(e,f,false);
	}
	else if(o.attachEvent){
		o.attachEvent("on"+e,f);
	}
	else{
	   o['on'+e]=f;
	}
}
function $er(o,e,f){//取消事件注册
	if(o.removeEventListener){
	   o.removeEventListener(e,f,false);
	}
	else if(o.detachEvent){
	   o.detachEvent('on'+e,f);
	}
	else{
	   o['on'+e]=null;
	}
}
function $u(o,s){//获取附加属性
	if(o.getAttribute(s)){
		return o.getAttribute(s);
	}
	else{
		return false;
	}
}
function $us(o,n,v){//附加属性赋值
	if(o){
		o.setAttribute(n,v);
	}
	else{
		return false;
	}
}
function $j(s){//转换json 字符串
//json('[{"layer":"City","dis":"Name","value":"Code"}]');
	return eval('('+s+')');
}
/*页面操作*/
function cN(s){//清空内容
	if (g(s)) g(s).innerHTML='';
}
function page(x,O){//select翻页
	var o=O?O.value:g('chgPage').value;
	var e=o-cp;
	if (e!=0&&o!=0){x(e);}
}
function objPage(O,v){//用于对象的select翻页
	var e=v-O.cp;
	if (e!=0&&v!=0){O.List(e);}
}
function goToPage(oid,m,cmd,O){//js手动输入翻页
	var v=parseInt(g(oid).value);
	if (!isNaN(v)&&v>0&&v<=m){
		cmd(O,v);
	}
}
function ssC(O){//设置select颜色与option颜色一致
	O.style.color=O.options[O.selectedIndex].style.color;
}
function run(s){//通用的调试函数
	document.getElementById('run').innerHTML+='<br />'+s;
}
function enter(event,f){//var e=ie?window.event.srcElement:event.target;
	var t=ie?window.event.keyCode:event.which;
	if (t==13) f();
}
function gTl(O,v,rp,ty){//从xml获得内容节点
	ty=ty?ty:3;
	var u=rt+'pro/data/tree.xml';
	var x=function(o){
		var root=XML.parse(aRP(unescape(o.responseText))).getElementsByTagName('nodes')[0];
		var t=root.getElementsByTagName('node');
		var s=g(O).innerHTML;
		var ua=unescape(gC("userAuth"));
		if (rp) rp=User.Ulv=='root'||User.Ulv=='admin'?false:true;
		for (var i=1;i<t.length;i++){
			var ra=rp;
			var e=t[i];
			if (e.getAttribute('type')==ty||e.getAttribute('type')==2){
				if (ra){
					if (ua.indexOf(','+e.getAttribute('id')+',')!=-1){//ua包含当前节点id时可读
						ra=false;
					}
					else{
						var na=ua.split('_');
						var mx=na.length;
						for (var j=1;j<mx;j++){
							if (e.getAttribute('path').indexOf(na[j])!=-1){//ua包含当前节点路径中的节点时可读
								ra=false;
								break;
							}
						}
					}
				}
				if (!ra){//ra=false时获得权限
					if (ie){
						var opt=document.createElement('option');
						opt.innerText='';
						for (var j=e.getAttribute('level');j>1;j--){
							opt.innerText+='│';
						}
						opt.innerText+='├'+e.getAttribute('name');
						opt.title=e.getAttribute('des');
						opt.value=e.getAttribute('id');
						opt.id='nsle_'+e.getAttribute('id');
						g(O).appendChild(opt);
						if (e.getAttribute('id')==v){
							opt.selected=true;
						}
					}
					else{
						s+='<option id="nsle_'+e.getAttribute('id')+'" value="'+e.getAttribute('id')+'" title="'+e.getAttribute('des')+'">';
						for (var j=e.getAttribute('level');j>1;j--){
							s+='│';
						}
						s+='├'+e.getAttribute('name')+'</option>';
					}
				}
			}
		}
		if (!ie){
			g(O).innerHTML=s;
			g(O).value=v?v:1;
		}
	}
	gD(u,x);
}
/*动画对象*/
function Anima(obj){
	var ani=this;
	ani.Obj=obj;
	ani.Show=function(){
		ani.Obj.style.display='';
	}
	ani.Hide=function(){
		ani.Obj.style.display='none';
	}
}
/*数据传输*/
function cX(){
	var c=null;
	if (window.ActiveXObject){
		c=new ActiveXObject('Microsoft.XMLHTTP');
	}
	else if (window.XMLHttpRequest){
		c=new XMLHttpRequest();
	}
	return c;
}
function gD(u,x,l){//月3,日4,时5,分7,秒9
	u=l?xU(u,l):xU(u);
	var c=cX();
	c.open("GET",u,true);
	c.onreadystatechange=function(){
		if ((c.readyState==4)&&(c.status==200)){
			x(c);
		}
	}
	c.send(null);
}
function sD(u,m,x){
	u=xU(u);
	var c=cX();
	c.open("POST",u,true);
	c.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	c.onreadystatechange=function(){
		if ((c.readyState==4)&&(c.status==200)){
			x(c);
		}
	}
	c.send(m);
}
function xU(u,l){
	var t=new Date();
	var k=u.indexOf('?');
	u+=k==-1?'?':'&';
	var o=l?t.getTime().toString().substring(0,l):t.getTime();
	return u+='ctime='+o;
}
/*处理XML*/
var XML=function(){}
XML.newDocument=function(r,n){
    r=r?r:'';
    n=n?n:'';
    if (document.implementation&&document.implementation.createDocument){
        return document.implementation.createDocument(n,r,null);
    }
    else{
        var d=new ActiveXObject('MSXML2.DOMDocument');
        if (r){
            var p='';
            var t=r;
            var c=r.indexOf(':');
            if (c!=-1){
                p=r.substring(0,p);
                t=r.substring(p+1);
            }
            if (n){
                if (!p) p='a0';
            }
            else p='';
            var s='<'+(p?(p+':'):'')+t+(n?(' xmlns:'+p+'="'+n+'"'):'')+'/>';
            d.loadXML(s);
        }
        return d;
    }
}
XML.load=function(u){
    var x=XML.newDocument();
    x.async=false;
    x.load(u);
    return x;
}
XML.parse=function(s){
    if (typeof DOMParser!="undefined") {
        return (new DOMParser()).parseFromString(s,"application/xml");
    }
    else if (typeof ActiveXObject!="undefined") {
        var d=XML.newDocument();
        d.loadXML(s);
        return d;
    }
    else {
        var u="data:text/xml;charset=utf-8,"+encodeURIComponent(s);
        var r=new XMLHttpRequest();
        r.open("GET",u,false);
        r.send(null);
        return r.responseXML;
    }
}
function $x(f,i,s){//获取xml节点值 f:父节点 i:子结点序列 s:值名称
	var o=f.childNodes[i].getElementsByTagName(s)[0];
	if (o){
		return o.childNodes[0].nodeValue;
	}
	else if(f.childNodes[i].getAttribute(s)){
		return f.childNodes[i].getAttribute(s);
	}
	else{
		return false;
	}
}
/*对url的操作*/
function gU(c){
	var v='';
	if (document.location.href.indexOf('?')>-1){
		var u=document.location.href.split('#')[0].split('?')[1];
		var us=u.split('&');
		for (var i=0;i<us.length;i++){
			var ut=us[i].split('=');
			if (ut[0]===c){
				v=ut[1];break;
			}
		}
	}
	return v;
}
function gH(){
	var v=new Array();
	if (document.location.href.indexOf('#')>-1){
		v=document.location.href.replace(/(.*)(#)(.*)/,'$3').split('_');
	}
	return v;
}
function gHt(){
	return document.location.href.split('://')[1].split('/')[0];
}
/*对Cookie的操作*/
function gC(c){
	var v=0;
	var t=document.cookie;
	var us=t.split(';');
	for (var i=0;i<us.length;i++){
		var ut=us[i].split('=');
		if (trim(ut[0])===c){
			v=ut[1];break;
		}
	}
	return v;
}
function sC(c,s,d){
	var v=c+'='+s;
	v+=d?'; max-age='+(d*24*60*60):'';
	document.cookie=v;
}
/*字符转换与校验*/
function ltrim(s){
    return s.replace(/^\s*/g,'');
}
function rtrim(s){
    return s.replace(/\s*$/g,'');
}
function trim(s){
    return s.replace(/(^\s*)|(\s*$)/g,'');
}
function aRP(s){//屏蔽ARP
	s=s.replace(/<script.*?\/script>/gi,'');
	s=s.replace(/<iframe.*?\/iframe>/gi,'');
	s=s.replace(/<frameset.*?\/frameset>/gi,'');
	return trim(s);
}
function strCount(s){//返回字符串长度
	var t=escape(s);
	var C=t.indexOf('%u');
	while (C>-1){
		t=t.substring(0,C)+'az'+t.substring(C+6);
		C=t.indexOf('%u');
	}
	return t.length;
}
function strClip(s,l,st){//返回指定长度字符串
	var T=false;
	if (strCount(s)>l){
		st=st?st:'…';
		l-=strCount(st);
		var S=escape(s);
		var M=S.length;
		var r='';
		var C=0;
		for (var i=0;i<M;i++){
			if (C<l){
				var t=S.charAt(i);
				if (t=='%'){
					t=S.charAt(i+1);
					if (t=='u'){
						r+=S.substring(i,i+6);
						C+=2;
						i+=5;
					}
					else{
						r+=S.substring(i,i+3);
						C++;
						i+=2;
					}
				}
				else{
					r+=t;
					C++;
				}
			}
			else{
				T=true;
				break;
			}
		}
	}
	return T?unescape(r)+st:s;
}
function fixSize(s){
	var unit=["Byte","KB","MB","GB"];
	var d=0;
	while (s>=900){
		s=Math.round(s*100/1024)/100;
		d++;
	}
	return s+unit[d];
}
function getFileType(ns){
	var na=ns.split('.');
	var ty=na[na.length-1].toLowerCase();
	var type='file';
	switch (ty){
		case 'jpg':
			type='img';break;
		case 'bmp':
			type='img';break;
		case 'png':
			type='img';break;
		case 'jpeg':
			type='img';break;
		case 'gif':
			type='img';break;
		case 'flv':
			type='mov';break;
		case 'doc':
			type='doc';break;
		case 'rtf':
			type='doc';break;
		case 'txt':
			type='doc';break;
		case 'mp3':
			type='music';break;
		case 'wma':
			type='music';break;
	}
	return type;
}
function eTB(s){//回车转换行
	s=s.replace(/\+/g,'＋');
	s=s.replace(/×/g,'*');
	return s.replace(/\n+/g,'<br />');
}
function bTE(s){//换行转回车
	return s.replace(/<br \/>/g,'\n');
}
function eF(s){//判断电子邮件
	var e=/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
	return e.test(s);
}
function ckP(s){//判断电话号码
	var p=/^(\+?\d{2,4}[-\s]?){0,2}\d{7,8}$/;
	return p.test(s);
}
function swfCode(s){//过滤swf不识别的字符
	s=s.replace(/%/g,'％');
	return s.replace(/\"/g,'”');
}
function getPageSize(){//获得页面实际大小
	var ws={};
	if(window.pageYOffset){
		ws.sT=window.pageYOffset;
		ws.sL=window.pageXOffset;
	}
	else if(document.documentElement&&document.documentElement.scrollTop){
		ws.sT=document.documentElement.scrollTop;
		ws.sL=document.documentElement.scrollLeft;
	}
	else if(document.body){
		ws.sT=document.body.scrollTop;
		ws.sL=document.body.scrollLeft;
	}
	if(window.innerHeight&&window.scrollMaxY){
		ws.xS=document.body.scrollWidth;
		ws.yS=window.innerHeight+window.scrollMaxY;
	}
	else if(document.body.scrollHeight>document.body.offsetHeight){
		ws.xS=document.body.scrollWidth;
		ws.yS=document.body.scrollHeight;
	}
	else{
		ws.xS=document.body.offsetWidth;
		ws.yS=document.body.offsetHeight;
	}
	if (self.innerHeight){
		ws.wW=self.innerWidth;
		ws.wH=self.innerHeight;
	}
	else if(document.documentElement&&document.documentElement.clientHeight){
		ws.wW=document.documentElement.clientWidth;
		ws.wH=document.documentElement.clientHeight;
	}
	else if (document.body){
		ws.wW=document.body.clientWidth;
		ws.wH=document.body.clientHeight;
	}
	ws.pH=ws.yS<ws.wH?ws.wH:ws.yS;
	ws.pW=ws.xS<ws.wW?ws.wW:ws.xS;
	return ws;
}
function getOffset(O){//获取对象实际偏移量
	var of={};
	of.w=O.clientWidth;
	of.h=O.clientHeight;
	if (ie){
		of.x=0;
		of.y=0;
		while(O&&O.tagName.toUpperCase()!="BODY") {
			of.x+=O.offsetLeft;
			of.y+=O.offsetTop;
			O=O.offsetParent;
		}
	}
	else{
		of.x=parseInt(O.offsetLeft);
		of.y=parseInt(O.offsetTop);
	}
	return of;
}
function fitImg(I,fw,fh){//按比例缩放图片(对象，宽，高)
	var i=new Image();
	i.src=I.src;
	if(i.width>0&&i.height>0){
		if(i.width/i.height>=fw/fh){
			if(i.width>fw){
				I.width=fw;
				I.height=(i.height*fw)/i.width;
			}
			else{
				I.width=i.width;
				I.height=i.height;
			}
		}
		else{
			if(i.height>fh){
				I.height=fh;
				I.width=(i.width*fh)/i.height;
			}
			else{
				I.width=i.width;
				I.height=i.height;
			}
		}
	}
}
function getObjType(O){
	var s=typeof(O);
	if (s=='object'){
		var Arr=new Array();
		Arr['date']=Date;
		Arr['array']=Array;
		Arr['object']=Object;
		for (var i in Arr){
			if (O instanceof Arr[i]){
				s=i;break;
			}
		}
	}
	if (s=='object'){
		if (ie&&O.nodeType&&O.nodeType==1) s='html';
		else if (O.constructor.toString().indexOf('object HTML')>-1) s='html';
	}
	return s;
}
/*时间处理函数*/
function date(s,a){
	if (s.split(' ').length==2){
		var yy=s.split(' ')[0].split('-')[0];
		var mm=s.split(' ')[0].split('-')[1]-1;
		var dd=s.split(' ')[0].split('-')[2];
		var hh=s.split(' ')[1].split(':')[0];
		var me=s.split(' ')[1].split(':')[1];
		var ss=s.split(' ')[1].split(':')[2];
	}
	var now=new Date(yy,mm,dd,hh,me,ss);
	if (a&&a!=0){
		var dd=now.getDate();
		dd=dd+a;
		now.setDate(dd);
	}
	return now;
}
function dateDec(d1,d2){
	var dd=parseInt((d1-d2)/(3600000*24));
	var hh=parseInt((d1-d2)%(3600000*24)/(3600000));
	var mm=parseInt((d1-d2)%(3600000*24)%(3600000)/(60000));
	var ss=parseInt((d1-d2)%(3600000*24)%(3600000)%(60000)/1000);
	return dd+'-'+hh+'-'+mm+'-'+ss;
}
function timeStr(){
	var d=new Date();
	var v=Date.parse(d).toString().substring(0,10)+(d.getMilliseconds()+d.getYear());
	return v;
}
var oM=0;
function gM(e){
	var M=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	oM=oM+e;
	var n=new Date();
	var D=gD(rt+'pro/date.asp');
	var A=D.split('-');
	n.setYear(A[0]);
	n.setMonth(A[1]-1);
	n.setDate(A[2]);
	var y=ie?n.getYear():n.getFullYear();
	var m=n.getMonth();
	m=m+oM;
	while (m<0){m+=12;y--;}
	while (m>11){m-=12;y++;}
	n.setYear(y);
	n.setMonth(m);
	var c=M[m];
	if ((y%4==0)&&(m==1)){c=29;}
	var l;
	l=m==0?11:m-1;
	var lat=M[l];
	if ((y%4==0)&&(l==1)){lat=29;}
	m++;
	var d=n.getDate();
	var w=n.getDay();
	n.setDate(1);
	var s=n.getDay();
	var r=new Array(5);
	for (var i=0;i<6;i++){
		r[i]=new Array(7);
		for (var j=0;j<7;j++){
			var t=i*7+j-s;
			var h=m;
			var sta=1;
			if (t<0){
				t=lat+t;
				h--;
				if (h<1){h=12;}
				sta=0;
			}
			else if (t>=c){
				t=t-c;
				h++;
				if (h>12){h=1;}
				sta=0
			}
			t=t+1;
			r[i][j]=sta+'*'+h+'*'+t;
		}
	}
	r[6]=new Array();
	r[6][0]=y;
	r[6][1]=m;
	return r;
}
function weeks(){
	var now=new Date();
	var m=now.getMonth()+1;
	var d=now.getDate();
	var w=now.getDay();
	var s=m+'月'+d+'日 ';
	switch (w){
		case 0:
			s+='星期天';break;
		case 1:
			s+='星期一';break;
		case 2:
			s+='星期二';break;
		case 3:
			s+='星期三';break;
		case 4:
			s+='星期四';break;
		case 5:
			s+='星期五';break;
		case 6:
			s+='星期六';break;
	}
	g('weeks').innerHTML=s;
}
if (g('weeks')){
	weeks();
}
/************************
**创建表单的的JS，更新日期2008-3-16
************************/
function selectFix(vl){
	if (ie){
		var sli=$g('select');
		var mx=sli.length;
		for (var i=0;i<mx;i++){
			sli[i].style.visibility=vl;
		}
	}
}
function floatForm(id,s,c,w,nm,t){//id,内容,class,宽,遮罩,顶
	var fF=this;
	if (!t) t=120;
	fF.Show=function(){
		if (!nm) fF.Lock();
		var ps=getPageSize();
		if (!g(id)){
			var f=$c('div');
			f.id=id;
			f.className='floatForm '+c;
			f.style.width=w+'px';
			f.style.top=(ps.sT+t)+'px';
			f.style.left=parseInt(((ps.pW-w)/2)+ps.sL)+'px';
			f.innerHTML=s;
			document.body.appendChild(f);
		}
		else{
			g(id).style.top=(ps.sT+t)+'px';
		}
	}
	fF.Hide=function(){
		if (g(id)){
			g(id).style.top='-9999px';
			if (!nm) $d(g('bM'));
		}
		selectFix('inherit');
	}
	fF.Lock=function(){
		if (!g('bM')){
			var b=$c('div');
			b.id='bM';
			b.className='bigMask';
			b.style.height=getPageSize().pH+'px';
			b.style.backgroundColor=config.MaskColor;
			ie?b.style.filter='Alpha(opacity=0)':b.style.MozOpacity=0;
			document.body.appendChild(b);
			divAlpha(7,56,b);
			selectFix('hidden');
		}
	}
}
function cFF(i,w,l,c,s){//id，宽，左，背景，内容
	lP(c);
	if (!g(i)){
		var f=document.createElement('div');
		f.id=i;
		f.className='floatForm';
		f.style.width=w+'px';
		f.style.top=(document.documentElement.scrollTop+120)+'px';
		f.style.left=l+'px';
		f.style.backgroundColor=c;
		f.innerHTML=s;
		document.body.appendChild(f);
	}
	else{
		g(i).style.top=(document.documentElement.scrollTop+120)+'px';
	}
}
function lP(c){
	if (!g('bM')){
		var b=document.createElement('div');
		b.id='bM';
		b.className='bigMask';
		b.style.height=getPageSize().pH+'px';
		b.style.backgroundColor=c;
		ie?b.style.filter='Alpha(opacity=0)':b.style.MozOpacity=0;
		document.body.appendChild(b);
		divAlpha(7,56,b);
	}
	selectFix('hidden');
}
function uP(i){
	if (g(i)){
		g(i).style.top='-9999px';
		$d(g('bM'));
	}
	selectFix('inherit');
}
function lCM(e,s){
	$d(g('lCM'));
	var o=document.createElement('div');
	o.id='lCMenu';
	var f=document.createElement('span');
	f.id='lCM';
	t.parentNode.insertBefore(f,e);
	f.appendChild(o);
	o.innerHTML=s;
}
var Slt=new function(){//可全选的checkbox
	this.Get=function(mx,ty){
		var s='';
		for (var j=1;j<mx;j++){
			s+=g(ty+'cbx_'+j).checked?'$'+g(ty+'cbx_'+j).value:'';
		}
		return s.substring(1);
	}
	this.All=function(O,mx,ty){
		if (mx>1){
			var T=O.checked;
			for (var j=1;j<mx;j++){
				if (!g(ty+'cbx_'+j).disabled) g(ty+'cbx_'+j).checked=T;
			}
		}
	}
}
//图文平滑滚动
function lTxt(O,D,L,T,H,C){//object,direction(up/right),length,timeout,objHeight,rowCount
// var list1=new lTxt(g('floatText'),'up',-2,100,20,6);
	var l=this;
	this.to=null;
	O.innerHTML+=O.innerHTML;
	O.style.margin="-0px";
	if (D!='up'){
		O.style.width=C*2*H+"px";
	}
	O.onmouseover=function(){l.stop();}
	O.onmouseout=function(){l.play();}
	this.play=function(){
		if (D=='up'){
			var om=parseInt(O.style.marginTop);
			O.style.marginTop=H*C+om+L==0?"-0px":(om+L)+"px";
		}
		else{
			var om=parseInt(O.style.marginLeft);
			O.style.marginLeft=H*C+om+L==0?"-0px":(om+L)+"px";
		}
		var cmd=function(){l.play();}
		l.to=(om+L)%H==0?setTimeout(cmd,T*24):setTimeout(cmd,T);
	}
	this.stop=function(){
		clearTimeout(l.to);
	}
	this.play();
}
/*鼠标悬停变色 需要定义样式 alt*/
function highLight(event){
	var e=ie?window.event.srcElement:event.target;
	var cl=e.className;
	e.className=cl.indexOf(' alt')==-1?cl+' alt':cl.replace(' alt','');
}
/***********************
**窗口对象管理脚本，更新日期2007-3-10
************************/
var ie=document.all?true:false;
var oX=0;
var oY=0;
var obj=null;
var layers=new Array();
layers[0]=new Array();//保存层名称
layers[1]=new Array();//保存层zIndex
var cor=0;//当前层号
/*窗口对象*/
function win(title,width,height,left,top){
	this.id=title;
	this.width=width;
	this.height=height;
	this.left=left;
	this.top=top;
	this.size='normal';
	this.open=function(){
		layers[0][layers[0].length]=title;
		layers[1][layers[1].length]=layers[1].length;
		var o=document.createElement('div');
		o.id=title;
		o.className='win';
		o.style.width=width+'px';
		o.style.height=height+'px';
		o.style.left=left+'px';
		o.style.top=top+'px';
		o.style.zIndex=layers[1].length;
		document.body.appendChild(o);
		o.onmousedown=divFocus;
		drawWin(o);
		this.obj=o;
	}
	this.close=function(){
		document.body.removeChild(this.obj);
		for (var i=0 in layers[0]){
			if (layers[0][i]==title){
				var c=layers[1][i];
				for (var j=0 in layers[1]){
					if (layers[1][j]>c){
						layers[1][j]--;
						document.getElementById(layers[0][j]).style.zIndex=layers[1][j];
					}
				}
				layers[0].splice(i,1);
				layers[1].splice(i,1);
				break;
			}
		}
	}
}
function drawWin(o){
	var h=document.createElement('div');
	h.className='win_head';
	h.innerHTML='<a href="javascript:logWin.close();" class="icon close"></a><span class="win_title">&nbsp;动态日志</span>';
	h.onmousedown=function(event){
		var e=event?event:window.event;
		dragStart(o,e);
	}
	o.appendChild(h);
	var b=document.createElement('div');
	b.className='win_body';
	b.id='logWindow';
	o.appendChild(b);
	var r=document.createElement('div');
	r.className='resize';
	r.style.left=(o.offsetWidth-10)+'px';
	r.style.top=(o.offsetHeight-10)+'px';
	r.onmousedown=function(event){
		var E=event?event:window.event;
		var O=event?event.target:window.event.srcElement;
		dragStart(O,E);
	}
	r.onmouseover=function(){
		clearTimeout(Cto);
		divAlpha(10,100,r);
	}
	r.onmouseout=function(){
		clearTimeout(Cto);
		divAlpha(-10,0,r);
	}
	o.appendChild(r);
}
function chkWinName(e){
	var isno=true;
	for (var i=0 in layers[0]){
		if (layers[0][i]==e){
			isno=false;
			break;
		}
	}
	return isno;
}
/*以下是拖动相关函数*/
//document.onmousemove=layerMove;
//document.onmouseup=dragEnd;
function dragStart(o,e){
	obj=o;
	ie?o.setCapture():null;
	oX=e.clientX-o.offsetLeft;
	oY=e.clientY-o.offsetTop;
	obj.className=='win'?o.style.cursor='move':o.style.cursor='auto';
}
function layerMove(e){
	if (obj){
		var mX=e?e.pageX-window.pageXOffset:event.clientX-document.body.scrollLeft;
		var mY=e?e.pageY-window.pageYOffset:event.clientY-document.body.scrollTop;
		var oW=obj.offsetWidth;
		mX=mX<=oX?oX:mX;
		var mW=ie?document.documentElement.clientWidth:window.innerWidth;
		mX=mX>=mW+oX-oW?mW-oW+oX:mX;
		mY=mY<=oY?oY:mY;
		obj.style.left=mX-oX+'px';
		obj.style.top=mY-oY+'px';
		if (obj.className=='resize'){
			var O=obj.parentNode;
			O.style.width=(mX-oX+8)+'px';
			O.style.height=(mY-oY+8)+'px';
			g('logWindow').style.width=(mX-oX+6)+'px';
			g('logWindow').style.height=(mY-oY-9)+'px';
		}
	}
}
function dragEnd(){
	if (obj){
		ie?obj.releaseCapture():null;
		obj.style.cursor='auto';
		obj=null;
		oX=0;
		oY=0;
	}
}
/*层的渐现渐隐*/
var To=20;
var Cto=new Array();
function divAlpha(s,e,o){
	if (Cto[o.id]){
		clearTimeout(Cto[o.id]);
	}
	var i=ie?o.filters.alpha.opacity:o.style.MozOpacity*100;
	if ((s>0&&i<e)||(s<0&&i>e)){
		ie?o.filters.alpha.opacity=i+s:o.style.MozOpacity=(i+s)/100;
		var cmd=function(){divAlpha(s,e,o);}
		Cto[o.id]=setTimeout(cmd,To);
	}
}
/*层的聚焦*/
function divFocus(e){
	var o=e?e.target:window.event.srcElement;
	while (!o.id){
		o=o.parentNode;
	}
	o.style.zIndex=layers[1].length-1;
	for (var i=0 in layers[0]){
		if (layers[0][i]==o.id){
			var c=layers[1][i];
			layers[1][i]=layers[1].length-1;
			for (var j=0 in layers[1]){
				if (layers[1][j]>c&&i!=j){
					layers[1][j]--;
					document.getElementById(layers[0][j]).style.zIndex=layers[1][j];
				}
			}
			break;
		}
	}
}
/*加载某js后调用某function*/
function include_js(file) {
    var _doc = document.getElementsByTagName('head')[0];
    var js = document.createElement('script');
    js.setAttribute('type', 'text/javascript');
    js.setAttribute('src', file);
    _doc.appendChild(js);

    if (!/*@cc_on!@*/0) { //if not IE
        //Firefox2、Firefox3、Safari3.1+、Opera9.6+ support js.onload
        js.onload = function () {
            alert('Firefox2、Firefox3、Safari3.1+、Opera9.6+ support js.onload');
        }
    } else {
        //IE6、IE7 support js.onreadystatechange
        js.onreadystatechange = function () {
            if (js.readyState == 'loaded' || js.readyState == 'complete') {
                alert('IE6、IE7 support js.onreadystatechange');
            }
        }
    }

    return false;
}
function printModule(mid){
	var u=rt+'module/module_'+mid+'.htm';
	var x=function(o){
	var t=aRP(o.responseText);
		g('module_static_'+mid).parentNode.innerHTML=t;
	}
	gD(u,x);
}
//execution function
//include_js('/js/jquery/jquery.js');