// Copyright 2002 by Ruben ALMEIDA for Accenture.
// DO NOT use for any purpose without explicitly permit : ruben.almeida@accenture.com

var NS4=((navigator.appName=="Netscape")?(true):(false));

//---Reloads the window if Nav4 resized
function NC_reloadPage(init)
{ if (init==true)
  {        if ((navigator.appName=="Netscape") && (parseInt(navigator.appVersion)>=4))
        {        document.NC_pgW=innerWidth; document.NC_pgH=innerHeight;
                onresize=NC_reloadPage;
        }
  }
  else if ((innerWidth!=document.NC_pgW) || (innerHeight!=document.NC_pgH)) location.reload();
};
NC_reloadPage(true);

function MM_findObj(n, d)
{
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_showHideLayers()
{
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

//---New window
var newWinTemp = 0;
function openNewWindow(urlWin,nameWin,wi,he,tb,mb,sb,lo,st,di,rz,ch)
{        var pW = "toolbar="+((tb)?(tb):("0"))+",menubar="+((mb)?(mb):("0"))+",scrollbars="+((sb)?(sb):("0"))+",location="+((lo)?(lo):("0"))+",status="+((st)?(st):("0"))+",directories="+((di)?(di):("0"))+",resizable="+((rz)?(rz):("0"))+",copyhistory="+((ch)?(ch):("0"))+",width="+((wi)?(wi):("100"))+",height="+((he)?(he):("100"));
        newWinTemp = window.open(urlWin,nameWin,pW);
        newWinTemp.focus();
        return;
}
function closeNewWindow()
{        if (newWinTemp!="" && newWinTemp!=0 && newWinTemp.closed==false) newWinTemp.close();
        newWinTemp = 0;
        return true;
}

//---String functions
function extractParam(params,id)
{        if(! params || params=="") return "";
        indB=params.indexOf("&"+id+"=",0);
        if(indB<0) indB=params.indexOf("?"+id+"=",0);
        if(indB<0) return "";
        indB=indB+id.length+2;
        indE=params.indexOf("&",indB); if(indE<=0) indE=params.length;
        return params.substring(indB,indE);
}
function trim(val,special)
{        var valS=val.toString();
        if (!valS | valS=="") return "";
        var n=0; var nn=valS.length;
        for (n=0;n<=nn;n++) if(valS.indexOf(" ")==0 ){valS=valS.substr(1);}else{break;};
        for (n=0;n<=nn;n++) if(valS.lastIndexOf(" ")==(valS.length-1)){valS=valS.substr(0,valS.length-1);}else{break;};
        if(! special || special!=1) {for (n=0;n<=nn;n++) if(valS.indexOf("  ")>=0){valS=valS.replace("  "," ");}else{break;};}
        val=valS;
        return val;
}
function ValidEmail(val)
{        if (val.indexOf('@',0)<=0 || val.indexOf('.',0)<=0 || val.lastIndexOf('.')>=(val.length-2) || val.indexOf('@',0)!=val.lastIndexOf('@')) return false;
        for (i=0; i<val.length; i++)
        {        cCA = val.charCodeAt(i);
                if ( cCA<45 || cCA==47 || (cCA>57 && cCA<64) || (cCA>90 && cCA<95) || cCA==96 || (cCA>122 && cCA<192) )
                        return false;
        }
        return true;
}

//---Date format must be DD/MM/YYYY and valid !!!
function CompareDate(date1,date2)
{       d1=date1; d2=date2;
        a1=d1.split("/"); a2=d2.split("/");
        d1 = new Date(a1[2], a1[1]-1, a1[0], 12);
        d2 = new Date(a2[2], a2[1]-1, a2[0], 12);
        a11 = d1.valueOf(); a22 = d2.valueOf();
        if (a11<a22) return -1;
        if (a11==a22) return 0;
        if (a11>a22) return 1;
}

function checknumber(pnum)
{ var x=pnum;
  var anum=/(^\d+$)|(^\d+.\d+$)/;
  if (anum.test(x))
   testresult=true
  else
   testresult=false
}

function vibrePrintWindow()
{
  for(i=0;i<30;i++)
  {
    a = (Math.random()*20)-(Math.random()*20);
    b = (Math.random()*20)-(Math.random()*20);
    self.moveBy(a, b);
    self.resizeBy(a, b);
  }
  self.moveBy(a, b);
  self.resizeTo(610, 700);
}

function PrintAndClose()
{
window.print();
window.close();
return;
}

function FormatageDate(ladate)
{ var str = ladate; // DDMMYYYY only
  var strSeperator = "/";
  var mDay = ""; 
  var mMonth = ""; 
  var mYear = "";
  if (str=="")
  { return str;
  }
  if (ladate.length==8)
  { var mDay = ladate.substr(0,2); 
    var mMonth = ladate.substr(2,2); 
    var mYear = ladate.substr(4,4) 
    str = mDay+strSeperator+mMonth+strSeperator+mYear; 
  }
  return str;
}

tjour  = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
cjour  = new Array( 0, 3,-3, 1,-1, 1,-1, 0, 1,-1, 1,-1);
tjour4 = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
cjour4 = new Array( 0, 2,-2, 1,-1, 1,-1, 0, 1,-1, 1,-1);
jour=86400000;

function CheckDateFormat(ladate, nonvide)
{ var str = ladate;
  var ok = 0;
  var maxann = 0;
  var curdate = new Date()
  var curyear = curdate.getFullYear()
  var maxann = curyear+1;
  if (nonvide==1)
  { if (str=="")
    { alert("La date est vide !");
      return false;
    }
  }
  if (ladate.length!=10)
  { alert("Le format de la date est incorrect (DD/MM/YYYY) !");
    return false;
  }
  a=str.split("/");
  if (! a[2])
  { alert("Le format de la date est incorrect (DD/MM/YYYY) !");
    return false;
  }
  if (! a[1])
  { alert("Le format de la date est incorrect (DD/MM/YYYY) !");
    return false;
  }
  a4=a[2]%4;
  if (a[2]<1900)
  { alert("L'année est incorrecte ("+a[2]+") !");
    return false;
  }
  if (a[2]>maxann)
  { if (confirm('Etes-vous sûre de vouloir saisir l\'année '+a[2]+' ?'))
    { ok=1;
    }
    else
    { return false;
    }  
  }
  if ((a[1]<0)||(a[1]>12))
  { alert('Le mois est incorrect ('+a[1]+') !');
    return false;
  }
  if (a4==0)
  {
    if ((a[0]<0)||(a[0]>tjour4[a[1]-1]))
    { alert('Le jour est incorrect ('+a[0]+') !');
      return false;
    }
  }
  else
  {
    if ((a[0]<0)||(a[0]>tjour[a[1]-1]))
    { alert('Le jour est incorrect ('+a[0]+') !');
      return false;
    }
  }
  //Le format de la date saisie semble correte
  return true;
}

function CheckCategorie(ladate)
{ var str = ladate;
  var anncours = 0;
  var categ = '';
  var curdate = new Date();
  var curyear = curdate.getFullYear();
  var anncours = curyear+1;
  var a = str.split("/");   
  var annee_nai = a[2];
  var age = eval(anncours-annee_nai);
  if (age<12)
  { categ = 'N';
  }
  else
  { if (age>21) 
    { categ = 'A';
    }
    else
    {  categ = 'J';
    }
  }
  return categ;
}

