var availableKeyCodes = [
    33,34,35,36,37,38,39,40,8,45,46,144
]

function onLoad() {
    accountWordCount();
    YAHOO.util.Event.addListener("comments", "keyup", accountWordCount);
    YAHOO.util.Event.addListener("comments", "keydown", handleKeyPress);
}

function accountWordCount(event) {
    var txtArea = YAHOO.util.Dom.get("comments");
    var showElement = YAHOO.util.Dom.get("wordCount");
    var wordCount = 1500 - parseInt(txtArea.value.length);
    if (txtArea.value.length > 1500) {
        txtArea.value = txtArea.value.substring(0, 1500);
    }
    showElement.innerHTML = wordCount;
}

function handleKeyPress(event) {
    if (YAHOO.util.Dom.get("comments").value.length >= 1500) {
        var isAvailableKeyCode = false;
        for (var i=0 ; i<availableKeyCodes.length ; i++ ) {
            if (availableKeyCodes[parseInt(i)] == event.keyCode) {
                isAvailableKeyCode = true;
                return;
            }
        }
        if (!isAvailableKeyCode) {
            if (YAHOO.env.ua.ie) {
                event.returnValue = false;
            } else {
                event.preventDefault();
            }
        }
    }
}

var loader = new YAHOO.util.YUILoader({
    base: GORE.basePath + "yui/build/",
    require: ["event","dom"],
    onSuccess: onLoad
});

loader.insert();