// JavaScript Document

showProgress = function (isShow) {
	var p = $('#progress');
	if (p.length == 0) {
		$("body").append("<div id='progress' class='loading ui-progress'></div>");
		p = $('#progress');
	}
	if (isShow) p.show(); else p.hide();
	return true;
};

function showPlaceOrderProgress() {
	var horizon = $('<div/>')
		.addClass('horizon');

	var progressText = $('<div/>')
		.addClass('progressText')
		.addClass('content')
		.text('Please wait a moment while we complete your order. Please do not close your browser window or navigate away from this page')
		.hide();

	horizon.append(progressText);

	var progress = $("<div/>")
		.attr("id", "placeOrderProgress")
		.addClass("loading")
		.append(horizon);

	$('body').append(progress);

	progress.show();

	progressText
		.css("margin-left", -progressText.outerWidth() / 2)
		.css("margin-top", -progressText.outerHeight() / 2)
		.show();
}

function showPartialProgress(forElement, show, className) {
	var e = $(forElement);
	var p = $('#partialProgress');

	if (p.length == 0) {
		$('body').append("<div id='partialProgress' class='loading ui-progress' style='position:absolute'></div>");
	}
	p = $('#partialProgress');

	if (show) {
		var o = e.offset();
		p.css("top", o.top);
		p.css("left", o.left);
		p.height(e.outerHeight());
		p.width(e.outerWidth());

		if (className) {
			p.addClass(className);
		}

		p.show();
	} else {
		p.remove();
	}
	return true;
}

$(document).ready(function () { 
	$('ul.breadCrumbList li:last').addClass('last');
	$('form:not(.do-not-show-page-progress)').submit(function () { showProgress(true); });
});

function updateDefaultValue(e) {
	var currentTarget, relatedTarget;

	if (!e) {
		e = window.event;
	}

	currentTarget = (window.event) ? e.srcElement : e.target;
	relatedTarget = (e.toElement) ? e.toElement : e.relatedTarget;

	switch (e.type) {
		case 'blur':
			if (currentTarget.value === '') {
				currentTarget.value = currentTarget.defaultValue;
			}
			break;
		case 'focus':
			if (currentTarget.value == currentTarget.defaultValue) {
				currentTarget.value = '';
			}
			break;
	}
}

function showConfirm(messageHtml, formId, delegateFunc) {
	var d = $('#confirmDialog');
	if (d.length == 0) {
		$("#footer").append("<div id='confirmDialog'><div class='confirmHolder'><div class='closeBox'>CLOSE</div><div class='clear msgBox'></div><div class='buttonBox'><div id='confirmOk' class='left button'>Ok</div><div id='confirmCancel' class='left button'>Cancel</div></div></div></div>");
		d = $('#confirmDialog');
	}
	d.dialog({
		autoOpen: false,
		modal: true,
		dialogClass: 'guessDialog',
		width: 300
	});
	d.dialog('open');
	d.find("div.msgBox").html(messageHtml);
	d.find("div.closeBox").click(function () {
		d.dialog('close');
	});
	d.find("#confirmCancel").click(function () {
		d.dialog('close');
	});
	d.find("#confirmOk").click(function () {
		delegateFunc();
		d.dialog('close');
		$('#' + formId).submit();
	});
};

function showShippingCountriesDialog() {
	showQuickViewDalog($("ul.topRightNavLinks"));
}

function showQuickViewDalog(o) {
	var p = [o.width() + o.offset().left - 277 + 6, o.offset().top - 6];
	$('#qvb').dialog("option", "position", p);
	$('#qvb').dialog('open');
}

$(document).ready(function () {

	var o = $("ul.mainNavLinks");
	var p = [o.width() + o.offset().left - 271, o.offset().top];
	$('<div id="qvb"></div>')
		    .dialog({
		    	autoOpen: false,
		    	modal: false,
		    	dialogClass: 'guessDialog',
		    	width: 265,
		    	position: p,
		    	show: 'slide',
		    	hide: 'slide'
		    });

	//ACCORDION BUTTON ACTION
	$('span.dropDown').click(function () {
		if (this.className !== 'dropDown active') {
			$('ul.leftNavLists ul.accordion ul.subNavList').slideUp('normal');
			$(this).next().slideDown('normal');
			$('span.dropDown.active').removeClass('active');
			$(this).addClass('active');
			$('span.dropDown.active ul.subNavList').attr('position', 'relative');
		}
	});

});

function updateAccountInformation() {
	$.getJSON(
		$('#retrieve-account-information-link').attr('href'),
		function (data) {
			$('#signin-status-link').attr('href', data.signInStatusLinkUrl).text(data.signInStatusLinkText);
			$('#profile-link').attr('href', data.profileLinkUrl).text(data.profileLinkText);
			setShoppingBagItemsCount(data.itemsCount);
		}
	)
}


//set default button for the form
function setDefault(formid, buttonid) {
	var buttonKeys = { "EnterKey": 13 };
	$(document).keypress(function (e) {
		if (e.which == buttonKeys.EnterKey) {
			//$('#' + formid).submit();
			$('#' + buttonid).click();
		};
	});
	return false;
}

function getShoppingBagItemsCount() {
	var text = $("#itemsCountLink").html();
	var strCount = text.match('[0-9]');
	return parseInt(strCount);
}

function setShoppingBagItemsCount(count) {
	$("#items-count").html(count);
}

$(document).ready(function () {
	var removedOutOfStockItemsDialog = $('#removedOutOfStockItemsDialog');
	if (removedOutOfStockItemsDialog.length > 0) {
		var dialog = $('<div></div>').html(removedOutOfStockItemsDialog.html()).dialog({
			autoOpen: false,
			modal: true,
			width: 800,
			dialogClass: 'guessDialog'
		});

		dialog.find('.closeSection a').click(function () {
			dialog.dialog('close');
			return false;
		});

		dialog.dialog('open');
	}
});

showQvbDialog = function () {
	window.scrollTo(0, 0);
	$('#qvb').dialog('open');
	setTimeout(function () { $('#qvb').dialog('close'); }, 5000);
};

showItemAddedBox = function (skuId) {
	$.ajax({
		type: "POST",
		url: "/ShoppingBag/GetItemAddedBox",
		data: { 'id': skuId },
		success: function (data) {
			$("#qvb").html(data);
			showQvbDialog();
		},
		error: function (request, status, error) { alert("Sorry! Item could not be added at this time."); },
		complete: function () { }
	});
}

function testFormSubmit(form, sectionSelector, onSuccess) {
	var o = $(sectionSelector);
	var f = $(form);
	closeCallouts();
	showPartialProgress(o, true);
	$.ajax({ url: f.attr('action'), type: 'POST', dataType: 'html',
		data: f.serialize(),
		success: function (data) {
			o.replaceWith(data);
			o = $(sectionSelector);
			showPartialProgress(o, false);
			showCallouts(o);

			if (onSuccess) {
				onSuccess();
			}
		}
	});
}
