Date.prototype.add = function (sInterval, iNum){
var dTemp = this;
if (!sInterval || iNum == 0) return dTemp;
switch (sInterval.toLowerCase()){
case "ms":
dTemp.setMilliseconds(dTemp.getMilliseconds() + iNum);
break;
case "s":
dTemp.setSeconds(dTemp.getSeconds() + iNum);
break;
case "mi":
dTemp.setMinutes(dTemp.getMinutes() + iNum);
break;
case "h":
dTemp.setHours(dTemp.getHours() + iNum);
break;
case "d":
dTemp.setDate(dTemp.getDate() + iNum);
break;
case "mo":
dTemp.setMonth(dTemp.getMonth() + iNum);
break;
case "y":
dTemp.setFullYear(dTemp.getFullYear() + iNum);
break;
}
return dTemp;
}


function ephemeride(jj,mm,aa) {
	var dt1,dt2, h1,m1,h2,m2;
	//alert(jj+' '+mm+' '+2000+aa);
	var dtjour=new Date(2000+aa,mm,jj)
	var j1=dtjour.getDate();
	var m1=dtjour.getMonth();
	var a1=dtjour.getYear();
	//alert(j1+' '+m1+' '+a1);
	var valeur = ephemeride_(dtjour);
	h1 = valeur[0].substring(0,2); //heure lever soleul
	m1 = valeur[0].substring(3,5); //minute level soleil
	h2 = valeur[1].substring(0,2);
	m2 = valeur[1].substring(3,5);
	dt1=new Date(a1,m1,j1,h1,m1,0);
	dt2=new Date(a1,m1,j1,h2,m2,0);
	var ensoljour = dateDiff('n', dt1,dt2);

	var dt_veille=dtjour;
	dt_veille.add("d", -1);
	var j2=dt_veille.getDate();
	var m2=dt_veille.getMonth();
	var a2=dt_veille.getYear();
	//alert(j2+' '+m2+' '+a2);

	var valeur_1 = ephemeride_(dt_veille);
	h1 = valeur_1[0].substring(0,2);
	m1 = valeur_1[0].substring(3,5);
	h2 = valeur_1[1].substring(0,2);
	m2 = valeur_1[1].substring(3,5);

	dt1=new Date(a2,m2,j2,h1,m1,0);
	dt2=new Date(a2,m2,j2,h2,m2,0);
	
	var ensolveille = dateDiff('n', dt1,dt2);


if(typeof(valeur[2])=="undefined") valeur[2] = '-'; 
if(typeof(valeur[3])=="undefined") valeur[3] = '-'; 

valeur[6]=ensoljour-ensolveille;
	return valeur;
}

function ephemeride_(dt) {
	
    var now=dt;

    var Year=getFullYear(now);
    var Month=now.getMonth();
    var Day=now.getDate();
    var Place = "Erquinghem";
    var Lat = +50.683;
    var Long = +2.85;
    var TZ = 1;       // 2 si heure d'ete Or +1 for British Summer Time Correction
	var TZname="GMT";
	
	var ls;
	var cs;
	var ll;
	var cl;
	var pl;
	var valeurs=new Array();	


    // Update variables passed as a search string
/*
    if (location.search.length > 1) {
       var argstr = location.search.substring(1,location.search.length);
       var args = argstr.split('&');
       for (var i=0; i<args.length; i++) eval(unescape(args[i]));
    }
*/
    // sun rise and set

    var suntimes=SunRiseSet(Year,Month,Day,Lat,Long);
    ls=hmstring(suntimes[0]+TZ);
    cs=hmstring(suntimes[1]+TZ);


//alert(Year );alert(Month); alert(Day); alert (Lat); alert(Long);

    // Moon rise and set
    // WARNING code here changed on 6/7 May 2003
    // SunRiseSet uses UTC as the Sun position varies slowly
    // MoonRiseSet now uses local zone time (including daylight saving)
    // if this is not done it is possible to go into the previous or next day

    var mrs=MoonRise(Year,Month,Day,TZ,Lat,Long);
	

	
	
    if ((mrs[0]<0) && (mrs[1]<0)) {
    } else {
      if (mrs[1]<=mrs[0]) {
        if (mrs[1]>=0) {
         cl=hmstring(mrs[1]);
        }
        if (mrs[0]>=0) {
          ll=hmstring(mrs[0]);
        }
      } else {
        if (mrs[0]>=0) {
          ll=hmstring(mrs[0]);
        }
        if (mrs[1]>=0) {
          cl=hmstring(mrs[1]);
        }
      }
    }

    // Moon phase

    var mp=MoonPhase(Year,Month,Day);
    pl=Math.round(mp / 12.1621622);
	valeurs[0]=ls;
	valeurs[1]=cs;
	valeurs[2]=ll;
	valeurs[3]=cl;
	valeurs[4]=pl;
	//alert(mp);
	return valeurs;
}
