(function($){

//init page
$(function(){
	initOpenClose();
	initAccordion();
	$('ul.tabset').jqueryTabs({
	    holdHeight: false
	});
});
//init open-close
function initOpenClose(){
	var holders = $('.slide-block');
	var activeClass = 'active';
	holders.each(function(){
		var holder = $(this);
		var btnOpen = holder.find('.opener');
		var slide = holder.find('.block');
		
		if(!holder.hasClass(activeClass)){
			slide.slideUp();
		}
		
		btnOpen.click(function(){
			if(!holder.hasClass(activeClass)){
				if (!slide.is(':animated')) {
					holder.addClass(activeClass);
					slide.slideDown();
				}
			}
			else{
				if (!slide.is(':animated')) {
					holder.removeClass(activeClass);
					slide.slideUp();
				}
			}
			return false;
		});
	});
}
//init accordions
function initAccordion() {
    $('.accordion').each(function () {
        var _acc = $(this);
        var _openers = $(".opener", _acc);
        $('.accordion').Accordeon({
            header: '.opener',
            active: _openers.index(_openers.filter('.selected')),
            icons: false
        })
    })

}
// multiAccordeon plugin
$.fn.Accordeon = function (_options) {
    // default options
    var _options = $.extend({
        activeClass: 'active',
        opener: '.opener',
        slider: '.slide',
        slideSpeed: 400,
        animStart: false,
        animEnd: false,
        event: 'click'
    }, _options);

    return this.each(function () {
        // options

        $(this).find('>li').each(function () {

            var _holder = $(this);
            var _slideSpeed = _options.slideSpeed;
            var _activeClass = _options.activeClass;
            var _opener = $('>' + _options.opener, _holder);
            var _slider = $('>' + _options.slider, _holder);
            var _animStart = _options.animStart;
            var _animEnd = _options.animEnd;
            var _event = _options.event;

            if (_slider.length) {
                if (_holder.hasClass(_activeClass)) { _slider.show(); }
                else { _slider.hide(); }

                _opener.bind(_event, function () {
                    _holder.siblings().find('li').removeClass(_activeClass);
                    if (!_slider.is(':animated')) {
                        if (typeof _animStart === 'function') _animStart();
                        if (!_holder.hasClass(_activeClass)) {
                            _holder.siblings().removeClass(_activeClass).find(_options.slider).slideUp(_slideSpeed, function () {
                                if (typeof _animEnd === 'function') _animEnd();
                            });
                            _holder.addClass(_activeClass);
                            _slider.slideDown(_slideSpeed, function () {
                                if (typeof _animEnd === 'function') _animEnd();
                            });
                        }
                    }
                    return false;
                });
            }
        });
    });

}
// jquery tabs plugin
$.fn.jqueryTabs = function (_options) {
    // default options
    var _options = $.extend({
        addToParent: false,
        holdHeight: true,
        activeClass: 'active',
        tabLinks: 'a.tab',
        fadeSpeed: 0,
        event: 'click'
    }, _options);

    return this.each(function () {
        var _holder = $(this);
        var _fadeSpeed = _options.fadeSpeed;
        var _activeClass = _options.activeClass;
        var _addToParent = _options.addToParent;
        var _holdHeight = _options.holdHeight;
        var _tabLinks = $(_options.tabLinks, _holder);
        var _tabset = (_addToParent ? _tabLinks.parent() : _tabLinks);
        var _event = _options.event;
        var _animating = false;

        // tabs init
        _tabLinks.each(function () {
            var _tmpLink = $(this);
            var _tmpTab = $(_tmpLink.attr('href'));
            var _classItem = (_addToParent ? _tmpLink.parent() : _tmpLink);
            if (_tmpTab.length) {
                if (_classItem.hasClass(_activeClass)) _tmpTab.show();
                else _tmpTab.hide();
            }
        });

        // tab switcher
        function switchTab(_switcher) {
            if (!_animating) {
                var _link = $(_switcher);
                var _newItem = (_addToParent ? _link.parent() : _link);
                var _newTab = $(_link.attr('href'));
                //if (_newItem.hasClass(_activeClass)) return;

                var _oldItem = $(_addToParent ? _tabset : _tabLinks).filter('.' + _activeClass);
                var _oldTab = $($(_addToParent ? _oldItem.children('a') : _oldItem).attr('href'));
                if (_newTab.length) {
                    _animating = true;
                    if (_oldItem.length) {
                        _newItem.addClass(_activeClass);
                        _oldItem.removeClass(_activeClass);

                        var _parent = _oldTab.parent();
                        if (_holdHeight) _parent.css({ height: _parent.height() });

                        _oldTab.fadeOut(_fadeSpeed, function () {
                            _newTab.fadeIn(_fadeSpeed, function () {
                                _animating = false;
                            });
                            if (_holdHeight) _parent.css({ height: 'auto' });
                        });
                    } else {
                        _newItem.addClass(_activeClass);
                        _newTab.fadeIn(_fadeSpeed, function () {
                            _animating = false;
                        });
                    }
                }
            }
        }

        // control
        _tabLinks.each(function () {
            $(this).bind(_event, function () {
                switchTab(this);
                return false;
            });
        });
    });
}

////Advanced search
//$(document).ready(function () {
//    $('.AdvancedSearch').each(function () {
//        $(this).click(function () {
//            $(this).prev().toggle('slow');
//            return false;
//        });
//    });
//});
// Search Box Submit on enter
function searchSubmit(txtField, btnField) {
    txtField.keyup(function (e) {
        if (e.keyCode == 13) {
            btnField.click();
        }
    });
} 


})(jQuery);
