function initPage()
{
/*
  var nav = document.getElementsByTagName("ul");
  if (nav)
  {
    for (var i = 0; i < nav.length; i++)
    {
      if (nav[i].className == "items")
      {
        var nodes = nav[i].getElementsByTagName("li");
        for (var j = 0; j < nodes.length; j++)
        {

            nodes[j].onmouseover = function ()
            {
              this.className += " hover";
            }
            nodes[j].onmouseout = function ()
            {
              this.className = this.className.replace(" hover", "");
            }
        }
      }
    }
  }

  var nav = document.getElementsByTagName("strong");
  if (nav)
  {
    for (var i = 0; i < nav.length; i++)
    {
      if (nav[i].className == "toltip")
      {

          nav[i].onmouseover = function ()
          {
            this.className += " hover";
          }
          nav[i].onmouseout = function ()
          {
            this.className = this.className.replace(" hover", "");
          }
      }
    }
  }
*/

  var nav = document.getElementById("main-nav");
  if (nav)
  {
    var nodes = nav.getElementsByTagName("li");


    for (var i = 0; i < nodes.length; i++)
    {
      if (nodes[i].className == "catalogue")
      {
        nodes[i].onmouseover = function ()
        {
          this.className += " hover";
        }
        nodes[i].onmouseout = function ()
        {
          this.className = this.className.replace(" hover", "");
        }
      }
    }
  }
  var nav = document.getElementById("main-nav");
  if (nav)
  {
    var nodes = nav.getElementsByTagName("span");


    for (var i = 0; i < nodes.length; i++)
    {
      if (nodes[i].className == "catalogue_rollover")
      {
        nodes[i].onmouseover = function ()
        {
          this.className += " hover";
          var p = this.getElementsByTagName("div").item(0);
          if (p)
            hideSelectBoxes(p);
        }
        nodes[i].onmouseout = function ()
        {
          this.className = this.className.replace(" hover", "");
          showSelectBoxes(this.getElementsByTagName("div").item(0));
        }
      }
    }
  }
  var nav = document.getElementsByTagName("div");
  if (nav)
  {
    for (var i = 0; i < nav.length; i++)
    {
      if (nav[i].className == "info")
      {

          nav[i].onmouseover = function ()
          {
            this.className += " hover";
            var p = this.getElementsByTagName("div").item(0);
            if (p)
              hideSelectBoxes(p);
          }
          nav[i].onmouseout = function ()
          {
            this.className = this.className.replace(" hover", "");
            showSelectBoxes(this.getElementsByTagName("div").item(0));
          }
      }
    }
  }
  var nav = document.getElementsByTagName("span");
  if (nav)
  {
    for (var i = 0; i < nav.length; i++)
    {
      if (nav[i].className.indexOf("primary_button") != -1 || nav[i].className.indexOf("secondary_button") != -1)
      {
          var input = nav[i].firstChild;
          input.onmouseover = function ()
          {
            this.className += " button_hover";
          }
          input.onmouseout = function ()
          {
            this.className = this.className.replace(" button_hover", "");
          }
      }
    }
  }
}
if (window.attachEvent && !window.opera)
  window.attachEvent("onload", initPage);

function reloadInitPage()
{
  if (window.attachEvent && !window.opera)
    initPage();
}

function hide_all_selects()
{
  var selectslist = document.getElementsByTagName("select");
  for (var i = 0; i < selectslist.length; i++) {
    selectslist[i].style.visibility = "hidden";
  }
}

function show_all_selects()
{
  var selectslist = document.getElementsByTagName("select");
  for (var i = 0; i < selectslist.length; i++) {
    selectslist[i].style.visibility = "";
  }
}

/* hide select */
function hideSelectBoxes(object)
{
  if (!object) return;
  if (!object.sboxes)
    object.sboxes = [];
  var ol = getElementX(object);
  var ot = getElementY(object);
  var ow = object.offsetWidth;
  var oh = object.offsetHeight;
  var sboxes = document.all.tags("select");
  for (var i=0; i<sboxes.length; i++)
  {
    var node = sboxes[i].parentNode;
    while (node != object && node.tagName != "BODY")
      node = node.parentNode;
    var skip = (node == object);
    if (skip) continue;
    var t = getElementY(sboxes[i]);
    var l = getElementX(sboxes[i]);
    var w = sboxes[i].offsetWidth;
    var h = sboxes[i].offsetHeight;
    var ver = false;
    if (t > ot && t < (ot + oh))
      ver = true;
    else if ((t + h) > ot && (t + h) < (ot + oh))
      ver = true;
    var hor = false;
    if (l > ol && l < (ol + ow))
      hor = true;
    else if ((l + w) > ol && (l + w) < (ol + ow))
      hor = true;
    else if (l < ol && (l + w) > ol)
      hor = true;
    if (ver && hor && sboxes[i].style.visibility != "hidden")
      object.sboxes[object.sboxes.length] = sboxes[i];
  }
  for (var i=0; i<object.sboxes.length; i++)
    object.sboxes[i].style.visibility = "hidden";
}

function showSelectBoxes(object)
{
  if (!object) return;
  if (!object.sboxes) return;
  for (var i=0; i<object.sboxes.length; i++)
    object.sboxes[i].style.visibility = "";
  object.sboxes = [];
}

function getElementX(object) {return getElementC(object, true)}
function getElementY(object) {return getElementC(object, false)}

function getElementC(element, xAxis)
{
  var initialElement = element;
  var c = 0;

  while (element != null)
  {
    c += (xAxis) ? element.offsetLeft : element.offsetTop;
    if (element.style.position == "absolute")
      break;
    else
      element = element.offsetParent;
  }

  var elementWnd = document.window;
  if (!elementWnd) return c;

  if (!elementWnd.frameElement) return c;

  return c + getElementC(elementWnd.frameElement, xAxis);
}

function enable_form(element) {
  Element.classNames(element).remove('form_toggle_off');
  Element.classNames(element).remove('form_toggle_on');
  Element.classNames(element).add('form_toggle_on');
}

function disable_form(element) {
  Form.reset(element);
  Element.classNames(element).remove('form_toggle_on');
  Element.classNames(element).remove('form_toggle_off');
  Element.classNames(element).add('form_toggle_off');
}

/**
 * Opens an embeded javascript window for Splitgames website.
 *
 * @param  string  id         DOM element id
 * @param  int     width      Width of window
 * @param  int     height     Height of window
 * @param  string  classname  CSS class name to use
 */
function openWindow(id, width, height, classname, title)
{
  if (!title) title = '';
  return Dialog.info($(id).innerHTML, {
    windowParameters: {
      className: classname ? classname : "splitgames",
      width:  width, height: height,
      hideEffect: Element.hide,
      title: title,
      closable: true
    },
    okLabel: "Annuler"
  });
}

/**
 * Opens the js login window
 *
 * @param  string  id         DOM element id
 */
function openLoginWindow(id, title)
{
  return openWindow(id, 390, 210, null, title);
}

function CustomDialog(msg)
{
  Dialog.info(msg,
    {
      windowParameters: {
        className: "splitgames",
        width: 500, height: 92,
        showEffect: Element.show,
        hideEffect: Element.hide
      }
    }
  );
}

function checkTrackingNumber(name, required)
{
  var val = document.forms[name].elements['tracking_number'].value;
  val = val.replace(/\s+/g, '');
  if ((val != "" || required) && !val.match(/^[0-9][a-zA-Z][0-9]{11}$/)) {
    if (required) {
      alert("Le numero de suivi est obligatoire. Vous ne l'avez pas saisi ou celui-ci est incorrect, merci de le modifier.");
    }  else {
      alert("Le numero de suivi entre est incorrect, modifiez-le ou laissez le champ vide si vous n'en avez pas.");
    }

    return false;
  }
  else
  {
    return true;
  }
}

function hasSentGame(action, id, required)
{
  var static_id       = id;
  var static_required = required;
  msg  = '<form action="'+action+'" method="post" name="'+static_id+'" id="'+static_id+'">';

  if (required)
  {
    msg += '<p>Comme vous n\'avez pas encore fait <strong>plus de 3 envois de jeux</strong>, vous devez <strong>obligatoirement</strong> indiquer ci-dessous le numero de suivi (<strong>Colissimo, Distingo ou lettre Max2</strong>) de votre envoi :</p>';
  }
  else
  {
    msg += '<p>Pour beneficier de <strong>notre garantie</strong>, vous devez envoyer votre jeu en courrier suivi (<strong>Colissimo, Distingo ou lettre Max2</strong>) entrez le numero ci-dessous si c\'est le cas, sinon laissez le champ vide :</p>';
  }

  msg += '<p>Numero de suivi : <input type="text" name="tracking_number" id="tracking_'+static_id+'"/></p>';
  msg += '<input type="hidden" name="send" value="1" />';
  msg += '</form>';

  Dialog.confirm(msg,
    {
      windowParameters: {
        className: "splitgames",
        width: 450, height: 180,
        showEffect: Element.show,
        hideEffect: Element.hide,
        title: "Confirmer l'envoi" },
      okLabel: "Je confirme!",
      cancelLabel: "Annuler",
      ok: function(win) { waitCursor(); if (checkTrackingNumber(static_id, static_required)) { $(static_id).submit(); return true; } else { defaultCursor(); return false; } },
      cancel: function(win) { return true; }
    }
  );
}


/*function hasIncidentGame(action, id)
{
  var static_id = id;
  msg  = '<form action="'+action+'" method="post" id="'+static_id+'">';
  msg += '<p>Selectionnez ci-dessous le type d\'incident : ';
  msg += '<select name="incident">';
  msg += '<option value="">-- </option>';
  msg += '<option value="not_received">Je n\'ai pas recu le jeu</option>';
//  msg += '<option value="uncomplete">Le jeu n\'est pas complet</option>';
  msg += '<option value="unusable">Le jeu est inutilisable</option>';
  msg += '</select></p>';
  msg += '</form>';

  Dialog.confirm(msg,
    {
      windowParameters: {
        className: "splitgames",
        width: 450, height: 150,
        showEffect: Element.show,
        hideEffect: Element.hide,
        title: "Signaler un incident" },
      okLabel: "Signaler",
      cancelLabel: "Annuler",
      ok: function(win) { waitCursor(); $(static_id).submit(); return true; },
      cancel: function(win) { return true; }
    }
  );
}*/


function setConditionGame(action, id)
{
  var static_id = id;
  msg  = '<form action="'+action+'" method="post" id="'+static_id+'">';
  msg += '<p>Selectionnez ci-dessous l\'&eacute;tat du jeux re&ccedil;u : ';
  msg += '<select name="condition">';
  msg += '<option value="">-- </option>';
  msg += '<option value="perfect">Le jeu est en parfait &eacute;tat</option>';
  msg += '<option value="ok">Le jeu est en bon &eacute;tat</option>';
  msg += '<option value="not_good">Le jeu est abim&eacute; mais fonctionne</option>';
  msg += '<option value="uncomplete">Le jeu n\'est pas complet</option>';
  msg += '<option value="unusable">Le jeu est inutilisable</option>';
  msg += '</select></p>';
  msg += '</form>';

  Dialog.confirm(msg,
    {
      windowParameters: {
        className: "splitgames",
        width: 500, height: 150,
        showEffect: Element.show,
        hideEffect: Element.hide,
        title: "Signaler l'&eacute;tat du jeu" },
      okLabel: "Signaler",
      cancelLabel: "Annuler",
      ok: function(win) { waitCursor(); $(static_id).submit(); return true; },
      cancel: function(win) { return true; }
    }
  );
}

function waitCursor()
{
 $$('body')[0].style.cursor = 'wait';
}

function defaultCursor()
{
 $$('body')[0].style.cursor = 'default';
}

/**
* Pops up a new window in the middle of the screen
*/
function popupWindow(mypage, myname, w, h, scroll) {
  var winl = (screen.width - w) / 2;
  var wint = (screen.height - h) / 2;
  winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable,status=1'
  win = window.open(mypage, myname, winprops)
  if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
  return win;
}

/**
* check if the login form is visible
*/

focusLoginForm = function ()
{
  //new Form.findFirstElement('loginForm').activate();
  $('login').focus();
}

Event.observe(window, 'load', function() {
  //Event.observe('loginButton', 'click', focusLoginForm);
  //if ($('loginForm')) new Form.focusFirstElement('loginForm');
  if ($('contactForm')) new Form.focusFirstElement('contactForm');
  if ($('profileForm')) new Form.focusFirstElement('profileForm');
  if ($('registerForm')) new Form.focusFirstElement('registerForm');
  /*$$('form').each(function(obj){
    Event.observe(obj, 'submit',  function(event) {
                                    var elt = Event.element(event);
                                    //new Form.Element.disable(elt);
                                    alert($(elt).type);
                                  });
  })*/
});

/*
WHA
*/

function openPaymentPanel(url, height)
{
  var win = window.open(url, 'wha_window', 'width=700,height=' + height + ',left=10,top=10,resizable=yes,status,location=no');
}

function authorizeProduct(productId, sessId, orderId)
{
  var url = '/bundle/pos_init?action=authorize&pid=' + productId + '&sessId=' + sessId + '&orderId=' + orderId;
  openPaymentPanel(url, 370);
}

function authorizeSubscription(offerId, sessId, orderId, currency, nodeUrl)
{
  var url = '/bundle/pos_bundle?action=authorizeOffer&promo=promo&cur=' + currency + '&url=' + nodeUrl + '&amt=0.0&oid=' + offerId + '&sessId=' + sessId + '&orderId=' + orderId;
  openPaymentPanel(url, 600);
}
/*
END WHAs
*/