var i = 0;
var imageList = [];
var size;
var heroImageFilePath;

var Home = (function () {
    var checkMobileSize = function() {
        var isMobile = window.matchMedia('(max-width: 767px)');
        if (isMobile.matches) {
            $('.header-search').find('h1').addClass('cu-color');
        } else {
            $('.header-search').find('h1').removeClass('cu-color');
        }
    };

    $(window).on('resize', function () {
        checkMobileSize();
    });

    var initResearch = function () {
        checkMobileSize();
        $(".build-button").on("click", function () {
            var make = $(".research-make-text").first().text();
            var model = $(".research-model-text").first().text();
            if (checkFilledResearch(make, model)) {
                goToResearchPage(make, model);
            } else {
                invalidResearchRequest(this);
            }
        });

        $(".research-make-button").on('click', function () {
            $(".build-button").tooltip('destroy');
        });

        $('.research-make-dropdown li').on('click', function () {
            $(".research-model-dropdown").empty();
            Home.GetModelFromMakes($(this).text());
            $(".research-model-button").prop("disabled", false);
            var text = $(this).text();
            $(".research-make-text").text(text);
        });
    };

    var invalidResearchRequest = function (elm) {
        $(elm).tooltip({ placement: 'bottom', trigger: 'manual' }).tooltip('show');
    };

    var goToResearchPage = function (make, model) {
        var baseUrl = window.location.protocol + '//' + window.location.host + '/' + 'Research/Details';
        var urlParams = '?make=' + make + '&model=' + model;
        var redirectUrl = baseUrl + urlParams;
        document.location.href = redirectUrl;
    };

    var checkFilledResearch = function (make, model) {

        if (make === "Select a Make" || model === "Select a Model") {
            return false;
        } else {
            return true;
        }
    }

    var getModelFromMakes = function (make) {
        var mainUrl = window.location.protocol + '//' + window.location.host + '/';
        var url = mainUrl + "Home/GetModels/?make=" + make;
        $.ajax({
            url: url,
            dataType: "json",
            type: "GET",
            success: function (results) {
                $.each(results, function (i, result) {
                    $(".research-model-dropdown").append('<li class="option" name="' + result + '" value="' + result + '"><a>' + result + '</a></li>');
                });
                $(".research-model-text").text("Select a Model");
                $('.research-model-dropdown li').on('click', function () {
                    var text = $(this).text();
                    $(".research-model-text").text(text);
                });
                $(".research-model-button").on('click', function () {
                    $(".build-button").tooltip('destroy');
                });
            }
        });
    };

    var changeHeroImage = function () {
        var $heroImages = $('#hero-images');
        var imageUrl = heroImageFilePath + "AutoSMART/HeroImages/Combined/" + imageList[i];
        var $heroImage = $("<div class='hero-image' style='background-image: url(\"" + imageUrl + "\"); " + size + "'></div>");
        $heroImages.append($heroImage);

        var $currentSlide = $($heroImages).children().first();
        var $nextSlide = $($heroImages).children().first().next();
        $nextSlide.css("top", "-410px");

        $($nextSlide).animate({ opacity: 1 }, {
            duration: 1000,
            complete: function () {
                $($currentSlide).css("opacity", "0");
                $nextSlide.css("top", "0px");
                $currentSlide.remove();
            }
        });

        i = (i < (imageList.length - 1)) ? (i + 1) : 0;
    }


    var initHeroImage = function () {
        var isMobile = window.matchMedia("only screen and (max-width: 760px)");
        var retina = (window.devicePixelRatio > 1.5) ? "@2x.jpg" : ".jpg";
        size = (window.devicePixelRatio > 1.5) ? "background-size: 1440px 410px;" : "";
        var heroImageList = $('#hero-image-list').val().replace(/.jpg/g, retina);
        var imageArray = heroImageList.split(",");
        $.each(imageArray, function (i, value) {
            if (imageArray[i] != "") {
                imageList.push(imageArray[i]);
            }
        });

        heroImageFilePath = $('#hero-file-path').val();
        var $heroImages = $('#hero-images');
        $heroImages.empty();

        var imageUrl = heroImageFilePath + "AutoSMART/HeroImages/Combined/" + imageList[0];

        if (isMobile.matches) {
            var randomImage = Math.floor(Math.random() * imageList.length);
            imageUrl = heroImageFilePath + "AutoSMART/HeroImages/Combined/" + imageList[randomImage];
        }

        var $heroImage = $("<div class='hero-image' style='background-image: url(\"" + imageUrl + "\"); " + size + "'></div>");

        $heroImages.append($heroImage);
        $heroImages.children().first().css("opacity", "1");

        if (!isMobile.matches) {
            if (imageList.length > 1) {
                i++;
                setInterval(changeHeroImage, 6000);
            }
        } else {
            $('#hero-images-xs img').prop('src', imageUrl);
        }
    }

    return {
        InitResearch: initResearch,
        InitHeroImage: initHeroImage,
        GetModelFromMakes: getModelFromMakes,
        ChangeHeroImage: changeHeroImage
    };
})();

$(function () {
    Home.InitResearch();
});
var Search = (function () {
    var mainUrl = window.location.protocol + '//' + window.location.host + '/';

    var getModels = function (condition, make, isSpecial) {

        if ((condition == null || condition.length == 0 && !isSpecial ) || make == null || make.length == 0) {
            return [];
        }
        var lowercaseCondition = condition.toLowerCase();

        switch (lowercaseCondition) {
            case 'new':
            case 'chrome':
                return getChromeModels(make);
            case 'inventory':
            case 'used':
            case 'old':
            case 'newandused':
            case 'new and used':
                return getInventoryModels(make);
        }

        return [];
    };

    var getChromeModels = function(make) {
        var collection = [];

        $.ajax({
            type: "GET",
            dataType: "json",
            data: { 'make': make },
            cache: true,
            async: false,
            url: mainUrl + '/Build/GetModels'
        }).done(function(makes) {
            collection = makes;
        });

        return collection;
    }
    var getSpecialtyMakes = function (specialtyList) {
        var collection = [];
        var url = mainUrl + '/searchV3/GetSpecialtyMakes/';
        if (specialtyList && specialtyList.length > 0) {
            url += '?specialList=' + specialtyList;
        }

        $.ajax({
            type: "GET",
            dataType: "json",
            cache: true,
            async: false,
            url: url
        }).done(function (makes) {
            collection = makes;
        });

        return collection;
    }
    var getInventoryModels = function(make) {
        var collection = [];

        $.ajax({
            type: "GET",
            dataType: "json",
            data: { 'make': make },
            cache: true,
            async: false,
            url: mainUrl + '/SearchV3/GetModels'
        }).done(function(makes) {
            collection = makes;
        });

        return collection;
    }

    var getMakes = function (condition, isSpecial) {

        if (condition == null || condition.length == 0) {
            return [];
        }
        if (isSpecial) {
            return getSpecialtyMakes();
        }

        var lowercaseCondition = condition.toLowerCase();

        switch (lowercaseCondition) {
            case 'new':
            case 'chrome':
                return getChromeMakes();
            case 'inventory':
            case 'used':
            case 'old':
            case 'newandused':
            case 'new and used':
                return getInventoryMakes();
        }

        return [];
    }
    var getSpecialtyMakesHomePage = function (vehicleTypeId) {

        var collection = [];

        $.ajax({
            type: "GET",
            dataType: "json",
            cache: true,
            async: false,
            url: mainUrl + '/SearchV3/GetSpecialtyMakesHome?vehicleStyleId=' + vehicleTypeId
        }).done(function (makes) {
            collection = makes;
        });
        return collection;
    }

    var getInventoryMakes = function () {
        var collection = [];

        $.ajax({
            type: "GET",
            dataType: "json",
            cache: true,
            async: false,
            url: mainUrl + '/SearchV3/GetMakes'
        }).done(function(makes) {
            collection = makes;
        });

        return collection;
    }

    var getChromeMakes = function () {
        var collection = [];

        $.ajax({
            type: "GET",
            dataType: "json",
            cache: true,
            async: false,
            url: mainUrl + '/Build/GetMakes'
        }).done(function (makes) {
            collection = makes;
        });

        return collection;
    }

    return {
        GetMakes: getMakes,
        GetModels: getModels,
        GetSpecialtyMakes: getSpecialtyMakes,
        GetSpecialtyMakesHomePage: getSpecialtyMakesHomePage
    };
})();

var MainSearch = (function() {

    var isSpecialtySearch = function() {
        var type = $.url(document.location.href.toLowerCase()).param("type");

        return type && type.toLowerCase() === $("#search-filters").data("specialty-flag");
    };

    var search = function () {
        var $mainSearchConditions = $('#mainSearchConditions span.buttonText');
        var arguments = [];
        var condition;

        if ($mainSearchConditions.length > 0) {
            condition = $mainSearchConditions.data('condition').toLowerCase();

            if (condition.length > 0) {
                if (condition == 'specialty vehicles') {
                    var vehicleTypeArg = "";
                    var itemType = $('#vehicle-type-text').data('value');
                    if (itemType.toLowerCase() != 'vehicle type')
                        vehicleTypeArg = "vehicletype=" + itemType + "&";
                    arguments.push( vehicleTypeArg + 'Type=Specialty');
                } else {
                    arguments.push('condition=' + encodeURIComponent(condition));
                }
            }
        }

        var make = $('#mainSearchMakes span.find-make-text').text();

        if (make.toLowerCase() != "make" && make.toLowerCase() != "select a make" && make.length > 0) {
            var makeModelArg = 'Makes=' + encodeURIComponent(make);
            var model = $('#mainSearchModels').find('span.find-model-text').text();
            if (model.toLowerCase() != 'model' && model.toLowerCase() != "select a model" && model.length > 0) {
                makeModelArg += '&MakeModel=' + encodeURIComponent(make) + '|' + encodeURIComponent(model);
            }
            arguments.push(makeModelArg);
        }

        document.location.href = window.location.protocol + '//' + window.location.host + '/' + 'Search' + (arguments.length == 0?'':'?' + arguments.join('&'));
    }

    var getMakes = function (condition, conditionText, isSpecial) {
        var mainSearchModelElem = $("#mainSearchModels");
        var mainSearchMakeElem = $("#mainSearchMakes");
        var mainVehicleTypesElem = $("#mainVehicleTypes");

        if (!isSpecial) {
            isSpecial = isSpecialtySearch();
            mainVehicleTypesElem.hide();
            mainSearchModelElem.show();
        }

        var makelist = '';
        var modellist = '';
        $('#mainSearchButton').tooltip({ placement: 'right' });
        mainSearchMakeElem.find('.dropdown-menu').empty();
        mainSearchModelElem.find('.dropdown-menu').empty();
        mainSearchModelElem.find('span.find-model-text').text('Model');
        mainSearchMakeElem.find(' span.find-make-text').text('Make');

        $('#mainSearchConditions').find('[data-toggle="dropdown"] span').text(conditionText).data('condition', condition);

        if (condition.toLowerCase() == 'condition' || isSpecial) {
            mainSearchMakeElem.find('.dropdown-menu').append(makelist);
            mainVehicleTypesElem.find('[data-toggle="dropdown"] span').text('Vehicle Type').data('value', 'Vehicle Type');
            mainSearchMakeElem.find('button').attr('disabled', 'disabled');
            mainSearchModelElem.find('.dropdown-menu').append(modellist);
            mainVehicleTypesElem.show();
            mainSearchModelElem.hide();
            return;
        }
        var makes = Search.GetMakes(condition, isSpecial);

        if (makes != undefined && makes.length > 0) {
            var count = makes.length;

            for (var i = 0; i < count; i++) {
                var make = makes[i].Make;
                var makeParam = make.replace(/'/g, "\\'");
                makelist += '<li class="option" onclick="MainSearch.GetModels(\'' + makeParam + '\', true,' + isSpecial + ')"><a>' + make + '</a></li>';
            }
        }
        mainSearchMakeElem.find('button').removeAttr('disabled');
        mainSearchModelElem.find('button').attr('disabled', 'disabled');
        mainSearchMakeElem.find('.dropdown-menu').append(makelist);
        mainSearchModelElem.find('.dropdown-menu').append(modellist);
    };

    var getModels = function (make, isMainSearch, isSpecial) {
        var mainSearchModelElem = $("#mainSearchModels");
        var mainSearchMakeElem = $("#mainSearchMakes");

        if (!isSpecial) {
            isSpecial = isSpecialtySearch();
        }
        $('#mainSearchButton').tooltip('destroy');
        var condition = 'used';
        var modelText = 'Select a Model';

        if (isMainSearch) {
            condition = $('#mainSearchConditions span.buttonText').data('condition');
            modelText = 'Model';
        }
        var modellist = '';
        mainSearchModelElem.find('.dropdown-menu').empty();
        mainSearchModelElem.find('span.find-model-text').text(modelText);
        mainSearchMakeElem.find('[data-toggle="dropdown"] span').text(make);

        if (isSpecial) {
            mainSearchMakeElem.find('button').removeAttr('disabled');
            return;
        }
        var models = Search.GetModels(condition, make, isSpecial);

        if (models != undefined && models.length > 0) {
            var count = models.length;

            for (var i = 0; i < count; i++) {
                var model = models[i].Model;
                modellist += '<li class="option" onclick="MainSearch.UpdateModelButton(\'' + model + '\')"><a>' + model + '</a></li>';
            }
        }
        mainSearchModelElem.find('.dropdown-menu').append(modellist);
        mainSearchModelElem.find('button').removeAttr('disabled');
    };

    var findSpecialtyMakes = function (vehicleType, vehicleTypeId, value) {
        $("#mainVehicleTypes").show();
        $("#mainSearchModels").hide();
        var makelist = '';
        $('#mainSearchButton').tooltip({ placement: 'right' });
        $('#mainSearchMakes .dropdown-menu').empty();
        $('#mainSearchMakes span.find-make-text').text('Make');

        $('#mainVehicleTypes').find('[data-toggle="dropdown"] span').text(vehicleType);
        $("#vehicle-type-text").data('value', value);
        var typeId = $('#mainSearchConditions span.buttonText').data('condition');
        if (typeId.toLowerCase() == 0) {
            $('#mainSearchMakes .dropdown-menu').append(makelist);
            return;
        }
        var makes = Search.GetSpecialtyMakesHomePage(vehicleTypeId);

        if (makes != undefined && makes.length > 0) {
            var count = makes.length;
            $('#mainSearchMakes button').removeAttr('disabled');
            for (var i = 0; i < count; i++) {
                var make = makes[i].Make;
                var makeParam = make.replace(/'/g, "\\'");
                makelist += '<li class="option" onclick="MainSearch.GetModels(\'' + makeParam + '\', true,' + true + ')"><a>' + make + '</a></li>';
            }
            $('#mainSearchMakes .dropdown-menu').append(makelist);
        }
    };

    var updateModelButton = function(model) {
        $('#mainSearchModels').find('[data-toggle="dropdown"] span').text(model);
    };

    return {
        Search: search,
        GetMakes: getMakes,
        GetModels: getModels,
        UpdateModelButton: updateModelButton,
        IsSpecialtySearch: isSpecialtySearch,
        FindSpecialtyMakes: findSpecialtyMakes
    };
})();
var Dealer = (function () {
    
    var findADealerMakeSelect = function ($elem) {
        var $btn = $(".find-a-dealer-btn");
        var text = $elem.text();
        $('.dealer-make-text').html(text);
        $btn.tooltip('destroy');

        $btn.removeData("specialty");
        if ($elem.data("specialty")) {
            $btn.data("specialty", true).data("item-type-id", $elem.data("item-type-id"));
        }
    };

    var dealerSearch = function () {
        var zip = $("#header-zip").text().trim();
        var make = $('.dealer-make-text').first().text();
        var validZip = Global.IsValidZipCode(zip);

        var $btn = $(".find-a-dealer-btn");
        var baseUrl = window.location.protocol + '//' + window.location.host + '/' + 'Dealer';
        var urlParams = '?makemodel=' + make + '&location=' + zip;
        if ($btn.data("specialty")) {
            var itemTypeId = $btn.data("item-type-id");
            urlParams = "?vehicletypeid=" + itemTypeId + "&location=" + zip;
        }

        if (make.toLowerCase() === "select a make") {
            urlParams = "?location=" + zip;
        }

        var redirectUrl = baseUrl + urlParams;
        if (validZip) {
            document.location.href = redirectUrl;
        }
    };

    var setDealerCookie = function() {
        $('a[data-role="view-inventory"]').on("click", function () {
            $.cookie("dealer-srp-link", document.location.search, { path: "/" });
        });
    };

    var getDealerCookie = function() {
        var cookieVal = $.cookie("dealer-srp-link");
        if (!cookieVal) return;
        var firstChar = cookieVal.charAt(0);
        if (firstChar === "&") {
            cookieVal.replace("&", "?");
        }
        if (firstChar != "?") {
            cookieVal = "?" + cookieVal;
        }
        var $target = $("div.dealer-listings").find("a");

        var href = "/Dealer/" + cookieVal;
        $target.attr("href", href);
    };

    var resetOptions = function($container) {
        $container.find("label").removeClass("selected");
    };

    var initSpecialtyDropDown = function () {
        var $makesDropdown = $("#makes-dropdown");
        var $container = $("#vehicletype-container");

        $container.find("label").on("click", function () {
            resetOptions($container);
            var $el = $(this);
            $el.addClass('selected');
            var itemType = $el.data("item-type");
            $("#specialty-dropdown").find(".selected-values").text($el.text());
            if (itemType.toLowerCase() === "car") {
                $makesDropdown.show();
            } else {
                $makesDropdown.hide();
            }
            SearchBar.RefreshAddressBar();
        });

        selectSpecialtyType();
    };

    var selectSpecialtyType = function () {
        var $makesDropdown = $("#makes-dropdown");
        var $label = $("#specialty-dropdown").find(".selected-values");
        var vehicleTypeId = $.url().param("vehicletypeid");
        var vehicleType = $('label[data-item-type-id="' + vehicleTypeId + '"]').text();
        $label.text(vehicleType);
        if (vehicleTypeId === 5 || !vehicleTypeId) {
            $makesDropdown.show();
            $label.text($('label[data-item-type-id="5"]').text());
        } else {
            $makesDropdown.hide();
        }
    };

    return {
        FindADealerMakeSelect: findADealerMakeSelect,
        DealerSearch: dealerSearch,
        GetDealerCookie: getDealerCookie,
        SetDealerCookie: setDealerCookie,
        InitSpecialtyDropDown: initSpecialtyDropDown
    };
})();

$(function () {

    $('.find-a-dealer-dropdown li').on('click', function () {
        Dealer.FindADealerMakeSelect($(this));
    });

    $('.find-a-dealer-btn').on('click', function () {
        Dealer.DealerSearch();
    });

});
'use strict';

(function (module) {
    module.service('GoogleAnalyticsService', ['$http', '$q', function ($http, $q) {

        var exploreFinancingClick = function () {
            ga('send', 'event', 'Home Page', 'Explore Financing Clicked');
        };

        var prequalifyContinueBtn = function () {
            ga('send', 'event', 'Prequalify', 'Prequalify Continue Button Clicked');
        };

        var continueShoppingBtn = function () {
            ga('send', 'event', 'QQ No Results', 'Continue Shopping Clicked');
        };

        var shopforCarsBtn = function () {
            ga('send', 'event', 'QQ Results', 'Shop for Cars Clicked');
        };

        /* Vehicle Details Page */

        var contactDealerVDPBtn = function () {
            ga('send', 'event', 'Vehicle Details Page', 'Contact Dealer Clicked with QQ');
        };

        var contactDealerNoQQVDPBtn = function () {
            ga('send', 'event', 'Vehicle Details Page', 'Contact Dealer Clicked without QQ');
        };

        var appointmentBtn = function () {
            ga('send', 'event', 'Vehicle Details Page', 'Schedule an appointment Clicked');
        };

        var askQuestionBtn = function () {
            ga('send', 'event', 'Vehicle Details Page', 'Ask a question Clicked');
        };

        var saveVehicleClick = function () {
            ga('send', 'event', 'Vehicle Details Page', 'Save Vehicle');
        };

        var removeVehicleClick = function () {
            ga('send', 'event', 'Vehicle Details Page', 'Remove Vehicle');
        };

        var recommendedVehicleClick = function () {
            ga('send', 'event', 'Vehicle Details Page', 'Recommended Vehicle Clicked');
        };

        var carfaxReportClick = function () {
            ga('send', 'event', 'Vehicle Details Page', 'Carfax Report Clicked');
        };

        var editPaymentVDPBtn = function () {
            ga('send', 'event', 'Vehicle Details Page', 'Edit Payment Clicked');
        };

        var editFinancingVDPBtn = function () {
            ga('send', 'event', 'Vehicle Details Page', 'Edit Financing Clicked');
        };

        var continueFinanceVDPBtn = function () {
            ga('send', 'event', 'Vehicle Details Page', 'Continue to Financing Clicked');
        };

        /* SRP */

        var spotlightClick = function(itemId) {
            ga('send', 'event', 'Search Results Listing', 'Spotlight Clicked', itemId);
        };

        var contactDealerBtn = function () {
            ga('send', 'event', 'Search Results Listing', 'Contact Dealer Clicked with QQ');
        };

        var contactDealerNoQQBtn = function () {
            ga('send', 'event', 'Search Results Listing', 'Contact Dealer Clicked without QQ');
        };

        var editPaymentBtn = function () {
            ga('send', 'event', 'Search Results Listing', 'Edit Payment Clicked');
        };

        var editFinancingBtn = function () {
            ga('send', 'event', 'Search Results Listing', 'Edit Financing Clicked');
        };

        var priceComparisonClick = function () {
            ga('send', 'event', 'Search Results Listing', 'Price Comparison Clicked');
        };

        var continueFinanceBtn = function () {
            ga('send', 'event', 'Search Results Listing', 'Continue to Financing Clicked');
        };

        /* Header */

        var saveFavoriteVehicle = function (itemId) {
            ga('send', 'event', 'Search Results Listing', 'Save Vehicle', itemId);
        };

        /* Build Page */

        var buildSearchNearYou = function() {
            ga('send', 'event', 'Build Page', 'Search Inventory');
        };

        /* Finance */

        var financeAffordCalculatorBtn = function() {
            ga('send', 'event', 'Finance Page', 'What Can I Afford Calculator - Button Clicked');
        };

        var financeAffordPaymentVehicleSearchBtn = function () {
            ga('send', 'event', 'Finance Page', 'What Can I Afford Calculator - View Inventory Button Clicked');
        };

        var financeMonthlyPaymentCalculatorBtn = function () {
            ga('send', 'event', 'Finance Page', 'Monthly Payment Calculator - Button Clicked');
        };

        var financeMonthlyPaymentVehicleSearchBtn = function () {
            ga('send', 'event', 'Finance Page', 'Monthly Payment Calculator - View Inventory Button Clicked');
        };

        var financeApplyLoanBtn = function () {
            ga('send', 'event', 'Finance Page', 'Apply for a Loan Clicked');
        };

        var homeApplyLoanBtn = function () {
            ga('send', 'event', 'Home Page', 'Apply for a Loan Clicked');
        };

        var headerApplyLoanBtn = function () {
            ga('send', 'event', 'Header Page', 'Apply for a Loan Clicked');
        };

        var srpPreferredApplyLoanBtn = function () {
            ga('send', 'event', 'SRP Preferred Plus Page', 'Apply for a Loan Clicked');
        };

        var srpApplyLoanBtn = function () {
            ga('send', 'event', 'SRP Page', 'Apply for a Loan Clicked');
        };

        var vdpPreferredApplyLoanBtn = function () {
            ga('send', 'event', 'VDP Preferred Plus Page', 'Apply for a Loan Clicked');
        };

        var vdpApplyLoanBtn = function () {
            ga('send', 'event', 'VDP Page', 'Apply for a Loan Clicked');
        };

        var financeInformationArticleClick = function (text) {
            ga('send', 'event', 'Finance Page', 'Information Articles Clicked', text);
        };

        var financeResearchToolsClick = function (text) {
            ga('send', 'event', 'Finance Page', 'Research Tools Clicked', text);
        };

        var financeVehicleSearchBtn = function (make, model) {
            ga('send', 'event', 'Finance Page', 'Vehicle Inventory Search Clicked', make + ' | ' + model);
        };

        var financeDealerSearchBtn = function (make) {
            ga('send', 'event', 'Finance Page', 'Vehicle Inventory Search Clicked', make);
        };

        return {
            SpotlightClick: spotlightClick,
            SaveFavoriteVehicle: saveFavoriteVehicle,
            BuildSearchNearYou: buildSearchNearYou,
            FinanceAffordCalculatorBtn: financeAffordCalculatorBtn,
            FinanceAffordPaymentVehicleSearchBtn: financeAffordPaymentVehicleSearchBtn,
            FinanceMonthlyPaymentCalculatorBtn: financeMonthlyPaymentCalculatorBtn,
            FinanceMonthlyPaymentVehicleSearchBtn: financeMonthlyPaymentVehicleSearchBtn,
            FinanceApplyLoanBtn: financeApplyLoanBtn,
            FinanceInformationArticleClick: financeInformationArticleClick,
            FinanceResearchToolsClick: financeResearchToolsClick,
            FinanceVehicleSearchBtn: financeVehicleSearchBtn,
            FinanceDealerSearchBtn: financeDealerSearchBtn,
            ContactDealerBtn: contactDealerBtn,
            EditPaymentBtn: editPaymentBtn,
            EditFinancingBtn: editFinancingBtn,
            PriceComparisonClick: priceComparisonClick,
            ContinueFinanceBtn: continueFinanceBtn,
            ContactDealerVDPBtn: contactDealerVDPBtn,
            AppointmentBtn: appointmentBtn,
            AskQuestionBtn: askQuestionBtn,
            SaveVehicleClick: saveVehicleClick,
            RemoveVehicleClick: removeVehicleClick,
            RecommendedVehicleClick: recommendedVehicleClick,
            CarfaxReportClick: carfaxReportClick,
            EditPaymentVDPBtn: editPaymentVDPBtn,
            EditFinancingVDPBtn: editFinancingVDPBtn,
            ContinueFinanceVDPBtn: continueFinanceVDPBtn,
            ExploreFinancingClick: exploreFinancingClick,
            PrequalifyContinueBtn: prequalifyContinueBtn,
            ContinueShoppingBtn: continueShoppingBtn,
            ShopforCarsBtn: shopforCarsBtn,
            ContactDealerNoQQVDPBtn: contactDealerNoQQVDPBtn,
            ContactDealerNoQQBtn: contactDealerNoQQBtn

        }
    }]);

})(angular.module('AutoSMART.Web.Common'));
'use strict';

(function (module) {
    module.service('LoggingService', ['$http', '$q', function ($http, $q) {
        
        var loggingUserAction = function(userActionType, itemId, sourceSectionId) 
        {
            var deferred = $q.defer();


            var link = '/Vehicle/LoggingUserAction';

            var promise = $http({
                method: 'POST',
                url: link,

                headers: {
                    'Content-Type': 'application/json',
                    'Accept': '*/*',
                    //'Accept-Encoding': 'gzip, deflate',
                    'Accept-Language': 'en-US,en;q=0.8'

                },
                data: { userActionType: userActionType, itemId: itemId, sourceSectionId: sourceSectionId  },
            }).then(function (data) {
                if (data.data) {
                    data = data.data;
                }
                deferred.resolve(data);
            }).catch(function (data) {
                deferred.reject(data);
            });
            return deferred.promise;

            //$.ajax({ url: '/Vehicle/LoggingUserAction', cache: false, data: { userActionType: userActionType, itemId: itemId, sourceSectionId: sourceSectionId  } });
        };
        

        return {
            LoggingUserAction:loggingUserAction
        }
    }]);

})(angular.module('AutoSMART.Web.Common'));
