/*--- menu hover ---*/
function initMenu(){
	var _nav = document.getElementById('nav');
	if(_nav){
		var _list = _nav.getElementsByTagName('li');
		for(var i = 0; i < _list.length; i++){
			if(_list[i].parentNode == _nav){
				_list[i].onmouseover = function(){
					this.className += ' hover';
				}
				_list[i].onmouseout = function(){
					this.className = this.className.replace('hover', '');
				}
			}
		}
	}
}

/*--- slide menu function ---*/
function initSlideMenu(){
	var _hold = $('#menu-hold');
	if(_hold.length){
		var btn_top = _hold.find('a.btn-top');
		var btn_bottom = _hold.find('a.btn-bottom');
		var _box = _hold.find('div.menu-container > div.menu');
		var _step = _box.parent().height();
		if(_box.outerHeight() > _step){
			btn_bottom.show();
		}
		btn_bottom.click(function(){
			moveEl(true);
			return false;
		});
		btn_top.click(function(){
			moveEl(false);
			return false;
		});
		var _a = 0;
		function moveEl(_f){
			if(_f){
				_a++;
				if((_a+1)*_step >= _box.outerHeight()) btn_bottom.hide();
				btn_top.show();
			}
			else{
				_a--;
				if(_a == 0) btn_top.hide();
				btn_bottom.show();
			}
			_box.animate({marginTop: -_a*_step}, {queue:false, duration:1000});
		}
	}
}
/*--- menu function ---*/
function initMenu(){
	var _hold = $('#side-menu');
	if(_hold.length){
		var btn1_list = _hold.children();
		var btn2_list = btn1_list.find('> ul > li');
		var btn3_list = btn2_list.find('ul > li');
		var _a1 = -1;
		var _a2 = -1;
		var _a3 = -1;
		var box2_w = 101;
		var _speed1 = 300;
		var _speed2 = 300;
		var stay_time2 = 1500;
		var _f1 = true;
		/*--- ---*/
		btn1_list.each(function(_i){
			var _el = $(this);
			if(_el.hasClass('active')) _a1 = _i;
			
			this._box = _el.children('ul');
			this._box.hide();
			
			_el.children('a').click(function(){
				if(_f1){
					_f1 = false;
					if(n_a2 != -1){
						if(btn2_list.get(n_a2)._t) clearTimeout(btn2_list.get(n_a2)._t);
						btn2_list.eq(n_a2).removeClass('active');
						if(btn2_list.get(n_a2)._box.length == 0){
							n_a2 = _a2;
							level1Anim(_i);
						}
						else{
							btn2_list.get(n_a2).sub_box.stop().animate({marginRight: -box2_w}, _speed2, function(){
								$(this).parent().hide();
								n_a2 = _a2;
								level1Anim(_i);
							});
						}
					}
					else{
						level1Anim(_i);
					}
				}
			});
			
		});
		/*--- ---*/
		btn2_list.each(function(_i){
			var _el = $(this);
			if(_el.hasClass('active')) _a2 = _i;
			
			this._box = _el.children('div.sub-menu');
			this.sub_box = this._box.children();
			this._t = false;
			this._box.hide();
			this.sub_box.css('marginRight', -box2_w);
			if(this._box.length == 0){ _el.addClass('sub-none')};
			_el.mouseenter(function(){
				if(_f1){
					if(_i == n_a2){
						if(this._t) clearTimeout(this._t);
						_el.addClass('active');
						this.sub_box.stop().animate({marginRight:0}, _speed2);
					}
					else{
						if(n_a2 != -1){
							if(btn2_list.get(n_a2)._t) clearTimeout(btn2_list.get(n_a2)._t);
							btn2_list.eq(n_a2).removeClass('active');
							if(btn2_list.get(n_a2)._box.length == 0){
								showLevel2(_i);
							}
							else{
								btn2_list.get(n_a2).sub_box.stop().animate({marginRight: -box2_w}, _speed2, function(){
									$(this).parent().hide();
									showLevel2(_i);
								});
							}
						}
						else{
							showLevel2(_i);
						}
					}
				}
			}).mouseleave(function(){
				if(_f1){
					if(this._t) clearTimeout(this._t);
					if(_i != _a2){
						this._t = setTimeout(function(){
							btn2_list.eq(_i).removeClass('active');
							if(btn2_list.get(_i)._box.length == 0){
								showLevel2(_a2);
							}
							else{
								btn2_list.get(_i).sub_box.stop().animate({marginRight: -box2_w}, _speed2, function(){
									$(this).parent().hide();
									showLevel2(_a2);
								});
							}
						}, stay_time2);
					}
				}
			});
			_el.children('a').click(function(){
				if(_f1){
					_a2 = _i;
					n_a2 = _a2;
				}
			});
		});
		/*--- ---*/
		btn3_list.each(function(_i){
			var _el = $(this);
			if(_el.hasClass('active')) _a3 = _i;
			_el.children('a').click(function(){
				if(_a3 != -1) btn3_list.eq(_a3).removeClass('active');
				if(_a3 != _i){
					_a3 = _i;
					_el.addClass('active');
					_a2 = btn2_list.index(_el.parents('li:eq(0)'));
					n_a2 = _a2;
				}
			});
		});
		/*--- ---*/
		var n_a1 = _a1;
		var n_a2 = _a2;
		var n_a3 = _a3;
		/*--- ---*/
		if(_a1 != -1){
			btn1_list.removeClass('active').eq(_a1).addClass('active');
			_hold.prepend(btn1_list.eq(_a1));
			btn1_list.get(_a1)._box.show();
		}
		if(_a2 != -1){
			btn2_list.removeClass('active').eq(_a2).addClass('active');
			btn2_list.get(_a2)._box.show();
			btn2_list.get(_a2).sub_box.css('marginRight', 0);
		}
		if(_a3 != -1){
			btn3_list.removeClass('active').eq(_a3).addClass('active');
		}
		/*--- ---*/
		function showLevel2(_i){
			n_a2 = _i;
			if(btn2_list.get(n_a2)._box.is(':hidden')){
				btn2_list.get(n_a2).sub_box.css('marginRight', -box2_w);
				btn2_list.get(n_a2)._box.show();
			}
			btn2_list.eq(n_a2).addClass('active');
			btn2_list.get(n_a2).sub_box.stop().animate({marginRight: 0}, _speed2);
		}
		
		function level1Anim(_i){
			if(_a1 != _i && _a1 != -1){
				if(btn1_list.get(_a1)._box.length){
					btn1_list.get(_a1)._box.slideUp(_speed1, function(){
						btn1_list.eq(_a1).removeClass('active');
						_a1 = -1;
						showLevel1(_i);
					});
				}
				else{
					btn1_list.eq(_a1).removeClass('active');
					showLevel1(_i);
				}
			}
			else if(_a1 == _i){
				if(btn1_list.get(_a1)._box.length){
					btn1_list.get(_a1)._box.slideUp(_speed1, function(){
						btn1_list.eq(_a1).removeClass('active');
						_a1 = -1;
						_f1 = true;
					});
				}
				else{
					btn1_list.eq(_a1).removeClass('active');
					_a1 = -1;
					_f1 = true;
				}
			}
			else{
				showLevel1(_i);
			}
		}
		var btn1_c;
		function showLevel1(_i){
			btn1_c = btn1_list.eq(_i).clone();
			btn1_c.css({
				position:'absolute',
				top: btn1_list.eq(_i).position().top,
				left:0,
				zIndex:1
			});
			_hold.append(btn1_c);
			btn1_list.eq(_i).css('visibility', 'hidden');
			btn1_list.eq(_i).css('overflow', 'hidden').animate({height: 0}, _speed1);
			_hold.animate({paddingTop: btn1_c.height()}, _speed1);
			btn1_c.animate({top: 0}, _speed1, function(){
				_hold.css('padding-top', 0).prepend(btn1_list.eq(_i));
				btn1_list.eq(_i).css({visibility: 'visible', overflow: 'visible', height: 'auto'});
				btn1_c.remove();
				btn1_list.eq(_i).addClass('active');
				_a1 = _i;
				if(btn1_list.get(_i)._box.length){
					btn1_list.get(_i)._box.slideDown(_speed1, function(){
						if(btn2_list.eq(n_a2).is(':visible')) showLevel2(n_a2);
						_f1 = true;
					});
				}
				else{
					_f1 = true;
				}
			});
		}
	}
}
function initPage(){
	initSlideMenu();
	initMenu();
}
if (window.addEventListener) window.addEventListener("load", initPage, false);
else if (window.attachEvent && !window.opera) window.attachEvent("onload", initPage);