/*** Week calendar ***/

function observe_availabilities() {
	if(Prototype.Browser.IE) {
		$$('.availability').each( function(element) { 
	 		element.observe('mouseover', show_availability);
	 		element.observe('mouseout', hide_availability);
		});
	}
}

function show_availability(event) {
	var element = Event.element(event);
	element.up('.availability').addClassName('hovered');
}

function hide_availability(event) {
	var element = Event.element(event);
	element.up('.availability').removeClassName('hovered');	
}

// function select_calendar_datetime(block) {
//  $$('.availability').invoke('removeClassName', 'selected');
//  block.addClassName('selected');
// }

function select_calendar_datetime(block, startdatetime, enddatetime, formatted_time, formatted_end_time) {
  $$('.availability').invoke('removeClassName', 'selected');
  block.addClassName('selected');
  $('d_appointment_start_time').value = startdatetime;
  $('d_appointment_end_time').value = enddatetime;
  if ($('appointment_time')) {
    $('appointment_time').innerHTML = formatted_time;
  } else if ($('start_time')) {
    $('start_time').innerHTML = formatted_time;
    $('end_time').innerHTML = formatted_end_time;
  }
}

/*** Month calendar ***/

select_time_path = '';

function observe_day_availabilities() {
  $$('#portal_day_calendar .block.availability').each(function(element) {
    if (Prototype.Browser.IE) {
      element.observe('mouseover', show_day_availability);
      element.observe('mouseout', hide_day_availability);
    }
    // element.observe('click', select_day_availability);
  });
}

function show_day_availability(event) {
  var element = Event.element(event);
  element.addClassName('hovered');
}

function hide_day_availability(event) {
  var element = Event.element(event);
  element.removeClassName('hovered');
}

function select_day_availability(block, time, string) {
  if (!$('d_appointment_start_time').value || ($('d_appointment_end_time').value||"") != "" || time <= $('d_appointment_start_time').value) {
    $$('#portal_day_calendar .block.availability').invoke('removeClassName', 'selected');
    $('d_appointment_end_time').value = "";
    $('end_time_placeholder').show();
    $('end_time_value').hide();
    $('end_time_value').innerHTML = "";
    $('d_appointment_start_time').value = time;
    $('start_time_placeholder').hide();
    $('start_time_value').show();
    $('start_time_value').innerHTML = string + ", " + startHourAndMinute;
  } else {
    $('d_appointment_end_time').value = time;
    $('end_time_placeholder').hide();
    $('end_time_value').show();
    $('end_time_value').innerHTML = string + ", " + endHourAndMinute;
  }
  fill_day_selection();
}

function fill_day_selection() {
  var min_lower = parseInt($('d_appointment_start_time').value,10) - 86400;
  var min_normal = parseInt($('d_appointment_start_time').value,10);
  var max = parseInt($('d_appointment_end_time').value,10);
  $$('#portal_day_calendar .block.availability').select(function(block){
    var val = parseInt(block.id.split("_").last(),10);
    return (val > min_lower && val <= min_normal) || (val >= min_normal && val <= max);
  }).invoke('addClassName', 'selected');
}

function loadCustomerDetails(text, li) {
  li.removeClassName("selected");
  $("customer_name").value = li.readAttribute("name");
  $("customer_email").value = li.readAttribute("email");
  $("customer_phone").value = li.readAttribute("phone");
  $("customer_mobile_phone_number").value = li.readAttribute("mobile_phone_number");
}