function MP(day){
	day2=new Date();
	day2=day; Date.UTC(day);
	var Y=day2.getFullYear();
	var M=day2.getMonth()+1;
	var D=day2.getDate();
	var YY,MM,K1,K2,K3,J,V,IP,AG;

	YY=Y-Math.floor((12-M)/10);
	MM=M+9;
	if (MM>=12) {MM=MM-12};
	K1=Math.floor(365.25*(YY+4712));
	K2=Math.floor(30.6*MM+.5);
	K3=Math.floor(Math.floor((YY/100)+49)*.75)-38;
	J=K1+K2+D+59;  
	if (J>2299160) {J=J-K3};  
	V=(J-2451550.1)/29.530588853;
	V=V-Math.floor(V);
	if (V<0) {V=V+1};
	IP=V;
	AG=IP*29.53; 
	IP=IP*Math.PI*2  
	return IP;
}


function calceclp(calcmonth,calcyear){
	//Eclipse's
	EC1=0;
	EC2=0;
	EM1="";
	EM2="";
	R1=3.14159265/180;
 	U=0;
	Y=calcyear;
	calcmonth++;
	G=1;
	K0=Math.floor((Y-1900)*12.3685);
	T=(Y-1899.5)/100;
	T2=T*T;
 	T3=T*T*T;
	J0=2415020+29*K0;
	F0=0.0001178*T2-0.000000155*T3;
	F0=F0+0.75933+0.53058868*K0;
	F0=F0-0.000837*T-0.000335*T2;
	J0=J0+Math.floor(F0);
 	F0=F0-Math.floor(F0);
	M0=K0*0.08084821133;
	M0=360*(M0-Math.floor(M0))+359.2242;
	M0=M0-0.0000333*T2;
	M0=M0-0.00000347*T3;
	M1=K0*0.07171366128;
	M1=360*(M1-Math.floor(M1))+306.0253;
	M1=M1+0.0107306*T2;
	M1=M1+0.00001236*T3;
	B1=K0*0.08519585128;
	B1=360*(B1-Math.floor(B1))+21.2964;
	B1=B1-0.0016528*T2;
	B1=B1-0.00000239*T3;
	for (K9=1;K9<=27;K9=K9+2){
		J=J0+14*K9;
 		F=F0+0.765294*K9;
		K=K9/2;
		M5=(M0+K*29.10535608)*R1;
		M6=(M1+K*385.81691806)*R1;
		B6=(B1+K*390.67050646)*R1;
		F=F-0.4068*Math.sin(M6);
		F=F+(0.1734-0.000393*T)*Math.sin(M5);
		F=F+0.0161*Math.sin(2*M6);
		F=F-0.0104*Math.sin(2*B6);
		F=F-0.0074*Math.sin(M5-M6);
		F=F-0.0051*Math.sin(M5+M6);
		F=F+0.0021*Math.sin(2*M5);
		F=F+0.5/1440;
		J=J+Math.floor(F);
 		F=F-Math.floor(F);


		//100 REM  LUNAR ECLIPSE SUBROUTINE
		function eclipser(){
			estr="";
 			D7=0;
 			if (Math.abs(Math.sin(B6))>0.36){return 0} 
 			S=5.19595-0.0048*Math.cos(M5);
 			S=S+0.0020*Math.cos(2*M5);
 			S=S-0.3283*Math.cos(M6);
 			S=S-0.0060*Math.cos(M5+M6);
 			S=S+0.0041*Math.cos(M5-M6);
 			C1=0.2070*Math.sin(M5);
 			C1=C1+0.0024*Math.sin(2*M5);
 			C1=C1-0.0390*Math.sin(M6);
 			C1=C1+0.0115*Math.sin(2*M6);
 			C1=C1-0.0073*Math.sin(M5+M6);
 			C1=C1-0.0067*Math.sin(M5-M6);
 			C1=C1+0.0117*Math.sin(2*B6);
 			D9=Math.abs(S*Math.sin(B6)+C1*Math.cos(B6));
 			U=0.0059+0.0046*Math.cos(M5);
 			U=U-0.0182*Math.cos(M6);
 			U=U+0.0004*Math.cos(2*M6);
 			U=U-0.0005*Math.cos(M5+M6);
 			RP=1.2847+U;
 			RU=0.7404-U;
 			MPE=(1.5572+U-D9)/0.545;
			if (MPE<0){return 0}
 			MU=(1.0129-U-D9)/0.545;
 			D5=1.5572+U;
 			D6=1.0129-U;
 			D7=0.4679-U;
 			N=(0.5458+0.04*Math.cos(M6))/60;
 			D5=((D5*D5-D9*D9)*(D5*D5-D9*D9))/N;
 			if (!(MU<=0)){ D6=((D6*D6-D9*D9)*(D6*D6-D9*D9))/N};
 			if (!(MU<=1)){  D7=((D7*D7-D9*D9)*(D7*D7-D9*D9))/N};
			Jq=J;
			Fq=F;
			G=1;
			if ( Y<1583){G=0}
			Fq=Fq+0.5;
			if (!(Fq<1)){
				Fq=Fq-1;
				Jq=Jq+1;
			}

			if (G==1){ A1=Math.floor((Jq/36524.25)-51.12264);
				A=Jq+1+A1-Math.floor(A1/4)
			} else {
				A=Jq;
			}

			B=A+1524;
			C=Math.floor((B/365.25)-0.3343);
			Dq=Math.floor(365.25*C);
			E=Math.floor((B-Dq)/30.61);
			Dq=B-Dq-Math.floor(30.61*E)+Fq;
			Mq=E-1;
			Yq=C-4716;
			if (E>13.5){Mq=Mq-12};
			if (Mq<2.5) {Yq=Yq+1};
			D1=Math.floor(Dq);
			H=24*(Dq-D1);
			H1=Math.floor(H);
			M9=Math.floor(60*(H-H1));
			if (M9<10){M9="0"+M9};
			if (MU<0 ){
				estr=estr+"Partial Eclipse, "
			} else {
				D6=Math.floor(D6+0.5);
				estr=estr+"Total Eclipse - ";
   			}
			if (!(MU<0 )){
				D6=Math.floor(D6+0.5);
 				D7=Math.floor((D7+0.5)*10)/10;
				estr=estr+D7+"min duration, ";
   			}

			estr=estr+"Maximum phase "+H1+":"+M9+"UT";
			if ((Mq == calcmonth) && (Yq == calcyear)) {
				if (EC1==0) {
					EC1=D1;EM1=estr
				} else {
					EC2=D1;EM2=estr;
				}
			}
		}
	}
}






function fazeCalc(calcday,calcmonth,calcyear){
	adjmonth=calcmonth+1;
	calceclp(calcmonth,calcyear);

	var Y,JJ,K1,K2,K3,D,M,MM,FM1,FM2,NM1,NM2;
	FM1=0;
	FM2=0;	
	NM1=0;
	NM2=0;
	Tt1="";
	Tt2="";
	Tt3="";
	Tt4="";

	Y=calcyear;  // year
	M=calcmonth;
	M++;
	D=-1;
	YY=Y-Math.floor((12-M)/10);
	MM=M+9;
	if(MM>=12){MM=MM-12}
	K1=Math.floor(365.25*(YY+4712));
	K2=Math.floor(30.6*MM+.5);
	K3=Math.floor(Math.floor((YY/100)+49)*.75)-38;
	JJ=K1+K2+D+59;
	if (JJ>2299160){JJ=JJ-K3}

	var A,B,C,Dq,E,G,D1,H1,M9,Mq,H,Yq,A1,Fq,Jq;
	var R1,U,K0,T,T2,T3,J0,F0,J,M0,M1,B1,M5,M6,K9,F;
	R1=3.14159265/180;
	U=0;
	K0=Math.floor((Y-1900)*12.3685);
	T=(Y-1899.5)/100;
	T2=T*T;
	T3=T*T*T;
	J0=2415020+29*K0;
	F0=0.0001178*T2-0.000000155*T3;
	F0=F0+0.75933+0.53058868*K0;
	F0=F0-0.000837*T-0.000335*T2;
	J=J+Math.floor(F);
	F=F-Math.floor(F);
	M0=K0*0.08084821133;
	M0=360*(M0-Math.floor(M0))+359.2242;
	M0=M0-0.0000333*T2;
	M0=M0-0.00000347*T3;
	M1=K0*0.07171366128;
	M1=360*(M1-Math.floor(M1))+306.0253;
	M1=M1+0.0107306*T2;
	M1=M1+0.00001236*T3;
	B1=K0*0.08519585128;
	B1=360*(B1-Math.floor(B1))+21.2964;
	B1=B1-0.0016528*T2;
	B1=B1-0.00000239*T3;

	for(K9=0;K9<29;K9++){
		J=J0+14*K9;
		F=F0+0.765294*K9;
		K=K9/2;
		M5=(M0+K*29.10535608)*R1;
		M6=(M1+K*385.81691806)*R1;
		B6=(B1+K*390.67050646)*R1;
		F=F-0.4068*Math.sin(M6);
		F=F+(0.1734-0.000393*T)*Math.sin(M5);
		F=F+0.0161*Math.sin(2*M6);
		F=F+0.0104*Math.sin(2*B6);
		F=F-0.0074*Math.sin(M5-M6);
		F=F-0.0051*Math.sin(M5+M6);
		F=F+0.0021*Math.sin(2*M5);
		F=F+0.0010*Math.sin(2*B6-M6);
		J=J+Math.floor(F);
		F=F-Math.floor(F);

		Jq=J;
		Fq=F;
		G=1;
		if ( Y<1583){G=0}

		Fq=Fq+0.5;
		if (!(Fq<1)){
			Fq=Fq-1;
			Jq=Jq+1;
		}
		if (G==1){ 
			A1=Math.floor((Jq/36524.25)-51.12264);
			A=Jq+1+A1-Math.floor(A1/4);
		} else {
			A=Jq;
		}
		B=A+1524;
		C=Math.floor((B/365.25)-0.3343);
		Dq=Math.floor(365.25*C);
		E=Math.floor((B-Dq)/30.61);
		Dq=B-Dq-Math.floor(30.61*E)+Fq;
		Mq=E-1;
		Yq=C-4716;
		if (E>13.5){Mq=Mq-12};
		if (Mq<2.5) {Yq=Yq+1};
		D1=Math.floor(Dq);
		H=24*(Dq-D1);
		H1=Math.floor(H);
		M9=Math.floor(60*(H-H1));
		if (M9<10){M9="0"+M9};

		if ((U==0) && (Mq==M) && (Yq==Y)){if (NM1==0){NM1=D1;Tt1=H1+":"+M9} else {if(NM2==0){NM2=D1;Tt2=H1+":"+M9}}};
		if ((U==1) && (Mq==M) && (Yq==Y)){if (FM1==0){FM1=D1;Tt3=H1+":"+M9} else {if(FM2==0){FM2=D1;Tt4=H1+":"+M9}}};
		U=U+1;

		if (U==2){U=0};
	}


	var temp,dayoffset,days,i,j,monthnames,todayday;
	var right_now,curMM,curDD,curYY,nextMM,nextDD,nextYY,first_DATE,first_day,last_DATE,last_day;

	today=new Date(Date.UTC(calcyear,calcmonth,10,1,1));

	month=new Date(Date.UTC(calcyear,calcmonth,10,1,1));

	todayday=today.getDate();
	month.setDate(1);
	
	dayoffset=month.getDay()-1;

	right_now = new Date();
	curMM = right_now.getMonth();

	nextMM = curMM+2; //because UTC JAN=0
	nextYY = right_now.getFullYear();

	if (nextMM>12) { 
		nextMM=1;
		nextYY=nextYY+1;
	}

	curYY = right_now.getFullYear();
	curDD=right_now.getDay();
	first_DATE = new Date(curYY, curMM, 1, 0,0,0,0);
	first_day = first_DATE.getDate();
	
	last_DATE = new Date(nextYY, nextMM, 1, 0,0,0,0);
 	last_DATE.setTime(last_DATE.getTime()-60000*60*24*1);
	last_day = last_DATE.getDate();


	dayname=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');

	sun_color=new Array('error','yellow','gold','peach','orange','yellow');
	mon_color=new Array('error','lavender','gray','silver','white','lavender');
	tue_color=new Array('error','gray','black','white','black','red');
	wed_color=new Array('error','peach','white','yellow','brown','yellow');
	thu_color=new Array('error','violet','green','turquoise','white','green');
	fri_color=new Array('error','peach','white','rose','white','peach');
	sat_color=new Array('error','blue','brown','gray','indigo','gray');

	var weekdayname=dayname[curDD];
	var daycolor='';

	//*** FIGURE OUT WHAT WEEK WE'RE IN ***
	var week=1;
	var thisweek=0;
	for (dx=1; dx<=last_day; dx++) {
		test_DATE = new Date(curYY, curMM, dx, 0,0,0,0);
		testDD=test_DATE.getDay();
		test_day=test_DATE.getDate();
		if (test_day==calcday) { thisweek=week; }
		if (testDD==6) { week=week+1; }
	}

	if (curDD==0) { day_color=sun_color[thisweek]; }
	if (curDD==1) { day_color=mon_color[thisweek]; }
	if (curDD==2) { day_color=tue_color[thisweek]; }
	if (curDD==3) { day_color=wed_color[thisweek]; }
	if (curDD==4) { day_color=thu_color[thisweek]; }
	if (curDD==5) { day_color=fri_color[thisweek]; }
	if (curDD==6) { day_color=sat_color[thisweek]; }

	if (dayoffset==-1){dayoffset=6};
	today.setDate(1);
	today.setMonth(today.getMonth()+1);
	days=(today-month)/1000/60/60/24;

	month.setHours(11);
	//document.open();

	MD1="New Moon "+Tt1;
	MD2="New Moon "+Tt2;
	MD3="Full Moon "+Tt3;
	MD4="Full Moon "+Tt4;

	month.setDate(calcday);
	//document.write('<img src="images/moon',Math.floor(MP(month)*29/2/Math.PI)+1,'.gif" width="50" height="50" ');
	var faze=Math.floor(MP(month)*29/2/Math.PI)+1;
	return faze;
	

}