	
function DLF_typeControl() {

	if (!document.getElementsByTagName) { return; }

		var inputs = document.getElementsByTagName('input');
		var textareas = document.getElementsByTagName('textarea');
		
		for (var i=0; i<inputs.length; i++){
			
			var inpu = inputs[i];
			var atrs = String(inpu.getAttribute('accept'));
			
			if ( atrs.toLowerCase().match('text/plain/money') ) inpu.onkeydown = inpu.onkeyup = inpu.onchange = DLF_typeControl_money;
											
			if ( atrs.toLowerCase().match('text/plain/integer') ) inpu.onkeydown = inpu.onkeyup = inpu.onchange = DLF_typeControl_integer;
			
			if ( atrs.toLowerCase().match('text/plain/float') ) inpu.onkeydown = inpu.onkeyup = inpu.onchange = DLF_typeControl_float;
			
			
		}
		
}

function DLF_typeControl_money() {
	
	this.value = DLF_typeControl_Coma2Point(this.value);
	this.value = DLF_typeControl_OnlyDigitAndPoint(this.value);
	this.value = DLF_typeControl_OnlyFirstSign(this.value,'-');
	this.value = DLF_typeControl_RemoveMoreThan(this.value,'.',1);
	this.value = DLF_typeControl_FloatPrecision(this.value,2);
}

function DLF_typeControl_float() {
	this.value = DLF_typeControl_Coma2Point(this.value);
	this.value = DLF_typeControl_OnlyDigitAndPoint(this.value);
	this.value = DLF_typeControl_RemoveMoreThan(this.value,'.',1);
}

function DLF_typeControl_integer() {
	this.value = DLF_typeControl_OnlyDigit(this.value);
}

function DLF_typeControl_Coma2Point(str) {
	
	var reg =  new RegExp(',',"g");
	
	return str.replace(reg,".");
	
}

function DLF_typeControl_RemoveLetter(str) {
	
	var reg =  new RegExp('[A-Za-z]',"g");
	
	return str.replace(reg,"");
	
}

function DLF_typeControl_OnlyDigitAndPoint(str) {
	
	var reg =  new RegExp('[^0-9|.|\-]',"g");
	
	return str.replace(reg,"");
	
}

function DLF_typeControl_OnlyDigit(str) {
	
	var reg =  new RegExp('[^0-9|\-]',"g");
	
	return str.replace(reg,"");
	
}

function DLF_typeControl_RemoveWhite(str) {
	
	var reg =  new RegExp('\s*',"g");
	
	return str.replace(reg,"");
	
}

function DLF_typeControl_RemoveMoreThan(str,what,maxx) {
	
	var a = str.split(what,maxx+1);
	
	return(a.join(what)); 
}

function DLF_typeControl_OnlyFirstSign(str,what) {
	var reg =  new RegExp(what,"g");
	if (str.indexOf(what)==0) return(what+str.replace(reg,""));
	 else return(str.replace(reg,"")); 
}

function DLF_typeControl_FloatPrecision(str,precision) {
	
	var x = str.lastIndexOf('.');
	if (x>-1) {
		dec = str.substr(x+1);
		if (dec.length > precision) return(str.substr(0,str.length-(dec.length-precision)));
	}
	
	return(str);
}

Event.observe(window, 'load', DLF_typeControl, false);