Event.observe(window, 'load', init);

function init() {
  initMenu();
  initScroll();
  initPopups();
  initExternLink();
}

// --------------------------
// fonctions d'initialisation

// M E N U
function initMenu() {
  if (!$('menu')) return;

  var menu = $('menu');
  menu.className = '';

  var j = 0;
  for ( var i = 0; i < menu.childNodes.length; i++) {
    if (menu.childNodes[i].nodeType == 1 && menu.childNodes[i].nodeName.toLowerCase() == 'li' ) {

      var overEvent = prepareShowMenu(menu.childNodes[i]);
      var outEvent = prepareHideMenu(menu.childNodes[i]);

      menu.childNodes[i].onmouseover = overEvent;
      menu.childNodes[i].onfocus = overEvent;
      menu.childNodes[i].onclick = overEvent;

      menu.childNodes[i].onmouseout = outEvent;
      menu.childNodes[i].onblur = outEvent;

    }
  }
}

// S C R O L L   A C T U A L I T E S
function initScroll() {
  if (!$('actuAcces')) return;

  var liste = $('actuAcces').getElementsByTagName('div').item(0);
  Event.observe(liste, 'mouseover', scroll_pause);
  Event.observe(liste, 'mouseout', scroll_go);
  initialize(liste);
  scroll_go();
}

// L I E N S   E X T E R N E S
function initExternLink() {
  var extLinks = $$('a.ext');
  makeExternLink(extLinks);

}

// P O P U P S
function initPopups() {
  if (!$('popup')) return;

  // fermeture du popup
  var popupClose = $$('#popup #popupClose')[0];
  Event.observe(popupClose, 'click', popupHide);

  // creation des liens
  actuLinks = $$('#actuAcces li a');
  actuLinks.each(function(link){
    makePopupLink(link, '/societe/actualite/id/' + link.href.replace(/(.*)#[a-zA-Z]+([0-9]+)/, "$2" ) );
  });
  offresLinks = $$('#offreAcces li a');
  offresLinks.each(function(link){
    makePopupLink(link, '/rejoignez-nous/annonce?id=' + link.href.replace(/(.*)#[a-zA-Z]+([0-9]+)/, "$2" ) );
  });

  Event.observe(window, 'resize', centerPopup);
  Event.observe(window, 'scroll', centerPopup);
}

// -------------------------
// Gestion du menu deroulant
function prepareShowMenu(elem) {
  return (function() {
    showMenu( elem );
  });
}
function prepareHideMenu(elem) {
  return (function() {
    hideMenu( elem );
  });
}

function showMenu(elem) {
  elem.className = 'hover';
}
function hideMenu(elem) {
  elem.className = '';
}

// ------------------------------------------
// Gestion des actualites (elements defilants)
var scroll_step = 3;						// incrément pour le déplacement
var scroll_delay = 60;					// délai entre chaque pas (ms)
var scroll_waitDelay = 1000;		// délai lorsque un item est en tete de lsite (ms)

var scroll_heights = new Array();
var scroll_height =0;
var scroll_cumulH = new Array();
var scroll_items = new Array();
var scroll_container;
var scroll_list;
var scroll_offset = 0;
var scroll_pause = false;
var scroll_remaningOffset;

var initialize = function(elem) {
    scroll_container = elem;
    scroll_list = elem.getElementsByTagName('ul').item(0);
    scroll_items = $A(elem.getElementsByTagName('li'));

    scroll_container.style.position = 'relative';
    scroll_list.style.position = 'relative';

    // doublage de la liste
    var clonedItems = '';
    var len = scroll_items.length
    for (var i = 0; i < len ; i++) {
      clonedItems += '<li>' + scroll_items[i].innerHTML + '</li>\n';
    }
    scroll_list.innerHTML += clonedItems;
    scroll_items = $A(elem.getElementsByTagName('li'));

    // calcul des hauteurs
    for (var i = 0; i < len*2 ; i++) {
      scroll_heights[i] = scroll_items[i].offsetHeight;
      scroll_height += scroll_heights[i];
      if (i==0) {
        scroll_cumulH[0] = 0;
      } else {
        scroll_cumulH[i] = scroll_cumulH[i-1] + scroll_heights[i-1];
      }
    }
    scroll_height = scroll_height /2;

    scroll_items[0].style.top = '0';
    scroll_items[0].style.position = 'absolute';
    scroll_items[0].style.zIndex = '10';

    var firstH = scroll_heights[0];
    for (var i = 0; i < len * 2; i++) {
      scroll_items[i].style.top = scroll_cumulH[i] + 'px';
      scroll_items[i].style.position='absolute';
      scroll_items[i].style.zIndex = '10';
    }

    doScroll();
}

var scroll_go =  function() {
    scroll_pause = false;
}
var scroll_pause = function() {
  scroll_pause = true;
}

var doScroll = function() {
  var _step;
  if (scroll_pause) {
    _step = 0;
  } else {
    _step = scroll_step;
  }

  var tmp_delay = false;
  for (var i = 0, len = scroll_items.length; i < len ; i++) {
    var new_top = parseInt(scroll_items[i].style.top) - _step;
    if (new_top < scroll_step && new_top >= 0){
      var tmp_delay = true;
    }
    if (new_top < -scroll_height ) {
      new_top += 2*scroll_height;
    }
    scroll_items[i].style.top = new_top + 'px';
  }
  var current_delay = tmp_delay == false ? scroll_delay : scroll_waitDelay;
  setTimeout('doScroll()', current_delay);
}

// ---------------------------
// gestion des listes d'offres
var current_offre_liste;
var current_offre_item;

function offre_show(i,l,c){
  if( current_offre_item === i ){
    return
  }else{
    try {
      current_offre_item.className ='';
      current_offre_liste.remove();
    }catch(e){}

    current_offre_item = i;
    current_offre_liste = l;
    i.className = 'current';
    c.appendChild(l);
    l.hide();
    new Effect.Appear(l, {fps:'10', duration:'.8'});
  }
}
// --------------------------
// gestion des liens externes
function makeExternLink(links){
  var allLinks = $A(links);
  allLinks.each(function(link) {link.target = '_blank';});
}

// ----------------------
// gestion des popup AJAX
function makePopupLink(elt, url){

  elt.href = '#';
  Event.observe(elt,'click', function(){
      new Ajax.Updater('popupContent', url,
        {
          asynchronous:true,
          onComplete: loadedPopup,
          onLoading: loadingPopup
        }
      );
      centerPopup();
      return false;
    });
}
function centerPopup() {
  var popupW = 727;

  var popup = $('popup');
  var popupC = $('popupContainer');

  var w = parseInt(window.innerWidth||document.body.clientWidth);
  var h = parseInt(window.innerHeight||document.body.clientHeight);

  var left = parseInt(w-popupW)/2;
  if (left<0){left = 0}
  popup.style.left = left + 'px';

  popupC.style.width = w + 'px';
  popupC.style.height = h + 'px';

  // cas de IE
  if ( popup.getStyle('position') == 'absolute' ){
    popup.style.top = parseInt(100 + document.documentElement.scrollTop) + 'px';
  }
}
function popupHide() {
  $('popupContainer').hide();
  $('popup').hide();
}
function loadedPopup() {
  $('popupWaiting').hide();
  var popupContent = $('popupContent')
  popupContent.show();

  var links = popupContent.getElementsBySelector('a.ext');
  makeExternLink(links);
}
function loadingPopup() {
  $('popupContent').hide();
  $('popupWaiting').show();
  $('popupContainer').show();
  $('popup').show();
}
