/* 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;
	}
}

/* abre janela do sistema de acordo com o tamanho da tela e sistema operacional */
function abreGBS(tipo, url, subpasta){
	
	/* substitui caracteres especiais da url */
	if (url.length == 0){
		var url = '';
	} else {
		var url = url.replace('?','%3F');
		var url = url.replace('=','%3D');
		var url = url.replace('&','%26');
	}

	/* se o link for acesso em uma subpasta */	
	if (subpasta == 'yes'){
		var subpasta = '../'
	} else {
		var subpasta = ''
	}

	/* se a tela for maior que 800x600 */	
	if (screen.width > 800){
	
		/* se for para abrir uma nova janela ou abre na mesma tela */
		if (tipo == '1'){
			window.open(subpasta+'frames.asp?nr='+Math.random()+'&url='+url,'_blank');
		} else {
			location = subpasta+'frames.asp?nr='+Math.random()+'&url='+url;
		}
		return;
	}

	/* se a tela for 800x600 */
	else{
		window.open(subpasta+'frames.asp?nr='+Math.random()+'&url='+url,'','width=800,height=600,resizable=0,scrollbars=no,toolbar=no;menubar=no,status=no,left=0,top=0');
	}
}

/* abre popup de qualquer imagem no tamanho original */
function ampliarimagem(src, subpasta){

	/* se o link for acesso em uma subpasta */	
	if (subpasta == 'yes'){
		var subpasta = '../'
	} else {
		var subpasta = ''
	}
	
	
	window.open(subpasta+'imagem.asp?nr='+Math.random()+'&imagem=' + src, 'Ampliação da Imagem','width=1,height=1,resizable=0,scrollbars=no,menubar=no,status=no,left=0,top=0');
}

/* retorna endereço de acordo com o cep informado */
function retornacep(obj, cep, endereco, bairro, cidade, estado){
	iframe.location.href = 'iframes/if_gr_cep.asp?nr='+Math.random()+'&obj='+obj+'&cep='+cep+'&endereco='+endereco+'&bairro='+bairro+'&cidade='+cidade+'&estado='+estado;
}

/* consulta de cep */
function consultacep(url, subpasta){

	/* determina variáveis para o popup	*/
	var title 	= 'Cep';
	var width	= '620';
	var height	= '400';
	var scroll	= 'yes';
	var url		= 'popup/gr_cep.asp?nr='+Math.random()+'&'+ url;
	
	/* chama janela showmodal */
	showmodal(url, title, width, height, scroll, subpasta);
}

/* abre popup de relatorios */
function relatorios(url, orientacao){

	/* determina tamanho de acordo com o tipo de impressão */
	if (orientacao == '1'){
		
	} else {
	
	}

	/* abre relatório */
	window.open(url,'Relatório ','width=765,height=487,resizable=0,scrollbars=yes,menubar=yes,status=no,left=12,top=12','_blank');
}

/* 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; 
	}
}
	





// abre janela em modo modal de acordo com os parâmetros
function showmodal(url, title, width, height, scroll, subpasta){

	// determina variáveis input para o showmodal
	var input 		= {};
		input.title	= title;
		input.url	= url;		
		
	// se não for passado a variável scroll deixa padrão como no
	if (scroll == null){
		scroll = 'no';
	}

	// se não for passado a variável iframe deixa padrão como no
	if (subpasta == null){
		subpasta = 'no';
	}
	
	// se a função for chamada dentro de uma subpasta, volta um diretório para chamar a função modal
	if 	(subpasta == 'yes'){
		url = '../showmodal.asp';
	}
	else {
		url = 'showmodal.asp';
	}
	
	// chama janela showmodal
	output = showModalDialog(url,input,'dialogWidth:'+width+'px; dialogHeight:'+height+'px; help:no; status:no; scroll:'+scroll+'; resizable:yes; center:yes;');

	// executa script de output quando houver
	window.execScript(output);		
}

function valorjs(valor){

	valor= valor.toString();
	
	return parseFloat(valor.replace(',',''));
	
}

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) * 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 (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
}



/* Função para abrir janela */
function popup(u,n,w,h,l,t,s) {
	
	//var Treco={}; //wrapper para new Object();
	//var Result=null;

	//Treco.CodigoFonte=document.body.innerHTML;
	//Treco.FolhasDeEstilo=document.styleSheets;

	//Result=showModalDialog("popup.asp?url="+u,"","dialogWidth:800px;dialogHeight:600px;help:no;status:no;scroll:no;resizable:yes;");
	
	//window.execScript(Result);	

	
	window.open(u,n,'width='+w+',height='+h+',resizable=0,scrollbars='+s+',menubar=no,status=no,left='+l+',top='+t);
}

// 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 	= "";

    for (var i=0; i< campo.length; i++){
     	if (digitos.indexOf(campo.charAt(i)) >= 0){
	  		temp = temp + campo.charAt(i)
		}
    }
	
	campo = temp;
	
	if (parseFloat(campo) > 999999999.99){
		return false;
	}
	
	return true;
}


/* ativa funções no formulário */
function pressform(obj){
var form = obj;
var x    = 0;

	/* loop em todos os campos do formulário */
	while ((x < form.elements.length)){
		
		/* campos números */
		if (form.elements[x].param == 'numero'){
			//form.elements[x].onkeyup = new Function('this.value=limpa_string(this.value);');	
		}
		
		/* campos datas */
		if (form.elements[x].param == 'data'){
			form.elements[x].onkeyup = new Function('if(this.value.length!=10){this.value=PressData(this.value);}');	
		}
		
		/* campos valor */
		if (form.elements[x].param == 'valor'){
			form.elements[x].style.textAlign = 'right';
			//form.elements[x].onblur = new Function("this.value=formatnumber(this.value,2);");				
		}
		
		x ++;			
	}
}


/* altera form */
function alteraform(obj){
var form = obj;

	form.tipo.value = '2';
}

/* cancelar form */
function cancelaform(obj){
var form = obj;
var z 	 = 0;
	

	var x = confirm('Tem certeza que deseja excluir ?'); 
	if (x != true){
		return;
	}
		
	/* ativa todos os campos do formulário */
	while ((z < form.elements.length)){

		/* habilita campos */
		if (form.elements[z].disabled == true){
			form.elements[z].disabled = false;	
		}
						
		z ++;		
	}
	
	form.tipo.value = '3';
	form.submit();	
}

/* validador de qualquer formulário */
function validaform(obj){
var form = obj;
var x    = 0;
var y	 = 0;
var z	 = 0;
var campo= '';

	/* loop em todos os campos do formulário */
	while ((x < form.elements.length)){
	
		/* se o campo estiver desabilitado ou apenas leitura não verifica */	
		if (form.elements[x].disabled == false || form.elements[x].readonly == false){
			
			/* valida text, password ou select */
			if (form.elements[x].type == 'text' || form.elements[x].type == 'textarea' ||  form.elements[x].type == 'password' || form.elements[x].type == 'select-one' || form.elements[x].type == 'file'){
			
				/* se for obrigatório e aida não estiver preeenchido */
				if (form.elements[x].required == 'yes' && form.elements[x].value.length == 0){
					alert(form.elements[x].validationmsg);
					form.elements[x].focus();
					return false;
				}		
				
				/* se for um campo númerico */	
				if (form.elements[x].value.length != 0 && form.elements[x].param == 'numero'){
					if (!SoNumero(form.elements[x].value)){
						alert(form.elements[x].validationmsg + '\n(número inválido, digite apenas números)');
						form.elements[x].focus();
						return false;
					}	
				}		
				
				/* se for um campo de valor */	
				if (form.elements[x].value.length != 0 && form.elements[x].param == 'valor'){
					if (!SoValor(form.elements[x].value)){
						alert(form.elements[x].validationmsg + '\n(valor inválido)');
						form.elements[x].focus();
						return false;
					}	
				}		
				
				/* se for um campo de data */	
				if (form.elements[x].value.length != 0 && form.elements[x].param == 'data'){
					if (!ValidaData(form.elements[x].value)){
						alert(form.elements[x].validationmsg + '\n(data inválida)');
						form.elements[x].focus();
						return false;
					}	
				}		
				
				/* se for um campo de email */	
				if (form.elements[x].value.length != 0 && form.elements[x].param == 'email'){
					if (!ValidaEmail(form.elements[x].value)){
						alert(form.elements[x].validationmsg + '\n(email inválido)');
						form.elements[x].focus();
						return false;
					}	
				}		
				
				/* se for um campo de cpf ou cgc */	
				if (form.elements[x].value.length != 0 && form.elements[x].param == 'cpfcgc'){
					
					form.elements[x].value = limpa_string(form.elements[x].value);
					
					if (!ValidaCPFCGC(form.elements[x].value)){
						alert(form.elements[x].validationmsg + '\n(cpf/cnpj inválido)');
						form.elements[x].focus();
						return false;
					}	
				}	
				
				
				/* checa um período quando os campos forem datade e dataate */
				if (form.elements[x].value.length != 0 && form.elements[x].param == 'data' && form.elements[x].name == 'dataate' && campo == 'datade'){
					if (!ChecaData('2', form.elements[campo].value, form.elements[x].value)){
						alert('A data inicial não pode ser menor que a final.');
						form.elements[x].value = '';
						form.elements[x].focus();
						return false;
					}				
				}		
			}		
			
			/* valida checkbox e rádio */
			if (form.elements[x].type == 'checkbox' || form.elements[x].type == 'radio'){
		
				/* limpa string */		
				var verificar   = 'no';	
				var selecionado = 'no';
				var	y			= 0;
				
				/* se for obrigatório e aida não estiver preeenchido */	
				if (form.elements[x].required == 'yes' && form.elements[x].type == 'radio' || form.elements[x].required == 'yes' && form.elements[x].type == 'checkbox' && form.elements[x].name != campo){
					/* se existir apenas um */
					if (form.elements[x].checked == true){
						selecionado = 'yes';
					}	
							
					/* quando existir vários */
					while ((y < form.elements[form.elements[x].name].length)){
						
						if (form.elements[form.elements[x].name][y].checked == true){
							selecionado = 'yes';
						}					
						
						y ++;
					}		
						
					
					/* se ainda não selecionou nada */
					if (selecionado != 'yes'){
						alert(form.elements[x].validationmsg);
						return false;
					}	
				}		
			}		
		}
		
		/* armaze o último campo validado */
		var campo = form.elements[x].name;
		
		x ++;		
	}

	/* ativa todos os campos do formulário */
	while ((z < form.elements.length)){

	
		/* habilita campos */
		if (form.elements[z].disabled == true){
			form.elements[z].disabled = false;	
		}
						
		z ++;		
	}

	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);
    }
}