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);
			if (m) {
				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) {
					var li = sa[sl - 1];
					
					m.timer = setInterval(function() {					
						slideMenu.slide(li);
					}, t);
	
					slideMenu.hover($(li));
				};
			}
			
		},
		
		timer: function(s) {
			s.onmouseover = function() {
				clearInterval(m.timer);
				
				var li = $('li div.cd').parent('li');
				if (li.length > 0) {
					slideMenu.hover($(li[0]));
				}
				slideMenu.hover($(s));
				
				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);
			}
		},
		
		hover: function(sender) {
			var ci = sender.children('.calendar-item').toggleClass('cd');
			ci.children('.item-header').toggleClass('cih');
		}
	};
}();
