// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
document.observe("dom:loaded", function() {
    $$('.tooltip').invoke("hide");
    var dates = $$('.tipped_content');
    dates.each(function(el, index){
        var tooltipElement = $(el.parentNode).descendants().find(function(element){
            return element.hasClassName('tooltip');
        });
        if (typeof tooltipElement != 'undefined') {
            var tooltip = new Tooltip(el, tooltipElement);
            var offset = $(tooltipElement).getOffsetParent().cumulativeOffset();
            tooltip.options.delta_x = -offset.left;
            tooltip.options.delta_y = -offset.top;
        }
    });
    

    $$('.date-entry').invoke("removeClassName", "being_edited");
    
    /* Show/hide edit controls on mousover */
    $$(".edit").invoke("observe", "mouseover", function(){
      this.select(".edit_controls").invoke("show");
    });
    $$(".edit").invoke("observe", "mouseout", function(){
      if(!this.select(".date-entry").first().hasClassName("being_edited")){
        this.select(".edit_controls").invoke("show");
      }
    });
    
    $$('.edit_controls').invoke("observe", "click", function(e){
      if(!this.parentNode.hasClassName("being_edited")){
        $$('.date-entry').invoke("removeClassName", "being_edited"); /* Hide all forms, reset edit controls */
        $$(".edit_controls").invoke("show");
      }
      
      this.parentNode.toggleClassName("being_edited"); /* Show form of relevant calendar */
      
      e.stop();
    });
    
});