/* ------------------------------------------------------------------------
	prettyCheckboxes
	
	Developped By: Stephane Caron (http://www.no-margin-for-errors.com)
	Inspired By: All the non user friendly custom checkboxes solutions ;)
	Version: 1.1
	
	Copyright: Feel free to redistribute the script/modify it, as
			   long as you leave my infos at the top.
------------------------------------------------------------------------- */
	
	jQuery.fn.prettyCheckboxes = function(settings) {
		settings = jQuery.extend({
					checkboxWidth: 17,
					checkboxHeight: 17,
					className : 'prettyCheckbox',
					display: 'list'
				}, settings);

		$(this).each(function(){
			// Find the label
			$label = $('label[for="'+$(this).attr('id')+'"]');
      //alert($(this).attr('id'));
      var id = $(this).attr('id');
      var new_id='label_'+id.substr(8,id.length-8);
      //alert(new_id);
			// Add the checkbox holder to the label
      //id="label_%%GLOBAL_ProductId%%" onmouseover="show_compare(this); return false;" onmouseout="hide_compare(this); return false;"
			$label.prepend("<span class='holderWrap'><span class='holder'></span></span>");

			// If the checkbox is checked, display it as checked
			if($(this).is(':checked')) { $label.addClass('checked'); };

			// Assign the class on the label
			$label.addClass(settings.className).addClass($(this).attr('type')).addClass(settings.display);

			// Assign the dimensions to the checkbox display
			$label.find('span.holderWrap').width(settings.checkboxWidth).height(settings.checkboxHeight);
			$label.find('span.holder').width(settings.checkboxWidth);

			// Hide the checkbox
			$(this).addClass('hiddenCheckbox');

			// Associate the click event
			$label.bind('click',function(){
				$('input#' + $(this).attr('for')).triggerHandler('click');
				
				if($('input#' + $(this).attr('for')).is(':checkbox')){
					$(this).toggleClass('checked');
					$('input#' + $(this).attr('for')).checked = true;
					
					$(this).find('span.holder').css('top',0);
				}else{
					$toCheck = $('input#' + $(this).attr('for'));

					// Uncheck all radio
					$('input[name="'+$toCheck.attr('name')+'"]').each(function(){
						$('label[for="' + $(this).attr('id')+'"]').removeClass('checked');	
					});

					$(this).addClass('checked');
					$toCheck.checked = true;
				};
			});

			$('input#' + $label.attr('for')).bind('keypress',function(e){
				if(e.keyCode == 32){
					if($.browser.msie){
						$('label[for="'+$(this).attr('id')+'"]').toggleClass("checked");
					}else{
						$(this).trigger('click');
					}
					return false;
				};
			});
		});
	};


  /*jQuery.fn.prettyCheckboxes_co = function(settings) {
    settings = jQuery.extend({
          checkboxWidth: 20,
          checkboxHeight: 23,
          className : 'prettyCheckbox',
          display: 'list'
        }, settings);

    $(this).each(function(){
      // Find the label
      $label = $('label[for="'+$(this).attr('id')+'"]');
      //alert($(this).attr('id'));
      var id = $(this).attr('id');
      var new_id='label_'+id.substr(8,id.length-8);
      //alert(new_id);
      // Add the checkbox holder to the label
      //id="label_%%GLOBAL_ProductId%%" onmouseover="show_compare(this); return false;" onmouseout="hide_compare(this); return false;"
      $label.prepend("<span class='holderWrap'><span class='holder'></span></span>");

      // If the checkbox is checked, display it as checked
      if($(this).is(':checked')) { $label.addClass('checked'); };

      // Assign the class on the label
      $label.addClass(settings.className).addClass($(this).attr('type')).addClass(settings.display);

      // Assign the dimensions to the checkbox display
      $label.find('span.holderWrap').width(settings.checkboxWidth).height(settings.checkboxHeight);
      $label.find('span.holder').width(settings.checkboxWidth);

      // Hide the checkbox
      $(this).addClass('hiddenCheckbox');

      // Associate the click event
      $label.bind('click',function(){
        $('input#' + $(this).attr('for')).triggerHandler('click');
        
        if($('input#' + $(this).attr('for')).is(':checkbox')){
          $(this).toggleClass('checked');
          $('input#' + $(this).attr('for')).checked = true;
          
          $(this).find('span.holder').css('top',0);
        }else{
          $toCheck = $('input#' + $(this).attr('for'));

          // Uncheck all radio
          $('input[name="'+$toCheck.attr('name')+'"]').each(function(){
            $('label[for="' + $(this).attr('id')+'"]').removeClass('checked');  
          });

          $(this).addClass('checked');
          $toCheck.checked = true;
        };
      });
      
      $('input#' + $label.attr('for')).bind('keypress',function(e){
        if(e.keyCode == 32){
          if($.browser.msie){
            $('label[for="'+$(this).attr('id')+'"]').toggleClass("checked");
          }else{
            $(this).trigger('click');
          }
          return false;
        };
      });
    });
  };*/
	
	checkAllPrettyCheckboxes = function(caller, container){
		if($(caller).is(':checked')){
			// Find the label corresponding to each checkbox and click it
			$(container).find('input[type=checkbox]:not(:checked)').each(function(){
				$('label[for="'+$(this).attr('id')+'"]').trigger('click');
				if($.browser.msie){
					$(this).attr('checked','checked');
				}else{
					$(this).trigger('click');
				};
			});
		}else{
			$(container).find('input[type=checkbox]:checked').each(function(){
				$('label[for="'+$(this).attr('id')+'"]').trigger('click');
				if($.browser.msie){
					$(this).attr('checked','');
				}else{
					$(this).trigger('click');
				};
			});
		};
	};
