﻿var ExtendedTextArea = {};

//up, down, left, right, backscpace, delete, home, end, pageup, pagedown, shift, capslock
var specialKeys = [38,40,37,39,8,46,36,35,33,34,16,20];

//
ExtendedTextArea.getEvent = function(evt) {
    evt = evt || event;
    evt.target = evt.target || evt.srcElement;
    return evt;
}

ExtendedTextArea.getKeyCode = function(evt) {
    if(evt.keyCode) { return evt.keyCode; }
    else { return evt.charCode; }
}

ExtendedTextArea.checkKeyUp = function (evt) {
    evt = getEvent(evt);
    var charKeyStroke = true;
    var code = ExtendedTextArea.getKeyCode(evt);
    if(evt.target.value.length>=textAreas[evt.target.id]['maxLength']) {
        for (var i=0; i<specialKeys.length; i++) {
            if(code == specialKeys[i]) { charKeyStroke = false; }
        }
        if(charKeyStroke){
            //Firefox
            if(evt.preventDefault()) { evt.preventDefault(); }
            //IE
            else { return false; }
        }
    }
}

ExtendedTextArea.checkBlur = function(evt) {
        evt = getEvent(evt);
        if (evt.target.value.length > textAreas[evt.target.id]['maxLength']) {
		// truncate value to max length
		evt.target.value = evt.target.value.substring(0, textAreas[evt.target.id]['maxLength']);	
		// show message if message is passed
		if (textAreas[evt.target.id]['errorMessage'].length > 0) { alert(textAreas[evt.target.id]['errorMessage']);	}
	}	
	return true;
}

ExtendedTextArea.init = function(evt) {
    for(textArea in textAreas)
    {
        var ETAcontrol = document.getElementById(textArea);
        $addHandler(ETAcontrol, "keypress", ExtendedTextArea.checkKeyUp);
        $addHandler(ETAcontrol, "blur", ExtendedTextArea.checkBlur);
    }
}

$addHandler(window, "load", ExtendedTextArea.init);

////////////////////////////////////////////
// End of script
if (typeof(Sys) !== 'undefined')
{
    Sys.Application.notifyScriptLoaded();
}
////////////////////////////////////////////
// Do not add any code below this
////////////////////////////////////////////
