
function trueOR(n1,n2){return((n1>>>1|n2>>>1)*2+(n1&1|n2&1));}
EnumPartType=new Object();EnumPartType.Symbol=1;EnumPartType.Degit=2;CharType=new Object();CharType.EditOptional=1;CharType.EditRequired=2;CharType.Literal=8;CharType.Modifier=0x10;CharType.Separator=4;CaseConversion=new Object();CaseConversion.None=0;CaseConversion.ToLower=1;CaseConversion.ToUpper=2;function MaskedTextResultHint(){this.AlphanumericCharacterExpected=-2;this.AsciiCharacterExpected=-1;this.CharacterEscaped=1;this.DigitExpected=-3;this.InvalidInput=-51;this.LetterExpected=-4;this.NoEffect=2;this.NonEditPosition=-54;this.PositionOutOfRange=-55;this.PromptCharNotAllowed=-52;this.SideEffect=3;this.SignedDigitExpected=-5;this.Success=4;this.UnavailableEditPosition=-53;this.Unknown=0;this.hint=this.Unknown;this.testPosition=-1;this.Clone=function(){var aMaskedTextResultHint=new MaskedTextResultHint();aMaskedTextResultHint.hint=this.hint;aMaskedTextResultHint.testPosition=this.testPosition;return aMaskedTextResultHint;}}
function CultureInfo(){this.NumberFormat=new Object();this.NumberFormat.CurrencySymbol="rub.";this.NumberFormat.NumberGroupSeparator=",";this.NumberFormat.NumberDecimalSeparator=".";this.DateTimeFormat=new Object();this.DateTimeFormat.DateSeparator="/";this.DateTimeFormat.TimeSeparator=":";this.TextInfo=new Object();this.TextInfo.ToLower=function(input){return input.toLowerCase();}
this.TextInfo.ToUpper=function(input){return input.toUpperCase();}}
function CharDescriptor(maskPos,charType)
{this.CaseConversion=CaseConversion.None;this.CharType=charType;this.IsAssigned=false;this.MaskPosition=maskPos;this.EnumPartObject=null;}
function set_CharacterInString(input,ch,position){ch=ch+"";if(position>=input.length||position<0)
return input;var sResult="";sResult=input.substring(0,position)+ch+input.substring(position+ch.length);return sResult;}
function C1CharactersValidator(aCultureInfo){this.culture=aCultureInfo;this.UTFPunctuationsString_=' \u0021 \u0022 \u0023 \u0025 \u0026 \u0027 \u0028 \u0029 \u002A \u002C \u002D \u002E \u002F \u003A \u003B \u003F \u0040 \u005B \u005C \u005D \u007B \u007D \u00A1 \u00AB \u00AD \u00B7 \u00BB \u00BF \u037E \u0387 \u055A \u055B \u055C \u055D \u055E \u055F \u0589 \u058A \u05BE \u05C0 \u05C3 \u05F3 \u05F4 \u060C \u061B \u061F \u066A \u066B \u066C \u066D \u06D4 \u0700 \u0701 \u0702 \u0703 \u0704 \u0705 \u0706 \u0707 \u0708 \u0709 \u070A \u070B \u070C \u070D \u0964 \u0965 \u0970 \u0DF4 \u0E4F \u0E5A \u0E5B \u0F04 \u0F05 \u0F06 \u0F07 \u0F08 \u0F09 \u0F0A \u0F0B \u0F0C \u0F0D \u0F0E \u0F0F \u0F10 \u0F11 \u0F12 \u0F3A \u0F3B \u0F3C \u0F3D \u0F85 \u104A \u104B \u104C \u104D \u104E \u104F \u10FB \u1361 \u1362 \u1363 \u1364 \u1365 \u1366 \u1367 \u1368 \u166D \u166E \u169B \u169C \u16EB \u16EC \u16ED \u17D4 \u17D5 \u17D6 \u17D7 \u17D8 \u17D9 \u17DA \u17DC \u1800 \u1801 \u1802 \u1803 \u1804 \u1805 \u1806 \u1807 \u1808 \u1809 \u180A \u2010 \u2011 \u2012 \u2013 \u2014 \u2015 \u2016 \u2017 \u2018 \u2019 \u201A \u201B \u201C \u201D \u201E \u201F \u2020 \u2021 \u2022 \u2023 \u2024 \u2025 \u2026 \u2027 \u2030 \u2031 \u2032 \u2033 \u2034 \u2035 \u2036 \u2037 \u2038 \u2039 \u203A \u203B \u203C \u203D \u203E \u2041 \u2042 \u2043 \u2045 \u2046 \u2048 \u2049 \u204A \u204B \u204C \u204D \u207D \u207E \u208D \u208E \u2329 \u232A \u3001 \u3002 \u3003 \u3008 \u3009 \u300A \u300B \u300C \u300D \u300E \u300F \u3010 \u3011 \u3014 \u3015 \u3016 \u3017 \u3018 \u3019 \u301A \u301B \u301C \u301D \u301E \u301F \u3030 \uFD3E \uFD3F \uFE30 \uFE31 \uFE32 \uFE35 \uFE36 \uFE37 \uFE38 \uFE39 \uFE3A \uFE3B \uFE3C \uFE3D \uFE3E \uFE3F \uFE40 \uFE41 \uFE42 \uFE43 \uFE44 \uFE49 \uFE4A \uFE4B \uFE4C \uFE50 \uFE51 \uFE52 \uFE54 \uFE55 \uFE56 \uFE57 \uFE58 \uFE59 \uFE5A \uFE5B \uFE5C \uFE5D \uFE5E \uFE5F \uFE60 \uFE61 \uFE63 \uFE68 \uFE6A \uFE6B \uFF01 \uFF02 \uFF03 \uFF05 \uFF06 \uFF07 \uFF08 \uFF09 \uFF0A \uFF0C \uFF0D \uFF0E \uFF0F \uFF1A \uFF1B \uFF1F \uFF20 \uFF3B \uFF3C \uFF3D \uFF5B \uFF5D \uFF61 \uFF62 \uFF63 \uFF64';this.UTFWhitespacesString_='\u0009 \u000B \u000C \u001F \u0020 \u00A0 \u1680 \u2000 \u2001 \u2002 \u2003 \u2004 \u2005 \u2006 \u2007 \u2008 \u2009 \u200A \u200B \u2028 \u202F \u3000';this.setCharcterInString=function(input,ch,position){if(position>=input.length||position<0)
return input;var sResult="";sResult=input.substring(0,position)+ch+input.substring(position+1);return sResult;}
this.checkIsValidCharForRegExp=function(aChar,aRegExp){if(aChar==undefined)
return false;if(!aRegExp.test(aChar))
return false;return true;}
this.IsAscii=function(c)
{if(c>='!')
{return(c<='~');}
return false;}
this.IsAsciiLetter=function(c)
{if((c>='A')&&(c<='Z'))
{return true;}
if(c>='a')
{return(c<='z');}
return false;}
this.IsUpper=function(c)
{if(c.toUpperCase()==c)
return true;return false;}
this.IsLower=function(c)
{if(c.toLowerCase()==c)
return true;return false;}
this.IsAlphanumeric=function(c)
{if(!this.IsLetter(c))
{return this.IsDigit(c);}
return true;}
this.IsAciiAlphanumeric=function(c)
{if(((c<'0')||(c>'9'))&&((c<'A')||(c>'Z')))
{if(c>='a')
{return(c<='z');}
return false;}
return true;}
this.IsDigit=function(c)
{if(c>='0')
{return(c<='9');}
return false;}
this.IsLetter=function(c)
{if(!this.IsDigit(c)){return true;}
return false;}
this.IsLetterOrDigit=function(c)
{if(this.IsLetter(c))
return true;if(this.IsDigit(c))
return true;return false}
this.IsSymbol=function(c)
{if(c==this.culture.NumberFormat.CurrencySymbol||c==this.culture.NumberFormat.NumberGroupSeparator||c==this.culture.NumberFormat.NumberDecimalSeparator||c==this.culture.DateTimeFormat.DateSeparator||c==this.culture.DateTimeFormat.TimeSeparator)
return true;return this.IsLetterOrDigit(c);}
this.IsPunctuation=function(c)
{if(this.UTFPunctuationsString_.indexOf(c)!=-1)
return true;else
return false;}
this.IsPrintableChar=function(c)
{if((!this.IsLetterOrDigit(c)&&!this.IsPunctuation(c))&&!this.IsSymbol(c))
{return(c==' ');}
return true;}}
function EnumPart(id,arr,aEnumPartType,beginIndex,aParentTextProvider){this._parentTextProvider=aParentTextProvider;this.id=id;this.arr=arr;this.EnumPartType_=aEnumPartType;this.maxLen=0;this.curValueIndex=0;this.currentDigitValue=0;this.minDigitValue=0;this.maxDigitValue=0;this.beginIndex=beginIndex;this.realBeginIndex=-1;this.curLen=0;this.initialValue=0;var aMaxLen=0;for(var i=0;i<arr.length;i++)
{if(i==0&&this.EnumPartType_==EnumPartType.Degit){this.currentDigitValue=arr[i]*1;this.initialValue=this.currentDigitValue;this.minDigitValue=parseInt(arr[i]);this.maxDigitValue=parseInt(arr[i]);if(this.maxDigitValue>=Number.MAX_VALUE){alert(this.maxDigitValue);}}else if(i>=1&&this.EnumPartType_==EnumPartType.Degit){this.maxDigitValue=parseInt(arr[i]);}
var aCurLen=arr[i].length;if(arr[i].length>0&&arr[i].charAt(0)=='*')
{arr[i]=arr[i].substr(1);this.curValueIndex=i;this.initialValue=this.curValueIndex;aCurLen=aCurLen-1;}
aMaxLen=aCurLen>aMaxLen?aCurLen:aMaxLen;}
this.maxLen=aMaxLen;this.ApplyFormatToEnumValue=function(aEnumValue,aCalculateHidenBounds)
{var sEnumValue=""+aEnumValue+"";var sResultEnumValue="";var sResultEnumValueAdd="";for(var i=0;i<this.maxLen;i++)
{if(this.maxLen>sEnumValue.length+i)
{if(this.EnumPartType_==EnumPartType.Degit)
{if(this.minDigitValue<0)
sResultEnumValueAdd+=" ";else
sResultEnumValueAdd+="0";}
else
{sResultEnumValueAdd+=" ";}}
else
{if(this.EnumPartType_==EnumPartType.Degit)
{sResultEnumValue+=sEnumValue.charAt(i-(this.maxLen-sEnumValue.length));}
else
{sResultEnumValue=sEnumValue.charAt(sEnumValue.length-1-(i-(this.maxLen-sEnumValue.length)))+sResultEnumValue;}}}
if(this.EnumPartType_==EnumPartType.Degit)
{sResultEnumValue=sResultEnumValueAdd+sResultEnumValue;this.curLen=this.maxLen;}
else
{sResultEnumValue=sResultEnumValue+sResultEnumValueAdd;this.curLen=aEnumValue.length;}
return sResultEnumValue;}
this.set_CurrentValueIndex=function(aIndex){if(this.EnumPartType_==EnumPartType.Symbol){this.curValueIndex=aIndex;}else if(this.EnumPartType_==EnumPartType.Degit){if(aIndex==0){this.currentDigitValue=this.minDigitValue;}else{this.currentDigitValue=this.maxDigitValue;}}}
this.isValidValueForCurrentDegitEnum=function(value){value=value*1;if(isNaN(value))
return false;if(value!=Math.round(value))
return false;if(this.minDigitValue<=value&&value<=this.maxDigitValue)
return true;return false;}
this.set_CurrentValue=function(input,aBegIndex,aActionName,aResultObj){if(this.maxLen>this.curLen){aBegIndex=aBegIndex-(this.maxLen-this.curLen);if(aBegIndex<0)
aBegIndex=0;}
if(aActionName==undefined)
aActionName="default";if(aBegIndex==undefined){aBegIndex=0;}else if((aBegIndex-this.realBeginIndex)>=0){aBegIndex=aBegIndex-this.realBeginIndex;}else{aBegIndex=0;}
if(this.EnumPartType_==EnumPartType.Symbol){var aMaxEqualsCount=0;var aSelectedValueIndex=-1;var i=this.curValueIndex+1;var whileTag=0;var whileLen=arr.length;while(whileTag<2){if(i>=whileLen&&whileTag==0){whileTag=1;whileLen=this.curValueIndex+1;i=0;}
if(i>=whileLen&&whileTag==1){break;}
var aCurEqualsCount=0;var aCurValue=arr[i];var aCurMaxLen=aCurValue.length;for(var j=aBegIndex;j<aCurMaxLen;j++){if((j-aBegIndex)>=input.length)
break;if((aCurValue.charAt(j)).toLowerCase()==(input.charAt(j-aBegIndex)).toLowerCase()){aCurEqualsCount++;}}
if(aCurEqualsCount>aMaxEqualsCount){aMaxEqualsCount=aCurEqualsCount;aSelectedValueIndex=i;}
i++;}
if(aSelectedValueIndex!=-1){this.curValueIndex=aSelectedValueIndex;return true;}else{return false;}}else if(this.EnumPartType_==EnumPartType.Degit){var s=this.ApplyFormatToEnumValue(this.currentDigitValue);if((aBegIndex+input.length)>s.length)
return false;if(aActionName=='delete'){var aFoundValidPosForEnum=-1;for(var i=0;i<s.length;i++){if(s.charAt(i)!=' '&&s.charAt(i)!='0'&&aFoundValidPosForEnum==-1)
aFoundValidPosForEnum=i;}
if((s.charAt(aBegIndex)=='0'||s.charAt(aBegIndex)==' ')&&aActionName=='delete')
aBegIndex=aFoundValidPosForEnum==-1?0:aFoundValidPosForEnum;}
var s1=set_CharacterInString(s,input,aBegIndex);if(s1.indexOf(".")!=-1)
return false;if(this.isValidValueForCurrentDegitEnum(s1)==true){this.currentDigitValue=s1*1;return true;}else{if(this._parentTextProvider._isSmartInputMode()){if(input.length==1){if(aActionName!='delete'){for(var ii=aBegIndex;ii<s.length;ii++){var sTestVal=set_CharacterInString(s,input,ii);if(this.isValidValueForCurrentDegitEnum(sTestVal)==true){this.currentDigitValue=sTestVal*1;aResultObj.result_offset=ii-aBegIndex;return true;}}}}}}}
return false;}
this.ClearValue=function(){if(this.EnumPartType_==EnumPartType.Symbol){this.curValueIndex=this.initialValue;}else if(this.EnumPartType_==EnumPartType.Degit){this.currentDigitValue=this.initialValue;}}
this.get_CurrentValue=function(){if(this.EnumPartType_==EnumPartType.Symbol){return this.ApplyFormatToEnumValue(this.arr[this.curValueIndex],true);}else if(this.EnumPartType_==EnumPartType.Degit){return this.ApplyFormatToEnumValue(this.currentDigitValue*1);}
return"*ENUM_ERROR*";}
this.GetArrayOfAvilableValues=function(){return this.arr;}
this.doIncrement=function(){if(this.EnumPartType_==EnumPartType.Symbol){this.curValueIndex++;if(this.curValueIndex>=this.arr.length)
this.curValueIndex=0;return true;}else if(this.EnumPartType_==EnumPartType.Degit){if((this.currentDigitValue*1)<this.maxDigitValue){this.currentDigitValue=this.currentDigitValue+1;return true;}else{return false;}}
return false;}
this.doDecrement=function(){if(this.EnumPartType_==EnumPartType.Symbol){this.curValueIndex--;if(this.curValueIndex<0)
this.curValueIndex=this.arr.length-1;return true;}else if(this.EnumPartType_==EnumPartType.Degit){if((this.currentDigitValue*1)>this.minDigitValue){this.currentDigitValue=this.currentDigitValue-1;return true;}else{return false;}}
return false;}
this.IsIndexInRangeOfEnumPart=function(aTestIndex){if(aTestIndex>=this.beginIndex&&aTestIndex<(this.beginIndex+this.maxLen))
return true;return false;}}
function EnumPartsWorker(aParent)
{this.enumPartsCount=0;this.enumPartsCollection=new Array();this.loadEnumPart=function(s,beginIndex)
{var id=this.enumPartsCount;var aEnumPart=null;if(s.indexOf('|')!=-1)
{var arr=s.split('|');aEnumPart=new EnumPart(id,arr,EnumPartType.Symbol,beginIndex,aParent);this.enumPartsCollection.push(aEnumPart);}
else if(s.indexOf("...")!=-1)
{var arr=s.split("...");if(arr[1].indexOf("(")!=-1){var aTmpArr=arr[1].split("(");arr[1]=aTmpArr[0];aTmpArr=aTmpArr[1].split(")");aTmpArr=aTmpArr[0].split(":");aEnumPart=new EnumPart(id,arr,EnumPartType.Degit,beginIndex,aParent);this.enumPartsCollection.push(aEnumPart);}else{aEnumPart=new EnumPart(id,arr,EnumPartType.Degit,beginIndex,aParent);this.enumPartsCollection.push(aEnumPart);}}else{return null;}
this.enumPartsCount++;return aEnumPart;}
this.getEnumPartById=function(aId){for(var i=0;i<this.enumPartsCollection.length;i++){if(this.enumPartsCollection[i].id==aId)
return this.enumPartsCollection[i];}
return null;}
this.getEnumPartObjectForPosition=function(aPos){for(var i=0;i<this.enumPartsCollection.length;i++){if(this.enumPartsCollection[i].IsIndexInRangeOfEnumPart(aPos)==true)
return this.enumPartsCollection[i];}
return null;}}
function C1MaskedTextProvider()
{this.AllowPromptAsInput=false;this.IsPassword=false;this.PasswordChar="";this.ResetOnPrompt=true;this.ResetOnSpace=true;this.SkipLiterals=true;this.allowAnyCharacters=false;this.ASCII_ONLY="ASCII_ONLY";this.INCLUDE_PROMPT="INCLUDE_PROMPT";this.INCLUDE_LITERALS="INCLUDE_LITERALS";this.RESET_ON_PROMPT="RESET_ON_PROMPT";this.mask="";this.testString="";this.InvalidIndex=-1;this.HaveEnumParts=false;this.assignedCharCount=0;this.requiredCharCount=0;this.C1CharactersValidator_=null;this.EnumPartsWorker_=new EnumPartsWorker(this);this.constructor=function(mask,restrictToAscii)
{culture=new CultureInfo();PromptChar="_";this.allowAnyCharacters=false;this.HaveEnumParts=false;this.culture=culture;this.C1CharactersValidator_=new C1CharactersValidator(culture);this.initialMask=mask;this.mask=mask;this.PromptChar=PromptChar;this.Initialize();}
this.set_CultureInfo=function(aCulture){if(aCulture!=undefined){var aText=this.ToString(true,false,false);this.culture=aCulture;this.C1CharactersValidator_=new C1CharactersValidator(aCulture);this.Initialize();this.Set(aText);}}
this.get_CultureInfo=function(){return this.culture;}
this.set_PromptChar=function(value){this.PromptChar=value;if(this.allowAnyCharacters==true){return;}
for(var i=0;i<this.stringDescriptor.length;i++){var descriptor1=this.stringDescriptor[i];if(descriptor1.CharType==CharType.EditOptional||descriptor1.CharType==CharType.EditRequired){if(descriptor1.IsAssigned==false){this.testString=this.C1CharactersValidator_.setCharcterInString(this.testString,this.PromptChar,i);}}}}
this.get_HaveEnumParts=function(){return this.HaveEnumParts;}
this.ParseEnumerationParts=function(mask){if(mask==undefined)
mask="";this.EnumPartsWorker_=new EnumPartsWorker(this);var sResultMask="";var aEndTagIndex=0;var aBegTagIndex=mask.indexOf("<<",0);if(aBegTagIndex==-1)
return mask;while(aBegTagIndex!=-1)
{sResultMask+=mask.substr(0,aBegTagIndex);mask=mask.substr(aBegTagIndex);aBegTagIndex=0;aEndTagIndex=mask.indexOf(">>",0);if(aEndTagIndex!=-1)
{var s=mask.substr(2,aEndTagIndex-2);var aEnumPart=this.EnumPartsWorker_.loadEnumPart(s,sResultMask.length);if(aEnumPart!=null){this.HaveEnumParts=true;aEnumPart.positionInMask=sResultMask.length;sResultMask+=aEnumPart.get_CurrentValue();}else{sResultMask+="<"+s+">";}
mask=mask.substr(aEndTagIndex+2);}
else
{sResultMask+=mask.substr(aBegTagIndex);mask="";}
aBegTagIndex=mask.indexOf("<<",0);}
sResultMask+=mask;return sResultMask;}
this.Clone=function()
{var provider1=new MaskedTextProvider();provider1.constructor(this.Mask,this.culture,this.AsciiOnly);provider1.ResetOnPrompt=this.ResetOnPrompt;provider1.ResetOnSpace=this.ResetOnSpace;provider1.SkipLiterals=this.SkipLiterals;provider1.IncludeLiterals=this.IncludeLiterals;provider1.IncludePrompt=this.IncludePrompt;return provider1;}
this.Initialize=function(){if(this.initialMask==undefined||this.initialMask.length<=0)
{this.allowAnyCharacters=true;}else{this.allowAnyCharacters=false;}
if(this.allowAnyCharacters==true)
return;this.mask=this.ParseEnumerationParts(this.initialMask);this.testString="";this.optionalEditChars=0;this.assignedCharCount=0;this.requiredCharCount=0;this.stringDescriptor=new Array();var conversion1=CaseConversion.None;var flag1=false;var num1=0;var type1=CharType.Literal;var text1="";for(var num2=0;num2<this.mask.length;num2++)
{var aNeedCharDescriptorNow=false;var ch1=this.mask.charAt(num2);var aTestForEnumPartObject=this.EnumPartsWorker_.getEnumPartObjectForPosition(num2);if(aTestForEnumPartObject!=null){type1=CharType.Literal;aNeedCharDescriptorNow=true;}
if(flag1)
{flag1=false;aNeedCharDescriptorNow=true;}
if(aNeedCharDescriptorNow==false)
{var ch3=ch1;if(ch3<='C')
{switch(ch3)
{case'#':case'9':case'?':case'C':this.optionalEditChars++;ch1=this.PromptChar;type1=CharType.EditOptional;aNeedCharDescriptorNow=true;break;case'$':text1=this.culture.NumberFormat.CurrencySymbol;type1=CharType.Separator;aNeedCharDescriptorNow=true;break;case'%':case'-':case';':case'=':case'@':case'B':type1=CharType.Literal;aNeedCharDescriptorNow=true;break;case'&':case'0':case'A':this.requiredEditChars++;ch1=this.PromptChar;type1=CharType.EditRequired;aNeedCharDescriptorNow=true;break;case',':text1=this.culture.NumberFormat.NumberGroupSeparator;type1=CharType.Separator;aNeedCharDescriptorNow=true;break;case'.':text1=this.culture.NumberFormat.NumberDecimalSeparator;type1=CharType.Separator;aNeedCharDescriptorNow=true;break;case'/':text1=this.culture.DateTimeFormat.DateSeparator;type1=CharType.Separator;aNeedCharDescriptorNow=true;break;case':':text1=this.culture.DateTimeFormat.TimeSeparator;type1=CharType.Separator;aNeedCharDescriptorNow=true;break;case'<':conversion1=CaseConversion.ToLower;continue;case'>':conversion1=CaseConversion.ToUpper;continue;}
if(aNeedCharDescriptorNow==false){type1=CharType.Literal;aNeedCharDescriptorNow=true;}}
if(aNeedCharDescriptorNow==false){if(ch3<='\\')
{switch(ch3)
{case'L':this.requiredEditChars++;ch1=this.PromptChar;type1=CharType.EditRequired;aNeedCharDescriptorNow=true;break;case'\\':flag1=true;type1=CharType.Literal;continue;}
if(aNeedCharDescriptorNow==false){type1=CharType.Literal;aNeedCharDescriptorNow=true;}}
if(aNeedCharDescriptorNow==false){if(ch3=='a')
{this.optionalEditChars++;ch1=this.PromptChar;type1=CharType.EditOptional;aNeedCharDescriptorNow=true;}
if(aNeedCharDescriptorNow==false){if(ch3!='|')
{type1=CharType.Literal;aNeedCharDescriptorNow=true;}
if(aNeedCharDescriptorNow==false){conversion1=CaseConversion.None;continue;}}}}}
if(aNeedCharDescriptorNow==true){var descriptor1;descriptor1=new CharDescriptor(num2,type1);descriptor1.EnumPartObject=this.EnumPartsWorker_.getEnumPartObjectForPosition(num2);if(descriptor1.EnumPartObject!=null){if(descriptor1.EnumPartObject.realBeginIndex==undefined||descriptor1.EnumPartObject.realBeginIndex==-1){descriptor1.EnumPartObject.realBeginIndex=num1;}}
if(this.IsEditPosition(descriptor1))
{descriptor1.CaseConversion=conversion1;}
if(type1!=CharType.Separator)
{text1=ch1;}
for(var ii=0;ii<text1.length;ii++)
{var ch2=text1.charAt(ii);this.testString=this.testString+ch2;this.stringDescriptor.push(descriptor1);num1++;}}}
this.testString.Capacity=this.testString.length;}
this.ToString=function(ignorePasswordChar,includePrompt,includeLiterals,startPosition,length)
{if(this.allowAnyCharacters==true){if(ignorePasswordChar==false){var s="";for(var i=0;i<this.testString.length;i++){s+=this.PasswordChar;}
return s;}
return this.testString;}
if(ignorePasswordChar==undefined)
ignorePasswordChar=true;if(includePrompt==undefined)
includePrompt=this.IncludePrompt;if(includeLiterals==undefined)
includeLiterals=this.IncludeLiterals;if(startPosition==undefined)
startPosition=0;if(length==undefined)
length=this.testString.length;if(length<=0)
return"";if(startPosition<0)
startPosition=0;if(startPosition>=this.testString.length)
return"";var num1=this.testString.length-startPosition;if(length>num1)
length=num1;if((!this.IsPassword||ignorePasswordChar)&&(includePrompt&&includeLiterals))
{var aResult=this.testString.substring(startPosition,length-startPosition);return aResult;}
var builder1="";var num2=(startPosition+length)-1;for(var num5=startPosition;num5<=num2;num5++)
{var ch1=this.testString.charAt(num5);var descriptor1=this.stringDescriptor[num5];switch(descriptor1.CharType)
{case CharType.EditOptional:case CharType.EditRequired:if(!descriptor1.IsAssigned)
{break;}
if(!this.IsPassword||ignorePasswordChar)
{builder1=builder1+ch1;continue;}
builder1=builder1+this.PasswordChar;continue;case(CharType.EditRequired|CharType.EditOptional):builder1=builder1+ch1;continue;case CharType.Separator:case CharType.Literal:if(descriptor1.EnumPartObject!=null){builder1=builder1+ch1;continue;}
if(!includeLiterals)
{continue;}
builder1=builder1+ch1;continue;default:builder1=builder1+ch1;continue;}
if(includePrompt)
{builder1=builder1+ch1;continue;}
builder1=builder1+' ';continue;if(!includeLiterals)
{continue;}
builder1=builder1+ch1;continue;}
return builder1;}
this.IsEditPosition=function(charDescriptor){if(this.allowAnyCharacters==true){return true;}
if(charDescriptor.CharType!=CharType.EditRequired)
{return(charDescriptor.CharType==CharType.EditOptional);}
return true;}
this.IsEditPositionAt=function(position){if(this.allowAnyCharacters==true){return true;}
if((position<0)||(position>=this.testString.length))
{return false;}
var descriptor1=this.stringDescriptor[position];return this.IsEditPosition(descriptor1);}
this.FindNonEditPositionInRange=function(startPosition,endPosition,direction)
{var type1=trueOR(CharType.Literal,CharType.Separator);return this.FindPositionInRange(startPosition,endPosition,direction,type1);}
this.FindPositionInRange=function(startPosition,endPosition,direction,charTypeFlags)
{if(startPosition<0)
{startPosition=0;}
if(endPosition>=this.testString.length)
{endPosition=this.testString.length-1;}
if(startPosition<=endPosition)
{while(startPosition<=endPosition)
{var num1=direction?startPosition++:endPosition--;var descriptor1=this.stringDescriptor[num1];if(((descriptor1.CharType&0xFFFFFFFF)&(charTypeFlags&0xFFFFFFFF))==descriptor1.CharType)
{return num1;}}}
return-1;}
this.FindAssignedEditPositionInRange=function(startPosition,endPosition,direction)
{if(this.assignedCharCount==0)
{return-1;}
return this.FindEditPositionInRange(startPosition,endPosition,direction,2);}
this.FindEditPositionInRange=function(startPosition,endPosition,direction,assignedStatus)
{do
{var num1=this.FindEditPositionInRange2(startPosition,endPosition,direction);if(num1==-1)
{break;}
var descriptor1=this.stringDescriptor[num1];switch(assignedStatus)
{case 1:if(!descriptor1.IsAssigned)
{return num1;}
break;case 2:if(descriptor1.IsAssigned)
{return num1;}
break;default:return num1;}
if(direction)
{startPosition++;}
else
{endPosition--;}}
while(startPosition<=endPosition);return-1;}
this.FindEditPositionInRange2=function(startPosition,endPosition,direction)
{var type1=trueOR(CharType.EditRequired,CharType.EditOptional);return this.FindPositionInRange(startPosition,endPosition,direction,type1);}
this.FindAssignedEditPositionFrom=function(position,direction)
{var num1;var num2;if(this.assignedCharCount==0)
{return-1;}
if(direction)
{num1=position;num2=this.testString.length-1;}
else
{num1=0;num2=position;}
return this.FindAssignedEditPositionInRange(num1,num2,direction);}
this.ResetString=function(startPosition,endPosition)
{if(this.allowAnyCharacters==true){this.testString="";return;}
startPosition=this.FindAssignedEditPositionFrom(startPosition,true);if(startPosition!=-1)
{endPosition=this.FindAssignedEditPositionFrom(endPosition,false);while(startPosition<=endPosition)
{startPosition=this.FindAssignedEditPositionFrom(startPosition,true);this.ResetChar(startPosition);startPosition++;}}}
this.ResetChar=function(testPosition)
{var descriptor1=this.stringDescriptor[testPosition];if(this.IsEditPositionAt(testPosition)&&descriptor1.IsAssigned)
{descriptor1.IsAssigned=false;this.testString=this.C1CharactersValidator_.setCharcterInString(this.testString,this.PromptChar,testPosition);this.assignedCharCount--;if(descriptor1.CharType==CharType.EditRequired)
{this.requiredCharCount--;}}}
this.RemoveAtInt=function(startPosition,endPosition,resultHint,testOnly)
{if(this.allowAnyCharacters==true){try{this.testString=this.testString.substring(0,startPosition)+this.testString.substring(endPosition+1,this.testString.length);resultHint.testPosition=startPosition;}catch(ex){}
return;}
var hint1=new MaskedTextResultHint();if(!testOnly){if(this.handleEnumerationPart(' ',startPosition,resultHint,"delete")==true){for(var i=startPosition+1;i<=endPosition;i++){this.handleEnumerationPart(' ',i,resultHint,"delete")}
return true;}}
var ch1;var ch2;var num1=this.FindAssignedEditPositionFrom(this.testString.length-1,false);var num2=this.FindEditPositionInRange(startPosition,endPosition,true);resultHint.hint=resultHint.NoEffect;if((num2==-1)||(num2>num1))
{resultHint.testPosition=startPosition;return true;}
resultHint.testPosition=startPosition;var flag1=endPosition<num1;if(this.FindAssignedEditPositionInRange(startPosition,endPosition,true)!=-1)
{resultHint.hint=resultHint.Success;}
if(flag1)
{var num3=this.FindEditPositionFrom(endPosition+1,true);var num4=num3;startPosition=num2;var aNeedRepeat=true;while(aNeedRepeat==true){aNeedRepeat=false;ch1=this.testString.charAt(num3);var descriptor1=this.stringDescriptor[num3];if(((ch1!=this.PromptChar)||descriptor1.IsAssigned)&&!this.TestChar(ch1,num2,hint1))
{resultHint.hint=hint1.hint;resultHint.testPosition=num2;return false;}
if(num3!=num1)
{num3=this.FindEditPositionFrom(num3+1,true);num2=this.FindEditPositionFrom(num2+1,true);aNeedRepeat=true;continue;}}
if(resultHint.SideEffect>resultHint.hint)
{resultHint.hint=resultHint.SideEffect;}
if(testOnly)
{return true;}
num3=num4;num2=startPosition;var aNeedRepeat2=true;while(aNeedRepeat2==true){aNeedRepeat2=false;ch2=this.testString.charAt(num3);var descriptor2=this.stringDescriptor[num3];if((ch2==this.PromptChar)&&!descriptor2.IsAssigned)
{this.ResetChar(num2);}
else
{this.SetChar(ch2,num2);this.ResetChar(num3);}
if(num3!=num1)
{num3=this.FindEditPositionFrom(num3+1,true);num2=this.FindEditPositionFrom(num2+1,true);aNeedRepeat2=true;continue;}}
startPosition=num2+1;}
if(startPosition<=endPosition)
{this.ResetString(startPosition,endPosition);}
return true;}
this.RemoveAt=function(startPosition,endPosition,resultHint)
{if(endPosition==undefined)
endPosition=startPosition;if(resultHint==undefined)
resultHint=new MaskedTextResultHint();if(endPosition>=this.testString.length)
{resultHint.testPosition=endPosition;resultHint.hint=MaskedTextResultHint.PositionOutOfRange;return false;}
if((startPosition>=0)&&(startPosition<=endPosition))
{var aResult=this.RemoveAtInt(startPosition,endPosition,resultHint,false);return aResult;}
resultHint.testPosition=startPosition;resultHint.hint=MaskedTextResultHint.PositionOutOfRange;return false;}
this.Clear=function(resultHint)
{if(this.allowAnyCharacters==true){this.testString="";resultHint.hint=resultHint.Success;return;}
if(this.assignedCharCount==0)
{resultHint.hint=resultHint.NoEffect;}
else
{resultHint.hint=resultHint.Success;for(var num1=0;num1<this.testString.length;num1++)
{this.ResetChar(num1);}}}
this.Set=function(input,resultHint)
{if(resultHint==undefined){resultHint=new MaskedTextResultHint();}
if(input==undefined)
{throw new"SetFromPos: input parameter is null or undefined.";}
resultHint.hint=resultHint.Unknown;resultHint.testPosition=0;if(input.length==0)
{this.Clear(resultHint);return true;}
if(this.allowAnyCharacters==true){this.testString=input;return true;}
if(this.HaveEnumParts==true){this.Clear(resultHint);resultHint.testPosition=0;return this.InsertAt(input,0,resultHint);}
if(!this.TestSetString(input,resultHint.testPosition,resultHint))
{return false;}
var num1=this.FindAssignedEditPositionFrom(resultHint.testPosition+1,true);if(num1!=-1)
{this.ResetString(num1,this.testString.length-1);}
return true;}
this.GetAdjustedPosition=function(position){if(this.allowAnyCharacters==true){if(position>=this.testString.length)
position=this.testString.length-1;}else{if(position>=this.stringDescriptor.length)
position=position-1;}
if(position<0)
position=0;return position;}
this.Get_EnumPartObjectForPosition=function(position){if(this.allowAnyCharacters==true){return null;}
position=this.GetAdjustedPosition(position);var aTestEnumDescriptor=this.stringDescriptor[position];if(aTestEnumDescriptor){if(aTestEnumDescriptor.EnumPartObject!=null){return aTestEnumDescriptor.EnumPartObject;}}
return null;}
this.doSetEnumerationIndex=function(aIndex,aEnumObject){var aBoolValue=aEnumObject.set_CurrentValueIndex(aIndex);var aValue=aEnumObject.get_CurrentValue();for(var i=0;i<aEnumObject.maxLen;i++){var aChar=aValue.charAt(i);this.testString=this.C1CharactersValidator_.setCharcterInString(this.testString,aChar,aEnumObject.realBeginIndex+i);}
return aBoolValue;}
this.doClearEnumerationPartValue=function(position){position=this.GetAdjustedPosition(position);var aTestEnumDescriptor=this.stringDescriptor[position];if(aTestEnumDescriptor.EnumPartObject!=null){if(aTestEnumDescriptor.EnumPartObject.EnumPartType_==EnumPartType.Degit){aTestEnumDescriptor.EnumPartObject.set_CurrentValue("0",position,"",null);}else{aTestEnumDescriptor.EnumPartObject.ClearValue();}
var aValue=aTestEnumDescriptor.EnumPartObject.get_CurrentValue();for(var i=0;i<aTestEnumDescriptor.EnumPartObject.maxLen;i++){var aChar=aValue.charAt(i);this.testString=this.C1CharactersValidator_.setCharcterInString(this.testString,aChar,aTestEnumDescriptor.EnumPartObject.realBeginIndex+i);}
return true;}
return false;}
this.doIncrementEnumerationPart=function(position){if(this.allowAnyCharacters==true){return false;}
position=this.GetAdjustedPosition(position);var aTestEnumDescriptor=this.stringDescriptor[position];if(aTestEnumDescriptor!=undefined){if(aTestEnumDescriptor.EnumPartObject!=undefined){aTestEnumDescriptor.EnumPartObject.doIncrement();var aValue=aTestEnumDescriptor.EnumPartObject.get_CurrentValue();for(var i=0;i<aTestEnumDescriptor.EnumPartObject.maxLen;i++){var aChar=aValue.charAt(i);this.testString=this.C1CharactersValidator_.setCharcterInString(this.testString,aChar,aTestEnumDescriptor.EnumPartObject.realBeginIndex+i);}
return true;}}
return false;}
this.doDecrementEnumerationPart=function(position){if(this.allowAnyCharacters==true){return false;}
position=this.GetAdjustedPosition(position);var aTestEnumDescriptor=this.stringDescriptor[position];if(aTestEnumDescriptor!=undefined){if(aTestEnumDescriptor.EnumPartObject!=undefined){aTestEnumDescriptor.EnumPartObject.doDecrement();var aValue=aTestEnumDescriptor.EnumPartObject.get_CurrentValue();for(var i=0;i<aTestEnumDescriptor.EnumPartObject.maxLen;i++){var aChar=aValue.charAt(i);this.testString=this.C1CharactersValidator_.setCharcterInString(this.testString,aChar,aTestEnumDescriptor.EnumPartObject.realBeginIndex+i);}
return true;}}
return false;}
this.findNextEnumPartPosition=function(aPos){while(true){if(aPos==-1||aPos>this.stringDescriptor.length-1)
return-1;var aTestEnumDescriptor=this.stringDescriptor[aPos];if(aTestEnumDescriptor==undefined)
return-1;if(aTestEnumDescriptor.EnumPartObject!=null){return aPos;}
aPos++}}
this.handleEnumerationPart=function(input,position,resultHint,aActionName){try{if(position==-1)
return false;var aTestEnumDescriptor=this.stringDescriptor[position];if(aTestEnumDescriptor==undefined){return false;}
var aNextInputValue="";var aEnumPartLen=-1;var aBoolResult=false;if(aTestEnumDescriptor.EnumPartObject!=null){if(aActionName!=undefined&&aActionName=="delete"){this.doClearEnumerationPartValue(position);resultHint.testPosition=position;return true;}else{aEnumPartLen=aTestEnumDescriptor.EnumPartObject.maxLen;if(input.length>aEnumPartLen){aNextInputValue=input.slice(aEnumPartLen);input=input.substr(0,aEnumPartLen);}
var aResultObj={"real_val":input,"pos":position,"result_offset":0};if(aTestEnumDescriptor.EnumPartObject.set_CurrentValue(input,position,aActionName,aResultObj)==true){resultHint.testPosition=position+input.length-1+aResultObj.result_offset;aEnumPartLen=aTestEnumDescriptor.EnumPartObject.maxLen;aBoolResult=true;}else{resultHint.testPosition=position-1;aBoolResult=false;}
var aValue=aTestEnumDescriptor.EnumPartObject.get_CurrentValue();for(var i=0;i<aTestEnumDescriptor.EnumPartObject.maxLen;i++){var aChar=aValue.charAt(i);this.testString=this.C1CharactersValidator_.setCharcterInString(this.testString,aChar,aTestEnumDescriptor.EnumPartObject.realBeginIndex+i);}}}
if(aBoolResult==true&&aEnumPartLen!=-1&&aNextInputValue!=""){var aPrevPos=position+aEnumPartLen;var aNewPos=this.findNextEnumPartPosition(aPrevPos);if(aNewPos>aPrevPos){try{var aNextInputValueTest=aNextInputValue;var aDiff=aNewPos-aPrevPos;var i=0;while(i<aDiff){var ch1=this.testString.charAt(aPrevPos+i);var ch2=aNextInputValue.charAt(0+i);if(ch1==ch2){aNextInputValueTest=aNextInputValue.slice(1);}
i++;}
aNextInputValue=aNextInputValueTest;}catch(ex){}}
this.handleEnumerationPart(aNextInputValue,aNewPos,resultHint,aActionName);return true;}
return aBoolResult;}catch(ex){return false;}}
this.InsertAtInt=function(input,position,resultHint,testOnly)
{if(input.length==0)
{resultHint.testPosition=position;resultHint.hint=resultHint.NoEffect;return true;}
if(!testOnly){if(this.handleEnumerationPart(input,position,resultHint)==true){return true;}}
if(!this.TestString(input,position,resultHint))
{return false;}
var num1=this.FindEditPositionFrom(position,true);var flag1=this.FindAssignedEditPositionInRange(num1,resultHint.testPosition,true)!=-1;var num2=this.FindAssignedEditPositionFrom(this.testString.length-1,false);if(flag1&&(resultHint.testPosition==(this.testString.length-1)))
{resultHint.hint=resultHint.UnavailableEditPosition;resultHint.testPosition=this.testString.length;return false;}
var num3=this.FindEditPositionFrom(resultHint.testPosition+1,true);if(!flag1)
{}else{var hint1=new MaskedTextResultHint();hint1.hint=hint1.Unknown;var aNeedRepeat=true;while(aNeedRepeat==true){aNeedRepeat=false;if(num3==-1)
{resultHint.hint=resultHint.UnavailableEditPosition;resultHint.testPosition=this.testString.length;return false;}
var descriptor1=this.stringDescriptor[num1];if(descriptor1.IsAssigned&&!this.TestChar(this.testString.charAt(num1),num3,hint1))
{resultHint.hint=hint1.hint;resultHint.testPosition=num3;return false;}
if(num1!=num2)
{num1=this.FindEditPositionFrom(num1+1,true);num3=this.FindEditPositionFrom(num3+1,true);aNeedRepeat=true;continue;}}
if(hint1.hint>resultHint.hint)
{resultHint.hint=hint1.hint;}}
if(!testOnly)
{if(flag1)
{while(num1>=position)
{var descriptor2=this.stringDescriptor[num1];if(descriptor2.IsAssigned)
{this.SetChar(this.testString.charAt(num1),num3);}
else
{this.ResetChar(num3);}
num3=this.FindEditPositionFrom(num3-1,false);num1=this.FindEditPositionFrom(num1-1,false);}}
this.SetString(input,position);}
return true;}
this.InsertAt=function(input,position,resultHint)
{if(resultHint==undefined){resultHint=new MaskedTextResultHint();}
if(input==undefined)
{throw new ArgumentNullException("InsertAt: input");}
if(this.allowAnyCharacters==true){this.testString=this.testString.substring(0,position)+input+this.testString.substring(position,this.testString.length);resultHint.testPosition=position+input.length-1;return true;}
if((position>=0)&&(position<this.testString.length))
{var aResult=this.InsertAtInt(input,position,resultHint,false);return aResult;}
resultHint.testPosition=position;resultHint.hint=resultHint.PositionOutOfRange;return false;}
this.IsLiteralPosition=function(charDescriptor)
{if(charDescriptor==undefined)
return false;if(charDescriptor.CharType!=CharType.Literal)
{return(charDescriptor.CharType==CharType.Separator);}
return true;}
this.TestEscapeChar=function(input,position,charDex)
{if(position<0)
position=0;if(charDex==undefined)
charDex=this.stringDescriptor[position];if(this.IsLiteralPosition(charDex))
{if(this.SkipLiterals)
{return(input==this.testString.charAt(position));}
return false;}
if((!this.ResetOnPrompt||(input!=this.PromptChar))&&(!this.ResetOnSpace||(input!=' ')))
{return false;}
return true;}
this.FindEditPositionFrom=function(position,direction)
{var num1;var num2;if(direction)
{num1=position;num2=this.testString.length-1;}
else
{num1=0;num2=position;}
return this.FindEditPositionInRange(num1,num2,direction);}
this.TestChar=function(input,position,resultHint)
{if(!this.C1CharactersValidator_.IsPrintableChar(input))
{resultHint.hint=resultHint.InvalidInput;return false;}
var descriptor1=this.stringDescriptor[position];if(descriptor1==undefined)
return false;if(this.IsLiteralPosition(descriptor1))
{if(this.SkipLiterals&&(input==this.testString.charAt(position)))
{resultHint.hint=resultHint.CharacterEscaped;return true;}
resultHint.hint=resultHint.NonEditPosition;return false;}
if(input==this.PromptChar)
{if(this.ResetOnPrompt)
{if(this.IsEditPosition(descriptor1)&&descriptor1.IsAssigned)
{resultHint.hint=resultHint.SideEffect;}
else
{resultHint.hint=resultHint.CharacterEscaped;}
return true;}
if(!this.AllowPromptAsInput)
{resultHint.hint=resultHint.PromptCharNotAllowed;return false;}}
if((input==' ')&&this.ResetOnSpace)
{if(this.IsEditPosition(descriptor1)&&descriptor1.IsAssigned)
{resultHint.hint=resultHint.SideEffect;}
else
{resultHint.hint=resultHint.CharacterEscaped;}
return true;}
switch(this.mask.charAt(descriptor1.MaskPosition))
{case'L':if(!this.C1CharactersValidator_.IsLetter(input))
{resultHint.hint=resultHint.LetterExpected;return false;}
if(!this.C1CharactersValidator_.IsAsciiLetter(input)&&this.AsciiOnly)
{resultHint.hint=resultHint.AsciiCharacterExpected;return false;}
break;case'a':if(!this.C1CharactersValidator_.IsAlphanumeric(input)&&(input!=' '))
{resultHint.hint=resultHint.AlphanumericCharacterExpected;return false;}
if(!this.C1CharactersValidator_.IsAciiAlphanumeric(input)&&this.AsciiOnly)
{resultHint.hint=resultHint.AsciiCharacterExpected;return false;}
break;case'?':if(!this.C1CharactersValidator_.IsLetter(input)&&(input!=' '))
{resultHint.hint=resultHint.LetterExpected;return false;}
if(this.C1CharactersValidator_.IsAsciiLetter(input)||!this.AsciiOnly)
{break;}
resultHint.hint=resultHint.AsciiCharacterExpected;return false;case'A':if(!this.C1CharactersValidator_.IsAlphanumeric(input))
{resultHint.hint=resultHint.AlphanumericCharacterExpected;return false;}
if(this.C1CharactersValidator_.IsAciiAlphanumeric(input)||!this.AsciiOnly)
{break;}
resultHint.hint=resultHint.AsciiCharacterExpected;return false;case'C':if((!this.C1CharactersValidator_.IsAscii(input)&&this.AsciiOnly)&&(input!=' '))
{resultHint.hint=resultHint.AsciiCharacterExpected;return false;}
break;case'9':if(!this.C1CharactersValidator_.IsDigit(input)&&(input!=' '))
{resultHint.hint=resultHint.DigitExpected;return false;}
break;case'#':if((!this.C1CharactersValidator_.IsDigit(input)&&(input!='-'))&&((input!='+')&&(input!=' ')))
{resultHint.hint=resultHint.DigitExpected;return false;}
break;case'&':if(!this.C1CharactersValidator_.IsAscii(input)&&this.AsciiOnly)
{resultHint.hint=resultHint.AsciiCharacterExpected;return false;}
break;case'0':if(!this.C1CharactersValidator_.IsDigit(input))
{resultHint.hint=resultHint.DigitExpected;return false;}
break;}
if((input==this.testString.charAt(position))&&descriptor1.IsAssigned)
{resultHint.hint=resultHint.NoEffect;}
else
{resultHint.hint=resultHint.Success;}
return true;}
this.TestString=function(input,position,resultHint)
{resultHint.hint=resultHint.Unknown;resultHint.testPosition=position;if(input.length!=0)
{if(this.handleEnumerationPart(input,position,resultHint)==true){return true;}
var hint1=new MaskedTextResultHint();hint1.testPosition=resultHint.testPosition;hint1.hint=resultHint.hint;for(var ii=0;ii<input.length;ii++)
{var ch1=input.charAt(ii);if(resultHint.testPosition>=this.testString.length)
{resultHint.hint=resultHint.UnavailableEditPosition;return false;}
if(!this.TestEscapeChar(ch1,resultHint.testPosition))
{resultHint.testPosition=this.FindEditPositionFrom(resultHint.testPosition,true);if(resultHint.testPosition==-1)
{resultHint.testPosition=this.testString.length;resultHint.hint=resultHint.UnavailableEditPosition;return false;}}
if(!this.TestChar(ch1,resultHint.testPosition,hint1))
{resultHint.hint=hint1.hint;return false;}
if(hint1.hint>resultHint.hint)
{resultHint.hint=hint1.hint;}
resultHint.testPosition+=1;}
resultHint.testPosition-=1;}
return true;}
this.SetChar=function(input,position,charDescriptor)
{if(position<0)
position=0;if(charDescriptor==undefined){charDescriptor=this.stringDescriptor[position];}
var local1=this.stringDescriptor[position];if(this.TestEscapeChar(input,position,charDescriptor))
{this.ResetChar(position);}
else
{if(this.C1CharactersValidator_.IsLetter(input))
{if(this.C1CharactersValidator_.IsUpper(input))
{if(charDescriptor.CaseConversion==CaseConversion.ToLower)
{input=this.culture.TextInfo.ToLower(input);}}
else if(charDescriptor.CaseConversion==CaseConversion.ToUpper)
{input=this.culture.TextInfo.ToUpper(input);}}
this.testString=this.C1CharactersValidator_.setCharcterInString(this.testString,input,position);if(!charDescriptor.IsAssigned)
{charDescriptor.IsAssigned=true;this.assignedCharCount++;if(charDescriptor.CharType==CharType.EditRequired)
{this.requiredCharCount++;}}}}
this.SetString=function(input,testPosition){for(var i=0;i<input.length;i++)
{var ch1=input.charAt(i);if(!this.TestEscapeChar(ch1,testPosition))
{testPosition=this.FindEditPositionFrom(testPosition,true);}
this.SetChar(ch1,testPosition);testPosition++;}}
this.TestSetString=function(input,position,resultHint)
{if(this.TestString(input,position,resultHint))
{this.SetString(input,position);return true;}
return false;}
this.get_PostDataString=function(){return"Text|="+this.ToString(true,false,false);}
this._isSmartInputMode=function(){if(this._parentMaskEdit!=null){return this._parentMaskEdit.get_smartInputMode();}
return true;}}