/**
 * This script sets up the error wrapper and populates it
 * Make sure the error wrapper is placed in the page right below the H1:
 *  
 *  <#include "/common/errorWrapper.ftl" />
 *  
 */

var errorList = new Array();

function initErrors() {
    if (document.getElementById('errorWrapper')) {
        $("#errorWrapper").css({ position: "absolute", top: "3em", left: "6em", zIndex: "99" });
        $("#errorWrapper").hide();
    }
}

function ariaInvalid(aID, bool) {
    var elem = document.getElementById(aID);
    if (bool) {
        elem.setAttribute("aria-invalid", "true");
    }
    else {
        elem.setAttribute("aria-invalid", "false");
    }
}

function populateErrors() {
    $("#errorWrapper").empty();
    $("#errorWrapper").addClass('bordered');
    $("#errorWrapper").append('<h2 tabindex="-1" id="myErrors" name="myErrors">Error</h2>');
    $("#errorWrapper").append('<a href="#" id="closebox" class="closebox"><span>close</span></a>');
    for (var i=0, j=errorList.length; i<j; i++) {
        var errId = errorList[i][0];
        var errItemLabel = $("label[for='" + errId + "']").text().replace('*', '');

        if (errorList[i][1] != '' || errorList[i][1] != 'undefined') {
            var errMessage = errorList[i][1];
        }
        else {
            var errMessage = errItemLabel + ' is required';
        }

        var errItem = '<p><a class="close" href="#' + errId + '">'+ errMessage + '</a></p>';
        $("#errorWrapper").append(errItem);
        $("label[for='" + errId + "']").addClass("error");
        ariaInvalid(errId, true);
    }

    $("#errorWrapper").show();
    $('#myErrors').focus();
    //document.getElementById('myErrors').focus();

    $('.close').click(function(event) {
        // jquery doesn't like dots in selectors, need to escape with two backslashes
        var href = $(this).attr('href').replace(/\./g, '\\.');
        event.preventDefault();
        $("#errorWrapper").hide();
        $(href).focus();
    });

    $('#closebox').click(function(event) {
        event.preventDefault();
        $("#errorWrapper").hide();
    });

}

$(document).ready(initErrors);
