var URL_SOAP_ACCOUNT = "/site/controller/AccountService.asmx";

var divAdvertisement;

window.ecomUserSettings = {
	onAddToCart: websiteAddToCart,
	onProcessShipping: processShipping,
	onBeforeShowCart: beforeShowCart,
	onAfterShowCart: afterShowCart	
};

$(document).ready(function() {

	$('#advert_slide').innerfade({ animationtype: 'fade', speed: 1000, timeout: 7000, type: 'sequence', containerheight: '220px' });
	/*
	divAdvertisement = document.getElementById("slideshow");
			
	if (divAdvertisement)
	{
		$("#slideshow a[rel='slide']").crossf4de({
			callBack: slideshowCallback,
			fadeDuration: 1000,
			pauseDuration: 7000			
		});
	}	
	*/
	
	$("area[rel^='prettyPhoto']").prettyPhoto();				
	$(".gallery:first a[rel^='prettyPhoto']").prettyPhoto({animation_speed:'normal',slideshow:10000,  hideflash: true});	
		
	updateMissing();
});


function showMenu(sender)
{
	var mainMenus = $(".divMainMenuItem a");
	var index;
	for (var i = 0; i < mainMenus.length; i++)
	{
		mainMenus[i].className = "";
		if (mainMenus[i] == sender)
		{
			mainMenus[i].className = "selected";
			index = i;
		}
	}
	var subMenus = $(".divHiddenSubMenu");
	if (index != undefined)		
 		document.getElementById("divSubMenu").innerHTML = subMenus[index].innerHTML;
}


function slideshowCallback(Items, Index) {
	
	var link = Items[Index][1];
	var clickHandler = null;
	var mouseStyle = "";
	if (link)
	{
		clickHandler = function() { document.location = link };
		mouseStyle = "pointer";
	}
	divAdvertisement.onclick = clickHandler;
	divAdvertisement.style.cursor = mouseStyle; 
}


function updateMissing()
{		
	if (document.getElementById("spanMissing"))
	{
		var qty = EcomUI.GetTotalQuantity();
		var message = "Missing {0} items for level {2}.{1}";
		var level = "";
		var nextlevel = "1";
		var missing = level1_nb - qty;
				
		if (qty > level4_nb)
		{
			level = "4";
			message = "You are at level {1}.{0}{2}";
			missing = "";
			nextlevel = "";
		}
		else
		{
			if (qty >= level3_nb)
			{			
				level = "3";	
				nextlevel = "4";
				missing = level4_nb - qty;
				if (missing > 1)
				{
					message = "You are at level {1} - Missing {0} items for level {2}.";
				}
				else
				{
					message = "You are at level {1} - Missing {0} item for level {2}.";
				}
			}
			else
			{
				if (qty >= level2_nb)
				{					
					level = "2";	
					nextlevel = "3";
					missing = level3_nb - qty;
					if (missing > 1)
					{
						message = "You are at level {1}, Missing {0} items for level {2}.";
					}
					else
					{
						message = "You are at level {1}, Missing {0} item for level {2}.";
					}
				}			
				else
				{			
					if (qty >= level1_nb)
					{
						level = "1";	
						nextlevel = "2";
						missing = level2_nb - qty;
						if (missing > 1)
						{
							message = "You are at level {1}, Missing {0} items for level {2}.";
						}
						else
						{
							message = "You are at level {1}, Missing {0} missing item for level {2}.";
						}						
					}			
				}			
			}
		}	
		document.getElementById("spanMissing").innerHTML = String.format(message, missing, level, nextlevel);
	}
}

function beforeShowCart()
{	
	var qty = EcomUI.GetTotalQuantity();
		
	for (var i = 0; i < Order.data.items.length; i++)
	{
		var price = Order.data.items[i].publicprice;
	
		if (qty > level4_nb)
		{
			price = (Math.round((Order.data.items[i].staticprice / level4) * 100)) / 100;
		}
		else
		{
			if (qty >= level3_nb)
			{
				price = (Math.round((Order.data.items[i].staticprice / level3) * 100)) / 100;
			}
			else
			{
				if (qty >= level2_nb)
				{
					price = (Math.round((Order.data.items[i].staticprice / level2) * 100)) / 100;
				}			
				else
				{			
					if (qty >= level1_nb)
					{
						price = (Math.round((Order.data.items[i].staticprice / level1) * 100)) / 100;					
					}				
				}			
			}
		}	
		
		Order.data.items[i].price = parseFloat(price) + parseFloat(Order.data.items[i].extraprice);		
	}
		
	updateMissing();
			
	Order.SaveCartContents(true);
}

function afterShowCart()
{		
	$(".divCoupon").css("display", "none");
}

function websiteAddToCart()
{
	var actualSku = document.getElementById("txtSku").value;
	var qty = document.getElementById("txtQuantity").value;
	var price = document.getElementById("spanPrice").innerHTML.replace(",", ".");
	price = price.replace("$", ""); //Remove the dollar sign
	var desc = document.getElementById("spanDescription").innerHTML;
	var productKey = 1;	
	
	Order.data.items[Order.data.items.length] = {productKey: productKey, sku: actualSku, description: desc, quantity: qty, price: price, publicprice: price, staticprice: price, extraprice: 0};
	beforeShowCart()
	Order.SaveCartContents(true);
	EcomUI.GoToCart();
}

function dealerAddToCart(index)
{
	var actualSku = document.getElementById("txtSku" + index).innerHTML;
	var qty = document.getElementById("txtQty" + index).value;
	var price = document.getElementById("spanPrice" + index).innerHTML.replace(",", ".");
	price = price.replace("$", ""); //Remove the dollar sign
	var desc = document.getElementById("spanDescription" + index).innerHTML;
	var productKey = 1;
	var engraveprice = document.getElementById("drpEngrave" + index).options[document.getElementById("drpEngrave" + index).selectedIndex].value;
	var engravedesc = "";
	var engrave = "";		
	
	if (engraveprice != "0.00")
	{
		engrave = "-E" + document.getElementById("drpEngrave" + index).selectedIndex;		
		var engravetmp = document.getElementById("drpEngrave" + index).options[document.getElementById("drpEngrave" + index).selectedIndex].text;		
		engravedesc = " - Engrave " + engravetmp.split('+')[0];
		
		//engravedesc = " - Engrave " + document.getElementById("drpEngrave" + index).options[document.getElementById("drpEngrave" + index).selectedIndex].text;
	}				
	
	Order.data.items[Order.data.items.length] = {productKey: productKey, sku: (actualSku + engrave), description: desc + engravedesc, quantity: qty, price: price, publicprice: price, staticprice: staticPrice[index -1], extraprice: engraveprice};
	beforeShowCart()
	Order.SaveCartContents(true);	
	EcomUI.CartUpdateHandler();	
	alert("Item(s) were added to the cart.");  
}


function processShipping(Order, Amount)
{
	var total_qty = 0;
	if (Order.data.items.length > 0)
	{
		for (var i = 0; i < Order.data.items.length; i++)
			total_qty += parseFloat(Order.data.items[i].quantity);		
	}

	var returnValue = Amount;
	if (parseFloat(total_qty) > 2)
	{
		if (total_qty <= 20)
			returnValue = Amount + (total_qty - 2) * 2;
		else
			returnValue = 43.50;
	}
	return returnValue;
}

function login_enter(myfield,e) {
	var keycode;
	if (window.event)
		keycode = window.event.keyCode;
	else if (e) keycode = e.which;
		else return true;
	if (keycode == 13) {
		login();
		return false;
	}
	else
	return true;
}

function login()
{
	var security = new SpringBoard.Security();
	
	var UserName = document.getElementById("txtUserName");
	var Password = document.getElementById("txtPassword");
	
	setCookie(Order.CART_CONTENTS, "");	
	security.UserLogin(UserName.value, Password.value, UserLogin_CallBack);
}

function UserLogin_CallBack(succes)
{
	if (succes)
		document.location = "http://www.wholesalecuttingboards.com/dealers/order-form-1.aspx";		
	else
		alert(SBPhrases["LGN_BADPASS"]);	
}

function UserLogout_CallBack()
{
	document.location = "/";
	setCookie(Order.CART_CONTENTS, "");	
}

function DealerLogout_CallBack()
{
	document.location = "/";
	setCookie(Order.CART_CONTENTS, "");	
}

function createaccount()
{	
	var Name = document.getElementById("txtName");	
	var Company = document.getElementById("txtCompany");
	var Phone = document.getElementById("txtPhone");
	var Email = document.getElementById("txtEmail");
	
	var Pwd = document.getElementById("txtPwd");
	var Confirm = document.getElementById("txtConfirm");
	
	var valid = false;
	var requiredFields = "";
	
	if (Name.value == "")
		requiredFields += String.format(SBPhrases["REQUIRED_FIELD"], "Name") + "\n";
		
	if (Phone.value == "")
		requiredFields += String.format(SBPhrases["REQUIRED_FIELD"], "Phone") + "\n";
	
	if (Email.value == "")
		requiredFields += String.format(SBPhrases["REQUIRED_FIELD"], "Email") + "\n";
		
	if (Pwd.value == "") 		
		requiredFields += String.format(SBPhrases["REQUIRED_FIELD"], "Password") + "\n";
	
	if (requiredFields == "")
	{
		if (Pwd.value.length <= 5)		
			requiredFields += "Password must be greater than 5 characteres." + "\n";
	}
	
	if (requiredFields == "")
	{
		if (Pwd.value != Confirm.value)		
			requiredFields += SBPhrases["CONFIRM_PASSWORD"] + "\n";
	}
	
	if (requiredFields == "")
	{
		// Valid Email
		var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (!filter.test(Email.value))
			requiredFields += "Email address is not valid." + "\n";
	}
	
	if (requiredFields != "")
	{
		alert(requiredFields);		
	}
	else
	{		
		var account = {	name: Name.value, company: Company.value, email: Email.value, phone: Phone.value, password: Pwd.value };
		
		pl = new SOAPClientParameters();
		pl.add("Account", $.toJSON(account));
		pl.add("CultureCode", board_culture);		
				
		SOAPClient.invoke(URL_SOAP_ACCOUNT, "CreateAccount", pl, true, function(data) {		
			//var message = eval("'" + data + "'");
			alert(data);
		});		
		
	}
}

function activate()
{
	var Code = document.getElementById("txtActivation");	
	
	if (Code.value == "")
	{
		alert(String.format(SBPhrases["REQUIRED_FIELD"], "Activation code"));
	}
	else
	{
		pl = new SOAPClientParameters();		
		pl.add("Code", Code.value);	
		pl.add("CultureCode", board_culture);
				
		SOAPClient.invoke(URL_SOAP_ACCOUNT, "ActivationAccount", pl, true, function(data) {			
			alert(data);
		});	
	}
}

function SendPassword()
{
	var security = new SpringBoard.Security();
	security.SendPasswordReminder();
}

function ResetPassword()
{
	var newPassword = document.getElementById("txtPassword").value;
	
	if (newPassword == "")
	{
		alert(String.format(SBPhrases["REQUIRED_FIELD"], "New password"));
	}
	else
	{
	var security = new SpringBoard.Security();
	security.ResetPassword();
	}	
}
