/*
 * label2value
 * jquery based script for using form labels as text field values
 * more info on http://cssglobe.com/post/1500/using-labels- 
 *
 * Copyright (c) 2008 Alen Grakalic (cssglobe.com)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 */
// CSS class names
// put any class name you want
// define this in external css (example provided)
var inactive = "inactive";
var active = "active";
var focused = "focused";

this.label2value = function(){
  
  // function
  $("label").each(function(){
    obj = document.getElementById($(this).attr("for"));
    if (!$(obj).val() || $(obj).val() == "") {
      if ($(obj).attr("type") == "text" || obj.tagName.toLowerCase() == "textarea"){  
        $(obj).addClass(inactive);      
        var text = $(this).text();
        $(this).hide();
        $(obj).val(text);
        $(obj).focus(function(){
          $(this).addClass(focused);
          $(this).removeClass(inactive);
          $(this).removeClass(active);
          if($(this).val() == text) $(this).val("");
        });
        $(obj).blur(function(){
          $(this).removeClass(focused);
          if($(this).val() == "") {
            $(this).val(text);
            $(this).addClass(inactive);
          } else {
            $(this).addClass(active);
          };
        });
      }
    } else {
      var text = $(obj).val();
      $(obj).focus(function(){  
        $(this).addClass(focused);
        $(this).removeClass(inactive);
        $(this).removeClass(active);
        $(this).val("");
      });
    
      $(obj).blur(function(){
        $(this).removeClass(focused);
        if($(this).val() == "") {
          $(this).val(text);
          $(this).addClass(inactive);
        } else {
          $(this).addClass(active);
        };
        text = $(this).val();
      });
    }
  });
};

this.clearInputs = function(){
  $("form").submit(function() {
    $("label").each(function(){
      var obj = document.getElementById($(this).attr("for"));
      if($(obj).hasClass(inactive)){
        $(obj).val(null);
      }
    });
  });

  $(window).unload( function () {
    $("label").each(function(){
      var obj = document.getElementById($(this).attr("for"));
      if($(obj).hasClass(inactive)){
        $(obj).val(null);
      }
    });
  });
};

// on load
$(document).ready(function(){
  label2value();
  clearInputs();
  
  $("label input").focus(function(){
    $(this).parent("label").css("color","#909090");
    
    $(this).addClass("focused");
  }).blur(function(){
    $(this).parent("label").css("color","#b9b9b9");
    
    $(this).removeClass("focused");
    
    if ( $(this).val() == "" ) {
      $(this).addClass("inactive");
    } else {
      $(this).addClass("active");
    }
  });
  
  $("label input.radio").change(function(){
    $("label").css("color","#b9b9b9");
    $(this).parent("label").css("color","#909090");
  });
  
});