function mod(number) 
{
	return (((number + 1) % intelligentOfferConfig.gridCellCount) == 0);
}

function cm_io_zpf(a_product_ids,zone,symbolic,target_id,category,rec_attributes,target_attributes,target_header_txt,ab_test_id,div_id,b_display_target)
{
	if(intelligentOfferConfig.debug)
	{
        debug();
	}
	
	if (symbolic !== '_NR_')
	{
		var productResults = new Object();
		var products = new Array();
		var productResultsIndex = 0;
		var headerText=target_header_txt;

		var i=0;
		for(i = 0; i < a_product_ids.length && (productResultsIndex < intelligentOfferConfig.maxResults) ;i++)
		{
			var attrs = rec_attributes[i];
			var itemNumber = a_product_ids[i];
			var name= ""+attrs[0];
			var imageUrl=""+ attrs[1];
			var listPrice= ""+attrs[2];
			var salePrice= ""+attrs[3];
		    var ud='undefined';
		    var reviewCount = "0";
		    var reviewRatings = "0.0";
						
		if(name == '' || imageUrl == ud || listPrice == ud)
			{
				continue;
			}
			else
			{
				products[productResultsIndex] = new Object();
				products[productResultsIndex].itemNumber=itemNumber;
				products[productResultsIndex].name=name;
				products[productResultsIndex].description=name;
				products[productResultsIndex].thumbNail=imageUrl;
				products[productResultsIndex].listPrice=listPrice;
				products[productResultsIndex].originalPrice="0.0";
				products[productResultsIndex].salePrice=salePrice;
				products[productResultsIndex].isOnClearance="false";
				products[productResultsIndex].isOnSale="true";
				if(salePrice  == "0.0")
					products[productResultsIndex].isOnSale="false";
				if(salePrice == '')
					products[productResultsIndex].isOnSale="false";				
				//initialize default values
				products[productResultsIndex].reviewCount=reviewCount;
				products[productResultsIndex].reviewRatings=reviewRatings;

				productResultsIndex++;
			}
		}
		
		for(i=0;i<products.length;i++)
		{
		var reviewUrl = "/StoreFrontWeb/product.js?itemNumber="+products[i].itemNumber;
		var options = { url : reviewUrl, async : false};
		var response = $.ajax(options);
		var data = jQuery.parseJSON(response.responseText);

		    	if(data.productFound == "true")
		    	{
		    		if(data.product != undefined)
		    		{
		    			products[i].reviewCount= data.product.reviewCount;
		    			products[i].reviewRatings= data.product.reviewRatings;
						products[i].listPrice=Number(data.product.price.listPrice).toFixed(2);
						products[i].salePrice=Number(data.product.price.salePrice).toFixed(2);
						products[i].originalPrice=Number(data.product.price.originalPrice).toFixed(2);
						products[i].isOnSale=data.isProductOnSale;
						products[i].isOnClearance=data.isProductOnClearance;
					}
		    	}
		}
		productResults.products = products;
		
		if (productResultsIndex > 0)
		{
			//check the type of display to use.
			if(intelligentOfferConfig.templateType == 'inline')
			{
				$(intelligentOfferConfig.zoneId).setTemplateElement(intelligentOfferConfig.templateId);
			}
			else
			{
				$('#'+intelligentOfferConfig.zoneId).setTemplateURL(intelligentOfferConfig.templateUrl);
			}
			$('#'+intelligentOfferConfig.zoneId).setParam('mod', mod);
			$('#'+intelligentOfferConfig.zoneId).setParam('header_text', headerText);
			$('#'+intelligentOfferConfig.zoneId).setParam('cross_sell_tag', intelligentOfferConfig.crossSellTag);
			$('#'+intelligentOfferConfig.zoneId).setParam('grid_cell_count', intelligentOfferConfig.gridCellCount);
			$('#'+intelligentOfferConfig.zoneId).setParam('white_image', intelligentOfferConfig.whiteImage);
			var scp = "/store/content";
			if(intelligentOfferConfig.storeContentPrefix != null || intelligentOfferConfig.storeContentPrefix != undefined)
				scp = intelligentOfferConfig.storeContentPrefix;
			$('#'+intelligentOfferConfig.zoneId).setParam('store_content_prefix', scp);
			
			var scxp = "/StoreFrontWeb";
			if(intelligentOfferConfig.storeContextPrefix != null || intelligentOfferConfig.storeContextPrefix != undefined)
				scxp = intelligentOfferConfig.storeContextPrefix;
			$('#'+intelligentOfferConfig.zoneId).setParam('store_context_prefix', scxp);
			$('#'+intelligentOfferConfig.zoneId).processTemplate(productResults);
		}
	}
}

function debug()
{	
	alert("intelligentOfferConfig.blankImage="+intelligentOfferConfig.blankImage);
	alert("intelligentOfferConfig="+intelligentOfferConfig);
	alert("a_product_ids="+a_product_ids);
	alert("zone"+zone);
	alert("symbolic="+symbolic);
	alert("target_id="+target_id);
	alert("category="+category);
	alert("rec_attributes="+rec_attributes);
	alert("target_attributes="+target_attributes);
	alert("target_header_txt="+target_header_txt);
	alert("ab_test_id="+ab_test_id);
	alert("div_id="+div_id);
	alert("b_display_target="+b_display_target);
}

function prodxs1_zp(a,b,c,d,e,f,g,h,i)
{
	cm_io_zpf(a,b,c,d,e,f,g,h,i,'prodxs1',false);
}

function cartxs1_zp(a,b,c,d,e,f,g,h,i)
{
	cm_io_zpf(a,b,c,d,e,f,g,h,i,'cartxs1',false);
}

function deptxs1_zp(a,b,c,d,e,f,g,h,i)
{
	cm_io_zpf(a,b,c,d,e,f,g,h,i,'deptxs1',false);
}

function homexs1_zp(a,b,c,d,e,f,g,h,i)
{
	cm_io_zpf(a,b,c,d,e,f,g,h,i,'homexs1',false);
}

