﻿//////////////////////////////////////////////////////////////////
//Javascript instance class NikkeiEU.JS.Common.TextAreaElementUtil
//////////////////////////////////////////////////////////////////

function NikkeiEU_JS_Common_TextAreaElementUtil() {

    var ATTRIBUTE_NAME_TEXT_AREA_MAX_LENGTH = "TextAreaMaxLength";

    ///<summary>
    ///Check max length on the keypress event. If it's over the maximum, return false.
    ///<param name="eventOfElement">event of target element
    ///<param name="element">target element
    function CheckMaxLengthOnKeyPress(eventOfElement, element) {

        var maxLength = element.getAttribute(ATTRIBUTE_NAME_TEXT_AREA_MAX_LENGTH);

        if (element.value.length >= maxLength) {
            eventOfElement.returnValue = false;
            return false;
        }
    }

    ///<summary>
    ///Check max length on the paste event. If it's over the maximum, return false.
    ///<param name="eventOfElement">event of target element
    ///<param name="element">target element
    function CheckMaxLengthOnPaste(eventOfElement, element) {

        eventOfElement.returnValue = false;
        var maxLength = element.getAttribute(ATTRIBUTE_NAME_TEXT_AREA_MAX_LENGTH);

        if ((element.value.length + window.clipboardData.getData("Text").length) > maxLength) {
            return false;
        }
        
        event.returnValue = true;
    }

    //Allocate public methods to this class
    NikkeiEU_JS_Common_TextAreaElementUtil.CheckMaxLengthOnKeyPress = CheckMaxLengthOnKeyPress;
    NikkeiEU_JS_Common_TextAreaElementUtil.CheckMaxLengthOnPaste = CheckMaxLengthOnPaste;

    return NikkeiEU_JS_Common_TextAreaElementUtil;
}


//    ///<summary>
//    ///Check max length on the keypress event. If it's over the maximum, return false.
//    function CheckMaxLengthOnKeyPress(eventOfElement, element) {
//    
//        //Check the special key codes.
//        switch(eventOfElement.keyCode) {
//            case 37: // left
//                return true;
//            case 38: // up
//                return true;
//            case 39: // right
//                return true;
//            case 40: // down
//                return true;
//            case 8: // backspace
//                return true;
//            case 46: // delete
//                return true;
//            case 27: // escape
//                element.value='';
//                return true;
//        }
//        
//        var maxLength = element.getAttribute("TextAreaMaxLength");
//        
//        //Check the length of the inputted text.
//        if (element.value.length > maxLength)
//        {
//            return false;
//        }
//        
//        //Check the clip board data
//        if ((element.value.length + window.clipboardData.getData("Text").length) > maxLength)
//        {
//            return false;
//        }
//        
//        return true;
//   
