
Site.Pages.Museum_Services = Class.create
(
    Site.Page,
    {
        constructor: function($super)
        {
            $super();
        },
        
        domOnLoad: function($super, event)
        {
            $super(event);
            
            this.addObservers("lotLinkOnClick", "show_client_list", "hide_client_list");
            
            addEvent($('client_list_show'), "click", this.observers.show_client_list);
            addEvent($('client_list_hide'), "click", this.observers.hide_client_list);
            
            // setup the lot links widget
            if($('lots-scroller-items')){
                this.lotLinks = $('lots-scroller-items').select("a");
                this.lotListItems = $('lots-scroller-items').select("li");
                this.lotDetailsPanels = $('sidebar').select("div.lot-details");
            
            
                this.lotLinks.each
                (
                    function(link)
                    {
                        addEvent(link, "click", this.observers.lotLinkOnClick); 
                    },
                    this
                );
                
                this.lotDetailsPanels.each
                (
                    function(div)
                    {
                        if (!div.hasClassName("lot-details-active"))
                            div.hide();
                        else
                            this.activeLotDetailsPanel = div;
                    },
                    this
                );
            }
            
              
            this.contactTooltipsController = new Site.Controllers.Tooltips
            (
                $('contact-panels').select("a.contact-trigger"),
                {
                    offsetX: 200,
                    offsetY: -30
                }
            );
            
        },
        

        
        
        destroy: function($super)
        {
            
            this.contactTooltipsController.destroy();
            
            
            if($('lots-scroller-items')){
                this.scroller.destroy();
            
                this.lotLinks.each
                (
                    function(link)
                    {
                        removeEvent(link, "click", this.observers.lotLinkOnClick); 
                    },
                    this
                );
            }
            
           
            $super();
        },
        
        windowOnLoad: function($super, event)
        {
            // calculate the inner Width of the Exceptions prices scroller

            if($('lots-scroller-items')){
            var panelWidth = $('lots-scroller-items').select("li").inject(0, function(acc, item) { return acc + item.offsetWidth + 3 }) - 4;
            
            
                // setup the scroller for the lot link widget
                this.scroller = new Site.Widgets.Scroller
                (
                    $('lots-scroller'),
                    {
                        direction: "horizontal",
                        panelWidth: panelWidth,
                        increment: 260,
                        method: "click",
                        scrollDuration: 0.5
                    }
                ); 
            }
            
        },
        
        show_client_list: function(event)
        {
            //alert('test');
            $('client_list_div').show();  
            $('client_list_show').hide();
            $('client_list_hide').show();
            Event.stop(event);   
        },
         
        hide_client_list: function(event)
        {
            $('client_list_div').hide();  
            $('client_list_show').show();
            $('client_list_hide').hide();
            Event.stop(event);  
        },
         
        
        lotLinkOnClick: function(event)
        {
            var element = Event.element(event);
            var a = element.matchUp("a");
            var li = a.up("li");
            
            if (li && a)
            {
                if (!li.hasClassName("active"))
                {
                    if (this.activeLotDetailsPanel)
                        this.activeLotDetailsPanel.hide();
                        
                    this.activeLotDetailsPanel = $(a.id.replace("link", "details"));
                    
                    if (this.activeLotDetailsPanel)
                        this.activeLotDetailsPanel.show();
                
                    this.lotListItems.invoke("removeClassName", "active");
                    li.addClassName("active");
                }
            
            }
            
            if (element.blur)
                element.blur();
            
            
            Event.stop(event);
        }
        
        
        
    }
);


