(function($){
	
	// Change checkboxes to buttons
	$.fn.initializeBoardCompare = function(settings){
		
		var options = $.extend({
			title: 'COMPARE BOARDS',
			button_text: 'Compare Boards',
			compare_token: '.compare_board'
		}, settings);
		
		//create the board comparison canvas area
		var $preview = $('<div id="board_compare_preview"><div class="category_separator"><b>'
						+ options.title+'</b></div><div id="compare_holder"></div><div style="clear: left;"></div><div class="submit_comparison"><a id="submit_comparison" href="#">'
						+ options.button_text
						+ '</a></div></div>');
		$('#compare_products').prepend($preview);
		$holder = $preview.find('#compare_holder');
		$preview.hide();
		$button = $preview.find('a').eq(0).click(function(e){
			e.preventDefault();
			$('#compare_products').trigger('submit');
		});
		
		
		
		this.each(function(i, e){
			var $board = $(e);
			var $clone = $board.clone();
			$clone.find('input').remove();
			$clone.find('.matrix_hover_info').remove();
			$clone.find('.matrix_binding_boot_info').remove();
			$clone.append('<div class=""><span class="compare_remove">Remove</span></div>')
			//hide all of the submit buttons
			$board.find('input[type=submit]').hide();
			var $checkbox = $board.find('input[type=checkbox]');
			var $id = $checkbox.val();
			var $toggle_switch = $('<span class="compare_toggle">Toggle</span>');
			var $toggle_state = 'OFF';
			
			$checkbox
				.hide()
				.after($toggle_switch);
			
				
			$toggle_switch.click(function(){
				$toggle_state = $toggle_state == 'ON' ? 'OFF' : 'ON';
				switch($toggle_state){
					case 'ON':
						$toggle_switch.addClass('on').removeClass('off');
						$board.trigger('board.compare_on');
						$checkbox.attr('checked','checked');
					break;
					case 'OFF':
						$toggle_switch.addClass('off').removeClass('on');
						$board.trigger('board.compare_off');
						$checkbox.attr('checked','');
					break;
				}
			});
			
			$board.bind('board.compare_on', function(e){
				//copy the image and name
				$holder.prepend($clone);
				$clone.hide();
				$clone.fadeIn();
				$preview.slideDown('fast');
				$clone.find('.compare_remove').one('click', function(){
					$toggle_switch.trigger('click');
				});
			});
			$board.bind('board.compare_off', function(e){
				
				if($preview.find(options['compare_token']).length == 1){
					$preview.slideUp('fast', function(){
						$clone.fadeOut('fast', function(){
							$clone.remove();
						});
					});
				}else{
					$clone.fadeOut('fast', function(){
						$clone.remove();
					});
				}
				
			});
			
			if($checkbox.attr('checked')) $checkbox.attr('checked',false);
			
		});
		return this;
	}
	
})(jQuery)