//*************************************************************************************************
//*************************************************************************************************
//*************************************************************************************************
//**********                                                                             **********
//**********                                                                             **********
//**********                           J U P I T E R                                     **********
//**********                                                                             **********
//**********                                                                             **********
//*************************************************************************************************
//*************************************************************************************************
//*************************************************************************************************
function jupiter_Orb_Elem(kada)
{
	var d=izracunaj_d(kada);

	/*******************************
	* Orbitalni elementi Jupitera  *
	********************************/
	
	var N = 100.4542 + 2.76854E-5 * d;
	var i = 1.3030 - 1.557E-7 * d;
	var w = 273.8777 + 1.64505E-5 * d;
	var a = 5.20256; //  (AU)
	var e = 0.048498 + 4.469E-9 * d;
	var M = norm360( 19.8950 + 0.0830853001 * d);
	
	
	//alert("M_jupiter="+M_jupiter);
	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 jupiter_Orb_Elem()

function jupiter_Perturbations ( Mj, Ms)
{
	//Mj    Mean anomaly of Jupiter, Ms    Mean anomaly of Saturn 	
	//Perturbations for Jupiter: longitude
	var lon=0;
	lon += -0.332 * sinDeg(2*Mj - 5*Ms - 67.6); 
    lon += -0.056 * sinDeg(2*Mj - 2*Ms + 21); 
    lon += 0.042 * sinDeg(3*Mj - 5*Ms + 21); 
    lon += -0.036 * sinDeg(Mj - 2*Ms);
    lon += +0.022 * cosDeg(Mj - Ms);
    lon += +0.023 * sinDeg(2*Mj - 3*Ms + 52);
    lon += -0.016 * sinDeg(Mj - 5*Ms - 69);
    
    return lon;
}


function jupiter_kalkulator (kada, h_konvencija, x_lon, x_lat, sunce_data )
{
	var vrati_parametre     = new Array();	
	var jupiter_data1       = new Array();
	var jupiter_data2       = new Array();
	var jupiter_data3       = new Array();
	var jupiter_data4       = new Array();
	var jupiter_data1_podne = new Array();
	var jupiter_data2_podne = new Array();
	var saturn_data1        = new Array();
	var saturn_data1_podne  = new Array();
	var sunce_polozaj_podne = new Array();
	var loc_podne = new Date(kada.getFullYear(), kada.getMonth()+1, kada.getDate(), 12,0,0,0);
	
	//alert("ENTER: jupiter_kalkulator");
	//window.status = "jupiter";

	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);

	
	jupiter_data1["lonecl"] += jupiter_Perturbations( jupiter_data1["M"], saturn_data1["M"]);
	jupiter_data1_podne["lonecl"] += jupiter_Perturbations( jupiter_data1_podne["M"], saturn_data1_podne["M"]);

	jupiter_data2 = planet_RA_Decl("jupiter", izracunaj_ecl(kada), jupiter_data1["r"], jupiter_data1["lonecl"], jupiter_data1["latecl"],
									sunce_data["r"], sunce_data["lon"] );	


	jupiter_data2_podne = planet_RA_Decl("jupiter", izracunaj_ecl(loc_podne), jupiter_data1_podne["r"], jupiter_data1_podne["lonecl"], 
										jupiter_data1_podne["latecl"], sunce_polozaj_podne["r"], sunce_polozaj_podne["lon"] );
		
	jupiter_data3 = planet_izlazk_zalazak(kada, h_konvencija, x_lon, x_lat, sunce_data["M"], sunce_data["w"], 
											jupiter_data2["RA"], jupiter_data2["Dec"], jupiter_data1_podne["M"],
											jupiter_data1_podne["w"], jupiter_data2_podne["RA"], jupiter_data2_podne["Dec"],
											sunce_polozaj_podne["M"], sunce_polozaj_podne["w"]);

	jupiter_data4 = planet_ostalo (jupiter_data1["r"],jupiter_data2["rg"],sunce_data["r"], "jupiter", jupiter_data1["lonecl"], jupiter_data1["latecl"], sunce_data["lon"], 0);
 
	vrati_parametre["N"]     = jupiter_data1["N"]; // N
	vrati_parametre["i"]     = jupiter_data1["i"]; // i
	vrati_parametre["w"]     = jupiter_data1["w"]; // w
	vrati_parametre["a"]     = jupiter_data1["a"]; // a
	vrati_parametre["e"]     = jupiter_data1["e"]; // e
	vrati_parametre["M"]     = jupiter_data1["M"]; // M 
	vrati_parametre["v"]     = jupiter_data1["v"]; // v
	vrati_parametre["r"]     = jupiter_data1["r"]; // r
	vrati_parametre["lonecl"]= jupiter_data1["lonecl"]; // lonecl
	vrati_parametre["latecl"]= jupiter_data1["latecl"]; // latecl
	vrati_parametre["RA"]    = jupiter_data2["RA"]; // RA
	vrati_parametre["Dec"]   = jupiter_data2["Dec"]; // Dec
	vrati_parametre["rg"]    = jupiter_data2["rg"]; // rg
	
	vrati_parametre["altitude above the horizon"] 	= jupiter_data3["altitude above the horizon"]; //planet altitude above the horizon
	vrati_parametre["UT_in_south"]            		= jupiter_data3["UT_in_south"]; // vrijeme  (UT) kada je planet tocno na jugu
	vrati_parametre["cosLHA"]                     	= jupiter_data3["cosLHA"];
	vrati_parametre["izlazak UT"]                 	= jupiter_data3["izlazak UT"]; // izlazak  u UT
	vrati_parametre["zalazak UT"]                 	= jupiter_data3["zalazak UT"]; // zalazak  u UT
	vrati_parametre["izlazak local time"]         	= jupiter_data3["izlazak local time"]; // izlazak u lokalnom vremenu
	vrati_parametre["zalazak local time"]         	= jupiter_data3["zalazak local time"]; // zalazak u lokalnom vremenu
	vrati_parametre["azimuth"]            = jupiter_data3["azimuth"];
    vrati_parametre["altitude"]           = jupiter_data3["altitude"];

	vrati_parametre["elong"]			= jupiter_data4["elong"]; // The elongation is the apparent angular distance of the planet from the Sun
	vrati_parametre["faza"]				= jupiter_data4["faza"];
	vrati_parametre["d"]				= jupiter_data4["d"]; // apparent diameter
	vrati_parametre["magnitude"]		= jupiter_data4["magnitude"];
	vrati_parametre["fazni kut"]        = jupiter_data4["fazni kut"];

	return vrati_parametre;
} //end of jupiter_kalkulator()
