   var Eday = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
   var Emth = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
   var Lday = new Array('Dies Dominica', 'Dies Lun\xE6', 'Dies Martis', 'Dies Mercurii', 'Dies Iovis', 'Dies Veneris', 'Dies Saturni');
   var Lmth = new Array('Januarius', 'Februarius', 'Martius', 'Aprilis', 'Maius', 'Junius', 'Julius', 'Augustus', 'September', 'October', 'Novembris', 'December');
   var Rday = new Array('DIES SOLIS', 'DIES LUN\xC6', 'DIES MARTIS', 'DIES MERCURII', 'DIES IOVIS', 'DIES VENERIS', 'DIES SATURNI');
   var Rmth = new Array('IAN', 'FEB', 'MART', 'APR', 'MAI', 'IVN', 'IVL', 'AVG', 'SEP', 'OCT', 'NOV', 'DEC');
   var y = 4716, j = 1401, m = 3, n = 12, p = 1461, q = 0, r = 4, s = 153, t = 2, u = 5, v = 3, w = 2;
   var g = 10, A = 184, B = 274277, G = -38;
   
   

   
      function cvts(n) {
    // converts number 1 - 4999 to a subtractive Roman numeral ...
    return (cvt1000(n) + cvt100s(n) + cvt10s(n) + cvt1s(n))
   }
   
      function cvt1000(n) {
    // converts thousands digit to a Roman numeral ...
    return ('MMMM'.substr(0, (Math.floor(n / 1000))));
   }

   function cvt100s(h) {
    // converts hundreds digit to a subtractive Roman numeral ...
    var m = '', h = Math.floor((h % 1000) / 100);
    if (h == 9) {m = 'CM'}
     else if (h > 4) {m = 'DCCC'.substr(0, h - 4)}
      else if (h == 4) {m = 'CD'}
       else {m = 'CCC'.substr(0, h)};
    return m;
   }
   
      function cvt10s(t) {
    // converts tens digit to a subtractive Roman numeral ...
    var m = '', t = Math.floor((t % 100) / 10);
    if (t == 9) {m = 'XC'}
     else if (t > 4) {m = 'LXXX'.substr(0, t - 4)}
      else if (t == 4) {m = 'XL'}
       else {m = 'XXX'.substr(0, t)};
    return m;
   }
   
      function cvt1s(u) {
    // converts units digit to a subtractive Roman numeral ...
    var m = '', u = u % 10;
    if (u == 9) {m = 'IX'}
     else if (u > 4) {m = 'VIII'.substr(0, u - 4)}
      else if (u == 4) {m = 'IV'}
       else {m = 'III'.substr(0, u)};     
    return m;
   }


   function dateromaine() {
     
    var today, D, M, Y;

    today = new Date();
    D = today.getDate();
    M = today.getMonth() + 1;
    Y = today.getFullYear(); 
	if (Y < 1970 ) {Y += 100};
    
	

    var Y1 = Y + y - Math.floor((n + m - 1 - M) / n);
    var M1 = (M - m + n) % n;
    var D1 = D - 1;
    var c  = Math.floor((p * Y1 + q) / r);
    var d  = Math.floor((s * M1 + t) / u);
     
    var g   = Math.floor(3 * (Math.floor((Y1 + A) / 100)) / 4) + G;
    var J   = c + d + D1 -j - g;
    var Gg  = Math.floor(3 * (Math.floor((4 * J + B) / 146097)) / 4) + G;
    var GJ1 = J + j + Gg;
    var GY1 = Math.floor((r * GJ1 + v) / p);
    var GT1 = Math.floor(((r * GJ1 + v) % p) / r);
    var GM1 = Math.floor((u * GT1 + w) / s);
    var GD1 = Math.floor(((u * GT1 + w) % s) / u);
    var GD  = GD1 + 1;
    var GM  = ((GM1 + m - 1) % n) + 1;
    var GY  = GY1 - y + Math.floor((n + m - 1 - GM) / n);

    var JJ1 = J + j;  
    var JY1 = Math.floor((r * JJ1 + v) / p);
    var JT1 = Math.floor(((r * JJ1 + v) % p) / r);
    var JM1 = Math.floor((u * JT1 + w) / s);
    var JD1 = Math.floor(((u * JT1 + w) % s) / u);
    var JD  = JD1 + 1;
    var JM  = ((JM1 + m - 1) % n) + 1;
    var JY  = JY1 - y + Math.floor((n + m - 1 - JM) / n);
    
    
     
    var day = (J + 1) % 7, rd, RY = JY + 753; if (JM == 12 && JD > 13) {RY ++};
    
    
    
    if (JM == 3 || JM == 5 || JM == 7 || JM == 10) {rd = RD(JD, JM, 7, 15, 31)}    
    else if (JM == 1 || JM == 8 || JM == 12) {rd = RD(JD, JM, 5, 13, 31)}    
    else if (JM == 4 || JM == 6 || JM == 9 || JM == 11) {rd = RD(JD, JM, 5, 13, 30)}
    else if (JY % 4 == 0) {rd = leapFeb(JD)}
    else {rd = RD(JD, JM, 5, 13, 28)};
   
    document.write(Rday[day] + ' ' + rd + '. ' + cvts(RY) + ' A.U.C.')
    
    }


   function RD(JD, JM, NON, ID, PKAL) {
    // returns string with date in Roman format (except for leap February) ...
    var rd;
    if (JD == 1) {rd = 'KAL. ' + Rmth[JM - 1]}
     else if (JD < NON - 1) {rd = 'A.D. ' + cvts(NON + 1 - JD) + ' NON. ' + Rmth[JM - 1]}
      else if (JD == NON - 1) {rd = 'PRID. NON. ' + Rmth[JM - 1]}
       else if (JD == NON) {rd = 'NON. ' + Rmth[JM - 1]}
        else if (JD < ID - 1) {rd = 'A.D. ' + cvts(ID + 1 - JD) + ' ID. ' + Rmth[JM - 1]}
         else if (JD == ID - 1) {rd = 'PRID. ID. ' + Rmth[JM - 1]}
          else if (JD == ID) {rd = 'ID. ' + Rmth[JM - 1]}
           else if (JD < PKAL) {rd = 'A.D. ' + cvts(PKAL + 2 - JD) + ' KAL. ' + Rmth[JM % 12]}
            else {rd = 'PRID. KAL. ' + Rmth[JM % 12]};
    return rd;
   }

   function leapFeb(JD) {
    // returns string with date in Roman format for leap February ...
    var rd;
    if (JD == 1) {rd = 'KAL. FEB'}
     else if (JD < 4) {rd = 'A.D. ' + cvts(6 - JD) + ' NON. FEB'}
      else if (JD == 4) {rd = 'PRID. NON. FEB'}
       else if (JD == 5) {rd = 'NON. FEB'}
        else if (JD < 12) {rd = 'A.D. ' + cvts(14 - JD) + ' ID. FEB'}
         else if (JD == 12) {rd = 'PRID. ID. FEB'}
          else if (JD == 13) {rd = 'ID. FEB'}
           else if (JD < 25) {rd = 'A.D. ' + cvts(30 - JD) + ' KAL. MART'}
            else if (JD == 25) {rd = 'BIS VI KAL. MART'}
             else if (JD < 29) {rd = 'A.D. ' + cvts(31 - JD) + ' KAL. MART'}
              else {rd = 'PRID. KAL. MART'};
    return rd;
   }
   
	function date(){
		var datedujour, date, mois, mois1, jour, jour1, an; 
		datedujour = new Date();
		jour = datedujour.getDay()
		
		switch(jour){
			case 1 : 
			jour1 ="Lundi" 
			break;
			case 2 :
			jour1 ="Mardi"
			break;
			case 3 :
			jour1 ="Mercredi"
			break;
			case 4 :
			jour1 ="Jeudi"
			break;
			case 5 :
			jour1 ="Vendredi"
			break;
			case 6 : 
			jour1 ="Samedi" 
			break;
			case 0 :
			jour1 ="Dimanche"
			break;
		}
		
		date = datedujour.getDate()
		mois = datedujour.getMonth()

		switch(mois+1){
			case 1 : 
			mois1 ="Janvier" 
			break;
			case 2 :
			mois1 ="Février"
			break;
			case 3 :
			mois1 ="Mars"
			break;
			case 4 :
			mois1 ="Avril"
			break;
			case 5 :
			mois1 ="Mai"
			break;
			case 6 : 
			mois1 ="Juin" 
			break;
			case 7 :
			mois1 ="Juillet"
			break;
			case 8 : 
			mois1 ="Août" 
			break;
			case 9 :
			mois1 ="Septembre"
			break;
			case 10 :
			mois1 ="Octobre"
			break;
			case 11 :
			mois1 ="Novembre"
			break;
			case 12 :
			mois1 ="Décembre"
			break;
		}
		
		an = datedujour.getFullYear()
		document.write(jour1, " ");
		document.write(date, " ");
		document.write(mois1 , " ");
		document.write(an, " ");
}
