bb.page.whatsnew = {};
var slider_id;

document.observe("dom:loaded", function() {
    bb.page.whatsnew.init();	 
	if (slider_id) {
		setTimeout("onloadShowSlider(slider_id)", 3000); }
});

bb.page.whatsnew.init = function() {
    var rawProductData = bb.page.whatsnew.categoryData[0];
    var mergedProductData = bb.productData.mergeSkusIntoProducts(rawProductData.product, rawProductData.sku);
	
	bb.page.whatsnew.renderPage(mergedProductData);
};

bb.page.whatsnew.renderPage = function(mergedProductData) {
    var productDataArray = mergedProductData;
    // sort the products
    productDataArray = productDataArray.sortBy(function(productData){
//		console.log(productData.DISPLAY_ORDER)
        return productData.DISPLAY_ORDER;
    });
    /*Commented out since Display Order will only determine the order
	productDataArray = productDataArray.sortBy(function(productData){
        return bb.productData.isNew(productData);
    });
    productDataArray = productDataArray.sortBy(function(productData){
        return bb.productData.isAwardWinning(productData);
    });*/
    var containerNode = $$(".products_area")[0];
    var rowOuterContainer = null;
	var rowInnerContainer = null;
    // remove non-shoppable products
    productDataArray = productDataArray.findAll(function(productData) {
        return bb.productData.isProductShoppable(productData);
    });
    // iterate through the products in the category
    productDataArray.each(function(productData, idx) {
	 if (idx % 4 === 0) {
//                rowInnerContainer.style.visibility = "visible";
                rowOuterContainer = new Element ("div", {"class":"whatsnew-block", style:"visibility:hidden"});				
                rowInnerContainer = new Element ("div", {"class":"content products"});				
				
				
                rowOuterContainer.insert(rowInnerContainer);
                containerNode.insert(rowOuterContainer);
				
				// on first pass, insert the header container
				if (idx < 4) {
					rowOuterContainer.setStyle({'border':'none'});
					rowInnerContainer.setStyle({'border':'none','padding':'0'});
				}
            }
		
        productData.priceString = bb.productData.formatPriceRange(productData);

//        productData.url = "/templates/products/spp/index.tmpl?PRODUCT_ID=" + productData.PRODUCT_ID;
//        if (bb.page.categoryID.length > 0) {
//            productData.url += "&CATEGORY_ID=" + bb.page.categoryID;
//        }

        productData.url = bb.productData.convertProductURL(productData.url);
        productData.description = bb.productData.truncateDescription(productData.DESCRIPTION, productData.url);
        
        productData.imagePath = bb.page.PRODUCT_IMG_PATH + productData.IMAGE_NAME + "_m.jpg";

        //console.log(bb.page.categoryID);
        addMppTag(productData.PRODUCT_ID,productData.PRODUCT_NAME,bb.page.categoryID);
		  
        var templt_args = { url_domain : window.URL_DOMAIN };
        
        templt_args.ratingReviewString = productData.TOTAL_REVIEW_COUNT > 1 ? 'Reviews' : 'Review';
        templt_args.ratingDisplay = typeof productData.AVERAGE_RATING == 'number' && isFinite(productData.AVERAGE_RATING) ? 'block' : 'none';
        templt_args.ratingRounded = Math.round(productData.AVERAGE_RATING*10)/10;
		  
        Object.extend(productData, templt_args);		  
		
        bb.templateFactory.get("product-thumb-swatches").evaluateCallback({
            object: productData,
            callback: function(container, productData, html) {
                var wrapperNode = new Element("div");
                container.insert(wrapperNode);
                wrapperNode.insert(html);
				
				productData.sku.each( function(skuData, index) {
					if (skuData.hex_value_string) {
						var hexValues = skuData.hex_value_string.split(",");
						var shadeName = skuData.SHADENAME.split(",");
						var listItemNode = new Element("div", {"class":"shades_container"});	
						
						//get hexValues and instert swatches
						hexValues.each(function(hexVal,index) {
							var aNode = new Element("div", {"class":"whatsnew_swatch"});
							var spanNode = new Element("span");
							aNode.update(bb.page.getSwatchNode(hexVal));
							spanNode.update(shadeName[index])
							aNode.insert(spanNode);
							listItemNode.insert(aNode);
						});	
						var swatchContainer = wrapperNode.select(".swatches")[0];
						swatchContainer.insert(listItemNode);
					}
				});
				
				var callOutNode = wrapperNode.select(".callout")[0];
				console.log(productData)
				bb.productData.setCallOut(callOutNode,productData);
				
//                 if (bb.productData.isAwardWinning(productData)) {
//                     calloutNode.update("Award Winning");
//                 } else if (bb.productData.isNew(productData)) {
//                     calloutNode.update("New");
//                 } else if (bb.productData.isNewShades(productData)) {
//                     calloutNode.update("New Shades");
//                 } else {
//                     calloutNode.update("");
//                 }
				
                var quickshopLinkNode = wrapperNode.select("a.open-product-1")[0];
                bb.page.productView.initQuickshopLink(quickshopLinkNode, productData);
                var parentContainerNode = container.parentNode;
                $(parentContainerNode).setStyle({visibility :"visible"});
			
            }.curry(rowInnerContainer, productData)
        });		
    }); // end iterating through products 
};