//////////////////////// // CTextBox_Multilin_SetText // var CTextBox_SetText = function (id, text) { var element = document.getElementById(id); element.value = text; } //////////////////////// // CTextBox_Multiline_KeyDown // var CTextBox_Multiline_KeyDown = function (e) { if (e.keyCode == 9 || e.which == 9) { e.preventDefault(); var s = this.selectionStart; this.value = this.value.substring(0, this.selectionStart) + "\t" + this.value.substring(this.selectionEnd); this.selectionEnd = s + 1; } }; //////////////////////// // CTextBox_Multiline_SaveSizeData // var CTextBox_Multiline_SaveSizeData = function (textArea) { var hidSizeData = document.getElementById(textArea.cfg.hidSize); hidSizeData.value = JSON.stringify(textArea.cfg.size); } //////////////////////// // CTextBox_Multiline_RestoreSizeData // var CTextBox_Multiline_RestoreSizeData = function (textArea) { var hidSizeData = document.getElementById(textArea.cfg.hidSize); if (hidSizeData.value !== "") { textArea.cfg.size = JSON.parse(hidSizeData.value);; textArea.style.width = textArea.cfg.size.width + "px"; textArea.style.height = textArea.cfg.size.height + "px"; textArea.scrollTop = textArea.cfg.size.scrollTop; } textArea.cfg.size = { height: textArea.offsetHeight, scrollTop: textArea.scrollTop }; } //////////////////////// // CTextBox_Multiline_MouseUp // var CTextBox_Multiline_MouseUp = function (e) { var textArea = e.target; var newSize = { height: textArea.offsetHeight, width: textArea.offsetWidth, scrollTop: textArea.scrollTop }; if (textArea.cfg.size.height != newSize.height) { textArea.cfg.size = newSize; CTextBox_Multiline_SaveSizeData(textArea); } } //////////////////////// // CTextBox_Multiline_Scrolled // var CTextBox_Multiline_Scrolled = function (e) { var textArea = e.target; textArea.cfg.size = { height: textArea.offsetHeight, scrollTop: textArea.scrollTop }; CTextBox_Multiline_SaveSizeData(textArea); } //////////////////////// // CTextBox_Multiline_Init // var CTextBox_Multiline_Init = function (cfg) { var textArea = document.getElementById(cfg.txtContent); textArea.cfg = cfg; textArea.onkeydown = CTextBox_Multiline_KeyDown; if (cfg.keepSize) { CTextBox_Multiline_RestoreSizeData(textArea); textArea.onmouseup = CTextBox_Multiline_MouseUp; textArea.onscroll = CTextBox_Multiline_Scrolled; } }