var hover=function(){
	return{
		init:function(u,s,h,of,st){
			e=document.getElementById(u);if(!e){alert('here');return;}
			a=e.getElementsByTagName("a");var c;
			for(i=0;i<a.length;i++){
				if(a[i].id==h){c=a[i];}a[i].p=u;a[i].s=s;a[i].h=h;
				a[i].onmouseover=hover.o;a[i].onmouseout=hover.o;
			}
			sl=document.getElementById(s);sl.sp=st;sl.style.display="block";
			sl.style.top = (hover.p(c,'y')+of)+"px";
			sl.style.left = (hover.p(c,'x')+(Math.abs(c.offsetWidth-sl.offsetWidth)/2))+"px";			
		},
		o:function(e){
			e=e||window.event;c=e.target!=null?e.target:e.srcElement;
			u=document.getElementById(c.u);s=document.getElementById(c.s);
			if(c.nodeName=='A' && e.type=="mouseover"){
				s.nx=(hover.p(c,'x')+(Math.abs(c.offsetWidth-s.offsetWidth)/2));hover.m(s);
			}
			else if(c.nodeName=='A'){
				h=document.getElementById(c.h);
				s.nx=(hover.p(h,'x')+(Math.abs(h.offsetWidth-s.offsetWidth)/2));hover.m(s);
			}
		},
		m:function(e){
			if(e.ti){clearTimeout(e.ti);}c=parseInt(e.style.left);
			if(c>e.nx){
				if(Math.abs(c-e.nx)<=e.sp){c=e.nx;}else{c=c-e.sp;}
				e.style.left=(c)+"px";
			}
			else{
				if(Math.abs(c-e.nx)<=e.sp){c=e.nx;}else{c=c+e.sp;}
				e.style.left=(c)+"px";
			}			
			e.ti=setTimeout(function(){hover.m(e)}, 50);		
		},
		p:function(o,t){
		    var ct = 0;
		    if(o.offsetParent){
				while(true)
				{
				  ct += (t=='x'?o.offsetLeft:o.offsetTop);
				  if(!o.offsetParent){break;}
				  o = o.offsetParent;
				}
			}
		    return ct;
		 }
	}
}();
