var ready = true;
var intervalID;
var ret_elm;
$(document).ready(function() {
	setAgendaHovers();
	$("#cancel_agenda").bind("click", unbindRemoveAgenda);
	$("#submit_agenda").bind("click", bookAgenda);
	if (!hasPlaceholderSupport()) {
		$(":input[placeholder]").placeholder();
	}
	$("#agenda_name").bind("click", removeRed);
});
function hasPlaceholderSupport() {
  var input = document.createElement('input');
  return ('placeholder' in input);
}
function browseAgenda(date) {
	if (ready) {
		ready = false;
		clearInterval(intervalID);
		intervalID = setInterval(showWaitAni, 200);

		$.ajax({
		  url: 'php_scripts/ajax/get_inner_html_browse_agenda.php',
		  type: "GET",
		  cache: false,
		  dataType: "json",
		  data: "d="+date,
		  success: function(data) {
				$("#agenda").html(data.agenda_innerHTML);
				setAgendaHovers();
				ready = true;
		  },
		  error: function(jqXHR, textStatus, errorThrown) {
				$("#agenda_title").replaceWith("<h2>Er is een fout opgetreden. De agenda kon niet geladen worden!<h2>");
				ready = true;
		  }
		});
		
	}
	return false;
}
function showWaitAni() {
	clearInterval(intervalID);
	if (ready == false) {
		$("#agenda_title").append("<img src=\"images/ajax_loader.gif\" style=\"padding-left:10px;\">");
	}
}
var current_day;
function setAgendaHovers() {
	$('.tb_available').hover(
		  function () {
			  $(this).addClass("tb_hover");
			$(this).find(".tb_status").append($("<span>reserveer</span>"));
		  }, 
		  function () {
			  $(this).removeClass("tb_hover");
			$(this).find("span:last").remove();
		  }
		);
	var agent = navigator.userAgent.toLowerCase();
	var is_iphone = (agent.indexOf('iphone') != -1);
	if (is_iphone) {
		$('.tb_available').mouseover(function(event){
			showAgendaFunction(event, this);
		});
	 } else {

		$('.tb_available').click(function(event){
			showAgendaFunction(event, this);
		});
	 }
}
var showAgendaFunction = function(event, parent_elm) {
	event.stopPropagation();
	$(ret_elm).removeClass("tb_click");
	current_day = parent_elm;
	var d = $(parent_elm).attr("value");
	$("#agenda_date").val(d);
	if ($(parent_elm).position().left < 75) {
		$("body").addClass("left_pad_fix");
	}
	if ($(parent_elm).position().right < 75) {
		$("body").addClass("right_pad_fix");
	}
	$("#agenda_form")
				.show()
				.position({
					of: $(parent_elm),
					my: "left bottom",
					at: "center top",
					offset: "-145 8"
				});
	$(parent_elm).addClass("tb_click");
	ret_elm = parent_elm;
	$("#agenda_form ").bind("clickoutside", unbindRemoveAgenda);
}
var unbindRemoveAgenda = function() {
		  $("#agenda_form").hide();
		  $("body").removeClass("left_pad_fix");
		  $("body").removeClass("right_pad_fix");
		  $(ret_elm).removeClass("tb_click");
		  $("#agenda_form").unbind("clickoutside", unbindRemoveAgenda);
}
var second_reminder;
var bookAgenda = function() {
	if (ready) {
		var name = $("#agenda_name").val();
		var name_placeholder = $("#agenda_name").attr("placeholder");
		if (trim(name) == "" || name_placeholder == name) {
			if (second_reminder) {
				alert("U dient uw naam op te geven!");
			}
			$("#agenda_name").addClass("red");
			second_reminder = true;
			return false;
		}
		second_reminder = false
		var email = $("#agenda_email").val();
		if ($("#agenda_email").attr("placeholder") == email) {
			email = "";
		}
		var comment = $("#agenda_comment").val();
		if ($("#agenda_comment").attr("placeholder") == comment) {
			comment = "";
		}
		var job_type = $("#agenda_job_type").val();
		
		var date = $("#agenda_date").val();
	
		ready = false;
		jQuery.ajax({
		  url: 'php_scripts/ajax/book_agenda.php',
		  type: "POST",
		  dataType: "json",
		  data: "date="+date+"&name="+name+"&email="+email+"&job_type="+job_type+"&comment="+comment,
		  success: function(data) {
				if (data.status) {
					bookAgendaResult(true);
				} else {
					bookAgendaResult(false);
				}
				ready = true;
		  },
		  error: function(jqXHR, textStatus, errorThrown) {
				bookAgendaResult(false);
				ready = true;
		  }
		});
	}
	return false;
}
function bookAgendaResult(result) {
	if (result) {
		document.getElementById("agenda_form_elm").reset();
		if (!hasPlaceholderSupport()) {
			$(":input[placeholder]").placeholder();
		}
		$(current_day).unbind('mouseenter').unbind('mouseleave');
		$(current_day).unbind('click').unbind('mouseleave');
		$(current_day).removeClass("tb_hover");
		$(current_day).addClass("tb_pending");
		$(current_day).find(".tb_status").css("margin-top", "0");
		$(current_day).find(".tb_status").append($("<span>uw aanvraag<br />is in optie</span>"));
		unbindRemoveAgenda();
		current_day = null;
	} else {
		alert("Er is een fout opgetreden met het reserveren van de agenda. Probeer het opnieuw of neem contact op via e-mail.");
	}	
}
var removeRed = function() {
	$(this).removeClass("red");
}
function trim(str) {
	str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i >= 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}

