var objHorarios;
var idx;

function mostrarForm(d){	
	mostrarSpinner('Carregando horários do dia...');
	$('input[name=inputNome],input[name=inputEmail],input[name=inputTelefone]').val("")
	$('input[name=primeiraConsulta][value=S]').attr('checked', true)	
	setHiddenData(d);
	
	var url = SITE_URL + "index.php/calendario/json_horarios";
	var pars = "data="+ $('input[name=hiddenData]').val();
	
	$.post(url, pars,	
	  function(data){
	  	objHorarios = data;	
		if ((objHorarios.manha.length==0)&&(objHorarios.tarde.length==0)){
			return alert('Este dia não possui horários livres');
		}  		
		$('#aba1').hide();	
		$('#aba2').fadeIn();	
		$('#pDataConsulta').text($('input[name=hiddenData]').val());	
		ocultarSpinner();
		$('select[name=selectConsulta]').val(0);
		if (objHorarios.manha[0] != null){
			$('#inputHora').val(objHorarios.manha[0]);
			idx = 0;
		} else {
			$('#inputHora').val(objHorarios.tarde[0]);
			idx = 0;
		} 
	  },
	  "json"
	);		
}

function mudarData(){
	$('#aba2').hide();
	$('#aba1').fadeIn();
}

function ltrim(s){
	var c = s.length;
	if (c==1){
		return "0" + s;
	} else {
		return s;
	}
}

function setHiddenData(d){
	var data;
	data = ltrim(d) +'/' + $('input[name=hiddenMes]').val() + '/' + $('input[name=hiddenAno]').val(); 
	$('input[name=hiddenData]').val(data);
}

function mostrarSpinner(msg){
	$('#modal').show();
	$('#spinner').text(msg);
	$('#spinner').show();
}

function ocultarSpinner(){
	$('#modal').fadeOut();	
	$('#spinner').fadeOut();
}

function enviar(){
	if ($.trim($('#inputNome').val()) == "") {
		alert("Informe seu nome.");
		return
	}

	if ($.trim($('#inputEmail').val())=="")
		return alert("Informe seu e-mail.");
		
	if ($.trim($('#inputTelefone').val())=="")
		return alert("Informe seu telefone.");			
	
	if ($('#inputTelefone').val().match(/\(\d{2}\)\d{4}-\d{4}/) == null)
		return alert("Informe um número de telefone completo.");
		
	if (($('#inputEmail').val().match(/^([^@]+)@([^@\.]+)\.([^@\.]+)\.(\w{2})$/)==null)&&($('#inputEmail').val().match(/^([^@]+)@([^@\.]+)\.([^@\.]+)$/)==null))	
		return alert("Email inválido.");
		
	mostrarSpinner('Enviando solicitação de consulta...');
	$.post($('#frmCalendario').attr('action'), $('#frmCalendario').serialize(),	
	  function(data){
	    alert(data);
	    ocultarSpinner();
           mudarData();
	  }
	);
	
}

function aumentarHorario(){
	var turno;
	switch($('select[name=selectConsulta]').val()){
		case '0': // Manhã
			turno = 'manha';
			break;
		case '1': // Tarde
			turno = 'tarde';
			break;
	}
	if (objHorarios[turno][idx+1]!=null){
		idx++;
		$('#inputHora').val(objHorarios[turno][idx]);		
	}
}

function diminuirHorario(){
	var turno;
	switch($('select[name=selectConsulta]').val()){
		case '0': // Manhã
			turno = 'manha';
			break;
		case '1': // Tarde
			turno = 'tarde';
			break;
	}
	if (objHorarios[turno][idx-1]!=null){
		idx--;
		$('#inputHora').val(objHorarios[turno][idx]);		
	}
}

function mudarTurno(){
	switch($('select[name=selectConsulta]').val()){
		case '0': // Manhã
			turno = 'manha';
			break;
		case '1': // Tarde
			turno = 'tarde';
			break;
	}
	if (objHorarios[turno][0]!=null){
		idx = 0;
		$('#inputHora').val(objHorarios[turno][idx]);
	} else {
		alert('Não há horários disponíveis neste turno.');
	}	
}


$(document).ready(function(){
	$('#inputTelefone').keydown(function(event){ // Mascara para número de telefone		
			if ($.trim($('#inputTelefone').val())==""){ 
				$('#inputTelefone').val("()-");
			}
			
			if (event.keyCode == 8){ // backspace
				return true;
			}			
			
			if ((!event.shiftKey)&&(((event.keyCode >= 96) && (event.keyCode <= 105)) || ((event.keyCode >= 48) && (event.keyCode <= 57)))) {
				var arrMatch = $('#inputTelefone').val().match(/\({0,1}(\d{0,2})\){0,1}(\d{0,4})-{0,1}(\d*)/)
				arrMatch = (arrMatch[1]+arrMatch[2]+arrMatch[3]).match(/(\d{0,2})(\d{0,4})(\d{0,4})/);				
				
				$('#inputTelefone').val("("+arrMatch[1]+")"+arrMatch[2]+"-"+arrMatch[3]); 
				return true
			}
			else 
				return false
		})
	})