// adcionar maskara aos inputs..
function mascara(e,src,mask) {
if(window.event) {
_TXT = e.keyCode;
} else
if(e.which) {
_TXT = e.which;
}
if(_TXT > 47 && _TXT < 58) {
var i = src.value.length;
var saida = mask.substring(0,1);
var texto = mask.substring(i);
if(texto.substring(0,1) != saida) {
src.value += texto.substring(0,1);
}
return true;
} else {
if (_TXT != 8) {
return false;
} else {
return true;
}
}
}

// MÁSCARA DE VALORES
function txtBoxFormat(objeto, sMask, evtKeyPress) {
    var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

	if(document.all) {
		// Internet Explorer
	    nTecla = evtKeyPress.keyCode;
	} else if(document.layers) {
		// Nestcape
	    nTecla = evtKeyPress.which;
	} else {
	    nTecla = evtKeyPress.which;

	    if ((nTecla == 8) || (nTecla == 13) || (nTecla == 0)) {
	        return true;
	    }
	}

    sValue = objeto.value;

    // Limpa todos os caracteres de formatação que
    // já estiverem no campo.
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( " ", "" );
    sValue = sValue.toString().replace( " ", "" );
    fldLen = sValue.length;
    mskLen = sMask.length;

    i = 0;
    nCount = 0;
    sCod = "";

    if (objeto.value.length == 0) {
    	mskLen = fldLen;
    } else {
    	mskLen = fldLen - 1;
    }

    while (i <= mskLen) {
		bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
		bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

		if (bolMask) {
			sCod += sMask.charAt(i);
			mskLen++;
		} else {
			sCod += sValue.charAt(nCount);
			nCount++;
		}

		i++;
	}

	objeto.value = sCod;

	if (nTecla != 8) {
		// backspace
		if (sMask.charAt(i-1) == "9") {
			// apenas números...
			return ((nTecla > 47) && (nTecla < 58));
		} else {
			// qualquer caracter...
			return false;
		}
	} else {
		return true;
	}
}


// FORMATAÇÃO DE CAMPOS TIPO DOUBLE (MÁSCARA DE VALOR)
function FormataValor(obj) {
	obj.onkeypress = exibirValorFormatado;
	obj.onkeydown = capturaCodTecla;

	if ((obj.maxLength == -1) || (obj.maxLength == 2147483647) || (obj.maxLength == "undefined")) {
		obj.maxLength = 17;
	}
}


// FUNÇÃO DE SUPORTE À FUNÇÃO "FormataValor"
function exibirValorFormatado(e) {
		var obj,tecla;
		//verificando se o que foi digitado é um número
		if (!soNumero(e)){
			return false;
		}
		obj = (isNav) ? e.target : event.srcElement;
		codTecla = (isNav) ? e.which : event.keyCode;
		switch (codTeclaKeyDown) {
			case 8:
				obj.value = formatarValor(obj.value.substring(0,obj.value.length-1),codTecla);
				break;
			case 9:
				return true;
				break;
			case 46:
				obj.value = formatarValor(obj.value.substring(0,obj.value.length-1),codTecla);
				break;
			default :
					if ((codTecla>47) && (codTecla<58)) {
						if (obj.maxLength > obj.value.length) {
							obj.value = formatarValor(obj.value + String.fromCharCode(codTecla),codTecla);
						}
					}
		}
		return false;
}


// FUNÇÃO DE SUPORTE À FUNÇÃO "FormataValor"
function capturaCodTecla(e) {
	codTeclaKeyDown = (isNav) ? e.which : event.keyCode;
	if (isIE) {
		switch (codTeclaKeyDown) {
			case 8:
				event.srcElement.value = formatarValor(event.srcElement.value.substring(0,event.srcElement.value.length-1),codTeclaKeyDown);
				return false;
			break;
			case 46:
				event.srcElement.value = formatarValor(event.srcElement.value.substring(0,event.srcElement.value.length-1),codTeclaKeyDown);
				return false;
			break;
		}
	}
}


// FUNÇÃO DE SUPORTE À FUNÇÃO "FormataValor"
function soNumero(e) {
	var keyNumber = (isIE) ? event.keyCode : e.which;
	if ( ( ((keyNumber<48)||(keyNumber>57)) && ((keyNumber<95)||(keyNumber>106)) ) && (keyNumber!=13) && (keyNumber!="0") && (keyNumber!=8) && (keyNumber!=116) && (keyNumber!=17) ) {
		if (isIE) {
			event.keyCode=0
		}
		return false;
	}
	return true;
}


// FUNÇÃO DE SUPORTE À FUNÇÃO "FormataValor"
function formatarValor(str, key) {
	var decimal,inteiro;
	var i,count;
	STR = new String(str);
	STR = tirarZerosEsquerda(STR);
	inteiro='';

	if (STR.length == 1) {
		inteiro  = '0';
		decimal = '0' + STR;
	} else {
		if (STR.length == 2) {
			inteiro  = '0';
			decimal = STR;
		} else {
			decimal = STR.substring(STR.length-2,STR.length);
			i=3;
			count=0;

			while (i<=STR.length) {
				if (count==3) {
					inteiro = '.' + inteiro;
					count = 0;
				}

				inteiro = STR.charAt(STR.length-i) + inteiro;
				count++;
				i++;
			}
		}
	}

	if (inteiro == '') {
		inteiro = '0';
	}

	if (decimal == '') {
		decimal = '00';
	}

	//alert('valor: '+key);

	if( (inteiro+','+decimal == '0,00') && (key == 8) ){
		return "";
	} else {
		return inteiro+','+decimal;
	}
}


// FUNÇÃO DE SUPORTE À FUNÇÃO "formatarValor"
function tirarZerosEsquerda(STR)
{
	var sAux = '';
	STR = new String(STR);
	var i = 0;
	while (i < STR.length ) {
		if ((STR.charAt(i)!='.') && (STR.charAt(i)!=',')) {
			sAux += STR.charAt(i);
		}
		i++
	}
	STR = new String(sAux);
	sAux = '';
	i = 0;

	while (i < STR.length ) {
 		if (STR.charAt(i) != '0') {
			sAux = STR.substring(i,STR.length)
			i = STR.length;
		}
		i++;
	}

	return sAux;
}

function mask(str,textbox,loc,delim){
	var locs = loc.split(',');

	for (var i = 0; i <= locs.length; i++){
		for (var k = 0; k <= str.length; k++){
		 if (k == locs[i]){
		  if (str.substring(k, k+1) != delim){
		    str = str.substring(0,k) + delim + str.substring(k,str.length)
		  }
		 }
		}
	 }
	textbox.value = str
}
