  var Ndate=new Date();
  Gy=Ndate.getYear () ;
  Gm=Ndate.getMonth () +1;
  Gd=Ndate.getDate ();
  Hy=0;
  Hm=0;
  Hd=0;
  if (Gy<1970 && Gy<70) {Gy +=2000}
  else {if (Gy<1970) {Gy +=1900}};
  var Jd=Toj(Gy,Gm,Gd);
  Toh (Jd); 
  
  function B(gYear) {
   var A = Math.floor(gYear/100);
   var b = Math.floor(2-A+(A/4));
   return b;  
  }

  function Toj(Year,Month,Day){
   var EPOCH = 2451545.0;
   if (Month <= 2) {
   --Year;
   Month += 12;
   }
   var Extra=B(Year);
   var Jd=Math.floor(365.25 * (Year + 4712)) +Math.floor(30.6001 * (Month+1)) + Day + Extra -63.5;
   /* J2000d=Jd-EPOCH*/
   return Jd; 
   }

  function Toh(I) {
   var M=0;
   var D=0;
   var C=0;
   var NMD=0;
   var Days=0
   var Months=0
   JDIE= 1948437.5386277;
   JDHI=  347997.4662037;
   LC= 29.530594;
   Days= I-JDIE;
   Months= (I-JDIE)/LC;
   C= Math.floor(Months);
   NMD= NewMonth(C);
/////////////////////////////////////////////
   // will change if no moon +1 or +2
   Dh=Math.floor(I-NewMonth(C,I))+1        ;
   if (Dh < 1) {C -=1;Dh=Math.floor(I-NewMonth(C,I))+1};
   Yh=Math.floor(C/12)+1;
   Mh=C-(12*(Yh-1))+1;
   Hd=Dh;
   Hm=Mh;
   Hy=Yh; 
   return Mh;
  }

 function NewMonth (Cycle,JDay) {
  var NMM=0;
  var NM=0;
  var NMM2=0;
  NMM=(Math.floor(Cycle)*LC)+JDIE;
  NMM2=(Math.floor(Cycle+1)*LC)+JDIE;
  /* the number after the '+' determines 
  the age of a moon required to start a month */
  NM=Math.ceil(NMM+0.5-.5)+.5;
  if (JDay >= NMM && JDay< NMM2) {
   MoonAge=JDay-NMM;
   SynodicF=MoonAge/(NMM2-NMM);
   Moon=0
   if (MoonAge >= .9) {Moon=10};
   if (MoonAge >= 2.5) {Moon=1};
   if (MoonAge >= 5.375) {Moon=2};
   if (MoonAge >= 8.375) {Moon=3};
   if (MoonAge >= 12.75) {Moon=4};
   if (MoonAge >= 15.75) {Moon=5};
   if (MoonAge >= 20.125) {Moon=6};
   if (MoonAge >= 23.125) {Moon=7};
   if (MoonAge >= 27.5) {Moon=0};};        
   return NM;
 }



function WeekDay (Jd) {
        var Dweek=((Jd+.5)%7)+2;
        var DAY= new Array (7)
        if (Dweek<1)  {Dweek +=7};
        if (Dweek>7)  {Dweek -=7};
        DAY[6]="الجمعة";
        DAY[7]="السبت"; 
        DAY[1]="الأحد"; 
        DAY[2]="الإثنين"; 
        DAY[3]="الثلاثاء"; 
        DAY[4]="الأربعاء"; 
        DAY[5]="الخميس"; 
        return DAY[Dweek]
}

function IslamicMonthNames (m){
 var AMonth= new Array (12)
 AMonth[1] = "محرم";
 AMonth[2] = "صفر";
 AMonth[3] = "ربيع1";
 AMonth[4] = "ربيع2";
 AMonth[5] = "جمادى1";
 AMonth[6] = "جمادى2";
 AMonth[7] = "رجب";
 AMonth[8] = "شعبان";
 AMonth[9] = "رمضان";
 AMonth[10]= "شوال";
 AMonth[11]= "ذي القعدة";
 AMonth[12]= "ذي الحجة";
 return AMonth[m]
}