MACYS.namespace("coremetrics");
MACYS.namespace("coremetrics.intelligentOffer");

MACYS.coremetrics.intelligentOffer.productURL = "/catalog/product/thumbnail/";
MACYS.coremetrics.intelligentOffer.showRecommendations = {};

MACYS.coremetrics.intelligentOffer.zonePopulation = function(a_product_ids, zone, symbolic, target_id, category, rec_attributes, target_attributes, target_header_text) {
	if (symbolic == '_NR_') return;
	var self = MACYS.coremetrics.intelligentOffer;
	var IOcontainer = YAHOO.util.Dom.get('cmIO_' + zone);
	self.displayHeader(target_header_text, IOcontainer);
	var callback = {
	    success: self.productHandler,
	    argument: IOcontainer,
	    failure: function(response){},
	    scope: self
};
	YAHOO.util.Connect.asyncRequest("GET", self.productURL + YAHOO.util.Dom.get("productId").value + "?" + (IOcontainer.id.replace("_", "=")) + "&ids=" + a_product_ids.join(","), callback);
};

MACYS.coremetrics.intelligentOffer.displayHeader = function(headerText, IOcontainer) {
	var header = document.createElement('h3');
	header.innerHTML = headerText;
	IOcontainer.appendChild(header);
};

MACYS.coremetrics.intelligentOffer.productHandler = function(response) {
	if (response.responseText.match(/notavailable/i) || response.responseText.match(/<html/i)) {
		return;
	}
		YAHOO.util.Dom.removeClass(response.argument, "hidden");
		YAHOO.util.Dom.setStyle(response.argument,'opacity','0');
		var fadeInRecommendations = new YAHOO.util.Anim(response.argument, { opacity: { to: 1 } }, 0.75, YAHOO.util.Easing.easeOut);
		this.showRecommendations[response.argument.id] = function(){fadeInRecommendations.animate();};
		response.responseText = response.responseText.replace(/<img/, '<img onload="MACYS.coremetrics.intelligentOffer.showRecommendations[\'' + response.argument.id + '\']()"', 1);
	var registeredRegEx = new RegExp(String.fromCharCode(65533), 'g'); //for the registered trademark symbol
	var tmRegEx = new RegExp(String.fromCharCode(153), 'g'); //for the TM symbol
	response.argument.innerHTML += response.responseText.replace(registeredRegEx, String.fromCharCode(0xae)).replace(tmRegEx, String.fromCharCode(8482));
    if (YAHOO.env.ua.ie > 0) {
        var container = response.argument;
        setTimeout(function(){container.innerHTML = container.innerHTML.replace(registeredRegEx, String.fromCharCode(0xae)).replace(tmRegEx, String.fromCharCode(8482));}, 250);
    }
};

YAHOO.util.Event.onDOMReady(function(){
    window[MACYS.cmZoneId + '_zp'] = MACYS.coremetrics.intelligentOffer.zonePopulation;
    if (typeof cmRecRequest == "function" && typeof cmDisplayRecs == "function") { 
	    cmRecRequest(MACYS.cmZoneId, YAHOO.util.Dom.get("productId").value, YAHOO.util.Dom.get("categoryId").value || MACYS.util.Url.getQueryStringParameter("CategoryID") || "");
    	cmDisplayRecs();
    }
});
 
