﻿/**
* @author MorganLogue
*/

var Metrics = function() {
    return {
        baseAction: 'riax_jcp_brands',
        site: 'HolidayHub',
        currentDepartment: '',
        currentTheme: '',
        currentFilter: '',
        currentProducts: '',
        currentRedBoxProducts: '',
        currentPage: '1'
    };
} ();

Metrics.clickHandler = {
    activate: function() {
        $(document).bind('click', function(e) {//master click listener
            var pd = false;
            e = e || window.event;
            if (e.target.className && e.target.className.length > 0 && Metrics.clickHandler.events != null) {
                try {
                    var classNames = e.target.className.split(' ');
                    $.each(classNames, function(i, o) {
                        if (Metrics.clickHandler.events[o]) {
                            pd = Metrics.clickHandler.events[o]($(e.target));
                        }
                    });
                } catch (ex) {
                    alert(ex);
                }
            }

            for (var propName in Metrics.clickHandler.globalEvents) {
                if ($(e.target).hasClass(propName) && !$(e.target).hasClass(propName + 'Abort')) {
                    Metrics.clickHandler.globalEvents[propName]($(e.target));
                } else if ($(e.target).parents('.' + propName).length > 0 && !$(e.target).parents('.' + propName + 'Abort').length > 0) {
                    Metrics.clickHandler.globalEvents[propName]($(e.target));
                }
            }

            if (pd)
                e.preventDefault();
        })
    },
    events: null,
    globalEvents: null
};

Metrics.Send = function(s, l, a, n) {
    var url = "http:\/\/switch.atdmt.com\/action\/" + Metrics.baseAction + "\/v3\/location." + l + "\/action." + a + "\/actionname." + n + "\/section." + s + "\/var1." + Metrics.site + "\/";
    var metricImage = new Image();
    metricImage.src = url;
    Metrics.Sleep(500);
};

Metrics.Sleep = function(d) {
    var st = new Date();
    var ct = null;

    do { ct = new Date(); } 
    while(ct-st < d)
};

$(document).ready(function() {
    Metrics.clickHandler.events =
    {
        clickLandingDepartment: function($e) {
            Metrics.Send('Landing Page', 'Landing Page', 'Click', 'Click on ' + $e.html());
            return false;
        },
        clickShopDepartment: function($e) {
            Metrics.Send(Metrics.currentDepartment, Metrics.currentTheme, 'Click', 'Click on ' + $e.html());
            return false;
        },
        clickShopTheme: function($e) {
            Metrics.Send(Metrics.currentDepartment, Metrics.currentTheme, 'Click', 'Click on ' + $e.html());
            return false;
        },
        clickProductText: function($e) {
            var prodId = $e.parents('.product').find('.prodid').html();
            if ($e.parents('.redbox').length > 0) {
                // red box product metric
                Metrics.Send('Red Box Gift Module', 'Red Box Gifts', 'Click', 'Text. ' + prodId);
            }
            else {
                // standard product metric
                Metrics.Send(Metrics.currentDepartment, Metrics.currentTheme, 'Click', 'Text. ' + prodId);
            }
            return false;
        },
        clickProductImage: function($e) {
            var prodId = $e.parents('.product').find('.prodid').html();
            if ($e.parents('.redbox').length > 0) {
                // red box product metric
                Metrics.Send('Red Box Gift Module', 'Red Box Gifts', 'Click', 'Image. ' + prodId);
            }
            else {
                // standard product metric
                Metrics.Send(Metrics.currentDepartment, Metrics.currentTheme, 'Click', 'Image. ' + prodId);
            }
            return false;
        },
        clickMoreProducts: function($e) {
            var prodId = $e.parents('.product').find('.prodid').html();
            if ($e.parents('.redbox').length > 0) {
                // red box product metric
                Metrics.Send('Red Box Gift Module', 'Red Box Gifts', 'Click', 'More Product. ' + prodId);
            }
            else {
                // standard product metric
                Metrics.Send(Metrics.currentDepartment, Metrics.currentTheme, 'Click', 'More Product. ' + prodId);
            }
            return false;
        },
        clickPageNumber: function($e) {
            Metrics.Send(Metrics.currentDepartment, Metrics.currentTheme, 'Click', 'Click page ' + $e.html());
            return false;
        },
        clickNextPage: function($e) {
            Metrics.Send(Metrics.currentDepartment, Metrics.currentTheme, 'Click', 'Click on Next Page Arrow');
            return false;
        },
        clickPreviousPage: function($e) {
            Metrics.Send(Metrics.currentDepartment, Metrics.currentTheme, 'Click', 'Click on Previous Page Arrow');
            return false;
        },
        clickFilter: function($e) {
            Metrics.Send(Metrics.currentDepartment, Metrics.currentTheme, 'Click', 'Click ' + $e.parents('li.filter').find('span.filterMetric').html());
            return false;
        },
        clickRedBoxHeader: function($e) {
            Metrics.Send('Red Box Gift Module', 'Red Box Gifts', 'Click', 'Click Header');
            return false;
        },
        clickMoreRedBox: function($e) {
            Metrics.Send('Red Box Gift Module', 'Red Box Gifts', 'Click', 'See More Gifts');
            return false;
        },
        clickBanner: function($e) {
            var banner = $e.parents('.banner').find('.bannerName').html();
            Metrics.Send(Metrics.currentDepartment, Metrics.currentTheme, 'Click', 'Click ' + banner);
            return false;
        }
    };

    Metrics.clickHandler.activate();
});

