$(function(){

//Search Results: Grid or List View
    $('#productView #gridList li#tabGrid').click(function (e) {
		e.preventDefault();
		$('#productView').removeClass('list_view').addClass('grid_view');
		$('li#tabList').removeClass('current');
		$('li#tabGrid').addClass('current');
		setCookie("skuList", "grid_view");
    })
     $('#productView #gridList li#tabList').click(function (e) {
		e.preventDefault();
	    $('#productView').removeClass('grid_view').addClass('list_view');
	    $('li#tabGrid').removeClass('current');
	    $('li#tabList').addClass('current');
	    setCookie("skuList", "list_view");
    })
    
    //Price breaks
    if ($('#bulkPricingCollapseEnabled').exists()) {
	    $('table.breaks','#searchRefine').each(function() {
	    	if($('tr',this).size() > 4) {
				$(this).find(".moreLink").show();
			    $('.more a',this).toggle(
			    	function() {
						$(this).parent().parent().parent().find('tr:gt(1):not(.outside):not(:last)').toggleClass("trhide");
						$(this).find(".moreLink").hide();
						$(this).find(".lessLink").show();
				    },
				    function() {
						$(this).parent().parent().parent().find('tr:gt(1):not(.outside):not(:last)').toggleClass("trhide");
						$(this).find(".lessLink").hide();
						$(this).find(".moreLink").show();				
				    }
				);
			} else {
				$('.more',this).css("visibility","hidden");
			}
		});
	}
		
	$('.pppHeader').click(function(e){ 
		e.preventDefault();
		
		$(this).next().slideToggle("slow"); 
		$(this).children("a").toggleClass("pppShown");
	});
	
	$('.pppAddedItems .pppContents').show();
    
  	
	//Product tabs
    $('ul#navTabs li').click(function () {
    	var index = $('ul#navTabs li').index(this);
        $('#navTabContent > div').removeClass('show').addClass('hide');
        $('#navTabContent div:nth-child('+ (index+1) +')').addClass('show').removeClass('hide');
        
        if ((index+1) == 4)
	        $('#BVSecondaryCustomerRatings').removeClass('hide');
	        
        $('ul#navTabs li').removeClass('defaultTab');
        $(this).addClass('defaultTab');
        //cnet
        if($(this).attr("id") == "relatedTab") {
        	var imgSrc=$("#cnetViewImageUrl").eq(0).text();
        	if(imgSrc != undefined) {
	        	$('body').append('<img src="'+ imgSrc +'" width="1" height="1"/>');
        	}
        }
        throwElementTag('Product Page Tabs', this.id);
        return false;
        
    })
    
     $('#productTourLinkTrack', '#product').click(function () {
     	throwElementTag('Product Tour', 'Product Page Entity');
     });

  	//$('#wcsb-span').click(function () {
	// 	throwElementTag('Product Tour test 2', 'Product Page Entity');
    // });


     $('#deliveryFeeLinkTrack', '#product').click(function () {
     	throwElementTag('Delivery Fee', 'Product Page Entity');
     });

     $('#sameDayLinkTrack', '#product').click(function () {
     	throwElementTag('Same Day Delivery', 'Product Page Entity');
     });

     $('#hubLinkTrack', '#product').click(function () {
     	throwElementTag('HUB', 'Product Page Entity');
     });

     $('#clearanceLinkTrack', '#product').click(function () {
    	 throwElementTag('Clearance', 'Product Page Entity');
     });

	$('#zoomEntityLinkTrack', '#product').click(function () {
    	 throwElementTag('Zoom', 'Product Page Entity');
     });

	$('#msdsEntityLinkTrack', '#product').click(function () {
    	throwElementTag('MSDS', 'Product Page Entity');
     });
    
    $('.pictureEntityLinkTrack', '#product').click(function () {
    	throwElementTag('Dynamic Zoom', 'Product Page Entity');
     });
    
    //.filter(':first').click();
    $('#navTabs li.defaultTab').click();
	
   	var imgSrc=$('#cnetUpSellBaseUrl').html();
   	if(imgSrc != undefined) {
   		var csid = '';
   		$('.side_item .cnettracking', '#refinementsection').each(function() {
   			if(csid != '') {
				csid += ',' +  $(this).attr("rel");
			} else {
				csid = $(this).attr("rel");
			}
   		});
    	$('body').append('<img src="'+ imgSrc + csid +'" width="1" height="1"/>');
   	}

    
    //Bazaarvoice Open tabs to review tab
    var pageRequest = document.location.toString();
	if (pageRequest.match('#reviewTab')) {
		$('#reviewTab').click();
	}
	
	$('.cnettracking').click(function() {
	    var today = new Date();
		$('body').append('<img src="http://xs.ics0.com/click.gif?ts='+today.getTime()+'&csid='+ $(this).attr("rel")+'" width="1" height="1"/>');
		//create a form and submit it because we need to pass the csid that was clicked to the destination.
		var action = $(this).attr("href");
		var csidclicked = $(this).attr("rel");
		$("body").append("<form id='trackingForm' method='POST' action='"+ action +"'><input name='csidclk' value='"+csidclicked+"' type='hidden'></form>");
		$("#trackingForm")[0].submit();
		return false;
	});

	//This attempts to clean up mark up in catalog description
	if(!$(".skudetailbox #navTabContent .show li").parent().is("ul")) {
		$(".skudetailbox #navTabContent .show li").wrapAll("<ul></ul>");
	}
	
	//Logic to collapse breadcrumb to fit in a single line
	var breadcrumbLength = 0;
	var $breadcrumbText = $("#siteBreadcrumb a");
	var numberOfBreadcrumbs = $breadcrumbText.length;
	$breadcrumbText.each(function(){
		breadcrumbLength = breadcrumbLength + $(this).html().length;
	});
	if(breadcrumbLength > 210) {
		var newLength = breadcrumbLength;
		for(i = 1;i < numberOfBreadcrumbs;i++) {
			var currentHtml = $breadcrumbText.eq(i).html();
			$breadcrumbText.eq(i).html("...");
			expandBreadcrumb(currentHtml, $breadcrumbText.eq(i));
			newLength = newLength - currentHtml.length;
			if (newLength <= 210) {
				break;
			}
		}
	}
	
	$('.paginationRecordsPerPage').change(function(event) { 
		var hrefWithAddedRecorsPerPage = $('.paginationRecordsPerPageLink').attr('href');
		var newhref = hrefWithAddedRecorsPerPage.replace( /recordsPerPageNumber=(\d*)/, 'recordsPerPageNumber='+ this.value);
		var newhref = newhref.replace( /viewAll=(\d*)/, '');
		window.location.href=newhref;
	});
	
	//Visibility of checkboxes after load
	$(':checkbox','#refinementsection').css("visibility","visible");
	$('#refinementsection .more').css("visibility","visible");
	$('#refinementsection label').css("color","#111");
	//Submit when a checkbox selected in Refinements
	$('.narrowByLink').click(function() {
		throwSearchRefinementElementTag(
			$('#refinementForm').attr('action'), 
			"Narrow By",
	   	    $(this).text().trim()
		);
		return true;
	});
	$(':checkbox','#refinementsection').click(function() {
		//Throw dialog
		lightboxLoader($("#refinementsLoading").html());
		$(':checkbox','#refinementsection').not(':checked').attr("disabled","disabled");
		setTimeout(function() {$(':submit','.refinementSubmit').click();}, 800);
		
		if($('#coreMetricsEnabled') != null){
			if($(this).attr('checked')){
				var parentObj = $(this).parent();
				var val = parentObj.text().trim(); 
				if(val.length<1){
					val = parentObj.parent().find("img").attr("alt");
				}
				throwSearchRefinementElementTag(
					$('#refinementForm').attr('action'), 
					parentObj.parents().filter('div:eq(0)').attr('id'),
					val
					);
			}	
		}	
	});
	//refinement section	
	$('h3.top','#refinementsection form').addClass("open").toggle(
	  function () {
        $(this).removeClass("open").next().hide();
      },
      function () {
        $(this).addClass("open").next().show();
      }
     ).each(function() {
		     var index = $('h3.top','#refinementsection form').index(this);
		     var numChecked = $(this).next().find('.refinement:checked').size();
		     if(index > 2 && numChecked === 0) {
			     	$(this).click();
		     }
     });
     
	$('a.more','#refinementsection').click(function(e) {
		e.preventDefault();
		var $moreLink = $(this);
		var url = $moreLink.attr("href")
		var alreadyDisplayed = "";
		var $currentUL = $moreLink.parent().parent();
		$currentUL.find('input.refinement').each(function() {
			alreadyDisplayed += this.value + "|";
		});
		DWRDelegate.getMoreInfo(url, alreadyDisplayed, function(moreInfo){
			for(var i = 0;i<moreInfo.length;i++) {
				$currentUL.append('<li><input type="checkbox" class="refinement" value="' +moreInfo[i].id
					+ '" name="cbxRefine" style="visibility: visible;"/><label style="color: rgb(17, 17, 17);">' +moreInfo[i].name+ '</label></li>');
			}
			$(':checkbox','#refinementsection').click(function() {
				$(':checkbox','#refinementsection').not(':checked').attr("disabled","disabled");
				$(':submit','.refinementSubmit').click();
			});
			$moreLink.remove();			
		});
	});

	$('.pppSkuPage a').not('.pppRemoveLink').not('.mar_t12 a').click(function(e){
		e.preventDefault();
		if ($('.pppSect2re').is(':visible')){
			return;
		}
		$('input[name$=pppSku]').val($(this).children('.pppSkuSpan').html());
		$('.self_radio_on').show();
		$('.pppSect2re').show();				
		$('.pppSect1').addClass('pppSect1re f_left').removeClass('radio_off pppSect1');
		$('.pppSect2').addClass('pppSect3re').removeClass('pppSect2');		
		$('.pppContents a').not(this).parent().not('.pppSect2re').hide();
	});
	
	$('.pppRemoveLink').click(function(e){	
		e.preventDefault();	
		$('input[name$=pppSku]').val('');
		$('.self_radio_on').hide();				
		$('.pppSect1re').addClass('radio_off pppSect1').removeClass('pppSect1re f_left');
		$('.pppSect3re').addClass('pppSect2').removeClass('pppSect3re');	
		$('.pppContents a').parent().show();
		$('.pppSect2re').hide();
	});			
});

function expandBreadcrumb(currentHtml, $breadcrumbText) {
	$breadcrumbText.hover(
		function(){
			$breadcrumbText.html(currentHtml);
		},
		function(){
			$breadcrumbText.html("...");
		});
}
//legacy bazaarvoice tab selection
function showTab() {
	$('#reviewTab').click();
}

function callDwrForMore($object){
    DWRDelegate.getMoreInfo($object.val(),
        {callback : function(SkuInfo){
            validateSku(SkuInfo, $object);
            }
        }
    );
}

function throwElementTag(area, section){
	var skuId =  $("#skuId").val();
	//printMe("info", "area-"+area+"-section-"+section+"-skuId-"+skuId);
	if(section != "firstTab"){
		cmCreatePageElementTag(area, section, skuId);
	}	
}


function throwSearchRefinementElementTag(action, param1, param2){
	var type = "Search";
	var category = '';
	if(typeof action=="undefined" || action.indexOf("browse")>-1){
		type = "Browse";
	}
	if(param1.indexOf("ref_el_")>-1){
		param1 = param1.substring(7, param1.length);
	}
	//we don't want to pick up the search term as a category, term always happens in second position of breadcrumb
	category = $('.lastBreadCrumb:last','#siteBreadcrumb').text();
	cmCreatePageElementTag(type, "Refinements", "''", "''", "''",  " -_-" + param1 + "-_-" + param2 + "-_- -_-" + category);
	
}

