/**
 * responsible for handling popup overlays for photo, video, etc.
 * @requires {Cobalt.Website.Common.PopupModule}
 * @param {Cobalt.Core.Sandbox} sandbox
 */


Cobalt.Website.Results.MediaPopupModule = function(sandbox)
{

	var _moduleName;
	var _instance;
	
    //inherit from PopupModule
    var _super = Cobalt.Website.Common.PopupModule(sandbox);
	
	_super.getPopupType = function() 
	{
		return getModuleName(); 
	};
	
    function getVehicleDataManager() 
	{	
		if (!Cobalt.Website.Results.VehicleDataManager) {		
			return new Error("no vehicleDataManager instance");			
		}		
		return Cobalt.Website.Results.VehicleDataManager;		
	}	
	
	function getModuleName()
	{
		if(!_moduleName){
			_moduleName = "Cobalt.Website.Results.MediaPopupModule";
		}
		return _moduleName;	
	};
	
	function getInstance()
	{
		if(!_instance){
			_instance = Cobalt.Website.Common.MediaPopupModule(sandbox);
		}
		return _instance;
	};

	function getPageLayout()
	{
		return "VehicleSearchResults_std";
	}
	
	function getPageName()
	{
		return "VehicleSearchResults";
	}
	
	function getVIN(e)
	{
		var componentId = sandbox.dom(e.currentTarget).attr("id");
		var vehicleId = componentId.split("_")[3];
		return getVehicleDataManager().getVINByVehicleId(vehicleId);
	}
	
    function handlePopupOnclick(e) 
	{
		var component = e;
		var moduleName = getModuleName();
		var pageLayout = getPageLayout();
		var pageName = getPageName();
		var vin = getVIN(e);
		
		getInstance().init({
			component: component,
			moduleName: moduleName,
			pixelData: {
				pageLayout: pageLayout,
				pageName: pageName,
				vin: vin
			}
		});
		
		getInstance().popupRaiseEvent();
		
		return false;
    };

    return {
        init:function()
        {		
            _super.afterOnPopupRenderingCompleted = this.initializeMediaPopupTabs;			
            _super.init();
            var jquerySelector = sandbox.getUIElementSelectorsForModule(Cobalt.Website.Results.ResultsApplication.Modules.MediaPopupModule);			
            for (var i=0; i<jquerySelector.length; ++i)
            {			
                sandbox.dom(jquerySelector[i]).listenLive("click", handlePopupOnclick);				
            }			
        },
        destroy:function()
        {		
            _super.destroy();
            //TODO: handle destroy			
        },
        initializeMediaPopupTabs:function(e)
        {
			getInstance().initializePopupTabs(e);
		}
    };
};








