/**
* Arquivo............: auxiliares.js
* Data de modificação: 28/09/2009
* Descrição..........: Classe javascript com funções auxiliares
*/

/**
 * Mostra loader da página
 * @retorna void
 * @params int id do loader
 */
function carregaLoader(p_id)
{
	$(p_id).show();
}

/**
 * Esconde loader da página
 * @retorna void
 * @params int id do loader
 */
function escondeLoader(p_id)
{
	$(p_id).hide();
}

/**
 * Mostra elemento e coloca contéudo nele
 * @retorna void
 * @params string elemento, string conteudo, 
 * 		   string tipo de mostragem(FI:fadein,S:show,SD:slidedown,SU:slideup), string velocidade de mostragem
 */
function mostraElemento(p_elemento, p_conteudo, p_tipo, p_velocidade)
{
	if(p_conteudo) $(p_elemento).html(p_conteudo);
	
	switch (p_tipo) 
	{
		case "FI":
			$(p_elemento).fadeIn(p_velocidade);
		break;	
		case "S":
			$(p_elemento).show(p_velocidade);
		break;
		case "SD":
			$(p_elemento).slideDown(p_velocidade);
		break;	
		case "SU":
			$(p_elemento).slideUp(p_velocidade);
		break;						
	}
}

/**
 * Esconde elemento com opção de zerar conteudo
 * @retorna void
 * @params string elemento, booleano (true: zera, false: não zera), 
 * 		   string tipo de mostragem(FO:fadeout,H:hide,SU:slideup), string velocidade que esconde
 */
function escondeElemento(p_elemento, p_zerar, p_tipo, p_velocidade)
{
	if(p_zerar == true) $(p_elemento).html("");

	switch (p_tipo) 
	{
		case "FO":
			$(p_elemento).fadeOut(p_velocidade);
		break;	
		case "H":
			$(p_elemento).hide(p_velocidade);
		break;
		case "SU":
			$(p_elemento).slideUp(p_velocidade);
		break;				
	}
}

/**
 * Valida CPF
 * @retorna true ou false
 */
function validarCPF(p_valor)
{
   var cpf = p_valor;
   
   var filtro = /^\d{3}.\d{3}.\d{3}-\d{2}$/i;
   if(!filtro.test(cpf)){
	 return false;
   }
   
   cpf = remove(cpf, ".");
   cpf = remove(cpf, "-");
    
   if(cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" ||
	  cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" ||
	  cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" ||
	  cpf == "88888888888" || cpf == "99999999999"){
	  return false;
   }

   soma = 0;
   for(i = 0; i < 9; i++)
   	 soma += parseInt(cpf.charAt(i)) * (10 - i);
   resto = 11 - (soma % 11);
   if(resto == 10 || resto == 11)
	 resto = 0;
   if(resto != parseInt(cpf.charAt(9)))
   {
	 return false;
   }
   soma = 0;
   for(i = 0; i < 10; i ++)
	 soma += parseInt(cpf.charAt(i)) * (11 - i);
   resto = 11 - (soma % 11);
   if(resto == 10 || resto == 11)
	 resto = 0;
   if(resto != parseInt(cpf.charAt(10)))
   {
	 return false;
   }
   return true;
 }
 
 /**
 * Auxiliar a função de validação cpf
 * @retorna void
 * @params string , string
 */
 function remove(str, sub) 
 {
   i = str.indexOf(sub);
   r = "";
   if (i == -1) return str;
   r += str.substring(0,i) + remove(str.substring(i + sub.length), sub);
   return r;
 }
 
 
 /**
 * Função que formata valor ao digitar (R$)
 * @retorna void
 * @params string campo
 */
 function formataValor(field)
{
	var menos = '';
	if(field.value.substring(0, 1) == '-') menos = '-';
	
	var valor = field.value.replace(/\D/g, "");
	if(valor == '')
	{
		field.value = "0,00";
		return false;
	}
	
	var valor = parseFloat(valor);
	var inteiro = new String(parseInt(valor / 100));
	var resto = new String(parseInt(valor % 100));

	if(resto.length < 2) { resto = '0' + resto; }
	i=inteiro.length-1; tres=0;
	while( i>0 )
	{
		if( tres == 2 )
		{
			inteiro = inteiro.substring(0, i) + '.' + inteiro.substring(i);
			tres = 0;
		
		} else {
		
			tres++;
		}
		i--;
	}
	field.value = menos + inteiro + ',' + resto;
}

 /**
 * Função que não permite digitação de letras e carácteres
 * @retorna void
 * @params string campo
 */
function soh_numero(evnt){

 //Função permite digitação de números
 	if (navigator.appName.indexOf('Microsoft') != -1){
 		if (evnt.keyCode < 48 || evnt.keyCode > 57){
 			return false
 		}
 	}else{
 		if ((evnt.charCode < 48 || evnt.charCode > 57) && evnt.keyCode == 0){
 			return false
 		}
 	}
}

 /**
 * Função que válida o CPF
 * @retorna void
 * @params string valor
 */
function isCpf(value)
{
	var i;
	var s = null;
	if ( value.substring(3,4) != '.' )
		s = value;
	else
		s = value.substring(0,3) + value.substring(4,7) + value.substring(8,11) + value.substring(12,14);
	var c = s.substr(0,9); 
	var dv = s.substr(9,2); 
	var d1 = 0; 
	
	switch ( s ){
		case '11111111111':	return false;	break;
		case '22222222222':	return false;	break;
		case '33333333333':	return false;	break;
		case '44444444444':	return false;	break;
		case '55555555555':	return false;	break;
		case '66666666666':	return false;	break;
		case '77777777777':	return false;	break;
		case '88888888888':	return false;	break;
		case '99999999999':	return false;	break;
	}
  
	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 transforma em htyml entities
 * @retorna void
 * @params string valor
 */
function html_entity_decode(str) {
  var ta=document.createElement("textarea");
  ta.innerHTML=str.replace(/</g,"&lt;").replace(/>/g,"&gt;");
  return ta.value;
}


// number formatting function
// copyright Stephen Chapman 24th March 2006, 22nd August 2008
// permission to use this function is granted provided
// that this copyright notice is retained intact
function formatNumber(num,dec,thou,pnt,curr1,curr2,n1,n2) {var x = Math.round(num * Math.pow(10,dec));if (x >= 0) n1=n2='';var y = (''+Math.abs(x)).split('');var z = y.length - dec; if (z<0) z--; for(var i = z; i < 0; i++) y.unshift('0'); if (z<0) z = 1; y.splice(z, 0, pnt); if(y[0] == pnt) y.unshift('0'); while (z > 3) {z-=3; y.splice(z,0,thou);}var r = curr1+n1+y.join('')+n2+curr2;return r;}