	
function H_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') ) {
			    Event.observe(inpu, 'change', H_typeControl_money, false);
			    Event.observe(inpu, 'keyup', H_typeControl_money, false);
			    //inpu.onkeyup = inpu.onchange = H_typeControl_money;
			}
											
			if ( atrs.toLowerCase().match('text/plain/integer') ) {
			    Event.observe(inpu, 'change', H_typeControl_integer, false);
			    Event.observe(inpu, 'keyup', H_typeControl_integer, false);
			    //inpu.onkeyup = inpu.onchange = H_typeControl_integer;
			}
			
			if ( atrs.toLowerCase().match('text/plain/float') ) {
			    Event.observe(inpu, 'change', H_typeControl_float, false);
			    Event.observe(inpu, 'keyup', H_typeControl_float, false);
			    //inpu.onkeyup = inpu.onchange = H_typeControl_float;
			}
			
			
		}
		
}
function H_typeControl_GetSelText() {
    var txt = '';
     if (window.getSelection) {
        txt = window.getSelection();
     } else if (document.getSelection) {
        txt = document.getSelection();
     } else if (document.selection) {
        txt = document.selection.createRange().text;
     }
     return txt;
}

function H_typeControl_money() {
	if (H_typeControl_GetSelText()!='') return;
	this.value = H_typeControl_Coma2Point(this.value);
	this.value = H_typeControl_OnlyDigitAndPoint(this.value);
	this.value = H_typeControl_OnlyFirstSign(this.value,'-');
	this.value = H_typeControl_RemoveMoreThan(this.value,'.',1);
	this.value = H_typeControl_FloatPrecision(this.value,2);
}

function H_typeControl_float() {
    if (H_typeControl_GetSelText()!='') return;
	this.value = H_typeControl_Coma2Point(this.value);
	this.value = H_typeControl_OnlyDigitAndPoint(this.value);
	this.value = H_typeControl_RemoveMoreThan(this.value,'.',1);
}

function H_typeControl_integer() {
    if (H_typeControl_GetSelText()!='') return;
	this.value = H_typeControl_OnlyDigit(this.value);
}

function H_typeControl_Coma2Point(str) {
	
	var reg =  new RegExp(',',"g");
	
	return str.replace(reg,".");
	
}

function H_typeControl_RemoveLetter(str) {
	
	var reg =  new RegExp('[A-Za-z]',"g");
	
	return str.replace(reg,"");
	
}

function H_typeControl_OnlyDigitAndPoint(str) {
	
	var reg =  new RegExp('[^0-9|.|\-]',"g");
	
	return str.replace(reg,"");
	
}

function H_typeControl_OnlyDigit(str) {
	
	var reg =  new RegExp('[^0-9|\-]',"g");
	
	return str.replace(reg,"");
	
}

function H_typeControl_RemoveWhite(str) {
	
	var reg =  new RegExp('\s*',"g");
	
	return str.replace(reg,"");
	
}

function H_typeControl_RemoveMoreThan(str,what,maxx) {
	
	var a = str.split(what,maxx+1);
	
	return(a.join(what)); 
}

function H_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 H_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', H_typeControl, false);
