﻿
//var _gaq = _gaq || [];
        
$(function(){


	//#region variation drop down
    var variations = [];
    var lastPrice = 0;
    var priceVaries = false;
    $('#tblPrices tr.Row, #tblPrices tr.AltRow').each(function(i,tableRow){
        variation  = {
            Id:parseInt(tableRow.cells[0].title),
            Description:$("h4",tableRow.cells[0]).text().replace(/^\s+|\s+$/g, ''),
            PriceText:$(tableRow.cells[1]).html().replace(/^\s+|\s+$/g, ''),
            Price:parseFloat(tableRow.cells[1].title),
            Quantity:1
        };
        variations.push(variation);
        if(variation.Price!=lastPrice && lastPrice!=0)
        {
            priceVaries = true;
        }
        lastPrice = variation.Price;
    });
    // if(!priceVaries && variations.length > 1)
    // {
        // $('#tblPrices tr.Row, #tblPrices tr.AltRow').remove();
        // $('#tblPrices tr:first').after('<tr class="Row"><td><select id="jsVariations"></select></td><td title="'+variations[0].Price+'" class="Cost">'+variations[0].PriceText+'</td><td><input class="QuantityField" type="text" id="jsQuantity" maxlength="10" value="1"/></td></tr>');
        // select = $('#jsVariations')[0];
        
        // for(var x=0;x<variations.length;x++)
        // {
            // option = document.createElement("option");
            // option.value = variations[x].Id;
            // option.text = variations[x].Description;
            // select.appendChild(option);
        // }
        // /*
        // VariationSelected(select);
        // $('#jsVariations').bind('change',VariationSelected);
        // $(row.cells[2],'input').bind('change',UpdateTotal);
        // $(row.cells[2],'input').bind('keyup',UpdateTotal);
        // */
    // }
    
    if(variations.length==1)
    {
        $("#tblPrices .QuantityField").val(1);
    }
    
    /*
    function VariationSelected(event)
    {
        var select;
        if(typeof(event.currentTarget)!='undefined')
            select = event.currentTarget;
        else
            select = event;
        
        row = $('.ProductSelection table tr:eq(1)')[0];
        row.cells[1].innerHTML = variations[select.selectedIndex].PriceText;
        row.cells[2].firstChild.value = variations[select.selectedIndex].Quantity;
        total = variations[select.selectedIndex].Quantity * variations[select.selectedIndex].Price;
        UpdateTotal();
    }
	*/
	
    $("#tblPrices .QuantityField").bind('change',UpdateTotal).bind('keyup',UpdateTotal);
    function UpdateTotal()
    {
        var total=0;
		var vatTotal = 0;
		var exVatBreaks = new Array();
		var incVatBreaks = new Array();

        $("#tblPrices .QuantityField").each(function(i,ele){
            quant = $(ele);
			var cost = parseFloat($('.Cost',quant.parent().parent()).attr("title"));
			var costVat = parseFloat($('.CostVat',quant.parent().parent()).attr("title"));
            if(parseInt(quant.val()) == quant.val() && parseInt(quant.val()) != 0)
            {
				var context = $("td.Cost span.qtyBreaks", "tr.prodRow:eq("+i+")");
				var contextVat = $("td.CostVat span.qtyBreaks", "tr.prodRow:eq("+i+")");
				exVatBreaks = ParseQuantityBreaks(context);
				incVatBreaks = ParseQuantityBreaks(contextVat);
				if (incVatBreaks.length > 0 && parseInt(quant.val()) >= incVatBreaks[0].qty)
				{
					var index;
					var highestLowest = 0;
					for (var x = 0; x < incVatBreaks.length; x++)
					{				
						var brek = incVatBreaks[x];
						if (parseInt(quant.val()) >= brek.qty && brek.qty > highestLowest)
						{
							highestLowest = brek.qty;
							index = x;
						}
					}
					var brkToUse = incVatBreaks[index];
					
					
					addBreakClass(context, brkToUse.index);
					changeBreakClass(contextVat, brkToUse.index);
					
					total += quant.val() * brkToUse.price;
					vatTotal += quant.val() * incVatBreaks[brkToUse.index].price;					
				}
				else
				{
					changeBreakClass(contextVat, -1);
				
					total += quant.val() * cost;
					vatTotal += quant.val() * costVat;
				}
            }
        });
        $('#itemsTotal').text("£"+total.toFixed(2));
		$('#itemsVatTotal').text("£"+vatTotal.toFixed(2));
    }
	var index = 0;
	function brk() {
		this.index = 0;
		this.qty = 0;
		this.price = 0;
	}
	function ParseQuantityBreaks(context)
	{
		var breaks = new Array();
		var index = 0;
		$(context).children("span.breakLine").each(function() {
			var brak = new brk();
			
			var quanTxt = $("span.brk", this).text();
			brak.qty = parseInt(quanTxt.substring(0, (quanTxt.length - 1)));
			
			var priceTxt = $("span.price", this).text();
			brak.price = parseFloat(priceTxt.substring(1));
			
			brak.index = index;
			breaks[index] = brak;
			index++;
		});
		return breaks;
	}
	function changeBreakClass(context, index)
	{
		$(context).children("span.breakLine").each(function() {
			$(this).removeClass("selected");
		});
		if (index != -1)
			$(context).children("span.breakLine:eq("+index+")").addClass("selected");
	}
	
    UpdateTotal();
	//#endregion variations
	
	//#region mega hover
		//On Hover Over
		function megaHoverOver(){
			
			$(this).find(".sub").stop().fadeTo('fast', 1).show(); //Find sub and fade it in
			(function($) {
				//Function to calculate total width of all ul's
				jQuery.fn.calcSubWidth = function() {
					rowWidth = 0;
					//Calculate row
					$(this).find("ul").each(function() { //for each ul...
						rowWidth += $(this).width(); //Add each ul's width together
					});
				
				};
			})(jQuery); 

			if ( $(this).find(".row").length > 0 ) { //If row exists...

				var biggestRow = 0;	

				$(this).find(".row").each(function() {	//for each row...
					$(this).calcSubWidth(); //Call function to calculate width of all ul's
					//Find biggest row
					if(rowWidth > biggestRow) {
						biggestRow = rowWidth;
					}
				});

				$(this).find(".sub").css({'width' :biggestRow}); //Set width
				$(this).find(".row:last").css({'margin':'0'});  //Kill last row's margin

			} else { //If row does not exist...

				$(this).calcSubWidth();  //Call function to calculate width of all ul's
				$(this).find(".sub").css({'width' : rowWidth}); //Set Width

			}
		}
		//On Hover Out
		function megaHoverOut(){
		  $(this).find(".sub").stop().hide();
		  
		  /*.fadeTo('fast', 0, function() { //Fade to 0 opactiy
			  $(this).hide();  //after fading, hide it
		  });*/
		}
		
		//Set custom configurations
		var config = {
			 sensitivity: 10, // number = sensitivity threshold (must be 1 or higher)
			 interval: 10, // number = milliseconds for onMouseOver polling interval
			 over: megaHoverOver, // function = onMouseOver callback (REQUIRED)
			 timeout: 200, // number = milliseconds delay before onMouseOut
			 out: megaHoverOut // function = onMouseOut callback (REQUIRED)
		};

        //try{
		$("#sectionId_17 ul li .sub").css({'opacity':'0'}); //Fade sub nav to 0 opacity on default
		$("#sectionId_17 ul li").hoverIntent(config); //Trigger Hover intent with custom configurations
		//}catch(ex){}
		
	//#endregion mega hover
	
	//#region image gallery
	    
	    var photoDefaultTitle = "";
	    $('.MainPhotos ul li a').click(function(){
			aryImage = this.firstChild.data.split("|");
	        $('.MainPhotoImg')[0].src = aryImage[0];
	        photoDefaultTitle = $('img',this).attr("alt");
	        $('.MainPhotos h4').text(photoDefaultTitle);
			window.ImageZoomAddress = aryImage[1];
	        return false;
	    }).hover(function(){
	        // over
	        photoDefaultTitle = $('.MainPhotos h4').text();
	        $('.MainPhotos h4').text($('img',this).attr("alt"));
	    },function(){
	        // out
	        $('.MainPhotos h4').text(photoDefaultTitle);
	    });
		
		
		/*if($('.MainPhotos')[0]!=undefined)
		{
			eleComment = $('.MainPhotos')[0].firstChild;
			var aryImage;
			if(eleComment.data == null)
				alert($('.MainPhotos')[0].outerHTML);
			else
				aryImage = eleComment.data.split("|");
			window.ImageZoomAddress = aryImage[1];
			window.ImageHistoryAddress = aryImage[2];
		}*/
	    
	//#endregion image gallery
    
	//#region watermarks
		
		/*
		This does the watermarking for input boxes, use the watermark class on
		labels, watermarkJS is added so you can position the label over the input
		*/

		$('label.watermark').addClass("watermarkJS");
		$('label.watermark').each(function(index,label){
			eleInput = $('#'+$(label).attr("for"))[0];
			
			if(eleInput.value != "")
			{
				$(label).hide();
			}
			
			$(eleInput).blur(function(){
				eleInput = $('#'+$(label).attr("for"))[0];
				if(eleInput.value == "")
				{
					$(label).show();
				}
			});
			$(eleInput).focus(function(){
				eleInput = $('#'+$(label).attr("for"))[0];
				$(label).hide();
			});
			
		});
			

	//#endregion watermarks
		
	//#region zoomy images
		ZoomDim = {
			Thumb : {Width:300,Height:250},
			Large : {Width:720,Height:600}
		}		
		var intervalId;
		var originalImage;
		$(".MainPhotoImg").after("<div style=\"display:none;\" class=\"ImageZoomer\"><img class=\"imgZoomed\" src=\"\" /></div>");
		$(".MainPhotoImg").mouseover(function(){
		
		    var lastImage = originalImage;
		    originalImage = $(".MainPhotoImg").attr("src");
		    $(".ImageZoomer img").attr("src",originalImage);
		    setTimeout(function(){
			    $(".ImageZoomer img").attr("src",originalImage.replace("/MainImage_","/zoomed_"));
			},100);

			$(this).hide();
			$(".ImageZoomer").show();
			
			if(lastImage!=originalImage)
			    $(".ImageZoomer img").width(ZoomDim.Thumb.Width).height(ZoomDim.Thumb.Height);
			
//			$(".ImageZoomer img").animate({
//			    width:ZoomDim.Large.Width,
//			    height:ZoomDim.Large.Height
//			},1000);

			imgZoomer = $(".ImageZoomer img");
			divZoomer = $(".ImageZoomer")[0];	
            intervalId = setInterval(function(){
                if(imgZoomer.height() >= ZoomDim.Large.Height)
                {
                    imgZoomer.height(ZoomDim.Large.Height);
                    imgZoomer.width(ZoomDim.Large.Width);
                    clearInterval(intervalId);
                }
                else
                {
                    imgZoomer.height(imgZoomer.height()+20);
                    imgZoomer.width(imgZoomer.width()+24);
                    ImageMoving.apply(divZoomer);
                }
            },30);
			
			//$(".ImageZoomer img").attr("src",window.ImageZoomAddress);
			$(".ImageZoomer").bind("mousemove",ImageMoving);
			
		});
		$(".ImageZoomer").mouseout(function(){
		    
            clearInterval(intervalId);
			zoomr = this;
			//setTimeout(function(){
				$(zoomr).hide();
				$(".MainPhotoImg").show();
				$(".ImageZoomer").unbind("mousemove",ImageMoving);
			//},300);
		});
		var lastMouseX = 0;
		var lastMouseY = 0;
		function ImageMoving(e)
		{
		    if(e!=null)
		    {
		        lastMouseX = e.pageX;
		        lastMouseY = e.pageY;
		    }
			var x = lastMouseX - $(this).offset().left;
			var y = lastMouseY - $(this).offset().top;
            
            currentHeight = $(".ImageZoomer img").height();
            currentWidth = $(".ImageZoomer img").width();
            
			$(".ImageZoomer img")
			.css("top",-(
				(y/ZoomDim.Thumb.Height)
					*(currentHeight-ZoomDim.Thumb.Height)
				))
			.css("left",-(
				(x/ZoomDim.Thumb.Width)
					*(currentWidth-ZoomDim.Thumb.Width)
				));
		}
	//#endregion zoomy images
		
	//#region homepage features
		$("a.Tab").click(function(){
			$('li.Tab').removeClass("selected");
			$('.MainFeatureProductsInfo').hide();
			$(this).parent().addClass("selected")
			$(this).next().show();
			$('.MainFeatureImages .StyleImage').hide();
			$($('.MainFeatureImages .StyleImage')[$('a.Tab').index(this)]).show();
			return false;
		});
		$("li.Tab:first").addClass("selected");
		$(".MainFeatureProductsInfo:first").show();
		$('.MainFeatureImages .StyleImage').hide();
		$('.MainFeatureImages .StyleImage:first').show();
		
        // run cycle plugin on subcategory for paging
        $('.MainFeatureProductsInfo').each(function(ind,ele){
            $('.CategoryPages',ele).cycle({ 
                fx : 'scrollHorz',
                timeout: 0,
                pager:  $('.CategoryPageNav',ele) 
            });
        });
        
	//#endregion homepage features
	
	//#region product history
		
		aryHistory = $.cookie("productHistory")==null?new Array():$.cookie("productHistory").split("\r");

		strProdUrl = "/20/section.aspx";
		if(location.pathname.length > strProdUrl.length && location.pathname.substring(0,strProdUrl.length) == strProdUrl)
		{
			var price = $('.ProductHeader .Price span:first').text() != "From" ? $('.ProductHeader .Price span:first').text() : 
				$('.ProductHeader .Price span:eq(1)').text();
		
			strRow = $(".ProductIntro h1").text()+
			"#cell#"+location.pathname+
			"#cell#"+$("img.MainPhotoImg").attr("src")+
			"#cell#"+price;
			for(x=0;x<aryHistory.length;x++)
			{
				if(aryHistory[x] == strRow)
				{
					aryHistory.splice(x,1);
				}
			}
			aryHistory.unshift(strRow);
			if(aryHistory.length > 7)
			{
				aryHistory.splice(7,aryHistory.length-7);
			}
			$.cookie("productHistory", aryHistory.join("\r"), { expires: 100, path:"/" });
		}
		
		if(aryHistory.length>0)
		{
			strInsertHTML = "<div class=\"BrowseHistory\"><h3>Recently Viewed</h3>"
			for(x=0;x<aryHistory.length;x++)
			{
				aryItems = aryHistory[x].split("#cell#");
				strInsertHTML +='<div class="Product"><a href="'+
				aryItems[1]+
				'"><img width="90" height="90" alt="'+
				aryItems[0]+
				'" src="/imgsizer.aspx?action=Recent&amp;img='+
				aryItems[2]+
				'"/><span class="Price">'+
				aryItems[3]+
				'</span></a></div>';
			}
			strInsertHTML += '<div class="clear"></div></div>';
			$('.MainContent > .Container').append(strInsertHTML)
		}
	//#endregion product history
	
	//#region editor dashboard
		
		if($("meta[name='mor_roles']").length > 0 &&
		(
		$("meta[name='mor_roles']").attr("content").indexOf("Editor") > -1
		|| $("meta[name='mor_roles']").attr("content").indexOf("Packing") > -1
		|| $("meta[name='mor_roles']").attr("content").indexOf("MOTO") > -1
		))
		{
			setTimeout(function(){
				$("#MorzineAdminPanel").prepend('<br/><a href="/editor/dashboard.aspx" class="editLink"><img src="/images/editor.gif">Dashboard</a>');
			},700);
		}
		
	//#endregion editor dashboard
		
    //#region print this page
		$('.Print a').click(function(e){
			window.print();
			return false;
		});
	//#endregion print this page
	
	//#region add to cart
	$('.CartButton').click(function(){
	    btn = this;
	    elementId = $('.moduleType_Ecommerce_BasketSummary').attr('id');
	    sectionId = elementId.substring(elementId.indexOf('_')+1);
	    variations = "";
	    quantities = "";
	    totalQty = 0;
        $('.QuantityField').each(function(index,ele){
            var varID;
            try{
                varID = ele.previousSibling.previousSibling.data.substr(12);
            }
            catch(ex){
                varID = ele.previousSibling.data.substr(12);
            }
            qty = ele.value;
            ele.value = "0";
            if(qty>0)
            {
                variations+=varID+",";
                quantities+=qty+",";
            }
            totalQty+=parseInt(qty);
        })
	    if(totalQty>0)
	    {
			if (variations != "")
				variations = variations.substr(0, variations.length - 1)
			if (quantities != "")
				quantities = quantities.substr(0, quantities.length - 1)
		
	        btn.disabled = "disabled";
	        $(btn).parent().addClass("loading");
	        $('.moduleType_Ecommerce_BasketSummary .moduleInnerContent').load('/'+sectionId+'/ajax.aspx?variation='+variations+'&qty='+quantities+'&rnd='+Math.random(),null,function(){
    	        btn.disabled = null;
        	    
                setTimeout(function(){
    	            $(btn).parent().removeClass("loading");
    	        },1200);
	            // show notice
    	        
	            // var basketPopup = $('<div class="MyBasket"><div class="basketLinks">'+$('.basketLinks').html()+'</div></div>').dialog({
                    // dialogClass: 'BasketPopup',
                    // position: [$('.MyBasket').offset().left+20,'top'],
                    // show: {
				        // effect:"slide",
				        // direction:"up",
				        // speed:1000
			        // },
			        // hide: {
				        // effect:"slide",
				        // direction:"up",
				        // speed:1000
			        // },
			        // width: $('.basketLinks').width()+30,
			        // height: '90',
			        // resizable:false,
			        // draggable: false,
			        // title: totalQty+(totalQty==1?' New Item Added':' New Items Added')
                // });
				
				//var bsktLink = $("div.MyBasket ul li").eq(1).children("a").attr("href");
				//$("span.addedMsg").remove();
				setTimeout("addedToBasketMsg()", 1200);

				$('#itemsTotal').text("£0");
				$('#itemsVatTotal').text("£0");
				
                // setTimeout(function(){
                    // if(basketPopup.dialog('isOpen'))
                        // basketPopup.dialog('close');
                // },173500);
    	        
	        });
	    }
	    return false;
	});
	
	//#endregion add to cart
	
});






function addedToBasketMsg()
{
	var bsktLink = $("div.MyBasket ul li").eq(1).children("a").attr("href");
	$("span.addedMsg").remove();
	$(btn).before("<span class='addedMsg'>" + totalQty + " Item(s) added to <a href='" + bsktLink + "'>Basket</a></span>").fadeIn();
}

