$(function(){
	ajaxLoaderLayer = $("#atcAtwLayer");
	ajaxLoaderLayer.bhLayer({
		openerSelector: false,
		posParentSelector: false,
		modal: true
	}).bind("onBeforeShow", function(){
		$(this).bhLayer("posParent", ".alParent");
		$(this).bhLayer("posParent").stopLoading();
		$(this).find(".popupLayerHeader h2").html($(this).find("h2.header").html());
	}).bind("onAfterShow", function(){
		if(ajaxLoaderLayer.parent().hasClass("atwLayerLoader")) ajaxLoaderLayer.scrollTo(250, 75);
	}).delegate("a.forgotPassword", "click", function(){
		$(".forgotPass").find("img").attr("src", $(".forgotPass img").attr("rel"));
			
		var myImg = $(".captchaImage");
			myImg.attr("src", myImg.attr("rel") + "?refresh=" + widgets.timeStamp());
			$(".changeCaptcha").click(function(){
				myImg.loading().one("load", function(){$(this).parent().stopLoading();});			
				myImg.attr("src", myImg.attr("rel") + "?refresh=" + widgets.timeStamp());
				return false;
			});
		
		ajaxLoaderLayer.find(".ajaxLayerFormSection").slideUp();
		ajaxLoaderLayer.find(".forgotPass").slideDown();
		return false;
	}).delegate(".ajaxLayerFormButton", "click", function(){
		openLayer = '';
		var myAtcForm = $(this).closest(".addToCartForm")
		if( myAtcForm.find("[name=openLayer]") != null && myAtcForm.find("[name=openLayer]").val() != undefined)
			openLayer = myAtcForm.find("[name=openLayer]").val();
		if($(this).hasClass("sprBtnLOGIN")){
			$(this).loading();
			DWRHelper.loginFromLayer(myAtcForm.find("[name=login]").val(),myAtcForm.find("[name=password]").val(),
			myAtcForm.find("[name=sku]").val(),myAtcForm.find("[name=is]").val(),myAtcForm.find("[name=q]").val(),
			 $("#moveCartToWish").val(),openLayer,myAtcForm.find("[name=labelId]").val(),myAtcForm.find("[name=useMainItemSku]").val(),
			 $.proxy(function(data) {
				if(data == '<p>logged in</p>'){
					if($(this).is(".moreAcc .ajaxLayerFormButton ")) openAccCat = $(this).closest(".moreAcc").attr("id").slice(4);
					else openAccCat = null;
					setCartInfo(ajaxLoaderLayer.findInAlParent(".addToWish").attr("id"), openAccCat);
				}else{
					if( openLayer != '' && data.indexOf('ajaxLayerFormSection') == -1 ){
						var myAtwId = ajaxLoaderLayer.findInAlParent(".ajxBtn").attr("id");
						ajaxLoaderLayer.bhLayer('hide').appendTo("body");
						updateCart(data);
						updateLogin();
						openWlLayer(myAtwId);
					}else
						dwr.util.setValue("atcAtwLayerMainContent", data, { escapeHtml:false });
				}
			}, $(this)));
		}else if($(this).hasClass("newAccount")){
			$(this).loading();
			DWRHelper.newAccountFromLayer(myAtcForm.find("[name=fName]").val(),myAtcForm.find("[name=lName]").val(),
			myAtcForm.find("[name=sEmail]").val(),myAtcForm.find("[name=retypedNewEmailAddress]").val(),
			myAtcForm.find("[name=sPassword]").val(),myAtcForm.find("[name=sPassword2]").val(),
			myAtcForm.find("[name=sku]").val(),myAtcForm.find("[name=is]").val(),myAtcForm.find("[name=q]").val(),
			 $("#moveCartToWish").val(), openLayer,myAtcForm.find("[name=labelId]").val(),myAtcForm.find("[name=useMainItemSku]").val(),
			 $.proxy(function(data) {
				if(data == '<p>logged in</p>'){
					if($(this).is(".moreAcc .ajaxLayerFormButton ")) openAccCat = $(this).closest(".moreAcc").attr("id").slice(4);
					else openAccCat = null;
					refreshOpenLayer(ajaxLoaderLayer.findInAlParent(".addToWish").attr("id"), openAccCat);
				}else{
					if( openLayer != '' && data.indexOf('ajaxLayerFormSection') == -1 ){
						var myAtwId = ajaxLoaderLayer.findInAlParent(".ajxBtn").attr("id");
						ajaxLoaderLayer.bhLayer('hide').appendTo("body");
						updateCart(data);
						updateLogin();
						openWlLayer(myAtwId);
					}else
						dwr.util.setValue("atcAtwLayerMainContent", data, { escapeHtml:false });
				}
			}, $(this)));
		}else if($(this).hasClass("password")){
			$(this).loading();			
			DWRHelper.forgotPasswordFromLayer( myAtcForm.find("[name=forgotEmailAddress]").val(), $("#moveCartToWish").val(), myAtcForm.find("[name=captchaAnswer]").val(),
			 function(data) {


				dwr.util.setValue("atcAtwLayerMainContent", data, { escapeHtml:false });
				$(".forgotPass").find("img").attr("src", $(".forgotPass img").attr("rel"));
			});
			
			
			
			
		}else if($(this).hasClass("atwLayerGo")){
		
			var skus = new Array(), itemSources = new Array();
			var i = -1 ;
			
			$("input:checkbox[value=selectedItem]").each(function(){
				if($(this).is(":checked")){
					var addToCartForm = $(this).closest(".addToCartForm");
					skus[++i] = addToCartForm.find("input[name='sku']").val();
					itemSources[i] = addToCartForm.find("input[name='is']").val();
				}
			});
		
			var wishList = new Array();
			var inputs = $(this).closest(".ajaxLayerBottom").find(".existingWishLists input:checked");
			inputs.each(function(){ 
				wishList[inputs.index(this)] = $(this).attr("value");
			});
			var formElems = $(this).closest(".addToCartForm");
			if(formElems.length == 0) formElems = $(this).closest(".alParent").find(".addToCartForm");
			var isInAnyWishList = $(this).closest(".ajaxLayerBottom").find("[name=isInAnyWishList]").val();
			var newListCheck = $(this).closest(".ajaxLayerBottom").find(".newWishList input:checked").val();
			var newList = "";
			
			if(newListCheck == 'checked')
				newList = $(this).closest(".ajaxLayerBottom").find(".newWishListText").val();
			
			if(newListCheck == 'checked' && newList =='')
			{
				alert("Please enter the name of the new wish list");
				return false;
			}
			
			if(wishList=='' && newListCheck != 'checked' && isInAnyWishList != 'true')
			{
				alert("Please select a wishlist");
				return false;
			}
	
			//myLoader = $(this).closest(".atwLayerLoader");
			myListId = $("#wishList").find("input[name='listId']");
			deleteItem = $(this);
			//$(this).closest(".ajaxLayerBottom").hide();
			//$(this).closest(".ajaxLayerBottom").siblings(".addingToWishListLoader").show();
			$(this).loading();
			
			DWRHelper.addToWishList(myAtcForm.find("[name=sku]").val(),myAtcForm.find("[name=is]").val(),
			 myAtcForm.find("[name=q]").val(),wishList.join(","),newList,$("#moveCartToWish").val(),
			 myListId.val() != null && wishList.join(",").indexOf(myListId.val()) == -1,myAtcForm.find("[name=hiddenNote]").val(),formElems.find("[name=bu]").val(),formElems.find("[name=installSku]:checked").val(), skus, itemSources,
			 function(data) {
			 if(data == '<p>logged in</p>')
			 {
				delete_cookie ('TopBarCart');
				window.location.href = window.location.pathname + "/find/cart.jsp";
			 }
			 else if(myListId.val() != null && wishList.join(",").indexOf(myListId.val()) == -1)
			 {
				if($("#moveCartToWish").val() != null && $("#moveCartToWish").val().indexOf("moveItemOut") != -1 )
				{
					dwr.util.setValue("wishListTotal", data, { escapeHtml:false });
					deleteItem = deleteItem.closest(".addToCartForm");
					ajaxLoaderLayer.appendTo("body").stopLoading().bhLayer("hide");
					deleteItem.remove();
					sortItems();
				}
				else
					window.location.href = window.location.pathname + "/find/WishList2_logged.jsp";
			 }
			 else if($("#moveCartToWish").val() == null || $("#moveCartToWish").val().indexOf("moveItemOut") != -1 )
			 {
					dwr.util.setValue("atcAtwLayerMainContent", data, { escapeHtml:false });
					//myLoader.find(".atwLayer").load().show(1, runLive);
					ajaxLoaderLayer.findInAlParent(".addToWishListButton").hide();
					if(wishList=='' && newList=='')
					{    
						ajaxLoaderLayer.findInAlParent(".addToWishListButton").show().siblings(".inWishListButton").hide();
					}
					else{
						var prodId;
						if(prodId = ajaxLoaderLayer.closest("form.addToCartForm").attr("data-product")){
							$(".addToCartForm[data-product='" + prodId + "']").each(function(){
								$(this).find(".addToWishListButton").hide().siblings(".inWishListButton").show();
							});
						}else{
							ajaxLoaderLayer.findInAlParent(".inWishListButton").show();
						}
					}
				}
				else
					window.location.href = window.location.pathname + "/find/WishList2_logged.jsp";
			});
			return false;
			
			
			
			
			
			
		}else if($(this).hasClass("notfiyMe")){
			$(this).loading();
			DWRHelper.notifyMe(myAtcForm.find("[name=notifyEmail]").val(),
			myAtcForm.find("[name=sku]").val(),myAtcForm.find("[name=is]").val(),myAtcForm.find("[name=nis]").val(),
			 function(data) {
				dwr.util.setValue("atcAtwLayerMainContent", data, { escapeHtml:false });
			});
		}
		return false;
	}).delegate("input", "keypress", function(e){
		if(e.which == 13){
			$(this).closest(".ajaxLayerFormSection").find(".ajaxLayerFormButton ").click();
			return false;
		}else if($(this).hasClass("newWishListText")){
			$(this).findInAlParent("input.newWishList").attr("checked","checked");
		}
	}).delegate(".ajaxLayerCloseLink", "click", function(){
		ajaxLoaderLayer.bhLayer("hide");
	});
	$(".ajxBtn").live("click", function(){
		//attempt to prevent adding multiple items to the cart
		//$(this).click(function(){return false;});
		$this = this;
		$(this).loading();
		ajaxLoaderLayer.data("currButton", $(this).closest(".alParent"))
		$(".openBhLayer").bhLayer("autoHide");
		if($(this).hasClass("atcImage")){
			$(this).parents().siblings(".quantity").css("opacity", "0");
			$(this).parents().siblings("input.atcForminput").css("opacity", "0");
			$(this).parent().siblings(".atcLayerLoader").append($("#atcAtwLayer"));
			var formElems = $(this).closest(".addToCartForm");
			if( formElems[0].protectionPlans != null && formElems[0].protectionPlans != undefined )
				formElems.find("#warranty").val(formElems.find(".protectionPlans  input[name|=protectionPlans]:checked").val());
			DWRHelper.addToCart (formElems.find("[name=sku]").val(),formElems.find("[name=is]").val(),
			 formElems.find("[name=q]").val(),formElems.find("[name=addedTroughType]").val(),
			 formElems.find("[name=addedTroughValue]").val(),formElems.find("[name=warranty]").val(),
			 formElems.find("[name=m]").val(),$("#wishList").find("input[name='listId']").val(),formElems.find("[name=labelId]").val(),formElems.find("[name=openLabelId]").val(),
			 ((formElems.find("[name=addedTroughType]").val() == 'accessory_cart') ? formElems.find("[name=installSku]").val() : formElems.find("[name=installSku]:checked").val()),	 
			 function(data) {
				if( formElems.find("[name=addedTroughType]").val() == 'accessory_cart'){
					$("#atcAtwLayer").appendTo("body");
					 updateCart(data);
				}
				else if( formElems.find("[name=thisIs]").val() == 'accessory_cart'){
					$($this).stopLoading().hide().siblings(".inCartLink").show();	
					$(".ajaxLoadingImg").each(function(){
						$(this).siblings(".ajxBtn").stopLoading().hide().siblings(".inCartLink").show();
					});				
				}else{
					dwr.util.setValue("atcAtwLayerMainContent", data, { escapeHtml:false });
					var prodId;
					if(prodId = ajaxLoaderLayer.closest("form.addToCartForm").attr("data-product")){
						$(".addToCartForm[data-product='" + prodId + "']").each(function(){
							$(this).find(".addToCartButton").hide().siblings(".inCartButton").show();
						});
					}else{
						ajaxLoaderLayer.data("currButton").find(".addToCartButton").hide().siblings(".inCartButton").show();
					}
					if(! ajaxLoaderLayer.data("currButton").find(".atcImage").hasClass("noLayer")){
						ajaxLoaderLayer.bhLayer("show");
					}else{
						$("#atcAtwLayer").appendTo("body");
					}
					setCartInfo();
				}				
			});
		}else if($(this).is(".addToWish")){
				$(this).findInAlParent(".atwLayerLoader").append($("#atcAtwLayer"));
				var formElems = $(this).closest(".addToCartForm");
				//myLoader = $(this).closest(".alParent").find(".atwLayerLoader");
				//myButton = $(this);
				//document.onkeypress = hijackEnterKey;
				
				DWRHelper.getWishLists(formElems.find("[name=sku]").val(),formElems.find("[name=is]").val(),
				 formElems.find("[name=q]").val(),	
				 function(data) {
					dwr.util.setValue("atcAtwLayerMainContent", data, { escapeHtml:false });
					ajaxLoaderLayer.bhLayer("show");
					//myLoader.find(".atwLayer").load().show(1,runLive);
					//myLoader.siblings(".addingToWishListButton").hide();		    
					//myButton.show();
				});
				
		}else if($(this).hasClass("moveCartToWish")){
				$(this).findInAlParent(".atwLayerLoader").append($("#atcAtwLayer"));
				var formElems = $(this).closest(".addToCartForm");
				DWRHelper.getWishListsForMoveCart(formElems.find("[name=bu]").val(),	
				 function(data) {
					dwr.util.setValue("atcAtwLayerMainContent", data, { escapeHtml:false });
					ajaxLoaderLayer.bhLayer("show");
				});			
			}else if($(this).hasClass("nwisBtn")){
				$(this).findInAlParent(".nmLayerLoader").append($("#atcAtwLayer"));
		/*myLoader = $(this).siblings(".nmLayerLoader");
		myButton = $(this);*/
		DWRHelper.getNotifyMe($(this).closest(".addToCartForm").find("[name=sku]").val(),
		 function(data) {
		    dwr.util.setValue("atcAtwLayerMainContent", data, { escapeHtml:false });
					ajaxLoaderLayer.bhLayer("show");
					
			//Notify when if stock input value manipulations										   
			var theInput = $("input.roundedInput");
			//if empty insert "Enter E-mail"
			if ($(theInput).val() == "")
				{$(theInput).val("Enter E-mail");}
			//if value is "Enter E-mail" then color is grey
			if ($(theInput).val() == "Enter E-mail")
				{$(".roundedInput").css("color", "#999")}
			//on focus clear "Enter E-mail"
			$(theInput).focus(function(){
				if ($(theInput).val() == "Enter E-mail")
				{
					$(theInput).val("");
					$(".roundedInput").css("color", "#000")
				}
			});	
			//on blur in empty reinsert "Enter E-mail"
			$(theInput).blur(function(){
				if ($(theInput).val() == "")
				{
					$(".roundedInput").css("color", "#999");
					$(theInput).val("Enter E-mail");
				}
			});
		});
	
		}
		return false;
	});
	if($.browser.msie){
		ajaxLoaderLayer.bind("onAfterShow", function(){
			$("#footerLinks .international .currency dl.currencySelect").css("position", "static");
		}).bind("onBeforeHide", function(){
			$("#footerLinks .international .currency dl.currencySelect").css("position", "absolute");
		});
	}
	if(queryStringWl( 'openLayer' )!=false)
	{
		var layer = queryStringWl( 'openLayer' );
		openWlLayer(layer);
	}	
	
	$(".sprBtnRemFrmCart").live("click", function()
	{
		$(this).loading();
		sku = $(this).attr("sku");
		is = $(this).attr("is");
		DWRHelper.removeFromCartLayer( sku, is, function( removed ){
			if( removed.indexOf("success") != -1)
				setCartInfo();
		});
		$('input[id$='+sku+'-'+is+'],input[id$='+sku+'_'+is+']').parent('.addToCartButton').show().siblings('.inCartButton').hide();
		return false;
	});	
	

										  

	
});


	function refreshOpenLayer(layer, openAccCat)
	{
		var url = window.location.href;
		if(window.location.href.indexOf('#') != -1)
			url = url.split('#')[0];
		if(openAccCat != null){
			if(window.location.href.indexOf('=') == -1)
				url = url + "/showAllForId/" + openAccCat;
			else
				url = url + "&showAllForId=" + openAccCat;
		}
		if(window.location.href.indexOf('=') == -1)
    		window.location.href = unescape(url) + "/openLayer/" + layer;
    	else
    		window.location.href = unescape(url) + "&openLayer=" + layer;
	}

	function hijackEnterKey(evt)
	{	
		var evt  = (evt) ? evt : ((event) ? event : null);
		
		if (evt.keyCode == 13) {
			if(focusedElem){
				if(focusedElem.closest(".loginLayerSection").length){
					focusedElem.closest(".loginLayerSection").find("input[type='button']").click();
					return false;
				}
				
				focusedElem.closest(".ajaxLayer").find("input[type='button']").click();
				return false;
			}
			return true;
		}
	}
	
	function queryStringWl(parameter) { 
	  var loc = window.location.href;
	  var param_value = false;
	  	  
	  if(loc.indexOf('=') == -1)
	  {
    	  var params = loc.split("/");
		  for (i=0; i<params.length;i++) {
		      param_name = params[i];
		      if (param_name == parameter) {
		          param_value = params[i+1];
		      }
		  }
		  if (param_value) {
		      return param_value;
		  }
		  else {
		      return false;
		  }
      }
      else
      {  
	  	var params = loc.split("&");
		  for (i=0; i<params.length;i++) {
		      param_name = params[i].substring(0,params[i].indexOf('='));
		      if (param_name == parameter) {
		          param_value = params[i].substring(params[i].indexOf('=')+1)
		      }
		  }
		  if (param_value) {
		      return param_value;
		  }
		  else {
		      return false;
		  }
	   }
	}



function delete_cookie ( cookie_name )
{
  var cookie_date = new Date ( );  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie=cookie_name+"=; expires="+cookie_date.toGMTString()+";domain=bhphotovideo.com;path=/";
}

function setCartInfo(refreshLayer, openAccCat)
{
	DWRHelper.getCartInfo(
		 function(cookie) {
			cookieSplit = cookie.split(":");
			if( cookieSplit[0] != '' && getCookie('cartId') != cookieSplit[0])
			{
				now = new Date();
				now.setTime(now.getTime() + 1000 * 24 * 60 * 60 * 30)
				document.cookie = "cartId=" + cookieSplit[0] + ";expires=" + now + ";domain=bhphotovideo.com;path=/";
			}
			document.cookie = "TopBarCart=" + cookieSplit[1] + ";domain=bhphotovideo.com;path=/";
			if(refreshLayer != null)
				refreshOpenLayer(refreshLayer, openAccCat);
			else
			{
				cartCookie = getCookie('TopBarCart');
				if( cartCookie )
				{
					cookieData = cartCookie.split("|");
					$('#cartIcon').html( + cookieData[0] + ' items - ' + '<span id="cartAmount">' + '$' + cookieData[1] + '</span>');
				}
			}
		});
}

function updateLogin()
{
		DWRHelper.getUserInfo(
		 function(data) {
			dwr.util.setValue("loginInfo", data, { escapeHtml:false });
		});
}
 function openWlLayer(layer){
 		openLayer = $("#" + layer);
		ajaxLoaderLayer.one("onAfterShow", function(){
			ajaxLoaderLayer.scrollTo(500, 55);
		});
		if(openLayer.is("#bigAccessories #" + layer)){
			if($("#tabs").data("tabs")){
				$("#tabs").tabs("select", "#bigAccessories");
			}else{
				document.location.hash = "#bigAccessories";
			}
		}
		if(openLayer.hasClass("addToWish")){
			openLayer.click();
		}else{
			openLayer.scrollTo(750, 30, function(){$(this).effect("highlight");});
		}
 }
 
jQuery.fn.findInAlParent = function(selector){return this.closest(".alParent").find(selector)};
jQuery.fn.scrollTo = function(duration, offSetDelta, callback){
	if(! this.length) return this;
	scrollTopDelta = this.offset().top - ((offSetDelta)? offSetDelta : 0);
	$($.browser.webkit? "body" : "html").animate({scrollTop: scrollTopDelta}, duration, $.proxy(callback, this));
	return this;
}
$(function(){
	$("#onePopupLayer").bind("onAfterShow", function () {
		if($(this).hasClass("freeShipLayer"))
		{
			$('.fakeLink').click(function (){
				$('.ups_innovation').slideDown(500);
			});
		}
	});
});

$(function(){
	$("#onePopupLayer").bind("onAfterShow", function () {
		if($(this).hasClass("searchFeedbacklayer"))
		{
			$("span.cencel").click(function(){				
				$("div.close").click();
			});	
			
			// Limit search term characters
			var searchTerm = $("span.searchTerm").text().length;
			
			if (searchTerm > 43)
			{
			var calTotal = searchTerm - 43;
			var ammountAllowed = searchTerm - calTotal - 3;
			var visibleText = $("span.searchTerm").text().substring(0, ammountAllowed);
			var hiddenText = $("span.searchTerm").text().substring(ammountAllowed);
			$("span.searchTerm").html(visibleText + '<span style="display:none;">' + hiddenText + '</span>');			
			$("span.searchTerm").append("...");			
			};
		}
	});
});
