// Identificação de browser
var isNav4, isNav, isIE;
if (parseInt(navigator.appVersion.charAt(0)) >= 4) {
  isNav = (navigator.appName=="Netscape") ? true : false;
  isIE = (navigator.appName.indexOf("Microsoft") != -1) ? true : false;
}
if (navigator.appName=="Netscape") {
	isNav4 = (parseInt(navigator.appVersion.charAt(0))==4);
}

function RTrim(s) {
    return s.replace (/\s+$/,'');
}

function LTrim(s) {
    return s.replace (/^\s+/,'');
}

function Trim(s) {
    return s.replace (/\s+/g,'');
}

function MTrim(s) {
    return s.replace (/\B\s+/g,' ');
}

//checks for Enter key, then if true, initiates page processing
//put the following into the HTML <INPUT> Tag:	ONKEYDOWN="Javascript:CheckENTER(formObj, buttonName);"
function CheckENTER(formObj, buttonName) {
	var key = event.keyCode
	if (key == 13)		processPage(formObj, buttonName);
}


/*-----------------------------------------------------------------*
  IsNumber
  Descricao   : Verifica se e um numero
  Parametros  : string contendo apenas numeros
  Retorno			: boolean - true ou false
 -----------------------------------------------------------------*/
function IsNumber(Numero) {
	return (Numero.search(/\D/)==-1) ? true : false;
}

function onlynum(e) {
	var keyNumber = (isIE) ? event.keyCode : e.which;
	if (((keyNumber<48)||(keyNumber>57)) && (keyNumber!=13) && (keyNumber!="0") && (keyNumber!=8)) {
		if (isIE) event.keyCode=0;
		return false;
	}
}

// valida uma data
// MELHORAR ISSO. ELA NÃO PEGA TODAS AS INCONSISTÊNCIAS, COMO 31/02
function valData(src) {
	var ret = true;
	valorData = src;
	arrData = valorData.split('/');
	if (arrData.length != 3) {
		ret = false;
	} else {
		if(arrData[0].length < 2) arrData[0] = "0" + arrData[0]; 
		valor = /[^0-9]/.exec(arrData[0]);
		if((arrData[0]>31)||(arrData[0]<1)||(arrData[0].length!=2)||(valor!=null)) 	ret = false;
		if(arrData[1].length < 2) arrData[1] = "0" + arrData[1]; 
		valor = /[^0-9]/.exec(arrData[1]);
		if((arrData[1]>12)||(arrData[1]<1)||(arrData[1].length!=2)||(valor!=null)) ret = false;
		valor = /[^0-9]/.exec(arrData[2]);
		if((arrData[2]<1900)||(arrData[2]>2070)||(arrData[2].length!=4)||(valor!=null)) ret = false;
		if(((arrData[1]==4)||(arrData[1]==6)||(arrData[1]==9)||(arrData[1]==11))&&arrData[0]>30) ret = false;
    if(((arrData[2]%4==0)&&(arrData[2]%100!=0))||(arrData[2]%400==0)) {
      if((arrData[1]==2)&&(arrData[0]>29)) ret = false;
    } else {
      if((arrData[1]==2)&&(arrData[0]>28)) ret = false;
    }
	}
	return ret;
}

// Baseado no trabalho de Francisco C Paulino - Tofinha (fcptofinha@globo.com)
// Data: 08/11/2002 - 11:55hs
// formata um campo como dinheiro
function formataReaisSimples(fld, e) {
  var sep = 0;
  var key = '';
  var i = j = 0;
  var len = len2 = 0;
  var strCheck = '0123456789';
  var aux = aux2 = '';
  var whichCode = (window.Event) ? e.which : e.keyCode;
  if ((whichCode == 13) || (whichCode == 0) || (whichCode == 8)) return true;
  key = String.fromCharCode(whichCode); // Valor para o código da Chave
  if (strCheck.indexOf(key) == -1) return false; // Chave inválida
  len = fld.value.length;
  aux = '';
  for(; i < len; i++)
    if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
  len = aux.length;
  if (len<4) aux += key;
  len = aux.length;
  if (len == 0) {
    fld.value = 'R$ oooo';
   } else {
    fld.value = 'R$ ' + aux;
  }
  return false;
}

// remove tudo não numérico de um cpf
// SEMPRE use esta fç ao submeter um form que tenha cpf.
function limpaCPF(src) {
	var ret = new String;
	var letra = new String;
	var cpf = src;
	var nonNumbers = /\D/;
	for(var i=0;i<cpf.length;i++) {
		letra = cpf.charAt(i);
		if(!nonNumbers.test(letra)) {
			ret+=letra;
		}
	}
	return ret;
}

// coloca os pontos e traço em um cpf
// Use esta fç nas raras vezes que um cpf não for mascarado
function pintaCPF(src) {
	return src.substring(0,3)+"."+src.substring(3,6)+"."+src.substring(6,9)+"-"+src.substring(9);
}

// valida um CPF
function validaCPF(src) {
	var correto = true;
	if (src.length != 11) correto = false; 
	if (src == "00000000000" || src == "11111111111" || src == "22222222222" || 
			src == "33333333333" || src == "44444444444" || src == "55555555555" || 
			src == "66666666666" || src == "77777777777" || src == "88888888888" || 
			src == "99999999999" || src == "12345678909") {
		correto = false;
	}
	var a = [];
	var b = new Number;
	var c = 11;
	for (i=0; i<11; i++){
		a[i] = src.charAt(i);
		if (i < 9) b += (a[i] * --c);
	}
	if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
	b = 0;
	c = 11;
	 for (y=0; y<10; y++) b += (a[y] * c--); 
	if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
	if ((src.charAt(9) != a[9]) || (src.charAt(10) != a[10])){
		correto = false;
	}
	return correto;
}

// valida um Email
function validaEmail(src) {
	var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
	var regex = new RegExp(emailReg);
	return regex.test(src);
}

// autovalores 2.0
function getElementByName(arg) {
	var ret = document.getElementsByName(arg);
	return ret[0]
}

// Esta função é inserida automaticamente por putAutoValores();
function autoValueOnFocus() {
	var n = this.name;
	if(typeof autovalues[n] == "string") {
		if(this.value == autovalues[n]) {
			this.value = "";
		}
	}
	return;
}

// Esta função é inserida automaticamente por putAutoValores();
function autoValueOnBlur() {
	var n = this.name;
	if(typeof autovalues[n] == "string") {
		if(this.value == "") {
			this.value = autovalues[n];
		}
	}
	return;
}

// limpa todos os autovalores (use antes de começar a validar)
function cleanAutoValues(arg) {
	form = getElementByName(arg);
	for(i=0;i<form.elements.length;i++) {
		if(typeof form.elements[i] == "object") {
			if(typeof form.elements[i].name == "string") {
				n = form.elements[i].name;
				if(typeof autovalues[n] == "string") {
					if(form.elements[i].value == autovalues[n]) {
						form.elements[i].value = "";
					}
				}
			}
		}
	}
}

// coloca todos os autovalores, automagicamente
function putAutoValues(arg) {
	form = getElementByName(arg);
	for(i=0;i<form.elements.length;i++) {
		if(typeof form.elements[i] == "object") {
			if(typeof form.elements[i].name == "string") {
				n = form.elements[i].name;
				if(typeof autovalues[n] == "string") {
					form.elements[i].onblur = autoValueOnBlur;
					form.elements[i].onfocus = autoValueOnFocus;
					if(form.elements[i].value == "") {
						form.elements[i].value = autovalues[n];
					}
				}
			}
		}
	}
}