$(document).ready(function(){
	
	var count = 0;
	var maxChecked = 3;
	
	jq_infoTip = $('body').append('<div id="compareInfoTip" class="none"></div>').find("#compareInfoTip").eq(0);
	jq_infoTip.append('<div class="compareState nothingSelected">Check the box next to each <br />product you want to compare.</div>');
	jq_infoTip.append('<div class="compareState oneSelected">You can compare up to '+maxChecked+' products. <br />(Please select at least one more to compare.)</div>');
	jq_infoTip.append('<div class="compareState multiSelected">When you\'re ready, click the <span class="buttonName">Compare</span>&nbsp;button.<br />(<span class="numChecked">'+ count +'</span> currently checked, maximum of '+maxChecked+'.)</div>');
	jq_infoTip.append('<div class="compareState maxSelected">You\'ve selected the maximum of '+maxChecked+' products.</div>');   
	
	
	$('div.compareCheckbox').tooltip({
			bodyHandler: function() {
				return( jq_infoTip );			
			},
			showURL	: false,
			track	: true,
			delay	:   0								 
	});
	
	updateState();
	
	//Reset
	$('table.compare-landing div.compareCheckbox input:checkbox').removeAttr('checked').removeAttr('disabled').next('label').removeClass('disabled-label');
	//Bind Submit to Compare Now Links
	$('table.compare-landing div.compareCheckbox input:checkbox').parent().find('a.compare-now').click(function(){
		$('#compare-form').submit();
	});
	
	$('table.compare-landing div.compareCheckbox input:checkbox').click(function(){																 
		toggleCheckboxes($(this));
		toggleSubmitButtons();
	});
	
	/*
	$('table.compare-landing tbody tr').mouseover(function(){
 		$(this).addClass('hover');
 	}).mouseout(function(){
 		$(this).removeClass('hover');
 	}); 
	*/

	$("table.compare-landing tbody tr.odd").hover(
		function () { $(this).removeClass("odd").addClass("hover");}, 
		function () { $(this).removeClass("hover").addClass("odd");}
    	);

	$("table.compare-landing tbody tr.even").hover(
		function () { $(this).removeClass("even").addClass("hover");}, 
		function () { $(this).removeClass("hover").addClass("even");}
    	);
	
	function toggleSubmitButtons(){
		//Enable/Disable non selected checkboxes
		if(count >= maxChecked){
			$('table.compare-landing div.compareCheckbox input:checkbox:not(:checked)').attr('disabled','disabled').next('label').addClass('disabled-label');
		}else{
			$('table.compare-landing div.compareCheckbox input:checkbox:disabled').removeAttr('disabled').next('label').removeClass('disabled-label');
		}
		
		//Enabling
		if(count > 1){
			$('div.ch-compare-wrapper img.compare-submit').css('display','none');
			$('div.ch-compare-wrapper a.compare-submit').css('display','inline');
		}else{
			$('div.ch-compare-wrapper img.compare-submit').css('display','inline');
			$('div.ch-compare-wrapper a.compare-submit').css('display','none');
		}
	}
	
	function toggleCheckboxes(checkbox){
		if(count >= 1){
			if(checkbox.attr('checked')){
				$('table.compare-landing div.compareCheckbox input:checkbox:checked').next('label').css('display', 'none');
				$('table.compare-landing div.compareCheckbox input:checkbox:checked').parent().find('a.compare-now').css('display', 'block');
				count++;
			}else{
				if(count == 2){
					$('table.compare-landing div.compareCheckbox input:checkbox:checked').next('label').css('display', 'block');
					$('table.compare-landing div.compareCheckbox input:checkbox:checked').parent().find('a.compare-now').css('display', 'none');
				}
				$(checkbox).next('label').css('display', 'block');
				$(checkbox).parent().find('a.compare-now').css('display', 'none');
				count--;
			}
		}else{
			if(checkbox.attr('checked')){
				count++;
			}else{
				count--;
			}
		}
		
		updateState();
	}
	
	function updateState(){
		if(count == 0){
			$('div.compareState').removeClass('compareStateOn');
			$('div.compareState:eq(0)').css('display','block').addClass('compareStateOn');
			$('div.compareState:not(:eq(0))').css('display','none');
		}else if(count == 1){
			$('div.compareState').removeClass('compareStateOn');
			$('div.compareState:eq(1)').css('display','block').addClass('compareStateOn');
			$('div.compareState:not(:eq(1))').css('display','none');
		}else if(count == maxChecked){
			$('div.compareState').removeClass('compareStateOn');
			$('div.compareState:eq(3)').css('display','block').addClass('compareStateOn');
			$('div.compareState:not(:eq(3))').css('display','none');
		}else{
			$('div.compareState').removeClass('compareStateOn');
			$('div.compareState:eq(2)').css('display','block').addClass('compareStateOn');
			$('div.compareState:not(:eq(2))').css('display','none');
			$('div.multiSelected span.numChecked').html(count);
		}
	}

});