function clearErrorMessages(field) {
    // clear out any rows with an "errorFor" attribute

    rootDiv = field.parentNode.parentNode.parentNode;
    var divs = rootDiv.getElementsByTagName("div");
    var paragraphsToDelete = new Array();

    for(var i = 0; i < divs.length; i++) {
        var p = divs[i];
        if (p.getAttribute("errorFor")) {
            paragraphsToDelete.push(p);
        }
    }

    // now delete the paragraphsToDelete
    for (var i=0; i < paragraphsToDelete.length; i++) {
        var r = paragraphsToDelete[i];
        var parent = r.parentNode;
        parent.removeChild(r);
    }
}

function clearErrorLabels(form) {
    // set all labels back to the normal class
    var labels = form.getElementsByTagName("label");
    for (var i = 0; i < labels.length; i++) {
        var label = labels[i];
        if (label) {
            if (label.className.indexOf("error") > -1) {
                label.className = label.className.substring(0, label.className.indexOf("error"));
            }
        }
    }

}

function addRight(e){
    try {
        var ctrlDiv = e.parentNode; // wwctrl_ div or span
        var enclosingDiv = ctrlDiv.parentNode; // wwgrp_ div

        var label = enclosingDiv.getElementsByTagName("label")[0];
        if (label) {
            label.className += " error";
        }

        var input = enclosingDiv.getElementsByTagName("input")[0];
        if (input) {
            input.className += " error";
        }


        var ftlDiv = enclosingDiv.getElementsByTagName("div")[0]; // either wwctrl_ or wwlbl_
        if (!ftlDiv) {
            ftlDiv = enclosingDiv.getElementsByTagName("span")[0];
        }

        var rightDiv = document.createElement("div");
        rightDiv.className = "img_right";
        rightDiv.setAttribute("errorFor", e.id);
        rightDiv.id = "messageId";

        var errorRightDiv = document.createElement("div");
        errorRightDiv.id = "errorRightDivId";
        errorRightDiv.className = "right";
        

        divExists = false;
        allDivs = (ftlDiv.parentNode).parentNode.getElementsByTagName("div");
        for(i=0;i<allDivs.length;i++) {
            if( allDivs[i].getAttribute("id") == "errorRightDivId" ) {
                divExists = true;
                allDivs[i].appendChild(rightDiv);
                break;
            }
        }


        if(!divExists) {
            errorRightDiv.appendChild(rightDiv);
            (ftlDiv.parentNode).parentNode.appendChild(errorRightDiv);
        }

    } catch (e) {
        alert(e);
    }
}

function addError(e, errorText) {
    try {
        var ctrlDiv = e.parentNode; // wwctrl_ div or span
        var enclosingDiv = ctrlDiv.parentNode; // wwgrp_ div
		
        var label = enclosingDiv.getElementsByTagName("label")[0];
        if (label) {
            label.className += " error";
        }
	    
        var input = enclosingDiv.getElementsByTagName("input")[0];
        if (input) {
            input.className += " error";
        }

        
        var ftlDiv = enclosingDiv.getElementsByTagName("div")[0]; // either wwctrl_ or wwlbl_
        if (!ftlDiv) {
            ftlDiv = enclosingDiv.getElementsByTagName("span")[0];
        }

        var error = document.createTextNode(errorText);
        var errorDiv = document.createElement("div");

        errorDiv.className = "img_wrong";
        errorDiv.setAttribute("errorFor", e.id);
        errorDiv.id = "messageId";
        errorDiv.appendChild(error);

        var errorRightDiv = document.createElement("div");
        errorRightDiv.id = "errorRightDivId";
        errorRightDiv.className = "right";
        

        divExists = false;
        allDivs = (ftlDiv.parentNode).parentNode.getElementsByTagName("div");
        
        for(i=0;i<allDivs.length;i++) {

            if( allDivs[i].getAttribute("id") == "errorRightDivId" ) {
                divExists = true;
                allDivs[i].appendChild(errorDiv);
                break;
            }
        }

        if(!divExists) {
            errorRightDiv.appendChild(errorDiv);
            (ftlDiv.parentNode).parentNode.appendChild(errorRightDiv);
        }
       
    } catch (e) {
        alert(e);
    }
}


function availabilityCheck(e, errorText) {
    try {
        var ctrlDiv = e.parentNode; // wwctrl_ div or span
        var enclosingDiv = ctrlDiv.parentNode; // wwgrp_ div

        var label = enclosingDiv.getElementsByTagName("label")[0];
        if (label) {
            label.className += " error";
        }

        var input = enclosingDiv.getElementsByTagName("input")[0];
        if (input) {
            input.className += " error";
        }


        var ftlDiv = enclosingDiv.getElementsByTagName("div")[0]; // either wwctrl_ or wwlbl_
        if (!ftlDiv) {
            ftlDiv = enclosingDiv.getElementsByTagName("span")[0];
        }

        var error = document.createTextNode(errorText);
        var errorDiv = document.createElement("div");

        errorDiv.className = "img_right";
        errorDiv.setAttribute("errorFor", e.id);
        errorDiv.appendChild(error);

        var errorRightDiv = document.createElement("div");
        errorRightDiv.id = "errorRightDivId";
        errorRightDiv.className = "right";
        errorRightDiv.appendChild(errorDiv);

        divExists = false;
        allDivs = (ftlDiv.parentNode).parentNode.getElementsByTagName("div");
        for(i=0;i<allDivs.length;i++) {
            if( allDivs[i].getAttribute("id") == "errorRightDivId" ) {
                divExists = true;
                allDivs[i].appendChild(errorDiv);
                break;
            }
        }

        if(!divExists) {
            (ftlDiv.parentNode).parentNode.appendChild(errorRightDiv);
        }

    } catch (e) {
        alert(e);
    }
}
