/****************************************************************
*	Criado em: 30/01/2007			Por: ANDRÉ LUIZ
****************************************************************/

/*# VALIDA E-MAIL [expressão regular] */
function verficaEmail(campo) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(campo)) {
		return	'';
	}
	return '- O E-MAIL digitado é inválido.\n';
}

/*# aceita só números digitados num campo */
function soNumero(evtKeyPress) {
	var nTecla;
	nTecla = (evtKeyPress.which) ? evtKeyPress.which : evtKeyPress.keyCode;
	
	if((nTecla > 47 && nTecla < 58) || nTecla == 8 || nTecla == 9)
		return true;
	else
		return false;
}

/*# MASCARA */
function mascarar(vc_campo,vc_mascara) {
	var i		= vc_campo.value.length;
	var x		= vc_mascara.substring(0,1);
	var y		= vc_mascara.substring(i);
	
	if (y.substring(0,1) != x) {
		vc_campo.value += y.substring(0,1);
	}
}

/*# VERIFICA DATA #*/
function verificaData(vc_campo) { 
	if (vc_campo.value.length > 0) {  
		it_dia		= (vc_campo.value.substring(0,2)); 
		it_mes		= (vc_campo.value.substring(3,5)); 
		it_ano		= (vc_campo.value.substring(6,10)); 
		it_erro		= 0; 
		
		if ((it_dia < 01) || (it_dia < 01 || it_dia > 30) && (it_mes == 04 || it_mes == 06 || it_mes == 09 || it_mes == 11 ) || it_dia > 31) { 
			it_erro	= 1; 
		} 

		if (it_mes < 01 || it_mes > 12 ) { 
			it_erro	= 1; 
		} 

		if (it_mes == 2 && (it_dia < 01 || it_dia > 29 || (it_dia > 28 && (parseInt(it_ano / 4) != it_ano / 4)))) { 
			it_erro	= 1; 
		} 

		if ((it_ano < 1900) || (it_ano>2078)){
			it_erro	= 1;
		}
		
		if (it_erro == 1) { 
			alert("Por favor, preencha uma data válida!"); 
			vc_campo.value	= '';
			vc_campo.focus(); 
		}
	} 
}

/*# iFrame virtual [ crossBrowser ] #*/
function iframe_virtual(vc_url) {
	// pega iframeVirtual pelo ID ou cria um iframeVirtual caso ñ exista
	var tempIFrame		= (document.getElementById('iframe_virtual')) ? document.getElementById('iframe_virtual') : document.createElement('iframe');
	
	with(tempIFrame) {
		style.border	= '0px';
		style.width		= '0px';
		style.height	= '0px';
	
		setAttribute('id','iframe_virtual');
		setAttribute('name','iframe_virtual');
		setAttribute('src',vc_url);
	}
	
	IFrameObj			= document.body.appendChild(tempIFrame);
}

/* IFRAME VIRTUAL COM UPLOAD DE ARQUIVO */
function $m(quem){
  return document.getElementById(quem)
}
function remove(quem){
 quem.parentNode.removeChild(quem);
}
function addEvent(obj, evType, fn){
     if (obj.addEventListener)
        obj.addEventListener(evType, fn, true)
    if (obj.attachEvent)
        obj.attachEvent("on"+evType, fn)
}
function removeEvent( obj, type, fn ) {
  if ( obj.detachEvent ) {
    obj.detachEvent( 'on'+type, fn );
  } else {
    obj.removeEventListener( type, fn, false ); }
} 

function iframe_upload(form,url_action,id_elemento_retorno,html_exibe_carregando,html_erro_http){
/* Versão: 1.0 - 03/03/2007 - Testado no FF2.0 IE6.0 e OP9.1
* Autor: Micox - Náiron JCG - elmicox.blogspot.com - micoxjcg@yahoo.com.br
* Parametros:
* form - o form a ser submetido ou seu ID
* url_action - url pra onde deve ser submetido o form
* id_elemento_retorno - id do elemento que irá receber a informação de retorno
* html_exibe_carregando - Texto (ou imagem) que será exibido enquanto se carrega o upload
* html_erro_http - texto (ou imagem) que será exibido se der erro HTTP.
*******/
 form = typeof(form)=="string"?$m(form):form;
 
 var erro="";
 if(form==null || typeof(form)=="undefined"){ erro += "O form passado no 1o parâmetro não existe na página.\n";}
 else if(form.nodeName!="FORM"){ erro += "O form passado no 1o parâmetro da função não é um form.\n";}
 if($m(id_elemento_retorno)==null){ erro += "O elemento passado no 3o parâmetro não existe na página.\n";}
 if(erro.length>0) {
  alert("Erro ao chamar a função iframe_upload:\n" + erro);
  return;
 }

 var iframe = document.createElement("iframe");
 iframe.setAttribute("id","iframe-temp");
 iframe.setAttribute("name","iframe-temp");
 iframe.setAttribute("width","0");
 iframe.setAttribute("height","0");
 iframe.setAttribute("border","0");
 iframe.setAttribute("style","width: 0; height: 0; border: none;");
 form.parentNode.appendChild(iframe);
 window.frames['iframe-temp'].name="iframe-temp"; //ie sucks
 
 var carregou = function() { 
   removeEvent( $m('iframe-temp'),"load", carregou);
   var cross = "javascript: ";
   cross += "window.parent.$m('" + id_elemento_retorno + "').innerHTML = document.body.innerHTML; void(0); ";
   
   $m(id_elemento_retorno).innerHTML = html_erro_http;
   $m('iframe-temp').src = cross;
   
   setTimeout(function(){ remove($m('iframe-temp'))}, 250);
  }
 addEvent( $m('iframe-temp'),"load", carregou)
 
 form.setAttribute("target","iframe-temp");
 form.setAttribute("action",url_action);
 form.setAttribute("method","post");
 form.setAttribute("enctype","multipart/form-data");
 form.setAttribute("encoding","multipart/form-data");
 
 form.submit();
 
 if(html_exibe_carregando.length > 0){
  $m(id_elemento_retorno ).innerHTML = html_exibe_carregando;
 }
 
}


/************************************************************************
*	MascaraMoeda CROSSBROWSER				ANDRÉ LUIZ					*
*																		*
*	Exemplo de chamada:		mascaraMoeda(this.value, this.id, event);	*
*************************************************************************/
function mascaraMoeda(valor,cx,evtKeyPress) {
	if (valor) {
		var doc     = eval('document.getElementById("'+cx+'")');
		var nTecla	= (evtKeyPress.which) ? evtKeyPress.which : evtKeyPress.keyCode;
		
		if (nTecla == 110 || nTecla == 188 || nTecla == 190 || nTecla == 194) {
			return false;
		} else {
			valor		= mascararCentavo(valor);
		
			if (mascararCentavo(valor).length > 2) {
				str			= valor.replace(".", "");
				doc.value	= str.substr(0,(str.length-2)) + "." + str.substr((str.length-2),str.length);
			} else {
				valor		= mascararCentavo(valor);
				
				if (valor.length == 1) {
					doc.value	= "0.0" + valor;
				} else {
					doc.value	= "0." + valor;
				}
			}
		}
	}
}
	
function mascararCentavo(mn_valor) {
	if (mn_valor.indexOf('0') == 0) {
		mn_valor	= mn_valor.replace('0.','');
		mn_valor	= mn_valor.replace('0.0','');
	}
	
	mn_valor	= mn_valor.replace('.','');
	
	return		mn_valor;
}


/*# alternativa ao getElementsByName [ APENAS P/ IE ] */
function getElementsByNameIE(vc_tag, vc_name) {
	var ar_elem		= document.getElementsByTagName(vc_tag);
	var ar_retorno	= new Array();
	var vc_atributo	= new String();
	
	for(i = 0, iarr = 0; i < ar_elem.length; i++) {
		vc_atributo = ar_elem[i].getAttribute('name');
		
		if(vc_atributo == vc_name) {
			ar_retorno[iarr] = ar_elem[i];
			iarr++;
		}
	}
	
	return ar_retorno;
}

/*# abre popUp */
function popUp(vc_url, W, H) {
	var W	= (W) ? parseInt(W) : parseInt(window.screen.width * 0.7);
	var H	= (H) ? parseInt(H) : parseInt(window.screen.height * 0.7);
	var X	= Math.ceil((window.screen.height - H) / 2);
	var Y	= Math.ceil((window.screen.width - W) / 2);
	
	window.open(vc_url, 'ap_select', 'width='+W+',height='+H+',top='+X+',left='+Y+',location=no,status=yes,menubar=no,scrollbars=yes,resizable=no,directories=no,toolbar=no').focus();
}

/*# CONTA CARACTER #*/
function contaCaracter(it_caracter,it_limite,vc_campo) {
	if (vc_campo.value.length > it_limite) {
		vc_campo.value		= vc_campo.value.substring(0,it_limite);
	} else {
		it_caracter.value	= it_limite - vc_campo.value.length;
	}
}

/*# limpa formulário e coloca foco no controle [2º param] */
function limpaForm(vc_form, vc_campo){
	var form	= eval('document.' + vc_form);
	// sai da função caso o form não seja encontrado
	if(!form) return false;
	
	form.reset();
	
	var campo	= eval('form.' + vc_campo);
	// move o foco p/ o controle caso o mesmo exista
	if(campo) campo.focus();
	
	return false;
}

/*funcao para evitar problemas com carregamento do DOM no ie6 e 7
--> Descricao: no ie6 e 7 tem um problema com o carregamento de DOM no inicio da pagina

--> ela deve receber como parametro a funcao que ela vai rodar depois da pagina estar carregada
--> deve-se criar um intervalo para chama-la ate que o body esteja pronto
--> var vc_funcao = new String("funcaoQueDeveSerVerificada()")
-->	var it_carregar = setInterval("verificaDOM("+vc_funcao+")",200);
*/

function verificaDOM (vc_funcao){
	if (document.body){
		clearInterval(it_carregar);
		
		eval(vc_funcao);
		
		return true;
		
	}else{
		return false;
		
	}
}


/*# GET RADIO VALUE  #*/
function get_radio_value(radio_array) {
	for (var i = 0; i < radio_array.length; ++i) {
		if (radio_array[i].checked)	return radio_array[i].value;
	}
	
	return null;
}

/*# abre link oriundo do disclaimer e do banner */
function openLink(vc_redirecionamento){
	vc_redirecionamento			= (vc_redirecionamento) ? decodeURI(vc_redirecionamento) : '';
	
	if(vc_redirecionamento.length > 0){
		var ar_redir			= vc_redirecionamento.split('|');
		
		if(ar_redir[1].toLowerCase() == '_self'){
			// mesma janela
			top.location.href	= ar_redir[0];
		} else {
			// nova janela
			setTimeout('window.open(\'' + ar_redir[0] + '\');', 300);
		}
	} else {
		alert('Erro interno na URL.');
	}
}