Browser={isSupported:function()	{		return(Boolean(document.getElementsByTagName)&&Boolean(document.getElementById));	},id:new function()	{		var ua=navigator.userAgent;		var OMNI=ua.indexOf("Omni")>0;		this.OP5=ua.indexOf("Opera 5")>=0||ua.indexOf("Opera 6")>=0;		this.OP7=ua.indexOf("Opera 7")>=0;		this.MAC=ua.indexOf("Mac")>0;		if(!this.OP5&&!OMNI)		{			this.IE5=ua.indexOf("MSIE 5")>0;this.IE5_0=ua.indexOf("MSIE 5.0")>0;			this.NS6=ua.indexOf("Gecko")>0;			this.MOZ=this.NS6&&ua.indexOf("Netscape")==-1;			this.MAC_IE5=this.MAC&&this.IE5;			this.IE6=ua.indexOf("MSIE 6")>0;			this.KONQUEROR=ua.indexOf("Konqueror/")>0;		}	}};var px="px";TokenizedExps={};function getTokenizedExp(t,f){	var x=TokenizedExps[t];	if(!x)		x=TokenizedExps[t]=new RegExp("(^|\\s)"+t+"($|\\s)",f);	return x;}function hasToken(s,t){	return getTokenizedExp(t,"").test(s);};function getChildNodesWithClass(p,kl){	var coll=p.childNodes;	var rc=[];	var exp=getTokenizedExp(kl,"");	for(var i=0,n=0;i<coll.length;i++)		if(exp.test(coll[i].className))			rc[n++]=coll[i];	return rc;}function getElementsWithClass(p,t,kl){	var rc=[];	var exp=getTokenizedExp(kl,"");	var coll=(t=="*"&&p.all)?p.all:p.getElementsByTagName(t);	for(var i=0,n=0;i<coll.length;i++)	{		if(exp.test(coll[i].className))		rc[n++]=coll[i];	}	return rc;}function get_elements_with_class_from_classList(el,t,classList){	var rc=new Array(0);	var coll=(t=="*"&&el.all)?el.all:el.getElementsByTagName(t);	var exps=[];	for(var i=0;i<classList.length;i++)		exps[i]=getTokenizedExp(classList[i],"");	for(var j=0,coLen=coll.length;j<coLen;j++)	{		kloop:for(var k=0;k<classList.length;k++)		{			if(exps[k].test(coll[j].className))			{				rc[rc.length]=coll[j];				break kloop;			}		}	}	return rc;}function findAncestorWithClass(el,kl){	var exp=getTokenizedExp(kl,"");	for(var p=el.parentNode;p!=null;)	{		if(exp.test(p.className) )		return p;		p=p.parentNode;	}return null;}function getDescendantById(p,id){	var childNodes=p.all?p.all:p.getElementsByTagName("*");	for(var i=0,len=childNodes.length;i<len;i++)		if(childNodes[i].id==id)			return childNodes[i];	return null;}function removeClass(el,kl){	el.className=el.className.replace(getTokenizedExp(kl,"g")," ").normalize();}function repaintFix(el){	el.style.visibility='hidden';	el.style.visibility='visible';}String.prototype.trim=function(){	return this.replace(/^\s+|\s+$/g,"");};String.prototype.normalize=function(){	return this.trim().replace(/\s\s+/g," ");};if(!Array.prototype.unshift)	Array.prototype.unshift=function()	{		this.reverse();		for(var i=arguments.length-1;i>-1;i--)			this[this.length]=arguments[i];		this.reverse();		return this.length;	};