/*--------------- Labeled input text ---------------*/

$(document).ready(function() {
   $('input[title], textarea[title]').each(function() {
      if($(this).val() === '') {
         $(this).val($(this).attr('title')).addClass('labeled_empty');
      }

      $(this).focus(function() {
         if($(this).hasClass('labeled_empty')) {
            $(this).val('').removeClass('labeled_empty');
         }
      });

      $(this).blur(function() {
         if($(this).val() === '') {
            $(this).val($(this).attr('title')).addClass('labeled_empty');
         }
      });
   });
});

function removeLabelsOnExit() {
   $('input[title], textarea[title]').each(function() {
      if($(this).hasClass('labeled_empty')) {
         $(this).val('').removeClass('labeled_empty');
      }
   });
   return true;
}

/*--------------- Labeled checkboxes and radios ---------------*/

$(document).ready(function() {
   function labelClickEvent() {
      $(this).unbind('click',labelClickEvent);

      var input = $(this).prev();

      if(input.is(':checked') && input.is(":checkbox")) {
         input.removeAttr('checked').change();
      } else {
         input.attr('checked','checked').change();
      }

      $(this).click(labelClickEvent);
   }

   $('.toggle_label').click(labelClickEvent);
});

// Logging

jQuery.fn.log = function (msg) {
   console.log("%s: %o",msg,this);
   return this;
};
