ScrollBar = new Object();

ScrollBar.sizeheader     = 250;
ScrollBar.sizefooter     = 60;
ScrollBar.is_created     = false;
ScrollBar.sizecitation   = 0;
ScrollBar.sizepartenaire = 0;
ScrollBar.sizetext       = 0;
ScrollBar.steps          = 0;

ScrollBar.init = function() {
 
 
  EwaDebug("ScrooBar.init");
  if($('do_scrollbar') == undefined) {
     return;
  } else {
     EwaDebug("ScrooBar.init : start");
  }
  
  
  
  // est ce que la div du texte est plus grande que la div qu'on va mettre pour le scroll ?
  if(!ScrollBar.should_add('.text_wrapper')) {
    return;
  }
  
  ScrollBar.prepare('.text');
  ScrollBar.do_resize('.text');
  ScrollBar.makeScrollbar( $('scrollbar_container'), $('scrollbar_scrollbar'), $('scrollbar_handle', false, false) );
  

}


ScrollBar.makeScrollbar = function(content,scrollbar,handle,horizontal,ignoreMouse){
    
    
    ScrollBar.steps = (horizontal?(content.getScrollSize().x - content.getSize().x):(content.getScrollSize().y - content.getSize().y))

    if(ScrollBar.is_created) {
      return;
    }
    
    var slider = new Slider(scrollbar, handle, {	
      steps: ScrollBar.steps,
      mode: (horizontal?'horizontal':'vertical'),
      onChange: function(step){
        // Scrolls the content element in x or y direction.
        var x = (horizontal?step:0);
        var y = (horizontal?0:step);
       
        content.scrollTo(x,y);
        EwaDebug("scrool to " +x + "/" + y);
      }
    }).set(0);
    
    if( !(ignoreMouse) ){
      // Scroll the content element when the mousewheel is used within the 
      // content or the scrollbar element.
      $$(content, scrollbar).addEvent('mousewheel', function(e){	
        e = new Event(e).stop();
        var step = slider.step - e.wheel * 30;	
        slider.set(step);					
      });
    }
    
    
    // Stops the handle dragging process when the mouse leaves the document body.
    $(document.body).addEvent('mouseleave',function(){slider.drag.stop()});
    // on n'indique pas que la scroolbar a été créé car pour l'ajax sinon ca le fait planter car il croit qu'elle y est alors que non
    // on avait prévu ca pour le resize .. mais ca foire le resize donc il n'est pas activé
    ScrollBar.is_created = false;
  }
  
  
  
  
  
  ScrollBar.should_add = function(ladiv) {
    var sizewindow  = window.getSize().y;
    var scroll      = $$(ladiv)[0].getScrollSize().y;

    
    var reste = sizewindow - ScrollBar.sizefooter - ScrollBar.sizeheader - scroll;
    
    
    
    if(reste < 0 ) {
      return true;
    } else {
      return false;
    }
  }
  
  
  ScrollBar.prepare = function(ladiv) {
  
    if(ScrollBar.is_created) {
      return;
    }
    
    // on fixe notre id
    $$(ladiv)[0].set('id', 'scrollbar_content');
    

    // on injecte les div dont on a besoin
    // <div class="clear"></div><div id="scrollbar2" class="scrollbar-hor"><div id="handle2" class="handle-hor"></div></div>
     
    var div_container = new Element('div', { id:'scrollbar_container' });
    var div_cont_text = new Element('div', { id:'div_cont_text'       });
    var div_clear     = new Element('div', { id:'scrollbar_clear'     });
    var div_scrollbar = new Element('div', { id:'scrollbar_scrollbar' });
    var div_handle    = new Element('div', { id:'scrollbar_handle'    });



    /* working
    div_container.inject('scrollbar_content', 'before');
    
    div_cont_text.inject('scrollbar_container', 'before');
    div_cont_text.inject('scrollbar_container');
    
    //$('scrollbar_content').inject('div_cont_text');
    
    $('scrollbar_content').inject('scrollbar_container', 'top');
    
    div_scrollbar.inject('scrollbar_container', 'before');
    div_handle.inject('scrollbar_scrollbar');
    
    div_clear.inject('scrollbar_container', 'after');
    */




    div_container.inject('scrollbar_content', 'before');
    
    div_cont_text.inject('scrollbar_container', 'before');
    div_container.inject('div_cont_text');
    
    //$('scrollbar_content').inject('div_cont_text');
    
    $('scrollbar_content').inject('scrollbar_container', 'top');
    
    div_scrollbar.inject('scrollbar_container', 'before');
    div_handle.inject('scrollbar_scrollbar');
    
    div_clear.inject('scrollbar_container', 'after');
    
    // on essaye de sortir la citation
    ScrollBar.sizecitation = 0;
    if($$('.citation').length > 0) {
      EwaDebug("ScrollBar.prepare : citation moves");
      $$('.citation')[0].inject('div_cont_text', 'bottom');
      $$('.citation')[0].addClass('citation_scroll');
      ScrollBar.sizecitation = $$('.citation')[0].getSize().y;
    }
    
    ScrollBar.sizetext = $$(ladiv)[0].getScrollSize().y;
    
    
  }
  
  ScrollBar.do_resize = function(ladiv) {
    
    EwaDebug("ScrollBar.do_resize")
    
    var sizewindow    = window.getSize().y;
    
    var new_size_text = sizewindow - ScrollBar.sizefooter - ScrollBar.sizeheader;    
    
    // on calcul toutes nos hauteurs
    new_size_text = new_size_text - ScrollBar.sizepartenaire - ScrollBar.sizecitation - 50;
    $('scrollbar_scrollbar').setStyle("height", new_size_text);
    $('scrollbar_container').setStyle("height", new_size_text);
    
    var pourcentage = Math.round(new_size_text/ScrollBar.sizetext * new_size_text);
    if(pourcentage > new_size_text) { pourcentage = new_size_text; }
    if(pourcentage < 20) {
      pourcentage = 20;
    }
    $('scrollbar_handle').setStyle('height', pourcentage);    
  }
  
  
  
  
window.addEvent('domready', function(){				
  ScrollBar.init();
});

window.addEvent('resize', function(){
  //ScrollBar.init();
});
  


