jQuery(function ($) {
	(function setupButtons($) {
		var options = {
			'.generic_button': {
			},
			'.change_button': {
				icons: {
					primary: 'ui-icon-refresh'
				}
			},
			'.modify_button': {
				icons: {
					primary: 'ui-icon-pencil'
				}
			},
			'.delete_button': {
				icons: {
					primary: 'ui-icon-trash'
				}
			},
			'.more_button': {
				icons: {
					primary: 'ui-icon-plus'
				}
			},
			'.less_button': {
				icons: {
					primary: 'ui-icon-minus'
				}
			},
			'.go_button': {
				icons: {
					secondary: 'ui-icon-triangle-1-e'
				}
			},
			'.shop_button': {
				icons: {
					primary: 'ui-icon-cart'
				}
			},
			'.email_button': {
				icons: {
					primary: 'ui-icon-mail-closed'
				}
			},
			'.phone_button': {
				icons: {
					primary: 'ui-icon-signal-diag'
				}
			},
			'.search_button': {
				icons: {
					primary: 'ui-icon-search'
				}
			}
		};

		for (var selector in options) {
			$(selector).button(options[selector]);
		}
	})($);


	(function setupTabs($) {
		function selectTab(tabLink) {
			if (tabLink.attr('href').charAt(0) === '#') {
				return;
			}

			var content = tabLink
				.parents('ul')
				.next('div.tabbed-panel-content');

			var contentId = content.attr('id');
			if (!contentId) {
				contentId = Math.random().toString().replace('0.', 'tab-content-');
				content.attr('id', contentId);
			}

			tabLink.attr('href', '#' + contentId);
		}

		$('div.tabbed-panel').each(function () {
			var selectedTabs = $(this).find('.ui-tabs-selected');
			if (selectedTabs.length === 0) {
				var defaultTab = $(this).find('> ul > li').first();
				defaultTab.addClass('ui-tabs-selected');
				selectTab(defaultTab.find('a'));
			}
		});

		$('div.tabbed-panel')
			.find('.ui-tabs-selected a')
				.each(function () {
					selectTab($(this));
				})
			.end()
			.tabs({
				select: function (event, ui) {
					var url = $.data(ui.tab, 'load.tabs');
					if (url) {
						location.href = url.charAt(0) === '/' ? url : $('base').attr('href') + url;
						return false;
					}

					return true;
				}
			});
	})($);


	(function setupWaitOnSubmitForms($) {
		$('form.wait-on-submit').submit(function () {
			var form = $(this);

			var layer = $('<div></div>');
			layer.addClass('wait-on-submit-layer');
			layer.width(form.width());
			layer.height(form.height());

			form.append(layer);
		});
	})($);
});

