// records Product views
function recently_viewed_product(product_id, recently_viewed_servlet) {
	new Ajax.Request(recently_viewed_servlet + '?max_number_products=20', {
		method : 'post',
		parameters : {
			randid : Math.random()
		},
		postBody : 'product_id=' + product_id + '&ref=PRODUCT'
	});
}

/*
 * recently_view_sku_code_page : url to hit to get a comma seperated list of recently view sku codes
 * 
 * Steps:
 * 1. get a list of recently viewed sku code from "page"
 * 2. call showFluidRecentlyViewed to render products
 */
function show_left_nav_recently_viewed_products(recently_view_sku_code_page) {
	if (show_recently_viewed_products) {
		new Ajax.Request(recently_view_sku_code_page, {
			method : 'get',
			parameters : {
				randid : Math.random()
			},
			onSuccess : function(transport) {
				var responseText = transport.responseText;

				if (varUtils.hasValue(responseText)) {
					var sidebar_height = $('sidebar').getDimensions().height;
					var recently_viewed_box_height = 150;
					jQuery('#contentwrap').css("min-height",
							sidebar_height + recently_viewed_box_height);
					jQuery("#recently_viewed").css("visibility", "visible");
					showFluidLeftNavRecentlyViewed(responseText);
				}
			}
		});
	}
}

/*
 * Note: only to be used on the left nav. 
 * Fluid configuration file name needs to match the div element id.
 * 
 * Function to render Fluid recently viewed products
 * 
 * Steps
 * 1. Clear cookie
 * 2. Add to cookie recently viewed products
 * 3. Show recently viewed sku codes.
 */
function showFluidLeftNavRecentlyViewed(commaSeperatedSkuCodes) {
	var recentlyViewed = new fluid.retail.merchandiser.util.RecentlyViewed();
	recentlyViewed.cookieId = "Recently_Viewed_MCF";
	recentlyViewed.clearItems();
	var skuCodeArray = commaSeperatedSkuCodes.split(",");

	skuCodeArray.each( function(s, index) {
		s = s.strip();
		recentlyViewed.addItem(index + ":1:" + s + ":default",
				"/mcfina_images/fluid/customers/c905/" + s + "/generated/" + s
						+ "_default_1_100x100.jpg");
	});

	var itemsXml = recentlyViewed.getItemsXml();
	var config = {
		dataXml : itemsXml
	};
	fluid.defineConfiguration("merchandiser:905:Recently_Viewed_1", config);
	$('merchandiser:905:Recently_Viewed_1').addClassName('fluid-merchandiser');
	fluid.application.processFluidDiv(document
			.getElementById("merchandiser:905:Recently_Viewed_1"));
}

/*
 * recently_view_sku_code_page : url to hit to get a comma seperated list of recently view sku codes
 * 
 * Steps:
 * 1. Get a comma seperated sku code string
 * 2. call showFluidProductPageRecentlyViewed to render the products
 */
function show_product_page_recently_viewed_products(
		recently_view_sku_code_page, div_id_to_fill, div_width, scroller) {
	new Ajax.Request(recently_view_sku_code_page, {
		method : 'get',
		parameters : {
			randid : Math.random()
		},
		onSuccess : function(transport) {
			var responseText = transport.responseText;

			if (varUtils.hasValue(responseText)) {
				showFluidProductPageRecentlyViewed(responseText,
						div_id_to_fill, div_width, scroller);
			}
		}
	});
}

/*
 * Used on product page to render recently viewed scroller.
 */
function showFluidProductPageRecentlyViewed(commaSeperatedSkuCodes,
		div_id_to_fill, div_width, scroller) {
	var skuCodeArray = commaSeperatedSkuCodes.split(",");
	var itemURLBase = fluidBaseItemURL;
	var itemsXml = "<Items>";
	
	if (div_width == undefined) {
		div_width = '1005';
	}
	
	if (scroller == undefined) {
		scroller = 'scroller2';
	}
	
	skuCodeArray.each( function(s, index) {
		s = s.strip();
		itemID = index + ":1:" + s + ":default";
		itemURL = itemURLBase + s + "/generated/" + s + "_default"
				+ "_1_100x100.jpg";
		itemsXml += "<Item id='" + itemID + "' url='" + itemURL + "'/>";
	});

	itemsXml += "</Items>";
	var config = {
		dataXml : itemsXml
	};
	$('tab-3')
			.insert(
					'<div class="" id="' + div_id_to_fill + '" style="width: ' + div_width + 'px; height: 105px;"></div>');
	fluid.defineConfiguration("merchandiser:905:" + scroller, config);
	$(div_id_to_fill).addClassName('fluid-merchandiser');
	fluid.application.processFluidDiv(document.getElementById(div_id_to_fill));
}
