$(document).ready(function () {

    var cmData = BN.Page.CoremetricsData;
    // Coremetrics
    if (typeof cmCreatePageviewTag !== "undefined") {
        try {
            cmCreateProductviewTag(cmData.ean, cmData.title, cmData.pageSubCategory);
        }
        catch (e) { }
    }
	
	if (BN && BN.Page && BN.Page.Metrics){
		// Adding new definition of the page view tag to old PDP for easist tracking of A version of the A/B testing
		BN(['BN.Analytics.TagLibrary'], function($, TagLibrary) {
			TagLibrary.getTag('PageView').exec();		
		});
	}
	else {
		// keep this here for the few minutes between deploying the JS (first) and the deploying of the xsl (second).
		cmCreatePageviewTag(cmData.pageId, cmData.pageSubCategory);
	}

    //needs to be named spaced
    $('span', '.ebook-request').click(function () {

        var eanRequested = $('span', '.ebook-request').attr('data-ean')

        ui.request2({
            baseURL: 'http://my.barnesandnoble.com/tellafriend/ServiceResponse.aspx?',
            parameters: 'inputType=EAN&contentValue=' + eanRequested + '&contentType=ebookpubrequest&uiaction=SendEmail&pagetitle=EbookPubrequest&SenderName=' + eanRequested,
            callback: { name: "cbf", value: function () { $('span', '.ebook-request').unbind('click')   } }
        });

    });
    
    
    //this code will no longer be used after 1/25/11 deployment - can be removed. service call is now triggered from the overlay
 	//after user selection of dropdown
    $('span.report-content', '.synopsis-review-block').click(function () {
    
            var eanReported = $('span.report-content', '.synopsis-review-block').attr('data-ean')
    
            ui.request2({
                baseURL: 'http://my.barnesandnoble.com/tellafriend/ServiceResponse.aspx?',
                parameters: 'inputType=EAN&contentValue=' + eanReported + '&contentType=ebookreportoffensive&uiaction=SendEmail&pagetitle=ebookreportoffensive&SenderName=' + eanReported,
                callback: { name: "cbf", value: function () { $('span.report-content', '.synopsis-review-block').unbind('click') } }
            });
    
        });
    
    
    

	//report content is kept for backwards compatibility - can be removed after 1/25/11 deployment 
    $('.ebook-request-link[rel], .report-content[rel], .report-content-selection[rel]').overlay({
        expose: '#FFF'
    });
    
    $('#selection-content').change(function() {
    	var selectionVal = $('#selection-content').val();
    	var selectionTxt = $('#selection-content option:selected').text();
    	
  		if (selectionVal == 'other') {
  		 $('div.other-selection').show();
  		} else {
  		 $('div.other-selection').hide();
  		}
    	
    	
    });
    
    $('.submit-report-email', '#report-content-overlay').click(function () {
    
    	    var eanReported = $('div.submit', '#report-content-overlay').attr('data-ean');
    	    var reasonGiven = $('#selection-content').val();
    	    var selectionTxt = $('#selection-content option:selected').text();
    	    var otherText = $('textarea', '.other-selection').val();
    	    
        	$('.selection', '#report-content-overlay').hide();
        	$('.loading', '#report-content-overlay').show();
        	
    
            
            //senderName url param used to inject data into TAF subject line
            var senderName = eanReported + '--' + selectionTxt;
         
    
         ui.request2({
                baseURL: 'http://my.barnesandnoble.com/tellafriend/ServiceResponse.aspx?',
                parameters: 'inputType=EAN&contentValue=' + eanReported + '&contentType=ebookreportoffensive&uiaction=SendEmail&pagetitle=ebookreportoffensive&SenderName=' + senderName + '&personalnote=' + otherText,
                callback: { name: "cbf", value: function () { 
                	$('.loading', '#report-content-overlay').hide();
                	$('.report-content-confirm', '#report-content-overlay').show();
                	$('span.report-content-selection', '.synopsis-review-block').unbind('click') 
                	} 
                }
            });
        
        });

	var showSubAuthInfo = function(heading, html){
      
        var o = new $.Overlay({
            useHeading: 1,
            heading: heading,
            block: 1
        });
        o.set.content(html);
        o.set.width(475);
        
        o.element.find("a.overlayClose").click(function(){
            o.close();
            return false;
        });
        o.open();        
    }

	//listeners for subscription-authentication info overlays
    $(".about-subscription-authentication").click(function (e) {
		e.preventDefault(e);
		showSubAuthInfo("Active Print Subscribers - Save " + $(".subAuthPercentDiscount").text() + "%",
						$(this).siblings(".subauth-content-overlay").html()						
		);
	});
	$(".about-free-subscription-authentication").click(function (e) {
 		e.preventDefault(e);
		showSubAuthInfo("Active Print Subscribers - Get it Free",
						$(this).siblings(".subauth-content-overlay").html()		
		);
	});


	$('textarea[maxlength]', '#report-content-overlay').keyup(function(){

		var max = parseInt($(this).attr('maxlength'));
				
				if($(this).val().length > max){
					$(this).val($(this).val().substr(0, $(this).attr('maxlength')));
				}
	
			$(this).parent().find('.txt-limit').html((max - $(this).val().length) + ' character limit');
		});


    if (typeof jQuery142 !== "undefined") {
        BN.Page.ImageSwapProductPage.initImageSwap("#product-image img", "#product-image ul");
    };
});


if (typeof jQuery142 !== "undefined") {

( function($) {
    BN('Page.ImageSwapProductPage', function() {
            
        var initImageSwapPrivate = function(fullImgSelector, thumbNailContainerSelector){
        
            var $thumbNailContainer     = $(thumbNailContainerSelector);
            var $thumbNails             = $thumbNailContainer.find('li.box img');
            var $largeImageTag          = $(fullImgSelector).not('.preview img').not('.product-badge img').not('ul img');
            var defaultImageSrc         = $largeImageTag.attr('src');

            $thumbNails.mouseenter(
                function () {
                    $largeImageTag.attr('src', $(this).attr('data-large-image'));
                }
            );
            
            $thumbNailContainer.mouseleave(
                function () {
                    $largeImageTag.attr('src', defaultImageSrc);
                }
            );
        };
      
        return {
          'initImageSwap': initImageSwapPrivate
        };

    });

})(jQuery142);
};

