// operatedInput v0.0.1
// by Boiko A.S. aka Alex_B | admin@MaxAman-Soft.ru
// www.MaxAman-Soft.ru | http://joomlaforum.ru
function operatedInput(inputID,mask){
	var input = document.getElementById(inputID);
	input.onkeypress = check;
	function check(e){
		var evt = (e) ? e : window.event;
		var code = (document.all) ? evt.keyCode:evt.charCode;

		if ((code == 0) || (code == 8) || (code == 9)){return true;}

		var bool = false;
		function doRule(Rnamber){
			var rule = mask.charAt(Rnamber);

			switch (rule){
				case '_':
					return true;
					break;
				case '`':
 					if ((code < 48) || (code > 57)){
						bool = true;
						return false;
					}
					else{
						bool = false;
						return true;
					}
					break;
				case '~':
					if ((code < 1040) || (code > 1103)){
						bool = true;
						return false;
					}
					else{
						bool = false;
						return true;
					}
					break;
				case '':
					return false;
					break;
				default:
					input.value += rule;
					if(input.setSelectionRange) {
						var end = input.value.length;
 						input.setSelectionRange(end,end);
					}
					doRule(Rnamber+1);
					if(bool){return false;}
					else{return true;}
		    		break;
			}
		}
		var namber = input.value.length;
		return doRule(namber);
	}
}