var slideMenu = function() {
	var sp, st, t, m, sa, l, w, sw, ot;
	return {
		build : function(sm, se, sw, mt, s, sl, h) {
			sp = s;
			st = sw;
			t = mt;
			m = document.getElementById(sm);
			sa = $$(se);
			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);
			}
		}
	};
}();
