// Hintify helper
  $('.hintify').live('focus', function() {
    /*
      TODO This isn't firing in IE7.
    */
    if ($(this).hasClass('hintify_faux')) {
      $(this).hide();
      $('#' + this.id + "_hidden").show().focus();
    } 
    if ($(this).val() == $(this).attr('title')) {
      $(this).val('');
    }
  }).live('blur', function() {
    /*
      TODO This isn't firing in IE7.
    */
    if ($(this).val() == '') {
      if ($(this).attr('type') == 'password') {
        $(this).hide();
        $('#' + this.id.slice(0, -7)).show();
      }
      $(this).val($(this).attr('title'));
    }
  }).each(function() {
    if ($(this).attr('type') == 'password') {
      $(this).hide();                                           // Hide the original
      var old_id = $(this).attr("id");                          // Store ID of original input for later use
      $(this).attr("id", $(this).attr("id") + "_hidden");       // Change ID for original input
      var new_input = document.createElement("input");          // Create a new <input> element
      new_input.setAttribute("id", old_id);                     // Assign original input ID to new input
      new_input.setAttribute("type", "text");                   // Set "type" to "text"
      new_input.setAttribute("class", "hintify hintify_faux");  // Set the class to "hintify" and "hintify_faux" for event handlers
      new_input.value = $(this).attr('title');                  // Set the hintify value
      $(this).after(new_input);                                 // Add new input right after the hidden input
    } else {
      $(this).val($(this).attr('title'));
    }
  });
  $('form').submit(function() {
    $('.hintify').each(function() {
      if ($(this).val() == $(this).attr('title')) {
        $(this).val('');
      }
    })
  });
  // Remove x and y coordinates
  $('.clear_xy').live('submit', function() {
    this.submit(); return false;
  });
