//init page
$(function(){
	initImgAccordion();
	initBtnAccordion();
	initAccordion();
	
});

// init image accordion
function initImgAccordion(){
	$('.accordion .active-add').each(function(){
		var holder = $(this);
		var img = $('img', holder);
		
		if(img.length){
			h = holder.height();
			img.css({'height': h});
		}
	});
}

// init btn accordion
function initBtnAccordion(){
	var activeClass = 'opener';
	var disableClass = 'none-open';
	var lists = $('.accordion');
	lists.each(function(){
		var list = $(this);
		var items = list.children();
		items.each(function(){
			var item = $(this);
			if(item.find('>.slide').length){
				item.find('>a').addClass(activeClass).append('<span class="arrow"></span>');
			}
			else{
				item.find('>a').addClass(disableClass);
			}
		});
	});
}
// accordion function
function initAccordion() {
	$('ul.accordion').multiAccordion({
		activeClass:'active',
		opener:'>a.opener',
		slider:'>div.slide',
		collapsible:true,
		slideSpeed: 500
	});
}

// multilevel accordion plugin
jQuery.fn.multiAccordion = function(_options){
	// default options
	var _options = jQuery.extend({
		activeClass:'active',
		opener:'.opener',
		slider:'.slide',
		slideSpeed: 400,
		collapsible:true,
		event:'click'
	},_options);

	return this.each(function(){
		// options
		var _event = _options.event;
		var _accordion = jQuery(this);
		var _items = _accordion.find(':has('+_options.slider+')');

		_items.each(function(){
			var _holder = $(this);
			var _opener = _holder.find(_options.opener);
			var _slider = _holder.find(_options.slider);
			_opener.bind(_event, function(){
				if(!_slider.is(':animated')) {
					if(_holder.hasClass(_options.activeClass)) {
						if(_options.collapsible) {
							_slider.slideUp(_options.slideSpeed, function(){
								_holder.removeClass(_options.activeClass);
							});
						}
					} else {
						var _levelItems = _holder.siblings('.'+_options.activeClass);
						_holder.addClass(_options.activeClass);
						_slider.slideDown(_options.slideSpeed);

						// collapse others
						_levelItems.find(_options.slider).slideUp(_options.slideSpeed, function(){
							_levelItems.removeClass(_options.activeClass);
						})
					}
				}
				return false;
			});
			if(_holder.hasClass(_options.activeClass)) _slider.show(); else _slider.hide();
		});
	});
}

