$(function(){
	runCartWishListScripts();
});	
var focusedElem = 0;
function runCartWishListScripts(){
	$(".atwLayerLoader, .nmLayerLoader").load(function(){
		focusedElem = 0;
		$(this).find("input").focus(function(){/*[type='text']*/
			focusedElem = $(this);
		});
		$(this).find("input").blur(function(){
			//if(focusedElem[0] == $(this)[0] ){
				focusedElem = 0;
			//}
		});
	});
	
	$(".atcImage").each(function(){
	if($(this).data("binded") != "true"){
		$(this).data( "binded", "true");
		$(this).click( function(){
			//attempt to prevent adding multiple items to the cart
			$(this).click(function(){return false;});
			$(this).loading();
			$(".ajaxLayerCloseLink").click(); // first close open layer
			myLoader = $(this).parent().siblings(".atcLayerLoader");
			//myLoader.siblings(".addToCartButton").hide();
			//myLoader.siblings(".addingToCartButton").show();
			
			formElems = $(this).parents(".addToCartForm");
			if( formElems[0].protectionPlans != null && formElems[0].protectionPlans != undefined )
				setWarrantyPlan(formElems[0]);
			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(),
			 function(data) {
				dwr.util.setValue(myLoader.attr("id"), data, { escapeHtml:false });
				//$(".atcLayer").load().show(1,runLive);
				myLoader.find(".atcLayer").load().show(1,function(){
					if ( myLoader.find(".atcLayerCartLink").html() != null )
						{
						  myLoader.siblings(".addToCartButton").hide().siblings(".inCartButton").show();
						  //myLoader;
						  $(".inCartWarranty").css("display", "block");
						  $(".notInCartWarranty").css("display", "none");
						  setCartInfo();
						}
					runLive();
				});
		
			});
			return false;
		});	
	}
	});
	   
	$(".addToWish,.inWish").click(function(){
		$(this).loading();
		$(".ajaxLayerCloseLink").click(); // first close open layer
		myLoader = $(this).parents(".alParent").find(".atwLayerLoader");
		myButton = $(this);
		//myButton.hide();
		//myLoader.siblings(".addingToWishListButton").show();
		document.onkeypress = hijackEnterKey;
		
		formElems = $(this).parents(".addToCartForm");
		DWRHelper.getWishLists(formElems.find("[name=sku]").val(),formElems.find("[name=is]").val(),
		 formElems.find("[name=q]").val(),	
		 function(data) {
		    dwr.util.setValue(myLoader.attr("id"), data, { escapeHtml:false });
		    myLoader.find(".atwLayer").load().show(1,runLive);
			//myLoader.siblings(".addingToWishListButton").hide();		    
			myButton.show();
		});
		return false;
	});
	
	$(".wlSBaaCart").click(function(){
		$(this).loading();
		$(".ajaxLayerCloseLink").click(); // first close open layer
		myLoader = $(this).parents(".alParent").find(".atcLayerLoader");
		myButton = $(this);
		DWRHelper.addWishListToCart(myLoader.attr("id"),
		 function(data) {
		    dwr.util.setValue(myLoader.attr("id"), data, { escapeHtml:false });
		    myLoader.find(".atcLayer").load().show(1,runLive);		    
			myButton.show();
			$(".addToCartButton").hide();
			$(".inCartButton").show();
			setCartInfo()
		});
		return false;
	});
	
	$(".moveCartToWish").click(function(){
		$(this).loading();
		$(".ajaxLayerCloseLink").click(); // first close open layer
		myLoader = $(this).parent().siblings(".atwLayerLoader");
		myButton = $(this);
		document.onkeypress = hijackEnterKey;
		
		DWRHelper.getWishListsForMoveCart(	
		 function(data) {
		    dwr.util.setValue(myLoader.attr("id"), data, { escapeHtml:false });
		    myLoader.find(".atwLayer").load().show(1,runLive); 
		});
		return false;
	});
	
	$(".wlSBmove").click(function(){
		$(this).loading();
		$(".ajaxLayerCloseLink").click(); // first close open layer
		myLoader = $(this).parent().siblings(".atwLayerLoader");
		myButton = $(this);
		document.onkeypress = hijackEnterKey;
		formElems = $(this).parents(".addToCartForm");
		DWRHelper.getWishListsForMoveWishListItem(formElems.find("[name=sku]").val(),formElems.find("[name=is]").val(),
		 formElems.find("[name=q]").val(),$("#wishList").find("input[name='listId']").val(),
		  function(data) {
		    dwr.util.setValue(myLoader.attr("id"), data, { escapeHtml:false });
		    myLoader.find(".atwLayer").load().show(1,runLive); 
		});
		return false;
	});
	
	$(".wlSBmoveall").click(function(){
		$(this).loading();
		$(".ajaxLayerCloseLink").click(); // first close open layer
		myLoader = $(this).siblings(".atwLayerLoader");
		myButton = $(this);
		document.onkeypress = hijackEnterKey;
		
		DWRHelper.getWishListsForMoveWishList($("#wishList").find("input[name='listId']").val(),
		 function(data) {
		    dwr.util.setValue(myLoader.attr("id"), data, { escapeHtml:false });
		    myLoader.find(".atwLayer").load().show(1,runLive); 
		});
		return false;
	});
	
	if(queryStringWl( 'openLayer' )!=false)
	{
		var layer = queryStringWl( 'openLayer' );
		openLayer = $("#" + layer);
		openLayer.siblings(".addToWishListButton").find(".ajxBtn").click();
		
		$("#tab_accessories").click();

		$('html, body').animate({
		scrollTop: openLayer.offset().top
		}, 2000);
	}	  
	 
	
	
	
	$(".nwisBtn").click(function(){
		document.onkeypress = hijackEnterKey;
		$(this).loading();
		$(".ajaxLayerCloseLink").click(); // first close open layer
		myLoader = $(this).siblings(".nmLayerLoader");
		myButton = $(this);
		DWRHelper.getNotifyMe($(this).parents().find("[name=sku]").val(),
		 function(data) {
		    dwr.util.setValue(myLoader.attr("id"), data, { escapeHtml:false });
		    myLoader.find(".nwisLayer").load().show(1, runLive);
		});
		return false;
	});	 
	$(".wlSBcreateNew").click(function(){
		$(this).parents(".alParent").find(".nwLayer").show()
			.find(".nwLayerGo").click(function(){
				if($(this).siblings(".newWishListText").val() == ""){
					return false;
				}
			}
		);
		runLive();
		return false;
	});
	
}
function runLive(){
	$(".ajaxLayerCloseLink").bind("click", function(){
		$(this).parents(".ajaxLayer").hide();
	});
	$(".atwLayerGo").bind("click", function(){ 
		var wishList = new Array();
		var inputs = $(this).parents(".ajaxLayerBottom").find(".existingWishLists input:checked");
		inputs.each(function(){ 
			wishList[inputs.index(this)] = $(this).attr("value");
		});
		
		var isInAnyWishList = $(this).parents(".ajaxLayerBottom").find("[name=isInAnyWishList]").val();
		var newListCheck = $(this).parents(".ajaxLayerBottom").find(".newWishList input:checked").val();
		var newList = "";
		
		if(newListCheck == 'checked')
			newList = $(this).parents(".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).parents(".atwLayerLoader");
		myListId = $("#wishList").find("input[name='listId']");
		deleteItem = $(this);
		//$(this).parents(".ajaxLayerBottom").hide();
        //$(this).parents(".ajaxLayerBottom").siblings(".addingToWishListLoader").show();
		$(this).loading();
		
		DWRHelper.addToWishList($(this).parents().find("[name=sku]").val(),$(this).parents().find("[name=is]").val(),
		 $(this).parents().find("[name=q]").val(),wishList.join(","),newList,$("#moveCartToWish").val(),
		 myListId.val() != null && wishList.join(",").indexOf(myListId.val()) == -1,$(this).parents().find("[name=hiddenNote]").val(),
		 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.parents(".addToCartForm").remove();
				sortItems();
				$("#ajaxLoadingImg").hide();
		 	}
		 	else
		 		window.location.href = /*To test on dev, uncomment this: window.location.pathname + */ "/find/WishList2_logged.jsp";
		 }
		 else if($("#moveCartToWish").val() == null || $("#moveCartToWish").val().indexOf("moveItemOut") != -1 )
		 {
			    dwr.util.setValue(myLoader.attr("id"), data, { escapeHtml:false });
			    myLoader.find(".atwLayer").load().show(1, runLive);
				myLoader.siblings(".addToWishListButton").hide();
				if(wishList=='' && newList=='')
				{    
					myLoader.siblings(".addToWishListButton").show();
					myLoader.siblings(".inWishListButton").hide();
				}
				else
					myLoader.siblings(".inWishListButton").show();
			}
			else
				window.location.href = /*To test on dev, uncomment this: window.location.pathname + */ "/find/WishList2_logged.jsp";
		});
		return false;
	});	
	
	$(".newWishListText").bind("click", function(){ 
		$(this).siblings().find(".newWishList").attr("checked", "checked");
	}); 
	
	$(".forgotPassword").bind("click", function(){ 
		loginLayer = $(this).parents(".ajaxLoginLayer");
		loginLayer.find(".loginSection").hide();
		loginLayer.find(".newAcct").hide();
		loginLayer.find(".forgotPass").show();
	});	  
	
	$(".loginLayerLoginButton").bind("click", function(){ 
		/*$(".loginSection").hide();
		$(".newAcct").hide();
		$(".forgotPass").hide();
		$(".loading").show();*/
		$(this).loading();		
		myLoader = $(this).parents(".atwLayerLoader");
		
		DWRHelper.loginFromLayer($(this).parents().find("[name=login]").val(),$(this).parents().find("[name=password]").val(),
		$(this).parents().find("[name=sku]").val(),$(this).parents().find("[name=is]").val(),$(this).parents().find("[name=q]").val(),
		 $("#moveCartToWish").val(),
		 function(data) {
		 	if(data == '<p>logged in</p>')
		 		setCartInfo(myLoader.attr("id"));
		 	else
		 	{
		    	dwr.util.setValue(myLoader.attr("id"), data, { escapeHtml:false });
		    	myLoader.find(".atwLayer").load().show(1, runLive);
		    }
		});
		return false;
		
	});	 
	
	$(".password").bind("click", function(){ 
		$(this).loading();		
		myLoader = $(this).parents(".atwLayerLoader"); 		
		DWRHelper.forgotPasswordFromLayer($(this).parents().find("[name=forgotEmailAddress]").val(),$("#moveCartToWish").val(),
		 function(data) {
		    dwr.util.setValue(myLoader.attr("id"), data, { escapeHtml:false });
			myLoader.find(".atwLayer").load().show(1,runLive);
		});
		return false;		
	});	
	
	$(".newAccount").bind("click", function(){ 
		$(this).loading();
		myLoader = $(this).parents(".atwLayerLoader");
		
		DWRHelper.newAccountFromLayer($(this).parents().find("[name=fName]").val(),$(this).parents().find("[name=lName]").val(),
		$(this).parents().find("[name=sEmail]").val(),$(this).parents().find("[name=retypedNewEmailAddress]").val(),
		$(this).parents().find("[name=sPassword]").val(),$(this).parents().find("[name=sPassword2]").val(),
		$(this).parents().find("[name=sku]").val(),$(this).parents().find("[name=is]").val(),$(this).parents().find("[name=q]").val(),
		 $("#moveCartToWish").val(),
		 function(data) {
		 	if(data == '<p>logged in</p>')
		 		refreshOpenLayer(myLoader.attr("id"));
		 	else
		 	{
		    	dwr.util.setValue(myLoader.attr("id"), data, { escapeHtml:false });
		    	myLoader.find(".atwLayer").load().show(1,runLive);
		    }
		});
		return false;
		
	});
	$(".notfiyMe").bind("click", function(){ 
		$(this).loading();
		
		myLoader = $(this).parents(".nmLayerLoader");
		
		DWRHelper.notifyMe($(this).parents().find("[name=notifyEmail]").val(),
		$(this).parents().find("[name=sku]").val(),$(this).parents().find("[name=is]").val(),$(this).parents().find("[name=nis]").val(),
		 function(data) {
		    dwr.util.setValue(myLoader.attr("id"), data, { escapeHtml:false });
//		    $(".loadingNotify").hide();
		     myLoader.find(".nwisLayer").load().show(1,runLive);
		});
		return false;
		
	});
	$("#ajaxLoadingImg").hide();
}
	
	function refreshOpenLayer(layer)
	{
		var url = window.location.href;
		if(window.location.href.indexOf('#') != -1)
			url = url.split('#')[0];
		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.parents(".loginLayerSection").length){
					focusedElem.parents(".loginLayerSection").find("input[type='button']").click();
					return false;
				}
				
				focusedElem.parents(".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;
		  }
	   }
	}

jQuery.fn.loading = function(){
	myLoadingImg = $("#ajaxLoadingImg");
	fromTop = this.offset().top + (this.height() / 2 - (myLoadingImg.height() / 2));
	fromLeft = this.offset().left + (this.width() / 2 - (myLoadingImg.width() / 2));
	myLoadingImg.css({
		"display" : "block",
		"top" : fromTop,
		"left" : fromLeft
	});
	return this;
};

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)
{
	DWRHelper.getCartInfo(
		 function(cookie) {
			cookieSplit = cookie.split(":");
			if( 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);
			else
			{
				cartCookie = getCookie('TopBarCart');
				if( cartCookie )
				{
					cookieData = cartCookie.split("|");
					$('#cartIcon').html('(' + cookieData[0] + ') items - $' + cookieData[1]);
				}
			}
		});
}