var ACRecentProducts = {
 	
 	'searchObject': null,
 	
 	'add' : function(productCategory, parent) {
  		
  		var recentProducts = [];
  
		if(productCategory!==undefined) {
			
			var productName = ACProductBrowser.getProductName(productCategory, ACProductBrowser.genericProducts);
			
			if(productName==undefined || productName=='' || productCategory.indexOf('PL')==-1 && (parent!=undefined && parent!='' && parent!='MAIN_PRODUCTS')) {
				// if we can't find the lowest level product, go one category up
				var parentProductName = ACProductBrowser.getProductName(parent, ACProductBrowser.genericProducts);
				if(parentProductName!==undefined && parentProductName!='') {
					productCategory = parent;
				}
			}
			// only add product lines to recent products and ignore older products (999)
			if(productName && productCategory.indexOf('PL')==-1 && ACProductBrowser.getProduct(productCategory).order!="999") {
				return;
			}
			
			if(ACUtil.readCookie('ac_recentproducts')===null) {
				recentProducts[0] = productCategory;
			}
			else {
				recentProducts = ACUtil.readCookie('ac_recentproducts').split('||');

				if(recentProducts.indexOf(productCategory)!=-1) {
					// make sure to remove the search term if it already exists so we can move it to the top
					recentProducts.splice(recentProducts.indexOf(productCategory), 1);
				}
				
				if(recentProducts.length>5) {
					recentProducts.pop();
				}
				recentProducts.reverse();
				recentProducts.push(productCategory);
				recentProducts.reverse();

			}
			
			ACUtil.writeCookie('ac_recentproducts', recentProducts.join('||'));
		}
		ACRecentProducts.update();
		
	},
 	
	'update' : function() {
  		
  		var recentProducts = [];
		
		recentProducts = ACUtil.readCookie('ac_recentproducts')!==null ? ACUtil.readCookie('ac_recentproducts').split('||') : [];
		var ulList = '';
		
		for(var i = 0; i < recentProducts.length; i++) {
			if(recentProducts[i].length>0) {
				var productName = ACProductBrowser.getProductName(recentProducts[i], ACProductBrowser.genericProducts);
				var productUrlPath = ACProductBrowser.getProductUrlPath(recentProducts[i], ACProductBrowser.genericProducts);
				
				if(productName!==undefined && productName!='') {
					ulList += '<li><a href="#' + productUrlPath + '" onclick="ACRecentProducts.showProduct(\'' + recentProducts[i] + '\');">' + productName + '</a></li>';
				}
			}
		}
		$('recent-products').innerHTML = ulList;
		
		if(ulList!='') {
			$('clearproducts').style.display = 'block';
			$('noproducts').style.display = 'none';
		}
		else {
			$('clearproducts').style.display = 'none';
			$('noproducts').style.display = 'block';
		}
	},
	
	'clear' : function() {
		ACUtil.writeCookie('ac_recentproducts', '');
		ACRecentProducts.update();
	},
	
	'showProduct': function(categoryKey) {
		// when user clicks on a product in the list
		
		this.searchObject.searchState.state = 'browse';
		this.searchObject.searchState.category = categoryKey;
		this.searchObject.searchState.searchTerm = '';
		ACProductBrowser.checkAndLoadProduct(categoryKey, 0, 'id');
		this.searchObject.searchAJAX(0,0,categoryKey);
	}
	
};