//note: FocusEventHandler() and BlurEventHandler(), if defined, are defined elsewhere

$(document).ready(function() {
    var active_color = '#000'; 
    var inactive_color = '#000'; 
    
    function formDefaultValues() {
      var fields = getElementsByClassName(document, "input", "default-value");
      if (!fields) {
        return;
      }
      var default_values = new Array();
      for (var i = 0; i < fields.length; i++) {
        fields[i].style.color = inactive_color;
        if (!default_values[fields[i].id]) {
          default_values[fields[i].id] = fields[i].value;
        }
        fields[i].onfocus = function() {
          var defaultTextCleared = false;
          if (this.value == default_values[this.id]) {
            this.value = '';
            this.style.color = active_color;
            defaultTextCleared = true;
          }
          if (typeof(FocusEventHandler) != 'undefined') {
              FocusEventHandler(this, defaultTextCleared);
          }
          
          this.onblur = function() {
            var defaultTextApplied = false;
            if (this.value == '') {
              this.style.color = inactive_color;
              this.value = default_values[this.id];
              defaultTextApplied = true;
            }
            if (typeof(BlurEventHandler) != 'undefined') {
                BlurEventHandler(this, defaultTextApplied);
            }
          }
        }
      }
    }
    
    function getElementsByClassName(oElm, strTagName, strClassName){
      var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
      var arrReturnElements = new Array();
      strClassName = strClassName.replace(/\-/g, "\\-");
      var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
      var oElement;
      for (var i = 0; i < arrElements.length; i++) {
        oElement = arrElements[i];
        if (oRegExp.test(oElement.className)) {
          arrReturnElements.push(oElement);
        }
      }
      return (arrReturnElements);
    }
    
    formDefaultValues();
});
