/**
 * responsible for handling Special Math box actions.
 * @param {Cobalt.Core.Sandbox} sandbox
 */
Cobalt.Website.VehicleDetail.SpecialMathboxModule = function(sandbox)
{
	
    var handleSpecialDescriptionMouseOver = function(e) {
		var data = getComponentData(e);
		sandbox.dom("#"+data.currentElement).addClass("highlightSpeialsRow");
		sandbox.dom("#"+data.targetElement).addClass("hoverDescription");
		sandbox.dom("#"+data.targetElement).show();
    };
	
	 var handleSpecialMathboxMouseOut = function(e) {
		
		var data = getComponentData(e);
		
		sandbox.dom("#"+data.currentElement).removeClass("highlightSpeialsRow");
  		sandbox.dom("#"+data.targetElement).removeClass("hoverDescription");
		sandbox.dom("#"+data.targetElement).hide();
    };
	
	var handleSpecialDisclaimerClick = function() {
		var targetDisclaimerElemet = "[class~='specialDisclaimerDetails']";
		sandbox.dom("."+targetDisclaimerElemet).show();
	};
	
	var handleSpecialDisclaimerCloseClicked = function(e) {
		sandbox.dom(".specialDisclaimerDetails").hide();
		return false;
	};
	
	var getComponentData = function(component){
		var elementNameEndWith = "description";
        var currElm = sandbox.dom(component.currentTarget).attr("id");
		var targElm = currElm+"_"+elementNameEndWith;
		return {
					currentElement: currElm, 
					targetElement:targElm
				};		
	};
	var zeroPadding = function(number) {		var num = (number > 9)? number : '0'+ number;		return num;	};		var timeStamp = function()	{		var date = new Date(); 		var curr_date = zeroPadding(date.getDate());		var curr_month = date.getMonth() + 1;		curr_month = zeroPadding(curr_month);		var curr_year = date.getFullYear();		var curr_hour = date.getHours();		var ampm = (curr_hour > 11)? "pm":"am";		curr_hour = (curr_hour > 12)? zeroPadding(curr_hour - 12): zeroPadding(curr_hour);		var curr_minute = zeroPadding(date.getMinutes());		date= curr_month + '/'+ curr_date + '/'+ curr_year;		var time = curr_hour +':'+ curr_minute+ampm;		return date +' '+ time	};
    return {
        init:function()
        {
			var specialDescriptionSelector = ["[class~='mathbox_deductspecial']","[class~='mathbox_nondeductspecial']"];		
			var specialDisclaimerLink = "[class~='specialDisclaimerLink']";	
			var disclaimerClose = "[class~='specialDisclaimerClose']";
   			for (var i=0; i<specialDescriptionSelector.length; ++i) 
			{
				if(sandbox.dom("."+specialDescriptionSelector[i]).length() > 0) 
				{
					sandbox.dom(specialDescriptionSelector[i]).listenLive("mouseenter", handleSpecialDescriptionMouseOver);
					sandbox.dom(specialDescriptionSelector[i]).listenLive("mouseleave", handleSpecialMathboxMouseOut);
				}
			}
			sandbox.dom(specialDisclaimerLink).listenLive("click",handleSpecialDisclaimerClick);
			sandbox.dom(disclaimerClose).listenLive("click", handleSpecialDisclaimerCloseClicked);			sandbox.dom("ul.validity_timeStamp").html("<li id='validity-list'>Price valid for 3 days from "+ timeStamp()+"</li>");
        },
        destroy:function()
        {
            //TODO: handle destroy
        }
    };
};
