var ProtoTabs = Class.create();

ProtoTabs.prototype = {

         initialize: function(element,options) {
             
                              this.options = Object.extend({
                         
                                                   defaultPanel:       '',
                                                   ajaxUrls:           {},
                                                   ajaxLoadingText:    'Loading...' 
                          

                                                          },options || {});
       
                              this.currentTab = '';
                              this.element = $(element);
                              this.listElements = $A(this.element.getElementsByTagName('LI'));

                             //loop over each list element                
                             for(var i=0; i<this.listElements.length;i++)
                              {
                                 //get the tabs
                                 tabLI = this.listElements[i];
                                 var itemLinks = tabLI.getElementsByTagName('A');
                                 tabLI.itemId = itemLinks[0].href.split("#")[1];
                                 tabLI.linkedPanel = $(tabLI.itemId);
                                 tabLI.linkedPanel.style.clear = 'both';

                                 if(this.options.defaultPanel != '' && this.options.defaultPanel == tabLI.itemId)
                                                this.openTab(tabLI);
                                          else
                                                $(tabLI.linkedPanel).hide();
 
                                 $(itemLinks[0]).observe('click',function(event){
                                                    element = Event.findElement(event,'LI');
                                                    this.openTab(element);
                                                    Event.stop(event); 
                                               }.bind(this));
                              }//end for
    
    

                                               },
          openTab: function(tab)
                      {

                         var tab = $(tab);

                         if(this.currentTab  == tab) {return;}

                         if(this.currentTab!='')
                             {
                               this.currentTab.linkedPanel.hide();
                               this.currentTab.removeClassName('selected');  
                             }
                         
                    
                         tab.linkedPanel.show();
                         tab.addClassName('selected');
                       
                         this.currentTab = tab; 

                         var url = this.options.ajaxUrls[tab.itemId] + '?&sid=' + Math.random();

                         if(url != undefined)
                               {
                                  tab.linkedPanel.update(this.options.ajaxLoadingText);
                                //new Ajax.Request(url,{onComplete:function(transport){tab.linkedPanel.update(transport.responseText);}})
                                  new Ajax.Updater(tab.linkedPanel,url,{method:'get',evalScripts:true}); 
                               }
 

                      }

}


