Tapestry.ErrorPopup.prototype.repositionBubble = function() {
    var fieldPos = this.field.cumulativeOffset();

    this.outerDiv.setStyle({
        top: (fieldPos[1] + this.BUBBLE_VERT_OFFSET) + "px",
        left: (fieldPos[0] + this.BUBBLE_HORIZONTAL_OFFSET) + "px",
        width: this.BUBBLE_WIDTH,
        height: this.BUBBLE_HEIGHT });
}

Tapestry.FieldEventManager.prototype.orgRemove = Tapestry.FieldEventManager.prototype.removeDecorations;

Tapestry.FieldEventManager.prototype.removeDecorations = function() {
	var p = this.field.parentNode;
    if (p.oldtitle == null || p.oldtitle == "") p.removeAttribute("title");
    else p.title = p.oldtitle;
    p.className = p.className.replace(/ ?validation-FAILED/gi, "");

    this.orgRemove(); //Call the tapestry original version
}

Tapestry.FieldEventManager.prototype.orgAdd = Tapestry.FieldEventManager.prototype.addDecorations;

Tapestry.FieldEventManager.prototype.addDecorations = function(message) {
	var p = this.field.parentNode;
    if (typeof p.oldtitle == "undefined") p.oldtitle = p.getAttribute("title");
    p.title = message;
    p.className += " validation-FAILED";

    this.orgAdd(message); //Call the tapestry original version
}
