window.params = $H(location.href.split("?").last().toQueryParams());
document.observe("dom:loaded", function(){
  $$('tr.schedule-date-navigation').each(function(element)   { new SchedulesBrowser(element) });
  $$('tr.payment-date-navigation').each(function(element)    { new PaymentsBrowser(element)  });
  $$('.availability-browsing-interface').each(function(form) { new AvailabilityBrowser(form) });
  $$('.appointment-viewing-interface').each(function(form)   { new AppointmentBrowser(form)  });
  $$('.popuplink').each(function(link)                       { new PopupLink(link)           });
  $$('.attention').each(function(walkthrough)				 { walkthrough.highlight({startcolor: "#9FC1E7", duration:1})});
});

function toggle_enabled(el) {
	var el = $(el);
	el.disabled ? el.enable() : el.disable()	
}

function hide_flash_messages() {
	$$('.flash').each(function(s) {
		Effect.BlindUp(s, { delay: 5.0, duration: 0.2 });
	});
}

function switch_provider_widget() {
  $$('.widget_type').each(function(el){ el.hide(); });
  var el = $('widget_picker').options[ $('widget_picker').selectedIndex ].value;
  if (el = $('widget_' + el)) el.show();
}

function switch_customer_details_tab(name) {
  $$('#customer_details_links .customer_details_link').each(function(element) {
    element.removeClassName('active');
  });
  $$('#customer_details_tabs .customer_details_tab').each(function(element) {
    element.hide();
  });
  $('customer_details_' + name + '_link').addClassName('active');
  $('customer_details_' + name + '_tab').show();
  $('customer_details_tab_field').value = name;
}

function check_custom_length(message) {
  custom_length = $('service_custom_length');
  minimum_length_hours = $('service_minimum_length_hours');
  minimum_length_minutes = $('service_minimum_length_minutes');
  if (custom_length.value == 'true') {
    value = confirm(message);
    if (value) {
      minimum_length_hours.value = "24";
      minimum_length_minutes.value = "0";
      minimum_length_hours.disable();
      minimum_length_minutes.disable();
      return;
    }
  }
  custom_length.value = 'false'
  minimum_length_hours.enable();
  minimum_length_minutes.enable();
}



function set_sortable(element_id, callback_url) {
  Sortable.create(element_id, {handle:'dragger', onUpdate:fire_sortable});
  $(element_id).writeAttribute('callback_url', callback_url);
}

function fire_sortable(list) {
  new Ajax.Request( list.readAttribute('callback_url') + "?" + Sortable.serialize(list, {name:'position'}) + "&resource_type=" + list.id.replace("-sortable-list", "") );
}