var compraComLista = true;


function ajaxInit() {
	http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
            // See note below about this line
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
	return http_request;
}

function antesLogaUsuario(){
	document.getElementById('tabelaCarregando').style.display = '';
	document.getElementById('tabelaLogin').style.display = 'none';
}

function depoisLogaUsuario(){
	document.getElementById('tabelaCarregando').style.display = 'none';
}

function logaUsuario(){
	var email = document.getElementById('campoEmail').value;
	var senha = document.getElementById('campoSenha').value;
	
	if(email == ""){
		alert("Informe seu E-Mail!");
		return false;
	}
	if(senha == ""){
		alert("Informe sua Senha!");
		return false;
	}
	ajax = ajaxInit();
	if(!ajax){
		alert("Erro no Ajax");
		return false;
	}
	setTimeout("",100);
	if(ajax) {
		antesLogaUsuario();
		ajax.onreadystatechange = verificaLogin;
		ajax.open("GET", "loginAjax.php?email="+email+"&senha="+senha, true);
		ajax.send(null);
	} else {
		alert("Erro no Ajax");
	}
}


function logaUsuarioDesconto(){
	var email = document.getElementById('campoEmail').value;
	var senha = document.getElementById('campoSenha').value;
	
	ajax = ajaxInit();
	if(!ajax){
		alert("Erro no Ajax");
		return false;
	}
	setTimeout("",100);
	if(ajax) {
		antesLogaUsuario();
		ajax.onreadystatechange = verificaLoginDesconto;
		ajax.open("GET", "loginAjaxDesconto.php?email="+email+"&senha="+senha, true);
		ajax.send(null);
	} else {
		alert("Erro no Ajax");
	}
}



function verificaLoginDesconto(){
	if (ajax.readyState == 4) {
        if (ajax.status == 200) {
            var idUsuario = "";
			var nome = "";
			var email = "";
			var sexo = "";
			var cpf = "";
			var telefone = "";
            var xmldoc = ajax.responseXML;
			if(xmldoc.getElementsByTagName('idUsuario').item(0).firstChild != null){
				var idUsuario = xmldoc.getElementsByTagName('idUsuario').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('nome').item(0).firstChild != null){
				var nome = xmldoc.getElementsByTagName('nome').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('sobrenome').item(0).firstChild != null){
				var sobrenome = xmldoc.getElementsByTagName('sobrenome').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('email').item(0).firstChild != null){
				var email = xmldoc.getElementsByTagName('email').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('sexo').item(0).firstChild != null){
				var sexo = xmldoc.getElementsByTagName('sexo').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('cpf').item(0).firstChild != null){
				var cpf = xmldoc.getElementsByTagName('cpf').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('telefoneFixoDDD').item(0).firstChild != null){
				var telefoneFixoDDD = xmldoc.getElementsByTagName('telefoneFixoDDD').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('telefoneFixo').item(0).firstChild != null){
				var telefoneFixo = xmldoc.getElementsByTagName('telefoneFixo').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('telefoneCelularDDD').item(0).firstChild != null){
				var telefoneCelularDDD = xmldoc.getElementsByTagName('telefoneCelularDDD').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('telefoneCelular').item(0).firstChild != null){
				var telefoneCelular = xmldoc.getElementsByTagName('telefoneCelular').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('nascimento').item(0).firstChild != null){
				var nascimento = xmldoc.getElementsByTagName('nascimento').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('cep').item(0).firstChild != null){
				var cep = xmldoc.getElementsByTagName('cep').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('rua').item(0).firstChild != null){
				var rua = xmldoc.getElementsByTagName('rua').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('complemento').item(0).firstChild != null){
				var complemento = xmldoc.getElementsByTagName('complemento').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('cidade').item(0).firstChild != null){
				var cidade = xmldoc.getElementsByTagName('cidade').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('bairro').item(0).firstChild != null){
				var bairro = xmldoc.getElementsByTagName('bairro').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('estado').item(0).firstChild != null){
				var estado = xmldoc.getElementsByTagName('estado').item(0).firstChild.data;
			}
			if(idUsuario != ''){
				document.getElementById('tabelaLogin').style.display = 'none';
				document.getElementById('form').style.display = '';
				document.getElementById('form').style.visibility = '';
				document.getElementById('linhaNome').value = nome;
				document.getElementById('nome_lista1').value = nome+' '+sobrenome;
				document.getElementById('nomeConvidado_1_1_M').value = nome;
				document.getElementById('sobreNomeConvidado_1_1_M').value = sobrenome;
				document.getElementById('linhaSobrenome').value = sobrenome;
				document.getElementById('linhaEmail').value = email;
				document.getElementById('linhaNascimento').value = nascimento;
				document.getElementById('linhaCEP').value = cep;
				document.getElementById('linhaRua').value = rua;
				document.getElementById('linhaCidade').value = cidade;
				document.getElementById('linhaEstado').value = estado;
				document.getElementById('linhaComplemento').value = complemento;
				document.getElementById('iduser').value = idUsuario;
				if (sexo == 'M'){
				document.getElementById('linhaSexoMasc').checked="checked";
				} else {
				document.getElementById('linhaSexoFem').checked="checked";
				}
				document.getElementById('linhaCPF').value = cpf;
				document.getElementById('linhaTelefoneFixoDDD').value = telefoneFixoDDD;
				document.getElementById('linhaTelefoneFixo').value = telefoneFixo;
				document.getElementById('linhaTelefoneCelularDDD').value = telefoneCelularDDD;
				document.getElementById('linhaTelefoneCelular').value = telefoneCelular;
				document.getElementById('linhaNome').value = nome;
				document.getElementById('divSenha').style.display='none';
				document.getElementById('divSenhaConfere').style.display='none';
				document.getElementById('novoMembroLink').style.display='none';
				document.getElementById('dadosCadastraisLink').style.display='';
			} else {
				document.getElementById('tabelaLogin').style.display = '';
				document.getElementById('linhaMsgErro').innerHTML = "<b>Usuário ou Senha Inválidos</b>";
			}
        } else {
            alert('Houve um erro ao acessar o servidor. Verifique sua conexão e tente novamente.');
            document.getElementById('tabelaLogin').style.display = '';
        }
        depoisLogaUsuario();
    }
}


function verificaLogin(){
	if (ajax.readyState == 4) {
        if (ajax.status == 200) {
            var idUsuario = "";
			var nome = "";
			var email = "";
			var sexo = "";
			var cpf = "";
			var telefone = "";
            var xmldoc = ajax.responseXML;
			if(xmldoc.getElementsByTagName('idUsuario').item(0).firstChild != null){
				var idUsuario = xmldoc.getElementsByTagName('idUsuario').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('nome').item(0).firstChild != null){
				var nome = xmldoc.getElementsByTagName('nome').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('email').item(0).firstChild != null){
				var email = xmldoc.getElementsByTagName('email').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('sexo').item(0).firstChild != null){
				var sexo = xmldoc.getElementsByTagName('sexo').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('cpf').item(0).firstChild != null){
				var cpf = xmldoc.getElementsByTagName('cpf').item(0).firstChild.data;
			}
			if(xmldoc.getElementsByTagName('telefone').item(0).firstChild != null){
				var telefone = xmldoc.getElementsByTagName('telefone').item(0).firstChild.data;
			}
			if(idUsuario != ''){
				
				document.getElementById('tabelaLogin').style.display = 'none';
				document.getElementById('divSelecaoIngressos').style.display = '';
				document.getElementById('tabelaDadosUsuario').style.display = '';
				document.getElementById('linhaNome').innerHTML = nome;
				document.getElementById('linhaEmail').innerHTML = email;
				document.getElementById('linhaSexo').innerHTML = sexo;
				document.getElementById('linhaCPF').innerHTML = cpf;
				document.getElementById('linhaTelefone').innerHTML = telefone;
				
				// Atualiza a linha de seleção de convite do usuário
				//document.getElementById('colNomeUser').innerHTML = nome;
				//document.getElementById('colSexoUser').innerHTML = sexo;
				//document.getElementById('colCPFUser').innerHTML = "CPF: "+cpf;
				if(sexo == 'Masculino'){
					//document.getElementById('linhaSelectFem').innerHTML = "";
					//document.getElementById('linhaSelectMasc').style.display = "";
				} else {
					//document.getElementById('linhaSelectMasc').innerHTML = "";
					//document.getElementById('linhaSelectFem').style.display = "";
				}
				
			} else {
				document.getElementById('tabelaLogin').style.display = '';
				document.getElementById('linhaMsgErro').innerHTML = "<b>Usuário ou Senha Inválidos</b>";
			}
        } else {
            alert('Houve um erro ao acessar o servidor. Verifique sua conexão e tente novamente.');
            document.getElementById('tabelaLogin').style.display = '';
        }
        depoisLogaUsuario();
    }
}



function mostraCamposIngressos(){
	var r1 = document.getElementById("radioIngressosUsuario");
	var r2 = document.getElementById("radioIngressosUsuarioConvidados");
	var r3 = document.getElementById("radioIngressosConvidados");
	var divUsuario = document.getElementById("divUsuario");
	var divConvidados = document.getElementById("divConvidados");
	if(r1.checked == true){
		divUsuario.style.display = "";
		divConvidados.style.display = "none";
		apagaCamposConvidados();
	} else if(r2.checked == true){
		divUsuario.style.display = "";
		divConvidados.style.display = "";
	} else{
		divUsuario.style.display = "none";
		divConvidados.style.display = "";
	}
	document.getElementById('btProxPasso').style.display = "";
}

function verificaNrConvidados(numMaxConvidados){
	var selects = document.getElementsByName("selectConvidados");
	var total = 0;
	for(x = 0; x < selects.length; x++){
		total += parseInt(selects[x].value);
	}
	if(total <= numMaxConvidados){
		return 0;
	} else {
		return total;
	}
}

function apagaCamposConvidados(){
	var form = document.getElementById("formCompra");
	for(i = 0; i < form.elements.length; i++){
		var elemento = form.elements[i];
		if(elemento.name == "selectConvidados"){
			elemento.options[0].selected = true;
			var id = elemento.id.split("_")[1];
			var tabela = document.getElementById("tabelaConvidados_"+id);
			while(tabela.rows.length > 1){
				tabela.deleteRow(tabela.rows.length-1);
			}
		}
	}
}

function mostraTabelaConvidados(codSelec, formaEntrada, sexo, numMaxConvidados){
	if(formaEntrada == 3 || formaEntrada == 4){
		compraComLista = false;
		document.getElementById('compraComLista').value = 0;
	}
	var cods = codSelec.split("|");
	var idTabela = cods[0];
	valor = cods[1]/100;
	var nrTotalConvidados = verificaNrConvidados(numMaxConvidados);
	if(nrTotalConvidados == 0){
		var tabela = document.getElementById('tabelaConvidados_'+idTabela);
		var nrConvidados = document.getElementById('selectConvidados_'+idTabela).value;
		var nrLinhas = tabela.rows.length;
		if(nrLinhas > nrConvidados){
			y = parseInt(nrConvidados)+1;
			for(x = nrLinhas; x >= y; x--){
				tabela.deleteRow(x-1);
			}
		} else {
			for(x = nrLinhas+1; x <= nrConvidados; x++){
				linha = tabela.insertRow(tabela.rows.length);
				var valueCampos = "";
				if(formaEntrada == 3 || formaEntrada == 4){
					linha.style.display = 'none';
					valueCampos = ''+x+'';
				}
				celula0 = linha.insertCell(0);
				celula0.className = 'tpequeno';
				celula0.width = "30";
				celula0.innerHTML = x;
				
				celula1 = linha.insertCell(1);
				celula1.className = 'tpequeno';
				celula1.width = "40";
				celula1.innerHTML = "CPF: ";
				
				celula2 = linha.insertCell(2);
				celula2.className = 'tpequeno';
				celula2.width = "90";
				celula2.innerHTML = "<input type='text' name='cpf_"+idTabela+"_"+x+"_"+sexo+"' value='"+valueCampos+"' class='form' style='width: 80px;' onBlur='return validaCPF(this)' onKeyPress='return verificaDigitacaoCPF(this, event)' MAXLENGTH='12' >";
								
				celula3 = linha.insertCell(3);
				celula3.className = 'tpequeno';
				celula3.width = "40";
				celula3.align="left";
				celula3.innerHTML = "Nome: ";
				
				celula4 = linha.insertCell(4);
				celula4.className = 'tpequeno';
				celula4.width = "430";
				celula4.align="left";
				celula4.innerHTML = "<input type='text' name='nome_"+idTabela+"_"+x+"_"+sexo+"' value='"+valueCampos+"' class='form' style='width: 160px;' maxlength='40'>";
				
				celula5 = linha.insertCell(5);
				celula5.width = "120";
				celula5.innerHTML = "&nbsp;";
			}
		}
	} else {
		alert('Você pode ter no máximo '+numMaxConvidados+' convidados.');
		var select = document.getElementById("selectConvidados_"+idTabela);
		optionMax = parseInt(select.value)-(nrTotalConvidados-10);
		select.options[optionMax].selected = true;
		if(compraComLista == true){
			mostraTabelaConvidados(codSelec, formaEntrada, sexo, numMaxConvidados);
		}
	}
}

function verificaEnterLogin(campo, e){
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;
	if(code == 13){
		document.getElementById('btnLogaUser').click();
	}
}

function verificaDigitacaoCPF(campo, e){
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;
	if(code >= 48 && code <= 57){
		if(campo.value.length == 9){
			campo.value = campo.value+"-";
		}
		return true;
	}
	return false;
	
}

function validaCPF(campo){
	var i;
	var retorno = true;
	s = campo.value;
	if(s == ""){
		return true;
	}
	s = s.replace(/\-/g,"");
	s = s.replace(/\./g,"");
	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){
		retorno = false;
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1){
		retorno = 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){
		retorno = false;
	}
	if(!retorno){
		alert('CPF "'+s+'" não é um CPF válido.');
		campo.value="";
		campo.focus();
		return false;
	}
	return true;
}


function validaCampos(cpfUsuario, nrMaxConvites){
	var form = document.getElementById("formCompra");
	var radioIngressosUsuario = document.getElementById('radioIngressosUsuario');
	var radioIngressosUsuarioConvidados = document.getElementById('radioIngressosUsuarioConvidados');
	var radioIngressosConvidados = document.getElementById('radioIngressosConvidados');
	
	var radioIngressosTodos = document.getElementById('radioIngressosTodos');
	
	if(compraComLista){
		
		// Compra com lista de convidados - Entrado com Fila e Sem Fila
		var cpfs = new Array();
		if(radioIngressosTodos != null && radioIngressosTodos.checked == true) {
			var countCPFs = 0;
		} else {
			cpfUsuario = cpfUsuario.replace(/\-/g,"");
			cpfUsuario = cpfUsuario.replace(/\./g,"");
			cpfs[0] = cpfUsuario;
			var countCPFs = 1;
		}		
		for(i = 0; i < form.elements.length; i++){
			var elemento = form.elements[i];
			if(elemento.name.indexOf("_")){
				var temp = elemento.name.split("_");
				if(temp[0] == "cpf" || temp[0] == "nome"){
					if(elemento.value == ""){
						alert("Não pode haver campos CPF ou Nome em branco");
						return false;
					}
					if(temp[0] == "cpf"){
						var s = elemento.value;
						s = s.replace(/\-/g,"");
						s = s.replace(/\./g,"");
						for(j = 0; j < cpfs.length; j++){
							if(cpfs[j] == s){
								alert('Não pode haver CPFs repetidos.\nDigite o CPF de cada convidado.');
								return false;
							}
						}
						cpfs[countCPFs] = s;
						countCPFs++;
					}
				}
			}
		}		
		if(radioIngressosUsuario != null && radioIngressosUsuario.checked == true){
			var selecMeuConvite = document.getElementById('meuConvite');
			if(selecMeuConvite == null){
				alert('Ingressos Esgotados para o seu Sexo.');
				return false;				
			} else if(selecMeuConvite[selecMeuConvite.selectedIndex].value < 0){
				alert('Selecione Seu Tipo de Ingresso.');
				return false;
			}
		} else if(radioIngressosConvidados != null && radioIngressosConvidados.checked == true){
			if(countCPFs == 1){
				alert('Você precisa selecionar os ingressos de seus convidados.');
				return false;
			}
		} else if(radioIngressosTodos != null && radioIngressosTodos.checked == true) {
			if(countCPFs == 0){
				alert('Você precisa selecionar os ingressos.');
				return false;
			}
		} else {
			var selecMeuConvite = document.getElementById('meuConvite');
			if(selecMeuConvite == null){
				alert('Ingressos Esgotados para o seu Sexo.');
				return false;
			} else if(selecMeuConvite[selecMeuConvite.selectedIndex].value < 0){
				alert('Selecione Seu Tipo de Ingresso.');
				return false;
			}
			if(countCPFs == 1){
				alert('Você precisa selecionar os ingressos de seus convidados.');
				return false;
			}
		}
		return true;
	} else {
		// Compra quantidade sem preencher a lista - Bilheteria ou Entrada Especial
		if(radioIngressosUsuario.checked == true || radioIngressosUsuarioConvidados.checked == true){
			var selecMeuConvite = document.getElementById('meuConvite');
			if(selecMeuConvite == null){
				alert('Ingressos Esgotados para o seu Sexo.');
				return false;
			} else if(selecMeuConvite[selecMeuConvite.selectedIndex].value < 0){
				alert('Selecione Seu Tipo de Ingresso.');
				return false;
			}
		}
		var selects = document.getElementsByName('selectConvidados');
		var quantidade = 0;
		for (i = 0; i < selects.length; i++){
			quantidade = quantidade + parseInt(selects[i].selectedIndex);
		}
		if(quantidade == 0){
			alert('Selecone a quantidade de convites para seus convidados!');
			return false;
		} else if (quantidade > nrMaxConvites){
			alert('Você pode comprar no máximo '+nrMaxConvites+' convites para seus convidados!');			
			return false;
		} else {
			return true;
		}
	}
}

