
Array.prototype.inArray = function (value)
{
    var i;
    for (i=0; i < this.length; i++) {
        // Matches identical (===), not just similar (==).
        if (this[i] === value) {
            return true;
        }
    }
    return false;
};

String.prototype.trim = function(){
	return this.replace(/^\s+/, "").replace(/\s+$/, "");
}

function verifierEmail(email)
{

  /* var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');

	if(reg.test(mailteste))
	{
		return(true);
	}
	else
	{
		return(false);
	}*/

	var re=/^[a-z\d]+((\.|-|_)[a-z\d]+)*@((?![-\d])[a-z\d-]{0,62}[a-z\d]\.){1,4}[a-z]{2,6}$/gi;
    return (email.match(re)==email)&&(email.substr(email.lastIndexOf("@")).length<=256);
}


/**
 *
 * @access public
 * @return void
 **/
/**
 *
 * @access public
 * @return void
 **/
function verifierTelephone(tel){
   var reg=new RegExp('^()0[1-68]([-. ]?[0-9]{2}){4}$');
   if(reg.test(tel))
	{
		return(true);
	}
	else
	{
		return(false);
	}
}

function isDate(dateStr) {

//var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
var datePat = /^(\d{1,2})(\/)(\d{1,2})(\/)(\d{4})$/;

var matchArray = dateStr.match(datePat); // is the format ok?

if (matchArray == null) {
return false;
}

 day= matchArray[1]; // p@rse date into variables
 month= matchArray[3];
year = matchArray[5];

if (month < 1 || month > 12) {
return false;
}

if (day < 1 || day > 31) {
return false;
}

if ((month==4 || month==6 || month==9 || month==11) && day==31) {
return false;
}

if (month == 2) {
var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
if (day > 29 || (day==29 && !isleap)) {
return false;
}
}
return true;
}

function isNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++)
   {
      Char = sText.charAt(i);
      if (ValidChars.indexOf(Char) == -1)
      {
         IsNumber = false;
      }
   }
   return IsNumber;
}


function isNumber(val)
{
if (isNaN(val))
{
return false;
}
else
{
return true;
}
}


function findValues(json_arr, name)
{
      for(var i=0; i<json_arr.length; i++)
      {
        if (json_arr[i]['name'] ==name) return json_arr[i]['value'];
      }
      return "";
}



/*
Elle retourne les coordonnees  left ou top de l'element d'ID inID
*/
function getOffsetPosition (inID, inTYPE){
    var iVal = 0;
    var oObj = document.getElementById(inID);
    //alert('oObj.id = ' + oObj.id);
    var sType = 'oObj.offset' + inTYPE;
	
	//element.offsetTop + element.parentNode.offsetTop;

    while (oObj && oObj.tagName != 'BODY') {
    iVal += eval(sType);
    oObj = oObj.offsetParent;
    }

    return iVal;
}
 
function getOffsetPositionElt (elt, inTYPE){
    var iVal = 0;
    var oObj = elt;
    //alert('oObj.id = ' + oObj.id);
    var sType = 'oObj.offset' + inTYPE;
    while (oObj && oObj.tagName != 'BODY') {
    iVal += eval(sType);
    oObj = oObj.offsetParent;
    }

    return iVal;
}


/**
 *
 * @access public
 * @return void
 **/
function taille_ecran(){
	if (document.body)
	{
	  var larg = (document.body.clientWidth);
	  var haut = (document.body.clientHeight);
	}

/*
Ici une version DOM (le script est entre les balises <body> et </body>) qui devrait fonctionner sur tous les navigateurs.
On commence donc par détecter la présence de l'objet body dans le DOM.
Si il est présent, on va mettre dans 2 variables larg et haut la largeur et la hauteur de la fenêtre pris avec les propriétés clientWidth et clientHeight de l'objet body.
*/
   else
   {
     var larg = (window.innerWidth);
     var haut = (window.innerHeight);
    }
    return {'width':larg,'height':haut};
}
/**
 *
 * @access public
 * @return void
 **/
function removeAt(arr,index){
	var tmp_arr= [];
	for (var i=0; i<arr.length; i++){
	  if (index != i) {
	  	tmp_arr.push(arr[i]);
	  }
	}
	return tmp_arr;
}

function simulateClick(elt_id) {

  var cb = document.getElementById(elt_id);

  if (cb.dispatchEvent) {

    var evt = document.createEvent("MouseEvents");

    evt.initEvent("click", true, true);

    cb.dispatchEvent(evt);

  } else {
    cb.click();

  }
}

//retourne les elements index d'un objet json, equivalent de array_key
/**
 *
 * @access public
 * @return void
 **/
function getJsonElements(json){
   keys = [];
   for (var key in json) {
	keys.push(key);
   }
   return keys;
}

/**
 *
 * @access public
 * @return void
 **/
function isRegulierValid(value,expression){
    var reg=expression;
	if(value.match(reg))
	{
		return(true);
	}
	else
	{
		return(false);
	}
  }

function json2str(json){
  //return JSONstring.make(json);
  return JSON.stringify(json);
}

  /*function json2str(json){
    var isAr = json instanceof Array;
    var str = isAr ? '[' : '{';
    var i = 0;
    for (var name in json) {
        str += i ? ',' : '';
        str += isAr ? '\"'+json[name].toString()+'\"' : '\"'+name+'\" :' + ' \"'+json[name].toString()+'\"';
        i++;
    }
    str += isAr ? ']' : '}';
    return str;
}*/

function diffdate(date1,date2,u){
    var dt1_arr= date1.split('/');
    var dt2_arr= date2.split('/');

    var d1 = new Date();
    var d2 = new Date();
    d1.setDate(dt1_arr[0]);
    d1.setMonth(dt1_arr[1]-1);
    d1.setFullYear(dt1_arr[2]);

    d2.setDate(dt2_arr[0]);
    d2.setMonth(dt2_arr[1]-1);
    d2.setFullYear(dt2_arr[2]);

    var div=1;
    switch(u){
     case 's': div=1000;
     			 break;
     case 'm': div=1000*60
    			 break;
     case 'h': div=1000*60*60
    			 break;
     case 'd': div=1000*60*60*24
    			 break;
    }

    var Diff = d2.getTime() - d1.getTime();
    return Math.ceil((Diff/div));
}

/**
 * DOM generic functions
 */
function objL(obj) {
    return parseInt(obj.style.left || obj.offsetLeft);
}

function objT(obj) {
    return parseInt(obj.style.top || obj.offsetTop);
}

function objW(obj) {
	return parseInt( obj.style.width || obj.clientWidth );
}

function objH(obj) {
    return parseInt( obj.style.height || obj.clientHeight);
}

function hideObj(obj) {
    obj.style.visibility = 'hidden';
}

function showObj(obj) {
    obj.style.visibility = 'visible';
}


function format(x) {
if (x==0) {return x;} else {
var str = x.toString(), n = str.length;

if (n <4) {return x;} else {

    return ((n % 3) ? str.substr(0, n % 3) + ' ' : '') + str.substr(n % 3).match(new RegExp('[0-9]{3}', 'g')).join(' ');
}}}


