﻿String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, "");
}

jQuery(document).ready(function($) {

    function mousedownProductPageTracking(e) {

        var clickedOn = $(e.target);
        var zone = $(this);

        // did they click a link or something wrapped in a link? If so, track it.
        if (clickedOn.is('a') || clickedOn.parents('a:first').size() == 1 || e.data.section == 'Whats in the Box') {

            if (typeof (CreateOnClickEvent) != "undefined")
                CreateOnClickEvent('ProductPage', 28, e.data.section)   // eVar28
                
            zone.unbind('mousedown');

            // only unbind the parent if an image is clicked
            if (clickedOn.is('img'))
                zone.parents().unbind('mousedown');
        }
    }

    function stepupProductPageTracking(e) {

        var zone = $(this);
        var stepupVersion = 'B';
        //debugger;
        var version = $('div.stepUpBlock input[id*=HiddenItemNoB]');

        if (version.length == 0)
            stepupVersion = 'C';

        if (typeof (CreateOnClickEvent) != "undefined")
            CreateOnClickEvent('ProductPage', 28, stepupVersion + ':' + e.data.section)   // eVar28
            
        zone.unbind('mousedown');
    }

    // Click Events to bind    -----------------------------------------------

    // div with customer-rating class
    $('.customer-rating').bind('mousedown', { section: "Rail:Reviews" }, mousedownProductPageTracking);

    // Overview tab  (ie. contains text 'OverviewTabLink' in the id of the link tag)
    $('a[id*=OverviewTabLink]').bind('mousedown', { section: "Tab:Overview" }, mousedownProductPageTracking);

    // Hands-on Research tab  (ie. contains text 'MoreDetailsTabLink' in the id of the link tag)
    $('a[id*=MoreDetailsTabLink]').bind('mousedown', { section: "Tab:HandsOnResearch" }, mousedownProductPageTracking);

    // Features & Specs tab  (ie. contains text 'SpecificationsTabLink' in the id of the link tag)
    $('a[id*=SpecificationsTabLink]').bind('mousedown', { section: "Tab:Features&Specs" }, mousedownProductPageTracking);

    // Accessories tab  (ie. contains text 'AccessoriesTabLink' in the id of the link tag)
    $('a[id*=AccessoriesTabLink]').bind('mousedown', { section: "Tab:Accessories" }, mousedownProductPageTracking);

    // Reviews tab  (ie. contains text 'ReviewsTabLink' in the id of the link tag)
    $('a[id*=ReviewsTabLink]').bind('mousedown', { section: "Tab:Reviews" }, mousedownProductPageTracking);

    // HandsOnResearch banner in Overview tab
    $('img#handresbanner').bind('mousedown', { section: "HandsOnResearch Banner Link" }, mousedownProductPageTracking);

    // dd with accessory-title class
    $('dd.accessory-title').bind('mousedown', { section: "Rail:Accessories" }, mousedownProductPageTracking);

    // Leftrail More Accessories link
    $('a.see-more:contains(Accessories)').bind('mousedown', { section: "Rail:MoreAccessories" }, mousedownProductPageTracking);

    // Main product image
    $('img.id-MediumProductImage').bind('mousedown', { section: "MainProductImage" }, mousedownProductPageTracking);

    // More media image below the Main product image
    $('img#MoreMediaImage').bind('mousedown', { section: "MoreMediaButton" }, mousedownProductPageTracking);

    // Step-up box product image
    $('div#stepup-box a.pg-img').bind('mousedown', { section: "StepUp:ProductImage" }, mousedownProductPageTracking);

    // Step-up box product Title link
    $('div#stepup-box div.productList-desc a:first').bind('mousedown', { section: "StepUp:ProductLink" }, mousedownProductPageTracking);

    // Step-up box - version B & C
    $('div.stepUp-contents a').bind('mousedown', { section: "StepUp" }, stepupProductPageTracking);

    // Step-up box Add to System link
    $('div#stepup-box a.addToSystem').bind('mousedown', { section: "StepUp:AddToSystem" }, mousedownProductPageTracking);

    // Left rail Catalog signup
    $('div#leftcolumn a.cat-signup').bind('mousedown', { section: "CatalogSignup" }, mousedownProductPageTracking);

    // Left rail Additional Ways to Save
    $('div[id*=PromoLeftRailMiddle_psodiv] div[id*=PromoLeftRailMiddle_itemSo] div.additionalSave a').bind('mousedown', { section: "Rail:Additional Ways to Save" }, mousedownProductPageTracking);

    // Left rail Other Payment Options
    $('div[id*=PromoLeftRailMiddle_psodiv] div[id*=PromoLeftRailMiddle_itemSo] div.otherPaymentOptions a').bind('mousedown', { section: "Rail:Other Payment Options" }, mousedownProductPageTracking);

    // any link for the Featured Articles in the Learning Center Article Panel
    $('div[id*=LearningCenterArticlePnl] div#learning-center a').bind('mousedown', { section: "Featured Learning Center Articles" }, mousedownProductPageTracking);

    // any link for the additional Learning Center Articles in the Learning Center Article Panel
    $('div[id*=LearningCenterArticlePnl] div.lc-additional-content a').bind('mousedown', { section: "Additional Learning Center Articles" }, mousedownProductPageTracking);

    // link for the wishlist in the LeftRail
    $('div.additional-options a.wishlist:contains(wishlist)').bind('mousedown', { section: "Rail:Wishlist" }, mousedownProductPageTracking);

    // link for the Add to System in the LeftRail
    $('div.additional-options a[id*=AddToAVSystemBuilderLink]').bind('mousedown', { section: "Rail:AddToSystem" }, mousedownProductPageTracking);

    // any link in Recently viewed items block
    $('div.recentItems a').bind('mousedown', { section: "Recently Viewed Items" }, mousedownProductPageTracking);

    // any direct child link in the crumb-trail div (ie. the Breadcrumb links)
    $('div#crumb-trail a').bind('mousedown', { section: "Breadcrumb" }, mousedownProductPageTracking);

    // What's in the box div
    $('div.in-the-box h4').bind('mousedown', { section: "Whats in the Box" }, mousedownProductPageTracking);

    // What's in the Box download manual link
    $('a.download').bind('mousedown', { section: "Owners Manual" }, mousedownProductPageTracking);

    // free stuff
    $('.free-stuff a').bind('mousedown', { section: "Free Stuff" }, mousedownProductPageTracking);

    // shipping bug
    $('.shipping-bug a').bind('mousedown', { section: "Shipping Bug" }, mousedownProductPageTracking);

    // Add to Cart Button
    $('div.add-to-cart a').bind('mousedown', { section: "Add to Cart" }, mousedownProductPageTracking);

    // Customers Who Viewed Also Viewed
    $('div.customerModule').bind('mousedown', { section: "ViewedAlso" }, mousedownProductPageTracking);

});