﻿$(function() {
	var cartLink = $('#divUtility a.myCartLinkHeader');
    var linkHeight = cartLink.outerHeight();
    var linkWidth  = cartLink.outerWidth();
	
	var layer = $('div.headerCartBox').appendTo("body");
	layer.css({ // Remove if this is moved to css file
		position: "absolute",
		width: "275px"
	});
	
    var layerWidth = layer.outerWidth();
	var layerOffset = {left:0, top:0};
	
	var timer;
	var delay = 500;

    /*	// script to show the header cart drop down	
	---------------------------------------------------------------------------*/

	if (cartLink.length){
		cartLink.hoverIntent(
			function(){
				clearTimeout(timer);
				var viewportWidth = document.documentElement.clientWidth || window.innerWidth;
				var linkOffset = cartLink.offset();
				var spaceAvailable = viewportWidth - linkOffset.left;
				if ( spaceAvailable < layerWidth ){
					layerOffset.left = linkOffset.left - (layerWidth - spaceAvailable);
				} else {
					layerOffset.left = linkOffset.left;
				}
				
				layerOffset.top = linkOffset.top + linkHeight;
				
				layer.css({
					top: layerOffset.top + "px",
					left: layerOffset.left + "px"
				});
				layer.slideDown(500);
				layer.bgiframe();
				GetProductFromCart();
			},
			function(){
				timer = setTimeout(function(){
					layer.slideUp(500);
				}, delay);
			}
		);
	}
	
	layer.bind("mousemove", function(e){
		clearTimeout(timer);
	});
	layer.hover(
		function(){
			clearTimeout(timer);
		},
		function(){
			timer = setTimeout(function(){
				layer.slideUp(500);
			}, delay);
		}
	);

	/*----------------------------------------------------------------------------*/
	
});


//This method posts an AJAX Call for getting the Products in the Cart.
function GetProductFromCart()
{
//Show loading icon on ajax call 
	$.ajax({
		type: "POST",
		url: "/vailresorts/sites/PlanningAndBooking/WebServices/MyCartWebService.svc/GetproductsFromCart",              
		data: "",
		contentType: "application/json; charset=utf-8",
		dataType: "json",
		success: function(msg) {
			$('.headerCartBox .headerCartContentWrapper').html(msg.d);
			var layer = $('div.headerCartBox');
			var layerContent = layer.find("div.headerCartContentWrapper");
			if ( layerContent.outerHeight() > 500 ){
				layer.css({
					width: "295px"
				});
				layerContent.css({
					overflow: "auto",
					height: "500px"
				});
			} else {
				layer.css({
					width: "275px"
				});
				layerContent.css({
					overflow: "visible",
					height: "auto"
				});
			}
		},
		error: function(xhr, status, error) {
			var errMsg = getErrorMessage(xhr,status,error);

			if(errMsg == ' ')
			{
				errMsg = "There is an error while retrieving cart information.";
			}

			$('.headerCartBox .headerCartContentWrapper').html('<div class="largeGboxContainer"><span class="errorMessage">' + errMsg + '</span></div>');
		}
	});

	return false;         
}
 
function UpdateCartCount(productCount)
{
    var cartText = $(".myCartLinkHeader").text();
    var MyCartText = cartText.substring(0, cartText.indexOf('(')+ 1) + productCount + ')';
    $(".myCartLinkHeader").text(MyCartText);
}