/******************************************************************

				OPERAÇÕES COM FORMULÁRIOS
				-------------------------
				Triares Informática e Tecnologia
				http://www.triares.com.br	

*******************************************************************/

function addEventLis(obj, evType, fn){
    if (obj.addEventListener)
		obj.addEventListener(evType, fn, true);
	if (obj.attachEvent)
		obj.attachEvent("on"+evType, fn);
}

/******************************************************************
*****************************  MÁSCARAS  **************************
*******************************************************************/

function getNumeroDaString( string ){
	var objString = new String( string );
	var stringFinal = '';
	for( var i=0; i < objString.length; i++ ){
		if( objString.charAt( i ) >= '0' && objString.charAt( i ) <= '9' ){
			stringFinal += objString.charAt( i );
		}
	}
	return stringFinal;
}

function mascararString( string, mascara, prosseguir, leftToRight ){
	var objString = new String( getNumeroDaString( string ) );
	var objMascarar = new String( mascara );
	var stringFinal = '', im = 0, is = 0;
		
	if( typeof( prosseguir )== "undefined" ){
		prosseguir = false;
	}
	if( typeof( leftToRight ) == "undefined" ){
		leftToRight = true;
	}
	
	if (leftToRight) {
	
		for (; im < objMascarar.length; im++) {
			if (is >= objString.length) {
				break;
			}
			if (objMascarar.charAt(im) == '9') {
				stringFinal += objString.charAt(is);
				is++;
			}
			else {
				stringFinal += objMascarar.charAt(im);
			}
		}
		if (prosseguir) {
			for (; is < objString.length; is++) {
				stringFinal += objString.charAt(is);
			}
		}
	} else {
		
		im = objMascarar.length - 1;
		is = objString.length - 1;
		
		for (; im >= 0; im--) {
			if (is < 0) {
				break;
			}
			if (objMascarar.charAt(im) == '9') {
				stringFinal = objString.charAt(is) + stringFinal;
				is--;
			}
			else {
				stringFinal = objMascarar.charAt(im) + stringFinal;
			}
		}
		if (prosseguir) {
			for (; is >= 0; is--) {
				stringFinal = objString.charAt(is) + stringFinal;
			}
		}
		
		
	}
	return stringFinal;
}


function getZeroControlado( string ){
	if( string == '' ){
		return 0;
	}
	var str = new String( string );

	var split = str.split('.');
	var intPart = new String( split[0] );
	var decPart = ( split.length > 1 )?('.'+split[1]):('');
	
	while( (intPart.charCodeAt( 0 ) == 48) && intPart.length > 1 ){
		intPart = intPart.substr( 1 );

	}
	return intPart + decPart;
	
}

function mascararInput( obj, mascara, LR ){
	var obj = ( typeof( obj ) == 'string' )?(document.getElementById(obj)):(obj);
	obj.LR = ( typeof( LR ) == 'undefined' )?(true):(LR);
	
	obj.msk = mascara;	
	obj.maxlength = parseInt(obj.getAttribute('maxlength'));
	
	addEvent( obj, 'keydown', function(e){
		var evt = new classEvent( e );
		switch (evt.key ){
			case 8:
			case 9:
			case 37:
			case 39:
			case 46:
			break;
			default:
				evt.breakEvent();
			break;
		}
		char = ( evt.key >= 96 )?( evt.key - 96 ):( evt.key - 48 );
		if( (char >= '0') && (char <= '9') && obj.value.length < obj.maxlength )	obj.value = mascararString( obj.value + char, obj.msk, true, obj.LR );
		
	}, obj );

	obj.value = mascararString( obj.value, obj.msk, true, obj.LR );
}

function getZeroControlado( string ){
	if( string == '' ){
		return 0;
	}
	var str = new String( string );

	var split = str.split('.');
	var intPart = new String( split[0] );
	var decPart = ( split.length > 1 )?('.'+split[1]):('');
	
	while( (intPart.charCodeAt( 0 ) == 48) && intPart.length > 1 ){
		intPart = intPart.substr( 1 );

	}
	return intPart + decPart;
	
}

function mascararInputNumerico(obj, casasDecimais){
	var obj = ( typeof( obj ) == 'string' )?(document.getElementById(obj)):(obj);
	obj.casasDecimais = casasDecimais;
	obj.LR = true;
	
	var mascara = '9';
	for( var i=1; i < 9; i++ ){
		if( i == obj.casasDecimais ){
			mascara = '.' + mascara;
		}
		mascara = '9' + mascara;
	}
	
	function eventoZerar( e ){
		var evt = new classEvent( e );
		evt.target.value = getZeroControlado( evt.target.value );
	}
	
	addEvent( obj, 'blur', eventoZerar, obj );
	addEvent( obj, 'focus', eventoZerar, obj );	
	addEvent( obj, 'keyup', eventoZerar, obj );	
	
	mascararInput( obj, mascara, false, false ); 
	obj.value = getZeroControlado( obj.value );
}

function mascararInputCPFCNPJ( obj ){
	
	var obj = ( typeof( obj ) == 'string' )?(document.getElementById(obj)):(obj);
	obj.setAttribute('size', 19 );
	obj.msk = (obj.value.length < 18  )?('999.999.999-99'):('999.999.999/9999-99');
	
	addEvent( obj, 'keydown', function(e){
		var evt = new classEvent( e );
		switch (evt.key ){
			case 8:
			case 9:
			case 37:
			case 39:
			case 46:
			break;
			default:
				evt.breakEvent();
			break;
		}
		char = ( evt.key >= 96 )?( evt.key - 96 ):( evt.key - 48 );
		
		if((char >= 0) && (char <= 9)) {
			var string = this.value + char;
			this.msk = (string.length <= 14 )?('999.999.999-99'):('999.999.999/9999-99');
			this.value = mascararString( string, this.msk, (string.length < 19) ); 
		}
	}, obj );
	
	obj.value = mascararString( obj.value, obj.msk );
	
}


/******************************************************************
********************** FIM DAS MÁSCARAS  **************************
*******************************************************************/

//Permite digitao de nmeros apenas com aviso
function permitirNumero(e,  div){
	var tecla=(window.event)?event.keyCode:e.which;	
    if((tecla > 47 && tecla < 58)){
		if (typeof(div) != "undefined")
			document.getElementById(div).innerHTML = "";
		return true;
	}else{
		//return(tecla != 8 && tecla !=13 && tecla != 0)?false:true;
    	if (tecla != 8 && tecla !=13 && tecla != 0){ 
			if (typeof(div) != "undefined")
				document.getElementById(div).innerHTML = "digite somente n&uacute;meros";
			return false;
		}else{
			if (typeof(div) != "undefined")
				document.getElementById(div).innerHTML = "";
			return true;
		}
	} 
}

function maxLength(obj, limit) {
	if (obj.value.length >= limit) {
		obj.value = obj.value.substring(0, limit-1);
	}
}

function validarEmail(email){
	var bolReturn = false;
	var oRegEmail = /^[a-z0-9\._\-]+\@[a-z0-9\._\-]+\.[a-z]{2,3}$/i;
	bolReturn = oRegEmail.test(email);
	
	if(!bolReturn){
		return false;
	}
	return true;
}


/* ====================================================================================== */


function validarForm( form ) {
	for(i=0; i < form.elements.length; i++) {	
		if(typeof(form.elements[i].name) != "undefined") {
			if(form.elements[i].className == "requerido" && form.elements[i].value == "") {
				alert("Preencha todos os campos obrigatórios");
				form.elements[i].focus();
				return false;
			}
			if(form.elements[i].name.indexOf("email") != -1 && form.elements[i].value != "") {	
				if(!validarEmail(form.elements[i].value)) {
					alert("E-mail Inválido");
					form.elements[i].focus();
					return false;
				}
			}			
			if(form.elements[i].name.indexOf("cpf") != -1 && form.elements[i].value != "") {
				var cpf = form.elements[i];
				if(!isCpf(form.elements[i].value)) {
					alert("CPF Inválido");
					cpf.focus();
					return false;
				}
			}
			if(form.elements[i].name.indexOf("cnpj") != -1 && form.elements[i].value != "") {
				if( !isCnpj(form.elements[i].value) ) {
					alert('CNPJ Inválido');
					form.elements[i].focus();
					return false;
				}
			}
		}
	}
	return true;
	
}

function formatar() {
	var inputs = document.getElementsByTagName("input");
	for( var i=0; i < inputs.length; i++ ){
		switch( inputs[i].type ){
			case "button":
			case "submit":
				inputs[i].className = "botao";
			break;
			case "radio":
			case "checkbox":
				inputs[i].style.border = "none 0px";
			break;
			case "text":
				if( inputs[i].name.indexOf( "dt_" ) == 0 ) {
					mascararInput( inputs[i], "99/99/9999" );
					inputs[i].setAttribute("style", "padding: 0.5ex;");
					inputs[i].setAttribute("maxlength", "10");
				}				
				if( inputs[i].name.indexOf( "vl_" ) == 0 ) {
					addEventLis( inputs[i], "focus", function(e){
						var evt = new classEvent( e );
						evt.target.select();
					});
					mascararInput( inputs[i], "999.999.999,99", false );
					//mascararInputNumerico( inputs[i], 2 );
				} 				   				   
				if( inputs[i].name.indexOf( "celular" ) != -1 || inputs[i].name.indexOf( "telefone" ) != -1 ) 
					mascararInput( inputs[i], "99 9999-9999", false );
			break;
		}		
	}
}

addEventLis( window, "load", function(e){
	formatar();
});