Index: trunk/FACT++/src/InterpreterV8.cc
===================================================================
--- trunk/FACT++/src/InterpreterV8.cc	(revision 15202)
+++ trunk/FACT++/src/InterpreterV8.cc	(revision 15204)
@@ -10,7 +10,5 @@
 
 #ifdef HAVE_NOVA
-#include <libnova/solar.h>
-#include <libnova/lunar.h>
-#include <libnova/transform.h>
+#include "externals/nova.h"
 #endif
 
@@ -1658,5 +1656,5 @@
     const Time utc = args.Length()==0 ? Time() : Time(v/1000, v%1000);
 
-    return Number::New(ln_get_lunar_disk(utc.JD()));
+    return Number::New(Nova::GetLunarDisk(utc.JD()));
 }
 
@@ -1669,5 +1667,5 @@
         return ThrowException(String::New("Argument must be a Date"));
 
-    ln_hrz_posn hrz;
+    Nova::HrzPosn hrz;
     hrz.alt = 90-GetDataMember(args, "zd");
     hrz.az  =    GetDataMember(args, "az");
@@ -1686,10 +1684,5 @@
     const Time utc(v/1000, v%1000);
 
-    ln_lnlat_posn obs;
-    obs.lng = -(17.+53./60+26.525/3600);
-    obs.lat =   28.+45./60+42.462/3600;
-
-    ln_equ_posn equ;
-    ln_get_equ_from_hrz(&hrz, &obs, utc.JD(), &equ);
+    const Nova::EquPosn equ = Nova::GetEquFromHrz(hrz, utc.JD());
 
     // -----------------------------
@@ -1707,5 +1700,5 @@
         return ThrowException(String::New("Argument must be a Date"));
 
-    ln_equ_posn equ;
+    Nova::EquPosn equ;
     equ.ra  = GetDataMember(args, "ra")*15;
     equ.dec = GetDataMember(args, "dec");
@@ -1724,10 +1717,5 @@
     const Time utc(v/1000, v%1000);
 
-    ln_lnlat_posn obs;
-    obs.lng = -(17.+53./60+26.525/3600);
-    obs.lat =   28.+45./60+42.462/3600;
-
-    ln_hrz_posn hrz;
-    ln_get_hrz_from_equ(&equ, &obs, utc.JD(), &hrz);
+    const Nova::HrzPosn hrz = Nova::GetHrzFromEqu(equ, utc.JD());
 
     Handle<Value> arg[] = { Number::New(90-hrz.alt), Number::New(hrz.az), date };
@@ -1740,5 +1728,5 @@
         return ThrowException(String::New("toLocal must not be called with arguments."));
 
-    ln_equ_posn equ;
+    Nova::EquPosn equ;
     equ.ra  = GetDataMember(args, "ra")*15;
     equ.dec = GetDataMember(args, "dec");
@@ -1756,10 +1744,5 @@
     const Time utc(v/1000, v%1000);
 
-    ln_lnlat_posn obs;
-    obs.lng = -(17.+53./60+26.525/3600);
-    obs.lat =   28.+45./60+42.462/3600;
-
-    ln_hrz_posn hrz;
-    ln_get_hrz_from_equ(&equ, &obs, utc.JD(), &hrz);
+    const Nova::HrzPosn hrz = Nova::GetHrzFromEqu(equ, utc.JD());
 
     Handle<Value> arg[] = { Number::New(90-hrz.alt), Number::New(hrz.az), date };
@@ -1785,6 +1768,5 @@
     const Time utc(v/1000, v%1000);
 
-    ln_equ_posn equ;
-    ln_get_lunar_equ_coords_prec(utc.JD(), &equ, 0.01);
+    const Nova::EquPosn equ = Nova::GetLunarEquCoords(utc.JD(), 0.01);
 
     // ----------------------------
@@ -1879,5 +1861,5 @@
 }
 
-Handle<Object> InterpreterV8::ConstructRiseSet(const Handle<Value> time, const ln_rst_time &rst, const bool &rc)
+Handle<Object> InterpreterV8::ConstructRiseSet(const Handle<Value> time, const Nova::RstTime &rst, const bool &rc)
 {
     Handle<Object> obj = Object::New();
@@ -1952,13 +1934,8 @@
     const Time utc(v/1000, v%1000);
 
-    ln_lnlat_posn obs;
-    obs.lng = -(17.+53./60+26.525/3600);
-    obs.lat =   28.+45./60+42.462/3600;
-
-    // get Julian day from local time
-    const double JD = utc.JD();
+    Nova::LnLatPosn obs = Nova::ORM();
 
     ln_rst_time sun;
-    const int rc = ln_get_solar_rst_horizon(JD-0.5, &obs, hrz, &sun);
+    const int rc = ln_get_solar_rst_horizon(utc.JD()-0.5, &obs, hrz, &sun);
     Handle<Object> rst = ConstructRiseSet(date, sun, rc);
     rst->Set(String::New("horizon"), Number::New(hrz));
@@ -1984,13 +1961,8 @@
     const Time utc(v/1000, v%1000);
 
-    ln_lnlat_posn obs;
-    obs.lng = -(17.+53./60+26.525/3600);
-    obs.lat =   28.+45./60+42.462/3600;
-
-    // get Julian day from local time
-    const double JD = utc.JD();
+    Nova::LnLatPosn obs = Nova::ORM();
 
     ln_rst_time moon;
-    const int rc = ln_get_lunar_rst(JD-0.5, &obs, &moon);
+    const int rc = ln_get_lunar_rst(utc.JD()-0.5, &obs, &moon);
     Handle<Object> rst = ConstructRiseSet(date, moon, rc);
     return handle_scope.Close(rst);
