var maskinput = new Class({
	initialize: function(target,rule){
		var inp = $(target);
		var stat = true;
		var ti = 0;
		var v = '';
		
		var rules = new Array();
		for(var i = 0; i < rule.length; i++){
			n = rule.substr(i,1);
			if(n != '#' && n != '%'){
				rules.push(n);
			}
		}
		
		inp.maxLength = rule.length;
				
		inp.onkeydown = function(){
			if(stat == true){
				v = inp.value;
				stat = false;
			}else{
				inp.value = v;
			}
		}
		inp.onkeyup = function(e){
			var event = new Event(e); 
			stat = true;
			var val = '';
			var cv = inp.value;
			for(var i = 0; i < rules.length; i++){
				cv =cv.replace(rules[i],'');
			}
			rn = 0;
			for(var i = 0; i < cv.length; i++){
				n = cv.substr(i,1);
				cr = rule.substr(rn,1);
				if(cr == "#"){
					if(!isNaN(n)){
						val += n;
						rn++;
					}
				}else if(cr == "%"){
					if(isNaN(n)){
						val += n;
						rn++;
					}
				}else{
					rn++;
					val += cr;
					i--;
				}
			}			
			inp.value = val;
		}
		
	}
});

maskinput.implement();