
var DURATION = 2500; // time to scroll 1024px
var SPEED = 1024/DURATION;
var FPS = 24;

/* adjust duration option -> constant speed */
function scroll_left(scroll) {
	 var size = scroll.element.getSize();
	 if (!size.scroll.x) return;
	 scroll.options.duration = (size.scroll.x+size.size.x)/SPEED;
	 scroll.toLeft();
}
function scroll_right(scroll) {
	 var size = scroll.element.getSize();
	 if (size.scroll.x == size.scrollSize.x) return;
	 scroll.options.duration = (size.scrollSize.x-size.scroll.x)/SPEED;
	 scroll.toRight();
}
	 
function install_sliders(div) {
  //scroll = new Fx.Scroll(div.getElements("table")[0], {'duration':DURATION});
  var scroll = new Fx.Scroll(div, {'duration':4000, 'transition':Fx.Transitions.Sine.easeInOut, 'fps':FPS});

  but_left = new Element("button", {'class':'slider-button left'});
  but_left.innerHTML = "&lt;";
  but_right = new Element("button", {'class':'slider-button right'});
  but_right.innerHTML = "&gt;";

  zone_left = new Element("div", {'class':'left-slide-zone'});
  zone_right = new Element("div", {'class':'right-slide-zone'});

  but_left.scroll = scroll;
  but_right.scroll = scroll;
  zone_left.scroll = scroll;
  zone_right.scroll = scroll;

  but_left.addEvent("mouseover", function (e) { scroll_left(this.scroll); });
  but_left.addEvent("mouseout", function (e) { this.scroll.stop(); });
 
  zone_left.addEvent("mouseover", function (e) { scroll_left(this.scroll); });
  zone_left.addEvent("mouseout", function (e) { this.scroll.stop(); });

  but_right.addEvent("mouseover", function (e) { scroll_right(this.scroll);});
  but_right.addEvent("mouseout", function (e) { this.scroll.stop(); });
 
  zone_right.addEvent("mouseover", function (e) { scroll_right(this.scroll); });
  zone_right.addEvent("mouseout", function (e) { this.scroll.stop(); });

  var	parent = div.getParent();
  if (parent == document.body) // fixes a bug on ie
    parent = div;
  but_left.injectInside(parent);
  but_right.injectInside(parent);
  zone_left.injectInside(parent);
  zone_right.injectInside(parent);
}

function calculate_width(div) {
  //var elements = div.getElementsByTagName("div");
  var elements = div.getChildren();
  var max_right = 0;
  for (var i = 0;i<elements.length;i++) {
    var element = elements[i];
    //if (element.getTag()=="br") break;
    if (element.getStyle("position")=="absolute") continue;
    if (element.className=="separator") continue;
    var coords = element.getCoordinates();
    var right = coords.left + coords.width;
    if (right>max_right) {
      max_right = right;
    }
  }
  return max_right + 250;
}


function calculate_width_projects(div) {
  //var elements = div.getElementsByTagName("div");
  var elements = div.getChildren();
  var max_right = 0;
  for (var i = 0;i<elements.length;i++) {
    var element = elements[i];
    //if (element.getTag()=="br") break;
    if (element.getStyle("position")=="absolute") continue;
    if (element.className=="separator") continue;
    var coords = element.getCoordinates();
    var right = coords.left + coords.width;
    if (right>max_right) {
      max_right = right;
    }
  }
  return max_right + 20;
}


function calculate_width_history(div) {
  var max_right = 0;
  var ul = div.getElementsByTagName("ul")[0];
  var elements = ul.getElementsByTagName("li");
  for (var i = 0;i<elements.length;i++) {
    var element = $(elements[i]);
    //if (element.getTag()=="br") break;
    if (element.getStyle("position")=="absolute") continue;
    if (element.className=="separator") continue;
    var coords = element.getCoordinates();
    var right = coords.left + coords.width;
    if (right>max_right) {
      max_right = right;
    }
  }
  return max_right + 20;
}

function calculate_width_news(div) {
  var max_right = 0;
  var table = $('news-table');
  var coords = table.getCoordinates();
  return coords.width + 20;
}


function _adjust_size(e) {
    var total_width = calculate_width($('slide'));
    $('slide').setStyle("width", total_width+"px");
    if (total_width<window.getWidth()) {
      if (!window.khtml) {
        $('slide').getParent().getElements(".slider-button").each(
	    function (el) { 
	      el.setStyle("opacity", 0.1); 
	});
      }
    }
  
  $(document.body).setStyle("cursor", "default");
}

function install_thumbs_sliders(div, typical_width) {
  div.addClass("sliding");
  var total_width = 0;
  var slide = $('slide');
  total_width = (slide.getElementsByTagName("div").length) * typical_width;
  slide.setStyle("width", Math.floor(total_width/4)+"px");
  install_sliders(div);
  $(document.body).setStyle("cursor", "wait");
  window.addEvent("load", function () { if (window.ie) setTimeout("_adjust_size()", 1000);  else _adjust_size();});
}
