/*--- IE6 hover ---*/
function ieHover(h_list, h_class){
	if($.browser.msie && $.browser.version < 7){
		if(!h_class) var h_class = 'hover';
		$(h_list).mouseenter(function(){
			$(this).addClass(h_class);
		}).mouseleave(function(){
			$(this).removeClass(h_class);
		});
	}
}
$(document).ready(function(){
	ieHover('ul.sidenav > li');
	initAccordion();
	$('div.gall-hold').fadeGall({
		changeSpeed: 500,
		btnList: 'ul.thumbnails a',
		listHold: 'ul.list-hold',
		action: 'mouseenter'
	});
});

// accordion function
function initAccordion() {
	var _activeClass = 'active';
	var _slideSpeed = 300;

	$('div.sidebar > .sidenav').each(function(){
		var _accordion = $(this);
		var _items = _accordion.find('li:has(ul)');
		_items.each(function(){
			var _holder = $(this);
			var _opener = _holder.find('>a');
			var _slider = _holder.find('>ul');

			_opener.click(function(){
				var _levelItems = _holder.parent().children(':has(ul)').not(_holder);

				if(_holder.hasClass(_activeClass)) {
					_slider.slideUp(_slideSpeed,function(){
						_holder.removeClass(_activeClass);
					});
				} else {
					_holder.addClass(_activeClass);
					_slider.slideDown(_slideSpeed);

					// collapse others
					_levelItems.find('>ul:visible').slideUp(_slideSpeed,function(){
						_levelItems.removeClass(_activeClass);
					})
				}
				return false;
			});

			if(_holder.hasClass(_activeClass)) _slider.show();
			else _slider.hide();
		});
	});
}
/*--- fade gallery ---*/
jQuery.fn.fadeGall = function(_options){
	var _options = jQuery.extend({
		stayTime: false,				// wait time in ms or 'false' if not needed
		changeSpeed: 1000,				// slide speed in ms
		btnPrev: 'a.btn-prev',			// previous button
		btnNext: 'a.btn-next',			// next button
		btnList: 'ul.gall-nav a',		// navigtion buttons
		btnActive: 'active',			// active class for btn
		listHold: 'div.list-hold > ul',	// list holder
		action: 'click'
	}, _options);
	return this.each(function(){
		var _hold = jQuery(this);
		var list_hold = jQuery(_options.listHold, _hold);
		var _list = list_hold.children();
		var btn_prev = jQuery(_options.btnPrev, _hold);
		var btn_next = jQuery(_options.btnNext, _hold);
		var _btn = jQuery(_options.btnList, _hold);
		var stay_time = _options.stayTime;
		var change_speed = _options.changeSpeed;
		var active_class = _options.btnActive;
		var _action = _options.action;
		var _a = (_btn.index(_btn.filter('.'+_options.active_class).eq(0)) != -1)?(_btn.index(_btn.filter('.'+_options.active_class).eq(0))):(0);
		var _f = true, _t;
		_btn.removeClass(active_class).eq(_a).addClass(active_class);
		_list.removeClass(active_class).css('opacity', 0).eq(_a).addClass(active_class).css('opacity', 1);
		_btn.bind(_action, function(){
			changeEl(_btn.index(this));
			return false;
		});
		btn_prev.bind(_action, function(){
			if(_a > 0) changeEl(_a - 1);
			else changeEl(_list.length - 1);
			return false;
		});
		btn_next.bind(_action, function(){
			if(_a < _list.length - 1) changeEl(_a + 1);
			else changeEl(0);
			return false;
		});
		_hold.mouseenter(function(){
			_f = false;
			if(_t) clearTimeout(_t);
		}).mouseleave(function(){
			_f = true;
			if(_t) clearTimeout(_t);
			if(_f && stay_time){
				_t = setTimeout(function(){
					if(_a < _list.length - 1) changeEl(_a + 1);
					else changeEl(0);
				}, stay_time);
			}
		});
		if(_f && stay_time){
			_t = setTimeout(function(){
				if(_a < _list.length - 1) changeEl(_a + 1);
				else changeEl(0);
			}, stay_time);
		}
		function changeEl(_ind){
			if(_t) clearTimeout(_t);
			if(_ind != _a){
				_btn.eq(_a).removeClass(active_class);
				_btn.eq(_ind).addClass(active_class);
				list_hold.stop().height(list_hold.height());
				_list.eq(_a).removeClass(active_class).animate({opacity: 0}, {queue:false, duration: change_speed});
				_list.eq(_ind).addClass(active_class).animate({opacity: 1}, {queue:false, duration: change_speed});
				list_hold.animate({height: _list.eq(_ind).outerHeight()}, change_speed/2, function(){ $(this).height('auto');});
				_a = _ind;
			}
			if(_f && stay_time){
				_t = setTimeout(function(){
					if(_a < _list.length - 1) changeEl(_a + 1);
					else changeEl(0);
				}, stay_time+change_speed);
			}
		}
	});
}