(function(){ 
var aa=window,i=Number,ba=Object,ca=Infinity,j=Error,da=Boolean,o=undefined,ea=Function,p=Array,r=Math;	
	function fa(a,b)
	{
		return a.length=b;
	};
	function ga(a,b)
	{
		return a.width=b;
	};
	function s(a,b)
	{
		return a.currentTarget=b;
	};
	function ha(a,b)
	{
		return a.left=b;
	};
	
	function ia(a,b)
	{
		return a.target=b;
	};
		function ja(a,b)
	{
		return a.screenX=b;
	};
	function ka(a,b)
	{
		return a.screenY=b;
	};
	function la(a,b)
	{
		return a.keyCode=b;
	};
	function t(a,b)
	{
		return a.type=b;
	};
	function ma(a,b)
	{
		return a.display=b;
	};
	function na(a,b)
	{
		return a.height=b;
	};
	var oa="scrollTop",u="length",_P="prototype",v="width",pa="slice",
		qa="nodeType",ra="document",sa="hasOwnProperty",w="style",ta="capture",
		x="body",ua="left",y="target",va="screenX",wa="screenY",
		xa="keyCode",ya="scrollLeft",za="compatMode",z="type",
		Aa="defaultView",Ba="name",Ca="parentNode",
		A="height",Da="clientX",Ea="clientY",
		Fa="documentElement",
		Ga=Ga||{},
		B=this;
	
	var Ha=function(a,b)
	{
		var c=a.split("."),d=B,e;
		if(!(c[0]in d)&&d.execScript)
			d.execScript("var "+c[0]);
		while(c[u]&&(e=c.shift()))
			if(!c[u]&&C(b))
				d[e]=b;
			else 
				d=d[e]?d[e]:(d[e]={});
	};
	
	var Ia=function(a)
	{
		var b=a.split("."),c=B;
		for(var d; d=b.shift();)
			if(c[d])
				c=c[d];
			else 
				return null;
		return c;
	};
	
	var Ka=function(a)
	{
		var b=typeof a;
		if(b=="object")
			if(a)
			{
				if(typeof a[u]=="number"&&typeof a.splice!="undefined"&&!Ja(a,"length"))
					return"array";
				if(typeof a.call!="undefined")
					return"function";
			}
			else 
				return"null";
			else if(b=="function"&&typeof a.call=="undefined")
				return"object";
				
		return b;
	};
	
	if(ba[_P].propertyIsEnumerable)
	{
		var Ja=function(a,b)
		{
			return ba[_P].propertyIsEnumerable.call(a,b);
		}
	}
	else Ja=function(a,b)
	{
		if(b in a)
			for(var c in a)
				if(c==b&&ba[_P][sa].call(a,b))
					return true;
		return false;
	};
	
	var C=function(a)
	{
		return typeof a!="undefined";
	};
	
	var La=function(a)
	{
		return Ka(a)=="array";
	};
	var Ma=function(a)
	{
		var b=Ka(a);
		return b=="array"||b=="object"&&typeof a[u]=="number";
	};
	var D=function(a)
	{
		return typeof a=="string";
	};
	
	var Na=function(a)
	{
		return Ka(a)=="function";
	};
	
	var Oa=function(a)
	{
		var b=Ka(a);
		return b=="object"||b=="array"||b=="function";
	};
	
	var Ra=function(a)
	{
		if(a[sa]&&a.hasOwnProperty(Pa))
			return a[Pa];
		if(!a[Pa])
			a[Pa]=++Qa;
			
		return a[Pa];
	};
	
	var Pa="closure_hashCode_";
	var Qa=0;
	var Sa=function(a,b)
	{
		var c=a.Cb;
		if(arguments[u]>2)
		{
			var d=p[_P][pa].call(arguments,2);
			if(c)
				d.unshift.apply(d,c);
			c=d;
		}
		b=a.Eb||b;
		a=a.Db||a;
		var e,f=b||B;
		e=c?function()
		{
			var g=p[_P][pa].call(arguments);
			g.unshift.apply(g,c);
			return a.apply(f,g);
		}:function()
		{
			return a.apply(f,arguments)
		};
		e.Cb=c;
		e.Eb=b;
		e.Db=a;
		return e;
	};
	
	var Ta=function(a,b)
	{
		var c=b||{};
		for(var d in c)
		a=a.replace(new RegExp("\\{\\$"+d+"\\}","gi"),c[d]);
		return a;
	};
	var Ua=function(a,b)
	{
		Ha(a,b);
	};
	
	if(!ea[_P].apply)
		ea[_P].apply=function(a,b)
		{
			alert("Ua=function(a,b)");
			var c=[],d,e;
			if(!a)
				a=B;
			if(!b)
				b=[];
			for(var f=0;f<b[u];f++)
				c[f]="args["+f+"]";e="oScope.__applyTemp__.peek().("+c.join(",")+");";

				
			if(!a.__applyTemp__)
				a.__applyTemp__=[];
			a.__applyTemp__.push(this);
			d=eval(e);
			a.__applyTemp__.pop();
			return d;
		};
	
	ea[_P].ob=function(a)
	{
		E(this,a);
	};
	var E=function(a,b)
	{
		function c(){};
		c.prototype=b[_P];
		a.p=b[_P];
		a.prototype=new c;
		a[_P].constructor=a;
	};
	var F=function(){};
	F[_P].Ha=false;
	F[_P].m=function()
	{
		if(!this.Ha)
		{
			this.c();
			this.Ha=true;
		}
	};
	F[_P].c=function(){};
	var G=function(a,b)
	{
		t(this,a);
		ia(this,b);
		s(this,this[y]);
	};
	E(G,F);
	G[_P].c=function()
	{
		delete this[z];
		delete this[y];
		delete this.currentTarget;
	};
	G[_P].w=false;
	G[_P].N=true;
	G[_P].stopPropagation=function()
	{
		this.w=true;
	};
	
	G[_P].preventDefault=function()
	{
		this.N=false;
	};
	
	var H=function(a,b)
	{
		F.call(this); 
		this.rb=b;
		this.J=[];
		this.cb(a);
	};
	E(H,F);
	H[_P].ja=null;
	H[_P].ka=null;
	H[_P].U=function(a)
	{
		this.ja=a;
	};
	H[_P].Xa=function(a)
	{
		this.ka=a;
	};
	H[_P].s=function()
	{
		if(this.J[u])
			return this.J.pop();
		return this.Da();
	};
	
	H[_P].D=function(a)
	{
		if(this.J[u]<this.rb)
			this.J.push(a);
		else 
			this.Ga(a);
	};
	
	H[_P].cb=function(a)
	{
		if(a>this.rb)
			throw j("[goog.structs.SimplePool] Initial cannot be greater than max");
		for(var b=0;b<a;b++)
			this.J.push(this.Da());
	};
	
	H[_P].Da=function()
	{
		return this.ja?this.ja():{};
	
	};
	
	H[_P].Ga=function(a)
	{
		if(this.ka)
			this.ka(a);
		else 
			if(Na(a.m))
				a.m();
			else 
				for(var b in a)
					delete a[b];
	};
	H[_P].c=function()
	{
		H.p.c.call(this);
		var a=this.J;
		while(a[u])
			this.Ga(a.pop());
		this.J=null;
	};
	
	var Va=function(a)
	{
		return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,"");
	};
	
	var ab=function(a,b)
	{
		if(b)
			return a.replace(Wa,"&amp;").replace(Xa,"&lt;").replace(Ya,"&gt;").replace(Za,"&quot;");
		else
		{
			if(!$a.test(a))return a;
			if(a.indexOf("&")!=-1)a=a.replace(Wa,"&amp;");
			if(a.indexOf("<")!=-1)a=a.replace(Xa,"&lt;");
			if(a.indexOf(">")!=-1)a=a.replace(Ya,"&gt;");
			if(a.indexOf('"')!=-1)a=a.replace(Za,"&quot;");
			return a;
		}
	};
	
	var Wa=/&/g;
	var Xa=/</g;
	var Ya=/>/g;
	var Za=/\"/g,$a=/[&<>\"]/;
	
	var cb=function(a,b)
	{
		var c=0,d=Va(String(a)).split("."),e=Va(String(b)).split("."),f=r.max(d[u],e[u]);
		for(var g=0;c==0&&g<f;g++)
		{
			var h=d[g]||"",k=e[g]||"",l=new RegExp("(\\d*)(\\D*)","g"),m=new RegExp("(\\d*)(\\D*)","g");
			do
			{
				var n=l.exec(h)||["","",""],q=m.exec(k)||["","",""];
					if(n[0][u]==0&&q[0][u]==0)
						break;
				var K=n[1][u]==0?0:parseInt(n[1],10),kc=q[1][u]==0?0:parseInt(q[1],10);c=bb(K,kc)||bb(n[2][u]==0,q[2][u]==0)||bb(n[2],q[2])
			}while(c==0)
		}
		return c;
	};
	
	var bb=function(a,b)
	{
		if(a<b)
			return-1;
		else 
			if(a>b)
				return 1;
		return 0;
	};
	
	var db,I,eb,fb,J,gb,hb,ib,jb,kb,lb,mb;
	nb=function()
	{
		var a=false,b=false,c=false,d=false,e=false,f=false,g=false,h=false,k=false,l="";
		if(B.navigator)
		{
			var m=B.navigator,n=m.userAgent;
			a=n.indexOf("Opera")==0;
			b=!a&&n.indexOf("MSIE")!=-1;
			c=!a&&n.indexOf("WebKit")!=-1;
			k=c&&n.indexOf("Mobile")!=-1;
			d=!a&&!c&&m.product=="Gecko";
			e=d&&m.vendor=="Camino";
			var q,K;
			if(a)
				q=B.opera.version();
			else
			{
				if(d)
					K=/rv\:([^\);]+)(\)|;)/;
				else 
					if(b)
						K=/MSIE\s+([^\);]+)(\)|;)/;
					else 
						if(c)
							K=/WebKit\/(\S+)/;
				if(K)
				{
					K.test(n);
					q=RegExp.$1;
				}
	
			}
			l=m.platform||"";
			f=l.indexOf("Mac")!=-1;
			g=l.indexOf("Win")!=-1;
			h=l.indexOf("Linux")!=-1;
		}
		db=a;
		I=b;
		eb=d;
		fb=e;
		J=c;
		gb=J;
		hb=q;
		ib=l;
		jb=f;
		kb=g;
		lb=h;
		mb=k;
	};
	
	nb();
	
	var ob=function(a)
	{
		return cb(hb,a)>=0;
	};
	
	var pb=function(a,b,c)
	{
		if(a.indexOf)return a.indexOf(b,c);
		if(p.indexOf)return p.indexOf(a,b,c);
		var d=c==null?0:(c<0?r.max(0,a[u]+c):c);
		for(var e=d;e<a[u];e++)
			if(e in a&&a[e]===b)
				return e;
		return-1;
	};
	
	var qb=function(a,b,c)
	{
		if(a.forEach)
			a.forEach(b,c);
		else 
			if(p.forEach)
				p.forEach(a,b,c);
		else
		{
			var d=a[u],e=D(a)?a.split(""):a;
			for(var f=0;f<d;f++)
				if(f in e)
					b.call(c,e[f],f,a);
		}
	};
	
	var rb=function(a,b)
	{
		if(a.contains)
			return a.contains(b);
		return pb(a,b)>-1;
	};
	var sb=function(a,b)
	{
		var c=pb(a,b),d;
		if(d=c!=-1)
			p[_P].splice.call(a,c,1)[u]==1;
		return d;
	};
	
	var tb=function(a)
	{
		if(La(a))
			return a.concat();
		else
		{
			var b=[];
			for(var c=0,d=a[u];c<d;c++)
				b[c]=a[c];
				return b;
		}
	
	};
	var ub=function(a,b,c)
	{
		return arguments[u]<=2?p[_P][pa].call(a,b):p[_P][pa].call(a,b,c);
	};
	var vb=function(a,b,c)
	{
		for(var d in a)
			b.call(c,a[d],d,a);
	};
	var wb=function(a)
	{
		var b=[],c=0;
		for(var d in a)
			b[c++]=a[d];
		return b;
	};
	var xb=function(a)
	{
		var b=[],c=0;
		for(var d in a)
			b[c++]=d;
		return b;
	};
	var yb=function(a,b)
	{
		var c;
		if(c=b in a)
			delete a[b];
		return c;
	};
	var zb=function(a,b,c)
	{
		if(b in a)
			return a[b];
		return c;
	};
	var Ab=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"];
	var Bb=function(a)
	{
		var b,c;
		for(var d=1;d<arguments[u];d++)
		{
			c=arguments[d];
			for(b in c)
				a[b]=c[b];
			for(var e=0;e<Ab[u];e++)
			{
				b=Ab[e];
				if(ba[_P][sa].call(c,b))
					a[b]=c[b];
			}
	
		}
	
	};
	
	var L=function(a,b)
	{
		if(a)
			this.S(a,b);
	};
	
	E(L,G);
	t(L[_P],null);
	ia(L[_P],null);
	s(L[_P],null);
	L[_P].relatedTarget=null;
	L[_P].offsetX=0;
	L[_P].offsetY=0;
	L[_P].clientX=0;
	L[_P].clientY=0;
	ja(L[_P],0);
	ka(L[_P],0);
	L[_P].button=0;
	la(L[_P],0);
	L[_P].charCode=0;
	L[_P].ctrlKey=false;
	L[_P].altKey=false;
	L[_P].shiftKey=false;
	L[_P].metaKey=false;
	L[_P].n=null;
	
	L[_P].S=function(a,b)
	{
		t(this,a[z]);
		ia(this,a[y]||a.srcElement);
		s(this,b);
		this.relatedTarget=a.relatedTarget?a.relatedTarget:(this[z]=="mouseover"?a.fromElement:(this[z]=="mouseout"?a.toElement:null));
		this.offsetX=typeof a.layerX=="number"?a.layerX:a.offsetX;
		this.offsetY=typeof a.layerY=="number"?a.layerY:a.offsetY;
		this.clientX=typeof a[Da]=="number"?a[Da]:a.pageX;
		this.clientY=typeof a[Ea]=="number"?a[Ea]:a.pageY;
		ja(this,a[va]||0);
		ka(this,a[wa]||0);
		this.button=a.button;
		la(this,a[xa]||0);
		this.charCode=a.charCode||(this[z]=="keypress"?a[xa]:0);
		this.ctrlKey=a.ctrlKey;
		this.altKey=a.altKey;
		this.shiftKey=a.shiftKey;
		this.metaKey=a.metaKey;
		this.n=a;
		this.N=null;
		this.w=null;
	};
	
	L[_P].stopPropagation=function()
	{
		this.w=true;
		if(this.n.stopPropagation)
			this.n.stopPropagation();
		else 
			this.n.cancelBubble=true;
	};
	
	L[_P].preventDefault=function()
	{
		this.N=false;
		if(!this.n.preventDefault)
		{
			this.n.returnValue=false;
			try
			{
				la(this.n,-1);
			}
			catch(a)
			{
		
			}
	
		}
		else 
			this.n.preventDefault();
	};
	
	L[_P].ib=function()
	{
		return this.n;
	};
	
	L[_P].c=function()
	{
		L.p.c.call(this);
		this.n=null;
	};

	var M=function(){};
	
	var Cb=0;
	M[_P].ra=null;
	M[_P].B=null;
	M[_P].Va=null;
	M[_P].src=null;
	t(M[_P],null);
	M[_P].capture=null;
	M[_P].Q=null;
	M[_P].k=0;
	M[_P].M=false;
	M[_P].Aa=false;
	M[_P].S=function(a,b,c,d,e,f)
	{
		if(Na(a))
			this.ra=true;
		else if(a&&a.o&&Na(a.o))
				this.ra=false;
		else 
			throw j("Invalid listener argument");
		this.B=a;
		this.Va=b;
		this.src=c;
		t(this,d);
		this.capture=!!e;
		this.Q=f;
		this.Aa=false;
		this.k=++Cb;
		this.M=false;
	};
	
	M[_P].o=function(a)
	{
		if(this.ra)
			return this.B.call(this.Q||this.src,a);
		return this.B.o.call(this.B,a);
	};
	var Db={},N={},O={},Eb=new H(0,600);
	
	Eb.U(function(){return{i:0}});
	
	Eb.Xa(function(a){a.i=0});
	
	var Fb=new H(0,600);
	
	Fb.U(function(){return[]});
	Fb.Xa(function(a){fa(a,0);delete a.fa;delete a.Oa});
var Gb=new H(0,600);

Gb.U(
function()
{
	var a=function(b){return Hb.call(a.src,a.k,b)};return a;});
	
	var Ib=function()
	{
		return new M;
	}
	var Jb=new H(0,600);
	
	Jb.U(Ib);
	var Kb=function()
	{
		return new L;
	}
	var Lb=function()
	{
		var a=null;
		if(I)
		{
			a=new H(0,600);
			a.U(Kb);
		}
		return a;
	};

	var Ib=function(){return new M};
	var Jb=new H(0,600);
	Jb.U(Ib);
	var Kb=function(){return new L};
	var Lb=function(){var a=null;if(I){a=new H(0,600);a.U(Kb)}return a};

	
	var Mb=Lb(),Nb="on",Ob={};
	
	//Event Handler
	var P=function(a,b,c,d,e)
	{

		if(!b)
			throw j("Invalid event type");
		else 
			if(La(b))
			{
				//alert("La(B)");
				for(var f=0;f<b[u];f++)
					P(a,b[f],c,d,e);
				return null;
			}
		var g=!!d,h=N;
		if(!(b in h))
			//alert("!(b in h)"); 
			h[b]=Eb.s();
		h=h[b];
		if(!(g in h))
		{
			//alert("!(g in h)"); 
			h[g]=Eb.s();
			h.i++;
		}
		h=h[g];
		var k=Ra(a),l,m;
		if(!h[k])
		{
			//alert("!h[k]"); 		
			l=h[k]=Fb.s(); //IMPORTANT
			h.i++;
		}
		else
		{
			//alert("h[k]"); 		

			l=h[k];
			for(var f=0;f<l[u];f++)
			{
				m=l[f];
				if(m.B==c&&m.Q==e)
				{
					if(m.M)
						break;
					return l[f].k;
				}
			}
		}
		var n=Gb.s();
		n.src=a;
		m=Jb.s();
		m.S(c,n,a,b,g,e);
		var q=m.k;
		n.k=q;
		l.push(m);
		Db[q]=m;
		if(!O[k])
			O[k]=Fb.s();
		O[k].push(m);
		if(a.addEventListener)
		{
			if(a==B||!a.Ea)
				a.addEventListener(b,n,g);
		}
		else 
			a.attachEvent(Pb(b),n);
		
		//alert(b);
		//alert(n);
		//alert(g);
		
		return q;
	};
	Qb=function(a,b,c,d,e)
	{
		if(La(b))
		{
			for(var f=0;f<b[u];f++)
				Qb(a,b[f],c,d,e);
			return null;
		}
		var g=!!d,h=Rb(a,b,g);
		if(!h)
			return false;
		for(var f=0;f<h[u];f++)
			if(h[f].B==c&&h[f][ta]==g&&h[f].Q==e)
				return Q(h[f].k);
		return false;
	};
	var Q=function(a)
	{
		if(!Db[a])
			return false;
		var b=Db[a];
		if(b.M)
			return false;
		var c=b.src,d=b[z],e=b.Va,f=b[ta];
		if(c.removeEventListener)
		{
			if(c==B||!c.Ea)
				c.removeEventListener(d,e,f);
		}
		else 
			if(c.detachEvent)
				c.detachEvent(Pb(d),e);
		var g=Ra(c),h=N[d][f][g];
		if(O[g])
		{
			var k=O[g];
			sb(k,b);
			if(k[u]==0)
				delete O[g];
		}
		b.M=true;
		h.Oa=true;
		Sb(d,f,g,h);
		delete Db[a];
		return true;
	};
	var Sb=function(a,b,c,d)
	{
		if(!d.fa)
			if(d.Oa)
			{
				for(var e=0,f=0;e<d[u];e++)
				{
					if(d[e].M)
					{
						Jb.D(d[e]);
						continue;
					}
					if(e!=f)
						d[f]=d[e];
					f++;
				}
				fa(d,f);
				d.Oa=false;
				if(f==0)
				{
					Fb.D(d);
					delete N[a][b][c];
					N[a][b].i--;
					if(N[a][b].i==0)
					{
						Eb.D(N[a][b]);
						delete N[a][b];
						N[a].i--;
					}
					if(N[a].i==0)
					{
						Eb.D(N[a]);
						delete N[a];
					}
				}
	
			}
	
	};

	var Tb=function(a,b,c)
	{
		var d=0,e=a==null,f=b==null,g=c==null;
		c=!!c;
		if(!e)
		{
			var h=Ra(a);
			if(O[h])
			{
				var k=O[h];
				for(var l=k[u]-1;l>=0;l--)
				{
					var m=k[l];
					if((f||b==m[z])&&(g||c==m[ta]))
					{
						Q(m.k);
						d++;
					}
				
				}
	
			}
	
		}
		else 
			vb(O,function(n)
				{
					for(var q=n[u]-1;q>=0;q--)
					{
						var K=n[q];
						if((f||b==K[z])&&(g||c==K[ta]))
						{
							Q(K.k);
							d++;
						}
					}
				});
		return d;
	};
	
	var Rb=function(a,b,c)
	{
		var d=N;
		if(b in d)
		{
			d=d[b];
			if(c in d)
			{
				d=d[c];
				var e=Ra(a);
				if(d[e])
					return d[e];
			}
		}
		return null
	};
	
	var Ub=function(a,b,c,d,e)
	{
		var f=!!d,g=Rb(a,b,f);
		if(g)
			for(var h=0;h<g[u];h++)
				if(g[h].B==c&&g[h][ta]==f&&g[h].Q==e)
					return g[h];
		return null;
	};
	
	var Pb=function(a)
	{
		if(a in Ob)
			return Ob[a];
		return 
			Ob[a]=Nb+a;
	};
	
	var Wb=function(a,b,c,d)
	{
		var e=1,f=N;
		if(b in f)
		{
			f=f[b];
			if(c in f)
			{
				f=f[c];
				var g=Ra(a);
				if(f[g])
				{
					var h=f[g];
					if(!h.fa)
						h.fa=1;
					else 
						h.fa++;
					try
					{
						var k=h[u];
						for(var l=0;l<k;l++){var m=h[l];if(m&&!m.M)e&=Vb(m,d)!==false};
					}
					finally
					{
						h.fa--;
						Sb(b,c,g,h);
					}
				}
			}
	
		}
		return da(e);
	};
	
	var Vb=function(a,b)
	{
		var c=a.o(b);
		if(a.Aa)
			Q(a.k);
		return c;
	};

	var Xb=function(a,b)
	{
		if(D(b))
			b=new G(b,a);
		else if(!(b instanceof G))
		{
			var c=b;
			b=new G(b[z],a);
			Bb(b,c);
		}
		else 
			ia(b,b[y]||a);
			
		var d=1,e,f=b[z],g=N;
		if(!(f in g))
			return true;
		g=g[f];
		var h=true in g,k=false in g;
		if(h)
		{
			e=[];
			for(var l=a;l;l=l.da())
				e.push(l);
			for(var m=e[u]-1;!b.w&&m>=0;m--)
			{
				s(b,e[m]);
				d&=Wb(e[m],b[z],true,b)&&b.N!=false;
			}
	
		}
		if(k)
			if(h)
				for(var m=0;!b.w&&m<e[u];m++)
				{
					s(b,e[m]);
					d&=Wb(e[m],b[z],false,b)&&b.N!=false;
				}
			else 
				for(var n=a;!b.w&&n;n=n.da())
				{
					s(b,n);
					d&=Wb(n,b[z],false,b)&&b.N!=false;
				}
		return da(d)
	};
	
	var Hb=function(a,b)
	{
		if(!Db[a])
			return true;
		var c=Db[a],d=c[z],e=N;
		if(!(d in e))
			return true;
		e=e[d];
		var f;
		if(I)
		{
			var g=b||Ia("window.event"),h=true in e;
			if(h)
			{
				if(g[xa]<0||g.returnValue!=o)
					return true;
				Yb(g)
			}
			Ra(c.src);
			var k=Mb.s();
			k.S(g,this);
			f=true;
			try
			{
				if(h)
				{
					var l=Fb.s();
					for(var m=k.currentTarget;m;m=m[Ca])
						l.push(m);
					for(var n=l[u]-1;!k.w&&n>=0;n--)
					{
						s(k,l[n]);
						f&=Wb(l[n],d,true,k);
					}
					for(var n=0;!k.w&&n<l[u];n++)
					{
						s(k,l[n]);
						f&=Wb(l[n],d,false,k);
					}
	
				}
				else 
					f=Vb(c,k);
			}
			finally
			{
				if(l)
				{
					fa(l,0);
					Fb.D(l);
				}
				k.m();
				Mb.D(k);
			}
			return f;
		}
	
		var q=new L(b,this);
		try
		{
			f=Vb(c,q);
		}
		finally
		{
			q.m();
		}
		return f;
	};
	
	var Yb=function(a)
	{
		var b=false;
		if(a[xa]==0)
			try
			{
				la(a,-1);
				return;
			}
			catch(c)
			{
			b=true;
			}
		if(b||a.returnValue==o)
			a.returnValue=true
	};
	
	var R=function(){};
	
	E(R,F);
	R[_P].Ea=true;
	R[_P].Ua=null;
	
	R[_P].da=function()
	{
		return this.Ua
	};
	
	R[_P].addEventListener=function(a,b,c,d)
	{
		P(this,a,b,c,d)
	};
	
	R[_P].removeEventListener=function(a,b,c,d)
	{
		Qb(this,a,b,c,d)
	};
	
	R[_P].dispatchEvent=function(a)
	{
		return Xb(this,a)
	};
	
	R[_P].c=function()
	{
		R.p.c.call(this);
		Tb(this);
		this.Ua=null;
	};
	
	if("StopIteration"in B)
		var Zb=B.StopIteration;
	else 
		Zb=j("StopIteration");
		
	var $b=function(){};
	
	$b[_P].next=function()
	{
		throw Zb;
	};
	
	$b[_P].__iterator__=function()
	{
		return this;
	};
	
	var ac=function(a)
	{
		if(typeof a.ea=="function")
			return a.ea();
		if(D(a))
			return a.split("");
		if(Ma(a))
		{
			var b=[],c=a[u];
			for(var d=0;d<c;d++)
				b.push(a[d]);
			return b;
		}
		return wb(a);
	};
	
	var bc=function(a)
	{
		if(typeof a.pa=="function")
			return a.pa();
		if(typeof a.ea=="function")
			return o;
		if(Ma(a)||D(a))
		{
			var b=[],c=a[u];
			for(var d=0;d<c;d++)
				b.push(d);
			return b;
		}
		return xb(a)
	};
	
	var cc=function(a,b,c)
	{
		if(typeof a.forEach=="function")
			a.forEach(b,c);
		else if(Ma(a)||D(a))
			qb(a,b,c);
		else
		{
			var d=bc(a),e=ac(a),f=e[u];
			for(var g=0;g<f;g++)
				b.call(c,e[g],d&&d[g],a);
		}
	
	};
	
	var S=function(a)
	{
		this.t={};
		this.b=[];
		if(a)
			this.$a(a);
	};
	
	S[_P].i=0;
	S[_P].V=0;
	
	S[_P].ea=function()
	{
		this.Y();
		var a=[];
		for(var b=0;b<this.b[u];b++)
		{
			var c=this.b[b];
			a.push(this.t[c]);
		}
		return a;
	};
	
	S[_P].pa=function()
	{
		this.Y();
		return this.b.concat();
	};
	
	S[_P].clear=function()
	{
		this.t={};
		fa(this.b,0);
		this.i=0;
		this.V=0;
	};
	
	S[_P].remove=function(a)
	{
		if(dc(this.t,a))
		{
			delete this.t[a];
			this.i--;
			this.V++;
			if(this.b[u]>2*this.i)this.Y();
			return true;
		}
		return false;
	};
	
	S[_P].Y=function()
	{
		if(this.i!=this.b[u])
		{
			var a=0,b=0;
			while(a<this.b[u])
			{
				var c=this.b[a];
				if(dc(this.t,c))
					this.b[b++]=c;
				a++;
			}
			fa(this.b,b);
		}
		if(this.i!=this.b[u])
		{
			var d={},a=0,b=0;
			while(a<this.b[u])
			{
				var c=this.b[a];
				if(!dc(d,c))
				{
					this.b[b++]=c;
					d[c]=1;
				}
				a++;
			}
			fa(this.b,b);
		}
	
	};
	
	S[_P].ba=function(a,b)
	{
		if(dc(this.t,a))
			return this.t[a];
		return b;
	};
	
	S[_P].F=function(a,b)
	{
		if(!dc(this.t,a))
		{
			this.i++;
			this.b.push(a);
			this.V++
		}
		this.t[a]=b;
	};
	
	S[_P].$a=function(a)
	{
		var b,c;
		if(a instanceof S)
		{
			b=a.pa();
			c=a.ea();
		}
		else
		{
			b=xb(a);
			c=wb(a);
		}
		for(var d=0;d<b[u];d++)
			this.F(b[d],c[d]);
	};
	
	S[_P].__iterator__=function(a)
	{
		this.Y();
	
		var b=0,c=this.b,d=this.t,e=this.V,f=this,g=new $b;
		g.next=function()
		{
			while(true)
			{
				if(e!=f.V)
					throw j("The map has changed since the iterator was created");
				if(b>=c[u])
					throw Zb;
				var h=c[b++];
				return a?h:d[h];
			}
		};
		return g;
	};
	
	if(ba[_P][sa])
		var dc=function(a,b){return ba[_P][sa].call(a,b)};
	else 
		dc=function(a,b){return b in a&&a[b]!==ba[_P][b]};
		
	var ec=B.window;
	var fc=function(a,b,c)
	{
		if(Na(a))
		{
			if(c)
				a=Sa(a,c);
		}
		else if(a&&typeof a.o=="function")
			a=Sa(a.o,a);
		else 
			throw j("Invalid listener argument");
		return ec.setTimeout(a,b||0);
	};
	
	var gc=function(a,b)
	{
		this.x=C(a)?i(a):o;
		this.y=C(b)?i(b):o;
	};
	
	gc[_P].toString=function()
	{
		return"("+this.x+", "+this.y+")";
	};
	
	var T=function(a,b)
	{
		ga(this,C(a)?i(a):o);
		na(this,C(b)?i(b):o);
	};
	
	T[_P].toString=function()
	{
		return"("+this[v]+" x "+this[A]+")";
	};
	T[_P].ceil=function()
	{
		ga(this,r.ceil(this[v]));
		na(this,r.ceil(this[A]));
		return this;
	};
	
	T[_P].floor=function()
	{
		ga(this,r.floor(this[v]));
		na(this,r.floor(this[A]));
		return this;
	};
	
	T[_P].round=function()
	{
		ga(this,r.round(this[v]));
		na(this,r.round(this[A]));
		return this;
	};
	
	T[_P].scale=function(a)
	{
		this.width*=a;
		this.height*=a;
		return this;
	};
	
	var hc;
	var ic=function()
	{
		if(!hc)
			hc=new U;
		return hc;
	};
	
	var lc=function(a)
	{
		return a?new U(jc(a)):ic();
	};
	
	var mc=function(a,b,c)
	{
		return ic().kb(a,b,c);
	};
	
	var oc=function(a,b)
	{
		vb(b,function(c,d)
			{
				if(d=="style")
					a[w].cssText=c;
				else if(d=="class")
					a.className=c;
				else if(d=="for")
					a.htmlFor=c;
				else if(d in nc)
					a.setAttribute(nc[d],c);
				else 
					a[d]=c;
			}
		);
	};
	
	var nc=
	{
	cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",height:"height",width:"width",usemap:"useMap",frameborder:"frameBorder"
	};
	
	var pc=function(a)
	{
		var b=a||B||aa,c=b[ra];
		if(J&&!ob("500")&&!mb)
		{
			if(typeof b.innerHeight=="undefined")
				b=aa;
			var d=b.innerHeight,e=b[ra][Fa].scrollHeight;
			if(b==b.top)
				if(e<d)
					d-=15;
			return new T(b.innerWidth,d);
		}
		var f=lc(c),g=f.jb()=="CSS1Compat"&&(!db||db&&ob("9.50"))?c[Fa]:c[x];
		return new T(g.clientWidth,g.clientHeight);
	};

/*var qc=function(a){var b=a||B||aa,c=b[ra],d,e;if(!J&&c[za]=="CSS1Compat"){d=c[Fa][ya];e=c[Fa][oa]}else{d=c[x][ya];e=c[x][oa]}return new gc(d,e)},*/
	var qc=function(a)
	{
		var b=a||B||aa,c=b[ra],d,e;
		if(!J&&c[za]=="CSS1Compat")
		{
			d=c[Fa][ya];
			e=c[Fa][oa];
		}
		else
		{
			d=c[x][ya];
			e=c[x][oa];
		}
		return new gc(d,e);
	};

	var rc=function(a)
	{
		return lc(a).mb();
	};
	
	var sc=function(a,b)
	{
		a.appendChild(b);
	};
	
	var tc=function(a)
	{
		return a&&a[Ca]?a[Ca].removeChild(a):null;
	};
	
	var uc=J&&cb(hb,"521")<=0;
	var vc=function(a,b)
	{
		if(typeof a.contains!="undefined"&&!uc&&b[qa]==1)
			return a==b||a.contains(b);
		if(typeof a.compareDocumentPosition!="undefined")
			return a==b||da(a.compareDocumentPosition(b)&16);
		while(b&&a!=b)
			b=b[Ca];
		return b==a;
	};

	var jc=function(a)
	{
		return a[qa]==9?a:a.ownerDocument||a[ra];
	};
	
	var wc=function(a)
	{
		if(a&&typeof a[u]=="number")
			if(Oa(a))
				return typeof a.item=="function"||typeof a.item=="string";
			else if(Na(a))
				return typeof a.item=="function";
		return false;
	};

	var U=function(a)
	{
		this.h=a||B[ra]||document;
	};
	
	U[_P].v=function()
	{
		return this.h;
	};
	
	U[_P].oa=function(a)
	{
		return D(a)?this.h.getElementById(a):a;
	};
	U[_P].kb=function(a,b,c)
	{
		var d=a||"*",e=c||this.h,f=e.getElementsByTagName(d);
		if(b)
		{
			var g=[];
			for(var h=0,k;k=f[h];h++)
			{
				var l=k.className;
				if(typeof l.split=="function"&&rb(l.split(" "),b))
					g.push(k);
			}
			return g;
		}
		else return f;
	};
	
	U[_P].g=function(a,b)
	{
		if(I&&b&&b[Ba])a="<"+a+' name="'+ab(b[Ba])+'">';
		var c=this.createElement(a);
		if(b)oc(c,b);
		if(arguments[u]>2)
		{
			function d(g)
			{
				if(g)
					this.appendChild(c,D(g)?this.createTextNode(g):g);
			}
			for(var e=2;e<arguments[u];e++)
			{
				var f=arguments[e];
				if(Ma(f)&&!(Oa(f)&&f[qa]>0))
					qb(wc(f)?tb(f):f,d,this);
				else 
					d.call(this,f);
			}
	
		}
		return c
	};
	
	U[_P].createElement=function(a)
	{
		return this.h.createElement(a)
	};
	
	U[_P].createTextNode=function(a)
	{
		return this.h.createTextNode(a)
	};
	
	U[_P].jb=function()
	{
		if(this.h[za])
			return this.h[za];
		if(J)
		{
			var a=this.g("div",{style:"position:absolute;width:0;height:0;width:1"})
			var b=a[w][v]=="1px"?"BackCompat":"CSS1Compat";
	
		return this.h.compatMode=b
		}
		return"BackCompat"
	};
	
	U[_P].mb=function()
	{
		var a=this.h;
		if(a.parentWindow)
			return a.parentWindow;
		if(J&&!ob("500")&&!mb)
		{
			var b=a.createElement("script");
			b.innerHTML="document.parentWindow=window";
			var c=a[Fa];
			c.appendChild(b);
			c.removeChild(b);
			return a.parentWindow;
		}
		return a[Aa]
	};
	
	U[_P].appendChild=sc;
	U[_P].removeNode=tc;
	U[_P].contains=vc;
	;
	var xc=function(a,b,c,d)
	{
		ha(this,C(a)?i(a):o);
		this.top=C(b)?i(b):o;
		ga(this,C(c)?i(c):o);
		na(this,C(d)?i(d):o);
	};
	
	xc[_P].toString=function()
	{
		return"("+this[ua]+", "+this.top+" - "+this[v]+"w x "+this[A]+"h)";
	};
	var yc;
	var zc=function(a,b)
	{
		var c=jc(a);
		if(c[Aa]&&c[Aa].getComputedStyle)
		{
			var d=c[Aa].getComputedStyle(a,"");
			if(d)
				return d[b];
		}
		return null;
	};
	
	var Ac=function(a,b)
	{
		return zc(a,b)||(a.currentStyle?a.currentStyle[b]:null)||a[w][b];
	};
	
	var Bc=function(a,b,c)
	{
		var d,e;
		if(b instanceof gc)
		{
			d=b.x;
			e=b.y;
		}
		else
		{
			d=b;
			e=c;
		}
		ha(a[w],typeof d=="number"?r.round(d)+"px":d);
		a[w].top=typeof e=="number"?r.round(e)+"px":e;
	};
	
	var Cc=function(a)
	{
		var b;
		b=a?(a[qa]==9?a:jc(a)):ic().v();
		if(I&&b[za]!="CSS1Compat")
			return b[x];
		return b[Fa];
	};
	
	var Dc=function(a)
	{
	var b=jc(a),c=eb&&b.getBoxObjectFor&&Ac(a,"position")=="absolute"&&(a[w].top==""||a[w][ua]=="");
		if(typeof yc=="undefined")
			yc=fb&&!ob("1.8.0.11");
		var d=new gc(0,0),e=Cc(b);
		if(a==e)
			return d;
		var f=null,g;
		if(a.getBoundingClientRect)
		{
			g=a.getBoundingClientRect();
			var h=qc(rc(b));
			d.x=g[ua]+h.x;
			d.y=g.top+h.y;
		}
		else if(b.getBoxObjectFor&&!c&&!yc)
		{
			g=b.getBoxObjectFor(a);
			var k=b.getBoxObjectFor(e);
			d.x=g[va]-k[va];
			d.y=g[wa]-k[wa];
		}
		else
		{
			f=a;
			do
			{
				d.x+=f.offsetLeft;
				d.y+=f.offsetTop;
				if(J&&Ac(f,"position")=="fixed")
				{
					d.x+=b[x][ya];
					d.y+=b[x][oa];
					break;
				}
			f=f.offsetParent;
			}while(f&&f!=a);
			
			if(db||J&&Ac(a,"position")=="absolute")
				d.y-=b[x].offsetTop;
			f=a.offsetParent;
			while(f&&f!=b[x])
			{
				d.x-=f[ya];
				if(!db||f.tagName!="TR")
					d.y-=f[oa];
				f=f.offsetParent;
			}
	
		}
		return d;
	};
	
	var Ec=function(a,b,c)
	{
		var d;
		if(b instanceof T)
		{
			d=b[A];
			b=b[v];
		}
		else
		{
			if(c==o)
				throw j("missing height argument");
			d=c;
		}
		ga(a[w],typeof b=="number"?r.round(b)+"px":b);
		na(a[w],typeof d=="number"?r.round(d)+"px":d);
	};

	var Fc=function(a)
	{
		if(Ac(a,"display")!="none")
			return new T(a.offsetWidth,a.offsetHeight);
		var b=a[w],c=b.display,d=b.visibility,e=b.position;
		b.visibility="hidden";
		b.position="absolute";
		ma(b,"");
		var f=a.offsetWidth,g=a.offsetHeight;
		ma(b,c);
		b.position=e;
		b.visibility=d;
		return new T(f,g);
	};
	
	var Gc=function(a,b)
	{
		var c=a[w];
		if("opacity"in c)
			c.opacity=b;
		else if("MozOpacity"in c)
			c.MozOpacity=b;
		else if("filter"in c)
			c.filter="alpha(opacity="+b*100+")";
	};
	
	var V=function(a,b)
	{
		ma(a[w],b?"":"none");
	};
	
	var Hc=eb&&!ob("1.9a")
	var Ic=function(a,b)
	{
		if(eb)
		{
			a.setAttribute("role",b);
			a.roleName=b;
		}
	
	};
	
	var Jc=function(a,b,c)
	{
		if(eb)
			if(Hc)
				a.setAttributeNS("http://www.w3.org/2005/07/aaa",b,c);
			else 
				a.setAttribute("aria-"+b,c);
	};
	
	var Kc=function(a)
	{
		var b=a.className;
		return b&&typeof b.split=="function"?b.split(" "):[];
	};

	var Lc=function(a)
	{
		var b=Kc(a),c=ub(arguments,1),d=1;
		for(var e=0;e<c[u];e++)
			if(!rb(b,c[e]))
			{
				b.push(c[e]);
				d&=1;
			}
		else d&=0;
		a.className=b.join(" ");
		return da(d)
	};
	
	
	var W=function(a)
	{
		this.nb=a;
	};
	
	E(W,F);
	var Mc=new H(0,100);
	
	
	W[_P].L=function(a,b,c,d,e)
	{
		if(La(b))
		{
			for(var f=0;f<b[u];f++)
				this.L(a,b[f],c,d,e);
			return;
		}
		var g=P(a,b,c||this,d||false,e||this.nb||this);
		if(this.b)
			this.b[g]=true;
		else if(this.A)
		{
			this.b=Mc.s();
			this.b[this.A]=true;
			this.A=null;
			this.b[g]=true;
		}
		else 
			this.A=g;
	};
	
	W[_P].O=function(a,b,c,d,e)
	{
		if(!this.A&&!this.b)
			return;
		if(La(b))
		{
			for(var f=0;f<b[u];f++)
				this.O(a,b[f],c,d,e);
			return;
		}
		var g=Ub(a,b,c||this,d||false,e||this.nb||this);
		if(g)
		{
			var h=g.k;
			Q(h);
			if(this.b)
				yb(this.b,h);
			else 
				if(this.A==h)
					this.A=null;
		}
	};
	
	W[_P].tb=function()
	{
		if(this.b)
		{
			for(var a in this.b)
			{
				Q(a);
				delete this.b[a];
			}
			Mc.D(this.b);
			this.b=null;
		}
		else 
			if(this.A)
				Q(this.A);
	};
	
	W[_P].c=function()
	{
		W.p.c.call(this);
		this.tb();
	};
	
	W[_P].o=function()
	{
		throw j("EventHandler.handleEvent not implemented");
	};
	
	var Nc=function(a)
	{
		R.call(this);
		this.a=a;
		var b=I?"focusin":"focus",c=I?"focusout":"blur";
		this.Fb=P(this.a,b,this,!I);
		this.Gb=P(this.a,c,this,!I);
	};
	
	E(Nc,R);
	Nc[_P].o=function(a)
	{
		var b=a.ib(),c=new L(b);
		t(c,a[z]=="focusin"||a[z]=="focus"?"focusin":"focusout");
		try
		{
			this.dispatchEvent(c);
		}
		finally
		{
			c.m();
		};
	};
	
	Nc[_P].c=function()
	{
		Nc.p.c.call(this);
		Q(this.Fb);
		Q(this.Gb);
		this.a=null;
	};
	;

	var X=function(a,b,c)
	{
		ia(this,a);
		this.handle=b||a;
		this.fb=true;
		this.$=false;
		this.limits=c||new xc;
		this.h=this[y].ownerDocument||this[y][ra];
		ja(this,0);
		ka(this,0);
		this.deltaX=0;
		this.deltaY=0;
		P(this.handle,"mousedown",this.Ya,false,this);
	};
	
	E(X,R);
	X[_P].c=function()
	{
		X.p.c.call(this);
		Qb(this.handle,"mousedown",this.Ya,false,this);
		Qb(this.h,"mousemove",this.sa,false,this);
		Qb(this.h,"mouseup",this.la,false,this);
		delete this[y];
		delete this.handle;
	};
	
	X[_P].Ya=function(a)
	{
		if(this.fb&&!this.$)
		{
			var b=this.dispatchEvent(new Oc("start",this,a[Da],a[Ea],a));
			if(b!==false)
			{
				P(this.h,"mousemove",this.sa,false,this);
				P(this.h,"mouseup",this.la,false,this);
				ja(this,a[va]);
				ka(this,a[wa]);
				this.deltaX=this[y].offsetLeft;
				this.deltaY=this[y].offsetTop;
				this.$=true;
				a.preventDefault();
			}
		}
	};
	
	X[_P].la=function(a)
	{
		if(this.$)
		{
			this.$=false;
			Qb(this.h,"mousemove",this.sa,false,this);
			Qb(this.h,"mouseup",this.la,false,this);
			var b=this.Ma(this.deltaX),c=this.Na(this.deltaY);
			this.dispatchEvent(new Oc("end",this,a[Da],a[Ea],a,b,c));
		}
	};
	
	X[_P].sa=function(a)
	{
		if(this.$&&this.fb)
		{
			var b=a[va]-this[va],c=a[wa]-this[wa];
			this.deltaX+=b;
			this.deltaY+=c;
			var d=this.Ma(this.deltaX),e=this.Na(this.deltaY);
			ja(this,a[va]);
			ka(this,a[wa]);
			var f=this.dispatchEvent(new Oc("beforedrag",this,a[Da],a[Ea],a,d,e));
			if(f!==false)
			{
				this.db(d,e);
				this.dispatchEvent(new Oc("drag",this,a[Da],a[Ea],a,d,e));
				a.preventDefault();
			}
		}
	};
	
	X[_P].Ma=function(a)
	{
		var b=this.limits,c=typeof b[ua]!="undefined"?b[ua]:null,d=typeof b[v]!="undefined"?b[v]:0,e=c!=null?c+d:ca,f=c!=null?c:-ca;
		return r.min(e,r.max(f,a));
	};
	
	X[_P].Na=function(a)
	{
		var b=this.limits,c=typeof b.top!="undefined"?b.top:null,d=typeof b[A]!="undefined"?b[A]:0,e=c!=null?c+d:ca,f=c!=null?c:-ca;
		return r.min(e,r.max(f,a));
	};
	
	X[_P].db=function(a,b)
	{
		ha(this[y][w],a+"px");
		this[y][w].top=b+"px";
	};
	
	var Oc=function(a,b,c,d,e,f,g)
	{
		G.call(this,a);
		t(this,a);
		this.clientX=c;
		this.clientY=d;
		this.browserEvent=e;
		ha(this,C(f)?f:b.deltaX);
		this.top=C(g)?g:b.deltaY;
		this.dragger=b;
	};
	
	E(Oc,G);
	var Y=function(a)
	{
		R.call(this);
		this.f=a||lc();
		this.wb=Pc;
	};
	
	E(Y,R);
	var Qc=0,Pc=null,Rc="Component already rendered",Sc="Unable to set parent component";
	Y[_P].qa=null;
	Y[_P].f=null;
	Y[_P].R=false;
	Y[_P].a=null;
	Y[_P].wb=null;
	Y[_P].sb=null;
	Y[_P].C=null;
	Y[_P].X=null;
	Y[_P].W=null;
	Y[_P].Bb=null;
	Y[_P].La=function()
	{
		return this.qa||(this.qa=this.lb());
	};
	
	Y[_P].oa=function()
	{
		return this.a;
	};
	
	Y[_P].yb=function(a)
	{
		if(this==a)
			throw j(Sc);
		if(a&&this.C&&this.C.Ja(this.qa))
			throw j(Sc);
		this.C=a;
	};
	
	Y[_P].da=function()
	{
		return this.C;
	};
	
	Y[_P].T=function()
	{
		return this.R;
	};
	
	Y[_P].g=function()
	{
		this.a=this.f.createElement("div");
	};
	
	Y[_P].z=function(a)
	{
		this.vb(a);
	};
	
	Y[_P].vb=function(a,b)
	{
		if(this.R)
			throw j(Rc);
		if(!this.a)
			this.g();
		if(a)
			a.insertBefore(this.a,b||null);
		else 
			this.f.v()[x].appendChild(this.a);
		if(!this.C||this.C.T())
			this.P();
	};
	
	Y[_P].P=function()
	{
		this.R=true;
		this.ma(function(a)
			{
				if(!a.T()&&a.oa())
					a.P();
			}
		);
	};
	
	Y[_P].I=function()
	{
		this.ma(function(a)
			{
				if(a.T())
					a.I();
			}
		);
		this.R=false;
	};
	
	Y[_P].c=function()
	{
		Y.p.c.call(this);
		if(this.R)
			this.I();
		this.ma(function(a){a.m()});
	
		if(!this.Bb&&this.a)
			tc(this.a);
		this.X=null;
		this.W=null;
		this.a=null;
		this.sb=null;
		this.C=null;
	};
	
	Y[_P].lb=function()
	{
		return":"+Qc++;
	};
	
	Y[_P].na=function()
	{
		return this.a;
	};
	
	Y[_P].Ja=function(a)
	{
		return this.W&&a?zb(this.W,a)||null:null;
	};
	
	Y[_P].ma=function(a,b)
	{
		if(this.X)
			qb(this.X,a,b);
	};
	
	Y[_P].removeChild=function(a,b)
	{
		if(a)
		{
			var c=D(a)?a:a.La();
			a=this.Ja(c);
			if(c&&a)
			{
				yb(this.W,c);
				sb(this.X,a);
				if(b)
				{
					a.I();
					if(a.a)
						tc(a.a);
				}
				a.yb(null);
			}
	
		}
		if(!a)
			throw j("Child is not in parent component");
		return a;
	};
	
	var Z=function(a,b,c)
	{
		Y.call(this,c);
		this.l=a||"modal-dialog";
		this.va=!!b;
		this.G=Tc;
		this.j=new W(this);
		this.aa=new Nc(this.f.v());
	};
	
	E(Z,Y);
	Z[_P].l=null;
	Z[_P].va=false;
	Z[_P].ga=true;
	Z[_P].Ia=true;
	Z[_P].ab=0.3;
	Z[_P].Ab="";
	Z[_P].Ca="";
	Z[_P].G=null;
	Z[_P].H=null;
	Z[_P].wa=false;
	Z[_P].eb=false;
	Z[_P].d=null;
	Z[_P].e=null;
	Z[_P].ia=null;
	Z[_P].ua=null;
	Z[_P].Za=null;
	Z[_P].ha=null;
	Z[_P].Z=null;
	Z[_P].r=null;
	Z[_P].j=null;
	Z[_P].na=function()
	{
		if(!this.Z)
			this.z();
		return this.Z;
	};
	
	Z[_P].bb=function()
	{
		var a=new X(this.a,this.ia);
		Lc(this.ia,this.l+"-title-draggable");
		return a;
	};
	
	Z[_P].g=function()
	{
		this.qb();
		this.a=this.f.g("div",{className:this.l,tabIndex:0},this.ia=this.f.g("div",{className:this.l+"-title",id:this.La()},this.ua=this.f.g("span",{className:this.l+"-title-text"},this.Ab),this.ha=this.f.g("span",{className:this.l+"-title-close"})),this.Z=this.f.g("div",{className:this.l+"-content"}),this.r=this.f.g("div",{className:this.l+"-buttons"}),this.zb=this.f.g("span",{tabIndex:0}));
		this.Za=this.ia.id;
		Ic(this.a,"dialog");
		Jc(this.a,"labelledby",this.Za);
		if(this.Ca)
			his.Z.innerHTML=this.Ca;
		V(this.a,false);
		if(this.G)
			this.G.za(this.r);
	};
	
	Z[_P].qb=function()
	{
		if(this.va&&this.ga&&!this.e)
		{
			this.e=this.f.g("iframe",{frameborder:0,style:"border: 0",className:this.l+"-bg"});
			V(this.e,false);
			Gc(this.e,0);
		}
		else if((!this.va||!this.ga)&&this.e)
		{
			tc(this.e);
			this.e=null
		}
		if(this.ga&&!this.d)
		{
			this.d=this.f.g("div",{className:this.l+"-bg"});
			Gc(this.d,this.ab);
			V(this.d,false);
		}
		else if(!this.ga&&this.d)
		{
			tc(this.d);
			this.d=null;
		}
	};
	
	Z[_P].z=function(a)
	{
		if(this.T())
			throw j(Rc);
		if(!this.a)
			this.g();
		var b=a||this.f.v()[x];
		this.ub(b);
		Z.p.z.call(this,b);
	};
	
	Z[_P].ub=function(a)
	{
		if(this.e)
			a.appendChild(this.e);
		if(this.d)
			a.appendChild(this.d);
	};
	
	Z[_P].P=function()
	{
		Z.p.P.call(this);
		if(this.Ia&&!this.H)
			this.H=this.bb();
		this.j.L(this.ha,"click",this.Ta);
		this.j.L(this.aa,"focusin",this.Qa);
		Ic(this.a,"dialog");
		if(this.ua.id!=="")
			Jc(this.a,"labelledby",this.ua.id)
	};
	
	Z[_P].I=function()
	{
		this.j.O(this.ha,"click",this.Ta);
		this.j.O(this.aa,"focusin",	this.Qa);
		if(this.pb())
			this.u(false);
		if(this.H)
		{
			this.H.m();
			this.H=null;
		}
		Z.p.I.call(this);
	};
	
	Z[_P].u=function(a)
	{
		if(a==this.wa)
			return;
		var b=this.f.v(),c=rc(b)||aa;
		if(!this.T())
			this.z(b[x]);
		if(a)
		{
			this.Wa();
			this.ta();
			this.j.L(this.a,"keydown",this.Ra,true);
			this.j.L(c,"resize",this.Sa,true);
		}
		else
		{
			this.j.O(this.a,"keydown",this.Ra,true);
			this.j.O(c,"resize",this.Sa,true);
		}
		if(this.e)
			V(this.e,a);
		if(this.d)
			V(this.d,a);
		V(this.a,a);
		if(a)
		{
			if(eb)
				this.a.focus();
			if(this.K())
			{
				var d=this.K().Ka();
				if(d)
				{
				var e=this.r.getElementsByTagName("button");
			
				for(var f=0,g;g=e[f];f++)
					if(g[Ba]==d)
					{
						try
						{
							g.focus();
						}
						catch(h)
						{
						}
						break;
					}
				}
			}
		
		}
		this.wa=a;
		if(!a)
		{
			this.j.O(this.r,"click",this.Pa);
			this.dispatchEvent("afterhide");
			if(this.eb)
				this.m();
		}
		else 
			this.j.L(this.r,"click",this.Pa);
	};
	
	Z[_P].pb=function()
	{
		return this.wa;
	};
	Z[_P].Wa=function()
	{
		if(this.e)
			V(this.e,false);
		if(this.d)
			V(this.d,false);
		var a=this.f.v(),b=rc(a)||aa,c=pc(b),d=a[x].scrollWidth,e=r.max(a[x].scrollHeight,c[A]);
		if(this.e)
		{
			V(this.e,true);
			Ec(this.e,d,e);
		}
		if(this.d)
		{
			V(this.d,true);
			Ec(this.d,d,e);
		}
		if(this.Ia)
		{
			var f=Fc(this.a);
			this.H.limits=new xc(0,0,d-f[v],e-f[A]);
		}
	};
	
	Z[_P].ta=function()
	{
		var a=this.f.v(),b=rc(a)||aa,c=qc(b),d=c.x,e=c.y,f=Fc(this.a),
			g=pc(b),h=r.max(d+g[v]/2-f[v]/2,0),k=r.max(e+g[A]/2-f[A]/2,0);
		Bc(this.a,h,k);
	};
	
	Z[_P].Ta=function()
	{
		var a=this.K(),b=a&&a.ca();
		if(b)
		{
			var c=a.ba(b);
			if(this.dispatchEvent(new Uc(b,c)))
				this.u(false);
		}
		else 
			this.u(false);
	};
	
	Z[_P].c=function()
	{
		Z.p.c.call(this);
		if(this.j)
		{
			this.j.m();
			this.j=null;
		}
		if(this.aa)
		{
			this.aa.m();
			this.aa=null;
		}
		if(this.d)
		{
			tc(this.d);
			this.d=null;
		}
		if(this.e)
		{
			tc(this.e);
			this.e=null;
		}
		this.ha=null;
		this.r=null;
		this.zb=null;
	};
	
	Z[_P].xb=function(a)
	{
		this.G=a;
		if(this.r)
			this.G.za(this.r);
	};
	
	Z[_P].K=function()
	{
		return this.G;
	};
	Z[_P].Pa=function(a)
	{
		var b=this.gb(a[y]);
		if(b)
		{
			var c=b[Ba],d=this.K().ba(c);
			if(this.dispatchEvent(new Uc(c,d)))
				this.u(false);
		}
	
	};
	
	Z[_P].gb=function(a)
	{
		var b=a;
		while(b!=null&&b!=this.r)
		{
			if(b.tagName=="BUTTON")
				return b;
			b=b[Ca];
		}
		return null;
	};
	
	Z[_P].Ra=function(a)
	{
		var b;
		if(a[xa]==27)
		{
			b=this.K();
			if(b.ca())
			{
				var c=b.ba(b.ca());
				if(this.dispatchEvent(new Uc(b.ca(),c)))
					this.u(false)
			}
			else 
				this.u(false);
	
			a.stopPropagation();
		
		}
		else if(a[xa]==13)
		{
			b=this.K();
			var d=a[y]&&a[y].tagName=="BUTTON"?a[y][Ba]:b.Ka();
			if(d&&this.dispatchEvent(new Uc(d,b.ba(d))))
				this.u(false);
			a.stopPropagation();
		}
		else if(a[xa]==9&&a.shiftKey&&a[y]==this.a)
		{
			a.preventDefault();
			a.stopPropagation();
		}
	};
	Z[_P].Sa=function()
	{
		this.Wa();
	};
	
	Z[_P].Qa=function(a)
	{
		if(this.zb==a[y])
			fc(this.hb,0,this);
	};
	
	Z[_P].hb=function()
	{
		if(I)
			this.f.v()[x].focus();
		this.a.focus();
	};
	
	var Uc=function(a,b)
	{
		t(this,"dialogselect");
		this.k=a;
		this.caption=b;
	};
	
	E(Uc,G);
	var $=function(a)
	{
		this.f=a||lc();
		S.call(this);
	}
	var Tc;
	E($,S);
	$[_P].Fa=null;
	$[_P].a=null;
	$[_P].Ba=null;
	$[_P].F=function(a,b,c,d)
	{
		S[_P].F.call(this,a,b);
		if(c)
			this.Fa=a;
		if(d)
			this.Ba=a;
		return this;
	};
	
	$[_P].za=function(a)
	{
		this.a=a;
		this.z();
	};
	
	$[_P].z=function()
	{
		if(this.a)
		{
			this.a.innerHTML="";
			var a=lc(this.a);
			cc(this,function(b,c){this.a.appendChild(a.g("button",{name:c},b))},this);
		}
	};
	
	$[_P].Ka=function()
	{
		return this.Fa;
	};

	$[_P].ca=function()
	{
		return this.Ba;
	};
	(
		function()
		{
			var a=Ta("OK"),b=Ta("Cancel");
			Ta("Yes");
			Ta("No");
			Ta("Save");
			Ta("Continue");
		
			Tc=(new $).F("ok",a,true).F("cancel",b,false,true);
		}
	)();
	function Vc(a)
	{
		Z.call(this,"cse-overlay",true);
		this.cse=a;
	}
	Vc.ob(Z);
	Vc[_P].ta=function()
	{
		var a=Fc(this.cse.searchBox),b=Fc(aa[ra][Fa]),c=Fc(this.a),d=Dc(this.cse.searchBox),e;
		e=d.x+c[v]>b[v]?d.x+a[v]-c[v]:d.x;
		Bc(this.a,e,d.y);
	};
	function Wc(a,b,c)
	{
		this.searchBox=b;
		this.searchResults=c;
		this.searchResultsContainer=mc(null,"cse-resultsContainer",this.searchResults)[0];
		this.closeResults=mc(null,"cse-closeResults",this.searchResults)[0];
		this.searchBox.onsubmit=Sa(Wc[_P].ya,this);
		this.searchResultsDialog=new Vc(this);
		this.searchResultsDialog.xb(new $);
		this.searchResultsDialog.na().appendChild(this.searchResults);
		ma(this.searchResults[w],"");
		this.closeResults.onclick=Sa(Wc[_P].xa,this);
		this.searchControl=new GSearchControl;
		var d=new GwebSearch;
		d.setSiteRestriction(a);
		var e=new GsearcherOptions;
		e.setExpandMode(GSearchControl.EXPAND_MODE_OPEN);
		this.searchControl.addSearcher(d,e);
		
		this.searchControl.setResultSetSize(GSearch.LARGE_RESULTSET);
		this.searchControl.setNoResultsString(GSearchControl.NO_RESULTS_DEFAULT_STRING);
		this.searchControl.draw(this.searchResultsContainer);
	};
	
	Wc[_P].ya=function()
	{
		this.searchResultsDialog.u(true);
		this.searchControl.execute(this.searchBox.q.value);
		return false
	};
	
	Wc[_P].xa=function()
	{
		this.searchResultsDialog.u(false);
	};


Ua("CSEOverlay",Wc);
 })()
