﻿$ie = navigator.appVersion.indexOf("MSIE") > 0;

var $ieVersion = 0;
if($ie)
  var $ieVersion = getIeVersion();

// Renvoie la version de IE
function getIeVersion() {
  var $arVersion = navigator.appVersion.split("MSIE");
  return parseFloat($arVersion[1]);
}

// Pour changer l'adresse
function navigate($url) {
  window.location = $url;
}

function MailTo($email, $nom) {
  $email = $email.replace("*", "@");
  if(typeof($nom) != "string")
    $nom = $email;
  document.write("<a href=\"mailto:" + $email + "\">" + $nom + "</a>");
}

// Fait un window.location en ajoutant les variables x et y qui correspondent au scroll de la fenêtre
function LocationPositions($url) {
  var $x = document.body.scrollLeft;
  var $y = document.body.scrollTop;
  navigate($url + ($url.indexOf("?") >= 0 ? "&" : "?") + "x=" + $x + "&y=" + $y);
}

// Affiche ou masque une rubrique
var $menuOuvert = null;
function ouvrirFermerMenu($id) {
  var $rubrique = $("menuRubrique" + $id);
  if(!$rubrique)
    return;
  if($rubrique.style.display == "none") {
    if($menuOuvert != null && $menuOuvert != $id)
      ouvrirFermerMenu($menuOuvert);
    $rubrique.style.display = "block";
    $menuOuvert = $id;
  }
  else {
    $rubrique.style.display = "none";
    $menuOuvert = null;
  }
}

function getXMLHttpRequest() {
  if($ieVersion >= 7)
    var $xhr = new XMLHttpRequest();
  else if(document.all)
    var $xhr = new ActiveXObject("Microsoft.XMLHTTP") ;
	else
    var $xhr = new XMLHttpRequest();
  return $xhr;
}

// Fonction pour mettre en place Ajax
function ajax($page, $element, $eval) {
  var $imgAjax = $("imgAjax");
  if($imgAjax != null)
    $imgAjax.style.display = "block";
  var $xhr = getXMLHttpRequest();
	$xhr.open("GET", $page);
	$xhr.onreadystatechange = function() {
    if ($xhr.readyState == 4) {
      var $result = $xhr.responseText;
      if(typeof($element) == "string") {
        $element = $($element);
        $element.innerHTML = $result;
      }
      if(typeof($eval) == "string")
        eval($eval);
      if($imgAjax != null)
        $imgAjax.style.display = "none";
    }
  }
  $xhr.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
  $xhr.send(null);
}

// Fonctions pour les développer/réduire d'un élément
function showHideInit($idImage, $idElement) {
  var $image = $($idImage);
  var $element = $($idElement);
  $element.style.display = "none";
  $image.style.cursor = "pointer";
  $image.alt = "Cliquez pour déployer";
}

function showHideClick($idImage, $idElement) {
  var $image = $($idImage);
  var $element = $($idElement);
  $element.style.display = $element.style.display == "none" ? "block" : "none";
  $image.className = $element.style.display == "none" ? "img1" : "selected";
}

function AnimationPopup() {

  this.popup = $("popup");
  this.coord = new Array();
  this.hauteurEcran = document.body.clientHeight;
  this.maxi = document.body.clientHeight + document.documentElement.scrollTop;
  this.coord[0] = document.body.scrollLeft + (document.body.clientWidth - this.popup.clientWidth) / 2;
  this.coord[1] = 0;
  this.coord[2] = 0;
  $this = this;

  this.start = function() {
    this.coord[1] += this.coord[2];
    if (this.coord[1] > this.maxi) {
      this.coord[1] = this.maxi;
      this.coord[2] = -this.coord[2] / 1.75;
    }
    this.popup.style.left = this.coord[0] + "px";
    this.popup.style.bottom = (this.hauteurEcran - this.coord[1]) + "px";
    this.coord[2] += 1;
    if ((this.hauteurEcran - this.coord[1]) > 0 || this.coord[2] < 0 || this.coord[2] > 0.37)
      setTimeout("$this.start()", 15);
  }

}


function developperArticle($id) {
  ajax("sys.articles.ajax.asp?ACTION=DETAILLER_ARTICLE&ID=" + $id, "blocArticle" + $id);
}

function resumerArticle($id) {
  ajax("sys.articles.ajax.asp?ACTION=RESUME_ARTICLE&ID=" + $id, "blocArticle" + $id);
}

function afficherSousArticle($idPere, $idFils) {
  ajax("sys.articles.ajax.asp?ACTION=AFFICHER_ARTICLE&ID=" + $idFils, "blocSousArticle" + $idPere);
  $("blocSousArticle" + $idPere).style.display = "block";
}

// Abrégé pour document.getElementById()
function $($id) {
  return document.getElementById($id);
}

// Traite les données JSON
function json($json) {
  return eval("(" + $json + ")");
}

// Centre un élément sur l'explorateur ouvert
function centrer($element) {
  var $document = document.documentElement;
  $element.style.left = $document.scrollLeft + (($document.clientWidth - $element.clientWidth) / 2) + "px";
  $element.style.top = $document.scrollTop + (($document.clientHeight - $element.clientHeight) / 2) + "px";
}

// Sert à poster un formulaire en Ajax
function ajaxPostForm($idForm, $url, $redirect, $eval) {
  var $tab = new Array();
  var $elements = $($idForm).elements
  for(var $i = 0; $i < $elements.length; $i++) {
    if($elements[$i].name)
      $tab.push($elements[$i].name + "=" + encodeURIComponent($elements[$i].value));
  }
  var $request = getXMLHttpRequest();
	$request.open("post", $url, true);
	$request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
	$request.onreadystatechange = function() {
    if ($request.readyState == 4) {
      var $result = json($request.responseText);
      if($result.error)
        alert($result.message);
      else if($redirect)
        window.location = $redirect;
      else
        eval($eval);
    }
  }
  $request.send($tab.join("&"));

}

function reservationsChangeDate($article, $date) {
  ajax("sys.cal.asp?ACTION=ARTICLE&ID=" + $article + "&DEBUT=" + $date, "blocArticle" + $article);
}