Cobalt.Website.Results.ResultsApplication = function(domService, ajaxService, flashService, reportingService, plugins)
{
    //call base class constructor
    Cobalt.Core.Application.call(this, domService, ajaxService, flashService, reportingService, plugins);
};

//inherit from Application
Cobalt.Website.Results.ResultsApplication.prototype = new Cobalt.Core.Application();

/**

 * @param {Cobalt.Website.Results.ResultsApplication.Modules} moduleEnum

 * @return {Array<String>} jQuery selectors in an Array

 */
Cobalt.Website.Results.ResultsApplication.prototype.getUIElementSelectorsForModule = function(moduleEnum)
{
    switch(moduleEnum)
    {
        case Cobalt.Website.Results.ResultsApplication.Modules.SortModule:
            return ["#inv_results_sort"];
        case Cobalt.Website.Results.ResultsApplication.Modules.ViewModule:
            return ["[class~='viewCount']"];
        case Cobalt.Website.Results.ResultsApplication.Modules.ReadMoreModule:
            return ["[class~='resultsList_item_description_section_collapsed_link']", "[class~='resultsList_item_description_section_expanded_link']"];
		case Cobalt.Website.Results.ResultsApplication.Modules.PaginationModule:
             return ["[class~='pageNavigation_control_left']","[class~='pageNavigation_control_right']"];
		case Cobalt.Website.Results.ResultsApplication.Modules.GoToPageModule:
             return ["[class~='pageNumber']"];
		case Cobalt.Website.Results.ResultsApplication.Modules.SpecialMathboxModule:
             return ["[class~='specialLogo']","[class~='specialTermLayer']"];
		case Cobalt.Website.Results.ResultsApplication.Modules.ResultListItemModule:
             return ["[class~='results_list_row']"];
		case Cobalt.Website.Results.ResultsApplication.Modules.CarFaxModule:
             return ["[class~='OneOwner']", "[class~='CarFax']"];
		case Cobalt.Website.Results.ResultsApplication.Modules.OnStarModule:
             return ["[class~='OnStar']"];
		case Cobalt.Website.Results.ResultsApplication.Modules.eBayModule:
             return ["[class~='eBay']"];
		case Cobalt.Website.Results.ResultsApplication.Modules.BackToTopModule:
             return ["[class~='backToTopText']"];
        case Cobalt.Website.Results.ResultsApplication.Modules.DealerInfoModule:
             return ["[class~='dealerInfo']"];
        case Cobalt.Website.Results.ResultsApplication.Modules.VideoPopupModule:
             return ["[id*='inv_result_video_']"];	 
		case Cobalt.Website.Results.ResultsApplication.Modules.MediaPopupModule:
             return ["[class~='media_information'] a"];	 
        case Cobalt.Website.Results.ResultsApplication.Modules.GetAQuotePopupModule:
             return ["[class~='get_a_quote']"];
        case Cobalt.Website.Results.ResultsApplication.Modules.AskAQuestionPopupModule:
             return ["[class~='ask_a_question']"];
        case Cobalt.Website.Results.ResultsApplication.Modules.CompareVehiclesModule:
            return ["[id^='btn_compareVehicles_']"];     
        default:
            throw new Error("unknown module: " + moduleEnum);
    }
};

Cobalt.Website.Results.ResultsApplication.prototype.getSandbox = function()
{
    return Cobalt.Website.Results.ResultsSandbox.getInstance(this);
};



Cobalt.Website.Results.ResultsApplication.Modules = {
  SortModule: 1,
  ViewModule: 2,
  PopupModule : 3,
  ReadMoreModule : 4,
  PaginationModule: 5,
  GoToPageModule : 6,
  SpecialMathboxModule : 7,
  ResultListItemModule: 8,
  CarFaxModule : 9,
  OnStarModule : 10,
  BackToTopModule : 11,
  DealerInfoModule: 12,
  MediaPopupModule: 13,
  GetAQuotePopupModule: 14,
  AskAQuestionPopupModule : 15,
  FormModule : 16,
  ebayModule : 17,
  VideoPopupModule: 18,
  CompareVehiclesModule: 19
};




