/*  JavaScript French Revolutionary Calendar routines

    Created by Steve Pugh steve@pugh.net

    Last modified April 6 2000                            */



function LeapYear(year) {

    if ((year/4)   != Math.floor(year/4))   return false;

    if ((year/100) != Math.floor(year/100)) return true;

    if ((year/400) != Math.floor(year/400)) return false;

    if ((year/4000) != Math.floor(year/4000)) return true;    

    return true;

}



var romanOnes = new Array('I','II','III','IV','V','VI','VII','VIII','IX');

var romanTens = new Array('X','XX','XXX','XL','L','LX','LXX','LXXX','XC');

var romanHundreds = new Array('C','CC','CCC','CD','D','DC','DCC','DCCC','CM');

var revMonthName = new Array('Vend&eacute;miaire','Brumaire','Frimaire','Niv&ocirc;se','Pluvi&ocirc;se','Vent&ocirc;se','Germinal','Flor&eacute;al','Prairial','Messidor','Thermidor','Fructidor');

var revDayName = new Array('Decadi','Primidi','Duodi','Tridi','Quartidi','Quintidi','Sextidi','Septidi','Octidi','Nonidi');

var revSansName = new Array('Jour de la vertu','Jour de la g&eacute;nie','Jour du travail','Jour de la raison','Jour de la r&eacute;compense','Jour de la r&eacute;volution');



function timeDifference() {

    var laterdate = new Date();     

    var earlierdate = new Date(1792,8,21); 

    var difference = laterdate.getTime() - earlierdate.getTime();

    var daysDifference = Math.floor(difference/1000/60/60/24);

    difference -= daysDifference*1000*60*60*24



    for (var revYear=1; ;revYear++) {

        if (LeapYear(revYear)) {yearDays = 366}

        else {yearDays = 365}

        if (daysDifference - yearDays <= 0) break

        else {daysDifference = daysDifference - yearDays}

    }          

 

    for (var revMonth=1; ;revMonth++) {

        if (daysDifference - 30 <= 0) break

        else {daysDifference = daysDifference - 30}

    }    

    

    var revDays = daysDifference;

    if (revDays >=1 && revDays  <11) revDecade = 'I';

    if (revDays >=11 && revDays <21) revDecade = 'II';

    if (revDays >=21 && revDays <31) revDecade = 'III';

    

    if (revMonth == 13) {

        var revCal = revSansName[revDays-1];

    }

    else {

        revMonth = revMonthName[revMonth-1];

        revDays = revDayName[revDays%10];

        var revCal = 'D&eacute;cade ' + revDecade + ', ' + revDays + ' de ' + revMonth;

    }

    var num = revYear;

    var ones = num % 10;

        num = (num - ones) / 10;

    var tens = num % 10;

        num = (num - tens) / 10;

    var hundreds = num % 10;

        num = (num - hundreds) / 10;



    var revYearRoman = "";

    

    for (i=0; i < num; i++){

	    revYearRoman += 'M';

    }

    if (hundreds) {revYearRoman += romanHundreds[hundreds-1]; }

    if (tens) {revYearRoman += romanTens[tens-1];}

    if (ones) {revYearRoman += romanOnes[ones-1];}

       

    document.write(revCal + ' de l\'An ' + revYearRoman + ' de la R&eacute;volution');

}


