
String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, "");
}

jQuery(document).ready(function ($) {

    function mousedownSignatureProductPageTracking(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') {

            //Video even of non test page
            if ((clickedOn.hasClass('video-thumb') || clickedOn.hasClass('youtube-thumb')) && clickedOn.parent().not('.items') && clickedOn.has('id')) {

                //Get the video id
                var videoId = clickedOn.attr('id');

                if (videoId != null && videoID != "undefined")
                    VideoTracking('shop', 'SignatureProductPage', videoId);
            }
            //Video event of test page
            else if ((clickedOn.parent().hasClass('video-fancybox') || clickedOn.parent().hasClass('youtube-thumb')) && clickedOn.parent().parent().parent().hasClass('items')) {

                var parent = clickedOn.parent();
                var videoID = parent.attr('id');

                if (videoID != null && videoID != "undefined" && videoID != "")
                    VideoTracking('shop', 'SignatureProductPage:New Sig Prod', videoID);
            }
            else if (typeof (CreateOnClickEvent) != "undefined")
                CreateOnClickEvent('ProductPage', 33, e.data.section)   // eVar33

            zone.unbind('mousedown');

            // only unbind the parent if an image is clicked
            if (clickedOn.is('img'))
                zone.parents().unbind('mousedown');
        }
    }

    // Click Events to bind

    // div tag with id 'seeMore'
    $('div#seeMore').bind('mousedown', function () { CreateOnClickEvent("BackToCore", 35, "ProductPageBottom"); $(this).unbind('mousedown'); });

    // div with customer-rating class
    $('.prod-review').bind('mousedown', { section: "Rail:Reviews" }, mousedownSignatureProductPageTracking);

    // div with free-stuff class
    $('.free-stuff').bind('mousedown', { section: "Free Stuff" }, mousedownSignatureProductPageTracking);

    // div with wishlist class
    $('a.wishlist').bind('mousedown', { section: "Wishlist" }, mousedownSignatureProductPageTracking);

    // div with offer-box class
    $('.offer-box').bind('mousedown', { section: "Special Offers" }, mousedownSignatureProductPageTracking);

    // div with an 'a' tag with id that ends in 'AddToCartLink'
    $('div.add-to-cart a[id*=AddToCartLink]').bind('mousedown', { section: "Add to Cart" }, mousedownSignatureProductPageTracking);

    // div with reviews-view-all class
    $('.reviews-view-all').bind('mousedown', { section: "Reviews:View All" }, mousedownSignatureProductPageTracking);

    // div with reviews-view-all class
    $('.accessory-view-all').bind('mousedown', { section: "Accessories:View All" }, mousedownSignatureProductPageTracking);

    // accessory-container class
    $('.accessory-container').bind('mousedown', { section: "Accessories:Popup" }, mousedownSignatureProductPageTracking);

    // research-button class
    $('.research-button').bind('mousedown', { section: "Hands-on Research" }, mousedownSignatureProductPageTracking);

    // video-thumb class
    $('.video-thumb').parent().not('.items').bind('mousedown', { section: "Product:Videos" }, mousedownSignatureProductPageTracking);

    // youtube-thumb class
    $('.youtube-thumb').parent().not('.items').bind('mousedown', { section: "Product:Videos" }, mousedownSignatureProductPageTracking);

    // photo-thumb class
    $('.photo-thumb').bind('mousedown', { section: "Product:Photos" }, mousedownSignatureProductPageTracking);

    // col-image class
    $('.col-image').bind('mousedown', { section: "Product:Main Image" }, mousedownSignatureProductPageTracking);

    // Alternate in stock item
    $('.alt-in-stock-item').bind('mousedown', { section: "AltInStockItem" }, mousedownSignatureProductPageTracking);

    $('.stepup-prod-info').bind('mousedown', { section: "Stepup" }, mousedownSignatureProductPageTracking);

    //connect tab
    $('.trigger').bind('mousedown', function () { CreateOnClickEvent("ConnectTab", 38, "ConnectTab:Shown:Click"); $(this).unbind('mousedown'); });

    //*********************************************************************************************************************
    // Step-up box - version B & C
    //Step-up/Step-down box version C & NewStepup
    $('div#stepup-viewA a').bind('mousedown', { section: "OldStepUp:Click" }, mousedownSignatureProductPageTracking);

    $('div.items div.itemsContainer a').bind('mousedown', { section: "NewStepUp:Click" }, mousedownSignatureProductPageTracking);

    //*********************************************************************************************************************


    //New Sig Page ****************************************************************************************************

    //New Sig Page - div with advantageText class
    $('.advantageText').bind('mousedown', { section: "Free Stuff:New Sig Page" }, mousedownSignatureProductPageTracking);

    //New Sig Page - div with saveToWishlist class
    $('div.saveToWishlist').bind('mousedown', { section: "Wishlist:New Sig Page" }, mousedownSignatureProductPageTracking);

    //New Sig Prod Page - div with itemReviews class
    $('.itemReviews').bind('mousedown', { section: "Rail:Reviews:New Sig Page" }, mousedownSignatureProductPageTracking);

    //new sig page - div with special offers
    $('.offerImg').bind('mousedown', { section: "Special Offers:New Sig Page Image" }, mousedownSignatureProductPageTracking);
    $('.offerLink').bind('mousedown', { section: "Special Offers:New Sig Page Link" }, mousedownSignatureProductPageTracking);

    //New sig page - div with a p with an 'a' tag with id that ends in 'AddToCartLink'
    $('div.add-2-cart p.action-add a[id*=AddToCartLink]').bind('mousedown', { section: "Add to Cart:New Sig Page" }, mousedownSignatureProductPageTracking);

    //New Sig Prod Page - div with emailMeAlerts class
    $('.emailMeAlerts').bind('mousedown', { section: "Rail:Reviews:New Sig Page - Email Alerts" }, mousedownSignatureProductPageTracking);

    //Videos
    $('#signatureProductVideoThumbs div.items .video-fancybox').not('.youtube-thumb').bind('mousedown', { section: "Product:Videos:New Sig Page" }, mousedownSignatureProductPageTracking);
    $('#signatureProductVideoThumbs div.items .youtube-thumb').bind('mousedown', { section: "Product:Videos:New Sig Page" }, mousedownSignatureProductPageTracking);

    //breadcrumb tracking
    if (s.eVar20 == 'Signature') {
        $('div#crumb-trail > a').bind('mousedown', { section: "Breadcrumb" }, mousedownSignatureProductPageTracking);

        $('div#crumb-trail a[alt~="Twitter"]').bind('mousedown', { section: "TwitterIcon" }, mousedownSignatureProductPageTracking);

        $('div#crumb-trail a[alt~="Email"]').bind('mousedown', { section: "EmailIcon" }, mousedownSignatureProductPageTracking);

        $('div#crumb-trail a.print').bind('mousedown', { section: "Print" }, mousedownSignatureProductPageTracking);

        $('div#crumb-trail a.rate').bind('mousedown', { section: "RateThisPage" }, mousedownSignatureProductPageTracking);
    }

    //Photo thumbnails
    $('#signatureProductPhotoThumbs div.items div a').bind('mousedown', { section: "Product:Photos:New Sig Page" }, mousedownSignatureProductPageTracking);

    //Main image
    $('#signatureProductSlideStage a').bind('mousedown', { section: "Product:Main Image:New Sig Prod Page" }, mousedownSignatureProductPageTracking);

    //Explore this Product "navbar" tracking **************************************************************************
    $('#navBar a[id=overview]').bind('mousedown', { section: "ExploreProd:OverView:New Sig Page" }, mousedownSignatureProductPageTracking);

    $('#navBar a[id=reviews]').bind('mousedown', { section: "ExploreProd:Reviews:New Sig Page" }, mousedownSignatureProductPageTracking);

    $('#navBar a[id=accessories]').bind('mousedown', { section: "ExploreProd:Accessories:New Sig Page" }, mousedownSignatureProductPageTracking);

    $('#navBar a[id=features]').bind('mousedown', { section: "ExploreProd:Features & Specs:New Sig Page" }, mousedownSignatureProductPageTracking);

    $('#navBar a[id=research]').bind('mousedown', { section: "ExploreProd:Research:New Sig Page" }, mousedownSignatureProductPageTracking);

    $('#navBar a[id=whatsInBox]').bind('mousedown', { section: "ExploreProd:WhatsInTheBox:New Sig Page" }, mousedownSignatureProductPageTracking);

    $('#navBar a[id=stepupBox]').bind('mousedown', { section: "ExploreProd:OtherOptions:New Sig Page" }, mousedownSignatureProductPageTracking);

    //Hands on research
    $('.product-research').bind('mousedown', { section: "HandsOnResearch" }, mousedownSignatureProductPageTracking);

    //Free delivery
    $('.itemShipping').bind('mousedown', { section: "FreeScheduledDelivery" }, mousedownSignatureProductPageTracking);
});
