<!--

////////////////////////////////////////////////////////
// Copyright 2003, Timothy James Forsythe, all rights reserved.
// Permission granted to use, copy, modify, and distribute so long as
// the above copyright and this permission statement are retained in all
// copies.  THERE IS NO WARRANTY - USE AT YOUR OWN RISK.
//
// based on the algorithms of Copyright (c) Rick McCarty, 1997
////////////////////////////////////////////////////////

function PCDate()
{
  this.dstr = "";
  this.sstr = "";
  this.d    = "";
  this.mstr = "";
  this.y    = "";
}

function GregorianToPositivist(d,m,year)
{
  var SAINTS   = new Array("Promethus", "Hercules", "Orpheus", "Ulysses", "Lycurgus", "Romulus", "Numa", "Belus", 
  "Sesostris", "Menu", "Cyrus", "Zoroaster", "The Druids", "Buddha", "Fo-Hi", "Lao-Tseu", "Meng-Tseu", 
  "Theocrats of Tibet", "Theocrats of Japan", "Mano-Capac", "Confucius", "Abraham", "Samuel", "Solomon", "Isaiah",        
  "St. John the Baptist", "Haroun-al-Raschid", "Muhammad", "Hesiod", "Tyrtæus", "Anacreon", "Pindar", "Sophocles",     
  "Theocritus", "Æschylus", "Scopas", "Zeuxis", "Ictinus", "Praxiteles", "Lysippus", "Apelles", "Phidias", "Æsop",
  "Plautus", "Terence", "Phaedrus", "Juvenal", "Lucian", "Aristophanes", "Ennius", "Lucretius", "Horace", "Tibullus",
  "Ovid", "Lucan", "Virgil", "Anaximander", "Anaximenes", "Heraclitus", "Anaxagoras", "Democritus", "Herodotus",
  "Thales", "Solon", "Xenophanes", "Empodocles", "Thucydides", "Archytas", "Apollonius of Tyana", "Pythagoras", 
  "Aristippus", "Antisthenes", "Zeno", "Cicero", "Epictetus", "Tacitus", "Socrates", "Xenocrates", "Philo of Alexandria",
  "St. John the Evangelist", "St. Justin", "St. Clement of Alexandria", "Origen", "Plato", "Theophrastus",   "Herophilus",
  "Erasistratus", "Celsus", "Galen", "Avicenna", "Hippocrates", "Euclid", "Aristæus", "Theodisius of Bithynia",
  "Hero", "Pappus", "Diophantus", "Apollonius", "Eudoxus", "Pytheas", "Aristarchus", "Eratosthenes", "Ptolemy",
  "Albategnius", "Hipparchus", "Varro", "Columella", "Vitruvius", "Strabo", "Frontinus", "Plutarch", "Pliny The Elder",
  "Miltiades", "Leonidas", "Aristides", "Cimon", "Xenophon", "Phocion", "Themistocles", "Pericles", "Philip",
  "Demosthenes", "Ptolemy Lagus", "Philopoemen", "Polybius", "Alexander", "Junius Brutus", "Camillus", "Fabricius",
  "Hannibal", "Paulus Aemilius", "Marius", "Scipio", "Augustus", "Vespasian", "Hadrian", "Antonius", "Papinian", 
  "Alexander Severus", "Trajan", "St. Luke", "St. Cyprian", "St. Athanasius", "St. Jerome", "St. Ambrose", "St. Monica",
  "St. Augustine", "Constantine", "Theodosius", "St. Chrysostom", "St. Genevieve of Paris", "St. Pulcheria",
  "St. Gregory the Great", "Hildebrand", "St. Benedict", "St. Boniface",  "St. Isidore of Seville", "Lanfranc",
  "Heloise", "Arch'ts of Middle Ages", "St. Bernard", "St. Francis Xavier", "St. Charles Borromeo", "St. Theresa",
  "St. Vincent de Paul", "Bourdaloue", "William Penn", "Bossuet", "Theodoric the Great", "Pelayo", "Otho the Great",
  "St. Henry", "Villers", "Don John of Austria", "Alfred", "Charles Martel", "The Cid", "Richard I", "Joan of Arc",  
  "Albuquerque", "Bayard", "Godfrey", "St. Leo the Great", "Gerbert", "Peter the Hermit", "Suger", "Alexander III",
  "St. Francis of Assisi", "Innocent III", "St. Clotilde", "St. Bathilda", "St. Stephen of Hungary", 
  "St. Elizabeth of Hungary", "Blanche of Castille", "St. Ferdinand III", "St. Louis", "The Troubadours", "Boccaccio",
  "Rabelais", "Cervantes", "La Fontain", "De Foe", "Aristo", "Leonardo da Vinci", "Michael Angelo", "Holbein", "Poussin", 
  "Velasquez", "Teniers", "Raphael", "Froissart", "Camoens", "The Spanish Romancers", "Chateaubriand", "Walter Scott",  
  "Manzoni", "Tasso", "Petrarca", "Thomas à Kempis", "Mme. de Lafayette", "Fénélon", "Klopstock", "Byron", "Milton",
  "Marco Polo", "Jacques Coeur", "Vasco de Gama", "Napier", "Lacaille", "Cook", "Columbus", "Benvenuto Cellini",
  "Amontons", "Harrison", "Dollond", "Arkwright", "Conté", "Vaucanson", "Stevin", "Mariotte", "Papin", "Black", "Jouffroy", 
  "Dalton", "Watt", "Bernard de Palissy", "Guglielmini", "Duhamel (du Monceau)", "Saussure", "Coulomb", "Carnot",
  "Montgolfier", "Lope de Vega", "Moreto", "Rojas", "Otway", "Lessing", "Goethe", "Calderon", "Tirso", "Vondel", "Racine", 
  "Voltaire", "Metastasio", "Schiller", "Corneille", "Almarcon", "Mme. de Motteville", "Mme. de Sévigné", "Lesage",
  "Mme. de Staël", "Fielding", "Moliere", "Pergolese", "Sacchini", "Gluck", "Beethoven", "Rossini", "Bellini", "Mozart",
  "Albertus Magnus", "Roger Bacon", "St. Bonaventura", "Ramus", "Montaigne", "Campanella", "St. Thomas Aquinas", "Hobbes", 
  "Pascal", "Locke", "Vauvenargues", "Diderot", "Cabanis", "Lord Bacon", "Grotius", "Fontenelle", "Vico", "Fréret",
  "Montesquieu", "Buffon", "Leibnitz", "Robertson", "Adam Smith", "Kant", "Condercet", "Joseph de Maistre", "Hegel",
  "Hume", "Marie de Molina", "Cosmo de Medici the Elder", "Philippe de Comines", "Isabella of Castille", "Charles V",
  "Henry IV", "Louis XI", "L'Hôpital", "Barneveldt", "Gustavus Adolphus", "De Witt", "Ruyter", "William III",  
  "William The Silent", "Ximenes", "Sully", "Mazarin", "Colbert", "D'Aranda", "Turgot", "Richelieu", "Sidney", "Franklin", 
  "Washington", "Jefferson", "Bolivar", "Francia", "Cromwell", "Copernicus", "Kepler", "Huyghens", "James Bernouilli",
  "Bradley", "Volta", "Galileo", "Vieta", "Wallis", "Clairaut", "Euler", "D'Alembert", "Lagrange",  "Newton", "Bergmann",
  "Priestley", "Cavendish", "Guyton Morveau", "Berthollet", "Berzelius", "Lavoisier", "Harvey", "Boërhaave", "Linnæus",
  "Haller", "Lamarck", "Broussais", "Gall");

  var SAINTS_L = new Array("Cadmus", "Theseus", "Tiresias", "Ulysses", "Lycurgus", "Romulus", "Numa", "Semiramus",
  "Sesostris", "Menu", "Cyrus", "Zoroaster", "Ossian", "Buddha", "Fo-Hi", "Lao-Tseu", "Meng-Tseu", "Theocrats of Tibet",
  "Theocrats of Japan", "Tamehameha", "Confucius", "Joseph", "Samuel", "David", "Isaiah", "St. John the Baptist",
  "Abderrahman", "Muhammad", "Hesiod", "Sappho", "Anacreon", "Pindar", "Euripides", "Longus", "Æschylus", "Scopas",  
  "Zeuxis", "Ictinus", "Praxiteles", "Lysippus", "Apelles", "Phidias", "Pilpay", "Plautus", "Menander", "Phaedrus",
  "Juvenal", "Lucian", "Aristophanes", "Ennius", "Lucretius", "Horace", "Tibullus", "Ovid", "Lucan", "Virgil",
  "Anaximander", "Anaximenes", "Heraclitus", "Anaxagoras", "Leucippus", "Herodotus", "Thales", "Solon", "Xenophanes",
  "Empodocles", "Thucydides", "Philolaus", "Apollonius of Tyana", "Pythagoras", "Aristippus", "Antisthenes", "Zeno",
  "Pliny the Younger", "Arrian", "Tacitus", "Socrates", "Xenocrates", "Philo of Alexandria", "St. John the Evangelist",
  "St. Irenæus", "St. Clement of Alexandria", "Tertullian", "Plato", "Theophrastus", "Herophilus", "Erasistratus",
  "Celsus", "Galen", "Averrhoes", "Hippocrates", "Euclid", "Aristæus", "Theodisius of Bithynia", "Ctesibius", "Pappus",
  "Diophantus", "Apollonius", "Aratus", "Nearchus", "Berosus", "Sosigenes", "Ptolemy", "Nasir-Eddin", "Hipparchus",
  "Varro", "Columella", "Vitruvius", "Strabo", "Frontinus", "Plutarch", "Pliny The Elder", "Miltiades", "Leonidas", 
  "Aristides", "Cimon", "Xenophon", "Epaminondas", "Themistocles", "Pericles", "Philip", "Demosthenes", "Ptolemy Lagus",
  "Philopoemen", "Polybius", "Alexander", "Junius Brutus", "Cincinnatus", "Regulus", "Hannibal", "Paulus Aemilius",
  "The Gracchi", "Scipio", "Mæcenas", "Titus", "Nerva", "Marcus Aurelius", "Ulpian", "Aetius", "Trajan", "St. James",
  "St. Cyprian", "St. Athanasius", "St. Jerome", "St. Ambrose", "St. Monica", "St. Augustine", "Constantine",  
  "Theodosius", "St. Basil", "St. Genevieve of Paris", "Marcian", "St. Gregory the Great", "Hildebrand", "St. Anthony",  
  "St. Austin", "St. Bruno", "St. Anselm", "Beatrice", "St. Benezet", "St. Bernard", "Ignatius Loyola", 
  "Fredrick Borromeo", "St. Catharine of Siena", "Abbé de l'Epée", "Claude Fleury", "George Fox", "Bossuet",
  "Theodoric the Great", "Pelayo", "Henry the Fowler", "St. Henry", "La Valette", "John Sobieski", "Alfred", 
  "Charles Martel", "Tancred", "Saladin", "Marina", "Sir Walter Raleigh", "Bayard", "Godfrey", "Leo IV", "Peter Damian",
  "Peter the Hermit", "St. Eligius", "Becket", "St. Dominic", "Innocent III", "St. Clotilde", "St. Mathilda of Tuscany",
  "Mathias Corvinus", "St. Elizabeth of Hungary", "Blanche of Castille", "Alfonso X", "St. Louis", "The Troubadours",
  "Chaucer", "Swift", "Cervantes", "Burns", "Goldsmith", "Aristo", "Titian", "Paul Veronese", "Rembrandt", "Lesueuer", 
  "Murillo", "Rubens", "Raphael", "Joinville", "Spenser", "The Spanish Romancers", "Chateaubriand", 
  "James Fenimore Cooper", "Manzoni", "Tasso", "Petrarca", "Louis of Granada and Bunyan", "Mme. de Staël", 
  "St. Francis of Sales", "Gessner", "Elisa Mercoeur and Shelly", "Milton", "Chardin", "Gresham", "Magellan", "Briggs", 
  "Delambre", "Tasman", "Columbus", "Benvenuto Cellini", "Wheatstone", "Pierre Leroy", "Graham", "Jacquard",  "Conté",  
  "Vaucanson", "Torricelli", "Boyle", "Worcester", "Black", "Fulton", "Thilorier", "Watt", "Bernard de Palissy",
  "Riquet", "Bourgelat", "Bouguer", "Borda", "Vauban", "Montgolfier", "Montalvan", "Guillem de Castro", "Guevara",
  "Otway", "Lessing", "Goethe", "Calderon", "Tirso", "Vondel", "Racine", "Voltaire", "Alfieri", "Schiller", "Corneille", 
  "Almarcon", "Mme. Roland", "Lady Montagu", "Sterne", "Miss Edgeworth", "Richardson", "Moliere", "Palestrina", "Grétry", 
  "Lully", "Handel", "Weber", "Donizeti", "Mozart", "John of Salisbury", "Raymond Lully", "Joachim", 
  "The Cardinal of Cusa", "Erasmus", "Sir Thomas More", "St. Thomas Aquinas", "Spinoza", "Giordano Bruno", "Malebranche",
  "Mme. de Lambert", "Duclos", "George Leroy", "Lord Bacon", "Cujas", "Maupertuis", "Herder", "Wincklemann", "D'Aguesseau",  
  "Oken", "Leibnitz", "Gibbon", "Dunoyer", "Fichte", "Ferguson", "Bonald", "Sophie Germain", "Hume", "Marie de Molina",
  "Cosmo de Medici the Elder", "Guicciardini", "Isabella of Castille", "Sixtus V", "Henry IV", "Louis XI", "L'Hôpital",
  "Barneveldt", "Gustavus Adolphus", "De Witt", "Ruyter", "William III", "William The Silent", "Ximenes", "Oxenstiern",
  "Walpole", "Louis XIV", "Pombal", "Campomanes", "Richelieu", "Lambert", "Hampden", "Kosciusko", "Madison", 
  "Toussaint-L'Ouverture", "Francia", "Cromwell", "Tycho Brahé", "Halley", "Varignon", "John Bernouilli", "Römer",  
  "Sauveur", "Galileo", "Harriot", "Fermat", "Poinsot", "Monge", "Daniel Bernouilli", "Joseph Fourier", "Newton",
  "Scheele", "Davy", "Cavendish", "Geoffroy", "Berthollet", "Ritter", "Lavoisier", "Charles Bell and Barthez", "Stahl",
  "Bernard de Jussieu", "Vicq-d'Azyr", "Blainville", "Morgagni", "Gall");
    
  var DAYS     = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
  var MONTHS   = new Array("Moses", "Homer", "Aristotle", "Archimedes", "Caesar", "St. Paul","Charlemagne", "Dante", "Gutenberg", "Shakespeare", "Descartes", "Frederic", "Bichat", "Festival of All The Dead", "Festival of Holy Women");
  var MO_LEN   = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

  var date = new PCDate();
  
  if (year > 0)
  {
    var i;
    var count;

    m=m-1;
 
    var leapYear = false;
    if (   (   ((year % 4) == 0)
            && ((year % 100) != 0)
           )
        || ((year % 400) == 0)
       )
    {
      leapYear = true;
      MO_LEN[1] = 29;
    }

    var doy = 0;
    for (i=0; i<m; ++i)
    {
      doy += MO_LEN[i];
    }

    doy += d;

    count = 0;
    for (i=0; ((doy > count) && (doy < 365)); ++i)
    {
      count += 28;
    }

    date.y = year - 1788;
    date.mstr  = MONTHS[i-1];
    date.dstr = DAYS[(doy + 7) % 7];
    date.d = ((doy + 28) % 28);
    if(date.d == 0)
    {
      date.d += 28;
    }

    if (doy == 365)
    {
      date.mstr  = MONTHS[14-1];
      date.d = "";
      date.dstr = "";
    }

    if (doy == 366)
    {
      date.mstr  = MONTHS[15-1];
      date.d = "";
      date.dstr = "";
    }

    if ((doy > 0) && (doy < 365))
    {
      if (leapYear)
      {
        date.sstr = SAINTS[doy-1];
      }
      else
      {
        date.sstr = SAINTS_L[doy-1];
      }
    }
    else
    {
      date.sstr = "";
    }
  }  
  
  return date;
}

-->
