/**
 *
 **/

var TextField = new Class({
                              Extends: Object,
                              Implements: Options,
                              options: {
                                  onFocus: null,
                                  onBlur: null,
                                  onReturn: null,
                                  defaultVal: ''
                              },
                              
                              initialize: function(el, options) { // dbID is the server side uniqueID, used to reference the params
                                  this.setOptions(options);

                                  this.el = $(el);       // keep a reference to this

                                  var self = this;
                                  this.el.addEvent('click', function(e) {
                                                       self.el.focus();
                                                       if (self.options.onFocus) self.options.onFocus();
                                                   });
                                  
                                  this.el.addEvent('keypress', function (e){
                                                       var ev = new Event(e);
                                                       
                                                       var result = self.catchReturn(e.key);
                                                       if (result){
                                                           ev.stop();
                                                       }
                                                       return !result;
                                                   });

                                  this.el.addEvent('focus', function(e){
                                                       //            new Event(e).stop();
                                                       if (self.el.value == self.options.defaultVal){
                                                           self.el.value = '';
                                                       }

                                                       if (self.options.onFocus) self.options.onFocus();
                                                   });
                                  
                                  this.el.addEvent('blur', function(e){
                                                       new Event(e).stop();
                                                       
                                                       if (self.el.value == ''){
                                                           self.el.value = self.options.defaultVal;
                                                        }

                                                       if (self.options.onBlur) self.options.onBlur();
                                                   });
                                  
                                  
                              },
                              
                              catchReturn: function(key){
                                  if (key == 'return' || key == 'enter') {
                                      try {
		                          if (this.options.onReturn) this.options.onReturn();
	                              }
	                              catch (err){
		                          // error message ???
	                              }
                                      return true;
                                  }
                                  return false;
                              }
                          });



