// Busca uma posição
function posc(str, strc, _i){
	var s_pos = (-1);
	if (_i >= 0){
		for (i=_i;i< str.length;i++){
			if(str.charAt(i) == strc){
	  			s_pos = i;	
		  		break;
			}
		}
	}
	return s_pos;
}

// Valida a data...
function valida_data(_data){

	var resultado 	= true;
	var msg 		= "obs: a data deve estar no formato dd/MM/aaaa\n";
	
	edData = _data;
	
	if(edData.length < 10){
	  msg +=" Data Inválida\n";
	  resultado = false;
	 }else{
	   _p 		= posc(edData,"/",0);
	   _p1 		= posc(edData,"/",_p + 1);
	   t_dd 	= edData.substring(0, 2);
	   t_mm 	= edData.substring(3, 5);
	   t_yyyy 	= edData.substring(6, 10);
	   
	   if((! isNaN(t_dd)) && (t_dd > 0) && (t_dd < 32)){
	   } else {
	   	msg+= "O Dia da Data é inválido (" + t_dd + ")\n";
		resultado = false;
		}

	   if((! isNaN(t_mm)) && (t_mm > 0) && (t_mm < 13)){
	   } else {
	   	msg+= "O Mes da Data é inválido (" + t_mm + ")\n";	
	   	resultado = false;
	   }
	  
	   if((! isNaN(t_yyyy)) &&  (t_yyyy > 1900)){
	   } else {
	   	  msg+= "O Ano da Data é inválido (" + t_yyyy + ")\n";
		  resultado = false;	    
		}
	   
	 	if ((_p == 2) && (_p1 == 5)){
		}else {
	  		msg += " Data Inválida\n";
	  		resultado = false;
		}
	 }
	if(resultado==false) alert(msg);
	
	return resultado;	
}

//Valida CPF
function valida_cpf(_cpf){

	var resultado 	= true;
	var msg = "obs: O CPF deve esta sem pontos ou traços\n";
	
	edCPF  = _cpf;
	
	if(!(edCPF.length == 11)){
		msg += "CPF Inválido\n";
		resultado = false;
	}
	if(isNaN(edCPF)){
		msg += "CPF Inválido, deve ser somente número!";
		resultado = false;
	}
	
	if(resultado==false) alert(msg);
	
	return resultado;
}

//Valida CPF
function valida_name(_name){

	var resultado 	= true;
	var msg = "obs: Você deve informar nome e sobrenome\nExemplos:\n 1- José Santos\n 2- Maria Ribeiro\n";	
	
	_space	= posc(_name," ",0);
	_parte1	= _name.substring(0, _space);
	_parte2	= _name.substring(_space+1, _name.length);
	
	if(_parte1.length <= 2){
		msg += "O Primeiro nome deve ter no mínimo 3 letras!\n";
		resultado = false;
	}
	
	if(_parte2.length <= 2){
		msg += "O Sobrenome nome deve ter no mínimo 3 letras!";
		resultado = false;
	}
	
	if(resultado==false) alert(msg);
	
	return resultado;
}

function reg_valida_e_mail(e_mail){

	var _mascara_e_mail = "[A-Za-z0-9_.-]+@([A-Za-z0-9_]+\.)+[A-Za-z]{2,4}";
	// Valida o Login
	var re=new RegExp(_mascara_e_mail,"g");
	return re.test(e_mail);
}

function reg_valida_nome_(nome){

	var _mascara_nome	= "([A-Za-z_]+\ )+[A-Za-z_]";
	// Valida o Nome
	var re=new RegExp(_mascara_nome,"g");
	return re.test(nome);
}

//Valida número
function valida_valor(_valor, requerido){
	
	_valor = format_number(_valor, 2, ".","");
	
	_result = !isNaN(_valor);
	if(_result && requerido)	_result = Math.abs(_valor) > 0;
	
	return _result;	
}

// Pega a posição do separador decimal
function get_pos_separator(_number){
	var _pos = -1;
	// Pega o Carecter separador
	comp = _number.length;
	for(i=comp-1; i >= 0; i--){
		ch = _number.charAt(i);
		if((ch == ".") || (ch == ",")){
		//if(ch == ","){
			_pos = i;
			break;
		}
	}
	return _pos;
}

// Invert String
function str_revert(_str){
	comp  = _str.length;
	new_str = "";
	for(i=comp-1; i >= 0; i--){
		ch = _str.charAt(i);
		new_str += ch;
	}
	return new_str;
}

// Tira ponto e virgula de uma string;
function str_tpv(_str){
	var new_parte = "";
	for(i=0; i < _str.length; i++){
		ch = _str.charAt(i);
		if((ch == ".") || (ch == ",")){}
		else new_parte += ch;
	}
	return new_parte;
}

// Adiciona o Separador milhar
function add_separador(_str, _sp_milhar){
	_nn 		= 0;
	_new_str	= "";
	comp 		= _str.length;
	for(i=comp-1; i >= 0; i--){
		if(_nn == 3){
				_new_str += _sp_milhar;
				_nn = 0;
		}
		ch = _str.charAt(i);
		_new_str += ch;
		_nn++;	
	}
	return str_revert(_new_str);	
}
// pega um determinado numero de zero
function GetZERO(_n){
	_zeros = "000000000000000000000000000";
	return _zeros.substring(0,_n);
}

// Trata valor recimal
function make_casas(_str, _casas){
	if(_str.length > Math.abs(_casas)){
			return Math.round(_str);
	}else if(_str.length == Math.abs(_casas)){
			return _str;
	}
	else {
		return _str+GetZERO(Math.abs(_casas) - _str.length);
	}
}

function format_number_input(_input, _casas, _sp_decimal, _sp_milhar){

	_input.value = format_number(_input.value, _casas, _sp_decimal, _sp_milhar);
}

// Formata número
function format_number(_number, _casas, _sp_decimal, _sp_milhar){
	
	// converte / string
	_number +="";
	
	var a_separator;
	var	p_separator;
	// trata parametros
	if(_casas== null)			_casas 		= 2;
	if(_sp_decimal== null)		_sp_decimal = ",";
	if(_sp_milhar== null)		_sp_milhar 	= ".";
	
	// Pega a posição do separador decimal
	pos_separator = get_pos_separator(_number);
	//separa as partes se existir
	if(pos_separator >= 0){
		// Separa as partes, antes e depois do separador 
		a_separator = _number.substring(0,pos_separator); 
		p_separator = _number.substring(pos_separator+1, _number.length);	
	}else{
		a_separator = _number;
		p_separator = "0";
	}
	if(a_separator == "") a_separator = "0";	
	// Aplica formato - Tira Ponto e ou Virgula
	new_parte = str_tpv(a_separator);
	// Valida Valor, verifica se as partes são numeros válidos
	if(isNaN(new_parte) || isNaN(p_separator)) alert("Valor Inválido - Somente Números!!!\nInteiro: "+new_parte+"\nFlutuante: "+p_separator);	
	// Aplica formato - Coloca separador milhar
	a_separator = add_separador(new_parte, _sp_milhar);
	// Aplica formato - Coloca separador decimal
	if(Math.abs(_casas) > 0){
		p_separator = _sp_decimal+make_casas(p_separator, _casas);
	} else p_separator = "";
	// devolve o valor
	return a_separator+p_separator;	
}

function FormataSeparador(campo,pos,sep,parada) {
	var vr = new String(campo.value);
	var tam = vr.length;
	if (tam >= pos) {
		if (tam/pos == 1) {
			campo.value = vr.substr(0,pos) + sep;
		} else {
			for (var i = 0; i <= tam; i++) {
				if (vr.charAt(i) == sep)
					temp = i;
			}
			if (temp+pos < tam && tam < campo.maxLength && tam < parada) {
				campo.value = vr.substr(0,temp+pos+1) + sep + vr.substr(temp+pos+1,tam-temp+pos);
			}
		}
	}
}


// _wath = 1;input;select
function Lookup(_input, _select, _what, make_otler){
	// verifica se _what tem conteúdo
	if(_what == null) _what = 1;
	
	if(_what == 1){	 // é imput
		has_inst  = false;
		for(i=0;i < _select.length;i++){
			_value = _select[i].value;
			if(_input.value == _value){
				_select[i].selected = true;
				if (make_otler != null) make_otler.value = _select[i].label
				has_inst = true;
				break;	
			} 	
		}
		// Limpa compos caso não encontra
		if(!has_inst){
			_select[0].selected = true; 		
			if (make_otler != null) make_otler.value = "";
		}
	} // fim input
	else{ // define como sendo select
		_input.value = _select.value;
		if (make_otler != null){
			make_otler.value = "";
			for(i=0;i < _select.length;i++){
				_value = _select[i].value;
				if(_select.value == _value){
					make_otler.value = _select[i].label; 
					break;	
				}
			} 	
		}
	}// fim select
} // fim função - Lookup


function maximize(){
	
	sw = screen.availWidth;
	sh = screen.availHeight;
	
	self.resizeTo(sw, sh);
	self.moveTo(0,0);
	alert('ok');
}

function trim(s) {
	while (s.substring(0,1) == ' ') {
		s = s.substring(1,s.length);
	}
	while (s.substring(s.length-1,s.length) == ' ') {
		s = s.substring(0,s.length-1);
	}
	return s;
}

function trim(s){	
	while(s.substring(0,1) == ' '){
    	s = s.substring(1,s.length);
  	}
  	while(s.substring(s.length-1,s.length) == ' '){
    	s = s.substring(0,s.length-1);
  	}
 	 return s;
}
