var g;
function check(geo,m,d,y) {
	
        thistory=1;              
		dt=m+"/"+d+"/"+y
		 today = new Date(dt);
		 day = d;
		 year = y;
		 month = m
	//		 		alert(today)

	 weekday=today.getDay()
		bora="AD"
        var dday=g+day*1;
        if (isNaN(parseInt(day)) || isNaN(parseInt(month)) || isNaN(parseInt(year))) {kill();return;}

        if (year<1) {kill();return;}
        if (year>9999) {kill();return;}
        if (year - Math.floor(year) != 0) {kill();return;}
        if (month<1) {kill();return;}
        if (month>12) {kill();return;}
        if (month - Math.floor(month) != 0) {kill();return;}
        if (day<1) {kill();return;}
        if (dday>31) {kill();return;}
        if (day- Math.floor(day) != 0) {kill();return;}        
        if (g==0) {if (day == 31) {checkx ();}}
        ayear=year

 		WDay(weekday)
        convert ()
        document.write(" هـ الموافق ");

 		document.write (Math.abs(d)+" ");
 		MonthAr(m-1)
		document.write (Math.abs(y)+" ");
    //    document.write("م");

 
}

function checkx () 
		{
			if (month==2) {kill ();}
			if (month==4) {kill ();}
			if (month==6) {kill ();}
			if (month==9) {kill ();}
			if (month==11) {kill ();}
        }
function convert () {
var NOTE=''
var     hijri=0; var georgean=0
        if(g==1) {hijri=1} else {georgean=1};
if (georgean>0) {
georgean=0
var     cdays=day*1;    
        cdays += (month>11) ? 30: 0 ;   
        cdays += (month>10) ? 31: 0;
        cdays += (month>9) ? 30: 0; 
        cdays += (month>8) ? 31: 0; 
        cdays += (month>7) ? 31: 0; 
        cdays += (month>6) ? 30: 0;  
        cdays += (month>5) ? 31: 0;  
        cdays += (month>4) ? 30: 0;  
        cdays += (month>3) ? 31: 0; 
        cdays += (month>2) ? 28: 0; 
        cdays += (month>1) ? 31: 0; 
        leap=0;cdays +=0
        if (ayear/4 == Math.floor(ayear/4)) {leap=1;} 
        if (ayear/100 == Math.floor(ayear/100)) {if (ayear/400 != Math.floor(ayear/400)) {leap=0;}}
        if (leap==1) {if (month>2) {cdays +=1;}}
        if (day>28+leap) {if (month==2)  {kill ()}}
        myear = ayear*1+cdays/(365+leap);
        process1 ()}    
if (hijri>0) {
cdays=Math.floor((month-1)*29.5)+day*1-2
/* myear=ayear*1+cdays/354 */
/* if (cdays==355) {myear +=ayear*1+1} */
test1 ()
process2 ()
var hijri=0
}
result ()
        }
function test1() {
var     Monthf=29.53058796;
var     Gyear=ayear*0.970224044+621.574981435;
var     GyearDf= Gyear-Math.floor(Gyear);
        Gyear -= GyearDf;
var     l=0;    
        if (Gyear/4 == Math.floor(Gyear/4)) {l=1;} ;
        if (Gyear/100 == Math.floor(Gyear/100)) {if (Gyear/400 != Math.floor(Gyear/400)) {l=0;}};
        Gday= Math.floor((365+l)*GyearDf)+1;
        Gyear +=Gday/(365+l);
        var Hyear=(Gyear-621.574981435)/0.970224044;
var     Hdayf=Hyear-Math.floor(Hyear),Hday=Hdayf*10631/30+1;
        MONTH=1; if (month>1) {HDAY=1} else {HDAY=0}
        while (MONTH<month) {
        Hday +=1;HDAY+=1
        if (Hday>Monthf) {MONTH +=1; Hday=Hday-Monthf}
        }
        if (HDAY>0) {YearD=HDAY} else {YearD=1};HDAY +=day*1
        if (HDAY==356) {HDAY=355}
        while (MONTH<13 && YearD<355) {
        Hday +=1;YearD +=1
        if (Hday>Monthf) {MONTH +=1; Hday -=Monthf}}
        YearD -=1;myear=ayear*1+(HDAY-1)/(YearD+1)
}
function kill () {
if (thistory ==1) {

//        document.dmy.day1.value="";
//        document.dmy.month1.value="";
//        document.dmy.year1.value="";
//        alert("Mismatch...please,\n Maximum year 9999\n No Fractions\n No '-' Sign");
//        thistory=0;
}
       // document.dmy.day1.focus()
} 
function process1 () {
        cyear=(myear-621.578082192)/0.97022298;
        cyear += Math.floor(Math.abs(cyear)/3000)*30/10631
        cday= cyear-Math.floor(cyear);
        cyear -= cday;
        if ((cday*10631/30)-Math.floor(cday*10631/30)<.5){cday= Math.floor(cday*10631/30) +1} else {cday= Math.floor(cday*10631/30) +2};
        test2(cday)
        mday=HDAY;cmonth=HMONTH;
        if (cmonth==13){cmonth=1;cyear +=1};
        var Precise=Pcision(JulianDay(ayear*1,month*1,day*1,19,30,0));
        if (mday !=Precise) {if (mday==1 && Precise>28) {cmonth -=1;if (cmonth==0) {cmonth=12;cyear -=1}} else {if (mday>28 && Precise<3) {cmonth +=1;if (cmonth==13) {cmonth=1;cyear +=1}}}} 
        mday=Precise
        if (cyear<1) {cyear -=1}
        result();
        }
function test2 (HdayN) {
var     Monthf=29.53058796;
var     Gyear=cyear*0.970224044+621.574981435;
var     GyearDf= Gyear-Math.floor(Gyear);
        Gyear -= GyearDf;
var     l=0;    
        if (Gyear/4 == Math.floor(Gyear/4)) {l=1;} ;
        if (Gyear/100 == Math.floor(Gyear/100)) {if (Gyear/400 != Math.floor(Gyear/400)) {l=0;}};
        Gday =Math.floor((365+l)*GyearDf)+1;
        Gyear +=Gday/(365+l);
        var Hyear=(Gyear-621.574981435)/0.970224044;
var     Hdayf=Hyear-Math.floor(Hyear),Hday=Hdayf*10631/30+1;
        Hmonth=1;HdayF=1
        while (HdayF<HdayN) {
        Hday +=1;HdayF +=1
        if (Hday>= Monthf) {Hday=Hday-Monthf;Hmonth +=1};
        }
        HDAY=Math.floor(Hday)+1;HMONTH=Hmonth;
}
function process2 () {
        cyear=myear*0.970224044+621.574981435;
var     fday= cyear-Math.floor(cyear);
        cyear -= fday;
var     l=0;    
        if (cyear/4 == Math.floor(cyear/4)) {l=1;} 
        if (cyear/100 == Math.floor(cyear/100)) {if (cyear/400 != Math.floor(cyear/400)) {l=0;}}

if      ((365+l)*fday-Math.floor((365+l)*fday)<.5){cday= Math.floor((365+l)*fday)} else {cday= Math.floor((365+l)*fday)+1}; 
        cmonth=1;mday=cday
        if (cday>31) {cmonth +=1;mday=cday-31;}
        if (cday>59+l) {cmonth +=1;mday=cday-59-l;}
        if (cday>90+l) {cmonth +=1;mday=cday-90-l;}
        if (cday>120+l) {cmonth +=1;mday=cday-120-l;}  
        if (cday>151+l) {cmonth +=1;mday=cday-151-l;} 
        if (cday>181+l) {cmonth +=1;mday=cday-181-l;}
        if (cday>212+l) {cmonth +=1;mday=cday-212-l;}
        if (cday>243+l) {cmonth +=1;mday=cday-243-l;} 
        if (cday>273+l) {cmonth +=1;mday=cday-273-l;}
        if (cday>304+l) {cmonth +=1 ;mday=cday-304-l;}
        if (cday>334+1) {cmonth +=1 ;mday=cday-334-l;}
        Adjust(l)
        if (cyear <1) {cyear -=1;}      
}

function Adjust(Leap) {
var Hjdn=JulianDay(cyear*1,cmonth*1,mday*1,19,30,0)*1; var Hdn=Pcision(Hjdn);var Hdnm=Pcision(Hjdn-1);var Hdnp=Pcision(Hjdn+1)
if (Hdn !=day*1) {
        if (Hdnp==day*1) {var C=1}
        if (Hdnm==day*1) {var C=-1}
        if (Hdnp!=day*1 && Hdnm!=day*1) {var C=-1;NOTE=' **'}
        mday +=C
        if (mday>28) {
                   if (cmonth==11 || cmonth==9 || cmonth==6 || cmonth==4) {if (mday>30) {mday=1;cmonth +=1}};
                   if (cmonth==12 || cmonth==10 || cmonth==8 || cmonth==7 || cmonth==5 || cmonth==3 || cmonth==1) {if (mday>31) {mday=1;cmonth +=1}};
                   if (cmonth==2) {if (mday>28+Leap) {mday=1;cmonth=3}};
                   if (cmonth==13) {cmonth=1;cyear +=1}
                        }
        if (mday==0) {cmonth -=1;if (cmonth==0) {mday=31;cmonth=12;cyear -=1}
           else {  if (cmonth==11 || cmonth==9 || cmonth==6 || cmonth==4) {mday=30};
                   if (cmonth==10 || cmonth==8 || cmonth==7 || cmonth==5 || cmonth==3 || cmonth==1) {mday=31};
                   if (cmonth==2) {mday=28+Leap} } }
                
                        }}

function result () {
        if (thistory==1) 
        {
    //    WeekDay ();
        if (cyear<0) {if (g==0) {bora="BH"} else {bora="BC"}} else {if (g==0) {bora="AH"} else {bora="AD"}}
        yfinale=day+"/"+month+"/"+year+" ";
        finale=mday+"/"+cmonth+"/"+Math.abs(cyear)+" ";
        thistory=0;
		document.write(mday) 
		
var arrmonths=new Array(13);
arrmonths[0]="&#1605;&#1581;&#1585;&#1605;"
arrmonths[1]="&#1589;&#1601;&#1585;"
arrmonths[2]="&#1585;&#1576;&#1610;&#1593; &#1575;&#1604;&#1571;&#1608;&#1604;"
arrmonths[3]="&#1585;&#1576;&#1610;&#1593; &#1575;&#1604;&#1579;&#1575;&#1606;&#1610;"
arrmonths[4]="&#1580;&#1605;&#1575;&#1583;&#1609; &#1575;&#1604;&#1571;&#1608;&#1604;"
arrmonths[5]="&#1580;&#1605;&#1575;&#1583;&#1609; &#1575;&#1604;&#1570;&#1582;&#1585;"
arrmonths[6]="&#1585;&#1580;&#1576; "
arrmonths[7]="&#1588;&#1593;&#1576;&#1575;&#1606;"
arrmonths[8]="&#1585;&#1605;&#1590;&#1575;&#1606;"
arrmonths[9]="&#1588;&#1608;&#1575;&#1604;"
arrmonths[10]="&#1584;&#1608; &#1575;&#1604;&#1602;&#1593;&#1583;&#1577;"
arrmonths[11]="&#1584;&#1608; &#1575;&#1604;&#1581;&#1580;&#1577;"

		document.write("  "+arrmonths[cmonth-1]+" ")
		document.write (Math.abs(cyear)+" ");

		}
}

function MonthAr(m)
{
var months=new Array(13);
months[0]="كانون الثاني (&#1610;&#1606;&#1575;&#1610;&#1585;)"
months[1]="شباط (&#1601;&#1576;&#1585;&#1575;&#1610;&#1585;)"
months[2]="آذار (&#1605;&#1575;&#1585;&#1587;)"
months[3]="نيسان (&#1573;&#1576;&#1585;&#1610;&#1604;)"
months[4]="أيار (&#1605;&#1575;&#1610;&#1608;)"
months[5]="حزيران (&#1610;&#1608;&#1606;&#1610;&#1608;)"
months[6]="تموز (&#1610;&#1608;&#1604;&#1610;&#1608;)"
months[7]="آب (&#1571;&#1594;&#1587;&#1591;&#1587;)"
months[8]="أيلول (&#1587;&#1576;&#1578;&#1605;&#1576;&#1585;)"
months[9]=" تشرين الأول (&#1571;&#1603;&#1606;&#1608;&#1576;&#1585;)"
months[10]="تشرين الثاني (&#1606;&#1608;&#1601;&#1605;&#1576;&#1585;)"
months[11]="كانون الأول (&#1583;&#1610;&#1587;&#1605;&#1576;&#1585;)"
		document.write("  "+months[m]+" ")
}


function WDay(Dweek)
{
        if (Dweek==0) {WDAY=" الاحد"}; 
        if (Dweek==1) {WDAY=" الاثنين"}; 
        if (Dweek==2) {WDAY=" الثلاثاء"}; 
        if (Dweek==3) {WDAY=" الاربعاء"}; 
        if (Dweek==4) {WDAY=" الخميس"}; 
		if (Dweek==5) {WDAY=" الجمعة"}; 
        if (Dweek==6) {WDAY=" السبت"}; 
       //alert(WDay)
       document.write(WDAY+" ");

}


function WeekDay () {
        if (g==1) {var Dyear=cyear;var Dmonth=cmonth;var Dday=mday} else {var Dyear=year*1;var Dmonth=month*1;var Dday=day*1} 
        if (bora=="BC" || Dyear<0 ) {Dyear=-Math.abs(Dyear)+1}
        var DayCount=0; var L=0
        while (Dyear<10000){
        if (Dyear/4==Math.floor(Dyear/4)) {L=1} else {L=0};
        if (Dyear/100==Math.floor(Dyear/100)) { if (Dyear/400 !=Math.floor(Dyear/400)) {L=0}};
        if (Dmonth==14) {DayCount +=365+L} else {
        while (Dmonth<13) {
        if (Dmonth==1 || Dmonth==3 || Dmonth==5 || Dmonth==7 || Dmonth==8 || Dmonth==10 || Dmonth==12) {var limit=31} else {var limit=30};
        if (Dmonth==2) {limit=28+L}
        if (Dday==40) {DayCount +=limit} else {while (Dday<limit){
        Dday +=1;DayCount +=1;}};
        Dmonth +=1;Dday=40}};
        Dyear +=1; Dmonth=14};
        var Dweek=DayCount%7;
        if (Dweek==0) {DAY=" (Fri)"}; 
        if (Dweek==6) {DAY=" (Sat)"}; 
        if (Dweek==5) {DAY=" (Sun)"}; 
        if (Dweek==4) {DAY=" (Mon)"}; 
        if (Dweek==3) {DAY=" (Tue)"}; 
        if (Dweek==2) {DAY=" (Wed)"}; 
        if (Dweek==1) {DAY=" (Thu)"}; 
}
function rad(angle)
{return r(angle)*Math.PI/180}
function sin(angle)
{return Math.sin(rad(angle))}
function cos(angle)
{return Math.cos(rad(angle))}
function r(Input)
{if (Input >=0) {var Output=Input-Math.floor(Input/360)*360} else {var Output=Input-Math.ceil(Input/360)*360+360;}
return Output}

function Moon(jd)
    {  
var T_ = (jd-EPOCH*1)/ 36525.0; 
var mE=297.8502042
                     + 445267.1115168*T_
                     - 0.0016300*(T_*T_)
                     + (T_*T_*T_)/545868.0
                     - (T_*T_*T_*T_)/113065000
var mA=134.9634114
                     + 477198.8676313*T_
                     + 0.0089970*(T_*T_)
                     + (T_*T_*T_)/69699.0
                     - (T_*T_*T_*T_)/863310000.0

var SmA=357.5291092 
                + (35999.0502909*T_) 
                - (0.0001536 *T_*T_) 
                + ((T_*T_*T_)/24490000)
var D  = r(mE)*1;
var S  = r(SmA)*1;
var M = r(mA)*1;
var phaseAngle=180-D-6.289*sin(M)+2.1*sin(S)-1.274*sin(r(2*D)-M)-0.658*sin(2*D);
phaseAngle +=-0.214*sin(2*M); 
phaseAngle +=-0.110*sin(1*D)
  /** k  (46.1) **/
var iF=(1+cos(phaseAngle))/2*(phaseAngle/Math.abs(phaseAngle))
return iF }

function Pcision(F) {
var Status='ok';var Dn=0;var jDn=F
if (Moon(jDn-1)<=0) {jDn -=1;Dn +=1}
while (Status=='ok') {
var Fn=Moon(jDn);var Fn2=Moon(jDn-1);
if (((Fn/Math.abs(Fn))*(Fn2/Math.abs(Fn2)))==1) {Dn +=1;jDn -=1} else {if (Math.abs(Fn*Fn2)<.2) {Status='End'} else {Dn +=1;jDn -=1}}
}
return Dn}

function JulianDay (gYear,gMonth,gDay,gHour,gMinutes,gSeconds)
{
var calendar='GREGORIAN'
EPOCH = 2451545.0;
if (gMonth <= 2) { --gYear;gMonth += 12;}
var A = Math.floor(gYear/100);
var B=0
if (calendar == 'GREGORIAN') {B =Math.floor( 2 - A + (A / 4))} else {B = 0;}
var dayFraction = (gHour + gMinutes/60.0 + gSeconds/3600.0) / 24.0;
var dayAndTime  = gDay + dayFraction;
jd_ =Math.floor(365.25 * (gYear + 4712))
          +Math.floor(30.6001 * (gMonth+1))
          + dayAndTime + B -63.5;
return jd_*1
}


var Clock = 0;
function Update() {
var Rdate= new Date();
var Thetime="";
var Thedate="";
var Thehours=Rdate.getHours();
var Theminutes=Rdate.getMinutes();
var Theseconds=Rdate.getSeconds();
var Theyear=Rdate.getYear();
var Themonth=Rdate.getMonth();
var Theday=Rdate.getDate();
var ampm;

if (Thehours < 12) {if (Thehours == 0) {ampm = "M"; Thehours = 12;} else {ampm = "am";}} else { ampm = "pm"; if (Thehours > 12) {Thehours -= 12;}else{}}
if (Thehours <10) {Thehours= "0"+ Thehours;}
if (Theminutes <10) {Theminutes= "0"+ Theminutes;}
if (Theseconds <10) {Theseconds= "0"+ Theseconds;}
Thetime +=Thehours +":"+ Theminutes + ":" + Theseconds +" "+ ampm ;
Themonth +=1 ; Theyear +=1900;
if (Theday <10) {Theday= "0"+ Theday;}
if (Themonth <10) {Themonth= "0"+ Themonth;}
Thedate +=Themonth +"/"+ Theday +"/"+ Theyear +" ";
document.timeForm.datebox.value = Thedate;
document.timeForm.timebox.value = Thetime;
clearTimeout( Clock );
   Clock = setTimeout( "Update()", 1000 )}

function Thec (w,t) {
        
         w ? bora="AD":bora="AH"
}
function Cbora(c) {

if (c.value=="BC") {var b="AD"}
if (c.value=="AD") {var b="BC"}
if (c.value=="BH") {var b="AH"}
if (c.value=="AH") {var b="BH"}
c.value=b
}



