(function( $ ){

	$.fn.netrMegaDropdown = function( options ) {
		var self = this;
		var settings = {
			'buttonText': 'Alla våra mässor',
			'container': '.dropdown-body',
			'hiddenClass': 'hidden',
			'activeClass': 'active',
			'timeOutTime': 1000
		};
		return this.each(function(){
			var timeout = {};
			var $this = $(this);
			if ( options ) {
				$.extend( settings, options );
			}
			// Find the dropdown container and prevent clicks on it from bubbling
			var $dropdownBody = $this.find(settings.container).first();
			$dropdownBody.click(function(e) {
				e.stopPropagation();
			});

			// Show dropdown
			function showDropdown() {
				$dropdownBody.removeClass(settings.hiddenClass);
				$button.addClass(settings.activeClass);
				$('html').bind('click.closeMegaDropdown', function (e) {
					hideDropdown();
				});
			}

			// Hide dropdown
			function hideDropdown() {
				$dropdownBody.addClass(settings.hiddenClass);
				$button.removeClass(settings.activeClass);
				$('html').unbind('click.closeMegaDropdown');
			}

			// Create and insert button
			var $button = $('<button type="button"><span><span>' + settings.buttonText + '</span></span></button>');
			$button.click(function(e) {
				e.stopPropagation();
				if ($dropdownBody.hasClass(settings.hiddenClass)) {
					showDropdown();
				} else {
					hideDropdown();
				}
			});
			$this.prepend($button);

			// Close when the ESC key is pressed
			$('html').bind('keyup.closeMegaDropdown', function (e) {
				if (e.keyCode == 27) {
					hideDropdown();
				}
			});
		});
	};

})( jQuery );
