/* AUTO CYCLE THE ACCORDION
					a jquery layer on top of the existing functionality triggers mouseover effects on the next slide on a timeout.
					finds the widest slide (therefore the active one), then triggers a mouseover on the next slide, or the first one if the end is reached.
					probably a nicer solution out there, but it works.
			*/
			var slides;
			function moveNextSlide(){
				var widest = [false,0];
				var l = slides.length;

				for(i=0;i<l;i++){
					var slide = slides[i];
					if ($(slide).width()>widest[1])
						widest = [ i,$(slide).width()];
				}

				var nextSlide = (widest[0]+1==l)? 0 : widest[0]+1 ;

				$(slides[nextSlide]).mouseover();
			}

			$(document).ready(function(){
				slideMenu.build('sm',511,3,9,3);

				slides = $('#sm').find('li');
				var currInterval = setInterval( 'null' ,3100);
				//console.log('SET '+currInterval);
				$('#sm').mousemove(
					function(){
						clearInterval(currInterval);
						//console.log('CLEAR '+currInterval);
					}
				);
				$('#sm').mouseout(
					function(){
						currInterval = setInterval( 'null' ,3100);
					}
				);
});

//start of plugin

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.floor((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.floor((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)
			}
	}
};
}();
