MACYS.namespace("MACYS.quickPickService");

MACYS.quickPickService.picker = (function(){
	var self = {'quantities':{}};
	
	self.buildQtyRows = function(values) {
		var activeTab = MACYS.pdp.masterTab.getActiveTabName();
		
		var activeTabFullName = "masterTable";
		if (activeTab) {
			activeTabFullName = activeTab + "_content"
		}
		var quantities = YAHOO.util.Dom.getElementsByClassName("QtyClass", "select",YAHOO.util.Dom.get(activeTabFullName));
		for ( var i = 0; i < quantities.length; i++) {
			var r = this.getProductId(quantities[i])
			//Added if condition for resetting qty dropdown to 0 instead of empty value (Issue in IE7)
			if (null == values[r]) {
				quantities[i].selectedIndex = 0;
			} else {
				quantities[i].value = values[r];
			}
			if (values[r]) {
				MACYS.pdp.highlightMasterRow(quantities[i].parentNode.parentNode);
			}else{
        		  var row = quantities[i].parentNode.parentNode;
        		  while(row.id){
         				row.style.backgroundColor = "";
                		row = YAHOO.util.Dom.getNextSibling(row);
                  }
        	}
		}
	};
	
	self.getProductId = function(qty) {
		return qty.id.split('uantity')[1].slice(1);
	};
	
	self.show = function() {
		hasService = false;
		for (y in serviceFor8) { hasService=true; break; }
		for (y in serviceFor12) { hasService=true; break; }
		for (y in suggestedService) { hasService=true; break; }
		if (!hasService) return;
		YAHOO.util.Dom.removeClass(YAHOO.util.Dom.getElementsByClassName("quickPickContainer")[0],"hidden");
	    this._setContainerPosition();
	    var fadeInQuickPicks = new YAHOO.util.Anim(YAHOO.util.Dom.getElementsByClassName("quickPickContainer")[0], { opacity:{to:1} }, 1, YAHOO.util.Easing.easeIn); 
        fadeInQuickPicks.animate(); 
	};
	
	self._setContainerPosition = function() {
		var activeTab = MACYS.pdp.masterTab.getActiveTabName();   
        var activeTabFullName = "masterTable"; 
        if (activeTab) { 
              activeTabFullName = activeTab + "_content" 
        } 
        var qtyPDP = YAHOO.util.Dom.getElementsByClassName("qtyPDP", "td", YAHOO.util.Dom.get(activeTabFullName))[0]; 
        var triangle = YAHOO.util.Dom.getElementsByClassName("triangle")[0]; 
        var quickPickContainer = YAHOO.util.Dom.getElementsByClassName("quickPickContainer")[0]; 
        var quickPickContentContainer = YAHOO.util.Dom.getElementsByClassName("quickPickContentContainer")[0]; 
        if(quickPickContentContainer!='undefined' || quickPickContentContainer!=null) {  
            quickPickContentContainerHeight = YAHOO.util.Dom.getStyle(quickPickContentContainer,"height").replace("px",""); 
            YAHOO.util.Dom.setY(quickPickContentContainer,(YAHOO.util.Dom.getY(qtyPDP)-quickPickContentContainerHeight)-3); 
            YAHOO.util.Dom.setY(triangle,YAHOO.util.Dom.getY(qtyPDP)-2); 
            YAHOO.util.Dom.setX(triangle,YAHOO.util.Dom.getX(qtyPDP)+7);
            if (!this.readjusted) {
            	var self = this;
            	this.readjusted = true;
            	setTimeout(function(){self._setContainerPosition()}, 2000);
            }
        } 
	}
    
    self.applyServiceQuantity = function() {
    	var quickPickServiceQuantity = YAHOO.util.Dom.get("quickPickServiceQuantity");
		if (quickPickServiceQuantity) {
			var quickPickServiceDropdown = YAHOO.util.Dom.get("QUICKPICK_SERVICE_DROPDOWN");
			var selectValue = quickPickServiceDropdown.options[quickPickServiceDropdown.selectedIndex].value;
			if (selectValue == 'MS_SERVICE_FOR_8') {
				cmCreatePageElementTag("Service for 8","Registry Quickpicks");
				this.buildQtyRows(serviceFor8);
			} else if (selectValue == 'MS_SERVICE_FOR_12') {
				cmCreatePageElementTag("Service for 12","Registry Quickpicks");
				this.buildQtyRows(serviceFor12);
			}
		} else {
			cmCreatePageElementTag("Suggested Service","Registry Quickpicks");
			this.buildQtyRows(suggestedService);
		}
	};
		
	return self;
	
})();

MACYS.quickPickService.resetForm = function() {
	var activeTabName = MACYS.pdp.masterTab.getActiveTabName();
	var masterTableId = "masterTable";
	if (activeTabName) {
		masterTableId = activeTabName + "_content";
	}	
	var qtyRows = YAHOO.util.Dom.getElementsByClassName("QtyClass", "select",YAHOO.util.Dom.get(masterTableId));
	for ( var i = 0; i < qtyRows.length; i++) {
		qtyRows[i].selectedIndex = 0;		
	}
	var masterProductRows = YAHOO.util.Dom.getElementsBy(function() {return true;}, "tr", YAHOO.util.Dom.get(masterTableId));
	for ( var j = 0; j < masterProductRows.length; j++) {
		//remove highlighting
		if(masterProductRows[j].style && masterProductRows[j].style.backgroundColor){
			masterProductRows[j].style.backgroundColor = "";
		}
	}
	
};

YAHOO.util.Event.onDOMReady( function() {
	YAHOO.util.Event.addListener("APPLY_BUTTON", "click", MACYS.quickPickService.picker.applyServiceQuantity, MACYS.quickPickService.picker, true);
	YAHOO.util.Event.addListener("RESET_BUTTON", "click", function(){cmCreatePageElementTag("Reset","Registry Quickpicks"); MACYS.quickPickService.resetForm()});
	MACYS.quickPickService.picker.show();
	if(MACYS.pdp.videoTab){
		MACYS.pdp.videoTab.on("activeTabChange", function(){setTimeout(function(){MACYS.quickPickService.picker._setContainerPosition()}, 1000);});
	}
	YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName("pdpTab"), "click", function (){ MACYS.quickPickService.picker._setContainerPosition()});
});