/*
Version:	VDCS Common & Instantiation Library 1.1.0.0705
*/

var VDCS=new Object();
var dcs=new Object();

dcs.version=new Object();
dcs.version.bulid="1.1.0";


function put(s) { document.write(s); }
function isNull(s) { return (s==null) ? true : false; }
function isEmpty(s) { return (s==null || s=="") ? true : false; }
function isArray(o) { var re=false; if (iso(o)) { try { if (o.length>-1) re=true; } catch(e) { } } return re; }
function isObject(s) { return (typeof(s)=="object" && s) ? true : false; }
function iso(s) { return (typeof(s)=="object" && s) ? true : false; }
function getType(s) { return typeof(s).toString(); }

String.prototype.trim=function() { return this.replace(/(^\s*)|(\s*$)/g,""); }	///^\s+/	/\s+$/
function toTrim(s) { return typeof(s)=="string"?s.trim():s; }
function toLength(s) { return s.replace(/[^\x00-\xff]/g,"aa").length; }
function toReplace(s,s1,s2) { return s.replace(s1,s2); }
function toDisp(s,s1,s2) { return s.replace("{$"+s1+"}",s2); }

function isInte(s) { return /^[0-9]*[1-9][0-9]*$/.exec(s)?true:false; }		//判断是否是正整数
function isInt(s) { return (parseInt(s)==s); }
function isNum(s) { return (parseFloat(s)==s); }

function toInt(s) { return isInt(s)?parseInt(s):0; }
function toNum(s) { return isNum(s,1)?parseFloat(s):0; }

function inStr(s) { return s.indexOf(s); }
function inPart(s,sVar,sSymbol) { if (isEmpty(sSymbol)) sSymbol=","; return (sSymbol+s.toString()+sSymbol).indexOf(sSymbol+sVar.toString()+sSymbol)+1; }

function $(s) { return dcs.browser.getElementById(s); }

Array.prototype.del=function(n) { if(n<0) return this; return this.slice(0,n).concat(this.slice(n+1,this.length)); }


dcs.config=new Object();
dcs.config._data=new Array();
dcs.config._data=new Array();
dcs.config._data["dir"]				= "/";
dcs.config._data["url"]				= "/";
dcs.config._data["dir.common"]			= "common/";
dcs.config._data["dir.common.smiley"]		= "images/smiley/";
dcs.config._data["dir.common.script"]		= "common/script/";
dcs.config._data["dir.common.editor"]		= "common/script/editor/";
dcs.config._data["dir.account"]			= "account/";
dcs.config._data["dir.passport"]		= "passport/";
dcs.config._data["dir.images"]			= "images/";
dcs.config._data["dir.upload"]			= "upload/";
dcs.config._data["dir.xml"]			= "xml/";
dcs.config._data["dir.acout"]			= "acout/";
dcs.config._data["dir.support"]			= "support/";
dcs.config._data["dir.skin.base"]		= "skin/";
dcs.config._data["dir.skin"]			= "skin/default/";

dcs.config.getValue=function(k) { return this._data[k]; }
dcs.config.setValue=function(k,v) { this._data[k]=v; }

dcs.config.setPath=function(sDir,sURL,sSkin)
{
	if (!isEmpty(sDir)) this._data["dir"]=sDir;
	if (!isEmpty(sURL)) this._data["url"]=sURL;
	if (!isEmpty(sSkin)) this._data["dir.skin"]=(sSkin=="_base") ? this._data["dir.skin.base"] : sSkin;
}
dcs.config.setDir=function(k,v) { this._data["dir."+k]=v; }
dcs.config.getDir=function(k) { return this._data["dir."+k]; }
dcs.config.setFile=function(k,v) { this._data["url.file."+k]=v; }
dcs.config.getURL=function(k,sFile)
{
	var re="";
	var tmpBase=this._data["url"];
	if (isEmpty(k)) { re=tmpBase; } else { re=this._data["dir."+k]; if (re.substring(0,1)!="/" && re.indexOf("://")==-1) re=tmpBase+re; }
	if (!isEmpty(sFile)) re+=this._data["url.file."+sFile];
	return re;
}




//########################################
//########################################
dcs.browser=new Object();
dcs.browser.userAgent		= navigator.userAgent.toLowerCase();
dcs.browser.appVersion		= navigator.appVersion;

dcs.browser.doInit=function()
{
	this.isIE=(this.userAgent.indexOf("msie")!=-1); this.isIE5=false; this.isGecko=false; this.isFirefox=false; this.isOpera=false;
	if (this.isIE)
	{
		this.MajorVer=this.appVersion.match(/MSIE (.)/)[1]; this.MinorVer=this.appVersion.match(/MSIE .\.(.)/)[1];
		this.isIE5=(this.MajorVer>5 || this.MinorVer>=5); this.type=(this.isIE5)?"ie5":"ie"; this.typeName="ie";
	}
	else
	{
		this.isGecko=true; this.type="gecko"; this.typeName="gecko";
		this.MajorVer=0; this.MinorVer=0;
		this.isFirefox=(navigator.userAgent.toLowerCase().indexOf("firefox")!=-1);
		this.isOpera=(navigator.userAgent.toLowerCase().indexOf("opera")!=-1);
	}
}
dcs.browser.doInit();

dcs.browser.getType=function() { return this.type; }
dcs.browser.getTypeName=function() { return this.typeName; }

dcs.browser.getObject=function(s) { return this.getElementById(s); }
dcs.browser.getElementById=function(s) { return (this.isIE5 || this.isFirefox) ? document.getElementById(s) : document.all(s); }
dcs.browser.getElementsByName=function(s) { return (this.isIE5 || this.isFirefox) ? document.getElementsByName(s) : document.all(s); }

dcs.browser.doRefresh=function() { return window.document.location.reload(); }
dcs.browser.goBack=function() { return history.back(); }

dcs.browser.getDomain=function() { return window.document.domain; }
dcs.browser.getURLs=function() { return window.document.URL; }
dcs.browser.getTitle=function() { return window.document.title; }
dcs.browser.getReferer=function() { return window.document.referrer; }

dcs.browser.xmlHttp=null;
dcs.browser.getXMLHttpObject=function()
{
	if (this.xmlHttp==null)
	{
		if (window.ActiveXObject)						// IE
		{
			var tmpAry=new Array("Microsoft.XMLHTTP","Msxml2.XMLHTTP","Msxml.XMLHTTP");
			for (var i=0;i<tmpAry.length;i++) { try { this.xmlHttp=new ActiveXObject(tmpAry[i]); } catch(e) { this.xmlHttp=null; } if (this.xmlHttp!=null) break; }
		}
		else if(window.XMLHttpRequest) { this.xmlHttp=new XMLHttpRequest(); }	// Firefox, Opera, Safari, ...
	}
	return this.xmlHttp;
}




//########################################
//########################################
dcs.init=new Object();
dcs.init._Queues=new Array();

dcs.init.isRes=function(s) { return isEmpty(this._Queues[s]); }

dcs.init.loadResource=function(sName,s,sData,sFunc,t)
{
	if (!isEmpty(sName) && !isInt(t) && t<1)
	{
		if (!isEmpty(this._Queues[sName])) { if (!isEmpty(sFunc)) eval(sFunc+(sFunc.indexOf(")")>0?"":"()")); return true; }
		this._Queues[sName]=new Date().getTime();
	}
	var _xmlHttp=dcs.browser.getXMLHttpObject();
	if (!isEmpty(sFunc))
	{
		_xmlHttp.open((isEmpty(sData)?"GET":"POST"),s,!dcs.browser.isIE);
		_xmlHttp.onreadystatechange=function(){ dcs.init.loadResourceReadyFunc(_xmlHttp,sFunc,t); };
		_xmlHttp.send((isEmpty(sData)?null:sData));
	}
	else { try { _xmlHttp.open("GET",s,false); _xmlHttp.send(null); if(_xmlHttp.readyState==4 && (_xmlHttp.status==200 || _xmlHttp.status==0)) { eval(_xmlHttp.responseText); return true; } } catch(e) {  } }
}

dcs.init.loadResourceReadyFunc=function(_xmlHttp,sFunc,t) { if(_xmlHttp.readyState==4 && (_xmlHttp.status==200 || _xmlHttp.status==0)) { if (t==1 || t==2 || t==3) { eval((sFunc.indexOf(")")>0?sFunc.substring(0,sFunc.length-2):sFunc)+"(t==3?_xmlHttp.responseXML:(t==2?_xmlHttp.responseXML.xml:_xmlHttp.responseText))"); } else { eval(_xmlHttp.responseText); eval(sFunc+(sFunc.indexOf(")")>0?"":"()")); } } }

dcs.init.loadRes=function(s,sFunc,t) { this.loadResource("loadRes:resource/VDCS.lib."+s+".js",dcs.config.getURL("common.script")+"resource/VDCS.res."+s+".js",null,sFunc,t); }
dcs.init.loadUtil=function(s,sFunc,t) { this.loadResource("loadUtil:resource/VDCS.util."+s+".js",dcs.config.getURL("common.script")+"resource/VDCS.util."+s+".js",null,sFunc,t); }
dcs.init.loadLib=function(s,sFunc,t) { this.loadResource("loadLib:resource/VDCS.lib."+s+".js",dcs.config.getURL("common.script")+"resource/VDCS.lib."+s+".js",null,sFunc,t); }

dcs.init.loadURL=function(s,sData,sFunc,t)
{
	var tmpURL=s;
	if (tmpURL.indexOf("://")>0) tmpURL=dcs.config.getURL("common","url.proxy")+"?url="+encodeURI(s)+"&contenttype="+((t==2 || t==3)?"xml":"js");
	this.loadResource("loadURL:"+s,tmpURL,sData,sFunc,t);
}

dcs.init.loadStyle=function() { if (dcs.browser.isIE) put("<link rel=\"stylesheet\" rev=\"stylesheet\" type=\"text/css\" href=\""+dcs.config.getURL("common.script")+"resource/browse.ie.css"+"\" charset=\"utf-8\" />"); }




//########################################
//########################################
dcs.common=new Object();
dcs.common.NEWLINE			= "";
dcs.common.VALUE_UNKNOWN		= "[unknown]";
dcs.common.VALUE_EMPTY_REPLACER		= "NaN";
dcs.common.VALUE_EMPTY_REPLACERS	= "<font class=\"gray\">NaN</font>";

dcs.common.toReplace=function(s,s1,s2) { return s.replace(s1,s2); }
dcs.common.toDisp=function(s,s1,s2) { return s.replace("{$"+s1+"}",s2); }

dcs.common.isNumber=function(s,t,v)
{
	var sSafe=(t==1)?"0123456789.":"0123456789";
	var tmpAry=new Array(1);
	if (v==null || v=="") { tmpAry[0]=false; tmpAry[1]=true; } else { tmpAry[0]=0; tmpAry[1]=s; }
	if (s==null || s=="") return tmpAry[0];
	for (var i=0;i<s.length;i++) { if (sSafe.indexOf(s.charAt(i))==-1) return tmpAry[0]; }
	return tmpAry[1];
}




//########################################
//########################################
dcs.list=new Object();
dcs.list.is=function(o) { return o && o.del; }
dcs.list.isKey=function(k) { return typeof(k)=="string"; }
dcs.list.getNew=function() { return new Array(); }

dcs.list.toString=function(o,p1,p2) { if (!p1) p1=";"; if (!p2) p2="="; var re=""; if (this.is(o)) { for (var k in o) { if (this.isKey(o[k])) re+=p1+k+p2+o[k]; } if (re) re=re.substring(p1.length); } return re; }
dcs.list.byString=function(s,p1,p2) { if (!p1) p1=";"; if (!p2) p2="="; var reAry=new Array(),tmpAry,tmpArys=s.split(p1); for (var i=0;i<tmpArys.length;i++) { tmpAry=tmpArys[i].split(p2); if (tmpAry.length==2 && toTrim(tmpAry[0])!="") reAry[toTrim(tmpAry[0])]=toTrim(tmpAry[1]); } return reAry; }

dcs.list.toAppend=function(o,oAppend)
{
	if (!this.is(o)) o=this.getNew();
	if (this.is(oAppend)) { for(var k in oAppend) { if (this.isKey(oAppend[k])) o[k]=oAppend[k]; } }
	return o;
}




//########################################
//########################################
dcs.form=new Object();

dcs.form.getObject=function(s,t)
{
	var o,reo=null;
	switch (t) {
		case "parent":		o=this.getElement(s); if (iso(o)) reo=dcs.browser.isIE ? o.parentElement : o.parentNode; break;
	}
	return reo;
}

dcs.form.getElement=function(s,t)
{
	if (t==1) { dcs.init.loadLib("form"); return dcs.form.getElements(s); }
	var reo=null;
	try {
		if (!isEmpty(s)) {
			var tmpTarget="";
			if (s.indexOf(":")!=-1) { tmpTarget=s.substring(0,s.indexOf(":")); s=s.substring(s.indexOf(":")+1); }
			var tmpForm;
			if (tmpTarget=="parent") { if (s.indexOf(".")==-1) { reo=window.parent.document.getElementById(s); } else { if (iso(tmpForm=window.parent.document.forms[s.substring(0,s.indexOf("."))])) reo=tmpForm.elements[s.substring(s.indexOf(".")+1)]; } }
			else if (tmpTarget!="") { }
			else { if (s.indexOf(".")==-1) { reo=document.getElementById(s); } else { if (iso(tmpForm=document.forms[s.substring(0,s.indexOf("."))])) reo=tmpForm.elements[s.substring(s.indexOf(".")+1)]; } }
		}
	} catch(e) {  }
	return reo;
}

dcs.form.getValue=function(o)
{
	var re="";
	if (!iso(o)) o=this.getElement(o);
	if (iso(o))
	{
		var tmpType=o.type; if (isEmpty(tmpType)) tmpType="";
		if (o.length || inPart("radio,checkbox",tmpType)>0) {
			if (o.length) {
				for(var i=0;i<o.length;i++) {
					if (isEmpty(tmpType)) tmpType=o[i].type;
					switch (tmpType){
						case "radio":		if (o[i].checked) { re=o[i].value; } break;
						case "checkbox":	if (o[i].checked) { re+=","+o[i].value; } break;
					}
				}
				if (tmpType=="checkbox" && !isEmpty(re)) re=re.substring(2);
			} else {
				switch (tmpType) {
					case "radio":		if (o.checked) { re=o.value; } break;
					case "checkbox":	if (o.checked) { re=o.value; } break;
				}
			}
		}
		else { re=o.value; }
	}
	return re;
}

dcs.form.setValue=function(o,v,sMode)
{
	if (!iso(o)) o=this.getElement(o);
	if (iso(o))
	{
		if (isEmpty(v)) v="";
		if (o.length) {
			var tmpType="";
			for(var i=0;i<o.length;i++) {
				if (isEmpty(tmpType)) tmpType=o[i].type;
				switch (tmpType) {
					case "radio":		if (inPart(v,o[i].value)>0 || sMode==("__no"+(i+1))) { o[i].checked=true; } break;
					case "checkbox":	if (inPart(v,o[i].value)>0 || sMode=="__all__") { o[i].checked=true; } break;
				}
			}
		}
		else { if (sMode=="append") o.value+=v; else o.value=v; }
	}
}

dcs.form.doSubmit=function(o) { if (!iso(o)) o=$(o); if (!iso(o)) o=document.forms[o]; if (iso(o)) o.submit(); }
dcs.form.doSubmitOnce=function(o) { if (!iso(o)) o=$(o); if (!iso(o)) o=document.forms[o]; if (iso(o)) { if (o._smt) o._smt.disabled=true; if (o._sbt) o._sbt.disabled=true; if (o._rst) o._rst.disabled=true; } }
dcs.form.doSubmitQuick=function(o,oEvent) { if (!oEvent) oEvent=event; if ((oEvent.keyCode==13 && oEvent.ctrlKey) || (oEvent.keyCode==83 && oEvent.altKey)) { this.doSubmitOnce(o); this.doSubmit(o); } }

dcs.form.toConvertInput=function(s,sName)
{
	if (isEmpty(sName)) sName=this.SELECT_INPUT_NAME;
	var re="";
	var tmpAry=s.split(",");
	for (var i=0;i<tmpAry.length;i++) { re+="<input type=\"hidden\" name=\""+sName+"\" value=\""+tmpAry[i]+"\">"; }
	return re;
}




//########################################
//########################################
dcs.pages=new Object();

dcs.pages.go=function(s) { document.location.href=s; }

dcs.pages.isClickReturn=function(s,t)
{
	var re="";
	switch (t)
	{
		case 1:		re="您确定"+s+"吗？"; break;
		case 2:		re="您确定要"+s+"吗？\n\n执行该操作后将不可恢复！"; break;
		default :	re=s; break;
	}
	return window.confirm(re);
}

dcs.pages.isInputInt=function(s) { var kc=event.keyCode; return ((kc>=48 && kc<=57) || (s==1 && !re && kc==46)) ? true : false; }	//onKeyPress="event.returnValue=dcs.pages.isInputInt(0);"

dcs.pages.doBlockSwitch=function(o,sImg)
{
	var s=o; if (!iso(o)) o=$(o);
	if (o)
	{
		var tmpStatus=o.style.display; o.style.display=(tmpStatus=="none"?"":"none");
		if (isEmpty(sImg) && !iso(s)) sImg=s+"_icon";
		if (!isEmpty(sImg)) { var oImg=$(sImg); if (oImg) oImg.src=oImg.src.replace((tmpStatus=="none"?"open":"close"),(tmpStatus=="none"?"close":"open")); }
	}
	return false;
}




//########################################
//########################################
dcs.window=new Object();
dcs.window._QueuesOnLoad=new Array();

dcs.window.doTimeout=function(s,ss) { window.setTimeout(s,ss*1000); }
dcs.window.addTimeout=function(s,ss) { window.setTimeout(s,ss*1000); }

dcs.window.addOnLoad=function(s) { this._QueuesOnLoad[this._QueuesOnLoad.length]=s; }
dcs.window.doOnLoad=function() { for (var i=0;i<this._QueuesOnLoad.length;i++) { eval(this._QueuesOnLoad[i]); } }

dcs.window.getClipBoardData=function(t) { return (window.clipboardData) ? window.clipboardData.getData(isEmpty(t)?"text":t) : ""; }
dcs.window.setClipBoardData=function(s) { if (window.clipboardData) window.clipboardData.setData(s); }
dcs.window.doClipBoardClear=function() { if (window.clipboardData) window.clipboardData.clearData(); }

dcs.window.addFavorite=function(s,sURL) { if (dcs.browser.isIE) window.external.addFavorite(sURL,s); else alert("请按快捷键 \"Ctrl+D\" 添加收藏！"); }

dcs.window.doOpen=function(sURL,sName,sWidth,sHeight,sScroll,sContent) { var _Left=(screen.width)?(screen.width-sWidth)/2:0,_Top=(screen.height)?(screen.Height-sHeight)/2:0; var o=window.open(sURL,sName,"width="+sWidth+",height="+sHeight+",left="+_Left+",top="+_Top+",toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars="+sScroll+",resizable=no"); if (!isEmpty(sContent)) { o.document.write(sContent); /*o.document.close();*/ } return o; }

window.onload=function() { dcs.window.doOnLoad(); }
//window.onerror=function(a,b,c){ return true; }




//########################################
//########################################
dcs.q=new Object();

dcs.q.hide=function(o) { if (!iso(o)) o=$(o); if (o) o.style.display="none"; }
dcs.q.show=function(o,v) { if (!iso(o)) o=$(o); if (o) o.style.display=(v?v:""); }

dcs.q.html=function(o,v,t) { if (!iso(o)) o=$(o); if (o) { if (v==undefined) return o.innerHTML; else (t=="append") ? o.innerHTML+=v : o.innerHTML=v; } }

dcs.q.cssStyle=function(o,v,t) { if (!iso(o)) o=$(o); if (o) { if (v==undefined) return o.style.cssText; else { var oList=dcs.list.byString(o.style.cssText,";",":"); if (t=="reset") oList=dcs.list.getNew(); o.style.cssText=dcs.list.toString(dcs.list.toAppend(oList,dcs.list.byString(v,";",":")),";",":"); } } }
dcs.q.cssClass=function(o,v,t) { if (!iso(o)) o=$(o); if (o) { if (v==undefined) return o.className; else { if (t=="append") v=(o.className?o.className+" ":"")+v; o.className=v; } } }



/*
Version:	VDCS Compatible Library 1.0
*/


dcs.form.doOnceSubmit=function(o) { this.doSubmitOnce(o); }
dcs.form.doQuickSubmit=function(o,oEvent) { this.doSubmitQuick(o,oEvent); }


dcs.pages.doGo=function(s) { this.go(s); }

/*
this.isNS=false;
this.isNS=this.userAgent.indexOf("netscape")!=-1; if(this.isNS) this.type="ns";
dcs.browser.getElementById=function(s) { return (this.isNS) ? document.layers[s] : ((this.isIE5 || this.isFirefox) ? document.getElementById(s) : document.all(s)); }
dcs.browser.getElementsByName=function(s) { return (this.isNS) ? document.layers[s] : ((this.isIE5 || this.isFirefox) ? document.getElementsByName(s) : document.all(s)); }
*/






//########################################
//########################################
var dbg=new Object();

dbg.toString=function(o,l) { if (inPart("number,string,boolean",typeof(o))>0) return (l>0 && o.length>l) ? o.substr(0,l)+" ..." : o; else return "["+typeof(o)+"]"; }

dbg.obj=function(o,sMode,sRow)
{
	var _k,_v,_n=1,re="";
	if (isEmpty(sRow) || sRow==-1) sRow=20;
	try { for(_k in o) { if (_n>=sRow) { alert(re); re=""; _n=1; } if (sMode=="key") re+=_k+"\n"; else re+=_k+"="+(this.toString(o[_k],50))+"\n"; _n++; } if (re!="") { alert(re); re=""; } } catch(e) { dbg.e(e); }
}

dbg.objString=function(o,sMode,sRow)
{
	var _k,_v,_n=1,re="";
	if (isEmpty(sRow) || sRow==-1) sRow=20;
	try { for(_k in o) { if (sMode=="key") re+=_k+"\n"; else re+=_k+"="+(this.toString(o[_k],50))+"\n"; _n++; } } catch(e) { re=dbg.eString(e); }
	return re;
}

dbg.e=function(e) { alert(dbg.eString(e)); }

dbg.eString=function(e) { var re=""; for(var k in e) { re+=k+"="+e[k]+"\n"; } return re; }

function doTestObject(o,sMode,sRow) { dbg.obj(o,sMode,sRow); }


dbg.Tree=function(o) { if (isTree(o)) return toArrayString(o.getArray()); }
dbg.Table=function(o) { if (isTable(o)) return toArrayString(o.getArray()); }
dbg.List=function(o) { if (isArray(o)) return toArrayString(o); }
dbg.Array=function(o) { if (isArray(o)) return toArrayString(o); }

function toArrayString(strAry,strTitle)
{
	var re="";
	re="<table border=\"1\">";
	if (typeof(strAry[0])=="object")
	{
		var tmpCol=strAry[0].length,tmpRow=strAry.length,tmpAry,_r;
		if (!isEmpty(strTitle)) re+="<tr><td colspan=\""+(tmpCol+1)+"\">"+strTitle+"</td></tr>";
		re+="<tr><td colspan=\""+(tmpCol+1)+"\">Col="+tmpCol+", Row="+tmpRow+"</td></tr>";
		for (var _a=0;_a<strAry.length;_a++) { tmpAry=strAry[_a]; re+="<tr>"; re+="<td>"+(_a+1)+".</td>"; for (_r=0;_r<tmpAry.length;_r++) { re+="<td>"+tmpAry[_r]+"</td>"; } re+="</tr>"; }
	}
	else
	{
		if (!isEmpty(strTitle)) re+="<tr><td colspan=\"2\">"+strTitle+"</td></tr>";
		if (dcs.list.is(strAry))
		{
			var c=0;
			re+="<tr><td colspan=\"2\">Lnegth={$count}</td></tr>";
			for (var k in strAry) { if (typeof(strAry[k])=="string") { re+="<tr><td>"+k+".</td><td>"+strAry[k]+"</td></tr>"; c++; } }
			re=toDisp(re,"count",c);
		}
		else
		{
			re+="<tr><td colspan=\"2\">Lnegth="+strAry.length+"</td></tr>";
			for (var _a=0;_a<strAry.length;_a++) { re+="<tr><td>"+(_a+1)+".</td><td>"+strAry[_a]+"</td></tr>"; }
		}
	}
	re+="</table>";
	return re;
}

