/*
 * jQuery disappearing-labelled box (la-box)
 * http://anny.fm/ 2010
 *
 */

(function($)
{

  // Create jqobject.
	$.fn.labox = function( options )
	{
	  // Allow string option to use defaults besides text.
	  if( typeof(options) == "string" ) options = { text: options };

    // Condense options object.
		options = $.extend( {}, $.fn.labox.defaults, options );
		return this.each(function()
		{
		  // Init jqobject.
		  init( $(this), options );
		});
	};

  // Public defaults for jqobject.
  $.fn.labox.defaults =
  {
    text:          "Undefined Field",
    activeClass:   "labox-active",
    inactiveClass: "labox-inactive",
  };

  // Init function for jqobject.
  function init( labox, options )
  {
    // On gaining focus...
    labox.focus( function()
    {
      if( labox.attr("value") == options.text )
        labox.attr( "value", "" );
      labox.removeClass(options.inactiveClass).addClass(options.activeClass);
    });

    // On losing focus...
    labox.blur( function()
    {
      if( labox.attr("value") == undefined || ! labox.attr("value").replace(/\s+/gi,"").length )
        labox.removeClass(options.activeClass).addClass(options.inactiveClass).attr( "value", options.text );
    });

    // Init labox if required.
    if( labox.attr("value") == options.text )
      labox.addClass(options.inactiveClass);
    else
      labox.addClass(options.activeClass);
  }

})(jQuery);
