$(function(){

var fullDays;
var occupedSchedule;
var actualDate;
var selectHorarios = document.getElementById('periodo');

//Garante que o navegador não recupere esse valores onReload
$('#data-value').val('');
$('#data-holder').html('');


//Desabilita os dias passados por AJAX do widget DatePicker
function disableDays(date) {
    var noWeekend = $.datepicker.noWeekends(date);
    if(!noWeekend[0]) {
	    return noWeekend;
	}
	
	if(typeof fullDays == 'object' && fullDays != null) {
	    if(fullDays.length > 0) {
			var y = date.getFullYear(),
				m = date.getMonth(),
				d = date.getDate(),
				i;
				
			for(i = 0; i < fullDays.length; i++) {
				if(fullDays[i].year == y && fullDays[i].month - 1 == m && fullDays[i].day == d) {
					return [false];
				}
			}
			return [true];
		}
		else {
		    return [true];
		}
	}
	return [false];

}

//Checa no banco os horarios ocupados e os exclui do SELECT do formulário
function displaySecondStep(dateText) {
    var i, j;
	//Se actualDate ainda não estiver setado, ou for diferente do novo 
	//valor selecionado (dateText), pega os dias disponíveis por AJAX e atribui à ele
    if(dateText != actualDate) {
	    actualDate = dateText;
	    dateText = dateText.split('/')
		dateText = dateText[2] + '-' + dateText[1] + '-' + dateText[0];
		$('#step-two').removeClass('show');
		
		$.ajax({
		    url : 'system/check_disponib.php', 
			dataType: 'json',
		    data : {ajax: '1', request: 'horarios', data: dateText },
			beforeSend : function() { $('#schedule-loading').addClass('active') },
		    success : function(data) {
			  occupedSchedule = data;
			    $('#schedule-loading').removeClass('active');
			    $('#step-two').addClass('show');
				
				for(i = 0; i < selectHorarios.length; i++) {
				    if(i == 0) {
					    selectHorarios[i].selected = true;
					}
					selectHorarios[i].disabled = false; 
					for(j = 0; j < occupedSchedule.length; j++) {
						if(selectHorarios[i].value == occupedSchedule[j]) {
							selectHorarios[i].disabled = true;
						}
					}
				}
				
				//Apenas para IE 6/ IE 7 (vide inc/topo.php)
				if(typeof emulate === 'function') {
				    emulate(selectHorarios);
				}
			}
		});

	}
}

$.datepicker.setDefaults($.datepicker.regional['pt-BR']);
$("#data-value").datepicker({
	beforeShowDay: disableDays,
	minDate: 1,
	maxDate: 15,
	onSelect: function(dateText) {
	    $('#data-holder').html($("#data-value").val());
		displaySecondStep(dateText);
	}
});

$('#bt-pickdate').click(function(e) {
    e.preventDefault();
	//Se fullDays ainda não estive setado, chama JSON, atribui o vl à ele e chama o datePicker
	//Se estuver, chama direto datePicker
	if(!fullDays) {
		$.ajax({
		    url : 'system/check_disponib.php', 
			dataType: 'json',
		    data : {ajax: '1', request: 'dias'},
			beforeSend : function() { $('#date-loading').addClass('active') },
		    success : function(data) {
			  fullDays = data;
			  $('#date-loading').removeClass('active');
			  $("#data-value").datepicker("show");
			}
		});
	} else {
	    $("#data-value").datepicker("show");
	}
});
});
