//*************************************************************************************************
//*************************************************************************************************
//*************************************************************************************************
//**********                                                                             **********
//**********                                                                             **********
//**********                           S A T U R N                                       **********
//**********                                                                             **********
//**********                                                                             **********
//*************************************************************************************************
//*************************************************************************************************
//*************************************************************************************************
function saturn_Orb_Elem(kada)
{
	var d=izracunaj_d(kada);
	
	/*******************************
	* Orbitalni elementi Saturna   *
	********************************/
	var N = 113.6634 + 2.38980E-5 * d;
	var i = 2.4886 - 1.081E-7 * d;
	var w = 339.3939 + 2.97661E-5 * d;
	var a = 9.55475; // (AU)
	var e = 0.055546 - 9.499E-9 * d;
	var M = norm360(316.9670 + 0.0334442282 * d);
	
	//alert("M_saturn="+M_saturn);
	var vrati_parametre= new Array();
	vrati_parametre["N"]= N;
	vrati_parametre["i"]= i;
	vrati_parametre["w"]= w;
	vrati_parametre["a"]= a;
	vrati_parametre["e"]= e;
	vrati_parametre["M"]= M;
	return vrati_parametre;

}//end of saturn_Orb_Elem()

function saturn_Perturbations_lon ( Mj, Ms)
{
	//Mj    Mean anomaly of Jupiter, Ms    Mean anomaly of Saturn 	
	//Perturbations for saturn: longitude
	var lon=0;
	lon += 0.812 * sinDeg(2*Mj - 5*Ms - 67.6 );
	lon += -0.229 * cosDeg(2*Mj - 4*Ms - 2 );
	lon += 0.119 * sinDeg(Mj - 2*Ms - 3 );
	lon += 0.046 * sinDeg(2*Mj - 6*Ms - 69 );
	lon += 0.014 * sinDeg(Mj - 3*Ms + 32 );

    return lon;
}

function saturn_Perturbations_lat ( Mj, Ms)
{
	//Perturbations for saturn: latitude
	var lat=0;
	lat += -0.020 * cosDeg(2*Mj - 4*Ms - 2 );
	lat += 0.018 * sinDeg(2*Mj - 6*Ms - 49 );
    
    return lat;
}

function saturn_kalkulator  (kada, h_konvencija, x_lon, x_lat, sunce_data )
{
	var vrati_parametre     = new Array();	
	var saturn_data1       = new Array();
	var saturn_data2       = new Array();
	var saturn_data3       = new Array();
	var saturn_data4       = new Array();
	var saturn_data1_podne = new Array();
	var saturn_data2_podne = new Array();
	var jupiter_data1        = new Array();
	var jupiter_data1_podne  = new Array();
	var sunce_polozaj_podne = new Array();
	var loc_podne = new Date(kada.getFullYear(), kada.getMonth(), kada.getDate(), 12,0,0,0);
	var B=0, ir=0, Nr=0; 
	/* B - the tilt of Saturn's rings , 
	  ir - tilt of the rings to the ecliptic 
	  Nr - the "ascending node" of the plane of the rings	*/
		
	//window.status = "saturn";
  
	jupiter_data1       = pozicija_planeta(kada, "jupiter");
	jupiter_data1_podne = pozicija_planeta(loc_podne,"jupiter");
	saturn_data1        = pozicija_planeta(kada, "saturn");
	saturn_data1_podne  = pozicija_planeta(loc_podne, "saturn");
	sunce_polozaj_podne = sunce_pozicija(loc_podne);

	
	saturn_data1["lonecl"] += saturn_Perturbations_lon (jupiter_data1["M"], saturn_data1["M"]);
	saturn_data1["latecl"] += saturn_Perturbations_lat (jupiter_data1["M"], saturn_data1["M"]);
	saturn_data1_podne["lonecl"] += saturn_Perturbations_lon(jupiter_data1_podne["M"],saturn_data1_podne["M"]);
	saturn_data1_podne["latecl"] += saturn_Perturbations_lat(jupiter_data1_podne["M"],saturn_data1_podne["M"]);

	saturn_data2 = planet_RA_Decl("saturn", izracunaj_ecl(kada), saturn_data1["r"], saturn_data1["lonecl"], saturn_data1["latecl"],
									sunce_data["r"], sunce_data["lon"] );	

	saturn_data2_podne = planet_RA_Decl("saturn", izracunaj_ecl(loc_podne), saturn_data1_podne["r"], saturn_data1_podne["lonecl"], 
										saturn_data1_podne["latecl"], sunce_polozaj_podne["r"], sunce_polozaj_podne["lon"] );
		
	saturn_data3 = planet_izlazk_zalazak(kada, h_konvencija, x_lon, x_lat, sunce_data["M"], sunce_data["w"], 
											saturn_data2["RA"], saturn_data2["Dec"], saturn_data1_podne["M"],
											saturn_data1_podne["w"], saturn_data2_podne["RA"], saturn_data2_podne["Dec"],
											sunce_polozaj_podne["M"], sunce_polozaj_podne["w"]);	
	ir = 28.06;
	Nr = 169.51 + 3.82E-5 * izracunaj_d(kada);
	B = asinDeg(sinDeg(saturn_data1["latecl"])*cosDeg(ir)-cosDeg(saturn_data1["latecl"])*sinDeg(ir)*sinDeg(saturn_data1["lonecl"]-Nr));

	saturn_data4 = planet_ostalo (saturn_data1["r"],saturn_data2["rg"],sunce_data["r"], "saturn", 0, 0, sunce_data["lon"], B);


	vrati_parametre["N"]     = saturn_data1["N"]; // N
	vrati_parametre["i"]     = saturn_data1["i"]; // i
	vrati_parametre["w"]     = saturn_data1["w"]; // w
	vrati_parametre["a"]     = saturn_data1["a"]; // a
	vrati_parametre["e"]     = saturn_data1["e"]; // e
	vrati_parametre["M"]     = saturn_data1["M"]; // M 
	vrati_parametre["v"]     = saturn_data1["v"]; // v
	vrati_parametre["r"]     = saturn_data1["r"]; // r
	vrati_parametre["lonecl"]= saturn_data1["lonecl"]; // lonecl
	vrati_parametre["latecl"]= saturn_data1["latecl"]; // latecl
	vrati_parametre["RA"]    = saturn_data2["RA"]; // RA
	vrati_parametre["Dec"]   = saturn_data2["Dec"]; // Dec
	vrati_parametre["rg"]    = saturn_data2["rg"]; // rg	
	vrati_parametre["altitude above the horizon"] 	= saturn_data3["altitude above the horizon"]; //planet altitude above the horizon
	vrati_parametre["UT_in_south"]            		= saturn_data3["UT_in_south"]; // vrijeme  (UT) kada je planet tocno na jugu
	vrati_parametre["cosLHA"]                     	= saturn_data3["cosLHA"];
	vrati_parametre["izlazak UT"]                 	= saturn_data3["izlazak UT"]; // izlazak  u UT
	vrati_parametre["zalazak UT"]                 	= saturn_data3["zalazak UT"]; // zalazak  u UT
	vrati_parametre["izlazak local time"]         	= saturn_data3["izlazak local time"]; // izlazak u lokalnom vremenu
	vrati_parametre["zalazak local time"]         	= saturn_data3["zalazak local time"]; // zalazak u lokalnom vremenu
	vrati_parametre["azimuth"]            = saturn_data3["azimuth"];
	vrati_parametre["altitude"]           = saturn_data3["altitude"];
	vrati_parametre["elong"]			= saturn_data4["elong"]; // The elongation is the apparent angular distance of the planet from the Sun
	vrati_parametre["faza"]				= saturn_data4["faza"];
	vrati_parametre["d"]				= saturn_data4["d"]; // apparent diameter
	vrati_parametre["magnitude"]		= saturn_data4["magnitude"];
	vrati_parametre["fazni kut"]        = saturn_data4["fazni kut"];
	vrati_parametre["nagib prstenova"]  = B;

	
	return vrati_parametre;
} //end of saturn_kalkulator()
