function sniffer() 
{
  var agent = navigator.userAgent.toLowerCase();
  this.major = parseInt(navigator.appVersion);
  this.minor = parseFloat(navigator.appVersion);
  this.ns = ((agent.indexOf('mozilla')!=-1) && ((agent.indexOf('spoofer')==-1) && (agent.indexOf('compatible') == -1)));
  this.ns2 = (this.ns && (this.major == 2));
  this.ns3 = (this.ns && (this.major == 3));
  this.ns4b = (this.ns && (this.minor < 4.04));
  this.ns4 = (this.ns && (this.major == 4));
  this.ns6 = (this.ns && (this.major >= 5));
  this.ie = (agent.indexOf("msie") != -1);
  this.ie3 = (this.ie && (this.major == 2));
  this.ie5 = (this.ie && (this.major >= 4) && (document.getElementById) ) ? true : false ;
  this.ie6 = (this.ie5 && (agent.indexOf('msie 6')!=-1) ) ? true : false ;
  this.ie4 = (this.ie && (this.major >= 4) && !(this.ie5));
  this.op3 = (agent.indexOf("opera") != -1);
  this.win = (agent.indexOf("win") != -1);
  this.mac = (agent.indexOf("mac") != -1);
  this.unix = (agent.indexOf("x11") != -1);

  this.dom = (this.ns6 || this.ie5 || this.ie6);
}

//var clientIs = new sniffer();

function openPopup(url, w, h, s)
{
  if (url != "")
  	{
	if (s != "1")
		s = "0";
    window.open(url, "" , "toolbar=0,location=0,status=0,scrollbars="+s+",width="+w+",height="+h);
	}
}

function trim(s)
{
   var l = s.length;
   while (l > 1 && s.substr(0, 1) == " ")
      s = s.substr(1, --l);
   while (l > 1 && s.substr(l-1, 1) == " ")
      s = s.substr(0, --l);
   if (s == " ")
      s = "";
   return s;
}

function checkEmailAddresses(aList)
{
   var l = aList.length;
   for (var i = 0; i < l; i++)
      if (checkEmailAddress(aList[i]) == false)
         return aList[i];
   return null;
}

function checkEmailAddress(a)
{
   var i;
   var l;
   var s;
   var c;

   a = trim(a);
   l = a.length;
   i = a.indexOf("@");
   if (i < 1)
      return false;

   s = a.substr(++i, l-i);
   i = s.indexOf(".");
   if (i < 1)
      return false;
   if (i == s.length - 1)
      return false;
   s = " \"&~#'{([|`\\^)]=+}$%*!§:/;,?<>";
   for (i = 0 ; i < l; i++)
      {
      c = a[i];
      if (s.indexOf(c) != -1)
         return false;
      }

   return true;
}

function removeArrayElement(arr, index)
{
  var l = arr.length;
  for (var i = index; i < l-1; i++)
    arr[i] = arr[i+1];
  arr.length = arr.length-1;
}

function getURLParameter(url, paramName)
{
  var a_params = new Array();
  var params;
  var a_paramlist = new Array();
  var param;
  var paramlen = paramName.length;
  
  a_params = url.split('?');
  params = a_params[1];
  a_paramlist = params.split('&');

  // search in the array, the value of param
  for (i=0; i<a_paramlist.length; i++)
    {
    if (a_paramlist[i].substring(0, paramlen) == paramName)
      return a_paramlist[i].substring(paramlen+1, a_paramlist[i].length);
    }
  return "";
}

function printPage(o)
{
  if (o == null)
    o = window;
  if (o.print)
    {
    o.focus();
    o.print();
    return true;
    }
  return false;
}

function checkDate(d, m, y)
{
  if (d > 31 || d < 1 || m < 1 || m > 12) return false;

  switch(m)
    {
    case 2:
      if ((y & 3) == 0)
        {
        if (d > 29)
          return false;
        }
      else
        {
        if (d > 28)
          return false;
        }
      break;
    case 4:
    case 6:
    case 9:
    case 11:
      if (d > 30)
        return false;
      break;
    }
  return true;
}

function checkAge(d, m, y, req)
{
  var curDate = new Date();
  if (y > (curDate.getFullYear() - req))
    return false;
  else if (y == (curDate.getFullYear() - req))
  	{
	if ((m - 1) > curDate.getMonth())
      return false;
    if (d > curDate.getDate())
      return false;
	}
  
  return true;
}

function isDate(d)
{
  dtab = d.split('/');
  if (dtab.length != 3)
    return false;
  if (isNaN(dtab[0]) || isNaN(dtab[1]) || isNaN(dtab[2]))
    return false;
  return verifieDate(dtab[0], dtab[1], dtab[2]);
}

