// Funcao para pegar o valor de campos Select #############################################
function getValorSelect(idCampo){
	indice = document.getElementById(idCampo).selectedIndex;
	return document.getElementById(idCampo).options[indice].text;
}

function getValueSelect(idCampo){
	indice = document.getElementById(idCampo).selectedIndex;
	return document.getElementById(idCampo).options[indice].value;
}
// ########################################################################################

// Funcoes para pegar o valor de campos RADIO #############################################
function getSelectedRadio(buttonGroup){
    if (buttonGroup[0]) { 
        for (var i=0; i<buttonGroup.length; i++) {
            if (buttonGroup[i].checked) {
                return i
            }
        }
    } else {
        if (buttonGroup.checked) { return 0; } 
    }
    return -1;
}

function getSelectedRadioValue(buttonGroup){
    var i = getSelectedRadio(buttonGroup);
    if (i == -1) {
        return ""
    } else {
        if (buttonGroup[i]) { 
            return buttonGroup[i].value;
        } else { 
            return buttonGroup.value;
        }
    }
}
// ########################################################################################

// Funções para muidar a cor dos botoes ###################################################
function mudar_cor_over(botao){ 
	botao.style.backgroundColor="#FFFFFF";
} 
function mudar_cor_out(botao){ 
	botao.style.backgroundColor="#D9D9BD";
} 
// ########################################################################################

// Manipulacao das divs de conteudo #######################################################
var tabAtual = 1

function mudarTab(numeroTab){
	desmarcarPassos();
    
    //alert(numeroTab);
    //alert(getSelectedRadioValue(document.getElementsByName("Passo1_Control$radOpcTipoART")));
        
    if (getSelectedRadioValue(document.getElementsByName("Passo1_Control$radOpcTipoART"))=='4'){
        switch (Number(numeroTab)) {
            case 1:
                botaoMarcar = 21;
	            break
            case 5:
                botaoMarcar = 22;
	            break
            case 7:
                botaoMarcar = 24;
	            break
            case 8:
                botaoMarcar = 25;
	            break
            case 9:
                botaoMarcar = 26;
	            break
            case 11:
                botaoMarcar = 23;
	            break
        }        
    } else {
        botaoMarcar = numeroTab;
    }

    if (botaoMarcar!='10'){
        document.getElementById('botao'+botaoMarcar).style.backgroundColor="#FEFEFE";
    }
    document.getElementById('hd_Passo_Atual').value = numeroTab;

	$("#tab_"+tabAtual).toggle()
	$("#tab_"+numeroTab).toggle()
	tabAtual = numeroTab;
}
// ########################################################################################

// Marcar passo ativo #####################################################################
function desmarcarPassos(){
    if (getSelectedRadioValue(document.getElementsByName("Passo1_Control$radOpcTipoART"))=='4'){
        document.getElementById('botao21').style.backgroundColor ="#D9D9BD";
        document.getElementById('botao22').style.backgroundColor ="#D9D9BD";
        document.getElementById('botao23').style.backgroundColor ="#D9D9BD";
        document.getElementById('botao24').style.backgroundColor ="#D9D9BD";
        document.getElementById('botao25').style.backgroundColor ="#D9D9BD";
        document.getElementById('botao26').style.backgroundColor ="#D9D9BD";
    } else {
	    document.getElementById('botao1').style.backgroundColor  ="#D9D9BD";
	    document.getElementById('botao2').style.backgroundColor  ="#D9D9BD";
	    document.getElementById('botao3').style.backgroundColor  ="#D9D9BD";
	    document.getElementById('botao4').style.backgroundColor  ="#D9D9BD";
	    document.getElementById('botao5').style.backgroundColor  ="#D9D9BD";
	    document.getElementById('botao6').style.backgroundColor  ="#D9D9BD";
	    document.getElementById('botao7').style.backgroundColor  ="#D9D9BD";
	    document.getElementById('botao8').style.backgroundColor  ="#D9D9BD";
	    document.getElementById('botao9').style.backgroundColor  ="#D9D9BD";
    }
}
// ########################################################################################


// Valida formulários #####################################################################
// Ex de aplicação: onclick="valForm('Campo1,Campo2,Campo3...CampoN');"
function valForm(flds){
	// cria o vertor de campos
	f = flds.split(",")
	// pecorre pelo vetor
	for (i=0; i<f.length; i++)
	{
		var o = document.getElementById(f[i]);
		// verifica o css aplicado no objeto
		o.style.background = '#FFFFFF';

		if(o.tagName=='INPUT'){		
			// verfica o tipo do objeto
			if(o.type == "text" || o.type == "textarea" || o.type == "password")
			{
				// verifica se esta vazio
				if(o.value == "")
				{	alert("Por favor preencha o campo em destaque"); // alerta de erro
					o.style.background = '#FFFFCC';
					o.focus(); // coloca focu no controle
					return false; // para a função
				}
			}
		}
		else
		{
			// Campo select		
			if (o.tagName=='SELECT')
			{
				if(o.selectedIndex == 0)
				{
					alert("Selecione um item na lista"); // alerta de erro
					o.style.background = '#FFFFCC';
					o.focus(); // coloca focu no controle
					return false; // para a função	
				}
			}
		}
	}
	return (true);	
}
// ########################################################################################

// Mascaras ###############################################################################
function numbers(evt)
{
    var key_code = evt.keyCode  ? evt.keyCode  :
                   evt.charCode ? evt.charCode :
                   evt.which    ? evt.which    : void 0;

    // Habilita teclas <DEL>, <TAB>, <ENTER>, <ESC> e <BACKSPACE>
    if (key_code == 8  ||  key_code == 9  ||  key_code == 13  ||  key_code == 27 )
    {
        return true;
    }
	
	else if(key_code == 44)
	{
		for (i=0; i < document.getElementById('Passo8_Control_txtDimQuant').value.length; i++)
		{
			var Caractere = document.getElementById('Passo8_Control_txtDimQuant').value.charAt(i);
			if(Caractere == ",")
			return false;
		}
		return true;		
	}

    // Habilita teclas <HOME>, <END>, mais as quatros setas de navegação (cima, baixo, direta, esquerda)
    else if ((key_code >= 35)  &&  (key_code <= 40))
    {
        return true
    }

    // Habilita números de 0 a 9
    else if ((key_code >= 48)  &&  (key_code <= 57))
    {
        return true
    }

    return false;
}


// Ex de aplicação: onkeydown="MaskField(this, Data);"
function MaskField(o,f) {
	v_obj = o;
    v_fun = f;
	setTimeout("ExecMask()",1);
}

function ExecMask() {
    v_obj.value = v_fun(v_obj.value);
}

function leech(v){
	v=v.replace(/o/gi,"0")
	v=v.replace(/i/gi,"1")
	v=v.replace(/z/gi,"2")
	v=v.replace(/e/gi,"3")
	v=v.replace(/a/gi,"4")
	v=v.replace(/s/gi,"5")
	v=v.replace(/t/gi,"7")
	return v
}

function numero(v){
	return v.replace(/\D/g,"")
}

function data(v){
	var vr = new String(v);
	vr = vr.replace("/", "");
	vr = vr.replace("/", "");
	vr = vr.replace("/", "");
	tam = vr.length + 1;
	if (tam > 0 && tam < 2)
		v = vr.substr(0, 2) ;
	if (tam > 2 && tam < 4)
		v = vr.substr(0, 2) + '/' + vr.substr(2, 2);
	if (tam > 4 && tam < 7)
		v = vr.substr(0, 2) + '/' + vr.substr(2, 2) + '/' + vr.substr(4, 7);
	return v;
}

function hora(v){
	v=v.replace(/\D/g,"") 
	v=v.replace(/(\d{2})(\d)/,"$1:$2")
	return v
}

function cpf(v){
	v=v.replace(/\D/g,"")
	v=v.replace(/(\d{3})(\d)/,"$1.$2")
	v=v.replace(/(\d{3})(\d)/,"$1.$2") 
	v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") 
	return v
}

function cnpj(v){
	v=v.replace(/\D/g,"")                   
	v=v.replace(/^(\d{2})(\d)/,"$1.$2")     
	v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") 
	v=v.replace(/\.(\d{3})(\d)/,".$1/$2")           
	v=v.replace(/(\d{4})(\d)/,"$1-$2")              
	return v
}

function telefone(v){    
	v=v.replace(/\D/g,"")
	v=v.replace(/^(\d\d)(\d)/g,"($1) $2")
	v=v.replace(/(\d{4})(\d)/,"$1-$2")
	return v
}

function cep(v){
	v=v.replace(/\D/g,"")
	v=v.replace(/^(\d{5})(\d)/,"$1-$2")
	return v
}

function dimensao(v){
    v=v.replace(/\D/g,""); //Remove tudo o que não é dígito
    v=v.replace(/(\d{2})$/,",$1"); //Coloca a virgula
    return v;
}

function valor(v){
    v=v.replace(/\D/g,""); //Remove tudo o que não é dígito
    v=v.replace(/(\d{2})$/,",$1"); //Coloca a virgula
    v=v.replace(/(\d+)(\d{3},\d{2})$/g,"$1.$2"); //Coloca o primeiro ponto
    var qtdLoop = (v.length-3)/3;
    var count = 0;
    while (qtdLoop > count)
    {
	    count++;
	    v=v.replace(/(\d+)(\d{3}.*)/,"$1.$2"); //Coloca o resto dos pontos
    }
    v=v.replace(/^(0)(\d)/g,"$2"); //Coloca hífen entre o quarto e o quinto dígitos
    return v;
}
// ########################################################################################

// Validacao de data ######################################################################
function validarData(pObj) {
	var expReg = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/(19|20)?\d{2}$/;
	var aRet = true;
	
	if ((pObj) && (pObj.value.match(expReg)) && (pObj.value != '')) {

	dia = pObj.value.substring(0,2);
	mes = pObj.value.substring(3,5);
	ano = pObj.value.substring(6,10);
	
	if ((mes == 4 || mes == 6 || mes == 9 || mes == 11 ) && dia > 30) 
		aRet = false;
	else 
		if ((ano % 4) != 0 && mes == 2 && dia > 28) 
			aRet = false;
		else
		if ((ano%4) == 0 && mes == 2 && dia > 29)
			aRet = false;
		} else 
			aRet = false;  
			return aRet;
}
// ########################################################################################

// Validacao de hora ######################################################################
function validarHora(pObj){ 
	if (pObj.value!=''){
		arValue=pObj.value.split(':');
		
		horas = arValue[0];
		minutos = arValue[1];
		situacao = ''; 
	
		if ((horas < 00 ) || (horas > 23) || (minutos < 00) ||(minutos > 59)){ 
			situacao = "falsa"; 
		} 
		if (situacao == "falsa") { 
			pObj.value = '';
			alert("Hora inválida!"); 
		} else {
			pObj.value = completaData(horas)+':'+completaData(minutos);
		}
	}
} 
// ########################################################################################

// Funcao complementar  ###################################################################
function completaData(campo){
	if (campo.toString(10).length<2)
		campo = '0'+campo;
		return campo;
}
// ########################################################################################

// Limitador de data ######################################################################
// Ex de aplicação: onblur="limiteData(this,'','');"
function limiteData(campo,minimo,maximo){
	if (campo.value!=''){
		if (validarData(campo)){	
			if (minimo!=''){
				if (Date.parse(campo.value)<Date.parse(minimo)){
					campo.value = '';
					alert('A data informada e menor que a permitida.\n Data minima: '+minimo);
				}
			} 
			if (maximo!=''){
				if (Date.parse(campo.value)>Date.parse(maximo)){
					campo.value = '';
					alert('A data informada e maior que a permitida.\n Data maxima: '+maximo);
				}
			}
		} else {
			campo.value = '';
			alert('Data invalida.');
		}
	}
}
// ########################################################################################

// Validacao de CPF / CNPJ ################################################################
function aplicaCPFCNPJ(obj){
	if (obj.value.length>11){
		if(isCPFCNPJ(obj.value,2)) {
			MaskField(obj,cnpj);
		} else {
			obj.value = '';
			alert('CNPJ invalido');
		}
	} else {
		if(isCPFCNPJ(obj.value,1)) {
			MaskField(obj,cpf);
		} else {
			obj.value = '';
			alert('CPF invalido');
		}
	}
}

function isCPFCNPJ(campo,pType){
   if( isEmpty( campo ) ){return false;}

   var campo_filtrado = "", valor_1 = " ", valor_2 = " ", ch = "";
   var valido = false;
        
   for (i = 0; i < campo.length; i++){
      ch = campo.substring(i, i + 1);
      if (ch >= "0" && ch <= "9"){
         campo_filtrado = campo_filtrado.toString() + ch.toString()
         valor_1 = valor_2;
         valor_2 = ch;
      }
      if ((valor_1 != " ") && (!valido)) valido = !(valor_1 == valor_2);
   }
   if (!valido) campo_filtrado = "12345678912";

   if (campo_filtrado.length < 11){
      for (i = 1; i <= (11 - campo_filtrado.length); i++){campo_filtrado = "0" + campo_filtrado;}
   }

	if(pType <= 1){
		if ( ( campo_filtrado.substring(9,11) == checkCPF( campo_filtrado.substring(0,9) ) ) && ( campo_filtrado.substring(11,12)=="") ){return true;}
	}

	if((pType == 2) || (pType == 0)){
		if (campo_filtrado.length >= 14){
			if ( campo_filtrado.substring(12,14) == checkCNPJ( campo_filtrado.substring(0,12) ) ){ return true;}
		}
	}
	
	return false;
}

function checkCNPJ(vCNPJ){
   var mControle = "";
   var aTabCNPJ = new Array(5,4,3,2,9,8,7,6,5,4,3,2);
   for (i = 1 ; i <= 2 ; i++){
      mSoma = 0;
      for (j = 0 ; j < vCNPJ.length ; j++)
         mSoma = mSoma + (vCNPJ.substring(j,j+1) * aTabCNPJ[j]);
      if (i == 2 ) mSoma = mSoma + ( 2 * mDigito );
      mDigito = ( mSoma * 10 ) % 11;
      if (mDigito == 10 ) mDigito = 0;
      mControle1 = mControle ;
      mControle = mDigito;
      aTabCNPJ = new Array(6,5,4,3,2,9,8,7,6,5,4,3);
   }
   return( (mControle1 * 10) + mControle );
}

function checkCPF(vCPF){
   var mControle = ""
   var mContIni = 2, mContFim = 10, mDigito = 0;
   for (j = 1 ; j <= 2 ; j++){
      mSoma = 0;
      for (i = mContIni ; i <= mContFim ; i++)
         mSoma = mSoma + (vCPF.substring((i-j-1),(i-j)) * (mContFim + 1 + j - i));
      if (j == 2 ) mSoma = mSoma + ( 2 * mDigito );
      mDigito = ( mSoma * 10 ) % 11;
      if (mDigito == 10) mDigito = 0;
      mControle1 = mControle;
      mControle = mDigito;
      mContIni = 3;
      mContFim = 11;
   }
   return( (mControle1 * 10) + mControle );
}
// ########################################################################################

// isEmpty ################################################################################
function isEmpty(pStrText){
	var	len = pStrText.length;
	var pos;
	var vStrnewtext = "";

	for (pos=0; pos<len; pos++){
		if (pStrText.substring(pos, (pos+1)) != " "){
			vStrnewtext = vStrnewtext + pStrText.substring(pos, (pos+1));
		}
	}

	if (vStrnewtext.length > 0)
		return false;
	else
		return true;
}
// ########################################################################################

// funcao para retornar ao passo atual, quando e selecionado um estado ####################
function retornaPassoAtual(){
	passoAtual  = document.getElementById("hd_Passo_Atual").value;
	   
	if (passoAtual!=''){
		ativaPassos1();
		
		tipoART = getSelectedRadioValue(document.getElementsByName("Passo1_Control$radOpcTipoART"));
		TabSel  = getSelectedRadioValue(document.getElementsByName("Passo2_Control$radOpcTabART"));
        
        /*if (passoAtual==6){
            campo = 'Passo6_Control_ddlCidade';
        } else if (passoAtual==7){
            campo = 'Passo7_Control_ddlCidade';
        }*/
                
        mudarTab(document.getElementById("hd_Passo_Atual").value);
	}
}
// ########################################################################################