(function ($) {

	var _methods = {};

	_methods._click = function (_evt, _btn) {
		var _scope = this;
		if ('block' == _scope.find('.dropdown-content').css('display')) {
			_scope.find('.dropdown-content').hide();
		}
		_scope.find('.dropdown-content').hide();
		_scope.find('.dropdown').html($(_btn).html()).data('redirect', $(_btn).data('link'));
		_evt.stopPropagation();
		return false;
	};

	_methods._dropdown_show = function (_evt) {
		var _scope = this;
		$(_scope).parent().find('.dropdown-content').show();
		return false;
	};

	$.fn.locDropdown = function (_opts) {

		var _scope = this;

		/** Attach dropdown to html */
		var _html = '<div class="dropdown-content"><ul>';

		for (var _i in _opts) {
			_html += '<li><a href="' + _opts[_i]['href'] + '">' + _opts[_i]['text'] + '</a></li>';
		}

		_html += '</ul></div>';

		$(_scope).find('.dropdown').after(_html);
		$(_scope).find('.dropdown').click(_methods._dropdown_show);
		$(_scope).find('.dropdown-btn').click(_methods._dropdown_show);

		/** Events */
		var _dc = $(_scope).find('.dropdown-content');

		_dc.find('a').each(function () {
			$(this).data('link', $(this).attr('href'));
			$(this).attr('href', '#');
		});
		_dc.find('a').click(function (_evt) {
			_methods._click.apply(_scope, [_evt, this]);
			return false;
		});

		$(_scope).find('.go-btn').click(function () {
			var _redirect = $(_scope).find('.dropdown').data('redirect');
			if (null == _redirect) {
				window.alert('Please choose a location first.');
			}
			else {
				location.href = _redirect;
			}
			return false;
		});

	};

	$(document).click(function (_evt) {
		if ($(_evt.target).hasClass('dropdown-btn') || $(_evt.target).hasClass('dropdown')) {
			return;
		}
		$('.dropdown-content').hide();
	});

})(jQuery);
