/**
 * handles the onclick popup when CarFax icon is clicked
 * @param sandbox
 */
Cobalt.Website.Common.eBayModule = function(sandbox)
{

	function getPageLabel()
	{
		return "linkout_ebay_viewbyvin";
	};
	
	function getPromoName()
	{
		return "gm_ebay09_linkout";
	};

	function getLinkoutLabel()
	{
		return "gm_ebay09_linkout";
	};

	return {
	
		pageLabel: null,
		
		promoName: null,
		
		linkoutLabel: null,
		
		component: null,
		
		init: function(data)
		{
			if(!data) data = {};
			this.setPageLabel(data.pageLabel);
			this.setPromoName(data.promoName);
			this.setLinkoutLabel(data.linkoutLabel);
		},
		
		handleClickEvent: function(e)
		{
			this.setComponent(e);
			this.linkOut();
		},
		
		setPageLabel: function(data)
		{
			this.pageLabel = (data) ? data : getPageLabel();
		},
		
		setPromoName: function(data)
		{
			this.pageLabel = (data) ? data : getPromoName();
		},
		
		setLinkoutLabel: function(data)
		{
			this.pageLabel = (data) ? data : getLinkoutLabel();
		},
		
		setComponent: function(data)
		{
			this.component = data;
		},
		
		getPageLabel: function()
		{
			return this.pageLabel;
		},
		
		getPromoName: function()
		{
			return this.pageLabel;
		},
		
		getLinkoutLabel: function()
		{
			return this.pageLabel;
		},		
		
		getComponent: function()
		{
			return this.component;
		},

		getComponentData: function()
		{
			var component = this.getComponent();
			var componentId = sandbox.dom(component).attr("id");
			var url = sandbox.dom(component).find('a').attr('href');
			componentId = componentId.split(":");
			return {
				vin: componentId[2], 
				url: url
			}		
		},
		
		getLinkoutData: function()
		{
			var data = this.getComponentData();
			var url = data.url;
			var vin = data.vin;
			var pageLabel = this.getPageLabel();
			var promoName = this.getPromoName();
			var linkoutLabel = this.getLinkoutLabel();
			
			var linkData = { 
				url: url, 
				target:"_blank" 
			}
			
			var pixelData = {
				pageLabel: pageLabel, 
				promoName: promoName, 
				linkoutLabel: linkoutLabel, 
				vin:vin
			}
			
			return {
				linkData: linkData,
				pixelData: pixelData
			}
		},
		
		linkOut: function()
		{
			var data = this.getLinkoutData();
			CobaltPixelTag.linkout(data.linkData, data.pixelData);
			return false;
		}
		
	};
	
};
