//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Funktionen des Projekts (ausser Menue)
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

var undefined;


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Funktion zum Öffnen des Bildergalerie-Popup
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

function galerie_oeffnen(x) {
  window.open(x,"Fenster1","width=500,height=605,directories=0,location=0,toolbar=0,scrollbars=0,status=0,resizable=0,menubar=0");
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Ein-/Ausblenden
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Variablen
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++

var istId;
var warId;
var prefixIdButton = 'artikel-';
var prefixIdDetail = 'artikel-detail-';
var classNameButtonOn = 'link-rubrik-inhalt-eintrag-anzeigen-on';
var classNameButtonOff = 'link-rubrik-inhalt-eintrag-anzeigen-off';


//+++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Funktionen
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++

function artikelDetail(id) {

  var element;
  var currentId;

  currentId = String(prefixIdDetail + id);
  element = document.getElementById(currentId);

  if (!element) {
    return undefined;
  }

  if (!element.style.display || element.style.display == 'none') {
    element.style.display = 'block';
    artikelButton(id);
  } else {
    element.style.display = 'none';
    artikelButton(id);
  }

}

function artikelButton(id) {

  var currentId = String(prefixIdButton + id);
  var element = document.getElementById(currentId);

  if (!element) {
    return undefined;
  }

  if (element.className == classNameButtonOn) {
    element.className = classNameButtonOff;
  } else {
    element.className = classNameButtonOn;
  }

}

function tempEinblenden(idButton,idDiv,klassenName) {

  tempIconKlasseTauschen(idButton,klassenName);
  tempDivEinblenden(idDiv);

}

var klassenNamen = {};

function tempIconKlasseTauschen(id,klassenName) {

  var element = document.getElementById(id);
  var currentKlassenName;

  if (!element) {
    return undefined;
  }


  if (!klassenNamen[id]) {
    initKlassenNamen(id,klassenName);
  }

  currentKlassenName = element.className;

  if (klassenNamen[id]['offKlasse'] != currentKlassenName) {
    element.className = klassenNamen[id]['offKlasse'];
  } else {
    element.className = klassenNamen[id]['onKlasse'];
  }

}

function initKlassenNamen(id,klassenNamePrefix) {

  var currentOnKlasse = String(klassenNamePrefix + '-on');
  var currentOffKlasse = String(klassenNamePrefix + '-off');

  klassenNamen[id] = {};
  klassenNamen[id]['onKlasse'] = currentOnKlasse;
  klassenNamen[id]['offKlasse'] = currentOffKlasse;

}

function tempDivEinblenden(id) {

  var element = document.getElementById(id);

  if (!element) {
    return undefined;
  }

  if (element.style.display) {
    if (element.style.display != 'block') {
      element.style.display = 'block';
    } else {
      element.style.display = 'none';
    }
  } else {
    element.style.display = 'block';
  }

}
function displayProSearch(id){
  if (!id){
    id = 'profisuche';
  }
  if (!document.getElementById(id)){
    return;
  }
  if (document.getElementById(id).style.display == 'block'){
    document.getElementById(id).style.display = 'none';
  } else {
    document.getElementById(id).style.display = 'block';
    document.location = '#' + id;
  }
}

function displayProSearchHelp(id){
  if (!id){
    id = 'profisuchehilfe';
  }
  if (!document.getElementById(id)){
    return;
  }
  if (document.getElementById(id).style.display == 'block'){
    document.getElementById(id).style.display = 'none';
  } else {
    document.getElementById(id).style.display = 'block';
  }
}


// Calendar von df

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].nodeName.toLowerCase() == 'fieldset'){
      var fieldelem = elem.elements[i];
      for (var ii=0; ii<fieldelem.childNodes.length; ii++){
        if (fieldelem.childNodes[ii].nodeName.toLowerCase() == 'input'){
          if (! fieldelem.childNodes[ii].value){
            var id = fieldelem.childNodes[ii].name.replace(/_$/,'');
            if (document.getElementById(id)){
              document.getElementById(id).value = '';
            }
          }
          if (Util.formatDate(fieldelem.childNodes[ii].value)){
            fieldelem.childNodes[ii].value = Util.formatDate(fieldelem.childNodes[ii].value);
          }
        }  
      }
    } else {
      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);
      }
    }
  }
  if (document.getElementById('Filter.OrderCriteria')){
    var list = document.getElementById('Filter.OrderCriteria');
    if (list.options[list.selectedIndex].value){
      list.name = 'Filter.OrderCriteria' + list.options[list.selectedIndex].value.split(/=/)[0];
      list.options[list.selectedIndex].value = list.options[list.selectedIndex].value.split(/=/)[1];
    }
    //alert(document.getElementById('Filter.OrderCriteria').name);
  }
  if (document.getElementById('Plugin.OrderCriteria')){
    var list = document.getElementById('Plugin.OrderCriteria');
    if (list.options[list.selectedIndex].value){
      list.name = 'Plugin.OrderCriteria' + list.options[list.selectedIndex].value.split(/=/)[0];
      list.options[list.selectedIndex].value = list.options[list.selectedIndex].value.split(/=/)[1];
    }
    //alert(document.getElementById('Plugin.OrderCriteria').name);
  }
  return true;
}

function display_anhang(id){
  if (document.getElementById(id)){
    if (document.getElementById(id).style.display == 'block'){
      document.getElementById(id).style.display = 'none';
    } else {
      document.getElementById(id).style.display = 'block';
    }
  }
}

function submitQuickSearch(elem) {
  if (!elem){
    return false;
  }
  if (! elem['PageView.PK'].options[elem['PageView.PK'].selectedIndex].value){
    alert('Bitte wählen Sie zuerst ein Rubrik aus!');
    return false;
  }
  return true;
}

function submitQuickSearchGlobal(elem) {
  if (!elem){
    return false;
  }
  return true;
}

function submitSearchFormGlobalRubrik(pageViewPK, url) {
  if (!pageViewPK || !url){
    return false;
  }
  window.location = url + '' + pageViewPK;
}

function setFontSize(size){
  var fontsize = 0.75;
  var minSize = 0.6;
  var maxSize = 2.0;
  if (parent.top && parent.top.DEFAULT_FONTSIZE){
    fontsize = parent.top.DEFAULT_FONTSIZE;
  }
  if (size == '-'){
    fontsize = parseFloat(fontsize - 0.05);
  } else if (size == '+'){
    fontsize = parseFloat(fontsize + 0.05);
  }
  //alert(fontsize);
  if (fontsize <= maxSize && fontsize >= minSize){
    if (parent.top && parent.top.DEFAULT_FONTSIZE){
      parent.top.DEFAULT_FONTSIZE = fontsize;
    }
    if (document.getElementById('body')){
      document.getElementById('body').style.fontSize = fontsize + 'em';
    }
  }
}



