/* Versão 1.0 - 01.12.2006 */
function checkall(form, campo){
var form 	= document.forms[form];
var campo 	= form.elements[campo]

	if (campo.length > 1){
		for (i=0; i<campo.length; i++){
			campo[i].checked = true;
		}
	}
	else {
		campo.checked = true;
	}
}


/* retorna o navegador */
function navegador(){
var nav = navigator.userAgent.toLowerCase();

	if (nav.search(/msie\s(\d+(\.?\d)*)/)!=-1){
		nav = 'msie';
	} else if (nav.search(/netscape[\/\s](\d+([\.-]\d)*)/)!=-1) {
		nav = 'netscape';
	} else if (nav.search(/firefox[\/\s](\d+([\.-]\d)*)/)!=-1) {
		nav = 'firefox';
	} else {
		nav = '';
	}

	return nav;
}

/* simula a função getElementById */
function gE(tI) { 
var d=document, r, n, i;
	if (tI instanceof Array){
		for (n=tI.length, i=0; i<n; i++) r[r.length]=d.getElementById ? d.getElementById(tI) : d.all ? d.all[tI] : false; return r;
	} else { 
		return (d.getElementById) ? d.getElementById(tI) : (d.all) ? d.all[tI] : false; 
	}
}
	
/* utilizado para calcular em javascript, considerando sempre a casa decimal o ponto */
function valorjs(valor){

	valor = valor.toString();
	valor = valor.replace('.','');
	valor = valor.replace(',','.');
	
	return parseFloat(valor);
	
}

/* converte um valor com decimal de ponto para decimal de virgula */
function convertevalorjs(valor){

	if (valor.length != 0){
		valor = valor.toString();
		valor = valor.replace('.','#');	
		valor = valor.replace(',','.');
		valor = valor.replace('#',',');
	}
	else {
		valor = 0;
	}
		
	return valor;
}

/* formata o nº de casas decimais considerando a decimal como virgula */
function formatnumber(valor, dec){

	valor= valor.toString();

	if (valor.substring(0,1) == '-'){
		var negativo = 'yes';
	}
	else {
		var negativo = 'no';
	}

	if (valor.length == 1){
		if (valor.substring(0,1) == ','){
			return '0,00';
		}			
		
		if (valor.substring(0,1) == '0'){
			return '0,00';
		}			
	}
	
	if (valor.length == 0){
		return '';
	}
	
	if (valor.substring(0,1) == '0'){
		valor = valor.substring(1,valor.length);
	}			

	var car  = '0123456789,';
	var tmp  = '';
	var dig  = '';
	var tot	 = 0;		
	
	 for (var i = 0; i < valor.length; i++){
		dig = valor.charAt(i);
      	if (car.indexOf(dig) >= 0){
			tmp = tmp + dig;	
		}
    }
	
	var valor = tmp;
	var tmp   = '';
	

	var str  = '' + Math.round(eval(valor.replace(',','.')) * Math.pow(10, dec));
	
	while (str.length <= dec){
		str = '0' + str;
	}

	var decp = str.length - dec;
	//var valor = str.substring(0, decp) + '.' + str.substring(decp, str.length);
	var valor  = str.substring(0, decp);
	var decimal= str.substring(decp, str.length);

	
	for (var i = 0; i < valor.length; i++){
		dig = valor.charAt(i);
      	tmp = dig + tmp;			
    }


	var valor = '';
	
	for (var i = 0; i < tmp.length; i++){
		dig = tmp.charAt(i);
		tot = parseInt(tot) + 1;
		
		if (tot == 3){
			tot = 0;
			dig = '.' + dig;
		}
	
		valor = dig + valor;	
    }

	var valor = valor + ',' +decimal;
	
	if (valor.substring(0,1) == '.'){
		valor = valor.substring(1,valor.length);
	}
		
	if (valor.substring(0,1) == ','){
		valor = valor.substring(1,valor.length);
	}
	
	if (negativo == 'yes'){
		valor = '-' + valor;
	}
	
	return valor;
}

function ChecaData(tipo,de,ate){
	de_ano 	= de.substring(6,10);
	de_mes 	= de.substring(3,5);
	de_dia 	= de.substring(0,2);
	de_data	= de_ano + de_mes + de_dia;
		
	ate_ano = ate.substring(6,10);
	ate_mes = ate.substring(3,5);
	ate_dia = ate.substring(0,2);
	ate_data= ate_ano + ate_mes + ate_dia;
		
	/* data de maior ou igual a data ate*/
	if (tipo == '1'){
		if (de_data >= ate_data) {return true;}
		else {return false;}
	}
		
	/* data de menor ou igual a data ate*/
	else if (tipo == '2'){
		if (de_data <= ate_data) {return true;}
		else {return false;}
	}
		
	/* data de igual a data ate*/
	else if (tipo == '3'){
		if (de_data = ate_data) {return true;}
		else {return false;}
	}
	
	return true;
}

function PressData(s){

	if (event.keyCode == 8){
		return s
	}	
	
	
	
	if (s.length == 10){
		event.returnValue = false;
	}
	
	tamanho 	= s.length
	digito1		= s.substring(tamanho - 1,tamanho);
	digito2		= s.substring(tamanho - 2,tamanho - 1);
	
	if (digito1 == '/' && digito2 == '/'){s = s.substring(0,tamanho - 1); }
	
	if (s.length == 2){
		digito	= s.substring(1,2); 
		if (digito == '/'){
			temp 	= '0' + s;
			temp 	= temp.substring(0,3);
		}
		else{
			temp 	= s + '/';
			temp 	= temp.substring(0,3);
		}		
	} 	
	else if (s.length == 5){
		digito	= s.substring(4,5); 
		if (digito == '/'){
			digito	= s.substring(3,4); 
			temp 	= s.substring(0,3) + '0' + digito + '/';
			temp 	= temp.substring(0,6);
		}
		else{
			temp = s + '/';
			temp = temp.substring(0,6);
		}		
	} 	
	else if (s.length == 8){
		digito	= s.substring(6,8); 
		if (digito == '19' || digito == '20'){
			temp 	= s;
		}
		else{
			if (parseInt(digito) > 50){
				digito	= s.substring(6,8); 
				temp 	= s.substring(0,6) + '19' + digito;
			}
			else{
				digito	= s.substring(6,8); 
				temp 	= s.substring(0,6) + '20' + digito;
			}			
		}		
	} 
	else {temp = s}
	
	return temp
}


// Deixa so' os digitos no numero
function limpa_string(S){
var Digitos = "0123456789";
var temp = "";
var digito = "";
    for (var i=0; i<S.length; i++){
      digito = S.charAt(i);
      if (Digitos.indexOf(digito)>=0){temp=temp+digito}
    }
    return temp
}
	
/* Verifica se é um dígito válido */
function isdigit(c){if ((c >= '0') && (c <= '9')) return true; else return false;}

/* Verifica se é um númerico aceitável */
function ispunct(c)
{
 if ((c == '.') || (c == ',') || (c == '') || (c == '+') ||
     (c == '@') || (c == '_') || (c == '"') || (c == '-') ||
	 (c == '$') || (c == '#') || (c == '!') ||
	 (c == '%') || (c == '&') || (c == '*') || (c == '(') ||
	 (c == ')') || (c == '=') || (c == '{') || (c == '}') ||
	 (c == '[') || (c == ']') || (c == '/') || (c == '\\') ||
	 (c == ':') || (c == ';') || (c == '>') || (c == '<') ||
	 (escape(c) == '%20') )
 	 return true;
 else
    return false;
}

/* Verifica se é um texto válido */
function isalpha(c){
if (((c >= 'a') && (c <= 'z')) ||
     ((c >= 'A') && (c <= 'Z')))
 	 return true;
else
 	 return false;
}

/* Válida apenas os numeros de acordo como o isdigit e ispunct*/
function SoNumero(s){
 for (var i=0;i<s.length;i++) { 
 	  c = s.substring(i,i+1); 
	  if (!isdigit(c) && !ispunct(c))
	  	  return false;	  
 }
 return true;
 
}

/* Válida apenas numeros inteiros*/
function isInt(s){
 for (var i=0;i<s.length;i++) { 
 	  c = s.substring(i,i+1); 
	  if (!isdigit(c)){
	  	if(c!='-'){	return false;}
	  }	  
 }
 return true;
}


/* Função que válida apenas os e-mails */
function ValidaEmail(email) {
	var achou_ponto=false;
	var achou_arroba=false;
	var achou_caracter=false;
	for(var i=0; i<email.length; i++) {
		if (email.charAt(i)=="@") achou_arroba=true;
        else if (email.charAt(i)==".") achou_ponto=true;
        else if (email.charAt(i)!=" ") achou_caracter=true;
        }
        return (achou_ponto & achou_arroba & achou_caracter);
}

/* Função que valida as datas */
function ValidaData(s){
	var i, c, barras, data;
	var d = new Date();  
	n_barras = 0;					  
	if (s.length != 10) return false; 
	for(i=0; i<s.length; i++) {
	  c = s.substring(i,i+1);
	  if (c == "/") n_barras++;
	  if (n_barras > 2) return false;
	  if (!isdigit(c) && (c != "/")) return false;
	}
	if (n_barras != 2) return false;
	if ( (s.indexOf("/") != 2) || (s.lastIndexOf("/") != 5) )return false;
	d = s.substring(0, 2)// dia
	m = s.substring(3, 5)// mes
	a = s.substring(6, 11)// ano
	if (m<1 || m>12) return false;
	if (d<1 || d>31) return false;
	if (a<1900 || a>3000) return false;
	if (m==4 || m==6 || m==9 || m==11) { if (d==31) return false; }
	if (m==2 && d>28) {if (!(((a-2)%4 == 0) && d == 29)) return false;}
			 
	return true;
}

/* Função que válida CPF e CGC */
function ValidaCPFCGC(s){
	s = limpa_string(s);
	
	if (s.length == 11){
		if (!ValidaCPF(s)){
			return false;
		}
	}
	
	else if (s.length == 14){
		if (!ValidaCGC(s)){
			return false;
		}
	}
	
	else{
			return false;
	}
	
	return true;
}


	
/* Função que válida CPF */
function ValidaCPF(s)
{
	var i;
	s = limpa_string(s);
	var c = s.substr(0,9);
	var dv = s.substr(9,2);
	var d1 = 0;
	for (i = 0; i < 9; i++)
	{
		d1 += c.charAt(i)*(10-i);
	}
        if (d1 == 0) return false;
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1)
	{
		return false;
	}

	d1 *= 2;
	for (i = 0; i < 9; i++)
	{
		d1 += c.charAt(i)*(11-i);
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1)
	{
		return false;
	}
        return true;
}

/* Função que válida CGC */
function ValidaCGC(s)
{
	var i;
	s = limpa_string(s);
	var c = s.substr(0,12);
	var dv = s.substr(12,2);
	var d1 = 0;
	for (i = 0; i < 12; i++)
	{
		d1 += c.charAt(11-i)*(2+(i % 8));
	}
        if (d1 == 0) return false;
        d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1)
	{
		return false;
	}

	d1 *= 2;
	for (i = 0; i < 12; i++)
	{
		d1 += c.charAt(11-i)*(2+((i+1) % 8));
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1)
	{
		return false;
	}
        return true;
}

/* Função para validar Valores */
function SoValor(campo) {
	if (!SoNumero(campo)) {
		return false;
	}

	var count   	= 0;
	var digitos 	= "0123456789,";
	var temp 		= "";
	var separador	= 0;

    for (var i=0; i< campo.length; i++){
     	if (digitos.indexOf(campo.charAt(i)) >= 0){
	  		temp = temp + campo.charAt(i)
		}
		
		if (campo.charAt(i) == ','){
			separador = separador + 1;
		}
    }
	
	if (parseInt(separador) > 1){
		return false;
	}
		
	return true;
}

function left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

function right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}
