/* Fonction permettant de rendre inactif un bouton pendant un nombre de millisecondes.
 * Au premier appel, on stocke la date en millisecondes.
 * En suite, on compare les nouveau appels et on retourne " false " tant que l'écart 
 * avec le premier appel est inférieur au nombre de millisecondes défini.
 */
var dateDernierClique;
function dejaCliqueRecemment(tempsAttente) {
  /* 10000 (10 secondes) Si aucun temps d'attente n'est défini par défaut. */
  if (tempsAttente == null)
    tempsAttente = 10000;
  if (dateDernierClique) {
    /* on vérifie que ça fait plus de x millisecondes qu'on a cliqué */
    var maintenant = new Date();
    if ((maintenant.getTime() - dateDernierClique.getTime()) < tempsAttente) {
      return false;
    } else {
      dateDernierClique = new Date();
      return true;
    }
  } else {
    /* premier passage */
    dateDernierClique = new Date();
    return true;
  }
}


/* fonction retrouvant un objet par rapport a son identifiant id
   origin est le conteneur dans lequel la recherche est faite
   Il peut generalement prendre 2 valeurs:
     * par defaut il s'agit du document
     * dans le cas d'une popup, cela peut correspondre a window.opener.document
*/
function getObjectById(id,origin) { 
  var element=null; 
  if (origin.getElementById) { 
       element=origin.getElementById(id); 
  } 
  else { 
       if (origin.all) { 
            element=origin.all[id]; 
       } 
       else { 
            if (origin.layers) 
            {
                 element=origin.layers[id]; 
                }
       } 
  } 
  return element; 
  
}

function $P() {
    var element = arguments[0]; 
    if (typeof element == 'string')
      return getObjectById(element,window.opener.document);
    if (arguments.length == 1) 
      return element;
}

function getPosX(obj) {
        var curleft = 0;
        if (obj.offsetParent) {
                while (obj.offsetParent) {
                        curleft += obj.offsetLeft
                        obj = obj.offsetParent;
                }
        } else if (obj.x) {
                curleft += obj.x;
        }
        return curleft;
}
function getPosY(obj) {
        var curtop = 0;
        if (obj.offsetParent) {
                while (obj.offsetParent) {
                        curtop += obj.offsetTop
                        obj = obj.offsetParent;
                }
        } else if (obj.y) {
                curtop += obj.y;
        }
        return curtop;
}

function getWidth(obj) {
        return obj.offsetWidth;
}
function getHeight(obj) {
        return obj.offsetHeight;
}

/*
Function return if the current navigator is
the one passed in argument
*/
function isNavigator(name)
{
   Nom_Browser = navigator.appName;
   if(Nom_Browser.indexOf(name,0)>0)
   	return true;
   Version_Browser = navigator.appVersion;
   if(Version_Browser.indexOf(name,0)>0)
   	return true;
} 

/*
 Function that enables a quick search of a string
 into an array of string.
 Parameters: - theArray
	     - theElement
 Returns true if theElement is in theArray
*/	

function isStringInArray(theArray, theElement){
  var index = 0;
  var isInArray = false;
  while (index < theArray.length) {
    var item = theArray[index];
    if(theElement==item){
       isInArray = true;
       break;
    }
    index++;
  }
  return isInArray;
}

/**
 * If user is loggued, or logs on the page, return to homepage.
 */
function preventAccesLoggued() {
  if (fb_loggued) {
  	goToHome();
  }
  document.onLoginFB = function() { goToHome() };
}

/** Find the index of item that has the value for the list element (Select,radio..) 
    Return -1 if not found */
function findValueInList(element,value) {
    var result = -1;
    if (element!= null && value != null){
      for (var i = 0; i < element.options.length;i++){
        if (value == element.options[i].value){
          result = i;
          break;
        }
      }
    }
    return result;
  }