﻿function eisprung() {
  //Beuntzerdaten aus Formular laden
  local_day   = document.getElementById('day').value;
  local_month = document.getElementById('month').value;
  local_year  = document.getElementById('year').value;
  local_cycle = document.getElementById('cycle').value;

  //Sprache anhand der URL festlegen
  if ( (window.location.href.search("\.at/") > -1) || (window.location.href.search("\.de/") > -1) ) {
  	local_language = "de";
  } else if ( window.location.href.search("\.rs/") > -1 ) {
  	local_language = "rs";
  } else {
  	local_language = "en";
  }

	if ( local_day == "none" ) {
		if ( local_language == "de" ) 
		  alert ("Bitte geben Sie einen Tag an");
    else
		  alert ("Please enter a day");
  
    return false;
  }	

	if ( local_month == "none" ) {
		if ( local_language == "de" ) 
		  alert ("Bitte geben Sie ein Monat an");
    else
		  alert ("Please enter a month");
  
    return false;
  }	

	if ( local_year == "none" ) {
		if ( local_language == "de" ) 
		  alert ("Bitte geben Sie ein Jahr an");
    else
		  alert ("Please enter a year");
  
    return false;
  }	

  //Bereits vorhandene Kalender leeren
  document.getElementById('calendar1').innerHTML = '';
  document.getElementById('calendar2').innerHTML = '';

  //Diverse Arrays erstellen
  local_fruchtbarkeit1   = new Array();
  local_fruchtbarkeit11  = new Array();
  local_fruchtbarkeit2   = new Array();
  local_fruchtbarkeit22  = new Array();
  
  //Kalender Einstellungen abhängig von der Sprache setzen
  if ( local_language == "de" ) {
  	CalendarJS.dayname   = new Array("Mo","Di","Mi","Do","Fr","Sa","So");
    CalendarJS.monthname = new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
  }
  
  if ( local_language == "en" ) {
  	CalendarJS.dayname   = new Array("Mo","Tu","We","Th","Fr","Sa","Su");
    CalendarJS.monthname = new Array("January","February","March","April","May","June","July","August","Septembre","October","November","December");
  }

  if ( local_language == "rs" ) {
  	CalendarJS.dayname   = new Array("Pon","Uto","Sre","Čet","Pet","Sub","Ned");
    CalendarJS.monthname = new Array("Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar");
  }
  
  //Datum des Eisprung errechnen
  myDate = new Date ( local_year, local_month, local_day );
  if ( (28 - local_cycle) > 0 )
    local_eisprung = addDays(myDate, (14 - (28 - local_cycle)));
  else
    local_eisprung = addDays(myDate, (14 + Math.abs(28 - local_cycle)));
  	
  //Beginn der Fruchtbarkeitsphase ( 4 Tage vor dem Eisprung )
  local_fruchtbarkeit_start = addDays(local_eisprung, -4);
  //Ende der Fruchtbarkeitsphase ( 3 Tage nach dem Eisprung )
  local_fruchtbarkeit_ende  = addDays(local_eisprung, 3);

  local_month_start = local_fruchtbarkeit_start.getMonth();
  for (i=1;i<5;i++) {
    local_date  = addDays(local_eisprung, (i * -1));	
    local_month = local_date.getMonth();

    //Die ersten Zwei Tage vor dem Eisprung sind besonders Fruchtbar 
    if ( i < 3 ) {
    	//Aufteilung nach Monaten
    	if ( local_month == local_month_start ) local_fruchtbarkeit2.push(local_date.getDate()); else local_fruchtbarkeit22.push(local_date.getDate());
    } else {
    	//Aufteilung nach Monaten
    	if ( local_month == local_month_start ) local_fruchtbarkeit1.push(local_date.getDate()); else local_fruchtbarkeit11.push(local_date.getDate());
    }
  }

  for (i=1;i<4;i++) {
    local_date = addDays(local_eisprung, i);	
    local_month = local_date.getMonth();

    //Der ersten Tage nach dem Eisprung ist besonders Fruchtbar 
    if ( i < 2 ) {
    	//Aufteilung nach Monaten
    	if ( local_month == local_month_start ) local_fruchtbarkeit2.push(local_date.getDate()); else local_fruchtbarkeit22.push(local_date.getDate());
    } else {
    	//Aufteilung nach Monaten
    	if ( local_month == local_month_start ) local_fruchtbarkeit1.push(local_date.getDate()); else local_fruchtbarkeit11.push(local_date.getDate());
    }
  }
  
  //Tabelle für die Kalenderanzeige sichtbar stellen
  if ( document.getElementById('table_calendar') ) document.getElementById('table_calendar').style.display = "";
  //Legende für die Kalenderanzeige sichtbar stellen
  if ( document.getElementById('table_legende') ) document.getElementById('table_legende').style.display = "";
  //Buttons für die Navigation anzeigen
  if ( document.getElementById('button_last') ) document.getElementById('button_last').style.display = "";
  if ( document.getElementById('button_next') ) document.getElementById('button_next').style.display = "";
  
  //Prüfen ob der Eisprung im ersten Kalender liegt
  if ( local_fruchtbarkeit_start.getMonth() == local_eisprung.getMonth() ) CalendarJS.eisprung   = local_eisprung.getDate(); else CalendarJS.eisprung = 0;
  //Startdatum für Monatsanzeige setzen
  CalendarJS.now = local_fruchtbarkeit_start;
  //Fruchtbarkeitstage dem Kalender übergeben
  CalendarJS.fruchtbar1 = local_fruchtbarkeit1;
  CalendarJS.fruchtbar2 = local_fruchtbarkeit2;
  //Ersten Kalender anzeigen
  CalendarJS.init("calendar1", "250");
  
  //Zweiten Kalender anzeigen, falls sich die Monate überschneiden
  if ( local_fruchtbarkeit_start.getMonth() != local_fruchtbarkeit_ende.getMonth() ) {
    //Enddatum für Monatsanzeige setzen
    CalendarJS.now = local_fruchtbarkeit_ende;
    
    //Prüfen ob der Eisprung im zweiten Kalender liegt
    if ( local_fruchtbarkeit_ende.getMonth() == local_eisprung.getMonth() ) CalendarJS.eisprung   = local_eisprung.getDate(); else CalendarJS.eisprung   = 0; 
    
    //Fruchtbarkeitstage dem Kalender übergeben
    CalendarJS.fruchtbar1 = local_fruchtbarkeit11;
    CalendarJS.fruchtbar2 = local_fruchtbarkeit22;
    
    //Zweiten Kalender anzeigen
    CalendarJS.init("calendar2", "250");
  } 
}

function eisprung_cycle(local_direction) {
  local_day   = document.getElementById('day').value;
  local_month = document.getElementById('month').value;
  local_year  = document.getElementById('year').value;
  local_cycle = document.getElementById('cycle').value;
	
	local_date = new Date (local_year, local_month, local_day);
	local_date = addDays(local_date, local_cycle * local_direction);

  document.getElementById('day').value   = local_date.getDate();
  document.getElementById('month').value = local_date.getMonth();
  document.getElementById('year').value  = local_date.getFullYear();
  document.getElementById('cycle').value = local_cycle;
 
  eisprung(); 
}

function addDays(myDate,days) {
  //Funktion für das Addieren von Tagen zu einem übergebenen Datum
  return new Date(myDate.getTime() + days*24*60*60*1000);
}
