/******************************************************************************
* OLaFonctions.js
*******************************************************************************

*******************************************************************************
*                                                                             *
* Copyright 2010									                          *
*                                                                             *
******************************************************************************/
$(document).ready(function(){
	OlaSearch();
	OlaNav();
	OlaInsetStyle2();
	OlaChangeQuantity();
	OLaAddFlagInfo();
	OLaLimitPagination();
	OLaBsButton();
	var isBasketPage = $(".OLa-basket").length > 0;
	$(".OLa-typedDocument img").busSrcReplace();
	
	var bodyTitle = $("<strong />").append($("#gshpProductCardBodyTitle").text()).append(" ");
	$("#gshpProductCardBody").children("div").children(":first").prepend(bodyTitle);
	$("#gshpProductCardBodyTitle").remove();
	
	// Séparateur de lien de la wishlist
	$(".bwlist_btSeparator").text(" / ");
	
	// Supprime le lien dan sle panier permettant de modifier un client
	$(".gshpModifyAddress").remove();
	
	// Supprime le lien continuer dans le panier si prix HT < 200 euros
	var orderButton = $("#gshpBasketButtonDiv_command");
	var errorMsg = $(".gshpB2B-errorsList");
	var securePayment = $("#securePayment");
	var minPrice = 200;
		
	if(orderButton.length > 0){
		var total = parseInt($("#Ola-GetBasketAmountFlow").html().replace("&nbsp;",""));
		
		if(total < minPrice || errorMsg.length > 0 || securePayment.length > 0){
			//$(orderButton).parent().append("La commande doit avoir un montant supérieur à " + minPrice + "€")
			$(orderButton).remove();
		}
	}
	
	$(".OLa-top li").width(function(){
		return Math.floor($(this).parent().width() / $(this).parent().children("li").length);
	});
	
		
	function openBasketSummary(){
		$("#OLa-basket_summary-lastedProduct").slideDown("high").prev().addClass("OLa-basket_summary_down");
	}
	function closeBasketSummary(){
		$("#OLa-basket_summary-lastedProduct").slideUp("high").prev().removeClass("OLa-basket_summary_down");
	}
	
	// Panier sur toutes les pages
	if(parseFloat($("#Ola-GetBasketQuantityFlow").text()) > 0 && !isBasketPage){
		$("#OLa-global_basket_summary").hoverIntent({
			over : openBasketSummary,
			out : closeBasketSummary,
			timeout : 500
		});
	}else{
		$("#OLa-basket_summary-lastedProduct").prev().addClass("OLa-basket_summary_none");
	}
	
	$(".OLa-changeSort img.OLa-changeSort_down").mouseover(function(){
		$(this).attr("src","iso_icons/OLa-sort_down_on.gif");
	}).mouseout(function(){
		$(this).attr("src","iso_icons/OLa-sort_down_off.gif");
	});
	
	$(".OLa-changeSort img.OLa-changeSort_up").mouseover(function(){
		$(this).attr("src","iso_icons/OLa-sort_up_on.gif");
	}).mouseout(function(){
		$(this).attr("src","iso_icons/OLa-sort_up_off.gif");
	});
	
	//Authentification Ajax
	$(".usrNoAuthenticated form").submit(function(e){
		e.preventDefault();
		var newLogin = $(".usrNoAuthenticated input[name=userLogin]").val();
		var newPwd = $(".usrNoAuthenticated input[name=userPwd]").val();
		var url = self.location.href;
		
		$.post(url, { pageMode: "ajax", ajaxFunc: "authenticate", login: newLogin, pwd: newPwd}, function (data) {
			
			var img = "iso_icons/OLa-ok.gif";
			switch(data){
				case "ok":
					$("#OLaRedirectForm").submit();
				break;
				case "wrongPassword":
					alertBox("Identifiant ou mot de passe incorrect",img,true);
				break;
				case "wrongLogin":
					alertBox("Identifiant ou mot de passe incorrect",img,true);
				break;
				case "disabled":
					alertBox("Identifiant désactivé, merci de contacter le webmaster",img,true);
				break;
				case "notActivated":
					alertBox("Compte non activé",img,true);
				break;
				default:
					alertBox("Une erreur est survenue, merci de réessayer ou de rafraichir la page",img,true);
				break;
			}
			
		});
	});
	
	// hack champ recherche sous barre fixe
	$("#OLa-hackSearchInput").click(function(){
		$("#OLa_search_input").select();
	});
	
	$("#OLa-hackSearchBt").click(function(){
		$("#OLa_search").submit();
	});
	
	$(document).scroll(function(){
		var doc = $(this);
		if($(this).scrollTop() > 20){
			$("#OLa-hackSearchInput,#OLa-hackSearchBt").hide();
		}else{
			$("#OLa-hackSearchInput,#OLa-hackSearchBt").show();
		}
	});
	
	$(".gshpCommentModifyButton .OLa-bsButton span").text("Enregistrer votre commentaire");
	
	/* alertBox */
	function alertBox(title,img,isClosedImg){
		var alertBoxTitle = $("<h6 id='OLa_alertBoxTitle'/>").text(title);
		var alertBoxImg = "";
		if(img){
			alertBoxImg = $("<img src='"+img+"' alt='ok' title='' id='OLa_alertBoxImg' />");
			if(isClosedImg){
				alertBoxImg = $(alertBoxImg).click(function(e){
					e.stopPropagation();
					removeAlertBox();
					$("input[name=userLogin]").select();
				});
			}
		}
		var globalAlertBox = $("<div id='OLa_alertBox' /> ").append(alertBoxTitle).append(alertBoxImg);
		var alertBlackBox = $("<div id='OLa_loading' />").css("height",$(document).height());
		
		if($("#OLa_loading").length < 1){
			$("body").append(globalAlertBox).prepend(alertBlackBox);
			$(globalAlertBox).css({
				"top": function(index){
					return (($(window).height() - $(this).height()) / 2);
				},
				"left": function(index){
					return (($(window).width() - $(this).width()) / 2);
				}
			});
		}

		$(window).resize(function() {
			var win = $(this);
			$(globalAlertBox).css({
				"top": function(index){
					return (($(win).height() - $(this).height()) / 2);
				},
				"left": function(index){
					return (($(win).width() - $(this).width()) / 2);
				}
			});
		});
	}
	
	function removeAlertBox(){
		$("#OLa_loading,#OLa_alertBox").remove();
	}
	
});

isoYUILoader.onReady(function(){
	$(document).ready(function(){
	
		gshp.basket.on('ready', function () {
			updateBasketView();
		});
		
		gshp.basket.on('change', function () {
			updateBasketView();
		});
			
		var label_items = $("#bwlist-label_items").text();
	
		function updateBasketView(){
			
			$("#OLa-basket_summary-lpTable tbody").empty();
		
			var prixTotalHT = 0;
			var prixTotalTTC = 0;
			var nbItems = 0;
			var nbTotalItems = 0;
			var itemPosition = 0;
			
			gshp.basket.eachItem(function(item){
				nbItems = nbItems + 1;
			});
			
			gshp.basket.eachItem(function (item) {
				itemPosition = itemPosition + 1;
				nbTotalItems = nbTotalItems + item.getField('quantity');
				
				// 5 derniers articles seulement
				if(itemPosition > nbItems - 5){
				
					var tdCurrentItemQty = $("<td/>").addClass("OLa-txtCenter OLa-vAlignMiddle").text(item.getField('quantity'));
					var tdCurrentItemLabel = $("<td/>").addClass("OLa-vAlignMiddle").text(item.getField('label'));
					var tdCurrentItemTHT = $("<td/>").addClass("OLa-txtRight OLa-vAlignMiddle").text(function(){
						var currentItemHT = parseFloat(item.getField('effectiveTotalPrice').replace(",",".")).toFixed(2);
						currentItemHT += "€";
						return currentItemHT;
					});
					var tdCurrentItemDelete = $("<td/>").addClass("OLa-txtCenter OLa-vAlignMiddle").html(function(){
						return $("<img />").attr({
							"src" : "iso_icons/OLa-deleteReference.gif",
							"alt" : "X",
							"title" : "Supprimer"
						}).click(function(e){
							e.preventDefault();
							gshp.basket.deleteItem(item.getOid());
						});
					});
					
					var currentLine = $("<tr />").addClass(function(){
						var trClass = "";
						
						if((itemPosition % 2) > 0){
							trClass = "OLa-basket_summary-lpTable_odd";
						}else{
							trClass = "OLa-basket_summary-lpTable_even";
						}
						
						if(nbItems == itemPosition) trClass = trClass + " OLa-basket_summary-lpTable_last";
						
						return trClass;
					}).append(tdCurrentItemQty).append(tdCurrentItemLabel).append(tdCurrentItemTHT).append(tdCurrentItemDelete);
				
				}
				
				$("#OLa-basket_summary-lpTable tbody").append(currentLine);
			});
			
			$("#OLa-basket_summary-lpTitle").text(function(){
				var caption = "Vos 5 derniers produits ajoutés";
				
				if(nbItems == 0) caption = "";
				if(nbItems == 1) caption = "Votre dernier produit ajouté";
				if(nbItems > 1 && nbItems <= 5) caption = "Vos " + nbItems + " derniers produits ajoutés";
				
				return caption;
			});
			
			$("#bwlist-nb_items").text(nbTotalItems);
			
			if(nbTotalItems > 1){
				$("#bwlist-label_items").text(function(){
					return (label_items + "s");
				});
			}
			
			gshp.basket.eachItem(function (item) {
				prixTotalTTC = prixTotalTTC + parseFloat(item.getField('effectiveTotalVatPrice').replace(",","."));
				prixTotalHT = prixTotalHT + parseFloat(item.getField('effectiveTotalPrice').replace(",","."));
			});
			
			$("#bwlist-price_items,#OLa-basket_summary-lp-tht-sum").text(prixTotalHT.toFixed(2));
			$("#OLa-basket_summary-lp-tttc-sum").text(prixTotalTTC.toFixed(2));
			
		}
	});
});

function OLaBsButton(){
	
	$("span.bsButtonSpan").each(function(){
		var bsButtonLink = $(this).children("a.bsButton:first");
		$(bsButtonLink).addClass("OLa-bsButton").removeClass("bsButton").wrapInner("<span/>");
		
		//$(this).after(bsButtonLink).remove();
	});
}

function OLaLimitPagination(){
	$(".OLa-nbProductPerPage").change(function(){
		var url = self.location.href;
		var newUrl = "";
		var elem = url.split("#")[0].split("&");
		
		for(i in elem){
			if(elem[i].indexOf("lpp") > -1){
				elem[i] = "lpp=" + parseInt($(this).val());
			}
			newUrl = newUrl + (i > 0 ? "&" : "") + elem[i]
		}
		
		if(newUrl.indexOf("lpp") == -1)
			newUrl = newUrl + "&lpp=" + parseInt($(this).val());
		
		window.location = newUrl;
		
	});
}

function OLaAddFlagInfo(){
	
	$(".OLa-eshopWithoutBasket .gshpDashedPrice").each(function(){
		
		var newParent = $(this).parent().parent().parent();
		var discountImg = $("<p/>").addClass("OLa-productListDetailedPromo").append("<span>En promotion</span>");
		
		if(newParent.next().attr("class") == "OLa-productCard-img"){
			newParent.next().append(discountImg);
			newParent.next().children(".OLa-newProduct").remove();
		}else if(newParent.children("div:first").attr("class") == "OLa-productListLight-img"){
			newParent.children("div:first").append(discountImg);
			newParent.children("div:first").children(".OLa-newProduct").remove();
		}else{
			newParent.append(discountImg);
			newParent.children(".OLa-newProduct").remove();
		}
		
	});
}

function OlaInsetStyle2(){
	$(".OLa-insetStyle2").each(function(){
		var child = $(this).children().children().children().children().children().children(".insTitle-text");
		$(this).children().children().children().children().children(".insFullcontent").append(child);
	});
}

function OlaNav(){
	$(".OLa-mainNav li:first").addClass("first");
	$(".OLa-bottom li:first").addClass("first");
	$(".OLa-legal li:first").addClass("first");
	$(".OLa-top li:first").addClass("first");
	$(".OLa-basket_summary li:first").addClass("first");
}

function OlaSearch(){
	var input = $("#OLa_search_input");
	
	$("#OLa_search").children("label").hide();
	
	input.click(function() {
		if(input.val() == "Rechercher")
			input.select();
	});
}

function OlaPopup(){
	$(".OLa-popup").each(function(){
		var link = $(this).attr("href");
		$(this).attr("href","#");
		$(this).attr("rev",link);
	});
	
	$(".OLa-popup").click(function(){
		window.open($(this).attr("rev"),"","");
	});
}

function OlaChangeQuantity(){

	$(".OLa-quantity-more").click(function(){
		
		var newParent = $(this).parent();
		var input = newParent.children("input");
		var byHowMuch = newParent.children().children(".OLa-byHowMuch").html();
		
		var cq = input.val();
		var nq = parseInt(cq) + parseInt(byHowMuch)
		
		input.val(nq);
		
		return false;
		
	});
	
	$(".OLa-quantity-less").click(function(){
		
		var newParent = $(this).parent();
		var input = newParent.children("input");
		var byHowMuch = newParent.children().children(".OLa-byHowMuch").html();
		
		var cq = input.val();		
		var nq = parseInt(cq) - parseInt(byHowMuch)
		
		if(nq < byHowMuch){
			input.val(byHowMuch);
		}else{
			input.val(nq);
		}
		
		return false;
		
	});
	
	$(".OLa-basketQuantityInput").change(function(){
		
		var newParent = $(this).parent();
		var input = newParent.children("input");
		var byHowMuch = newParent.children().children(".OLa-byHowMuch").html();
	
		if($(this).val() < byHowMuch || $(this).val() % byHowMuch > 0){
			var newVal = byHowMuch;
			var modu = $(this).val() % byHowMuch;
			
			if(modu > 0 && $(this).val() > byHowMuch){
				newVal = Math.floor($(this).val() / byHowMuch) * byHowMuch;
				newParent.children(".OLa-byHowMuchGlobal").show();
			}
			
			$(this).val(newVal);
		}
		
	});
	
}
