﻿
function TextBox_InvokeFunction(e, func) {
    return TextBox_KeyDownHandler(e, func);
}

function TextBox_InvokeButton(e, id) {
    return TextBox_KeyDownHandler(e, function() { TextBox_ClickButton(id); });
}

// Emulates click on the button or hyperlink
function TextBox_ClickButton(id) {
    var btn = GetElementById(id);
    if (btn != null) {
        btn.click();
        if (window.event) {
            window.event.keyCode = 0;
        }
        return false;
    }
}

// Checks a pressed key and if the Enter key pressed call the spectfied function
function TextBox_KeyDownHandler(e, func) {
    if (TextBox_IsEnterKeyPressed(e)) {
        func();
        // Cancel event
        return false;
    }
    return true;
}

// Need to reject Enter key press event
function TextBox_KeyPressHandler(e) {
    if (TextBox_IsEnterKeyPressed(e)) {
        // Cancel event
        return false;
    }
    return true;
}

// Checks pressed key and returns True if it is the Enter key
function TextBox_IsEnterKeyPressed(e) {
    var pressedKeyCode = -1;
    try {
        if (window.event) {
            pressedKeyCode = window.event.keyCode;
        }
        else {
            pressedKeyCode = e.which;
        }
    }
    catch (e) {
    }
    if (pressedKeyCode == 13 /* Enter */) {
        return true;
    }
    return false;
}

// Prevents the textarea control overflow
function TextBox_TextareaOverflowHandler(sender, maxLength) {
    if (sender.value.length > maxLength) {
        sender.value = sender.value.substring(0, maxLength);
    }
}