﻿var FBSM=window.FBSM;
if(typeof FBSM=='undefined'){FBSM=new Object();FBSM.C=new Object();FBSM.PD=new Object();FBSM.U=new Object();FBSM.SC=new Object();FBSM.W=new Object();FBSM.WC=new Object();FBSM.F=new Object();FBSM.TFG=new Object();FBSM.R=new Object();FBSM.CO=new Object();}
FBSM.CO = new Object();

$(document).ready(function (){
	/* Build loading dialog - Used everywhere*/
	$("#loadingMsg").dialog({
		dialogClass: "pd-loading-msg",
		closeOnEscape: false,
		draggable: false,
		autoOpen: false,
		resizable: false,
		width: 40,
		height: 40,
		focus: function(e,i) { 
			$(".pd-loading-msg").css("padding", "0").css("border", "0").find(".ui-dialog-titlebar").hide();
			$(this).attr("style","padding:0;height:40px;width:40px;overflow:hidden;").dialog("option", "position", "center");
		}
	});
	//View cart tax calculation form
	if($("#cartBillingTaxForm").length > 0){
		$("#cartBillingTaxForm").dialog({
			autoOpen: false,
			title: "Enter Billing Country, Region, and City",
			modal: true,
			width: 475,
			height: 200,
			buttons: {"Apply": function(){FBSM.CO.applyCartBillingTax();}}
		});
	}
	//Full asset dialog
	if($("#cartAssetFull").length != 0){
		$("#cartAssetFull").dialog({
			autoOpen: false,
			modal: true,
			width: 450,
			height: 350,
			buttons: {"Ok": function(){$(this).dialog('close');}}
		});
	}
	if($("#emailCartForm").length != 0){
		$("#emailCartForm").dialog({
			autoOpen: false,
			title: "Save and Email Cart",
			modal: true,
			width: 550,
			autoResize:true,
			buttons: {"Submit": function(){FBSM.CO.saveEmailCart();}}
		});
	}
	if($("#ccFrameEnabled").length != 0){
		FBSM.CO.initCCCheck();
	}
	if($('#requiredFields').length > 0){
		FBSM.CO.requiredFieldForm();
	}
	$('#cartBillingTaxForm').keydown(function(e) {
		if (e.keyCode == 13) {
			FBSM.CO.applyCartBillingTax();
			return false;
		}
	});
	$('#cart-email1,#cart-email2,#cart-password').keydown(function(e) {
		if (e.keyCode == 13) {
			$("#co-checkout-button").click();
			return false;
		}
	})
	$('#recoveryEmail').keydown(function(e) {
		if (e.keyCode == 13) {
			FBSM.CO.recoverPassword();
			return false;
		}
	})
});
FBSM.CO.checkoutToggle = function(element){
	if(!$('#'+$(element).val()).is(':visible'))
		$('div.co-expand-options:visible').slideUp();
	$('#'+$(element).val()).slideDown();
}
FBSM.CO.getCartHeaderHtml = function(){
$.ajax({
		type: 'POST',
		url: "Services/ShopCart.aspx",
		data: "cartAction=getCartHeaderHtml",
		dataType: "html",
		success: function(cartHeader){
			if(cartHeader!=''){
				$("#cartHeader").html(cartHeader);
				FBSM.CO.getCartItemsHtml();
			}
		}
	});
}
FBSM.CO.getCartItemsHtml = function(){
$.ajax({
		type: 'POST',
		url: "Services/ShopCart.aspx",
		data: "cartAction=getCartItemsHtml",
		dataType: "html",
		success: function(cartItems){
			if(cartItems!=''){
				$("#cartItems").html(cartItems);
				FBSM.CO.getCartTotalsHtml();
			}
		}
	});
}
FBSM.CO.getCartTotalsHtml = function(){
$.ajax({
		type: 'POST',
		url: "Services/ShopCart.aspx",
		data: "cartAction=getCartTotalsHtml",
		dataType: "html",
		success: function(cartTotals){
			if(cartTotals!=''){
				$("#cartTotals").html(cartTotals);
				
				if($("#cartLoginForm").length > 0){
					FBSM.CO.getCartAltMethodsHtml();
				}else if($("#referral").length > 0){
					FBSM.CO.getReferralHtml($("#referralPostal").val());
				}
			}
		}
	});
}
FBSM.CO.getCartAltMethodsHtml = function(){
$.ajax({
		type: 'POST',
		url: "Services/ShopCart.aspx",
		data: "cartAction=getCartAltMethodsHtml",
		dataType: "html",
		success: function(cartAltMethods){
			$("#cartAltMethods").html(cartAltMethods);
			FBSM.CO.getCartLoginHtml();
		}
	});
}
FBSM.CO.getCartLoginHtml = function(){
	$.ajax({
		type: 'POST',
		url: "Services/ShopCart.aspx",
		data: "cartAction=getCartLoginForm",
		dataType: "html",
		success: function(cartLogin){
			$("#cartLoginForm").html(cartLogin);
			$("#loadingMsg").dialog("close");
		}
	});
}
FBSM.CO.getReferralHtml = function(PostalCode){
	$("#loadingMsg").dialog("open");
	$.ajax({
			type: 'POST',
			url: "Services/ShopCart.aspx",
			data: "cartAction=getReferralHtml&postal=" + PostalCode,
			dataType: "html",
			error: function(){$("#loadingMsg").dialog("close");},
			success: function(referralHtml){
				$("#referral").html(referralHtml);
				$("#loadingMsg").dialog("close");
			}
	});
}
FBSM.CO.getBillShippingForm = function(){
$("#loadingMsg").dialog("open");
$.ajax({
		type: 'POST',
		url: "Services/ShopCart.aspx",
		data: "cartAction=getBillingShippingForm",
		dataType: "html",
		error: function(){$("#loadingMsg").dialog("close");},
		success: function(formHtml){
			$("#info").html(formHtml);
			$("#loadingMsg").dialog("close");
		}
	});
}
FBSM.CO.removeCartItem = function(itemId){
	$("#messageList").html('');
	$("#loadingMsg").dialog("open");
	$.ajax({
		type: 'POST',
		url: "Services/ShopCart.aspx",
		data: "cartAction=removeItem&itemId=" + itemId,
		dataType: "html",
		success: function(cartResponse){
			if(cartResponse=='')
				FBSM.CO.getCartHeaderHtml();
		}
	});
}
FBSM.CO.updateCartTotals = function(){
	$("#messageList").html('');
	var itemQuantityList="";
	$('input[id^=cartItemQuantity]').each(function() {
		itemQuantityList += $(this).attr("itemId")+':'+$(this).val()+'|';
	});
	if(itemQuantityList!=''){
		$("#loadingMsg").dialog("open");
		$.ajax({
			type: "POST",
			url: "Services/ShopCart.aspx",
			data: "cartAction=updateTotals&itemQuantitylist=" + itemQuantityList,
			dataType: "html",
			success: function(cartResponse){
				if(cartResponse=='')
					FBSM.CO.getCartHeaderHtml();
			}
		});
	}
}
FBSM.CO.applyCartPromotions = function(){
	$("#messageList").html('');
	$("#loadingMsg").dialog("open");
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=updatePromotions&promotionList=" + $("#cartPromotions").val(),
		dataType: "html",
		success: function(cartResponse){
			if(cartResponse != ''){
				$("#messageList").html(cartResponse);
			}
			FBSM.CO.getCartItemsHtml();
		}
	});
}
FBSM.CO.applyCartBillingTax = function(){
	$("#messageList").html('');
	$("#loadingMsg").dialog("open");
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=applyCartBillingTax&bCountry=" + $("#billing-country").val() + "&bRegion=" + $("#billing-region").val() + "&bCity=" + $("#billing-city").val(),
		dataType: "html",
		error: function(){$("#loadingMsg").dialog("close");},
		success: function(cartResponse){
			if(cartResponse.indexOf('error') == -1){
				FBSM.CO.getCartItemsHtml();
			}else{
				FBSM.CO.displayMessages(cartResponse);
			}
			$("#loadingMsg").dialog("close");
		}
	});
	$("#cartBillingTaxForm").dialog('close');
}
FBSM.CO.applyShippingChange = function(){
	$("#messageList").html('');
	$("#loadingMsg").dialog("open");
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=applyShippingCharge&shippingMethod=" + $("#cartShippingOptions").val(),
		dataType: "html",
		success: function(cartResponse){
			if(cartResponse=='')
				FBSM.CO.getCartTotalsHtml();
			else
				$("#loadingMsg").dialog("close");
		}
	});
}
FBSM.CO.saveEmailCart = function(){
	$("#loadingMsg").dialog("open");
	
	var cName = $("#customerName").val();
	var cEmail = $("#customerEmail").val();
	var cCaptcha = $("#seCaptcha").val();
	var lGuid = $("#linkGuid").val();
	
	var newsLetter = $("#newsletterSignup").attr('checked');
	var sendFriend = $("#sendFriend").attr('checked');
	
	var emailFriend = "";
	var msgFriend = "";
	
	if(sendFriend){
		emailFriend = $("#friendEmail").val();
		msgFriend = $("#friendMessage").val().replace(/</g, '#60;').replace(/>/g, '#62;');
	}
	 var paramList = "&cName=" + cName + "&cEmail=" + cEmail + "&cCaptcha=" + cCaptcha + "&lGuid=" + lGuid + "&nLetter=" + newsLetter + "&sFriend=" + sendFriend + "&fEmail=" + emailFriend + "&fMsg=" + msgFriend;
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=saveAndEmail" + paramList,
		dataType: "html",
		error: function(){
			$("#loadingMsg").dialog("close");
		},
		success: function(cartResponse){
			$("#customerName,#customerEmail,#seCaptcha,#friendEmail").removeClass("angry");
			$("#msg").hide();
			
			$("#loadingMsg").dialog("close");
			if(cartResponse.indexOf("error") > -1){
				var fields = cartResponse.split(":");
				var ctrls = fields[2].split("|");
				for(i=0;i<ctrls.length-1;i++){
					$("#" + ctrls[i]).addClass("angry");
				}
				$("#msg").html(fields[1]);
				$("#msg").show();
			}else{
				$("#emailCartForm").dialog("close");
			}
		}
	});
}
FBSM.CO.initPaymentMethod = function(Method){
	$("#loadingMsg").dialog("open");
	var addParams = '';
	if(Method == 'credit card'){
		if($('input[name=checkouttype]').length > 0){
			if($('input[name=checkouttype]:checked').val() == 'existing-user-options')
				addParams = "&new=0&email=" + $('#cart-email2').val() + "&password=" + $('#cart-password').val();
			else
				addParams = "&new=1&email=" + $('#cart-email1').val();
		}else{
			addParams = "&loggedIn=1";
		}
	}
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=initPaymentMethod&method=" + Method + addParams,
		dataType: "html",
		success: function(cartResponse){
			if(cartResponse.indexOf('error') == -1){
				window.location = cartResponse;
			}else{
				var msg = cartResponse.split(':')
				$("#loginMessage").html(msg[1]);
			}
			$("#loadingMsg").dialog("close");
		}
	});
}
FBSM.CO.InitPurchaseOrder = function(){
	$("#loadingMsg").dialog("open");
	var billingElems = new Array('purchase-order','billing-firstname','billing-lastname','billing-address1','billing-address2','billing-city','billing-region','billing-postal','billing-country','billing-phone','billing-email', 'shipping-notes');
	var shippingElems = new Array('shipping-firstname','shipping-lastname','shipping-address1','shipping-address2','shipping-city','shipping-region','shipping-postal','shipping-country','shipping-phone');

	var parameterList = '';
	for(i=0;i<billingElems.length;i++){
		parameterList += '&' + billingElems[i] + '=' + $('#' + billingElems[i]).val();
	}
	if($('#co-sab:checked').length==0){
		for(i=0;i<shippingElems.length;i++){
			parameterList += '&' + shippingElems[i] + '=' + $('#' + shippingElems[i]).val();
		}
	}else{
		parameterList += '&shipping-billing=1';
	}
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=initPurchaseOrder" + parameterList,
		dataType: "html",
		success: function(cartResponse){
			if(cartResponse.indexOf('error') == -1){
				window.location = cartResponse;
			}else{
				$(".co_input_error").removeClass('co_input_error');
				var msg = cartResponse.split(':');
				$("#messageList").html(msg[1]);
				var elems = msg[2].split('|');
				
				for(var I=0;I<elems.length-1;I++){
					if(elems[I]=="billing-region" || elems[I]=="shipping-region")
						$("#" + elems[I]).parent().addClass('co_input_error');
					else
						$("#" + elems[I]).addClass('co_input_error');
				}
				scroll(0,0);
			}
			$("#loadingMsg").dialog("close");
		}
	});
}
FBSM.CO.InitPayInStore = function(){
	$("#loadingMsg").dialog("open");
	var billingElems = new Array('purchase-order','billing-firstname','billing-lastname','billing-address1','billing-address2','billing-city','billing-region','billing-postal','billing-country','billing-phone','billing-email', 'shipping-notes');

	var parameterList = '';
	for(i=0;i<billingElems.length;i++){
		parameterList += '&' + billingElems[i] + '=' + $('#' + billingElems[i]).val();
	}
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=initPayInStore" + parameterList,
		dataType: "html",
		success: function(cartResponse){
			if(cartResponse.indexOf('error') == -1){
				window.location = cartResponse;
			}else{
				$(".co_input_error").removeClass('co_input_error');
				var msg = cartResponse.split(':');
				$("#messageList").html(msg[1]);
				var elems = msg[2].split('|');
				
				for(var I=0;I<elems.length-1;I++){
					if(elems[I]=="billing-region")
						$("#" + elems[I]).parent().addClass('co_input_error');
					else
						$("#" + elems[I]).addClass('co_input_error');
				}
				scroll(0,0);
			}
			$("#loadingMsg").dialog("close");
		}
	});
}
FBSM.CO.completeOrder = function(){
	$("#loadingMsg").dialog("open");
	var comments = $("#shipping-notes").val();
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=completeCheckout&cmnts=" + comments,
		dataType: "html",
		success: function(cartResponse){
			if(cartResponse.indexOf('error') == -1){
				window.location = cartResponse;
			}else{
				var msgs = cartResponse.split(':');
				$("#messageList").html(msgs[1]);
				scroll(0,0);
			}
			$("#loadingMsg").dialog("close");
		}
	});
}
FBSM.CO.updateRegions = function(Element){
	FBSM.CO.updateRegions(Element, '');
}
FBSM.CO.updateRegions = function(Element, ToSelect){
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=getRegions&country=" + Element.value,
		dataType: "html",
		success: function(cartResponse){
			$("#" + Element.id.replace('country', 'region')).html(cartResponse);
			if(ToSelect != null && ToSelect != '')
				$("#" + Element.id.replace('country', 'region')).val(ToSelect);
		}
	});
}
FBSM.CO.sameAsShipping = function(Element){
	if(Element.checked){
		if($("#shipping-country").val() != $("#billing-country").val()){
			$("#shipping-country").val($("#billing-country").val());
			FBSM.CO.updateRegions($("#shipping-country").get(0), $("#billing-region").val());
		}else{
			$("#shipping-region").val($("#billing-region").val());
		}
		$('input[id^=shipping]').each( function(){
			this.value = $("#" + this.id.replace('shipping', 'billing')).val();
		});
		$('#co-shipping-address input, #co-shipping-address select').attr('disabled', 'disabled');	
	}else{
		$('#co-shipping-address input, #co-shipping-address select').attr('disabled', '');
	}
}
FBSM.CO.initCCCheck = function(){
	setInterval("FBSM.CO.checkCCReturn();", 1000);
}
FBSM.CO.checkCCReturn = function(){
	try{
		var completeFlag = $("#gatewayFrame").contents().find("#ccComplete");
		if(completeFlag != null && completeFlag.val() == "1"){
			completeFlag.val("0");
			var location = $("#gatewayFrame").contents().find("#ccReturn").val();
			if(location != null){
				window.location = $("#gatewayFrame").contents().find("#ccReturn").val();
			}else{
				var redirect = $("#gatewayFrame").contents().find("#ccRedirect").val();
				$("#gatewayFrame")[0].src = (redirect != null ? redirect : $("#gatewayFrame")[0].src);
				$("#messageList").html($("#gatewayFrame").contents().find("#ccError").val());
				scroll(0,0);
			}
		}
	}catch(error){
	}
}
FBSM.CO.displayMessages = function(MsgList){
	var list = MsgList.split("|");
	if(list.length > 1){
		$.ajax({
			type: "POST",
			url: "Services/ShopCart.aspx",
			data: "cartAction=displaymsg&msgList=" + list[1],
			dataType: "html",
			success: function(msgResponse){
				$("#messageList").html(msgResponse);
			}
		});
	}
}
FBSM.CO.updateReferralPostal = function(){
	FBSM.CO.getReferralHtml($("#referralPostal").val());
}
FBSM.CO.login = function(){	
	$("#loadingMsg").dialog("open");
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=login&email=" + $("#account-email").val() + "&password=" + $("#account-password").val(),
		dataType: "html",
		error: function(){$("#loadingMsg").dialog("close");},
		success: function(cartResponse){
			if(cartResponse.indexOf('error') == -1)
				FBSM.CO.getBillShippingForm();
			else{
				var msg = cartResponse.split(':');
				$("#loginMessage").html(msg[1]);
			}
		
			$("#loadingMsg").dialog("close");
		}
	});
}
FBSM.CO.logout = function(){	
	$("#loadingMsg").dialog("open");
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=logout",
		dataType: "html",
		error: function(){$("#loadingMsg").dialog("close");},
		success: function(cartResponse){
			if(cartResponse.indexOf('error') == -1)
				FBSM.CO.getBillShippingForm();
		
			$("#loadingMsg").dialog("close");
		}
	});
}
FBSM.CO.cartLogout = function(){
	$("#loadingMsg").dialog("open");
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=logout",
		dataType: "html",
		error: function(){$("#loadingMsg").dialog("close");},
		success: function(cartResponse){
			if(cartResponse.indexOf('error') == -1)
				FBSM.CO.getCartLoginHtml();
		
			$("#loadingMsg").dialog("close");
		}
	});
}
FBSM.CO.recoverToggle = function(){
	$('#passwordRecovery').toggle();
}
FBSM.CO.recoverPassword = function(){
	$("#loadingMsg").dialog("open");
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=recover&email=" + $('#recoveryEmail').val(),
		dataType: "html",
		error: function(){$("#loadingMsg").dialog("close");},
		success: function(cartResponse){
			$("#loginMessage").removeClass('co-success co-error');
			if(cartResponse.indexOf('error') == -1){
				$("#loginMessage").addClass('co-success');
				$('#recoveryEmail').val('')
				$('#passwordRecovery').toggle();
			}else
				$("#loginMessage").addClass('co-error');
				
			var msg = cartResponse.split(':');
			$("#loginMessage").html(msg[1]);
			$("#loadingMsg").dialog("close");
		}
	});
}
FBSM.CO.requiredFieldForm = function(){
	$("#loadingMsg").dialog("open");
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=requiredFieldForm",
		dataType: "html",
		error: function(){$("#loadingMsg").dialog("close");},
		success: function(cartResponse){
			$("#loadingMsg").dialog("close");
			FBSM.CO.displayRequiredFieldForm(cartResponse);
		}
	});
}
FBSM.CO.saveRequiredFields = function(){
	$("#loadingMsg").dialog("open");

	var shippingElems = new Array('shipping-firstname','shipping-lastname','shipping-address1','shipping-address2','shipping-city','shipping-region','shipping-postal','shipping-country','shipping-phone','shipping-email');

	var parameterList = '';
	for(i=0;i<shippingElems.length;i++){
		parameterList += '&' + shippingElems[i] + '=' + $('#' + shippingElems[i]).val();
	}
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=saveRequiredFields" + parameterList,
		dataType: "html",
		success: function(cartResponse){
			alert(cartResponse);
			if(cartResponse.indexOf('error') == -1){
				window.location = cartResponse;
			}else{
				$(".co_input_error").removeClass('co_input_error');
				var msg = cartResponse.split(':');
				var elems = msg[1].split('|');
				for(var I=0;I<elems.length-1;I++){
					if(elems[I]=="shipping-region" || elems[I]=="shipping-country")
						$("#" + elems[I]).parent().addClass('co_input_error');
					else
						$("#" + elems[I]).addClass('co_input_error');
				}
				scroll(0,0);
			}
			$("#loadingMsg").dialog("close");
		}
	});
}
FBSM.CO.getBillingTaxForm = function(){
	$("#loadingMsg").dialog("open");
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=getBillingTaxForm",
		dataType: "html",
		error: function(){$("#loadingMsg").dialog("close");},
		success: function(cartResponse){
			$("#loadingMsg").dialog("close");
			FBSM.CO.displayCartTaxForm(cartResponse);
		}
	});
}
FBSM.CO.getAssetBody = function(AssetTitle){
	$("#loadingMsg").dialog("open");
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=getAssetBody&assetTitle=" + AssetTitle,
		dataType: "html",
		error: function(){$("#loadingMsg").dialog("close");},
		success: function(cartResponse){
			$("#loadingMsg").dialog("close");
			FBSM.CO.displayCartAsset(AssetTitle, cartResponse);
		}
	});
}
FBSM.CO.getSaveEmailForm = function(){
	$("#loadingMsg").dialog("open");
	$.ajax({
		type: "POST",
		url: "Services/ShopCart.aspx",
		data: "cartAction=getSaveEmailForm",
		dataType: "html",
		error: function(){$("#loadingMsg").dialog("close");},
		success: function(cartResponse){
			$("#loadingMsg").dialog("close");
			FBSM.CO.displaySaveEmailDialog(cartResponse);
		}
	});
}
//----------------------------------------
FBSM.CO.displayRequiredFieldForm = function(FormData){
	$("#requiredFields").html(FormData)
		.css({'text-align':'left'})
		.dialog({
			title: "Missing Required Fields",
			modal: true,
			width: 460,
			height: 500,
			buttons: {"Save": function(){FBSM.CO.saveRequiredFields();}}
		});
}
FBSM.CO.displaySaveEmailDialog = function(FormData){
	$("#emailCartForm").html(FormData).css({'text-align':'left'}).dialog('open');
}
FBSM.CO.displayCartAsset = function(AssetTitle, AssetData){
	$("#cartAssetFull").html(AssetData).css({'text-align':'left'}).dialog("option","title",AssetTitle).dialog('open');
}

FBSM.CO.displayCartTaxForm = function(FormData){
	$("#cartBillingTaxForm").html(FormData).css({'text-align':'left'}).dialog('open');
	$("#billing-country")[0].focus();
}
FBSM.CO.displayPromotionHelp = function(){
	$("#promotionHelpDialog")
		.css({'text-align':'left'})
		.dialog({
			title: "Promotion Codes",
			modal: true,
			width: 350,
			height: 200,
			buttons: {"Ok": function(){$(this).dialog('close');}}
		});
}
