try{document.execCommand("BackgroundImageCache", false, true)}catch(err){}
/* prototype Codes*/
var isIE=1&&(window.ActiveXObject);
//检测是否xhtml
var isCSS1Dom = document.compatMode && (document.compatMode != "BackCompat");
function $(){
var els=[];
for(var i=0;i<arguments.length;i++){
var el=arguments[i];
if (typeof el=='string'){el=document.getElementById(el)}
if(arguments.length==1){return el}
els.push(el)}
return els
}
function $$C(cName,tag,parent){
p=parent||document.body;
var a=p.getElementsByTagName(tag||'*');
var a1=[];
for(var i=0;i<a.length;i++){if(a[i].className==cName)a1.push(a[i])}
return a1
}

function $A(obj){var _a=[];
for(var i=0;i<obj.length;i++){_a.push(obj[i])}
return _a
}

function $G(obj){
var a=[];
var cO=new obj.constructor();
for(e in obj){if(obj[e]!==cO[e]){a.push(e)}}
return a
}
function $CE(tag,s){var nd=document.createElement(tag.toUpperCase());s?nd.innerHTML=s:0;return nd}

Function.prototype.bind=function(){
var __method=this,args=$A(arguments),obj=args.shift();
return function(){return __method.apply(obj,args.concat($A(arguments)))}
}

//end
Function.prototype.extend=function(fun){
var s=typeof(fun)!='object'?new fun():fun;
for (e in s){this.prototype[e]=s[e]}
s=null}


var isIE=1&&(window.ActiveXObject);
var isFF=(/Firefox/.test(navigator.userAgent));
if (!isIE){
window.constructor.prototype.__defineGetter__("event",function(){
	var o=arguments.callee.caller;var e;
	while(o!=null){
	e=o.arguments[0];
	if(e&&(e.constructor==Event||e.constructor==MouseEvent)){return e}
	o=o.caller}
return null
});
Event.prototype.__defineGetter__("srcElement",function(){
	var node=this.target;
	while (node.nodeType!=1)node=node.parentNode;
	return node});
Event.prototype.__defineGetter__("clientX",function(){return this.pageX});
Event.prototype.__defineGetter__("clientY",function(){return this.pageY});
}

function getAbsX(){
	bx=document.documentElement.scrollLeft||document.body.scrollLeft||0;
	x=event.pageX?event.pageX:event.clientX-2+bx;return x}
function getAbsY(){
	by=document.documentElement.scrollTop||document.body.scrollTop||0;
	y=event.pageY?event.pageY:event.clientY-2+by;return y}

Object.extend({
	toQuery:function(){
		var a=$G(this);var t;
		var s='';
		for(var n=0;n<a.length;n++){
			var t=typeof(this[a[n]]);
			if(t=='number'||t=='string'||this[a[n]].isArray){s+='&'+a[n]+'='+this[a[n]]}
			else{s+=this[a[n]].toQuery()}
		}
		return s
	},
	extend:function(o){for (e in o){this[e]=o[e]}o=null}
});

Number.prototype.toInt=function(sw){return sw?Math.round(this+0.49999):Math.round(this)}

String.builder=function(){
this.arr=[];
this.add=function(s){this.arr.push(s)}
this.toString=function(){return this.arr.join('')}
}

Array.extend({
	remove:function(n){this.splice(n,1);return this},
	each:function(func){for (var i=0;i<this.length;i++){func(this[i],i)}},
	inject:function(m, fun){this.each(function(value,index) {m=fun(m,value,index)});return m},
	toInt:function(m){
		var a=this;var m=m?m+1:a.length;
		for(var n=0;n<m;n++){a[n]=a[n]?a[n].toInt():0}
		return a},
	indexOf:function(obj){for(var i=0;i<this.length;i++)if(this[i]==obj)return i;return -1},
	isArray:1
});

String.extend({
	copy:function(n){var a=new Array(n+1);return a.join(this)},
	toInt:function(){var n=parseInt(this.replace(/^[0]*/g,''));return n?n:0},
	hReplace:function(a1,a2){var s=this;for(var n=0;n<a1.length;n++){s=s.replace(a1[n],a2[n])}return s},
	Tlength:function(){var a=this.match(/[^\x00-\xff]/ig);return this.length+(a==null?0:a.length)},
	test:function(reg){return this.match(reg)?true:false},
	trim:function(){return this.replace(/^\s*|\s*$/g,"")},
	toHTML:function(){var s=this;var reg=/(<[^>]+>|<\/[^>]+>)/ig;
		try{var a=s.match(reg);
		for(var n=0;n<a.length;n++){s=s.replace(a[n],a[n].toLowerCase())}}
		catch(e){}
		s=s.replace(/<(img|hr|input|br)([^\/>]*)>/ig,'<$1$2 />').replace(/(class|src|href|type|border|id|value)\s*=\s*([^ >\"]+)/ig,'$1="$2"');
		s=s.replace(/\n/ig,'<br />').replace(/\r/ig,'').replace(/ /g,' \&nbsp;').replace(/\'/g,'&#39;');
		return s},
	toText:function(){return this.decode().hReplace([/\n|\r/g,	/\<br \/\>|\<br\>|<br>/ig,	/\&nbsp;/ig,	/\&gt\;|\〈/ig,	/\&lt\;|\〉/ig],['','\n',' ', '<', '>'])},
	format:function(){var s=this;for(var i=0;i<arguments.length;i++){s=s.replace(new RegExp("\\{"+i+"\\}","g"), arguments[i])}return s},
	isNull:function(){var s=this.trim();return (s==null||s==''||s=='undefined')?1:0},
	fillZero:function(d){var s=this;return s.length<d?'0'.copy(d-s.length)+s:s},
	toHexColor:function(){var a=this.match(/[\d]{1,3}/ig);
		for(var n=0;n<a.length;n++){a[n]=parseInt(a[n]).toString(16);
		a[n]=a[n].length<2?'0'+a[n]:a[n]}
		return a.join('')},
	toObject:function(){var o={};this.split('&').each(function(i){var a=i.split('=');o[a[0]]=a[1]||null});return o},
	encode:function(){return this.hReplace([/\>/g,/\</g,/\n/g,/\r/g,/\'/g,/(\][^\[]*?)(javascript:){1,}/ig],['〉','〈','¤','','‘','$1'])},
	toFcode:function(){return this.hReplace([/\〉/g,/\〈/g,/¤/g,/  /g,/\‘/g,/(\][^\[]*?)(javascript:){1,}/ig],['&gt;','&lt;','<br />','&nbsp; ',"'",'$1'])},
	decode:function(){return this.hReplace([/〉|\&gt;/g,/〈|\&lt;/g,/¤|<br \/>/g,/\&nbsp;/g,/‘/g],['>','<','\n',' ',"'"])}
});

Date.constructor.extend({
	load:function(str){
	if(typeof(str)!='string'){return str}
	if(str.length>24){return new Date(str)}
	var reg=/([\d]{1,4})/ig;
	var a=str.match(reg).toInt(7);
	d=a[0]>12?new Date(a[0],a[1]-1,a[2],a[3],a[4],a[5],a[6]):new Date(a[2],a[0]-1,a[1],a[3],a[4],a[5],a[6]);
	return d
	},
	expired:'Mon, 7 Dec 1981 00:00:00 UTC',
	getTimeSpan:function(d1,d2){
		var a1=d1.getArray();
		var a2=d2.getArray();
		var y=a1[0]-a2[0];
		var m=a1[1]-a2[1];
		var d=a1[2]-a2[2];
		var h=a1[3]-a2[3];
		var min=a1[4]-a2[4];
		var s=a1[5]-a2[5];
		var ms=d1.getTime()-d2.getTime();
		return [ms,y,m,d,h,min,s]
	}
});

Date.prototype.extend({
	getArray:function(){
	return [this.getFullYear(),this.getMonth()+1,this.getDate(),this.getHours(),this.getMinutes(),this.getSeconds(),this.getMilliseconds()]
	},
	addDate:function(y,m,d,h,min,s){var a=this.getArray();return new Date(a[0]+y,a[1]+m-1,a[2]+d,a[3]+h,a[4]+min,a[5]+s)}
});
Date.prototype.toString=function(pattern){
		if(!pattern){return this.toLocaleString()}
		var a=this.getArray();
		for(var n=0;n<a.length;n++){a[n]=a[n].toString().fillZero(2)}
		return pattern.hReplace([/yyyy/ig,/MM/g,/dd/ig,/hh/ig,/mm/g,/ss/ig],a)
}

document.loadXml=function(url){
var dom;
if (window.ActiveXObject){dom=new ActiveXObject("Microsoft.XMLDOM")}
else{
if(document.implementation&&document.implementation.createDocument){
dom=document.implementation.createDocument("","doc",null)}
}
dom.async=false;
dom.resolveExternals=false;
dom.validateOnParse=false;
dom.preserveWhiteSpace=true;
dom.load(url);
return dom
}

document.getElementsByClassName=function(className, parentEl){
var children=($(parentEl)||document.body).getElementsByTagName('*');
return $A(children).inject([],function(els, child){
	if(child.className.match(new RegExp("(^|\\s)"+className+"(\\s|$)")))els.push(child);
	return els
	})
}

function getNodeData(el){
	el=el[0]?el[0]:el;
	return el?el.firstChild?el.firstChild.data:null:null
}

function addEventQ(el,etype,func){
	if(isIE){
		el.attachEvent('on'+etype,function(){func()});
		}
	else{
		el.addEventListener(etype,function(){func()},false);
		}
	}
	
//停止程序s毫秒
function sleepblock(s){
	var now = new Date().getTime();
	var until = now + s;
	while(now<until){
		now = new Date().getTime();
		}
	}	