function getElementsByClass(searchClass,node,tag) {

        var classElements = new Array();
        if (node == null)
                node = document;
        if (tag == null)
                tag = '*';
        var els = node.getElementsByTagName(tag);
        var elsLen = els.length;
        var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
        var j = 0;
        for (i = 0; i < elsLen; i++) {
                if (pattern.test(els[i].className) ) {
                        classElements[j] = els[i];
                        j++;
                }
        }
        return classElements;
}
hoverClass = function(object, targetClass, show, onoff) {
	var jsEls = getElementsByClass(targetClass, object, '*');
	for (var i=0; i<jsEls.length; i++) {
		if (show) {
			if (onoff) {jsEls[i].className+=" jsshow";}
			else {jsEls[i].className+=" jshide";}
		} else {
			if (onoff) {jsEls[i].className=jsEls[i].className.replace(new RegExp(" jsshow\\b"), "");}
			else {jsEls[i].className=jsEls[i].className.replace(new RegExp(" jshide\\b"), "");}
		}
	}
}
jsHover = function() {
	var jsEls = getElementsByClass('mousehover', document, '*');
	for (var i=0; i<jsEls.length; i++) {
		jsEls[i].onmouseover=function() {
			hoverClass(this, "hidemouse", true, false);
			hoverClass(this, "showmouse", true, true);
		}
		jsEls[i].onmouseout=function() {
			hoverClass(this, "hidemouse", false, false);
			hoverClass(this, "showmouse", false, true);
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", jsHover);


var slideMenu=function(){
	var sp,st,t,m,sa,l,w,sw,ot;
	return{
		build:function(sm,sw,mt,s,sl,h){
			sp=s; st=sw; t=mt;
			m=document.getElementById(sm);
			sa=m.getElementsByTagName('li');
			l=sa.length; w=m.offsetWidth; sw=w/l;
			ot=Math.ceil((w-st)/(l-1)); var i=0;
			for(i;i<l;i++){s=sa[i]; s.style.width=sw+'px'; this.timer(s)}
			if(sl!=null){m.timer=setInterval(function(){slideMenu.slide(sa[sl-1])},t)}
		},
		timer:function(s){s.onmouseover=function(){clearInterval(m.timer);m.timer=setInterval(function(){slideMenu.slide(s)},t)}},
		slide:function(s){
			var cw=parseInt(s.style.width,'10');
			if(cw<st){
				var owt=0; var i=0;
				for(i;i<l;i++){
					if(sa[i]!=s){
						var o,ow; var oi=0; o=sa[i]; ow=parseInt(o.style.width,'10');
						if(ow>ot){oi=Math.ceil((ow-ot)/sp); oi=(oi>0)?oi:1; o.style.width=(ow-oi)+'px'}
						owt=owt+(ow-oi)}}
				s.style.width=(w-owt)+'px';
			}else{clearInterval(m.timer)}
		}
	};
}();