var jml=new function(){
var library={name:'JML - Javascript Micro Library',version:8.430,date:'23.03.2008',author:'HK510.com'}
this.toString=function(){return analyse(library);};
var ui={
isset:function(o){return typeof(o)!=='undefined' && o!==null;},
isObj:function(o){return $e(o)&&typeof(o)==='object';} ,
isStr:function(o){return $e(o)&&typeof(o)==='string';},
isBoo:function(o){return $e(o)&&typeof(o)==='boolean';},
isNum:function(o){return $e(o)&&typeof(o)==='number';},
isArr:function(o){return $e(o)&&typeof(o)==='object'&&$e(o.length);},
isFunc:function(o){return $e(o)&&typeof(o)==='function';},
isNJ:function(o){return !$e(o.match('toJSONString'));},
isEmpty:function(o){return isArr(o)?o.length==0:o.match(/\S+/)==null;},
empty:function(s){return s.replace(/\s+/g,'');},
call:function(f,a){if(isFunc(f)) f.apply(this,a);},
ucFirst:function(s){return upper(s.charAt(0))+s.substr(1);},
lower:function(s){return s.toLowerCase();},
upper:function(s){return s.toUpperCase();},
getObj:function(o){return !$e(o)?null:isObj(o)?o:$d.getElementById(o);},
encode:function(o){return (encodeURIComponent||escape)(JSON.stringify(o));},
decode:function(s){return JSON.parse((decodeURIComponent||unescape)(s));},
getUniqueId:function(){return String(Math.random()*(new Date()-new Date(0,00,01,00,00,00))).replace('.','');},
mixObj:function(){
	var r={},a=arguments;
	for(var i=0;i<a.length;i++){for(j in a[i])if(isNJ(j))r[j]=a[i][j];}
	return r;
},
mixArr:function(){
	var r=[],c=0,a=arguments;
	for(var i=0;i<a.length;i++){for(var j=0;j<a[i].length;j++){r[c]=a[i][j];c++;}}
	return r;
},
delegate:function(o,f){
	var o=o||null,f=f||null,a=arguments,r=[],h=$h;
	if(!$e(f)) return null;
	for(var i=2;i<=a.length-1;i++) r[i-2]=a[i];
	return function(x){
		var a=$e(x)?ui.mixArr([h.events.initialize(x)],r):r,c=null;
		if(ui.isFunc(f))c=f;
		if(!$e(c)&&$e(o))c=o[f];
		if(!$e(c))c=$w[f];
		try{return c.apply(o,a);}
		catch(e){return null;}
	};
},
globalize:function(o,e){for(var i in o)e[i]=o[i];},
analyse:function(o,d){var s='',d=d||'\n';for(var i in o)s+=i+'='+o[i]+d;return s;},
addJS:function(s){var e=$d.createElement("script");e.src=s;$d.body.appendChild(e);}
}
var $w=window,$d=document,$de=$d.documentElement,$n=navigator,$g=ui.getObj,$h=this,$e=ui.isset;
ui.globalize(ui,window);
this.browser=new function(){
	function size(){
		var c1=$h.browser,n1=0,n2=0,n3=0,n4=0,s1=c1.type,s2=c1.platform;
		var o1=$de,s3='Width',s4='Height',s5='inner',s6='client',s7='scroll';
		if(s1=='safari'&&s2=='mac'&&($w[s5+s3]||$w[s5+s4])){n1=$w[s5+s3];n2=$w[s5+s4];}
		else{n1=o1[s6+s3];n2=o1[s6+s4];if(s1=='opera'||(n1==0&&n2==0)){n1=$d.body[s6+s3];n2=$d.body[s6+s4];}}
		return {window:{w:n1,h:n2},body:{w:o1[s7+s3],h:o1[s7+s4]}};
	}
	function ptype(){
		var a=['opera','msie','firefox','netscape','safari'],s=lower($n.userAgent);
		for(var i=0;i<a.length;i++) if(s.match(a[i])!=null) return a[i];
		return null;
	}
	function pforme(){
		var a=['mac','win'],s=lower($n.appVersion);
		for(var i in a) if(s.match(a[i])!=null) return a[i];
		return null;
	}
	return {
		$:function(){return this;},
		type:ptype(),
		platform:pforme(),
		pageId:getUniqueId(),
		getWindowSize:function(){return size().window;},
		getBodySize:function(){return size().body;},
		openPopup:function(u,n,w,h,l,t,p){
			if(!$e(u)) return null;
			var r=null,w=w||100,h=h||100,l=l||this.getCenter(w),t=t||this.getMiddle(h),p=p||'scrollbars=yes,toolbar=no,location=no,status=no,menubar=no,resizable=yes,dependent=no';
			try{r=$w.open(u,n,'width='+w+',height='+h+',top='+t+',left='+l+','+p);try{r.window.focus();}catch(e){}}catch(e){}
			return $e(r)?r:null;
		},
		getScroll:function(){
			var n1=0,n2=0,o1=$d.body,o2=$de,s1='scrollLeft',s2='scrollTop';
			if(isNum($w.pageYOffset)){n2=$w.pageYOffset;n1=$w.pageXOffset;}
			else if(o1&&(o1[s1]||o1[s2])){n2=o1[s2];n1=o1[s1];}
			else if(o2&&(o2[s1]||o2[s2])){n2=o2[s2];n1=o2[s1];}
			return {x:n1,y:n2};	
		},
		getCenter:function(w){return Math.floor((this.getWindowSize().w-w)/2);},
		getMiddle:function(h){return Math.floor((this.getWindowSize().h-h)/2);},
		enableSelect:function(o,b){
			if($e(o.onselectstart)){o.onselectstart=function(){return b;}}
			else if($e(o.style.MozUserSelect)){o.style.MozUserSelect=b?'':'none';}
			else if($e(o.style.KhtmlUserSelect)){o.style.KhtmlUserSelect=b?'':'none';
			}else{o.onmousedown=function(){return b;};}		
		}
	}.$();
}
this.events=new function(){
	function init(t,o,s,f,b){
		var o=$g(o);
		if(!q(o,s,f)) return;
		if(t) o.detachEvent?o.detachEvent('on'+s,f):o.removeEventListener(s,f,b);
		if(!t)o.attachEvent?o.attachEvent('on'+s,f):o.addEventListener(s,f,b);
	};
	function q(o,s,f){return (!$e(o)||!$e(s)||!$e(f))?false:true;};
	return {
		$:function(){
			this.add($w,'load',delegate(this.text,'start'));
			return this;
		},
		initialize:function(o){
			var o=o||$w.event;
			if(!$e(o)) return null;
			o.cancelBubble=true;
			try{o.stopPropagation()}catch(e){}
			return o;
		},
		getElement:function(e){
			var r=e.target||e.srcElement;
			if(r.nodeType==3)r=r.parentNode;
			return r;
		},	
		getXY:function(e){
			var o=$h.browser.getScroll();
			return {x:e.pageX||(e.clientX+o.x),y:e.pageY||(e.clientY+o.y)};
		},
		hitTest:function(e,a){
			var c1=$h.obj,s1='offset',a1=[],p=this.getXY(this.initialize(e));
			for(var i=0;i<a.length;i++){
				var g=a[i],n1=c1.get(g,s1+'Left'),n2=c1.get(g,s1+'Top'),n3=c1.get(g,s1+'Width'),n4=c1.get(g,s1+'Height');
				a1.push((p.x>=n1&&p.x<=n1+n3)&&(p.y>=n2&&p.y<=n2+n4));
			}
			for(var i=0;i<a1.length;i++) if(a1[i]===true) return true;
			return false;
		},	
		getKey:function(e,b){
			var k=e.keyCode,b=b||false,s=[8,9,13,16,17,18,19,20,27,32,33,34,35,36,37,38,39,40,45,46,91,92,93,112,113,114,115,116,117,118,119,120,121,122,123,144,145];
			if($e(k)&&b){for(var i in s) if(s[i]==k)return -1;}
			return $e(k)?k:null;
		},
		add:function(o,s,f,b){init(false,o,s,f,b||false);},
		remove:function(o,s,f,b){init(true,o,s,f,b||false);},
		text:new function(){
			var mbr={resize:[]},intl,n1,n2=0;
			function exe(){
				n2=$h.browser.getBodySize().h;
				if(n2!=n1){
					n1=n2;
					 throwEResize();
				}
			}
			function throwEResize(){
				var a=mbr['resize'];
				for(var i=0;i<a.length;i++){if(isset(a[i])) a[i]();}
			}	
			function run(){
				clear();
				if(!isset(intl)) intl=setInterval(exe,200);
			}
			function clear(){if(isset(intl)) clearInterval(intl);}
			return {
				start:function(){
					if(!isset(n1)) n1=$h.browser.getBodySize().h;
					run();
				},
				stop:function(){
					clear();
					exe();
				},
				add:function(s,f){mbr[s].push(f);},
				remove:function(s,f){
					var a=mbr[s];
					for(var i=0;i<a.length;i++){
						if(isset(a[i])&&a[i]===f){
							a.splice(i,1);
							break;
						}
					}
				}
			}
		}
	}.$();
}	
this.obj=new function(){
	return {
		$:function(){return this;},
		set:function(t,p,v){
			var t=$g(t),r=$e(t)?t.style:null;
			if(!$e(t)) return r;
			if(p=='alpha'){r['opacity']=v/100;r['filter']='alpha(opacity='+v+')';}
			return $e(t[p])?t[p]=v:$e(r[p])?r[p]=v:null;
		},
		get:function(t,p){
			var t=$g(t),r=null,s='offset';
			if(p==s+"Left"||p==s+"Top") r=$h.xml.node.offset(t,p);
			if(p=='alpha'){r=this.get(t,'opacity')*100;r=isNaN(r)?100:r;}
			if(!$e(r))try{r=t.style[p].match(/[^px]+/);}catch(e){try{r=t[p];}catch(e){}}
			return $e(r)&&!isNaN(r)?Number(r):r;
		}
	}.$();
}
this.flash=new function(){
	// Add fullscreen support + External.interface
	function create(f,c){
		if(!$e(f)||!$e(c)) return null;
		var n=getUniqueId();
		var a=['transparent','allowScriptAccess','always','value','swLiveConnect','quality','macromedia.com','bgcolor','width','height','align','middle','version','FlashVars','wmode','container'];
		c=encode(mixObj(c,{nocacheid:n,htmlId:f.id,pageId:$h.pageId}));
		var p='<param name=',b=f[a[0]]||false,u=f.src+(f.nocache?'?nocacheid='+n:''),v=a[3];
		var s="<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' "+
		"codebase='http://download."+a[6]+"/pub/shockwave/cabs/flash/swflash.cab#"+a[12]+"="+f[a[12]]+"' "+
		a[8]+"='"+f[a[8]]+"' "+a[9]+"='"+f[a[9]]+"' id='"+f.id+"' "+a[10]+"='"+a[11]+"' >";
		s+=p+"'"+a[1]+"' "+v+"='"+a[2]+"' />";
		s+=p+"'"+a[4]+"' "+v+"='true' />";
		s+=p+"'movie' "+v+"='"+u+"' />";
		s+=p+"'"+a[5]+"' "+v+"='"+f[a[5]]+"' />";
		s+=p+"'menu' "+v+"='false' />";
		s+=p+"'"+a[7]+"' "+v+"='"+f[a[7]]+"' />";
		s+=p+"'"+a[13]+"' "+v+"='dataPass="+c+"' />";
		s+=b?p+"'"+a[14]+"' "+v+"='"+a[0]+"' />":"";
		s+="<embed src='"+u+"' "+a[5]+"='"+f[a[5]]+"' ";
		s+=a[13]+"='dataPass="+c+"' "+a[7]+"='"+f[a[7]]+"' "+a[8]+"='"+f[a[8]]+"' "+a[9]+"='"+f[a[9]]+"' name='"+f.id+"' ";
		if(b) s+=a[14]+"='"+a[0]+"' ";
		s+=a[10]+"='"+a[11]+"' "+a[1]+"='"+a[2]+"' "+a[4]+"='true' menu='false' type='application/x-shockwave-flash' ";
		s+="pluginspage='http://www.macromedia.com/go/getflashplayer' /></object>";
		var x=$g(f[a[15]]);
		if($e(x)) $h.obj.set(x,'innerHTML',s);
		return !$e(x)?s:$g(f.id);
	}
	function version(){
		var r=null,o=null,s='ShockwaveFlash.ShockwaveFlash';
		try{o=new ActiveXObject(s+".7");}
		catch(e){try{o=new ActiveXObject(s+".6");r=6;}catch(e){try{o=new ActiveXObject(s+".3");}catch(e){}}}
		r=!$e(r)&&$e(o)?o.GetVariable("$version").match(/\d+/):r;
		if(!$e(r)){
			var n=$n.plugins;
			s='Shockwave Flash';
			try{o=n[s];}catch(e){try{o=n[s+' 2.0'];}catch(e){}}
			r=$e(o)?o.description.match(/\d+/):null;
		}
		return !isNaN(r)?Number(r):r;
	}
	return {
		$:function(){return this;},
		version:version(),
		create:create
	}.$();
}
this.cookie=new function(){
	return {
		$:function(){return this;},
		erase:function(n){this.set(lower(n),{},-1);},
		set:function(n,o,i){
			if(!isObj(o)) return;
			var i=i||1,d=new Date();
			d.setTime(d.getTime()+(i*24*60*60*1000));
			$d.cookie=lower(n)+"="+encode(o)+";expires="+d.toGMTString()+";path=/";
		},
		get:function(n){
			var d=$d.cookie,a=d.split(";"),r=null,n=lower(n);
			for(i=0;i<a.length;i++){if(a[i].indexOf(n+'=')!=-1){r=decode(a[i].replace(n+'=',''));break;}}
			return r;
		}
	}.$();
}
this.images=new function(){
	var member=[];
	function add(){
		var d=[],a=member;
		for(var i=0;i<a.length;i++){d[i]=new Image;d[i].src=a[i];}			
	}
	return {
		$:function(){
			$h.events.add($w,'load',delegate(this,'preload'));			
			return this;
		},
		parse:function(){
			var a=$d.images,c1=$h.events,s='className',p=['$preload','$swap','$cursor'];b=[];
			var a1=$h.xml.node.byName('input');
			if($e(a1)){for(var i=0;i<a1.length;i++) if(lower(a1[i].type)=='image') b.push(a1[i]);}
			var c=[a,b];
			for(var k=0;k<c.length;k++){
				for(var i=0;i<c[k].length;i++){
					var e=c[k][i],r=e[s];
					for(var j=0;j<p.length;j++){
						var g=new RegExp("\\"+p[j],"g");
						if($e(r.match(g))){
							if(j==0) member.push(this.swap(e,true));
							if(j==1){
								c1.add(e,'mouseover',delegate(this,'swap',e));
								c1.add(e,'mouseout',delegate(this,'swap',e));
							}
							if(j==2) $h.obj.set(e,'cursor','pointer');
							r=r.replace(g,"");
						}
					}
					var m=r.match(/(\w)+/g);
					if($e(m))r=m.join(' ');
					e[s]=r;
				}			
			}
		},
		preload:function(s){
			$e(s)&&isStr(s)?member.push(s):this.parse();
			add();
		},
		swap:function(){
			var a=arguments,n=$e(a[0].cancelBubble)==1?1:0,o=$g(a[n]),b0=$e(o),s1=b0?o.src:a[n],r1="\\.\\D{3,4}$",f='match',p=a[2+n],b1=$e(p),s2='active',s3='_'+s2,b3=b1?$e(p[f](r1)):false,b4=b1?$e(p[f](s2)):false,b5=a[3+n]||false,a1=['_over',''],b2=a[n+1]||false;
			if((!b3&&!$e(s1[f](s3+r1)))||b5){
				var a1=$e(s1[f](a1[0]+r1))?a1:b5?[s3,a1[1]]:a1.reverse(),e=s1[f](r1);
				s1=s1.replace(s1[f](a1[0]+e),(b4?s3:a1[1])+e);
			}
			if(b3) s1=p;
			if(!b2&&b0){o.src=s1;}
			else{return s1;}
		}
	}.$();
}
this.jme=new function(){
	// Enable the stop method
	var member={left:{},top:{},width:{},height:{},alpha:{}},un=null;
	function set(a,h){
		for(var i=0;i<a.length;i++){
			var o=a[i],w=lower(o.property);
			if(vProp(w)) push({s:$e(o.start)?o.start:gProp(o.target,w),e:o.end,t:$g(o.target),p:w,d:o.duration,c:o.equation,i:$e(o.id)?o.id:null,n:'jme_'+getUniqueId(),z:0,h:h,r:0,
			clear:function(){with(this){pop(this);call(h.onMotionFinished,[t,p]);}},
			frame:function(){
				with(this){
					r=z>d?e:Math.ceil(eval(c)(z,s,e-s,d,null,null));
					z>d?clear():z=z+1;
					isNaN(r)?clear():$h.obj.set(t,p,r+(p=='alpha'?'':'px'));
					call(h.onMotion,[t,p,r]);
				}
			}});
		}
		exe();
	}
	function exe(){
		if(!$e(un))un=setInterval(exe,10);
		var a=member,c=0;
		for(var i in a){for(var j in a[i]){a[i][j].frame();c++;}}
		if(c==0){clearInterval(un);un=null;}
	}
	function push(o){member[o.p][o.n+'_'+o.i+'_'+o.p]=o;}
	function pop(o){delete member[o.p][o.n+'_'+o.i+'_'+o.p];}
	function gProp(o,s){
		var c=$h.obj,r='offset',b=s=='alpha',n=c.get(o,s);
		if(!isset(n)&&!b)n=c.get(o,r+ucFirst(s));
		return n;
	}		
	function vProp(s){
		for(var i in member) if(s==i) return true;
		return false;
	}
	function noEase(t,b,c,d,a,p){return c*Math.sqrt(1-(t=t/d-1)*t)+b;};
	function easeIn(t,b,c,d,a,p){return c*(t/=d)*t*t*t*t+b;};
	function easeOut(t,b,c,d,a,p){return (t==d)? b+c : c*(-Math.pow(2,-10*t/d)+1)+b;};
	function elastic(t,b,c,d,a,p){
		if(t==0) return b; if((t/=d)==1) return b+c; if(!p) p=d*.3;
		if(a<Math.abs(c)){a=c; var s=p/4;}
		else var s = p/(2*Math.PI)*Math.asin(c/a);
		return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;
	};
	function bounce(t,b,c,d,a,p){
		if((t/=d)<(1/2.75)){
			return c*(7.5625*t*t)+b;
		}else if(t<(2/2.75)){	
			return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;
		}else if(t<(2.5/2.75)){
			return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;
		}else{
			return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;
		}
	};
	return {
		$:function(){return this;},
		motion:function(){
			return {
				$:function(){return this;},
				onMotionFinished:null,
				onMotion:null,
				start:function(){set(arguments,this);},
				stop:function(){}
			}.$();
		}		
	}.$();
};
this.server=new function(){
	function abort(o){
		clear(o);
		try{o.ro.abort();}
		catch(e){call(o.onError,[203,null]);}
	};
	function clear(o){if($e(o.intr))clearTimeout(o.intr);};
	function getRO(){
		var r=null;
		try{r=new XMLHttpRequest();}catch(e){try{r=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{r=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}}}
		return r;
	};
	function exe(o){
		var g='POST',h='GET',z='Content-Type',b='responseXML',y='xml';
		if(!$e(o.type))o.type=g;
		if(!$e(o.url))call(o.onError,[205,null]);
		if(!$e(o.data)&&o.type==g)call(o.onError,[206,null]);
		if(!$e(o.ro))call(o.onError,[204,null]);
		if(!$e(o.timeout))o.timeout=20000;
		clear(o);
		o.intr=setTimeout(o.observe,o.timeout);
		o.ro.onreadystatechange=function(){
			clear(o);
			if(o.ro.readyState==4){
				if(o.ro.status==200){
					try{var s=o.ro.getResponseHeader(z).match(/^.[^;]+/)[0].match(y)!=null?y:'text';
						call(o.onLoad,[s==y?$e(o.ro[b][y])?o.ro[b][y]:o.ro[b]:o.ro.responseText]);
					}catch(e){call(o,o.onError,[207,null]);}
				}else{call(o.onError,[o.ro.status,o.ro.statusText]);}
			}
		};
		try{o.url+=(o.url.indexOf('?')!=-1?'&':'?')+'jmlConnectionID='+o.id;o.ro.open(o.type,o.url,true);
			if(o.type==h||o.type==g)o.setHeader(z,o.type==h?'text/'+y:'application/x-www-form-urlencoded');
			try{o.ro.send(o.type==h?null:"data="+encode(o.data));}
			catch(e){clear(o);call(o.onError,[209,null]);}
		}catch(e){clear(o);call(o.onError,[210,null]);}					
	};
	return {
		connection:function(){
			return{id:"ro_"+getUniqueId(),ro:getRO(),url:null,type:null,data:null,timeout:null,onLoad:null,onError:null,connect:function(){exe(this);},
			disconnect:function(){abort(this);},setHeader:function(p,v){try{this.ro.setRequestHeader(p,v);}catch(e){call(this.onError,[201,null]);}},
			observe:function(){call(this.onError,[202,null]);this.disconnect();}}
		}
	};
};
this.xml=new function(){
	function trim(a,p){
		var r=[];
		for(var i in a) r.push(a[i][p]);
		return r;
	}
	function reverse(o,e,p,q){
		var o=$g(o),q=q||false,e=q?e||{}:e||e==0?e:null,n=0,b=isNum(e),rp={s:'',n:''};
		if(!$e(o)) return null;
		while($e(o)){
			if(!q){
				if(b&&n==e) return o;
				if(!b&&o==e) return {isChild:true,path:rp};
				if(!b&&!$e(e)||b&&n>e) return null;
			}
			n+=q&&$e(o[p])?o[p]:1;
			rp.n=$h.xml.node.position(o)+(isEmpty(rp.n)?'':'.')+rp.n;
			rp.s=o.nodeName+(isEmpty(rp.s)?'':'.')+rp.s;
			o=q&&$e(o.offsetParent)?o.offsetParent:o.parentNode;
		}
		return n;
	}
	var log={};
	function parse(v,o,t,m,f,e,p,z){
		var v=v||v==0?v:null,o=o||$de,t=t||null,m=m||false,f=f||false,e=e||{c:0,a:[]},p=p||{s:'',n:''},c=0,z=z||'qry_'+getUniqueId();
		if(!isset(log[z]))log[z]=false;
		var g={
			length:function(){return true;},
			node:function(v,x){return x===v;},
			name:function(v,x){return lower(x.nodeName)==lower(v);},
			value:function(v,x){
				var l='>>+-',b=v.indexOf(l)!=-1;v=b?v.split(l)[0]:v,s=x.nodeValue;
				if(!isset(s)) return false;
				s=lower(String(s));
				return b?s.indexOf(v)!=-1:s==lower(v);
			},
			type:function(v,x,c){return x.nodeType==v;},
			pos:function(v,x,c){return c==v;},
			path:function(v,x,c,p){
				var a=[v,p.s,p.n],o={};
				for(var i=0;i<a.length;i++) o['a'+i]=String(a[i]).split('.');
				if(o.a0.length!=o.a1.length) return false;
				for(var i=0;i<o.a0.length;i++){
					var ax=isNaN(o.a0[i])?o.a1:o.a2;
					if(lower(o.a0[i])!=ax[i]) return false;
				}
				return true;
			},
			atrb:function(v,x,c){
				if(x.nodeType==1){
					var n=x.attributes.length-1;
					for(var i=0;i<=n;i++){
						var _x=x.attributes.item(i);
						if((isset(_x.specified)&&_x.specified)&&_x.nodeName==v) return true;
					}
				}
				return false;
			}
		}
		var n=o.childNodes.length;
		for(var i=0;i<n;i++){
			if(log[z]) break;
			var x=o.childNodes[i],r=x.nodeType==3;
			if(!r||(r&&/[^\s]/.test(x.nodeValue)===true)){
				var s=(isEmpty(p.n)?'':'.'),s1=s+c,s2=s+lower(x.nodeName);
				var l=isset(t)?g[t](v,x,c,{s:p.s+s2,n:p.n+s1}):false;
				if(l)e.a.push({x:r&&t!='type'?x.parentNode:x,i:c,p:{s:p.s+=s2,n:p.n+=s1}});
				if((f&&!l)||(m&&!f))parse(v,x,t,m,f,e,{s:p.s+s2,n:p.n+s1},z);
				if(f&&l)log[z]=true;
				c++;
				e.c++;
			}
		}
		return e;
	}
	return {
		$:function(){return this;},
		node:{
			query:function(){},
			create:function(s,o,t,b){
				var t=t||null,b=b||false,o=o||null,x=$d.createElement(s);
				this.add(x,o,t,b);
				return x;				
			},
			add:function(x,o,t,b){
				var t=$g(t),b=b||false,o=$g(o);
				$e(t)?o.insertBefore(x,b?t:this.byProximity(t,1)):o.appendChild(x);
				return x;
			},
			remove:function(s){
				var o=$g(s);
				if($e(o)){
					$e(o.removeNode)?o.removeNode(true):$e(o.parentNode)?o.parentNode.removeChild(o):null;
				}
			},
			replaceBy:function(o,x){
				if(!$e(o)||!$e(x)) return null;
				this.add(x,o.parentNode,o,true);
				this.remove(o);
				return x;
			},
			value:function(x){
				if(!$e(x)) return null;
				var f=this.byPosition(0,x);
				return ($e(f)?f:x).nodeValue;
			},
			clone:function(x,b){return $e(x)?x.cloneNode(b||true):null;},
			byNode:function(o,x){return isEmpty(a=trim(parse(o,x,'node',true,true).a,'x'))?null:a[0];},
			length:function(x){return parse(0,x,'length').a.length;},
			byAttribute:function(o,x){return isEmpty(a=trim(parse(o,x,'atrb',true).a,'x'))?null:a;},
			byExactValue:function(o,x){return isEmpty(a=trim(parse(o,x,'value',true).a,'x'))?null:a[0];},
			byPartialValue:function(o,x){return isEmpty(a=trim(parse(o+'>>+-',x,'value',true).a,'x'))?null:a;},
			byName:function(o,x,b){return isEmpty(a=trim(parse(o,x,'name',b||true).a,'x'))?null:a;},
			byType:function(o,x){return isEmpty(a=trim(parse(o,x,'type',true).a,'x'))?null:a;},
			path:function(o,x){return trim(parse(o,x,'node',true,true).a,'p');},
			byPath:function(o,x){return isEmpty(a=trim(parse(o,x,'path',true,true).a,'x'))?null:a[0];},
			position:function(x){return isEmpty(a=trim(parse(x,x.parentNode,'node').a,'i'))?null:a[0];},
			byPosition:function(o,x){return isEmpty(a=trim(parse(o,x,'pos',false).a,'x'))?null:a[0];},
			byProximity:function(x,n){return $e(x)?this.byPosition(this.position(x)+n,x.parentNode):null;},
			byAttributeValue:function(o,s,x,p){
				var a=trim(parse(o,x,'atrb',true).a,'x'),r=[],t=o=='class'?'className':o,b=$e(p),p=p||'[\\w][^/]+$';
				for(var i=0;i<a.length;i++){
					if($e(a[i][t])){
						var m=a[i][t].match(p);
						if($e(m)&&((!b&&m[0]==s)||(b)))r.push(a[i]);
					}
				}
				return r;
			},
			byPartialAttributeValue:function(o,s,x){return this.byAttributeValue(o,s,x,'[\\W]*'+s+'[\\W]*');},	
			parent:function(x,o){return reverse(x,o);},
			isChild:function(x,o){return reverse(x,o);},
			offset:function(x,s){return reverse(x,null,s,true);}	
		}
	}.$();
};
JSON=function(){
function f(n){return n<10?'0'+n:n;}
Date.prototype.toJSON=function(){return this.getUTCFullYear()+'-'+f(this.getUTCMonth()+1)+'-'+f(this.getUTCDate())+'T'+f(this.getUTCHours())+':'+f(this.getUTCMinutes())+':'+f(this.getUTCSeconds())+'Z';};
var m={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};
function stringify(value, whitelist) {
	var a,i,k,l,r=/["\\\x00-\x1f\x7f-\x9f]/g,v;
	switch (typeof value){
	case 'string':
		return r.test(value)?'"'+value.replace(r,function(a){var c=m[a];if(c)return c;c=a.charCodeAt();return '\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'"':'"'+value+'"';
	case 'number':
		return isFinite(value)?String(value):'null';
	case 'boolean':
	case 'null':
		return String(value);
	case 'object':
		if(!value) return 'null';
		if(isFunc(value.toJSON)) return stringify(value.toJSON());
		a=[];
		if (isNum(value.length)&&!(value.propertyIsEnumerable('length'))){
			l=value.length;
			for(i=0;i<l;i+=1)a.push(stringify(value[i],whitelist)||'null');
			return '['+a.join(',')+']';
		}
		if(whitelist){
			l=whitelist.length;
			for(i=0;i<l;i+=1){
				k=whitelist[i];
				if(isStr(k)){
					v=stringify(value[k],whitelist);
					if(v)a.push(stringify(k)+':'+v);
				}
			}
		}else{
			for(k in value){
				if(isStr(k)){
					v=stringify(value[k],whitelist);
					if(v) a.push(stringify(k)+':'+v);
				}
			}
		}
		return '{'+a.join(',')+'}';
	}
}
return {stringify:stringify,parse:function(text,filter){
		var j;
		function walk(k,v){
			var i,n;
			if(isObj(v)){
				for(i in v){
					if(Object.prototype.hasOwnProperty.apply(v,[i])){
						n=walk(i,v[i]);
						if($e(n)) v[i]=n;
					}
				}
			}
			return filter(k,v);
		}
		if(/^[\],:{}\s]*$/.test(text.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(:?[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){
			j=eval('('+text+')');
			return isFunc(filter)?walk('',j):j;
		}
		throw new SyntaxError('parseJSON');
	}
};
}();
};//
