//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Funktionen des Projekts (ausser Menue)
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var undefined;

var HTMLROOT = 'http://www.swt.de/frontend/resource/';


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Allgemeine Funktionen
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Funktion zum dynamischen Setzen eines layer-Ausdrucks
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++

function ausdruckSetzen(idname) {

  if (document.getElementById(idname)) {
    return document.getElementById(idname);
  } else {
    //alert('Es gibt keinen Layer mit der id \'' + idname + '\'');
    return undefined;
  }

}


//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Funktion zum Tauschen der StyleSheet-Angaben
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++


function tauscheStyleClasses(element, className){
  if (element && className){
    return element.className = className;
  }
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Globale Variablen
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var istFaq;
var warFaq;


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Funktionen
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// FAQ ein-/ausblenden
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++

function faq(id) {

  var element;
  warFaq = istFaq;

  if (warFaq) {
    element = ausdruckSetzen(warFaq);
    element.style.display = 'none';
  }

  if (id != warFaq) {

    element = ausdruckSetzen(id);

    if (!element) {
      return undefined;
    }

    element.style.display = 'block';

    istFaq = id;

  } else {
    istFaq = '';
  }

}


//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Rechnungserklaerungen ein-/ausblenden
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++

var istErklaerung;
var warErklaerung;
var outClass = 'rechnung-inhalt-erklaerung';
var onClass = 'rechnung-inhalt-erklaerung aktiv';

function rechnungserklaerungEinblenden(id) {

  var element;
  warErklaerung = istErklaerung;

  if (warErklaerung) {
    element = ausdruckSetzen(warErklaerung);
    element.className = outClass;
    istErklaerung = undefined;
  }

  if (id) {
    element = ausdruckSetzen(id);
    element.className = onClass;
    istErklaerung = id;
  }

}


//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// layerDisplaySetzen
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++

function layerDisplaySetzen(id) {

  var element = document.getElementById(id);

  if (element.style.display) {
    if (element.style.display == 'block') {
      element.style.display = 'none';
      return element.style.display;
    }
  }

  element.style.display = 'block';
  return element.style.display;

}


//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// symbolTauschen
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++

function symbolTauschen(id) {

  var element = document.getElementById(id);

  if (element.src == symbolTauschen.menu1.src) {
    element.src = symbolTauschen.menu2.src;
  } else {
    element.src = symbolTauschen.menu1.src;
  }

}

symbolTauschen.menu1 = new Image();
symbolTauschen.menu2 = new Image();
symbolTauschen.menu1.src = HTMLROOT + 'grafik/online_services_oeffnen.gif';
symbolTauschen.menu2.src = HTMLROOT + 'grafik/online_services_schliessen.gif';

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// changeConfig
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++

function changeConfig(id) {

  var configField = document.getElementsByName('_CONFIG_');
  var configFieldElement;

  if (!configField || configField.length > 1) {
    return undefined;
  }

  configFieldElement = configField[0];

  if (!changeConfig.sourceArray[id]) {
    return undefined
  }

  configFieldElement.value = changeConfig.sourceArray[id];

}

changeConfig.sourceArray = {};
changeConfig.sourceArray['Jahresablesung'] = 'swt/relaunch/conf/online_services_zaehlerstand_jahresablesung.conf';
changeConfig.sourceArray['Auszug'] = 'swt/relaunch/conf/online_services_zaehlerstand_auszug.conf';
changeConfig.sourceArray['Preisänderung'] = 'swt/relaunch/conf/online_services_zaehlerstand.conf';


// Calendar

function openCalendarPopup(buttonID, cgiID, datetype){
  if (!ElementPopup.getInstance() || (ElementPopup.getInstance() && ElementPopup.getInstance().getTargetElementID() != buttonID)){
    if (datetype == 'datetime'){
      var callback = new Function("date", "setCalendarDateTime('" + cgiID + "', date)");
    } else {
      var callback = new Function("date", "setCalendarDate('" + cgiID + "', date)");
    }
    dialogContext = {callback : callback, multiple : false};
    var currentDate = false;
    if (!currentDate){
      currentDate = new Date();
    } else {
      currentDate = Util.getDateFromDateTime(currentDate);
    }
    var calendar = Calendar.createInstance();
    calendar.setDate(currentDate);
    calendar.setBundesland(10);

    var popupProperties = ElementProps.createElementProps(buttonID, '');
    var popup = new ElementPopup.createInstance();
    popup.setID("PopupContainer");
    popup.setTargetElementID(buttonID);
    popup.setX((popupProperties.positionTop()) + 'px');
    popup.setY((popupProperties.positionLeft()+23) + 'px');
    popup.setHTML(calendar.getHTML());
    popup.open();
  } else {
    ElementPopup.getInstance().close();
  }
}

function setCalendarDate(cgiID, date){
  if (document.getElementById(cgiID)){
    //document.getElementById(cgiID).value = formatDateToSystemDateFrontend(date);
    document.getElementById(cgiID).value = date;
  }
  if (document.getElementById(cgiID + '_')){
    document.getElementById(cgiID + '_').value = date;
  }
  ElementPopup.getInstance().close();
}

function setCalendarDateTime(cgiID, date){
  if (document.getElementById(cgiID)){
    document.getElementById(cgiID).value = formatDateToSystemDateFrontend(date) + ' 00:00:00.0';
  }
  if (document.getElementById(cgiID + '_')){
    document.getElementById(cgiID + '_').value = date;
  }
  ElementPopup.getInstance().close();
}

function submitEyecatcherCalenderDay(cgiID, date){
  if (document.getElementById('Form_' + cgiID)){
    if (document.getElementById('Document.Idx.Datum_' + cgiID)){
      document.getElementById('Document.Idx.Datum_' + cgiID).value = date;
    }
    document.getElementById('Form_' + cgiID).submit();
  }
}

function submitEyecatcherCalenderMonth(cgiID, dateFrom, dateTo){
  if (document.getElementById('Form_' + cgiID)){
    if (document.getElementById('Document.Idx.Datum-Von_' + cgiID)){
      document.getElementById('Document.Idx.Datum-Von_' + cgiID).value = dateFrom;
    }
    if (document.getElementById('Document.Idx.Datum-Bis_' + cgiID)){
      document.getElementById('Document.Idx.Datum-Bis_' + cgiID).value = dateTo;
    }
    document.getElementById('Form_' + cgiID).submit();
  }
}

function setDateInCMSField(cgiID, date){
  if (document.getElementById(cgiID)){
    if (date){
      document.getElementById(cgiID).value = formatDateToSystemDateFrontend(date);
    } else {
      document.getElementById(cgiID).value = '';
    }
  }
}

function formatDateToSystemDateFrontend(date){
  var str = '';
  if (date){
    var tempdate = date.split(/\./);
    for (var i=parseFloat(tempdate.length -1); i>=0; i--){
      if (tempdate[i].toString().length == 1){
        str += '0' + tempdate[i];
      } else {
        str += tempdate[i];
      }
      if (i >= 1){
        str += '-';
      }
    }
  }
  return str;
}

function submitSearchForm(elem){
  for (var i=0; i<elem.elements.length; i++){
    if (! elem.elements[i].value){
      var id = elem.elements[i].name.replace(/_$/,'');
      if (document.getElementById(id)){
        document.getElementById(id).value = '';
      }
    }
    if (Util.formatDate(elem.elements[i].value)){
      elem.elements[i].value = Util.formatDate(elem.elements[i].value);
    }
  }
  return true;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Tarife Stadtbad

var tagegesamt=0;

function formatPrice(price) {
  var _cash = '';
  price = price.toString();
  if (!price){
    return;
  }
  if (!price.match(/\./)){
    _cash = price + ',00';
  } else {
    var _price = price.split(/\./);
    _cash = _price[0];
    if (parseFloat(_price[1]) <= 9){
      _price[1] = _price[1] + '0';
    }
    _cash += ',' + _price[1];
  }
  return _cash;

}

function zeige_ergebnis(){
  nimm_ausgangswerte();
  var einleitung="Sie besuchen im Schnitt "+tagegesamt+" mal im Jahr das Stadtbad.";
  var ergebnis_einzelteile=ermittle_guenstigen_preis();
  var einzelteile=new Array;
  for (var i=1;i<ergebnis_einzelteile.length;i++){
      einzelteile[i]=" "+ergebnis_einzelteile[i];
  }
  var ergebnis="Wir empfehlen Ihnen" +einzelteile+ " für "+ formatPrice(ergebnis_einzelteile[0]) +" EUR.";

  // Einzelpreise
  var analyse1=errechne_einzelpreise();
  var analyse1_einzelteile=new Array;
  for (var i=1;i<analyse1.length;i++){
      analyse1_einzelteile[i]=" "+analyse1[i];
  }

  var egebnis1="Variation 1"+ analyse1_einzelteile + ", Preis: "+formatPrice(analyse1[0])+" EUR.<br/>\n";

  // 11er Karten
  if (tagegesamt >= 11){
    var analyse2=errechne_11erpreise();
    var analyse2_einzelteile=new Array;
    for (var i=1;i<analyse2.length;i++){
        analyse2_einzelteile[i]=" "+analyse2[i];
    }
    var egebnis2="Variation 2"+ analyse2_einzelteile + ", Preis: "+formatPrice(analyse2[0])+" EUR.<br/>\n";
  }
  else{
    var egebnis2="Variation 2, "+ preis_11er[1] + ", Preis: "+formatPrice(preis_11er[0])+" EUR.<br/>\n";
  }

  // 24er Karten
  if (tagegesamt >= 24){
    var analyse3=errechne_24erpreise();
    var analyse3_einzelteile=new Array;
    for (var i=1;i<analyse3.length;i++){
        analyse3_einzelteile[i]=" "+analyse3[i];
    }
    var egebnis3="Variation 3"+ analyse3_einzelteile + ", Preis: "+formatPrice(analyse3[0])+" EUR.<br/>\n";
  }
  else{
    var egebnis3="Variation 3, "+ preis_24er[1] + ", Preis: "+formatPrice(preis_24er[0])+" EUR.<br/>\n";
  }

  // Jahreskarte
  var analyse4=preis_jahr;
  var egebnis4="Variation 4, "+ analyse4[1] + ", Preis: "+formatPrice(analyse4[0])+" EUR.<br/>\n";


  //document['formular-tarife-sb'].ausgabe.value= einleitung +"\n\n"+ ergebnis +"\n\nPreisanalyse:\n\n"+egebnis1+"\n"+egebnis2+"\n"+egebnis3+"\n"+egebnis4;
  var str = einleitung +"<br/>\n<br/>\n"+ ergebnis +"<br/>\n<br/>\nPreisanalyse:<br/>\n<br/>\n"+egebnis1+"<br/>\n"+egebnis2+"<br/>\n"+egebnis3+"<br/>\n"+egebnis4;
  document.getElementById('tarif-ausgabe').innerHTML = str;
}

function pruefe()
{
  if (document['formular-tarife-sb'].person[0].checked==false && document['formular-tarife-sb'].person[1].checked==false){
  alert("Bitte wählen Sie Erwachsener oder Kind/Jugendlicher.");
  }
  else if (document['formular-tarife-sb'].besuche.value <= 0 || document['formular-tarife-sb'].besuche.value >364){
    alert("Bitte geben Sie die Anzahl Ihrer Besuche an, oder Überprüfen Sie Ihre Angabe!\nEs wird immer für ein Jahr gerechnet (max. 364 Tage)");
    }
    else {
    zeige_ergebnis();
    }
}

function nimm_ausgangswerte(){

      preis_11er=new Array;
      preis_24er=new Array;
      preis_jahr=new Array;

     if (document['formular-tarife-sb'].person[0].checked==true){
          //Preise in EURO für Kinder
      /* preis_einzel=2.3;
      preis_11er[0]=23;
      preis_24er[0]=46;
      preis_jahr[0]=120;
      */
      preis_einzel=2.5;
      preis_11er[0]=25;
      preis_24er[0]=50;
      preis_jahr[0]=130;
        }
     if (document['formular-tarife-sb'].person[1].checked==true){
          //Preise in EURO für Erwachsene
      /* preis_einzel=4;
      preis_11er[0]=40;
      preis_24er[0]=80;
      preis_jahr[0]=200;
      */
      preis_einzel=4.4;
      preis_11er[0]=44;
      preis_24er[0]=88;
      preis_jahr[0]=220;
        }

      preis_11er[1]="1 x 11er Karte";
      preis_24er[1]="1 x 24er Karte";
      preis_jahr[1]="1 x Jahreskarte";

        tagegesamt=parseInt(document['formular-tarife-sb'].besuche.value);
        //alert(tagegesamt);
}

function errechne_einzelpreise(){
   nimm_ausgangswerte();
    var angebot1=new Array;
   angebot1[0]=parseInt(tagegesamt*(preis_einzel*1000));
    angebot1[0]=Math.round(angebot1[0])/1000;
   angebot1[1]=tagegesamt+" x Einzelkarte";
    return angebot1;
}


function errechne_11erpreise(){
   nimm_ausgangswerte();
   var angebot2=new Array;
   var anzahl_11er=parseInt(tagegesamt/11);
    angebot2[1]=anzahl_11er+" x 11er Karte";
    var resttage=parseInt(tagegesamt-(anzahl_11er*11));
    if (resttage > 0){
    angebot2[2]=resttage+" x Einzelkarte";
      angebot2[0]=parseInt((anzahl_11er*(preis_11er[0]*1000))+(resttage*(preis_einzel*1000)));
    }
   else{
     angebot2[0]=parseInt((anzahl_11er*(preis_11er[0]*1000)));
    }
   angebot2[0]=Math.round(angebot2[0])/1000;
    return angebot2;
}

function errechne_24erpreise(){
   nimm_ausgangswerte();
   var angebot3=new Array;
   var anzahl_24er=parseInt((tagegesamt)/24);
    angebot3[1]=anzahl_24er+" x 24er Karte";
   var restzeit=parseInt(tagegesamt-(anzahl_24er*24));
    if (restzeit > 0){
       if (restzeit >= 11){
         var anzahl_11er=parseInt(restzeit/11);
                angebot3[2]=anzahl_11er+" x 11er Karte";
         var resttage=parseInt(restzeit-(anzahl_11er*11));
                if (resttage > 0){
          angebot3[3]=resttage+" x Einzelkarte";
                }
         angebot3[0]=parseInt((anzahl_24er*(preis_24er[0]*1000))+(anzahl_11er*(preis_11er[0]*1000))+(resttage*(preis_einzel*1000)));
       }
            else{
       var resttage=restzeit;
            angebot3[2]=resttage+" x Einzelkarte";
       angebot3[0]=parseInt((anzahl_24er*(preis_24er[0]*1000))+(resttage*(preis_einzel*1000)));
            }
    }
    else{
      angebot3[0]=parseInt((anzahl_24er*(preis_24er[0]*1000)));
    }
   angebot3[0]=Math.round(angebot3[0])/1000;
   return angebot3;
}

function ermittle_guenstigen_preis(){
   nimm_ausgangswerte();
    var bestes_Angebot;
    if (tagegesamt >= 24){
        bestes_Angebot=vergleiche_preise(errechne_einzelpreise(), errechne_11erpreise(), errechne_24erpreise(), preis_jahr);
    }
    if (tagegesamt >= 11 && tagegesamt < 24){
         bestes_Angebot=vergleiche_preise(errechne_einzelpreise(), errechne_11erpreise(), preis_24er);
    }
    if (tagegesamt < 11){
       bestes_Angebot=vergleiche_preise(errechne_einzelpreise(), preis_11er);
    }
    return bestes_Angebot;
}

function vergleiche_preise(){
  //alert(arguments.length);
  var alle_preise=new Array;
  var die_besten_Angebote
    for (var i=0;i<arguments.length;i++){
     alle_preise[i]=arguments[i][0];
    }

  var vergleich=0;
for (var i=0; i<alle_preise.length-1; i++) {
for (var f=0; f<alle_preise.length; f++) {
  if (alle_preise[f]>alle_preise[f+1]) {
          var temp=0;
          temp=alle_preise[f+1];
          alle_preise[f+1]=alle_preise[f];
          alle_preise[f]=temp;
          vergleich=vergleich+1;
  }
}
}

for (var y=0;y<arguments.length;y++){
  if (alle_preise[0] == arguments[y][0]){
die_besten_Angebote=arguments[y];
      }
}
  return die_besten_Angebote;
}
