
<!-- WDSError methods to be redefined to have special UI behavior when errors -->

// -------------------------------------------------------------------------- \\
// WDSObjectError_modifySrcElement
//   you can redefine this method if you want something special for your UI
// -------------------------------------------------------------------------- \\
function WDSObjectError_modifySrcElement () {
  if (this.object) {
    var parent = getFirstAncestorByClassName(this.object);
    if (parent != null) {
      parent.className = "ErrorBgrd";
      var errorImg = document.getElementById("WDSErrorImg" + parent.id);
      if (errorImg) {
        errorImg.style.display = "";
      }
    }
  }
}

// -------------------------------------------------------------------------- \\
// WDSObjectError_initSrcElement
//   you can redefine this method if you want something special for your UI
// -------------------------------------------------------------------------- \\
function WDSObjectError_initSrcElement () {
  if (this.object) {
    var parent = getFirstAncestorByClassName(this.object);
    if (parent != null) {
      parent.className = "";
      var errorImg = document.getElementById("WDSErrorImg" + parent.id);
      if (errorImg) {
        errorImg.style.display = "none";
      }
    }
  } 
}

function getFirstAncestorByClassName(target) {
  var parent = target;
  while (parent = parent.parentNode) {
    if ((('TR' == parent.tagName.toUpperCase()) || ('TABLE' == parent.tagName.toUpperCase()) || ('TD' == parent.tagName.toUpperCase())) 
    				&& parent.id.length > 0) {
      return parent;
    }
  }
  return null;
}

<!-- End WDSError methods to be redefined to have special UI behavior when errors -->
