// Name: MaskedEdit.MaskedEditBehavior.debug.js // Assembly: AjaxControlToolkit // Version: 4.1.60919.0 // FileVersion: 4.1.60919 // (c) 2010 CodePlex Foundation /// /// /// /// (function() { var scriptName = "ExtendedMaskedEdit"; function execute() { Type.registerNamespace('Sys.Extended.UI'); Sys.Extended.UI.MaskedEditBehavior = function(element) { Sys.Extended.UI.MaskedEditBehavior.initializeBase(this, [element]); this._Mask = ""; this._MaskType = Sys.Extended.UI.MaskedEditType.None; this._Filtered = ""; this._PromptChar = "_"; this._InputDirection = Sys.Extended.UI.MaskedEditInputDirections.LeftToRight; this._MessageValidatorTip = true; this._ShowMessageErrorFloat = false; this._CssMessageErrorFloat = ""; this._AutoComplete = true; this._AutoCompleteValue = ""; this._ClearTextOnInvalid = false; this._ClearMaskOnLostfocus = true; this._AcceptAmPm = Sys.Extended.UI.MaskedEditShowSymbol.None; this._AcceptNegative = Sys.Extended.UI.MaskedEditShowSymbol.None; this._DisplayMoney = Sys.Extended.UI.MaskedEditShowSymbol.None; this._OnFocusCssClass = "MaskedEditFocus"; this._OnInvalidCssClass = "MaskedEditError"; this._OnFocusCssNegative = "MaskedEditFocusNegative"; this._OnBlurCssNegative = "MaskedEditBlurNegative"; this._CultureName = Sys.CultureInfo.CurrentCulture.name; // "en-US" this._UserDateFormat = Sys.Extended.UI.MaskedEditUserDateFormat.None; this._UserTimeFormat = Sys.Extended.UI.MaskedEditUserTimeFormat.None; this._CultureDatePlaceholder = Sys.CultureInfo.CurrentCulture.dateTimeFormat.DateSeparator; // "/" this._CultureTimePlaceholder = Sys.CultureInfo.CurrentCulture.dateTimeFormat.TimeSeparator; // ":" this._CultureDecimalPlaceholder = Sys.CultureInfo.CurrentCulture.numberFormat.NumberDecimalSeparator; // "." this._CultureThousandsPlaceholder = Sys.CultureInfo.CurrentCulture.numberFormat.NumberGroupSeparator; // "," this._CultureDateFormat = "MDY"; var parts = Sys.CultureInfo.CurrentCulture.dateTimeFormat.ShortDatePattern.split(this._CultureDatePlaceholder); if (parts.length >= 3) { this._CultureDateFormat = parts[0].substr(0, 1).toUpperCase() + parts[1].substr(0, 1).toUpperCase() + parts[2].substr(0, 1).toUpperCase(); // "MDY" } this._CultureCurrencySymbolPlaceholder = Sys.CultureInfo.CurrentCulture.numberFormat.CurrencySymbol; // "$" this._CultureAMPMPlaceholder = Sys.CultureInfo.CurrentCulture.dateTimeFormat.PMDesignator + ";" + Sys.CultureInfo.CurrentCulture.dateTimeFormat.PMDesignator; // "AM;PM" this._AMPMPlaceholderSeparator = ";"; this._Century = 1900; this._AllowCopyPaste = true; this._ClipboardText = (Sys.Extended.UI.Resources && Sys.Extended.UI.Resources.Shared_BrowserSecurityPreventsPaste) || "Your browser security settings don't permit the automatic execution of paste operations. Please use the keyboard shortcut Ctrl+V instead."; this._CharsEditMask = "9L$CAN?"; this._CharsSpecialMask = "/:.,"; this._MaskConv = ""; this._EmptyMask = ""; // save Empty Mask this._maskvalid = "" // save valid Mask this._DirectSelText = ""; // save the Direction selected Text (only for ie) this._initialvalue = ""; // save the initial value for verify changed this._LogicSymbol = ""; // save the symbol - or AM/PM this._LogicTextMask = ""; // save logic mask with text input this._LogicMask = ""; // save logic mask without text this._LogicMaskConv = ""; // save logic mask without text and without escape this._LogicPrompt = String.fromCharCode(1); // logic prompt char this._LogicEscape = String.fromCharCode(2); // logic escape char this._LogicFirstPos = -1; // first valid position this._LogicLastPos = -1; // Last valid position this._LogicLastInt = -1; // Last valid position RTL Integer with decimal this._LogicDateTimeSepPos = -1; // valid position seperating date & time this._QtdValidInput = 0; // Qtd Valid input Position this._InLostfocus = false; // Flag to validate in lost focus not duplicate clearMask execute this._ExternalMessageError = ""; // Save local MessageError from Controls Validator this._CurrentMessageError = ""; // Save local Current MessageError this._FiringOnChange = false; // true when OnChange is being fired this._ErroOnEnter = false; // Flag Erro validate with Enter this._charLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; this._charNumbers = "0123456789"; this._charEscape = "\\"; this._DelimitStartDup = "{"; this._DelimitEndDup = "}"; this._focusHandler = null; this._keypressdown = null; this._keypressHandler = null; this._blurHandler = null; this._mouseOutHandler = null; this._mouseOutHandler = null; this._mouseMoveHandler = null; this._mouseEnterHandler = null; this._changeHandler = null; this._timer = null; //Timer this._timerHandler = null; //Timer Handler this._SaveSymb = ""; // Symb Saved immediate perform Action this._SaveText = ""; // Text Saved immediate perform Action this._SavePosi = -1; // Cursor pos Saved immediate perform Action this._SaveMask = ""; // Mask with text Saved this._SaveKeyDown = 0; // save scancode at keydown } Sys.Extended.UI.MaskedEditBehavior.prototype = { initialize : function() { var e = this.get_element(); this._InLostfocus = true; Sys.Extended.UI.MaskedEditBehavior.callBaseMethod(this, 'initialize'); this._createMask(); var hasInitialFocus = false; var clientState = this.get_ClientState(); if (clientState != null && clientState != "") { hasInitialFocus = (clientState == "Focused"); this.set_ClientState(null); } try { if (e === document.activeElement) { hasInitialFocus = true; } } catch (ex) { } if (this._ShowMessageErrorFloat) { this._mouseOutHandler = Function.createDelegate(this, this._onMouseOut); $addHandler(e, "mouseout", this._mouseOutHandler); this._mouseMoveHandler = Function.createDelegate(this, this._onMouseMove); $addHandler(e, "mousemove", this._mouseMoveHandler); this._mouseEnterHandler = Function.createDelegate(this, this._onMouseover); $addHandler(e, "mouseover", this._mouseEnterHandler); } if (!e.readOnly) { this._keypressdown = Function.createDelegate(this, this._onKeyPressdown); $addHandler(e, "keydown", this._keypressdown); this._keypressHandler = Function.createDelegate(this, this._onKeyPress); $addHandler(e, "keypress", this._keypressHandler); } this._focusHandler = Function.createDelegate(this, this._onFocus); $addHandler(e, "focus", this._focusHandler); this._blurHandler = Function.createDelegate(this, this._onBlur); $addHandler(e, "blur", this._blurHandler); this._changeHandler = Function.createDelegate(this, this._onChange); $addHandler(e, "change", this._changeHandler); if (Sys.Browser.agent == Sys.Browser.Opera) { this._timerHandler = Function.createDelegate(this, this._OnTimerTicket); this._timer = new Sys.Timer(); this._timer.set_enabled(false); this._timer.set_interval(100); this._timer.add_tick(this._timerHandler); this._SaveText = ""; this._SavePosi = -1; this._timer.set_enabled(true); } var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(e); this._InitValue(wrapper.get_Value(), true); if (hasInitialFocus) { this._onFocus(); } else { if (this._ClearMaskOnLostfocus) { wrapper.set_Value(this._getClearMask(wrapper.get_Value())); } var IsValid = this._CaptureServerValidators(); if (!IsValid) { if (this._OnInvalidCssClass != "") { this.AddCssClassMaskedEdit(this._OnInvalidCssClass); } } } } , dispose : function() { var e = this.get_element(); if (this._mouseOutHandler) { $removeHandler(e, "mouseout", this._mouseOutHandler); this._mouseOutHandler = null; } if (this._mouseMoveHandler) { $removeHandler(e, "mousemove", this._mouseMoveHandler); this._mouseMoveHandler = null; } if (this._mouseEnterHandler) { $removeHandler(e, "mouseover", this._mouseEnterHandler); this._mouseEnterHandler = null; } if (this._focusHandler) { $removeHandler(e, "focus", this._focusHandler); this._focusHandler = null; } if (this._focusHandler) { $removeHandler(e, "focus", this._focusHandler); this._focusHandler = null; } if (this._blurHandler) { $removeHandler(e, "blur", this._blurHandler); this._blurHandler = null; } if (this._changeHandler) { $removeHandler(e, "change", this._changeHandler); this._changeHandler = null; } if (this._keypressdown) { $removeHandler(e, "keydown", this._keypressdown); this._keypressdown = null; } if (this._keypressHandler) { $removeHandler(e, "keypress", this._keypressHandler); this._keypressHandler = null; } if (this._timerHandler) { this._timer.set_enabled(false); this._timerHandler = null; this._timer.dispose(); this._timer = null; } Sys.Extended.UI.MaskedEditBehavior.callBaseMethod(this, 'dispose'); } , _OnTimerTicket : function() { this._SaveSymb = ""; if (this._InLostfocus) { return; } this._timer.set_enabled(false); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); if (this._SaveText != "") { wrapper.set_Value(this._SaveText); this.setSelectionRange(this._SavePosi,this._SavePosi); this._SaveText = ""; this._SavePosi = -1; this._SaveMask = wrapper.get_Value(); } else { if (wrapper.get_Value().length != this._EmptyMask.length) { wrapper.set_Value(this._SaveMask); } if (this._timer.get_interval() != 100) { this._timer.set_interval(100); } } this._timer.set_enabled(true); } , _onChange : function() { if (!this._FiringOnChange) { this._onFocus(); } } , _onFocus : function() { var e = this.get_element(); if (e.readOnly || e.disabled) { return; } if (!this._keypressdown) { this._keypressdown = Function.createDelegate(this, this._onKeyPressdown); $addHandler(e, "keydown", this._keypressdown); } if (!this._keypressHandler) { this._keypressHandler = Function.createDelegate(this, this._onKeyPress); $addHandler(e, "keypress", this._keypressHandler); } this._InLostfocus = false; this._RemoveDivToolTip(); if (this._OnFocusCssClass != "") { this.AddCssClassMaskedEdit(this._OnFocusCssClass); } var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(e); this._initialvalue = wrapper.get_Value(); this._InitValue(wrapper.get_Value(), false); var ClearText = this._getClearMask(); var hastip = false; if (this._MessageValidatorTip && ClearText == "") { hastip = true; } if ( (this._MaskType == Sys.Extended.UI.MaskedEditType.Time || this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) && this.get_CultureAMPMPlaceholder() != "" && ClearText == "") { if (this._AcceptAmPm) { this.InsertAMPM(this.get_CultureAMPMPlaceholder().substring(0,1)); } } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && ClearText != "") { if (this._LogicSymbol == "-" && this._OnFocusCssNegative != "") { this.AddCssClassMaskedEdit(this._OnFocusCssNegative); } } if (this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { if (this._LogicLastInt != -1) { this.setSelectionRange(this._LogicLastInt,this._LogicLastInt); } else { this.setSelectionRange(this._LogicLastPos+1,this._LogicLastPos+1); } } else { if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && ClearText != "") { var pos = this._getLastEmptyPosition()+1; this.setSelectionRange(pos,pos); } else { this.setSelectionRange(this._LogicFirstPos,this._LogicFirstPos); } } this.ShowTooltipMessage(false); if (hastip) { this.ShowTooltipMessage(true); } } , _PeforformValidLostFocus : function(isblur) { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); var ClearText = this._getClearMask(wrapper.get_Value()); if (ClearText == "" && this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._LogicSymbol == "-") { this.InsertSignal("+"); } if (ClearText != "" && this._AutoComplete && this._MaskType == Sys.Extended.UI.MaskedEditType.Date) { this.AutoFormatDate(); } else if (ClearText != "" && this._AutoComplete && this._MaskType == Sys.Extended.UI.MaskedEditType.Time) { this.AutoFormatTime(); } else if (ClearText != "" && this._AutoComplete && this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { this.AutoFormatDateTime(); } else if (ClearText != "" && this._AutoComplete && this._MaskType == Sys.Extended.UI.MaskedEditType.Number) { this.AutoFormatNumber(); } if ((this._ClearMaskOnLostfocus && ClearText != "") || (isblur && this._ClearMaskOnLostfocus) ) { wrapper.set_Value(this._getClearMask(wrapper.get_Value())); } this.AddCssClassMaskedEdit(""); if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._LogicSymbol == "-" && this._OnBlurCssNegative != "") { this.AddCssClassMaskedEdit(this._OnBlurCssNegative); } this.ShowTooltipMessage(false); this._RemoveDivToolTip(); var IsValid = this._CaptureClientsValidators(); if (!IsValid) { if (this._OnInvalidCssClass != "") { this.AddCssClassMaskedEdit(this._OnInvalidCssClass); } if (this._ClearTextOnInvalid) { this._createMask(); wrapper.set_Value(this._EmptyMask); } } return IsValid; } , _onBlur : function(evt) { this._InLostfocus = true; var IsValid = this._PeforformValidLostFocus(true); if (IsValid) { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); if (!this.get_element().readOnly && (this._initialvalue != wrapper.get_Value()) && evt) { this._fireChanged(); } } } , _fireChanged : function() { /// /// Attempts to fire the change event on the attached textbox /// this._FiringOnChange = true; var elt = this.get_element(); if (document.createEventObject) { elt.fireEvent("onchange"); } else if (document.createEvent) { var e = document.createEvent("HTMLEvents"); e.initEvent("change", true, true); elt.dispatchEvent(e); } this._FiringOnChange = false; } , _onKeyPress : function(evt) { var scancode = this._KeyCode(evt); if (scancode == 9) //tab default action { return true; } if (scancode == 13) { var IsValid = this._PeforformValidLostFocus(false); this._ErroOnEnter = false; if (!IsValid) { this._ErroOnEnter = true; } if (Sys.Browser.agent == Sys.Browser.Opera) { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); this._SaveText = wrapper.get_Value(); this._SavePosi = this._getCurrentPosition(); this._timer.set_enabled(false); this._timer.set_interval(1); this._timer.set_enabled(true); } return IsValid; } if (this._OnFocusCssClass != "" && this._ErroOnEnter) { this.AddCssClassMaskedEdit(this._OnFocusCssClass); } this._ErroOnEnter = false; if (!this._isNormalChar(evt,scancode)) { this._ExecuteNav(evt,scancode); return false; } var curpos = this._deleteTextSelection(); if (curpos == -1) { curpos = this._getCurrentPosition() } var c = String.fromCharCode(scancode); if (this._MaskType == Sys.Extended.UI.MaskedEditType.Date && c == this.get_CultureDatePlaceholder()) { this._AdjustElementDate(); } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Time && c == this.get_CultureTimePlaceholder()) { this._AdjustElementTime(); } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime && (c == this.get_CultureTimePlaceholder() || c == this.get_CultureDatePlaceholder()) ) { this._AdjustElementDateTime(c); } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.LeftToRight && c == this.get_CultureDecimalPlaceholder() && curpos == this._LogicLastInt) { this._AdjustElementDecimalLTR(); } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft && c == this.get_CultureDecimalPlaceholder() && curpos == this._LogicLastInt) { this._AdjustElementDecimalRTL(); } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && c == this.get_CultureDecimalPlaceholder() && curpos != this._LogicLastInt) { this._MoveDecimalPos(); } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.LeftToRight && c == this.get_CultureThousandsPlaceholder() ) { this._MoveThousandLTR(); } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft && c == this.get_CultureThousandsPlaceholder() ) { this._MoveThousandRTL(); } else if ( (this._MaskType == Sys.Extended.UI.MaskedEditType.Time || this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) && this.get_CultureFirstLettersAMPM().toUpperCase().indexOf(c.toUpperCase()) != -1) { if (this._AcceptAmPm) { this.InsertAMPM(c); this.setSelectionRange(curpos,curpos); } } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._AcceptNegative != Sys.Extended.UI.MaskedEditShowSymbol.None && "+-".indexOf(c) != -1) { if (Sys.Browser.agent != Sys.Browser.Opera) { this.InsertSignal(c); this.setSelectionRange(curpos,curpos); } else { if (this._SaveSymb == "") { this.InsertSignal(c); this.setSelectionRange(curpos,curpos); this._SaveSymb = c; this._timer.set_enabled(false); this._timer.set_interval(1); this._timer.set_enabled(true); } else { this._SaveSymb = ""; } } } else { var OriPos = curpos; curpos = this._getNextPosition(curpos); var logiccur = curpos; if (this._LogicLastInt != -1 && this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { if (OriPos == this._LogicLastInt) { logiccur = this._getLastEmptyPosition(); } } else { if (curpos >= this._LogicLastPos+1 && this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { logiccur = this._getLastEmptyPosition(); } } if (this._processKey(logiccur,c)) { if (this._MessageValidatorTip) { this.ShowTooltipMessage(false); } if (this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.LeftToRight) { this._insertContent(c,logiccur); curpos = this._getNextPosition(logiccur+1); } else if (this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { if (this._LogicLastInt == -1) { if (curpos < this._LogicLastPos+1) { this._insertContent(c,logiccur); curpos = this._getNextPosition(logiccur+1); } else { this._insertContentRight(c); curpos = this._LogicLastPos+1; } } else { if (OriPos != this._LogicLastInt) { this._insertContent(c,logiccur); curpos = this._getNextPosition(logiccur+1); } else { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); var ClearText = this._getClearMask(wrapper.get_Value()); if (ClearText != "") { var pospt = ClearText.indexOf(this.get_CultureDecimalPlaceholder()); if (pospt != -1) { var intnum = ClearText.substring(0,pospt); if (intnum == "0" || intnum == "-0") { this.setSelectionRange(this._LogicLastInt-1,this._LogicLastInt); this._deleteTextSelection(); curpos = this._LogicLastInt; this.setSelectionRange(curpos,curpos); } } } if (ClearText == "" && c == "0") { curpos = this._LogicLastInt; } else { this._insertContentRight(c); curpos = this._LogicLastInt; } } } } this.setSelectionRange(curpos,curpos); } } this._SetCancelEvent(evt); return false; } , _onKeyPressdown : function(evt) { if (this._InLostfocus) { this._onFocus(evt); } var scancode = this._KeyCode(evt); if (scancode == 9) //tab default action { return true; } if (scancode == 13) //enter { return true; } if (!this._isNormalChar(evt,scancode)) { this._ExecuteNav(evt,scancode); } else { if (Sys.Browser.agent == Sys.Browser.Opera) { if (evt.rawEvent.shiftKey && !evt.rawEvent.ctrlKey && !evt.rawEvent.altKey && evt.rawEvent.keyCode == 45) { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); this._SaveText = wrapper.get_Value(); this._SavePosi = this._getCurrentPosition(); this._timer.set_enabled(false); this._timer.set_interval(1); this._timer.set_enabled(true); } } } } , _onMouseOut : function(evt) { this._RemoveDivToolTip(); } , _onMouseMove : function(evt) { if ((this._InLostfocus || this._ErroOnEnter) && this._ExternalMessageError != "") { this._ShowDivToolTip(evt); } } ,_onMouseover : function(evt) { if (!$get("DivMaskedEditTip_" + this.get_element().id)) { this._CaptureServerValidators(); } if ((this._InLostfocus || this._ErroOnEnter) && this._ExternalMessageError != "") { this._createDivToolTip(evt,this._ExternalMessageError); } } , _ShowDivToolTip : function(evt) { var et = $get("DivMaskedEditTip_" + this.get_element().id); if (!et) { this._createDivToolTip(evt,this._ExternalMessageError); et = $get("DivMaskedEditTip_" + this.get_element().id); } var mousepos = this._GetMousePos(evt); et.style.left = mousepos.x + 1/*offset To prevent flick in FF*/ + "px"; et.style.top = mousepos.y + 1/*offset To prevent flick in FF*/ + "px"; } , _GetMousePos : function(evt) { var scrOfX = 0, scrOfY = 0; if( typeof( window.pageYOffset ) == 'number' ) { scrOfY = window.pageYOffset; scrOfX = window.pageXOffset; } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) { scrOfY = document.body.scrollTop; scrOfX = document.body.scrollLeft; } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) { scrOfY = document.documentElement.scrollTop; scrOfX = document.documentElement.scrollLeft; } var posX = 0, posY = 0; if( typeof( evt.pageX ) == 'number' ) { posX = evt.pageX; posY = evt.pageY; } else if( typeof( evt.clientX ) == 'number' ) { posX = evt.clientX; posY = evt.clientY; } return {x:posX+scrOfX,y:posY+scrOfY} } , _RemoveDivToolTip : function() { var e = $get("DivMaskedEditTip_" + this.get_element().id); if (e) { document.body.removeChild(e); } } , _createDivToolTip : function(evt,Msg) { var e = $get("DivMaskedEditTip_" + this.get_element().id); if (!e) { var DivTp; var mousepos = this._GetMousePos(evt); DivTp = document.createElement("div"); DivTp.id = "DivMaskedEditTip_" + this.get_element().id; DivTp.style.position = "absolute"; DivTp.style.left = mousepos.x + 2/*offset*/ + "px"; DivTp.style.top = mousepos.y + 2/*offset*/ + "px"; DivTp.style.zIndex = 99999; if (this._CssMessageErrorFloat == "") { DivTp.style.padding = "3px 3px 3px 3px"; DivTp.style.border = "Solid 1px #000000"; DivTp.style.backgroundColor = "#FFFFEA"; DivTp.style.fontWeight = "normal"; DivTp.style.fontSize = "12px"; DivTp.style.fontFamily = "Arial"; } else { DivTp.className = this._CssMessageErrorFloat; } DivTp.innerHTML = Msg; DivTp = document.body.insertBefore(DivTp, document.body.firstChild); } } , _ExecuteNav : function(evt,scanCode) { if (evt.type == "keydown") { if (Sys.Browser.agent == Sys.Browser.InternetExplorer) { if ( (scanCode == 86 || scanCode == 118) && !evt.shiftKey && evt.ctrlKey && !evt.altKey) { this._SetCancelEvent(evt); this._PasteFromClipBoard(); return; } if (evt.shiftKey && !evt.ctrlKey && !evt.altKey && evt.keyCode == 45) { this._SetCancelEvent(evt); this._PasteFromClipBoard(); return; } } } if (Sys.Browser.agent != Sys.Browser.InternetExplorer || evt.type == "keypress") { if (evt.rawEvent.shiftKey && !evt.rawEvent.ctrlKey && !evt.rawEvent.altKey && evt.rawEvent.keyCode == 45) { this._SetCancelEvent(evt); this._PasteFromClipBoard(); return; } if (evt.type == "keypress" && (scanCode == 86 || scanCode == 118) && !evt.shiftKey && evt.ctrlKey && !evt.altKey) { this._SetCancelEvent(evt); this._PasteFromClipBoard(); return; } } var curpos; if (Sys.Browser.agent == Sys.Browser.InternetExplorer || evt.type == "keypress") { if (scanCode == 8) // BackSpace { this._SetCancelEvent(evt); curpos = this._deleteTextSelection(); if (curpos != -1) { this.setSelectionRange(curpos,curpos); } else { curpos = this._getCurrentPosition(); this._backspace(curpos); curpos = this._getPreviousPosition(curpos-1); this.setSelectionRange(curpos,curpos); } var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); if (this._MessageValidatorTip && wrapper.get_Value() == this._EmptyMask) { this.ShowTooltipMessage(true); } if (Sys.Browser.agent == Sys.Browser.Opera) { this._SaveText = wrapper.get_Value(); this._SavePosi = curpos; this._timer.set_enabled(false); this._timer.set_interval(1); this._timer.set_enabled(true); } } else if (scanCode == 46 || scanCode == 127) // delete { this._SetCancelEvent(evt); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); curpos = this._deleteTextSelection(); if (curpos == -1) { curpos = this._getCurrentPosition(); if (!this._isValidMaskedEditPosition(curpos)) { if (curpos != this._LogicLastInt && this._InputDirection != Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { curpos = this._getNextPosition(curpos); } } this._deleteAtPosition(curpos,false); } else { if (this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { var ClearText = this._getClearMask(wrapper.get_Value()); if (ClearText != "") { ClearText = ClearText.replace(new RegExp("(\\" + this.get_CultureThousandsPlaceholder() + ")", "g"), "") + ''; if (ClearText.substring(ClearText.length-1,ClearText.length) == this.get_CultureDecimalPlaceholder()) { ClearText = ClearText.substring(0,ClearText.length-1); this.loadValue(ClearText,this._LogicLastInt); } else { this.loadValue(ClearText,this._LogicLastPos); } } } } this.setSelectionRange(curpos,curpos); if (this._MessageValidatorTip && wrapper.get_Value() == this._EmptyMask) { this.ShowTooltipMessage(true); } if (Sys.Browser.agent == Sys.Browser.Opera) { this._SaveText = wrapper.get_Value(); this._SavePosi = curpos; this._timer.set_enabled(false); this._timer.set_interval(1); this._timer.set_enabled(true); } } else if(evt.ctrlKey) { if (scanCode == 39 || scanCode == 35 || scanCode == 34) //Right or END or pgdown { this._DirectSelText = "R"; if (Sys.Browser.agent == Sys.Browser.Opera) { return; } this._SetCancelEvent(evt); curpos = this._getCurrentPosition(); this.setSelectionRange(curpos,this._LogicLastPos+1); } else if (scanCode == 37 || scanCode == 36 || scanCode == 33) //Left or Home or pgup { this._DirectSelText = "L"; if (Sys.Browser.agent == Sys.Browser.Opera) { return; } this._SetCancelEvent(evt); curpos = this._getCurrentPosition(); this.setSelectionRange(this._LogicFirstPos,curpos); } } else if (scanCode == 35 || scanCode == 34) //END or pgdown { this._DirectSelText = "R"; if (Sys.Browser.agent == Sys.Browser.Opera) { return; } this._SetCancelEvent(evt); if (evt.shiftKey) { curpos = this._getCurrentPosition(); this.setSelectionRange(curpos,this._LogicLastPos+1); } else { this.setSelectionRange(this._LogicLastPos+1,this._LogicLastPos+1); } } else if (scanCode == 36 || scanCode == 33) //Home or pgup { this._DirectSelText = "L"; if (Sys.Browser.agent == Sys.Browser.Opera) { return; } this._SetCancelEvent(evt); if (evt.shiftKey) { curpos = this._getCurrentPosition(); this.setSelectionRange(this._LogicFirstPos,curpos); } else { this.setSelectionRange(this._LogicFirstPos,this._LogicFirstPos); } } else if (scanCode == 37) //left { this._DirectSelText = "L"; if (Sys.Browser.agent == Sys.Browser.Opera) { return; } this._SetCancelEvent(evt); if (evt.shiftKey) { var BoundSel = this._GetBoundSelection(); if (BoundSel) { if (BoundSel.left > this._LogicFirstPos) { BoundSel.left --; } this.setSelectionRange(BoundSel.left,BoundSel.right); } else { var pos = this._getCurrentPosition(); if (pos > this._LogicFirstPos) { this.setSelectionRange(pos -1,pos); } } } else { curpos = this._getCurrentPosition()-1; if (curpos < this._LogicFirstPos) { curpos = this._LogicFirstPos; } this.setSelectionRange(curpos,curpos); } if (Sys.Browser.agent == Sys.Browser.Opera) { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); this._SaveText = wrapper.get_Value(); this._SavePosi = curpos; this._timer.set_enabled(false); this._timer.set_interval(1); this._timer.set_enabled(true); } } else if (scanCode == 39) // right { this._DirectSelText = "R"; if (Sys.Browser.agent == Sys.Browser.Opera) { return; } this._SetCancelEvent(evt); if (evt.shiftKey) { var BoundSel = this._GetBoundSelection(); if (BoundSel) { if (BoundSel.right < this._LogicLastPos+1) { BoundSel.right ++; } this.setSelectionRange(BoundSel.left,BoundSel.right); } else { pos = this._getCurrentPosition(); if (pos < this._LogicLastPos+1) { this.setSelectionRange(pos,pos+1); } } } else { curpos = this._getCurrentPosition()+1; if (curpos > this._LogicLastPos+1) { curpos = this._LogicLastPos+1; } this.setSelectionRange(curpos,curpos); } if (Sys.Browser.agent == Sys.Browser.Opera) { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); this._SaveText = wrapper.get_Value(); this._SavePosi = curpos; this._timer.set_enabled(false); this._timer.set_interval(1); this._timer.set_enabled(true); } } else if (scanCode == 27) // esc { this._SetCancelEvent(evt); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); if (this._EmptyMask == this._initialvalue) { wrapper.set_Value(""); } else { wrapper.set_Value(this._initialvalue); } this._onFocus(); } } this._SetCancelEvent(evt); } , _backspace : function(curpos) { var exec = false; if (curpos > this._LogicFirstPos) { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); var masktext = wrapper.get_Value(); curpos = this._getPreviousPosition(curpos-1); this._deleteAtPosition(curpos, true); exec = true; } return exec; } , _deleteAtPosition : function(curpos,isBS) { var exec = false; var lastpos = this._LogicLastPos+1; if (this._LogicLastInt != -1 && this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { lastpos = this._LogicLastInt; } var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); if (isBS == false && this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft && curpos == lastpos) { var ClearText = this._getClearMask(wrapper.get_Value()); if (ClearText != "") { exec = true; ClearText = ClearText.replace(new RegExp("(\\" + this.get_CultureThousandsPlaceholder() + ")", "g"), "") + ''; if (ClearText.substring(ClearText.length-1,ClearText.length) == this.get_CultureDecimalPlaceholder()) { ClearText = ClearText.substring(0,ClearText.length-1); } var arr_num = ClearText.split(this.get_CultureDecimalPlaceholder()); if (this._LogicLastInt != -1 && arr_num[0] != "") { arr_num[0] = arr_num[0].substring(0,arr_num[0].length-1); ClearText = arr_num[0]; if (arr_num.length = 2) { ClearText += this.get_CultureDecimalPlaceholder() + arr_num[1]; } } else { ClearText = ClearText.substring(0,ClearText.length-1); } ClearText += this._LogicSymbol; this.loadValue(ClearText,lastpos); } } else { var masktext = wrapper.get_Value().substring(this._LogicFirstPos,this._LogicLastPos+1); var logiTxt = this._LogicTextMask.substring(this._LogicFirstPos,this._LogicLastPos+1); var qtdDt = 0; var curvld = curpos - this._LogicFirstPos; if (this._isValidMaskedEditPosition(curpos)) { exec = true; if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { var arr_mask = this._SplitDateTime(masktext); var posmask = curpos - this._LogicFirstPos; if (posmask > arr_mask[0].length) { masktext = arr_mask[1]; qtdDt = arr_mask[0].length +1; logiTxt = logiTxt.substring(qtdDt); curvld -= qtdDt; } else { masktext = arr_mask[0]; logiTxt = logiTxt.substring(0,arr_mask[0].length); } } var resttext = masktext.substring(curvld+1); var restlogi = logiTxt.substring(curvld+1); masktext = masktext.substring(0,curvld) + this._PromptChar; logiTxt = logiTxt.substring(0,curvld) + this._LogicPrompt; var i; for (i = 0 ; i < parseInt(resttext.length,10) ; i++) { if (this._isValidMaskedEditPosition(curpos+1+i)) { masktext += this._PromptChar; logiTxt += this._LogicPrompt; } else { masktext += resttext.substring(i,i+1); logiTxt += restlogi.substring(i,i+1); } } var posaux = this._getNextPosition(curpos); for (i = 0 ; i < parseInt(resttext.length,10) ; i++) { if (this._isValidMaskedEditPosition(curpos+1+i) && restlogi.substring(i,i+1) != this._LogicPrompt) { masktext = masktext.substring(0,posaux- this._LogicFirstPos-qtdDt) + resttext.substring(i,i+1) + masktext.substring(posaux+1- this._LogicFirstPos-qtdDt); logiTxt = logiTxt.substring(0,posaux- this._LogicFirstPos-qtdDt) + restlogi.substring(i,i+1) + logiTxt.substring(posaux+1- this._LogicFirstPos-qtdDt); posaux = this._getNextPosition(posaux+1); } } if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { var oritext = wrapper.get_Value().substring(this._LogicFirstPos,this._LogicLastPos+1); var orilogi = this._LogicTextMask.substring(this._LogicFirstPos,this._LogicLastPos+1) var arr_mask = this._SplitDateTime(oritext); var posmask = curpos - this._LogicFirstPos; if (posmask > arr_mask[0].length) { masktext = arr_mask[0] + " " + masktext; logiTxt = orilogi.substring(0, qtdDt) + logiTxt; } else { masktext = masktext + " " + arr_mask[1]; logiTxt = logiTxt + orilogi.substring(arr_mask[0].length); } } var currValue = wrapper.get_Value(); masktext = currValue.substring(0,this._LogicFirstPos) + masktext + currValue.substring(this._LogicLastPos+1); this._LogicTextMask = this._LogicTextMask.substring(0,this._LogicFirstPos) + logiTxt + this._LogicTextMask.substring(this._LogicLastPos+1); wrapper.set_Value(masktext); } } return exec; } , _SplitDateTime: function(inputText) { var arr = []; if (inputText.charAt(this._LogicDateTimeSepPos) == " ") { arr[0] = inputText.substring(this._LogicFirstPos, this._LogicDateTimeSepPos); arr[1] = inputText.substring(this._LogicDateTimeSepPos + 1); } else { arr[0] = inputText; } return arr; } ,_ShowModalClipBoardInput : function() { var clip = prompt(this._ClipboardText,""); return clip; } ,_PasteFromClipBoard : function() { var value = null; var curpos; var iniSel = -1; var fimSel = -1; if (Sys.Browser.agent == Sys.Browser.InternetExplorer) { value = window.clipboardData.getData("Text"); } else { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); var oldvalue = wrapper.get_Value(); var BoundSel = this._GetBoundSelection(); var curpos = this._getCurrentPosition(); var OldAuto = this._AutoComplete; var OldInv = this._ClearTextOnInvalid; var OldCls = this._ClearMaskOnLostfocus; var OldDir = this._DirectSelText; this._AutoComplete = false; this._ClearTextOnInvalid = false; this._ClearMaskOnLostfocus = false; value = this._ShowModalClipBoardInput(); this._AutoComplete = OldAuto; this._ClearTextOnInvalid = OldInv; this._ClearMaskOnLostfocus = OldCls; wrapper.set_Value(oldvalue); if (BoundSel) { this.setSelectionRange(BoundSel.left,BoundSel.right); } else { this.setSelectionRange(curpos,curpos); } } if (value == null || value == "") { return; } if (value.length > this._maskvalid.length) { value = value.substring(0,this._maskvalid.length); } curpos = this._deleteTextSelection(); if (curpos == -1) { curpos = this._getCurrentPosition(); if (BoundSel) { curpos = BoundSel.left; } } this.setSelectionRange(curpos,curpos); var ReturnPosDec = false; if (this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft && this._LogicLastInt != -1) { ReturnPosDec = true; } var i = 0; for (i = 0; i < value.length;i++) { var c = value.substring(i,i+1); var logiccur = curpos; if (ReturnPosDec) { logiccur = this._getLastEmptyPosition(); } if ( (this._MaskType == Sys.Extended.UI.MaskedEditType.Time || this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) && this.get_CultureFirstLettersAMPM().toUpperCase().indexOf(c.toUpperCase()) != -1) { if (this._AcceptAmPm) { this.InsertAMPM(c); this.setSelectionRange(curpos,curpos); } } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._AcceptNegative != Sys.Extended.UI.MaskedEditShowSymbol.None && "+-".indexOf(c) != -1) { this.InsertSignal(c); this.setSelectionRange(curpos,curpos); } else { var OriPos = curpos; curpos = this._getNextPosition(curpos); var logiccur = curpos; if (this._LogicLastInt != -1 && this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { if (OriPos == this._LogicLastInt) { logiccur = this._getLastEmptyPosition(); } } else { if (curpos >= this._LogicLastPos+1 && this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { logiccur = this._getLastEmptyPosition(); } } if (this._processKey(logiccur,c)) { if (this._MessageValidatorTip) { this.ShowTooltipMessage(false); } if (this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.LeftToRight) { this._insertContent(c,logiccur); curpos = this._getNextPosition(logiccur+1); } else if (this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { if (this._LogicLastInt == -1) { if (curpos < this._LogicLastPos+1) { this._insertContent(c,logiccur); curpos = this._getNextPosition(logiccur+1); } else { this._insertContentRight(c); curpos = this._LogicLastPos+1; } } else { if (OriPos != this._LogicLastInt) { this._insertContent(c,logiccur); curpos = this._getNextPosition(logiccur+1); } else { this._insertContentRight(c); curpos = this._LogicLastInt; } } } this.setSelectionRange(curpos,curpos); } } } if (ReturnPosDec) { this.setSelectionRange(this._LogicLastInt,this._LogicLastInt); } } , _MoveDecimalPos : function() { var e = this.get_element(); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(e); var curpos = this._LogicFirstPos; var max = this._LogicLastPos; var posDc = -1; while (curpos < max) { if (wrapper.get_Value().substring(curpos,curpos+1) == this.get_CultureDecimalPlaceholder()) { posDc = curpos; break; } curpos++; } if (posDc == -1) { return; } this.setSelectionRange(posDc,posDc); } , _MoveThousandLTR : function() { var e = this.get_element(); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(e); var curpos = this._getCurrentPosition(); var max = this._LogicLastPos; var cur = curpos+1; var posTh = -1; while (cur < max) { if (wrapper.get_Value().substring(cur,cur+1) == this.get_CultureThousandsPlaceholder()) { posTh = cur; break; } cur++; } if (posTh == -1) { var cur = 0; max = curpos; while (cur < max) { if (wrapper.get_Value().substring(cur,cur+1) == this.get_CultureThousandsPlaceholder()) { posTh = cur; break; } cur++; } if (posTh == -1) { return; } } this.setSelectionRange(posTh,posTh); } , _MoveThousandRTL : function() { var e = this.get_element(); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(e); var curpos = this._getCurrentPosition(); var min = this._LogicFirstPos; var cur = curpos-1; var posTh = -1; while (cur > min) { if (wrapper.get_Value().substring(cur,cur+1) == this.get_CultureThousandsPlaceholder()) { posTh = cur; break; } cur--; } if (posTh == -1) { cur = this._LogicLastPos; min = curpos; while (cur > min) { if (wrapper.get_Value().substring(cur,cur+1) == this.get_CultureThousandsPlaceholder()) { posTh = cur; break; } cur--; } if (posTh == -1) { return; } } this.setSelectionRange(posTh,posTh); } , _AdjustElementDecimalLTR : function() { var e = this.get_element(); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(e); var curpos = this._getCurrentPosition(); if (wrapper.get_Value().substring(curpos).indexOf(this.get_CultureDecimalPlaceholder()) == -1) { return; } var value = wrapper.get_Value().substring(this._LogicFirstPos,this._LogicLastPos+1); var newcur = value.indexOf(this.get_CultureDecimalPlaceholder()); if (newcur == -1) { return; } var arr_num; var ClearText = this._getClearMask(wrapper.get_Value()); if (ClearText != "") { ClearText = ClearText.replace(new RegExp("(\\" + this.get_CultureThousandsPlaceholder() + ")", "g"), "") + ''; arr_num = ClearText.split(this.get_CultureDecimalPlaceholder()); } else { arr_num = this.get_CultureDecimalPlaceholder().split(this.get_CultureDecimalPlaceholder()); } if (arr_num[0] == "") { arr_num[0] = "0"; } var QtdDec = value.length - newcur - 1; while (arr_num[1].length < QtdDec) { arr_num[1] += "0"; } var OldDir = this._InputDirection; this._InputDirection = Sys.Extended.UI.MaskedEditInputDirections.RightToLeft; this.loadValue(arr_num[0] + this.get_CultureDecimalPlaceholder() + arr_num[1],this._LogicLastPos); this._InputDirection = OldDir; newcur += this._LogicFirstPos + 1; this.setSelectionRange(newcur,newcur); } , _AdjustElementDecimalRTL : function() { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); var value = wrapper.get_Value().substring(this._LogicFirstPos,this._LogicLastPos+1); var posdec = value.indexOf(this.get_CultureDecimalPlaceholder()); if (posdec == -1) { return; } var curpos = this._getCurrentPosition(); if (posdec + this._LogicFirstPos >= curpos) { this._AdjustElementDecimalLTR(); return; } var arr_num; var ClearText = this._getClearMask(wrapper.get_Value()); if (ClearText != "") { ClearText = ClearText.replace(new RegExp("(\\" + this.get_CultureThousandsPlaceholder() + ")", "g"), "") + ''; arr_num = ClearText.split(this.get_CultureDecimalPlaceholder()); } else { arr_num = this.get_CultureDecimalPlaceholder().split(this.get_CultureDecimalPlaceholder()); } if (arr_num[0] == "") { arr_num[0] = "0"; } var QtdDec = value.length - posdec - 1; while (arr_num[1].length < QtdDec) { arr_num[1] += "0"; } var OldDir = this._InputDirection; this._InputDirection = Sys.Extended.UI.MaskedEditInputDirections.RightToLeft; this.loadValue(arr_num[0] + this.get_CultureDecimalPlaceholder() + arr_num[1],this._LogicLastPos); this._InputDirection = OldDir; posdec += this._LogicFirstPos + 1; this.setSelectionRange(posdec,posdec); } , _AdjustTime : function(value,ValueDefault) { var emp = true; var i for (i = 0 ; i < parseInt(value.length,10) ; i++) { if (value.substring(i,i+1) != this._PromptChar) { emp = false; } } if (emp) { return ValueDefault; } var max = value.length; value = value.replace(new RegExp("(\\" + this._PromptChar + ")", "g"), "") + ''; while (value.length < max) { value = "0" + value; } return value; } , _AdjustElementTime : function() { var e = this.get_element(); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(e); var type = ""; var curpos = this._getCurrentPosition() - this._LogicFirstPos; var m_mask = this._maskvalid; var newcur = curpos + this._LogicFirstPos; var QtdDt = 0; if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { QtdDt = m_mask.split(" ")[0].length+1; if (curpos < QtdDt) { newcur = QtdDt+this._LogicFirstPos; this.setSelectionRange(newcur,newcur); return; } m_mask = m_mask.split(" ")[1]; curpos -= QtdDt; } m_mask = m_mask.split(":"); if (curpos <= 1) { type = "H"; newcur = 3 + this._LogicFirstPos + QtdDt; } else if (curpos >= 2 && curpos <= 4 && m_mask.length == 2) { type = "M"; newcur = QtdDt+this._LogicFirstPos; } else if (curpos >= 2 && curpos <= 4 && m_mask.length == 3) { type = "M"; newcur = 6 + this._LogicFirstPos + QtdDt; } else if (m_mask.length == 3) { type = "S"; newcur = QtdDt+this._LogicFirstPos; } if (type == "") { return; } var valueTM = wrapper.get_Value().substring(this._LogicFirstPos,this._LogicLastPos+1); if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { valueTM = (this._SplitDateTime(valueTM))[1]; } var m_arrTime = valueTM.split(this.get_CultureTimePlaceholder()); var elem = this._GetTimeElementText(type); var value; if (type == "H") { value = elem + this.get_CultureTimePlaceholder() + m_arrTime[1]; if (m_arrTime.length == 3) { value += this.get_CultureTimePlaceholder() + m_arrTime[2]; } } else if (type == "M") { value = m_arrTime[0] + this.get_CultureTimePlaceholder() + elem; if (m_arrTime.length == 3) { value += this.get_CultureTimePlaceholder() + m_arrTime[2]; } } else if (type == "S") { value = m_arrTime[0] + this.get_CultureTimePlaceholder() + m_arrTime[1]; value += this.get_CultureTimePlaceholder() + elem; } if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { value = wrapper.get_Value().substring(this._LogicFirstPos,QtdDt) + value; } this.loadMaskValue(value,this._LogicFirstPos,this._LogicSymbol); this.setSelectionRange(newcur,newcur); } , _GetTimeElementText : function(Type) { var aux; var logiTxt = this._LogicTextMask.substring(this._LogicFirstPos,this._LogicLastPos+1); if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { logiTxt = logiTxt.substring(this._maskvalid.split(" ")[0].length+1); } var m_arrTime = logiTxt.split(this.get_CultureTimePlaceholder()); m_arrTime[0] = m_arrTime[0].replace(new RegExp("(\\" + this._LogicPrompt + ")", "g"), this._PromptChar) + ''; aux = m_arrTime[0].replace(new RegExp("(\\" + this._PromptChar + ")", "g"), "") + ''; if (aux !="" && aux.length < 2) { aux = "0" + aux; m_arrTime[0] = aux; } m_arrTime[1] = m_arrTime[1].replace(new RegExp("(\\" + this._LogicPrompt + ")", "g"), this._PromptChar) + ''; aux = m_arrTime[1].replace(new RegExp("(\\" + this._PromptChar + ")", "g"), "") + ''; if (aux !="" && aux.length < 2) { aux = "0" + aux; m_arrTime[1] = aux; } if (m_arrTime.length == 3) { m_arrTime[2] = m_arrTime[2].replace(new RegExp("(\\" + this._LogicPrompt + ")", "g"), this._PromptChar) + ''; aux = m_arrTime[2].replace(new RegExp("(\\" + this._PromptChar + ")", "g"), "") + ''; if (aux !="" && aux.length < 2) { aux = "0" + aux; m_arrTime[2] = aux; } } if (Type == "H") { return m_arrTime[0]; } else if (Type == "M") { return m_arrTime[1]; } return m_arrTime[2]; } , _AdjustElementDateTime : function(c) { if (c == this.get_CultureDatePlaceholder()) { this._AdjustElementDate(); } if (c == this.get_CultureTimePlaceholder()) { this._AdjustElementTime(); } } , _AdjustElementDate : function() { var e = this.get_element(); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(e); var input = wrapper.get_Value().substring(this._LogicFirstPos,this._LogicLastPos+1); if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { input = this._SplitDateTime(input)[0]; } var m_arrDate = input.split(this.get_CultureDatePlaceholder()); var type = ""; var curpos = this._getCurrentPosition() - this._LogicFirstPos; var newcur = curpos + this._LogicFirstPos; var QtdY = (this._maskvalid.indexOf("9999") != -1)?2:0; if (this.get_CultureDateFormat() == "DMY") { if (curpos <= 1) { type = "D"; newcur = 3 + this._LogicFirstPos; } else if (curpos >= 2 && curpos <= 4) { type = "M"; newcur = 6 + this._LogicFirstPos; } else { if (curpos > 8 + QtdY && this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { this.setSelectionRange(this._LogicFirstPos,this._LogicFirstPos); return; } type = "Y"; newcur = this._LogicFirstPos; } } else if (this.get_CultureDateFormat() == "MDY") { if (curpos <= 1) { type = "M"; newcur = 3 + this._LogicFirstPos; } else if (curpos >= 2 && curpos <= 4) { type = "D"; newcur = 6 + this._LogicFirstPos; } else { if (curpos > 8 + QtdY && this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { this.setSelectionRange(this._LogicFirstPos,this._LogicFirstPos); return; } type = "Y"; newcur = this._LogicFirstPos; } } else if (this.get_CultureDateFormat() == "DYM") { if (curpos <= 1) { type = "D"; newcur = 3 + this._LogicFirstPos; } else if (curpos >= 2 && curpos <= 4+QtdY) { type = "Y"; newcur = 6 + QtdY + this._LogicFirstPos; } else { type = "M"; newcur = this._LogicFirstPos; } } else if (this.get_CultureDateFormat() == "MYD") { if (curpos <= 1) { type = "M"; newcur = 3 + this._LogicFirstPos; } else if (curpos >= 2 && curpos <= 4+QtdY) { type = "Y"; newcur = 6 + QtdY + this._LogicFirstPos; } else { type = "D"; newcur = this._LogicFirstPos; } } else if (this.get_CultureDateFormat() == "YMD") { if (curpos <= 1+QtdY) { type = "Y"; newcur = 3 + QtdY + this._LogicFirstPos; } else if (curpos >= 2+ QtdY && curpos <= 4+QtdY) { type = "M"; newcur = 6 + QtdY + this._LogicFirstPos; } else { type = "D"; newcur = this._LogicFirstPos; } } else if (this.get_CultureDateFormat() == "YDM") { if (curpos <= 1+QtdY) { type = "Y"; newcur = 3 + QtdY + this._LogicFirstPos; } else if (curpos >= 2+ QtdY && curpos <= 4+QtdY) { type = "D"; newcur = 6 + QtdY + this._LogicFirstPos; } else { type = "M"; newcur = this._LogicFirstPos; } } var elem = this._GetDateElementText(type); m_arrDate[this.get_CultureDateFormat().indexOf(type)] = elem; var value = m_arrDate[0] + this.get_CultureDatePlaceholder() + m_arrDate[1] + this._CultureDatePlaceholder + m_arrDate[2]; if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { var aux = wrapper.get_Value().substring(this._LogicFirstPos,this._LogicLastPos+1); var arr = this._SplitDateTime(aux); var time_arr = arr[1].split(" "); if (time_arr.length == 2) { value += " " + time_arr[0] + " " + time_arr[1]; } else { value += " " + arr[1]; } } this.loadMaskValue(value,this._LogicFirstPos,this._LogicSymbol); this.setSelectionRange(newcur,newcur); } , _GetDateElementText : function(Type) { var aux; var m_arrDate; if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { var auxdate = this._SplitDateTime(this._LogicTextMask.substring(this._LogicFirstPos, this._LogicLastPos + 1))[0]; m_arrDate = auxdate.split(this.get_CultureDatePlaceholder()); } else { m_arrDate = this._LogicTextMask.substring(this._LogicFirstPos,this._LogicLastPos+1).split(this.get_CultureDatePlaceholder()); } m_arrDate[this.get_CultureDateFormat().indexOf("D")] = m_arrDate[this.get_CultureDateFormat().indexOf("D")].replace(new RegExp("(\\" + this._LogicPrompt + ")", "g"), this._PromptChar) + ''; aux = m_arrDate[this.get_CultureDateFormat().indexOf("D")].replace(new RegExp("(\\" + this._PromptChar + ")", "g"), "") + ''; if (aux !="" && aux.length < 2) { aux = "0" + aux; m_arrDate[this.get_CultureDateFormat().indexOf("D")] = aux } m_arrDate[this.get_CultureDateFormat().indexOf("M")] = m_arrDate[this.get_CultureDateFormat().indexOf("M")].replace(new RegExp("(\\" + this._LogicPrompt + ")", "g"), this._PromptChar) + ''; aux = m_arrDate[this.get_CultureDateFormat().indexOf("M")].replace(new RegExp("(\\" + this._PromptChar + ")", "g"), "") + ''; if (aux !="" && aux.length < 2) { aux = "0" + aux; m_arrDate[this.get_CultureDateFormat().indexOf("M")] = aux; } var Y4 = (this._maskvalid.indexOf("9999") != -1)?true:false; m_arrDate[this.get_CultureDateFormat().indexOf("Y")] = m_arrDate[this.get_CultureDateFormat().indexOf("Y")].replace(new RegExp("(\\" + this._LogicPrompt + ")", "g"), this._PromptChar) + ''; aux = m_arrDate[this.get_CultureDateFormat().indexOf("Y")].replace(new RegExp("(\\" + this._PromptChar + ")", "g"), "") + ''; if (Y4) { if (aux !="" && aux.length < 4) { while (aux.length < 4) { aux = "0" + aux; } m_arrDate[this.get_CultureDateFormat().indexOf("Y")] = aux; } } else { if (aux !="" && aux.length < 2) { aux = "0" + aux; m_arrDate[this.get_CultureDateFormat().indexOf("Y")] = aux; } } return m_arrDate[this.get_CultureDateFormat().indexOf(Type)]; } , _GetBoundSelection : function() { var ret = null; var input = this.get_element(); if (input.setSelectionRange) { if (input.selectionStart != input.selectionEnd) { ret = {left: parseInt(input.selectionStart,10),right: parseInt(input.selectionEnd,10)}; } } else if (document.selection) { var sel = document.selection.createRange(); if (sel.text != "") { var tam = parseInt(sel.text.length,10); sel.text = String.fromCharCode(3) + sel.text; var dummy = input.createTextRange(); dummy.findText(String.fromCharCode(3)); dummy.select(); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(input); var pos = parseInt(wrapper.get_Value().indexOf(String.fromCharCode(3)),10); document.selection.clear(); ret = {left: pos,right: pos+tam}; } } return ret; } , _deleteTextSelection : function() { var input = this.get_element(); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(input); var masktext = wrapper.get_Value(); var lenaux = -1; var begin = -1; var isDel = false; if (input.setSelectionRange) { if (input.selectionStart != input.selectionEnd) { var ini = parseInt(input.selectionStart,10); var fim = parseInt(input.selectionEnd,10); isDel = true; lenaux = fim - ini; begin=input.selectionStart; input.selectionEnd = input.selectionStart; } } else if (document.selection) { var sel = document.selection.createRange(); if (sel.text != "") { isDel = true; var aux = sel.text + String.fromCharCode(3); sel.text = aux; var dummy = input.createTextRange(); dummy.findText(aux); dummy.select(); begin = wrapper.get_Value().indexOf(aux); document.selection.clear(); lenaux = parseInt(aux.length,10)-1; } } if (isDel) { for (var i = 0 ; i < lenaux ; i++) { if (this._isValidMaskedEditPosition(begin+i)) { masktext = masktext.substring(0,begin+i) + this._PromptChar + masktext.substring(begin+i+1); this._LogicTextMask = this._LogicTextMask.substring(0,begin+i) + this._LogicPrompt + this._LogicTextMask.substring(begin+i+1); } } wrapper.set_Value(masktext); if (this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { begin += lenaux; } } this._DirectSelText = ""; return begin; } , _isNormalChar : function(evt,scanCode) { /// /// Returns true if the specified charCode is a key rather than a normal (displayable) character or Enter Key /// /// /// name="scanCode" type="integer" : keycode /// /// var ret = true; if (Sys.Browser.agent == Sys.Browser.Opera && evt.type == "keydown") { this._SaveKeyDown = scanCode; } if (scanCode < 32) { // < space ret = false; } else if (Sys.Browser.agent != Sys.Browser.InternetExplorer || evt.type == "keydown") { switch (scanCode) { case 33: //pg up or ! if (typeof(evt.rawEvent.which) != "undefined" && evt.rawEvent.which !=null) { if (evt.rawEvent.which == 0) { ret = false; } } break; case 34: //pg down or " if (typeof(evt.rawEvent.which) != "undefined" && evt.rawEvent.which !=null) { if (evt.rawEvent.which == 0) { ret = false; } } break; case 35: //end if (Sys.Browser.agent == Sys.Browser.Opera && evt.type == "keypress") { if (this._SaveKeyDown == 35) { ret = false; } } else { ret = false; } break; case 36: //home if (Sys.Browser.agent == Sys.Browser.Opera && evt.type == "keypress") { if (this._SaveKeyDown == 36) { ret = false; } } else { ret = false; } break; case 37: //left or % if (typeof(evt.rawEvent.which) != "undefined" && evt.rawEvent.which !=null) { if (evt.rawEvent.which == 0) { ret = false; } } break; case 38: //up or & if (typeof(evt.rawEvent.which) != "undefined" && evt.rawEvent.which !=null) { if (evt.rawEvent.which == 0) { ret = false; } } break; case 39: //right or ' if (typeof(evt.rawEvent.which) != "undefined" && evt.rawEvent.which !=null) { if (evt.rawEvent.which == 0) { ret = false; } } break; case 40: //down or ( if (typeof(evt.rawEvent.which) != "undefined" && evt.rawEvent.which !=null) { if (evt.rawEvent.which == 0) { ret = false; } } break; case 45: //ins - at opera Inconsistency with - if (typeof(evt.rawEvent.which) != "undefined" && evt.rawEvent.which !=null && Sys.Browser.agent != Sys.Browser.Opera) { if (evt.rawEvent.which == 0) { ret = false; } } else if (Sys.Browser.agent == Sys.Browser.Opera) { ret = true; } else { ret = false; } break; case 86: // V case 118: // v if (!evt.rawEvent.shiftKey && evt.rawEvent.ctrlKey && !evt.rawEvent.altKey) { ret = false; } break; case 46: //del FF ~ Mozilla - at opera Inconsistency with . if (typeof(evt.rawEvent.which) != "undefined" && evt.rawEvent.which !=null && Sys.Browser.agent != Sys.Browser.Opera) { if (evt.rawEvent.which == 0) { ret = false; } } else if (Sys.Browser.agent == Sys.Browser.Opera && evt.type == "keypress") { if (this._SaveKeyDown == 127) { ret = false; } } else { ret = false; } break; case 127: //del IE - at opera Inconsistency with . ret = false; break; } } return ret; } , _KeyCode : function(evt) { /// /// Get Keycode for any browser /// and convert keycode Safari to IE Code /// /// /// Event info name="evt" type="Sys.UI.DomEvent" /// /// /// Keycode value /// var scanCode = 0; if (evt.keyIdentifier) { if (evt.charCode == 63272) { //63272: 'KEY_DELETE', 46 scanCode = 46; } else if (evt.charCode == 63302) { //63302: 'KEY_INSERT', 45 scanCode = 45; } else if (evt.charCode == 63233) { //63233: 'KEY_ARROW_DOWN',40 scanCode = 40; } else if (evt.charCode == 63235) { //63235: 'KEY_ARROW_RIGHT', 39 scanCode = 39; } else if (evt.charCode == 63232) { //63232: 'KEY_ARROW_UP', 38 scanCode = 38; } else if (evt.charCode == 63234) { //63234: 'KEY_ARROW_LEFT', 37 scanCode = 37; } else if (evt.charCode == 63273) { //63273: 'KEY_HOME', 36 scanCode = 36; } else if (evt.charCode == 63275) { //63275: 'KEY_END', 35 scanCode = 35; } else if (evt.charCode == 63277) { //63277: 'KEY_PAGE_DOWN', 34 scanCode = 34; } else if (evt.charCode == 63276) { //63276: 'KEY_PAGE_UP', 33 scanCode = 33; } else if (evt.charCode == 3) { //3: 'KEY_ENTER', 13 scanCode = 13; } } if (scanCode == 0) { if (evt.charCode) { scanCode = evt.charCode; } } if (scanCode == 0) { scanCode = evt.keyCode; } return scanCode; } , _InitValue : function(value,loadFirst) { this._LogicSymbol = ""; var e = this.get_element(); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(e); wrapper.set_Value(this._EmptyMask); if (value == this._EmptyMask || value == "") { this.loadValue("",this._LogicFirstPos); } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Date && value != "") { value = this.ConvFmtDate(value,loadFirst); } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Time && value != "") { value = this.ConvFmtTime(value,loadFirst); } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime && value != "") { value = this.ConvFmtDateTime(value,loadFirst); } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && value != "") { value = this.ConvFmtNumber(value,loadFirst); } if (this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.LeftToRight && value != "") { if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number) { this._InputDirection = Sys.Extended.UI.MaskedEditInputDirections.RightToLeft; this.loadValue(value,this._LogicLastPos); this._InputDirection = Sys.Extended.UI.MaskedEditInputDirections.LeftToRight; } else { this.loadValue(value,this._LogicFirstPos); } } else if (this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft && value != "") { this.loadValue(value,this._LogicLastPos); } if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number) { if (this._InLostfocus && this._LogicSymbol == "-" && this._OnBlurCssNegative != "") { this.AddCssClassMaskedEdit(this._OnBlurCssNegative); } } } , loadMaskValue : function(value,logicPosition, Symb) { this._createMask(); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); wrapper.set_Value(this._EmptyMask); if ( (this._MaskType == Sys.Extended.UI.MaskedEditType.Time || this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) && this.get_CultureFirstLettersAMPM().toUpperCase().indexOf(Symb.toUpperCase().substring(0,1)) != -1) { if (this._AcceptAmPm) { this.InsertAMPM(Symb.toUpperCase().substring(0,1)); } } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._AcceptNegative != Sys.Extended.UI.MaskedEditShowSymbol.None && "+-".indexOf(Symb) != -1) { this.InsertSignal(Symb); } var i = 0; for (i = 0 ; i < parseInt(value.length,10) ; i++) { var c = value.substring(i+logicPosition,i+logicPosition+1); if (this._processKey(logicPosition+i,c)) { this._insertContent(c,logicPosition+i); } } } , loadValue : function(value,logicPosition) { var i; this._createMask(); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); wrapper.set_Value(this._EmptyMask); if (this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.LeftToRight) { for (i = 0 ; i < parseInt(value.length,10) ; i++) { var c = value.substring(i,i+1); if ( (this._MaskType == Sys.Extended.UI.MaskedEditType.Time || this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) && this.get_CultureFirstLettersAMPM().toUpperCase().indexOf(c.toUpperCase()) != -1) { if (this._AcceptAmPm) { this.InsertAMPM(c); } } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._AcceptNegative != Sys.Extended.UI.MaskedEditShowSymbol.None && "+-".indexOf(c) != -1) { this.InsertSignal(c); } if (this._processKey(logicPosition,c)) { this._insertContent(c,logicPosition); logicPosition = this._getNextPosition(logicPosition+1); } } } else if (this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { if (logicPosition == this._LogicLastInt) { logicPosition = this._getPreviousPosition(logicPosition); var arr_num = value.split(this.get_CultureDecimalPlaceholder()) for (i = parseInt(arr_num[0].length,10) ; i > 0 ; i--) { var c = arr_num[0].substring(i-1,i); if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._AcceptNegative != Sys.Extended.UI.MaskedEditShowSymbol.None && "+-".indexOf(c) != -1) { this.InsertSignal(c); } if (this._processKey(logicPosition,c)) { this._insertContent(c,logicPosition); logicPosition = this._getPreviousPosition(logicPosition-1); } } if (arr_num.length > 1) { logicPosition = this._getNextPosition(this._LogicLastInt); for (i = 0 ; i < parseInt(arr_num[1].length,10) ; i++) { var c = arr_num[1].substring(i,i+1); if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._AcceptNegative != Sys.Extended.UI.MaskedEditShowSymbol.None && "+-".indexOf(c) != -1) { this.InsertSignal(c); } if (this._processKey(logicPosition,c)) { this._insertContent(c,logicPosition); logicPosition = this._getNextPosition(logicPosition+1); } } } } else { for (i = parseInt(value.length,10) ; i > 0 ; i--) { var c = value.substring(i-1,i); if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._AcceptNegative != Sys.Extended.UI.MaskedEditShowSymbol.None && "+-".indexOf(c) != -1) { this.InsertSignal(c); } if (this._processKey(logicPosition,c)) { this._insertContent(c,logicPosition); logicPosition = this._getPreviousPosition(logicPosition-1); } } } } } , AutoFormatNumber : function() { var i; var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); ValueText = wrapper.get_Value(); var AutoComp = this._AutoCompleteValue; var okdgt = false; for (i = this._LogicFirstPos ; i <= this._LogicLastPos ; i++) { if (this._LogicTextMask.substring(i,i+1) == this._LogicPrompt) { var CharComp = "0"; if (AutoComp != "") { CharComp = AutoComp.substring(i-this._LogicFirstPos,i+1-this._LogicFirstPos); } if (okdgt) { this._LogicTextMask = this._LogicTextMask.substring(0,i) + CharComp + this._LogicTextMask.substring(i+1); ValueText = ValueText.substring(0,i) + CharComp + ValueText.substring(i+1); } } else if (this._LogicMask.substring(i,i+1) == this._LogicPrompt && "123456789".indexOf(this._LogicTextMask.substring(i,i+1)) != -1) { okdgt = true; } } wrapper.set_Value(ValueText); return ValueText; } , AutoFormatTime : function() { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); ValueText = wrapper.get_Value(); var autocomp = this._AutoCompleteValue; if (autocomp.indexOf(this.get_CultureTimePlaceholder()) == -1) { autocomp = ""; } if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { var arr = this._SplitDateTime(ValueText); var time_arr = arr[1].split(" "); if (time_arr.length == 2) { ValueText = time_arr[0] + " " + time_arr[1]; } else { ValueText = arr[0]; } if (autocomp != "") { if (autocomp.indexOf(this.get_CultureDatePlaceholder()) == -1) { autocomp = " " + autocomp; } var autocomp_arr = this._SplitDateTime(autocomp); var autocomptime_arr = autocomp_arr[1].split(" "); if (autocomptime_arr.length == 2) { autocomp = autocomptime_arr[0] + " " + autocomptime_arr[1]; } else { autocomp = autocomp_arr[0]; } } } var CurDate = new Date(); var Hcur = CurDate.getHours().toString(); if (Hcur.length < 2) { Hcur = "0" + Hcur; } if (autocomp != "") { Hcur = autocomp.substring(0,2); } var SetAM = false; var SetPM = false; var LcAM = ""; var LcPM = ""; var Symb = ""; if (this.get_CultureAMPMPlaceholder() != "") { var m_arrtm = this.get_CultureAMPMPlaceholder().split(this._AMPMPlaceholderSeparator); LcAM = m_arrtm[0]; LcPM = m_arrtm[1]; if (autocomp == "") { var Symb = LcAM; if (Hcur > 12) { Hcur = (parseInt(Hcur,10) - 12).toString(); if (Hcur.length < 2) { Hcur = "0" + Hcur; } Symb = LcPM; } } else { Symb = LcAM; // default if (autocomp.indexOf(LcPM) != -1) { Symb = LcPM; } } SetAM = true; // default if (ValueText.indexOf(LcPM) != -1 && LcPM != "") { SetPM = true; } if (!this._AcceptAmPm) { Symb = ""; SetPM = false; SetAM = false; } else { var emp = true; if (ValueText.substring(0,1) != this._PromptChar || ValueText.substring(1,2) != this._PromptChar) { emp = false; } if (emp && Symb != "") { SetAM = true; // default; SetPM = false; if (LcPM == Symb) { SetPM = true; } } } } var Mcur = CurDate.getMinutes().toString(); if (Mcur.length < 2) { Mcur = "0" + Mcur; } if (autocomp != "" ) { Mcur = autocomp.substring(3,5); } var Scur = "00"; var PH,PM; if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { PH = ValueText.substring(0,2); PH = this._AdjustTime(PH,Hcur); PM = ValueText.substring(3,5); PM = this._AdjustTime(PM,Mcur); } else { PH = ValueText.substring(this._LogicFirstPos,this._LogicFirstPos+2); PH = this._AdjustTime(PH,Hcur); PM = ValueText.substring(this._LogicFirstPos+3,this._LogicFirstPos+5); PM = this._AdjustTime(PM,Mcur); } var maskvld = this._maskvalid; if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { maskvld = maskvld.split(" ")[1]; } if (maskvld == "99:99:99") { if (autocomp != "" ) { Scur = autocomp.substring(6); } var PS; if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { PS = ValueText.substring(6,8); PS = this._AdjustTime(PS,Scur); } else { PS = ValueText.substring(this._LogicFirstPos+6,this._LogicFirstPos+8); PS = this._AdjustTime(PS,Scur); } ValueText = PH + this.get_CultureTimePlaceholder() + PM + this.get_CultureTimePlaceholder() + PS; } else { ValueText = PH + this.get_CultureTimePlaceholder() + PM; } if (SetPM) { ValueText += " " + LcPM; } else if (SetAM) { ValueText += " " + LcAM; } if (this._MaskType != Sys.Extended.UI.MaskedEditType.DateTime) { this.loadValue(ValueText,this._LogicFirstPos); } return ValueText; } , AutoFormatDateTime : function() { var PartDt = this.AutoFormatDate(); var PartTm = this.AutoFormatTime(); this.loadValue(PartDt + " " + PartTm,this._LogicFirstPos); return PartDt + " " + PartTm; } , AutoFormatDate : function() { var D = this._GetDateElementText("D").replace(new RegExp("(\\" + this._PromptChar + ")", "g"), "") + ''; var M = this._GetDateElementText("M").replace(new RegExp("(\\" + this._PromptChar + ")", "g"), "") + ''; var Y = this._GetDateElementText("Y").replace(new RegExp("(\\" + this._PromptChar + ")", "g"), "") + ''; var Y4 = (this._maskvalid.indexOf("9999") != -1)?true:false; var autocomp = this._AutoCompleteValue; if (autocomp.indexOf(this.get_CultureDatePlaceholder()) == -1) { autocomp = ""; } var Dcur,Mcur,Ycur; if (autocomp == "") { var CurDate = new Date(); Dcur = (CurDate.getUTCDate()).toString(); if (Dcur.length < 2) { Dcur = "0" + Dcur; } Mcur = (CurDate.getUTCMonth()+1).toString(); if (Mcur.length < 2) { Mcur = "0" + Mcur; } if (Y4) { Ycur = CurDate.getUTCFullYear().toString(); } else { Ycur = Ycur.substring(2); } } else { var m_arrDate; if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { if (autocomp.indexOf(this.get_CultureTimePlaceholder()) == -1) { autocomp = autocomp + " "; } var partdt = this._SplitDateTime(autocomp)[0]; m_arrDate = partdt.split(this.get_CultureDatePlaceholder()); } else { m_arrDate = autocomp.split(this.get_CultureDatePlaceholder()); } if (this.get_CultureDateFormat() == "DMY") { Dcur = m_arrDate[0]; Mcur = m_arrDate[1]; Ycur = m_arrDate[2]; } else if (this.get_CultureDateFormat() == "MDY") { Dcur = m_arrDate[1]; Mcur = m_arrDate[0]; Ycur = m_arrDate[2]; } else if (this.get_CultureDateFormat() == "DYM") { Dcur = m_arrDate[0]; Mcur = m_arrDate[2]; Ycur = m_arrDate[1]; } else if (this.get_CultureDateFormat() == "MYD") { Dcur = m_arrDate[2]; Mcur = m_arrDate[0]; Ycur = m_arrDate[1]; } else if (this.get_CultureDateFormat() == "YMD") { Dcur = m_arrDate[2]; Mcur = m_arrDate[1]; Ycur = m_arrDate[0]; } else if (this.get_CultureDateFormat() == "YDM") { Dcur = m_arrDate[1]; Mcur = m_arrDate[2]; Ycur = m_arrDate[0]; } if (Dcur.length < 2) { Dcur = "0" + Dcur; } if (Mcur.length < 2) { Mcur = "0" + Mcur; } if (Y4) { while (Ycur.length < 4) { Ycur = "0" + Ycur; } } else { while (Ycur.length < 2) { Ycur = "0" + Ycur; } } } if (D == "") { D = Dcur; } if (M== "") { M = Mcur; } if (Y == "") { Y = Ycur; } var value; if (this.get_CultureDateFormat() == "DMY") { value = D + this.get_CultureDatePlaceholder() + M + this._CultureDatePlaceholder + Y; } else if (this.get_CultureDateFormat() == "MDY") { value = M + this.get_CultureDatePlaceholder() + D + this._CultureDatePlaceholder + Y; } else if (this.get_CultureDateFormat() == "DYM") { value = D + this.get_CultureDatePlaceholder() + Y + this._CultureDatePlaceholder + M; } else if (this.get_CultureDateFormat() == "MYD") { value = M + this.get_CultureDatePlaceholder() + Y + this._CultureDatePlaceholder + D; } else if (this.get_CultureDateFormat() == "YMD") { value = Y + this.get_CultureDatePlaceholder() + M + this._CultureDatePlaceholder + D; } else if (this.get_CultureDateFormat() == "YDM") { value = Y + this.get_CultureDatePlaceholder() + D + this._CultureDatePlaceholder + M; } if (this._MaskType != Sys.Extended.UI.MaskedEditType.DateTime) { this.loadValue(value,this._LogicFirstPos); } return value; } , ConvFmtNumber : function(input,loadFirst) { if (this._maskvalid.split(this.get_CultureDecimalPlaceholder()).length == 2) { if (input.substring(input.length-1,input.length) == this.get_CultureDecimalPlaceholder()) { input = input.substring(0,input.length-1); } } return input; } , ConvFmtTime : function(input,loadFirst) { var AddH = 0; var SetAM = false; var SetPM = false; var LcAM = ""; var LcPM = ""; if (this.get_CultureAMPMPlaceholder() != "") { LcAM = this.get_CultureAMPMPlaceholder().split(this._AMPMPlaceholderSeparator)[0]; LcPM = this.get_CultureAMPMPlaceholder().split(this._AMPMPlaceholderSeparator)[1]; } if (loadFirst) { var LDLcAM = ""; var LDLcPM = ""; if (this._CultureAMPMPlaceholder != "") { LDLcAM = this._CultureAMPMPlaceholder.split(this._AMPMPlaceholderSeparator)[0]; LDLcPM = this._CultureAMPMPlaceholder.split(this._AMPMPlaceholderSeparator)[1]; } if (this.get_UserTimeFormat() == Sys.Extended.UI.MaskedEditUserTimeFormat.TwentyFourHour) { input = input.replace(new RegExp("(\\" + LDLcAM + ")", "g"),""); if (input.indexOf(LDLcPM) != -1) { AddH = 12; } input = input.replace(new RegExp("(\\" + LDLcPM + ")", "g"),""); } } if (input.indexOf(LcAM) != -1 && LcAM != "") { SetAM = true; } else if (input.indexOf(LcPM) != -1 && LcPM != "") { SetPM = true; } if (LcAM != "") { input = input.replace(new RegExp("(\\" + LcAM + ")", "g"), ""); } if (LcPM != "") { input = input.replace(new RegExp("(\\" + LcPM + ")", "g"), ""); } input = input.replace(new RegExp("(\\" + " " + ")", "g"), ""); var m_arrTime = input.split(this.get_CultureTimePlaceholder()); var m_mask = this._maskvalid; if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { m_mask = m_mask.split(" ")[1]; } m_mask = m_mask.split(":"); if (parseInt(m_arrTime.length,10) < 2 || parseInt(m_arrTime.length,10) > 3) { return ""; } var H = parseInt(m_arrTime[0],10) + AddH; H = H.toString(); if (H.length < m_mask[0].length) { while (H.length < m_mask[0].length) { H = "0" + H; } } m_arrTime[0] = H; var M = parseInt(m_arrTime[1],10) + ''; if (M.length < m_mask[1].length) { while (M.length < m_mask[1].length) { M = "0" + M; } } m_arrTime[1] = M; var value = ""; if (parseInt(m_arrTime.length,10) == 3) { var S = parseInt(m_arrTime[2],10) + ''; if (S.length < m_mask[2].length) { while (S.length < m_mask[2].length) { S = "0" + S; } } m_arrTime[2] = S; value = m_arrTime[0] + this.get_CultureTimePlaceholder() + m_arrTime[1] + this.get_CultureTimePlaceholder() + m_arrTime[2]; } else { value = m_arrTime[0] + this.get_CultureTimePlaceholder() + m_arrTime[1]; } if (SetAM) { value += " " + LcAM; } else if (SetPM) { value += " " + LcPM; } return value; } , ConvFmtDateTime : function(input,loadFirst) { var arr = this._SplitDateTime(input); var partdt = arr[0]; var parttm = arr[1]; if (parttm.split(" ").length == 2) { parttm += " " + parttm.split(" ")[1]; } partdt = this.ConvFmtDate(partdt,loadFirst); parttm = this.ConvFmtTime(parttm,loadFirst); return partdt + " " + parttm; } , ConvFmtDate : function(input,loadFirst) { var m_arrDateLD; var m_arrDate; if (loadFirst) { m_arrDateLD = input.split(this.get_CultureDatePlaceholder()); m_arrDate = input.split(this.get_CultureDatePlaceholder()); if (this.get_UserDateFormat() != Sys.Extended.UI.MaskedEditUserDateFormat.None) { m_arrDate[this.get_CultureDateFormat().indexOf("D")] = m_arrDateLD[this._CultureDateFormat.indexOf("D")]; m_arrDate[this.get_CultureDateFormat().indexOf("M")] = m_arrDateLD[this._CultureDateFormat.indexOf("M")]; m_arrDate[this.get_CultureDateFormat().indexOf("Y")] = m_arrDateLD[this._CultureDateFormat.indexOf("Y")]; } } else { m_arrDate = input.split(this.get_CultureDatePlaceholder()); } var m_mask = this._maskvalid; if (this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { m_mask = m_mask.split(" ")[0]; } m_mask = m_mask.split("/"); if (parseInt(m_arrDate.length,10) != 3) { return ""; } var D = parseInt(m_arrDate[this.get_CultureDateFormat().indexOf("D")],10) + ''; if (D.length < m_mask[this.get_CultureDateFormat().indexOf("D")].length) { while (D.length < m_mask[this.get_CultureDateFormat().indexOf("D")].length) { D = "0" + D; } } m_arrDate[this.get_CultureDateFormat().indexOf("D")] = D; var M = parseInt(m_arrDate[this.get_CultureDateFormat().indexOf("M")],10) + '' ; if (M.length < m_mask[this.get_CultureDateFormat().indexOf("M")].length) { while (M.length < m_mask[this.get_CultureDateFormat().indexOf("M")].length) { M = "0" + M; } } m_arrDate[this.get_CultureDateFormat().indexOf("M")] = M; var Y = parseInt(m_arrDate[this.get_CultureDateFormat().indexOf("Y")],10) + ''; while (Y.length < m_mask[this.get_CultureDateFormat().indexOf("Y")].length) { Y = "0" + Y; } m_arrDate[this.get_CultureDateFormat().indexOf("Y")] = Y; return m_arrDate[0] + this.get_CultureDatePlaceholder() + m_arrDate[1] + this._CultureDatePlaceholder + m_arrDate[2]; } , AddCssClassMaskedEdit : function(CssClass) { var e = this.get_element(); Sys.UI.DomElement.removeCssClass(e,this._OnBlurCssNegative); Sys.UI.DomElement.removeCssClass(e,this._OnFocusCssClass); Sys.UI.DomElement.removeCssClass(e,this._OnFocusCssNegative); Sys.UI.DomElement.removeCssClass(e,this._OnInvalidCssClass); if (CssClass != "") { Sys.UI.DomElement.addCssClass(e,CssClass); } } , _SetCancelEvent : function(evt) { /// /// Cancel Event for any browser /// /// /// Event info /// if (typeof(evt.returnValue) !== "undefined") { evt.returnValue = false; } if (typeof(evt.cancelBubble) !== "undefined") { evt.cancelBubble = true; } if (typeof(evt.preventDefault) !== "undefined") { evt.preventDefault(); } if (typeof(evt.stopPropagation) !== "undefined") { evt.stopPropagation(); } } ,_CaptureServerValidators : function() { var ret = true; var msg = this._ExternalMessageError; if (typeof(Page_Validators) != "undefined") { var ctrval = null; var first = true; for (var i = 0; i < Page_Validators.length; i++) { ctrval = Page_Validators[i]; if (typeof(ctrval.enabled) == "undefined" || ctrval.enabled != false) { if (ctrval.TargetValidator == this.get_element().id) { if (!ctrval.isvalid) { if (first) { first = false; msg = ""; } if (typeof(ctrval.errormessage) == "string") { if (msg != "") { msg += ", "; } msg += ctrval.errormessage; } ret = false; } } } } } this._ExternalMessageError = msg; return ret; } ,_CaptureClientsValidators : function() { var ret = true; var msg = ""; this._ExternalMessageError = msg; if (typeof(Page_Validators) != "undefined") { var ctrval = null; for (var i = 0; i < Page_Validators.length; i++) { ctrval = Page_Validators[i]; if (typeof(ctrval.enabled) == "undefined" || ctrval.enabled != false) { if (ctrval.TargetValidator == this.get_element().id) { if (typeof(ctrval.evaluationfunction) == "function") { var crtret = ctrval.evaluationfunction(ctrval); if (!crtret) { ret = false; if (typeof(ctrval.errormessage) == "string") { if (msg != "") { msg += ", "; } msg += ctrval.errormessage; } } } else if(typeof(ctrval.evaluationfunction) == "string") { var crtret; eval("crtret = " + ctrval.evaluationfunction + "(" + ctrval.id + ")"); if (!crtret) { ret = false; if (typeof(ctrval.errormessage) == "string") { if (msg != "") { msg += ", "; } msg += ctrval.errormessage; } } } } } } } this._ExternalMessageError = msg; return ret; } ,ShowTooltipMessage : function(Visible) { if (typeof(Page_Validators) == "undefined") { return; } var msg = ""; if (!Visible) { msg = this._CurrentMessageError; this._CurrentMessageError = ""; } var i = 0 var ctrval = null; for (i = 0; i < Page_Validators.length; i++) { ctrval = Page_Validators[i]; if (ctrval.TargetValidator == this.get_element().id && ctrval.IsMaskedEdit == "true") { if (!Visible) { ctrval.innerHTML = msg; if (typeof(ctrval.display) == "string") { if (ctrval.display == "None") { return; } if (ctrval.display == "Dynamic") { ctrval.style.display = ctrval.isvalid ? "none" : "inline"; return; } } return; } this._CurrentMessageError = ctrval.innerHTML; ctrval.innerHTML = ctrval.TooltipMessage; if (typeof(ctrval.display) == "string") { if (ctrval.display == "None") { return; } if (ctrval.display == "Dynamic") { ctrval.style.display = "inline"; return; } } ctrval.style.visibility = "visible"; return; } } } , _insertContent : function(value,curpos) { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); var masktext = wrapper.get_Value(); masktext = masktext.substring(0,curpos) + value + masktext.substring(curpos+1); this._LogicTextMask = this._LogicTextMask.substring(0,curpos) + value + this._LogicTextMask.substring(curpos+1); wrapper.set_Value(masktext); } , _insertContentRight : function(value) { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); var masktext = wrapper.get_Value(); var curpos = this._getLastEmptyPosition(); if (curpos < 0) { return; } var i; var resttext = masktext.substring(curpos+1); var restlogi = this._LogicTextMask.substring(curpos+1); masktext = masktext.substring(0,curpos) + this._PromptChar; this._LogicTextMask = this._LogicTextMask.substring(0,curpos) + this._LogicPrompt; var posaux; if (this._LogicLastInt != -1 && this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { var arr_num = resttext.split(this.get_CultureDecimalPlaceholder()); var arr_log = restlogi.split(this.get_CultureDecimalPlaceholder()); for (i = 0 ; i < parseInt(arr_num[0].length,10) ; i++) { if (this._isValidMaskedEditPosition(curpos+1+i)) { masktext += this._PromptChar; this._LogicTextMask += this._LogicPrompt; } else { masktext += arr_num[0].substring(i,i+1); this._LogicTextMask += arr_log[0].substring(i,i+1); } } if (arr_num.length = 2) { masktext += this.get_CultureDecimalPlaceholder() + arr_num[1]; this._LogicTextMask += this.get_CultureDecimalPlaceholder() + arr_log[1]; } posaux = this._getNextPosition(curpos); for (i = 0 ; i < parseInt(arr_num[0].length,10); i++) { if (this._isValidMaskedEditPosition(curpos+1+i) && arr_log[0].substring(i,i+1) != this._LogicPrompt) { masktext = masktext.substring(0,posaux) + arr_num[0].substring(i,i+1) + masktext.substring(posaux+1); this._LogicTextMask = this._LogicTextMask.substring(0,posaux) + arr_log[0].substring(i,i+1) + this._LogicTextMask.substring(posaux+1); posaux = this._getNextPosition(posaux+1); } } } else { for (i = 0 ; i < parseInt(resttext.length,10) ; i++) { if (this._isValidMaskedEditPosition(curpos+1+i)) { masktext += this._PromptChar; this._LogicTextMask += this._LogicPrompt; } else { masktext += resttext.substring(i,i+1); this._LogicTextMask += restlogi.substring(i,i+1); } } posaux = this._getNextPosition(curpos); for (i = 0 ; i < parseInt(resttext.length,10); i++) { if (this._isValidMaskedEditPosition(curpos+1+i) && restlogi.substring(i,i+1) != this._LogicPrompt) { masktext = masktext.substring(0,posaux) + resttext.substring(i,i+1) + masktext.substring(posaux+1); this._LogicTextMask = this._LogicTextMask.substring(0,posaux) + restlogi.substring(i,i+1) + this._LogicTextMask.substring(posaux+1); posaux = this._getNextPosition(posaux+1); } } } var dif = 0; if (this._LogicLastInt != -1 && this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { dif = this._LogicLastPos - this._LogicLastInt+1; } masktext = masktext.substring(0,this._LogicLastPos-dif) + value + masktext.substring(this._LogicLastPos-dif+1); this._LogicTextMask = this._LogicTextMask.substring(0,this._LogicLastPos-dif) + value + this._LogicTextMask.substring(this._LogicLastPos-dif+1); wrapper.set_Value(masktext); } , InsertAMPM : function(value) { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); var masktext = wrapper.get_Value(); var ASymMask = this.get_CultureAMPMPlaceholder().split(this._AMPMPlaceholderSeparator); var symb = ""; if (ASymMask.length == 2) { if (value.toUpperCase() == this.get_CultureFirstLetterAM().toUpperCase()) { symb = ASymMask[0]; } else if (value.toUpperCase() == this.get_CultureFirstLetterPM().toUpperCase()) { symb = ASymMask[1]; } this._LogicSymbol = symb; } masktext = masktext.substring(0,this._LogicLastPos+2) + symb + masktext.substring(this._LogicLastPos+2+symb.length); wrapper.set_Value(masktext); } , InsertSignal : function(value) { var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(this.get_element()); var masktext = wrapper.get_Value(); if (value == "-" && this._LogicSymbol == "-") { value = "+"; } if (value == "+") { value = " "; this._LogicSymbol = ""; if (!this._InLostfocus && this._OnFocusCssClass != "") { this.AddCssClassMaskedEdit(this._OnFocusCssClass); } else if (!this._InLostfocus) { this.AddCssClassMaskedEdit(""); } } else { this._LogicSymbol = "-"; if (!this._InLostfocus && this._OnFocusCssNegative != "") { this.AddCssClassMaskedEdit(this._OnFocusCssNegative); } } if (this._AcceptNegative == Sys.Extended.UI.MaskedEditShowSymbol.Left) { masktext = masktext.substring(0,this._LogicFirstPos-1) + value + masktext.substring(this._LogicFirstPos); } else if (this._AcceptNegative == Sys.Extended.UI.MaskedEditShowSymbol.Right) { masktext = masktext.substring(0,this._LogicLastPos+1) + value + masktext.substring(this._LogicLastPos+2); } wrapper.set_Value(masktext); } , setSelectionRange : function(selectionStart, selectionEnd) { var input = this.get_element(); if (input.setSelectionRange) { input.setSelectionRange(selectionStart, selectionEnd); } else if (input.createTextRange) { var range = input.createTextRange(); range.collapse(true); range.moveEnd('character', selectionEnd); range.moveStart('character', selectionStart); range.select(); } } , _getLastEmptyPosition : function() { var pos = this._LogicLastPos; if (this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft && this._LogicLastInt != -1) { var curpos = this._getCurrentPosition(); if (curpos <= this._LogicLastInt) { pos = this._LogicLastInt; } } while (pos >= 0 && this._LogicTextMask.substring(pos, pos+1) != this._LogicPrompt) { pos--; } return pos; } , _isValidMaskedEditPosition : function(pos) { return (this._LogicMask.substring(pos,pos+1) == this._LogicPrompt); } , _getNextPosition : function(pos) { while (!this._isValidMaskedEditPosition(pos) && pos < this._LogicLastPos+1) { pos++; } if (pos > this._LogicLastPos+1) { pos = this._LogicLastPos+1; } return pos; } , _getPreviousPosition : function(pos) { while (!this._isValidMaskedEditPosition(pos) && pos > this._LogicFirstPos) { pos--; } if (pos < this._LogicFirstPos) { pos = this._LogicFirstPos; } return pos; } , _getCurrentPosition : function() { var begin = 0; var input = this.get_element(); if (input.setSelectionRange) { begin = parseInt(input.selectionStart,10); } else if (document.selection) { var sel = document.selection.createRange(); if (sel.text != "") { var aux = "" if (this._DirectSelText == "R") { aux = sel.text + String.fromCharCode(3); } else if (this._DirectSelText == "L") { aux = String.fromCharCode(3) + sel.text ; } sel.text = aux; this._DirectSelText == ""; } else { sel.text = String.fromCharCode(3); this._DirectSelText == ""; } var dummy = input.createTextRange(); dummy.findText(String.fromCharCode(3)); dummy.select(); var wrapper = Sys.Extended.UI.TextBoxWrapper.get_Wrapper(input); begin = wrapper.get_Value().indexOf(String.fromCharCode(3)); document.selection.clear(); } if (begin > this._LogicLastPos+1) { begin = this._LogicLastPos+1; } if (begin < this._LogicFirstPos) { begin = this._LogicFirstPos; } return begin; } , _processKey : function(poscur,key) { var posmask = this._LogicMaskConv; var filter; if (posmask.substring(poscur,poscur+1) == "9") { filter = this._charNumbers; } else if (posmask.substring(poscur,poscur+1).toUpperCase() == "L") { filter = this._charLetters + this._charLetters.toLowerCase(); } else if (posmask.substring(poscur,poscur+1) == "$") { filter = this._charLetters + this._charLetters.toLowerCase() + " "; } else if (posmask.substring(poscur,poscur+1).toUpperCase() == "C") { filter = this._Filtered; } else if (posmask.substring(poscur,poscur+1).toUpperCase() == "A") { filter = this._charLetters + this._charLetters.toLowerCase() + this._Filtered; } else if (posmask.substring(poscur,poscur+1).toUpperCase() == "N") { filter = this._charNumbers + this._Filtered; } else if (posmask.substring(poscur,poscur+1) == "?") { filter = ""; } else { return false; } if (filter == "") { return true; } return (!filter || filter.length == 0 || filter.indexOf(key) != -1); } , _createMask : function() { if (this._MaskConv == "" && this._Mask != "") { this._convertMask(); } var text = this._MaskConv; var i = 0; var masktext = ""; var maskvld = ""; var flagescape = false; this._LogicTextMask = ""; this._QtdValidInput = 0; while (i < parseInt(text.length,10)) { if (text.substring(i, i+1) == this._charEscape && flagescape == false) { flagescape = true; } else if (this._CharsEditMask.indexOf(text.substring(i, i+1)) == -1) { if (flagescape == true) { flagescape = false; masktext += text.substring(i,i+1); maskvld += text.substring(i,i+1); this._LogicTextMask += this._LogicEscape; } else { if (this._CharsSpecialMask.indexOf(text.substring(i, i+1)) != -1) { this._QtdValidInput ++; if (text.substring(i, i+1) == "/") { masktext += this.get_CultureDatePlaceholder(); maskvld += "/"; this._LogicTextMask += this.get_CultureDatePlaceholder(); } else if (text.substring(i, i+1) == ":") { masktext += this.get_CultureTimePlaceholder(); maskvld += ":"; this._LogicTextMask += this.get_CultureTimePlaceholder(); } else if (text.substring(i, i+1) == ",") { masktext += this.get_CultureThousandsPlaceholder(); maskvld += "."; this._LogicTextMask += this.get_CultureThousandsPlaceholder(); } else if (text.substring(i, i+1) == ".") { masktext += this.get_CultureDecimalPlaceholder(); maskvld += ","; this._LogicTextMask += this.get_CultureDecimalPlaceholder(); } } else { masktext += text.substring(i,i+1); maskvld += text.substring(i,i+1); this._LogicTextMask += text.substring(i,i+1); } } } else { if (flagescape == true) { flagescape = false; masktext += text.substring(i,i+1); maskvld += text.substring(i,i+1); this._LogicTextMask += this._LogicEscape; } else { this._QtdValidInput ++; masktext += this._PromptChar; maskvld += text.substring(i,i+1); this._LogicTextMask += this._LogicPrompt; } } i++; } this._LogicFirstPos = -1; this._LogicLastPos = -1; this._LogicLastInt = -1; this._LogicMask = this._LogicTextMask; for (i = 0 ; i < parseInt(this._LogicMask.length,10) ; i++) { if (this._LogicFirstPos == -1 && this._LogicMask.substring(i,i+1) == this._LogicPrompt) { this._LogicFirstPos = i; } if (this._LogicMask.substring(i, i + this.get_CultureDatePlaceholder().length) == this.get_CultureDatePlaceholder()) { continue; } else if (this._LogicMask.substring(i, i + 1) == " ") { this._LogicDateTimeSepPos = i; } if (this._LogicMask.substring(i,i+1) == this._LogicPrompt) { this._LogicLastPos = i; } if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._InputDirection == Sys.Extended.UI.MaskedEditInputDirections.RightToLeft) { if (this._LogicMask.substring(i,i+1) == this.get_CultureDecimalPlaceholder()) { this._LogicLastInt = i; } } } this._maskvalid = maskvld.substring(this._LogicFirstPos,this._LogicLastPos+1); this._EmptyMask = masktext; } , _getClearMask : function(masktext) { var i = 0; var clearmask = ""; var qtdok = 0; var includedec = false; while (i < parseInt(this._LogicTextMask.length,10)) { if (qtdok < this._QtdValidInput) { if (this._isValidMaskedEditPosition(i) && this._LogicTextMask.substring(i, i+1) != this._LogicPrompt) { if (clearmask == "" && includedec) { clearmask += "0" + this.get_CultureDecimalPlaceholder(); includedec = false; } clearmask += this._LogicTextMask.substring(i,i+1); qtdok++; } else if (this._LogicTextMask.substring(i, i+1) != this._LogicPrompt && this._LogicTextMask.substring(i, i+1) != this._LogicEscape) { if (this._LogicTextMask.substring(i, i + this.get_CultureDatePlaceholder().length) == this.get_CultureDatePlaceholder() && (this._MaskType == Sys.Extended.UI.MaskedEditType.Date || this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime)) { clearmask += (clearmask == "") ? "" : this.get_CultureDatePlaceholder(); i += (this.get_CultureDatePlaceholder().length - 1); } else if (this._LogicTextMask.substring(i,i+1) == this.get_CultureTimePlaceholder() && (this._MaskType == Sys.Extended.UI.MaskedEditType.Time || this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime)) { clearmask += (clearmask == "")?"":this.get_CultureTimePlaceholder(); } else if (this._LogicTextMask.substring(i,i+1) == " " && this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { clearmask += (clearmask == "")?"":" "; } else if (this._LogicTextMask.substring(i,i+1) == this.get_CultureThousandsPlaceholder() && this._MaskType == Sys.Extended.UI.MaskedEditType.Number) { clearmask += (clearmask == "")?"":this.get_CultureThousandsPlaceholder(); } else if (this._LogicTextMask.substring(i,i+1) == this.get_CultureDecimalPlaceholder() && this._MaskType == Sys.Extended.UI.MaskedEditType.Number) { clearmask += (clearmask == "")?"":this.get_CultureDecimalPlaceholder(); if (clearmask == "") { includedec = true; } } } } i++; } if (this._LogicSymbol != "" && clearmask != "") { if (this._MaskType == Sys.Extended.UI.MaskedEditType.Time || this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) { clearmask += " " + this._LogicSymbol; } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number) { clearmask = this._LogicSymbol + clearmask; } } return clearmask; } , _convertMask : function() { this._MaskConv = ""; var qtdmask = ""; var maskchar = ""; var i; for (i = 0 ; i < parseInt(this._Mask.length,10) ; i++) { if (this._CharsEditMask.indexOf(this._Mask.substring(i, i+1)) != -1) { if (qtdmask.length == 0) { this._MaskConv += this._Mask.substring(i, i+1); qtdmask = ""; maskchar = this._Mask.substring(i, i+1); } else if (this._Mask.substring(i, i+1) == "9") { qtdmask += "9"; } else if (this._Mask.substring(i, i+1) == "0") { qtdmask += "0"; } } else if (this._CharsEditMask.indexOf(this._Mask.substring(i, i+1)) == -1 && this._Mask.substring(i, i+1) != this._DelimitStartDup && this._Mask.substring(i, i+1) != this._DelimitEndDup) { if (qtdmask.length == 0) { this._MaskConv += this._Mask.substring(i, i+1); qtdmask = ""; maskchar = ""; } else { if (this._charNumbers.indexOf(this._Mask.substring(i, i+1)) != -1) { qtdmask += this._Mask.substring(i, i+1); } } } else if (this._Mask.substring(i, i+1) == this._DelimitStartDup && qtdmask == "") { qtdmask = "0"; } else if (this._Mask.substring(i, i+1) == this._DelimitEndDup && qtdmask != "") { var qtddup = parseInt(qtdmask,10) -1; if (qtddup > 0) { for (var q = 0 ; q < qtddup ; q++) { this._MaskConv += maskchar; } } qtdmask = ""; maskchar = ""; } } var FirstPos = -1; var LastPos = -1; var flagescape = false; for (i = 0 ; i < parseInt(this._MaskConv.length,10) ; i++) { if (this._MaskConv.substring(i, i+1) == this._charEscape && !flagescape) { flagescape = true; } else if (this._CharsEditMask.indexOf(this._MaskConv.substring(i, i+1)) != -1 && !flagescape) { if (FirstPos == -1) { FirstPos = i; } LastPos = i; } else if(flagescape) { flagescape = false; } } if ( (this._MaskType == Sys.Extended.UI.MaskedEditType.Time || this._MaskType == Sys.Extended.UI.MaskedEditType.DateTime) && this._AcceptAmPm) { var ASymMask = this.get_CultureAMPMPlaceholder().split(this._AMPMPlaceholderSeparator); var SymMask = ""; if (ASymMask.length == 2) { SymMask = this._charEscape + " "; for (i = 0 ; i < parseInt(ASymMask[0].length,10) ; i++) { SymMask += this._charEscape + " "; } } this._MaskConv = this._MaskConv.substring(0,LastPos+1) + SymMask + this._MaskConv.substring(LastPos+1); } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._DisplayMoney == Sys.Extended.UI.MaskedEditShowSymbol.Left) { var SymMask = ""; for (i = 0 ; i < parseInt(this.get_CultureCurrencySymbolPlaceholder().length,10) ; i++) { if (this._CharsEditMask.indexOf(this.get_CultureCurrencySymbolPlaceholder().substring(i, i+1)) == -1) { SymMask += this.get_CultureCurrencySymbolPlaceholder().substring(i, i+1); } else { SymMask += this._charEscape + this.get_CultureCurrencySymbolPlaceholder().substring(i, i+1); } } SymMask += this._charEscape + " "; this._MaskConv = this._MaskConv.substring(0,FirstPos) + SymMask + this._MaskConv.substring(FirstPos); FirstPos += SymMask.length; LastPos += SymMask.length; } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._DisplayMoney == Sys.Extended.UI.MaskedEditShowSymbol.Right) { var SymMask = this._charEscape + " "; for (i = 0 ; i < parseInt(this.get_CultureCurrencySymbolPlaceholder().length,10) ; i++) { if (this._CharsEditMask.indexOf(this.get_CultureCurrencySymbolPlaceholder().substring(i, i+1)) == -1) { SymMask += this.get_CultureCurrencySymbolPlaceholder().substring(i, i+1); } else { SymMask += this._charEscape + this.get_CultureCurrencySymbolPlaceholder().substring(i, i+1); } } this._MaskConv = this._MaskConv.substring(0,LastPos+1) + SymMask + this._MaskConv.substring(LastPos+1); } if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._AcceptNegative == Sys.Extended.UI.MaskedEditShowSymbol.Right) { this._MaskConv = this._MaskConv.substring(0,LastPos+1) + this._charEscape + " " + this._MaskConv.substring(LastPos+1); } else if (this._MaskType == Sys.Extended.UI.MaskedEditType.Number && this._AcceptNegative == Sys.Extended.UI.MaskedEditShowSymbol.Left) { this._MaskConv = this._MaskConv.substring(0,FirstPos) + this._charEscape + " " + this._MaskConv.substring(FirstPos); } this._convertMaskNotEscape(); } , _convertMaskNotEscape : function() { this._LogicMaskConv = ""; var atumask = this._MaskConv.replace(/(\/)/g, this.get_CultureDatePlaceholder()); var flagescape = false; var i; for (i = 0 ; i < parseInt(atumask.length,10); i++) { if (atumask.substring(i, i+1) == this._charEscape) { flagescape = true; } else if (!flagescape) { this._LogicMaskConv += atumask.substring(i, i+1); } else { this._LogicMaskConv += this._LogicEscape; flagescape = false; } } } , get_Mask : function() { if (this._MaskConv == "" && this._Mask != "") { this._convertMask(); } return this._MaskConv; } , set_Mask : function(value) { this._Mask = value; this.raisePropertyChanged('Mask'); } , get_Filtered : function() { return this._Filtered; } , set_Filtered : function(value) { this._Filtered = value; this.raisePropertyChanged('Filtered'); } , get_InputDirection : function() { return this._InputDirection; } , set_InputDirection : function(value) { this._InputDirection = value; this.raisePropertyChanged('InputDirection'); } , get_PromptCharacter : function() { return this._PromptChar; } , set_PromptCharacter : function(value) { this._PromptChar = value; this.raisePropertyChanged('PromptChar'); } , get_OnFocusCssClass : function() { return this._OnFocusCssClass; } , set_OnFocusCssClass : function(value) { this._OnFocusCssClass = value; this.raisePropertyChanged('OnFocusCssClass'); } , get_OnInvalidCssClass : function() { return this._OnInvalidCssClass; } , set_OnInvalidCssClass : function(value) { this._OnInvalidCssClass = value; this.raisePropertyChanged('OnInvalidCssClass'); } , get_CultureName : function() { return this._CultureName; } , set_CultureName : function(value) { this._CultureName = value; this.raisePropertyChanged('Culture'); } , get_CultureDatePlaceholder : function() { return this._CultureDatePlaceholder; } , set_CultureDatePlaceholder : function(value) { this._CultureDatePlaceholder = value; this.raisePropertyChanged('CultureDatePlaceholder'); } , get_CultureTimePlaceholder : function() { return this._CultureTimePlaceholder; } , set_CultureTimePlaceholder : function(value) { this._CultureTimePlaceholder = value; this.raisePropertyChanged('CultureTimePlaceholder'); } , get_CultureDecimalPlaceholder : function() { return this._CultureDecimalPlaceholder; } , set_CultureDecimalPlaceholder : function(value) { this._CultureDecimalPlaceholder = value; this.raisePropertyChanged('CultureDecimalPlaceholder'); } , get_CultureThousandsPlaceholder : function() { return this._CultureThousandsPlaceholder; } , set_CultureThousandsPlaceholder : function(value) { this._CultureThousandsPlaceholder = value; this.raisePropertyChanged('CultureThousandsPlaceholder'); } , get_CultureDateFormat : function() { var ret = this._CultureDateFormat; switch (this.get_UserDateFormat()) { case Sys.Extended.UI.MaskedEditUserDateFormat.DayMonthYear: { ret = "DMY"; break; } case Sys.Extended.UI.MaskedEditUserDateFormat.DayYearMonth: { ret = "DYM"; break; } case Sys.Extended.UI.MaskedEditUserDateFormat.MonthDayYear: { ret = "MDY"; break; } case Sys.Extended.UI.MaskedEditUserDateFormat.MonthYearDay: { ret = "MYD"; break; } case Sys.Extended.UI.MaskedEditUserDateFormat.YearDayMonth: { ret = "YDM"; break; } case Sys.Extended.UI.MaskedEditUserDateFormat.YearMonthDay: { ret = "YMD"; break; } } return ret; } , set_CultureDateFormat : function(value) { this._CultureDateFormat = value; this.raisePropertyChanged('CultureDateFormat'); } , get_CultureCurrencySymbolPlaceholder : function() { return this._CultureCurrencySymbolPlaceholder; } , set_CultureCurrencySymbolPlaceholder : function(value) { this._CultureCurrencySymbolPlaceholder= value; this.raisePropertyChanged('CultureCurrencySymbolPlaceholder'); } , get_CultureAMPMPlaceholder : function() { var value = this._CultureAMPMPlaceholder; if (value.split(this._AMPMPlaceholderSeparator).length != 2 || value == this._AMPMPlaceholderSeparator) { value = ""; } if (this.get_UserTimeFormat() == Sys.Extended.UI.MaskedEditUserTimeFormat.TwentyFourHour) { value = ""; } return value; } , set_CultureAMPMPlaceholder : function(value) { this._CultureAMPMPlaceholder = value; this.raisePropertyChanged('CultureAMPMPlaceholder'); } , get_CultureFirstLettersAMPM : function() { if (this.get_CultureAMPMPlaceholder() != "") { var ASymMask = this.get_CultureAMPMPlaceholder().split(this._AMPMPlaceholderSeparator); return (ASymMask[0].substring(0,1) + ASymMask[1].substring(0,1)); } return ""; } , get_CultureFirstLetterAM : function() { if (this.get_CultureAMPMPlaceholder() != "") { var ASymMask = this.get_CultureAMPMPlaceholder().split(this._AMPMPlaceholderSeparator); return ASymMask[0].substring(0,1); } return ""; } , get_CultureFirstLetterPM : function() { if (this.get_CultureAMPMPlaceholder() != "") { var ASymMask = this.get_CultureAMPMPlaceholder().split(this._AMPMPlaceholderSeparator); return ASymMask[1].substring(0,1); } return ""; } , get_ClearMaskOnLostFocus : function() { return this._ClearMaskOnLostfocus; } , set_ClearMaskOnLostFocus : function(value) { this._ClearMaskOnLostfocus = value; this.raisePropertyChanged('ClearMaskOnLostfocus'); } , get_MessageValidatorTip : function() { return this._MessageValidatorTip; } , set_MessageValidatorTip : function(value) { this._MessageValidatorTip = value; this.raisePropertyChanged('MessageValidatorTip'); } , get_AcceptAMPM : function() { return this._AcceptAmPm; } , set_AcceptAMPM : function(value) { this._AcceptAmPm = value; this.raisePropertyChanged('AcceptAmPm'); } , get_AcceptNegative : function() { return this._AcceptNegative; } , set_AcceptNegative : function(value) { this._AcceptNegative= value; this.raisePropertyChanged('AcceptNegative'); } , get_DisplayMoney : function() { return this._DisplayMoney; } , set_DisplayMoney : function(value) { this._DisplayMoney = value; this.raisePropertyChanged('DisplayMoney'); } , get_OnFocusCssNegative : function() { return this._OnFocusCssNegative; } , set_OnFocusCssNegative : function(value) { this._OnFocusCssNegative= value; this.raisePropertyChanged('OnFocusCssNegative'); } , get_OnBlurCssNegative : function() { return this._OnBlurCssNegative; } , set_OnBlurCssNegative : function(value) { this._OnBlurCssNegative= value; this.raisePropertyChanged('OnBlurCssNegative'); } , get_Century : function() { return this._Century; } , set_Century : function(value) { this._Century= value; this.raisePropertyChanged('Century'); } , get_AutoComplete : function() { return this._AutoComplete; } , set_AutoComplete : function(value) { this._AutoComplete = value; this.raisePropertyChanged('AutoComplete'); } , get_AutoCompleteValue : function() { return this._AutoCompleteValue; } , set_AutoCompleteValue : function(value) { this._AutoCompleteValue = value; this.raisePropertyChanged('AutoCompleteValue'); } , get_MaskType : function() { return this._MaskType; } , set_MaskType : function(value) { this._MaskType = value; this.raisePropertyChanged('MaskType'); } , get_ClearTextOnInvalid : function() { return this._ClearTextOnInvalid; } , set_ClearTextOnInvalid : function(value) { if(this._ClearTextOnInvalid !== value) { this._ClearTextOnInvalid = value; this.raisePropertyChanged('ClearTextOnInvalid'); } } , get_ClipboardText : function() { return this._ClipboardText; } , set_ClipboardText : function(value) { this._ClipboardText = value; this.raisePropertyChanged('ClipboardText'); } , get_ClipboardEnabled : function() { return this._AllowCopyPaste; } , set_ClipboardEnabled : function(value) { this._AllowCopyPaste = value; this.raisePropertyChanged('ClipboardEnabled'); } , get_ErrorTooltipEnabled : function() { return this._ShowMessageErrorFloat; } , set_ErrorTooltipEnabled : function(value) { this._ShowMessageErrorFloat = value; this.raisePropertyChanged('ErrorTooltipEnabled'); } , get_ErrorTooltipCssClass : function() { return this._CssMessageErrorFloat; } , set_ErrorTooltipCssClass : function(value) { this._CssMessageErrorFloat = value; this.raisePropertyChanged('ErrorTooltipCssClass'); } , get_UserDateFormat : function() { return this._UserDateFormat; } , set_UserDateFormat : function(value) { this._UserDateFormat = value; this.raisePropertyChanged('UserDateFormat'); } , get_UserTimeFormat : function() { return this._UserTimeFormat; } , set_UserTimeFormat : function(value) { this._UserTimeFormat = value; this.raisePropertyChanged('UserTimeFormat'); } } Sys.Extended.UI.MaskedEditBehavior.registerClass('Sys.Extended.UI.MaskedEditBehavior', Sys.Extended.UI.DynamicPopulateBehaviorBase); Sys.registerComponent(Sys.Extended.UI.MaskedEditBehavior, { name: "maskedEdit" }); Sys.Extended.UI.MaskedEditType = function() { throw Error.invalidOperation(); } Sys.Extended.UI.MaskedEditInputDirections = function() { throw Error.invalidOperation(); } Sys.Extended.UI.MaskedEditShowSymbol = function() { throw Error.invalidOperation(); } Sys.Extended.UI.MaskedEditUserDateFormat = function() { throw Error.invalidOperation(); } Sys.Extended.UI.MaskedEditUserTimeFormat = function() { throw Error.invalidOperation(); } Sys.Extended.UI.MaskedEditType.prototype = { None: 0, Date: 1, Number: 2, Time: 3, DateTime: 4 } Sys.Extended.UI.MaskedEditInputDirections.prototype = { LeftToRight: 0, RightToLeft: 1 } Sys.Extended.UI.MaskedEditShowSymbol.prototype = { None: 0, Left: 1, Right: 2 } Sys.Extended.UI.MaskedEditUserDateFormat.prototype = { None: 0, DayMonthYear: 1, DayYearMonth: 2, MonthDayYear: 3, MonthYearDay: 4, YearDayMonth: 5, YearMonthDay: 6 } Sys.Extended.UI.MaskedEditUserTimeFormat.prototype = { None: 0, TwentyFourHour: 1 } Sys.Extended.UI.MaskedEditType.registerEnum('Sys.Extended.UI.MaskedEditType'); Sys.Extended.UI.MaskedEditInputDirections.registerEnum('Sys.Extended.UI.MaskedEditInputDirections'); Sys.Extended.UI.MaskedEditShowSymbol.registerEnum('Sys.Extended.UI.MaskedEditShowSymbol'); Sys.Extended.UI.MaskedEditUserDateFormat.registerEnum('Sys.Extended.UI.MaskedEditUserDateFormat'); Sys.Extended.UI.MaskedEditUserTimeFormat.registerEnum('Sys.Extended.UI.MaskedEditUserTimeFormat'); } // execute if (window.Sys && Sys.loader) { Sys.loader.registerScript(scriptName, ["Globalization", "ExtendedBase", "ExtendedTimer", "ExtendedCommon"], execute); } else { execute(); } })();