/* *************************************************************************************************
   Das Modul wird mit dem Plugin "Custom Javascript" verwendet. Kann aber auch in den normalen
   Wordpress JS Modulen abgelegt werden
************************************************************************************************* */

// Das Programm Berechnung des Pfades von einer Sonnenfinsternis ist noch nicht gestartet
var startedMoonSunEclipsePath;
// Das Programm Berechnung von Sonnen- und Mondfinsternis ist noch nicht gestartet
var startedMoonSunEclipse;
// Das Programm Berechnung von Neu- und Vollmond ist noch nicht gestartet
var startedNewFullMoon;
// Das Programm Sonnenauf- und Untergang ist noch nicht gestartet
var startedSunRiseSet;
// Das Programm Mondauf- und Untergang ist noch nicht gestartet
var startedMoonRiseSet;
// Das Programm SiderialTime ist noch nicht gestartet
var startedSiderialTime;
// Das Programm Konvertieren von UTC zu UT ist noch nicht gestartet
var startedUTC2UT;
// Das Programm zur Mondphasenberechnung ist noch nicht gestartet,
// ebenso das große Bild der Mondphase nicht.
var startedMoonPhase;
var startedMaxiPhase;
// Das Programm Aktuelle Version UT ist noch nicht gestartet
var startedActualVersion;

 // Öffnet ein neues Fenster
 var browserX;
 var browserY = (screen.height / 2) - 130;			
 var popup_window = false;
 function openNew(url, windowName, width, height){
     browserX = (screen.width / 2) - (width / 2);
     browserY = (screen.height / 2) - (height / 2);
     popup_window = false;

     if ( (popup_window == false) || (popup_window.closed == true) ){
         popup_window = window.open(url ,windowName, "screenx=" + browserX + ", screeny=" + browserY + ", toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, copyhistory=no, width=" + width + ", height=" + height + "" );
         if (popup_window == null)
             alert("Pop-up Blocker ist eingeschaltet! \n Bitte füge diese Seite zur Erlaubtliste des Browsers hinzu!");
         else
           	popup_window.document.title = windowName;
     }
   	popup_window.focus();
     return popup_window;
 }

// Startet das Programm Aktuelle version durch Klick auf den Button "Programm Starten" der Seite.
// Damit wird auch die Variable popup_window richtig gesetzt.
function startActualVersion(){
  	popup_window = openNew('https://www.ds-astronomie.de/Tests/ActualVersion/Zeitberechnungen.html', 'TimeCalc', 975, 722);
   	if (popup_window)
       	// Das Programm Mondphasen ist gestartet
		startedActualVersion = popup_window;
 }

// Startet das Programm MoonPhase durch Klick auf den Button "Programm Starten" der Seite.
// Damit wird auch die Variable popup_window richtig gesetzt.
function startMoonPhase(){
   	popup_window = openNew('https://www.ds-astronomie.de/Tests/Berechnung Mondphasen/MoonPhase.html', 'MoonPhase', 1200, 900);
   	if (popup_window)
    // Das Programm Mondphasen ist gestartet
	startedMoonPhase = popup_window;
}

// Startet das Programm SiderialTime durch Klick auf den Button "Programm Starten" der Seite.
// Damit wird auch die Variable popup_window richtig gesetzt.
function startSiderialTime(){
    popup_window = openNew('https://www.ds-astronomie.de/Tests/SiderialTime/SiderialTime.html', 'LT2UT', 1030, 420);
    if (popup_window)
        // Das Programm SiderialTime ist gestartet
		startedSiderialTime = popup_window;
}

// Startet das Programm Konverieren UTC zu UT (GMT) durch Klick auf den Button "Programm Starten" der Seite.
// Damit wird auch die Variable popup_window richtig gesetzt.
function startUTC2UT(){ 
    popup_window = openNew('https://www.ds-astronomie.de/Tests/Localtime2UT/Localtime2UT-Montenbruck.html', 'LT2UT', 1200, 400);
    if (popup_window)
        // Das Programm SiderialTime ist gestartet
		startedUTC2UT = popup_window;
}

// Startet das Programm Mondauf- und Untergang durch Klick auf den Button "Programm Starten" der Seite.
// Damit wird auch die Variable popup_window richtig gesetzt.
function startMoonRiseSet(){
    popup_window = openNew('https://www.ds-astronomie.de/Tests/MoonRiseSet/MoonRiseSet.html', 'MoonRiseSet', 1200, 400);
    if (popup_window)
        // Das Programm MoonRiseSet ist gestartet
		startedMoonRiseSet = popup_window;
}

// Startet das Programm Sonnenauf- und Untergang durch Klick auf den Button "Programm Starten" der Seite.
// Damit wird auch die Variable popup_window richtig gesetzt.
function startSunRiseSet(){
    popup_window = openNew('https://www.ds-astronomie.de/Tests/SunRiseSet/SunRiseSet.html', 'SunRiseSet', 1200, 400);
     if (popup_window)
        // Das Programm MoonRiseSet ist gestartet
		startedSunRiseSet = popup_window;
}

// Startet das Programm Neu- und Vollmond Berechnung durch Klick auf den Button "Programm Starten" der Seite.
// Damit wird auch die Variable popup_window richtig gesetzt.
function startNewFullMoon(){
    popup_window = openNew('https://www.ds-astronomie.de/Tests/NewFullMoon/NewFullMoon.html', 'MoonNewFull', 1200, 550);
    if (popup_window)
        // Das Programm MoonRiseSet ist gestartet
		startedNewFullMoon = popup_window;
}

// Startet das Programm Sonnen- und Mondfinsternis Berechnung durch Klick auf den Button "Programm Starten" der Seite.
// Damit wird auch die Variable popup_window richtig gesetzt.
function startMoonSunEclipse(){
    popup_window = openNew('https://www.ds-astronomie.de/Tests/MoonSunEclipse/MoonSunEclipse.html', 'MoonSunEclipse', 1200, 550);
    if (popup_window)
        // Das Programm MoonSunEclipse ist gestartet
		startedMoonSunEclipse = popup_window;
}

// Startet das Programm Pfad einer Sonnenfinsternis Berechnen durch Klick auf den Button "Programm Starten" der Seite.
// Damit wird auch die Variable popup_window richtig gesetzt.
function startMSEP(){
    popup_window = openNew('https://www.ds-astronomie.de/Tests/MoonSunEclipsePath/MoonSunEclipsePath.html', 'MoonSunEclipsePath', 1200, 550);
    if (popup_window)
       // Das Programm MoonSunEclipsPathe ist gestartet
		startedMoonSunEclipsePath = popup_window;
}


// Neuen Kanal für die Kommunikation erstellen ...
var objChannel = new BroadcastChannel("com");

// .. und am Kanal hören ob eine Message ankommt.
objChannel.onmessage = function (event){

	// Es kommt eine Message von dem gestarteten Programm, das 
	// das Fenster beendet wurde, bedingt durch den
	// Windows Event"beforeunload"
	if(String(event.data )== "moonsuneclipsepath is closed"){
		// Fenstervariable auf Falsch setzen.
		popup_window = false;
	}
	if(String(event.data )== "moonsuneclipse is closed"){
		// Fenstervariable auf Falsch setzen.
		popup_window = false;
	}
	if(String(event.data )== "newfullmoon is closed"){
		// Fenstervariable auf Falsch setzen.
		popup_window = false;
	}
	if(String(event.data )== "sunriseset is closed"){
		// Fenstervariable auf Falsch setzen.
		popup_window = false;
	}
	if(String(event.data )== "moonriseset is closed"){
		// Fenstervariable auf Falsch setzen.
		popup_window = false;
	}
	if(String(event.data )== "winSiderialTime is closed"){
		// Fenstervariable auf Falsch setzen.
		popup_window = false;
	}
	if(String(event.data )== "UTC2UT is closed"){
		// Fenstervariable auf Falsch setzen.
		popup_window = false;
	}
	if(String(event.data )== "MoonPhase is closed"){
		// Fenstervariable auf Falsch setzen.
		popup_window = false;
	}
	if(event.data.substring(0, 9) == "MaxiPhase"){
		var arr = event.data.split("=");
		startedMaxiPhase = arr[1];
	}
	if(String(event.data )== "Timecalc is closed"){
		popup_window = false;
	}

}


// Event Listener des Browsers kürz vor dem Schliessen
// und dort die offenen Programmfenster mit schliessen.
window.addEventListener ("beforeunload", function (event){
	// Programm Pfad der Sonnenfinsternis
	if (startedMoonSunEclipsePath) startedMoonSunEclipsePath.close();
	// Programm Sonnen- und Mondfinsternis
	if (startedMoonSunEclipse) startedMoonSunEclipse.close();
	// Programm Neu- und Vollmond
	if (startedNewFullMoon) startedNewFullMoon.close();
	// Programm Sonnenauf- und Untergang
	if (startedSunRiseSet) startedSunRiseSet.close();
	// Programm Mondauf- und Untergang
	if (startedMoonRiseSet) startedMoonRiseSet.close();
	// Programm Sternzeit Lokale Zeit
	if (startedSiderialTime) startedSiderialTime.close();
	// Programm Konvertiere UTC zu UT
	if (startedUTC2UT) startedUTC2UT.close();  
	// Programm Mondphasen
	if (startedMoonPhase) startedMoonPhase.close(); 
	// Programm Mondphasen wird das Mondphasenbild geschlossen
	if(startedMaxiPhase) startedMaxiPhase.close();
	// Programm Aktuelle Version Zeitberechnung
	if (startedActualVersion) startedActualVersion.close();
});

// Wartet solange bis alles geladen ist
window.addEventListener('load', function() {                   
                  
	// This works
	function activateHorizontalScrollbar(){
		// Monitor Breite ermittel
		var monitorWidth = screen.width;
		// Objekt des Bodies ermitteln
		var bObject = document.getElementsByTagName('body');
		// Hole das Style Attribut aus dem body-Element
		var isStyle = bObject[0].getAttribute('style');
		// Ist es verschieden von Null und nicht leer
		if( (isStyle != null) && (isStyle != "")  ){
			// und ist der Wert des vorhandenen Style Attributes -> width kleiner gleich der Monitor Breite
			if(parseInt(bObject[0].style.width) <= monitorWidth){
				// dann mache die Breite um 500 px größer
				bObject[0].style.width = monitorWidth + 500 + 'px';
			}
			// Sytel Attribut im body-Element nicht vorhanden	
		}else{
				// dann berechnet die neue Moonitorbreite, die um 500 px größer ist
				var sValue = parseInt(monitorWidth) + 50;
				// mache einen String daraus
				var s = 'width: ' + sValue + 'px';
				// und setze das Sytle-Attribut->width für das body-Element auf den neuen Wert
				bObject[0].setAttribute('style', s);
		}
		
	}
	// und die horizontale Browser Scrollbar wird angezeigt
	// Horizontale Scrollbar aktivieren
	activateHorizontalScrollbar();
	// Bei Fenster Größenänderung bie Breite neu berechnen
	window.addEventListener('resize', activateHorizontalScrollbar);

});// End Load