/***************************
 *  Newsdesk               *
 *  Sitepark GmbH 2007     *
 *  Oliver Buchholz        *
 *  UTF-8 ÄÖÜäöüß          *
 *  compatible with        *
 *  newsdesk_v104.xip      *
 **************************/

/**************************
 * loadParts-Property-Bits
 *
 *
 **************************
 *           *            *
 *     1     *      2     *
 *           *            *
 **************************
 *           4            *
 **************************
 *
 *
 *
 **************************/

Newsdesk.Extensions = {
  flipClass: function(el, className) {
    if (YAHOO.util.Dom.hasClass(el, className)) {
      YAHOO.util.Dom.removeClass(el, className);
    } else {
      YAHOO.util.Dom.addClass(el, className);
    }
  },
  setUploadFilename: function($sIdUpload, $sIdText) {
    // getPathSeparator in relation to os
    var $rxIsLinux = /\//;
    var $rxIsWindows = /\\/;
    var $rxToExtractFilename = "";
    if (YAHOO.util.Dom.get($sIdUpload).value.match($rxIsLinux) != null) {
      // isLinux
      $rxToExtractFilename = /^.*\/(.*)$/;
      Newsdesk.log("is Linux " + $rxToExtractFilename);
    } else if (YAHOO.util.Dom.get($sIdUpload).value.match($rxIsWindows) != null) {
      // isWindows
      $rxToExtractFilename = /^.*\\(.*)$/;
      Newsdesk.log("is Windows " + $rxToExtractFilename);
    } else {
      // (input type="file").value is filename only without path
      Newsdesk.log("is not important, filename is filename and not path with filename");
    }

    if ($rxToExtractFilename != "") {
      YAHOO.util.Dom.get($sIdText).value = YAHOO.util.Dom.get($sIdUpload).value.match($rxToExtractFilename)[1];
    } else {
      YAHOO.util.Dom.get($sIdText).value = YAHOO.util.Dom.get($sIdUpload).value;
    }
  },
  formHasUpload: function($oForm) {
    for (var $i=0; $i < $oForm.elements.length; $i++) {
      if (!$oForm.elements[$i].disabled && $oForm.elements[$i].type == 'file' && $oForm.elements[$i].value != '') {
        return true;
      }
    }
    return false;
  }
}


// V2.0: wenn user keine Cookies verwendet, muss es trotzdem tun
// /infosite/control/manager;jsessionid=[JSESSIONID]?SYS_window=1;SYS_gui=gui1;[...]#ANCHOR

Newsdesk._REQCOM = 'SYS_window=' + Newsdesk.Config.windowId + '&SYS_gui=' + Newsdesk.Config.guiId;
Newsdesk._ACTTAB = 1;
Newsdesk._ACTRSSTAB = 1;
Newsdesk._PROGRANI = [];
Newsdesk._TZOMS = ((new Date()).getTimezoneOffset()) * 60000; // Timezone Offset to UTC in Milliseconds
Newsdesk._POPUPS = {};
Newsdesk._DEBUG = 0;

Newsdesk.log = function($sContent, $sLevel) {
  if (typeof console != 'undefined' && Newsdesk._DEBUG > 0) {
    if ($sLevel != "debug" && $sLevel != "info" && $sLevel != "warn" && $sLevel != "error") {
      $sLevel = "debug";
    }
    // console[$sLevel]($sContent);
    // console.log($sContent);
    // Zeitstempel dazu
    console.log(Newsdesk.Utils.getStringFromDate("HH:mm:ss,sss") + ": " + $sContent);
    if (typeof $sContent == "object" && $sContent != null) {
      console.log($sContent);
    }
  }
}

Newsdesk.Utils = {};
Newsdesk.Utils.getStringFromDate = function($sPattern, $oDate) {
  if ($oDate == null) {
    $oDate = new Date();
  }
  if ($sPattern === "DD.MM.JJJJ") {
    return (($oDate.getDate() < 10) ? "0" + $oDate.getDate() : $oDate.getDate()) + "." + ((($oDate.getMonth()+1) < 10) ? "0" + ($oDate.getMonth()+1) : ($oDate.getMonth()+1)) + "." + $oDate.getFullYear();
  } else if ($sPattern === "HH:mm:ss,sss") {
    return (($oDate.getHours() < 10) ? "0" + $oDate.getHours() : $oDate.getHours()) + ":" + (($oDate.getMinutes() < 10) ? "0" + $oDate.getMinutes() : $oDate.getMinutes()) + ":" + (($oDate.getSeconds() < 10) ? "0" + $oDate.getSeconds() : $oDate.getSeconds()) + "," + (($oDate.getMilliseconds() < 10) ? "00"+$oDate.getMilliseconds() : (($oDate.getMilliseconds() < 100) ? "0"+$oDate.getMilliseconds() : $oDate.getMilliseconds()));
  } else if ($sPattern === "NOW") {
    return Date.parse($oDate);
  } else {
    return null;
  }
}
Newsdesk.Utils.toggleView = function($nAction,$aExecs,$sClassName) {
  if (YAHOO.util.Dom.hasClass($nAction,'on')) {
    YAHOO.util.Dom.replaceClass($nAction,'on','off');
    YAHOO.util.Dom.get($nAction).innerHTML = 'Details einschalten';
    YAHOO.util.Dom.get($nAction).setAttribute("title", 'Details einschalten');
    for (var $a=0;$a<$aExecs.length;$a++) {
      var $aExec = ($aExecs[$a]).split("|");
      YAHOO.util.Dom.addClass(YAHOO.util.Dom.getElementsByClassName($aExec[0],$aExec[1],$aExec[2]), $sClassName);
    }
  } else {
    YAHOO.util.Dom.replaceClass($nAction,'off','on');
    YAHOO.util.Dom.get($nAction).innerHTML = 'Details ausschalten';
    YAHOO.util.Dom.get($nAction).setAttribute("title", 'Details ausschalten');
    for (var $a=0;$a<$aExecs.length;$a++) {
      var $aExec = ($aExecs[$a]).split("|");
      YAHOO.util.Dom.removeClass(YAHOO.util.Dom.getElementsByClassName($aExec[0],$aExec[1],$aExec[2]), $sClassName);
    }
  }
}

Newsdesk.Utils.doPopup = function($sName,$sUrl,$sOptions,$sSubname) {
  Newsdesk.log($sName + "|" + $sUrl + "|" + $sOptions + "|" + $sSubname);
  var $sUrlToGoTo;
  // prüfen, ob die hosts identisch sind, wenn nicht, die forward-url des Newsdesk aufrufen
  Newsdesk.log($sUrl.match(/^\/.*$/));
  Newsdesk.log($sUrl.replace(/^https?\:\/\/([a-zA-Z0-9.-]*).*$/, "$1"));
  Newsdesk.log(window.location.host)
  if ($sUrl.match(/^\/.*$/) != null || $sUrl.replace(/^https?\:\/\/([a-zA-Z0-9.-]*).*$/, "$1") == window.location.host) {
    Newsdesk.log("no redirect necessary due to same host: " + window.location.host);
    $sUrlToGoTo = $sUrl;
  } else {
    $sUrlToGoTo = Newsdesk.Config.requestURI.forward + "?" + "NDForwardType=metaRedirect&NDForwardUrl=" + encodeURIComponent($sUrl) + "&" + Newsdesk._REQCOM;
  }
  Newsdesk.log($sUrlToGoTo);
  // Newsdesk._POPUPS ist das verwaltende Object
  Newsdesk._POPUPS[($sName+$sSubname)] = window.open($sUrlToGoTo,($sName+$sSubname),$sOptions);
  try {
    Newsdesk._POPUPS[($sName+$sSubname)].focus();
  } catch(e) {
    Newsdesk.log(e);
  }
}

// dies ist für die nächste Newsdesk-Version schon mal implementiert und löst die Popup-Blocker-Probleme
Newsdesk.Utils.doPopupPanel = function($sName,$sUrl,$sOptions,$sSubname) {
  this.test = new YAHOO.widget.Panel(
    $sName+$sSubname, {
      monitorresize:false,
      xy:[20,20],
      width:"450px",
      height:"650px",
      draggable:true,
      close:true,
      zIndex:1,
      appendtodocumentbody:true
    }
  );
  this.test.setHeader('Vorschau');
  this.test.setBody('<iframe width="450" height="650" border="0" src="' + $sUrl + '"/>')
  this.test.setFooter('Footer');
  Newsdesk.log("it is rendered: " + this.test.render(YAHOO.util.Dom.get("bod")));
  this.test.show();
}

Newsdesk.Request = {};

Newsdesk.syncClientWithServer = function() {
  YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.sync, { success: function(t){ try {eval(t.responseText)} catch(e) {} }}, Newsdesk._REQCOM);
}

Newsdesk.Client = {};
Newsdesk.Client._ACTIVEXHR = 0;

Newsdesk.Client.objects = {};

Newsdesk.Client.createWidgets = function() {
  // create dragable and hidden CalendarWidget
  var $nDCC = document.createElement("div");
  $nDCC.id = "dragCalendarContainer";
  YAHOO.util.Dom.addClass($nDCC,"nd-yui-skin");
  YAHOO.util.Dom.setStyle($nDCC,"position","absolute");
  YAHOO.util.Dom.setStyle($nDCC,"width","153px");

  var $nCC = document.createElement("div");
  $nCC.id = "calendarContainer";
  YAHOO.util.Dom.setStyle($nCC,"display","none");
  $nDCC.appendChild($nCC);

  document.getElementsByTagName("body")[0].appendChild($nDCC);

  // make (D)rag(C)alendar(C)ontainer object dragable
  var $oDragObject = new YAHOO.util.DD($nDCC);

  // make (C)alendar(C)ontainer a Calendar Widget
  var $oCalObject = ({
    close:true,
    DATE_FIELD_DELIMITER:".",
    MDY_DAY_POSITION:1,
    MDY_MONTH_POSITION:2,
    MDY_YEAR_POSITION:3,
    MD_DAY_POSITION:1,
    MD_MONTH_POSITION:2,
    START_WEEKDAY:1,
    WEEKDAYS_1CHAR:["S","M","D","M","D","F","S"],
    WEEKDAYS_SHORT:["So","Mo","Di","Mi","Do","Fr","Sa"],
    WEEKDAYS_MEDIUM:["Son","Mon","Die","Mit","Don","Fre","Sam"],
    WEEKDAYS_LONG:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],
    MONTHS_SHORT:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],
    MONTHS_LONG:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]
  });

  Newsdesk.Client.objects.actCalendarDD = $nDCC;
  Newsdesk.Client.objects.calendar = new YAHOO.widget.Calendar("calendarContainerDOM",$nCC.id,$oCalObject);
  Newsdesk.Client.objects.calendar.selectEvent.subscribe(Newsdesk.GUI.handleCalendarSelect, Newsdesk.Client.objects.calendar, true);

}

Newsdesk.Client.Form = {};

Newsdesk.Client.Form.checkField = function($sId, $sName, $aRules, $aParamObjects, $oParams) {
  var $iNoOfErrors = 0;
  var $sErrorText = "";
  var $elemToCheck, $sKindOfSpecialstyle, $elemToFeedback;
  if ($sId != null) {
    $sKindOfSpecialstyle = "input";
    $elemToCheck = YAHOO.util.Dom.get($sId);
    $elemToFeedback = ($oParams != null && $oParams.feedbackId != null) ? YAHOO.util.Dom.get($oParams.feedbackId): $elemToCheck;
    for (var $a=0;$a<$aRules.length;$a++) {
      if ($aRules[$a] === 'required') {
        if ($elemToCheck.value == '') {
          $iNoOfErrors++;
          $sErrorText += ($aParamObjects[$a] && $aParamObjects[$a].message !== undefined) ? $aParamObjects[$a].message : "Pflichtfeld: Bitte füllen Sie dieses Feld aus.\n";
        }
      } else if ($aRules[$a] === 'isNumber') {
        if ($aParamObjects[$a] != null) {
          if ($aParamObjects[$a].operator == "gte") {
            if (parseInt($elemToCheck.value) < parseInt(YAHOO.util.Dom.get($aParamObjects[$a].comparator).value)) {
              $iNoOfErrors++;
              $sErrorText += ($aParamObjects[$a].message !== undefined) ? $aParamObjects[$a].message : "Fehler: Die Werte korrespondieren nicht mit der Logik in diesem Formular.\n";
            }
          } else if ($aParamObjects[$a].operator == "fromto") {

          }
        }
      } else if ($aRules[$a] === 'isEmail') {
        var $regEx = /^[_\.0-9A-Za-z-]+@([0-9A-Za-z][0-9A-Za-z-]+\.)+[A-Za-z]{2,4}$/;
        if ($regEx.exec($elemToCheck.value) == null) {
          $iNoOfErrors++;
          $sErrorText += ($aParamObjects[$a] && $aParamObjects[$a].message !== undefined) ? $aParamObjects[$a].message : "E-Mail-Feld: Bitte geben Sie eine gültige E-Mail-Adresse in dieses Feld ein.\n";
        }
      } else if ($aRules[$a] === 'isUrl') {

      } else if ($aRules[$a] === 'isDate') {
        var $rSearchPattern = ($aParamObjects[$a] != null && $aParamObjects[$a].pattern) ? $aParamObjects[$a].pattern : /^(\d\d\.\d\d\.\d\d\d\d|)$/;
        if ($elemToCheck.value.search($rSearchPattern) == -1) {
          $iNoOfErrors++;
          $sErrorText += ($aParamObjects[$a] && $aParamObjects[$a].message !== undefined) ? $aParamObjects[$a].message : "Datumsfeld: Bitte beachten Sie das Eingabeformat.\n";
        }
      } else if ($aRules[$a] === 'isRegex') {
        var $rSearchPattern = $aParamObjects[$a].pattern;
        if ($elemToCheck.value.search($rSearchPattern) == -1) {
          $iNoOfErrors++;
          $sErrorText += ($aParamObjects[$a] && $aParamObjects[$a].message !== undefined) ? $aParamObjects[$a].message : "Fehleingabe: Bitte beachten Sie das Eingabeformat.\n";
        }
      } else if ($aRules[$a] === 'equals') {
        if ($aParamObjects[$a].fieldId != null) {
          if (YAHOO.util.Dom.get($aParamObjects[$a].fieldId).value != $elemToCheck.value) {
            $iNoOfErrors++;
            $sErrorText += ($aParamObjects[$a] && $aParamObjects[$a].message !== undefined) ? $aParamObjects[$a].message : "Fehleingabe: Bitte beachten Sie das Eingabeformat.\n";
          }
        }
      }
    }
  } else if ($sName != null) {
    $sKindOfSpecialstyle = "checkbox";
    $elemToFeedback = YAHOO.util.Dom.get($oParams.feedbackId);
    var $aElemsToCheck = document.getElementsByName($sName);
    for (var $a=0;$a<$aRules.length;$a++) {
      if ($aRules[$a] === 'required') {
        var $bOneIsChecked = false;
        for ($i=0;$i<$aElemsToCheck.length;$i++) {
          if ($aElemsToCheck[$i].checked == true) {
            $bOneIsChecked = true;
          }
        }
        if ($bOneIsChecked == false) {
          $iNoOfErrors++;
          $sErrorText += ($aParamObjects[$a] && $aParamObjects[$a].message !== undefined) ? $aParamObjects[$a].message : "Pflichtfeld: Bitte wählen Sie eine Option.\n";
        }
      }
    }
  }

  if ($iNoOfErrors > 0) {
    Newsdesk.GUI.setSpecialStyle($elemToFeedback, $sKindOfSpecialstyle+"error", $sErrorText);
  } else {
    Newsdesk.GUI.setSpecialStyle($elemToFeedback, $sKindOfSpecialstyle+"reset", "");
  }
  return $iNoOfErrors;
}

Newsdesk.Client.setEnvironment = function($sGlobalArea, $sInteriorArea, $sInnerArea) {
  Newsdesk.GUI.status.NDglobalArea = ($sGlobalArea === null) ? 'search' : $sGlobalArea;
  Newsdesk.GUI.status.NDinteriorArea = ($sInteriorArea === null) ? 'default' : $sInteriorArea;
  Newsdesk.GUI.status.NDinnerArea = ($sInnerArea === null) ? 'default' : $sInnerArea;
}

Newsdesk.Client.viewEnvironment = function($oParams) {
  if ($oParams.loadParts === 0) { // load nix but free GUI
    Newsdesk.GUI.freeGui();
    return;
  }
  if (($oParams.loadParts & 1) == 1) { // load main
    Newsdesk.Client._ACTIVEXHR++;
    var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("main", t.responseText, true, {auto:true,scrollTop:YAHOO.util.Dom.get("mainscroll").scrollTop}) }}, 'reqArea=main&NDglobalArea=' + Newsdesk.GUI.status.NDglobalArea + '&NDinteriorArea=' + Newsdesk.GUI.status.NDinteriorArea  + '&NDinnerArea=' + Newsdesk.GUI.status.NDinnerArea + '&' + Newsdesk._REQCOM);
  }
  if (($oParams.loadParts & 2) == 2) { // load navi
    Newsdesk.Client._ACTIVEXHR++;
    var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true,scrollTop:YAHOO.util.Dom.get("naviscroll").scrollTop}) }}, 'reqArea=navi&NDglobalArea=' + Newsdesk.GUI.status.NDglobalArea + '&NDinteriorArea=' + Newsdesk.GUI.status.NDinteriorArea + '&NDinnerArea=' + Newsdesk.GUI.status.NDinnerArea + '&' + Newsdesk._REQCOM);
  }
  if (($oParams.loadParts & 4) == 4) { // load footer
    Newsdesk.Client._ACTIVEXHR++;
    var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer&NDglobalArea=' + Newsdesk.GUI.status.NDglobalArea + '&NDinteriorArea=' + Newsdesk.GUI.status.NDinteriorArea + '&NDinnerArea=' + Newsdesk.GUI.status.NDinnerArea + '&' + Newsdesk._REQCOM);
  }
  return;
}


Newsdesk.Server = {
  emptyRequest: function() {
    YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, { success: function(t) {Newsdesk.Config.time = new Date(Number(YAHOO.lang.trim(t.responseText)))}}, "ClientFunction=timesync&" + Newsdesk._REQCOM);
  },
  calcServerTime: function() {
    Newsdesk.Config.time = new Date(Date.parse(Newsdesk.Config.time) + 1000);
    // Newsdesk.Config.time = Date.parse(Newsdesk.Config.time) + 1000;
    var myDay = Newsdesk.Config.time.getDate();
        myDay = (myDay < 10) ? "0"+myDay : myDay;
    var myMon = Newsdesk.Config.time.getMonth() + 1;
        myMon = (myMon < 10) ? "0"+myMon : myMon;
    var myYea = Newsdesk.Config.time.getFullYear();
        myYea = (myYea < 10) ? "0"+myYea : myYea;
    var myHrs = Newsdesk.Config.time.getHours();
        myHrs = (myHrs < 10) ? "0"+myHrs : myHrs;
    var myMin = Newsdesk.Config.time.getMinutes();
        myMin = (myMin < 10) ? "0"+myMin : myMin;
    if (document.getElementById('sessionTimeoutIn')) {
      document.getElementById('sessionTimeoutIn').innerHTML = myDay + "." + myMon + "." + myYea + ", " + myHrs + ":" + myMin + " Uhr";
    }
  },
  setActualElement: function($sId, $sGlobalArea, $InteriorArea, $sInnerArea, $sElementType) {
    if ($sElementType == null) {
      $sElementType = "ARTICLE";
    }
    if ($sGlobalArea === 'news') {
      Newsdesk._ACTTAB = 1;
    } else if ($sGlobalArea === 'rss') {
      Newsdesk._ACTRSSTAB = 1;
    }
    if ($sElementType === "ARTICLE") {
      YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxgetVersion, {success: function(t){ Newsdesk.GUI.get($sGlobalArea, $InteriorArea, $sInnerArea)}}, 'SYS_INFE_version=0&SYS_INFE_action=reposit&SYS_INFE_id=' + $sId + '&ClientFunction=setActualElement&elementType=' + $sElementType + '&article=' + $sId + '&' + Newsdesk._REQCOM);
    } else if ($sElementType === "USER") {
      YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.get($sGlobalArea, $InteriorArea, $sInnerArea)}}, 'ClientFunction=setActualElement&elementType=' + $sElementType + '&elementId=' + $sId + '&' + Newsdesk._REQCOM);
    }
  },
  IESHandler: function($sRequestType, $sHandlerType, $mParameter, $aCallbackArrayStack) {
    if ($sRequestType === "GET") {
      if ($sHandlerType === "information") {
        Newsdesk.log("hier wird der Handler aufgerufen");
        Newsdesk.GUI.progressbar(1);
        YAHOO.util.Connect.asyncRequest(
          $sRequestType,
          Newsdesk.Config.requestURI.article + "?" + $mParameter + '&' + Newsdesk._REQCOM,
          {
            argument: $aCallbackArrayStack,
            success: function(t) {
              var $myFunction;
              var $myArguments;
              for (var $i=0; $i<$aCallbackArrayStack.length; $i++) {
                $myFunction = $aCallbackArrayStack[$i][0];
                $aMyArguments = $aCallbackArrayStack[$i][1];
                try { // works in FF
                  $myFunction.apply(null, $aMyArguments);
                } catch(e) {
                  try { // works in MSIE
                    $myFunction($aMyArguments);
                  } catch(ee) {

                  }
                } finally {
                  $myFunction = "";
                  $aMyArguments = "";
                }
              }
            }
          }
        );
        Newsdesk.log("hier wurde der Handler aufgerufen");
      } else {
        Newsdesk.log("not implemented yet!");
      }
    } else {
      Newsdesk.log("not implemented yet!");
    }
  },
  // ab hier muss in ND 1.1 eine wrapperfunktion IES.handler.article implementiert werden
  createTemporaryArticle: function($sType, $sGlobalArea, $sInteriorArea) {
    if ($sType.match(/^article|resource$/)) {
      if ($sGlobalArea === "news") {
        Newsdesk._ACTTAB = 1;
        var $request1 = YAHOO.util.Connect.asyncRequest(
          'POST',
          Newsdesk.Config.requestURI.article,
          {
            success: function(t) {
              Newsdesk.log(YAHOO.lang.trim(t.responseText));
              Newsdesk.GUI.get($sGlobalArea, null, null, null);
            }
          },
          'ClientFunction=createNewArticle&SYS_INFE_action=edit&SYS_INFE_articleType=' + $sType + '&' + Newsdesk._REQCOM
        );
      } else if ($sGlobalArea === "rss") {
        Newsdesk._ACTRSSTAB = 1;
        var $request1 = YAHOO.util.Connect.asyncRequest(
          'POST',
          Newsdesk.Config.requestURI.article,
          {
            success: function(t) {
              Newsdesk.log(YAHOO.lang.trim(t.responseText));
              Newsdesk.GUI.get($sGlobalArea, null, null, null);
            }
          },
          'ClientFunction=createNewArticle&SYS_INFE_action=edit&SYS_INFE_articleType=' + $sType + '&' + Newsdesk._REQCOM
        );
      } else if ($sGlobalArea === "config") {
        if ($sInteriorArea === "category" || $sInteriorArea === "publisher") {
          var $request1 = YAHOO.util.Connect.asyncRequest(
            'POST',
            Newsdesk.Config.requestURI.article,
            {
              success: function(t) {
                Newsdesk.log(YAHOO.lang.trim(t.responseText));
                Newsdesk.GUI.get($sGlobalArea, $sInteriorArea, null, null);
              }
            },
          'ClientFunction=createNewArticle&SYS_INFE_action=edit&SYS_INFE_articleType=' + $sType + '&' + Newsdesk._REQCOM
          );
        }
      }
    }
  },
  createNewArticle: function($sType, $sGlobalArea, $sInteriorArea, $aFormIds, $aUploads) {
    Newsdesk.log("Newsdesk.Server.createNewArticle: " + $sType + "|" + $sGlobalArea + "|" + $sInteriorArea + "|"  + $aFormIds + "|" + $aUploads);
    if ($sType.match(/^article|resource$/)) {
      if ($sGlobalArea === "news" || $sGlobalArea === "rss" || $sGlobalArea === "config") {
        if ($aFormIds.length > 0) {
          var $formToPost = $aFormIds.shift();
          var $bHasUpload = $aUploads.shift();

          document.getElementById($formToPost).SYS_INFE_action.value = 'create';

          if ($sGlobalArea === "rss") {
            var $iNoOfErrors = Newsdesk.Client.Form.checkField(document.getElementById($formToPost).sp_title,null, ['required'], [null]);
            if ($iNoOfErrors > 0) {
              return "Titel fehlt";
            } else {
              Newsdesk.GUI.progressbar(1);
              document.getElementById($formToPost).SYS_INFE_name.value = document.getElementById($formToPost).sp_title.value;
              document.getElementById($formToPost).SYS_INFE_id.value = ''; // nicht auskommentieren!!! bei IES2 werden Artikel mit temporaerer id nicht publiziert !!! ACHTUNG BEIM EDIT MODE UND BILDERN!!!!!
            }
          } else if ($sGlobalArea === "config") {
            if ($sInteriorArea === "category") {
              var $iNoOfErrors = Newsdesk.Client.Form.checkField(document.getElementById($formToPost).sp_category,null, ['required'], [null]);
              if ($iNoOfErrors > 0) {
                return "Kategorie fehlt";
              } else {
                Newsdesk.GUI.progressbar(1);
                document.getElementById($formToPost).SYS_INFE_name.value = document.getElementById($formToPost).sp_category.value;
                document.getElementById($formToPost).SYS_INFE_id.value = ''; // nicht auskommentieren!!! bei IES2 werden Artikel mit temporaerer id nicht publiziert !!! ACHTUNG BEIM EDIT MODE UND BILDERN!!!!!
              }
            } else if ($sInteriorArea === "publisher") {
              var $iNoOfErrors = Newsdesk.Client.Form.checkField(document.getElementById($formToPost).sp_name,null, ['required'], [null]);
              if ($iNoOfErrors > 0) {
                return "Name fehlt";
              } else {
                Newsdesk.GUI.progressbar(1);
                document.getElementById($formToPost).SYS_INFE_name.value = document.getElementById($formToPost).sp_name.value;
                document.getElementById($formToPost).SYS_INFE_id.value = ''; // nicht auskommentieren!!! bei IES2 werden Artikel mit temporaerer id nicht publiziert !!! ACHTUNG BEIM EDIT MODE UND BILDERN!!!!!
              }
            }
          }
          var $requestForm = YAHOO.util.Connect.setForm($formToPost, $bHasUpload);
          var $request1 = YAHOO.util.Connect.asyncRequest(
            'POST',
            Newsdesk.Config.requestURI.article,
            {
              success: function(t) {
                var $oResponse = eval(YAHOO.lang.trim(t.responseText));
                if ($aFormIds.length > 0) {
                  document.getElementById($aFormIds[0]).SYS_INFE_id.value = $oResponse.id;
                }
                Newsdesk.Server.updateArticle($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, $oResponse);
              }, upload: function(t) {
                var $oResponse = eval(YAHOO.lang.trim(t.responseText));
                if ($aFormIds.length > 0) {
                  document.getElementById($aFormIds[0]).SYS_INFE_id.value = $oResponse.id;
                }
                Newsdesk.Server.updateArticle($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, $oResponse);
              }
            },
            'ClientFunction=createNewArticle&SYS_INFE_articleType=' + $sType
          );
        }
      }
    }
  },
  createNewArticlepool: function($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, $oParams) {
    Newsdesk.log("Newsdesk.Server.createNewArticlepool: " + $sGlobalArea + "|" + $sInteriorArea + "|"  + $aFormIds + "|" + $aUploads);
    // Weiche: in V2 muss die Konzeption hinsichtlich der Handler-Wrapper optimiert werden
    if ($oParams != null && $oParams.originTask != null && $oParams.originTask === "update") {
      Newsdesk.Server.updateArticlepool($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, $oParams);
    } else {
      if ($sGlobalArea === "config") {
        if ($aFormIds.length > 0) {
          var $formToPost = $aFormIds.shift();
          var $bHasUpload = $aUploads.shift();

          if ($formToPost === "mainConfigPublisherPool") {
            document.getElementById($formToPost).SYS_INFP_action.value = 'create';
            document.getElementById($formToPost).SYS_INFP_name.value = $oParams.name;
            document.getElementById($formToPost).SYS_INFP_dir.value = $oParams.name;
            document.getElementById($formToPost).SYS_INFP_anchor.value = "informationpool.app.newsdesk.publications." + $oParams.id;
            document.getElementById($formToPost).sp_publisher.value = $oParams.id;
          } else if ($formToPost === "mainConfigPublisherPoolRSS") {
            document.getElementById($formToPost).SYS_INFP_action.value = 'create';
            document.getElementById($formToPost).SYS_INFP_target.value = $oParams.id;
            document.getElementById($formToPost).sp_publisher.value = $oParams.sp_publisher_id;
          }
          var $requestForm = YAHOO.util.Connect.setForm($formToPost, $bHasUpload);
          if ($sGlobalArea === "config") {
            if ($sInteriorArea === "publisher") {

            }
          }
          var $request = YAHOO.util.Connect.asyncRequest(
            'POST',
            Newsdesk.Config.requestURI.articlepool + '',
            {
              success: function(t) {
                Newsdesk.log("success 461: " +  $sGlobalArea + "|" + $sInteriorArea + "|"  + $aFormIds + "|" + $aUploads);
                // hier den RSS-Feed-Pool anlegen
                Newsdesk.Server.createNewArticlepool($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, eval(t.responseText));
              }, upload: function(t) {
                // hier den RSS-Feed-Pool anlegen
                Newsdesk.Server.createNewArticlepool($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, eval(t.responseText));
              }
            },
            'ClientFunction=createNewArticlepool'
          );
          Newsdesk.log($request);
        } else {
          Newsdesk.GUI.progressbar(2, "gespeichert");
          Newsdesk.GUI.freeGui();
          if ($sGlobalArea === "config" && $sInteriorArea === "publisher") {
            Newsdesk.log("call view");
            Newsdesk.GUI.get($sGlobalArea, $sInteriorArea, "view", {"loadParts": 7});
          } else {
            Newsdesk.GUI.get($sGlobalArea, $sInteriorArea, null, null);
          }
        }
      }
    }
  },
  updateArticle: function($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, $oParams) {
    Newsdesk.log("Newsdesk.Server.updateArticle: " + $sGlobalArea + "|" + $sInteriorArea + "|"  + $aFormIds + "|" + $aUploads);
    if ($sGlobalArea === "news" || $sGlobalArea === "rss" || $sGlobalArea === "config") {
      if ($aFormIds.length > 0) {
        var $formToPost = $aFormIds.shift();
        var $bHasUpload = $aUploads.shift();

        document.getElementById($formToPost).SYS_INFE_action.value = 'update';

        if ($sGlobalArea === "rss") {
          var $iNoOfErrors = Newsdesk.Client.Form.checkField(document.getElementById($formToPost).sp_title,null, ['required'], [null]);
          if ($iNoOfErrors > 0) {
            return "Titel fehlt";
          } else {
            Newsdesk.GUI.progressbar(1);
          }
        } else if ($sGlobalArea === "config") {
          if ($sInteriorArea === "category") {
            var $iNoOfErrors = Newsdesk.Client.Form.checkField(document.getElementById($formToPost).sp_category, null,['required'], [null]);
            if ($iNoOfErrors > 0) {
              return "Kategorie fehlt";
            } else {
              document.getElementById($formToPost).SYS_INFE_name.value = document.getElementById($formToPost).sp_category.value;
              Newsdesk.GUI.progressbar(1);
            }
          } else if ($sInteriorArea === "publisher") {
            var $iNoOfErrors = Newsdesk.Client.Form.checkField(document.getElementById($formToPost).sp_name, null,['required'], [null]);
            if ($iNoOfErrors > 0) {
              return "Name fehlt";
            } else {
              document.getElementById($formToPost).SYS_INFE_name.value = document.getElementById($formToPost).sp_name.value;
              $oParams.newname = document.getElementById($formToPost).sp_name.value;
              Newsdesk.GUI.progressbar(1);
            }
          } else if ($sInteriorArea === "data1") {
            Newsdesk.GUI.progressbar(1);
          }
        }

        var $requestForm = YAHOO.util.Connect.setForm($formToPost, $bHasUpload);
        var $request = YAHOO.util.Connect.asyncRequest(
          'POST',
          Newsdesk.Config.requestURI.article + '',
          {
            success: function(t) {
              Newsdesk.Server.updateArticle($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, $oParams);
            }, upload: function(t) {
              Newsdesk.Server.updateArticle($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, $oParams);
            }
          }
        );
      } else {
        if ($sGlobalArea === "config" && $sInteriorArea === "publisher") {
          Newsdesk.log("createNewArticlepool");
          this.createNewArticlepool($sGlobalArea, $sInteriorArea, ["mainConfigPublisherPool","mainConfigPublisherPoolRSS"], [false,false], $oParams);
          Newsdesk.log("cameBackHere 539");
        } else {
          Newsdesk.GUI.progressbar(2, "gespeichert");
          Newsdesk.GUI.freeGui();
          Newsdesk.GUI.get($sGlobalArea, $sInteriorArea, null, null);
        }
      }
    }
  },
  updateArticlepool: function($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, $oParams) {
    Newsdesk.log("Newsdesk.Server.updateArticlepool: " + $sGlobalArea + "|" + $sInteriorArea + "|"  + $aFormIds + "|" + $aUploads);
    if ($sGlobalArea === "config") {
      if ($sInteriorArea === "publisher") {
        // es geht nur um Namensänderung, da werden keine Formulardaten benötigt
        var $request = YAHOO.util.Connect.asyncRequest(
              'POST',
              Newsdesk.Config.requestURI.articlepool,
              {
                success: function(t) {
                  Newsdesk.log("changed success 1");
                  Newsdesk.GUI.progressbar(2, "geändert");
                  Newsdesk.GUI.get($sGlobalArea, $sInteriorArea, "view", {"loadParts": 6});
                }
              },
              'SYS_INFP_action=update&SYS_INFP_name=' + $oParams.newname + '&SYS_INFP_id=' + $oParams.accordingPool + '&' + Newsdesk._REQCOM
            );
      }
    }
  },
  editArticle: function($sId, $sFormId) { // tut nur im mainscroll
    Newsdesk.GUI.lock();
    var $oFormObject = document.getElementById($sFormId);
    $oFormObject.SYS_INFE_action.value       = 'edit';
    var $bHasUpload = Newsdesk.Extensions.formHasUpload($oFormObject);
    var $requestForm = YAHOO.util.Connect.setForm($oFormObject, $bHasUpload);
    var $request1 = YAHOO.util.Connect.asyncRequest(
      'POST', Newsdesk.Config.requestURI.article, {
        success: function(o) {Newsdesk.GUI.show('main',o.responseText,true,{"scrollTop":YAHOO.util.Dom.get("mainscroll").scrollTop});if ($sFormId == 'mainRssDefault') { Newsdesk.GUI.showtab('rss','configtab'); }},
        upload: function(o) {Newsdesk.GUI.show('main', o.responseText, true, {"scrollTop":YAHOO.util.Dom.get("mainscroll").scrollTop}); if ($sFormId == 'mainRssDefault') { Newsdesk.GUI.showtab('rss','configtab'); }}
      });
  },
  deleteArticle: function($sGlobalArea, $sArticleId, $oParams) {
    Newsdesk.log("Newsdesk.Server.deleteArticle: " + $sGlobalArea + " - " + $sArticleId);
    Newsdesk.log($oParams);
    Newsdesk.GUI.progressbar(1);
    var $request = YAHOO.util.Connect.asyncRequest(
          'POST',
          Newsdesk.Config.requestURI.article,
          {
            success: function(t) {
              Newsdesk.log("deleted success 1");
              if ($oParams != null && $oParams.deleteArticlePool === true) {
                Newsdesk.Server.deleteArticlePool({"lay1":$oParams.lay1,"lay2":$oParams.lay2,"lay3":$oParams.lay3},{"elementId":$oParams.poolId});
              } else {
                Newsdesk.GUI.progressbar(2, "gelöscht");
                Newsdesk.GUI.freeGui();
                Newsdesk.GUI.get($sGlobalArea, null, null, null);
              }
            }
          },
          'SYS_INFE_action=delete&SYS_INFE_id=' + $sArticleId + '&' + Newsdesk._REQCOM
        );
  },
  deleteArticlePool: function($oArea, $oParams) {
    Newsdesk.log("Newsdesk.Server.deleteArticlePool: " + $oArea + ", " + $oParams);
    Newsdesk.GUI.progressbar(1);
    var $request = YAHOO.util.Connect.asyncRequest(
          'POST',
          Newsdesk.Config.requestURI.articlepool,
          {
            success: function(t) {
              Newsdesk.log("deleted success 2");
              Newsdesk.GUI.progressbar(2, "gelöscht");
              Newsdesk.GUI.freeGui();
              // Newsdesk.GUI.get($oArea.lay1, $oArea.lay2, "view", {"loadParts":7});
              Newsdesk.GUI.get($oArea.lay1, null, null, null);
            }
          },
          'SYS_INFP_action=delete&SYS_INFP_id=' + $oParams.elementId + '&' + Newsdesk._REQCOM
        );
  },
  previewArticle: function($sFormId) {
    var $oFormObject = YAHOO.util.Dom.get($sFormId);
    if ($oFormObject.SYS_INFE_id.value.match(/.*t.*/) != null) {
      alert("Bitte speichern Sie einmal den RSS-Feed.");
      return;
    }
    var $sOriginAction = $oFormObject.SYS_INFE_action.value;
    $oFormObject.SYS_INFE_action.value = 'preview';
    var $bHasUpload = Newsdesk.Extensions.formHasUpload($oFormObject);
    var $requestForm = YAHOO.util.Connect.setForm($oFormObject, $bHasUpload);
    var $sSubname = $oFormObject.SYS_INFE_id.value.replace(/[^0-9]/g, "");
    Newsdesk.log($sSubname);
    Newsdesk.Client._ACTIVEXHR+=1;
    var $request = YAHOO.util.Connect.asyncRequest(
      'POST', Newsdesk.Config.requestURI.article, {
        success: function(o) {
          Newsdesk.Client._ACTIVEXHR--;
          $oFormObject.SYS_INFE_action.value = $sOriginAction;
          Newsdesk.Utils.doPopup('RSSPreview600x750',YAHOO.lang.trim(o.responseText),'width=600,height=750,scrollbars=yes',$sSubname);
        },
        upload: function(o) {
          Newsdesk.Client._ACTIVEXHR--;
          $oFormObject.SYS_INFE_action.value = $sOriginAction;
          Newsdesk.Utils.doPopup('RSSPreview600x750',YAHOO.lang.trim(o.responseText),'width=600,height=750,scrollbars=yes',$sSubname);
        }
      }, "ClientFunction=previewArticle"
    );
  },
  changePassword: function($sFormId) {
    Newsdesk.GUI.lock();
    Newsdesk.log("Newsdesk.Server.changePassword");
    var $formContent = YAHOO.util.Connect.setForm($sFormId);
    var $request = YAHOO.util.Connect.asyncRequest(
          'POST',
          Newsdesk.Config.requestURI.changePassword,
          {
            success: function(t){ Newsdesk.GUI.show("navi", t.responseText, true) }
          }, '&reqArea=navi&NDglobalArea=config&NDinteriorArea=default'
        );
  },
  subscribeNewsletter: function($sFormId) {
    Newsdesk.log("Newsdesk.Server.subscribeNewsletter");

    var $oFormObject = YAHOO.util.Dom.get($sFormId);
    $oFormObject.SYS_INFE_action.value = 'create';
    $oFormObject.SYS_INFE_name.value = $oFormObject.sp_mail.value;

    var $iNoOfErrors = Newsdesk.Client.Form.checkField("IDsp_firstName",null,['required'],[null]);
    $iNoOfErrors += Newsdesk.Client.Form.checkField(null,"sp_salutation",['required'],[{"message":"Bitte wählen Sie eine Anrede aus."}],{"feedbackId":"IDshowSearchStageFeedback"});
    $iNoOfErrors += Newsdesk.Client.Form.checkField("IDsp_lastName",null,['required'],[null]);
    $iNoOfErrors += Newsdesk.Client.Form.checkField("IDsp_mail",null,['required','isEmail'],[null,null]);
    $iNoOfErrors += Newsdesk.Client.Form.checkField(null,"sp_subscription",['required'],[{"message":"Bitte wählen Sie eine Kategorie aus."}],{"feedbackId":"IDshowSearchCategoryFeedback"});
    $iNoOfErrors += Newsdesk.Client.Form.checkField("SYS_captcha",null,['required'],[null]);

    if ($iNoOfErrors > 0) {
      return;
    }

    Newsdesk.GUI.lock();
    var $requestForm = YAHOO.util.Connect.setForm($oFormObject);
    Newsdesk.Client._ACTIVEXHR++;

    var $request = YAHOO.util.Connect.asyncRequest(
      'POST',
      Newsdesk.Config.requestURI.subscribeNewsletter,
      {
        success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto: true}) }
      }
    );
  },
  createElement: function($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, $oParams) {
    Newsdesk.log("Newsdesk.Server.createElement");
    Newsdesk.log(arguments);
    if ($oParams != null && $oParams.elementType != null) {
      if ($oParams.elementType === "USER") {
        // nutzerkommando aufrufen
        if ($aFormIds.length > 0) {
          var $formToPost = $aFormIds.shift();
          var $bHasUpload = $aUploads.shift();
          document.getElementById($formToPost).SYS_USRE_action.value = 'create';
          var $requestForm = YAHOO.util.Connect.setForm($formToPost, $bHasUpload);
          var $request = YAHOO.util.Connect.asyncRequest(
            'POST',
            Newsdesk.Config.requestURI.user,
            {
              success: function(t) {
                Newsdesk.GUI.show("main", t.responseText);
                Newsdesk.Server.createElement($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, $oParams);
              }, upload: function(t) {
                Newsdesk.GUI.show("main", t.responseText);
                Newsdesk.Server.createElement($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, $oParams);
              }
            }
          );

        } else {
          Newsdesk.GUI.progressbar(2, "gespeichert");
          Newsdesk.GUI.get($sGlobalArea, $sInteriorArea, "view", {loadParts:6});
          return;
        }
      }
    }
  },
  updateElement: function($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, $oParams) {
    Newsdesk.log("Newsdesk.Server.updateElement");
    Newsdesk.log(arguments);
    if ($oParams != null && $oParams.elementType != null) {
      if ($oParams.elementType === "USER") {
        var $sUserType         = '';
        var $aUserPermsPublish = [];

        // nutzerkommando aufrufen
        if ($aFormIds.length > 0) {
          var $formToPost = $aFormIds.shift();
          var $bHasUpload = $aUploads.shift();
          var $actualForm = document.getElementById($formToPost);
          $actualForm.SYS_USRE_action.value = 'update';

          // Nutzertyp ermitteln
          if ($actualForm.SYS_USRE_type != null && $actualForm.SYS_USRE_type.length != null) {
            for (var $a=0;$a<$actualForm.SYS_USRE_type.length;$a++) {
              if ($actualForm.SYS_USRE_type[$a].checked == true) {
                $sUserType = $actualForm.SYS_USRE_type[$a].value;
                break;
              }
            }
          } else if ($actualForm.SYS_USRE_type != null && $actualForm.SYS_USRE_type.checked == true) {
            $sUserType = $actualForm.SYS_USRE_type.value;
          }

          // Herausgeberrechte ermitteln
          if ($actualForm.nd_permissions_publisher != null && $actualForm.nd_permissions_publisher.length != null) {
            for (var $a=0;$a<$actualForm.nd_permissions_publisher.length;$a++) {
              if ($actualForm.nd_permissions_publisher[$a].value != '' && $actualForm.nd_publisher[$a].checked == true) {
                $aUserPermsPublish = $aUserPermsPublish.concat(eval($actualForm.nd_permissions_publisher[$a].value));
              }
            }
          } else if ($actualForm.nd_permissions_publisher != null && $actualForm.nd_permissions_publisher.value != '') {
            $aUserPermsPublish = $aUserPermsPublish.concat(eval($actualForm.nd_permissions_publisher.value));
          }


          if ($sUserType != '' && $actualForm.nd_permissions_general != null && $actualForm.nd_permissions_publisher != null) {
            $oParams.nd_user_type = $sUserType;
            $oParams.aPermsToSet = [];
            $oParams.aPermsToSet = $oParams.aPermsToSet.concat(eval($actualForm.nd_permissions_general.value));
            $oParams.aPermsToSet = $oParams.aPermsToSet.concat($aUserPermsPublish);
            Newsdesk.log($oParams);
          }

          var $requestForm = YAHOO.util.Connect.setForm($formToPost, $bHasUpload);
          var $request = YAHOO.util.Connect.asyncRequest(
            'POST',
            Newsdesk.Config.requestURI.user,
            {
              success: function(t) {
                Newsdesk.GUI.show("main", t.responseText);
                Newsdesk.Server.updateElement($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, $oParams);
              }, upload: function(t) {
                Newsdesk.GUI.show("main", t.responseText);
                Newsdesk.Server.updateElement($sGlobalArea, $sInteriorArea, $aFormIds, $aUploads, $oParams);
              }
            }
          );
        } else {
          if ($oParams.nd_user_type == "3003") {
            Newsdesk.Server.setPermissions($oParams.aPermsToSet, function() {Newsdesk.GUI.progressbar(2, "gespeichert");Newsdesk.GUI.get($sGlobalArea, $sInteriorArea, "view", {loadParts:7});})
          } else {
            Newsdesk.GUI.progressbar(2, "gespeichert");
            Newsdesk.GUI.get($sGlobalArea, $sInteriorArea, "view", {loadParts:7});
            return;
          }
        }
      }
    }
  },
  setPermissions: function($aPermissionObjects, $fCallback) {
    if ($aPermissionObjects.length > 0) {
      var $aObjectToPost = $aPermissionObjects.shift();
      var $request = YAHOO.util.Connect.asyncRequest(
        'POST',
        Newsdesk.Config.requestURI.permission,
        {
          success: function(t) {
            Newsdesk.Server.setPermissions($aPermissionObjects, $fCallback);
          }, upload: function(t) {
            Newsdesk.Server.setPermissions($aPermissionObjects, $fCallback);
          }
        },
        'SYS_PERM_action=' + $aObjectToPost.action +
        '&SYS_PERM_holder=' + $aObjectToPost.user +
        '&SYS_PERM_pool=' + $aObjectToPost.pool +
        '&SYS_PERM_role=' + $aObjectToPost.role +
        '&SYS_PERM_recursion=' + $aObjectToPost.recursion +
        '&ClientFunction=setPermission' +
        '&' + Newsdesk._REQCOM
      );

    } else {
      $fCallback.apply();
    }
  }
}

Newsdesk.Server.time = window.setInterval(Newsdesk.Server.calcServerTime,1000);
Newsdesk.Server.holdsession = window.setInterval(Newsdesk.Server.emptyRequest,(Newsdesk.Config.timeout*1000)/4);



Newsdesk.GUI = {
  login: function($sHow) {
    Newsdesk.GUI.get('login', 'login', null, { "part": $sHow });
  },
  idstruct: {
    global: ["search","news","rss","config","newsletter"],
    newstabs: ["basistab","newstab","downloadtab"],
    rsstabs: ["configtab","newspickertab","previewtab"]
  },
  contentstruct: {
    newstabs: ["Basis Informationen", "Inhalt", "Links & Downloads"],
    rsstabs: ["Feed Konfiguration","Newspicker","RSS Vorschau"]
  },
  status: {
    NDglobalArea: "search",
    NDinteriorArea: "default"
  },
  lock: function() {
    // #bod im msie 6 auf display:none
    // Q319546 http://support.microsoft.com/kb/319546/en-us
    // Q269802 http://support.microsoft.com/kb/269802/en-us
    // Q183110 http://support.microsoft.com/kb/183110/en-us
    if (YAHOO.env.ua.ie == 6) {
      YAHOO.util.Dom.setStyle("body","display","none");
      YAHOO.util.Dom.setStyle("head","display","none");
    }
    if (YAHOO.util.Dom.get("ajaxWait") == null) {
      var $div = document.createElement("div");
      $div.setAttribute("id","ajaxWait");
      YAHOO.util.Dom.setStyle($div, "width", "100%");
      YAHOO.util.Dom.setStyle($div, "height", "100%");
      YAHOO.util.Dom.setStyle($div, "position", "absolute");
      YAHOO.util.Dom.setStyle($div, "backgroundColor", "#999999");
      YAHOO.util.Dom.setStyle($div, "zIndex", "30000");
      YAHOO.util.Dom.setStyle($div, "opacity", "0.01");
      YAHOO.util.Dom.setStyle($div, "top", "0px");
      YAHOO.util.Dom.setStyle($div, "left", "0px");
      YAHOO.util.Dom.setStyle($div, "cursor", "wait");
      document.getElementsByTagName("body")[0].appendChild($div);
      Newsdesk.log("gui locked");
    }
  },
  progressbar: function($iPart, $sText) {
    if ($iPart === 1) {
      YAHOO.util.Dom.setStyle("logoManufacturer", "color", "#FFFFFF");
      YAHOO.util.Dom.setStyle("progress_opac", "opacity", "0.01");
      YAHOO.util.Dom.setStyle("progress_opac", "backgroundColor", "#FBFBFC");
      YAHOO.util.Dom.setStyle("progress_icon", "backgroundImage", "url(/newsdesk/img/bg_progress_0.gif)");
      YAHOO.util.Dom.get("progress_bar_scale").innerHTML = '&nbsp;';
      YAHOO.util.Dom.setStyle(["progress","progress_opac"], "display", "block");
      Newsdesk._PROGRANI[0].animate();
    } else if ($iPart === 2) {
      Newsdesk._PROGRANI[1].onComplete.subscribe(
        function() {
          YAHOO.util.Dom.get("progress_bar_scale").innerHTML = $sText + '&nbsp;';
          YAHOO.util.Dom.setStyle("progress_icon", "backgroundImage", "url(/newsdesk/img/bg_progress_1.gif)");
          Newsdesk.GUI.progressbar(3);
        }
      );
      Newsdesk._PROGRANI[1].animate();
    } else if ($iPart === 3) {
      Newsdesk._PROGRANI[2].onComplete.subscribe(
        function() {
          YAHOO.util.Dom.setStyle(["progress","progress_opac"], "display", "none");
          YAHOO.util.Dom.setStyle("logoManufacturer", "color", "#7C909A");
        }
      );
      Newsdesk._PROGRANI[2].animate();
    }
  },
  highlightGlobalNavi: function($sGlobalArea) {
    // wir setzen class="active" im id="global"-div dort, wo es hin muss
    for (var $i=0;$i<this.idstruct.global.length;$i++) {
      if (this.idstruct.global[$i] == $sGlobalArea) {
        YAHOO.util.Dom.addClass(YAHOO.util.Dom.get("global").getElementsByTagName("a")[$i], "active");
      } else {
        YAHOO.util.Dom.removeClass(YAHOO.util.Dom.get("global").getElementsByTagName("a")[$i], "active");
      }
    }
  },
  /*
  // für nur einen Request statt bis zu drei ist das so zu realisieren
  // fraglich ist, was wir mit dem Iterate machen, der ja die xml immer neu aufgebaut braucht ...
  render: function($sGlobalArea) {
    Newsdesk.log("Newsdesk.GUI.render: " + $sGlobalArea);

    // wir laden ALLES asynchron, deshalb hier eine Sanduhr (erstmal nur beim Mauszeiger) anzeigen, wenn noch nicht geschehen
    this.lock();
    this.hightlightGlobalNavi($sGlobalArea);

    if ($sGlobalArea === "news") {
      var $request = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.show("body", t.responseText, true) }}, 'reqArea=body&NDglobalArea=news&showTab=' +  Newsdesk._ACTTAB + '&' + Newsdesk._REQCOM);
      return;
    } else {
      Newsdesk.log("Newsdesk.GUI.render: nichts passiert");
    }
  },
  */
  countChars: function($idTextarea, $idHtml) {
    YAHOO.util.Dom.get($idHtml).innerHTML = YAHOO.util.Dom.get($idTextarea).value.replace(/(\u000A|\u000D)/g,"").length;
  },
  countLines: function($idTextarea, $idCharsPerLine, $idLines) {
    YAHOO.util.Dom.get($idLines).innerHTML = Math.floor(YAHOO.util.Dom.get($idTextarea).value.length / YAHOO.util.Dom.get($idCharsPerLine).value + 1);
  },
  updateSectionTextAttributes: function() {
    Newsdesk.GUI.countChars('sp_section_text','sp_section_text_countChars');
    // erstmal ohne die Zeichen pro Zeile
    // Newsdesk.GUI.countLines('sp_section_text','charsPerLine','sp_section_text_countLines');
  },
  get: function($sGlobalArea, $sInteriorArea, $sInnerArea, $oParams) {
    Newsdesk.log("Newsdesk.GUI.get: " + $sGlobalArea + "|" + $sInteriorArea + "|" + $sInnerArea + "|" + $oParams);
    // Fehlerbehandlung bzgl. der Paramenter
    if ($oParams == null) {
      $oParams = {};
    }

    // wir laden ALLES asynchron, deshalb hier eine Sanduhr (erstmal nur beim Mauszeiger) anzeigen, wenn noch nicht geschehen
    this.lock();

    Newsdesk.Client.setEnvironment($sGlobalArea, $sInteriorArea, $sInnerArea);
    // wir setzen den GUI.status
    //this.status.NDglobalArea = ($sGlobalArea === null) ? 'search' : $sGlobalArea;
    //this.status.NDinteriorArea = ($sInteriorArea === null) ? 'default' : $sInteriorArea;
    //this.status.NDinnerArea = ($sInnerArea === null) ? 'default' : $sInnerArea;

    // highlight mainNavi
    this.highlightGlobalNavi($sGlobalArea);

    // funktionaler Teil der Funktion
    switch($sGlobalArea) {
      case 'imprint':
        Newsdesk.log("show kommt im imprint an");
        Newsdesk.Client._ACTIVEXHR+=3;
        var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("main", t.responseText, true, {auto:true}) }}, 'reqArea=main&NDglobalArea=imprint' + '&' + Newsdesk._REQCOM);
        var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true}) }}, 'reqArea=navi' + '&' + Newsdesk._REQCOM);
        var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer' + '&' + Newsdesk._REQCOM);
        return;
      case 'contact':
        Newsdesk.log("show kommt im contact an");
        Newsdesk.Client._ACTIVEXHR+=3;
        var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("main", t.responseText, true, {auto:true}) }}, 'reqArea=main&NDglobalArea=contact' + '&' + Newsdesk._REQCOM);
        var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true}) }}, 'reqArea=navi' + '&' + Newsdesk._REQCOM);
        var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer' + '&' + Newsdesk._REQCOM);
        return;
      case 'global':
        var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.show("global", t.responseText, true) }}, 'reqArea=global' + '&' + Newsdesk._REQCOM);
        return;
      case 'user':
        YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.show("user", t.responseText, true) }}, 'reqArea=user' + '&' + Newsdesk._REQCOM);
        return;
      case 'login':
        Newsdesk.log("login");
        YAHOO.util.Dom.setStyle("displayAreaSelect","display","none");
        switch($sInteriorArea) {
          case 'login':
            Newsdesk.log("login login");
            if ($oParams != null && $oParams.part != null) {
              Newsdesk.log("login login doReq");
              var $formContent1 = YAHOO.util.Connect.setForm('NDloginForm');
              Newsdesk.Client._ACTIVEXHR++;
              YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.login, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true}) }}, "SYS_window=new");
            } else {
              this.freeGui();
            }
            return;
          default:
            Newsdesk.Client._ACTIVEXHR+=3;
            var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("main", t.responseText, true, {auto:true}) }}, 'reqArea=main&NDglobalArea=login&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
            var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true}) }}, 'reqArea=navi&NDglobalArea=login' + '&' + Newsdesk._REQCOM);
            var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer&NDglobalArea=empty' + '&' + Newsdesk._REQCOM);
            return;
        }
        return;
      case 'search': // Such-/Rechercheseite
        switch($sInteriorArea) {
          case 'footer':
            var $request = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.show("footer", t.responseText, true) }}, 'reqArea=footer&NDglobalArea=search&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
            return;
          default:
            switch($sInnerArea) {
              case 'query':

                  Newsdesk.log("query now");
                  var $requestForm = YAHOO.util.Connect.setForm("naviSearchDefault");

                  if ($oParams != null && $oParams.prepared == true) {
                    var $request = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {
                      success: function(t){ Newsdesk.GUI.show("main", t.responseText); Newsdesk.GUI.get('search', 'footer'); }
                      }, 'ndpagesite=' + (($oParams != null && $oParams.ndpagesite != null) ? $oParams.ndpagesite : 0) + '&reqArea=main&NDglobalArea=search&NDinteriorArea=default&NDinternalArea=query&displayArea=prepared' + '&' + Newsdesk._REQCOM);
                    return;
                  } else if ($oParams != null && $oParams.notarchived == true) {
                    var $request = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {
                      success: function(t){ Newsdesk.GUI.show("main", t.responseText); Newsdesk.GUI.get('search', 'footer'); }
                      }, 'ndpagesite=' + (($oParams != null && $oParams.ndpagesite != null) ? $oParams.ndpagesite : 0) + '&reqArea=main&NDglobalArea=search&NDinteriorArea=default&NDinternalArea=query&displayArea=notarchived' + '&' + Newsdesk._REQCOM);
                    return;
                  } else {
                    Newsdesk.log("query now in else");
                    var $aReturnValue1 = Newsdesk.GUI.checkIsDate("IDsearchDateStart");
                    if ($aReturnValue1 !== false && $aReturnValue1 !== "empty") {
                      Newsdesk.GUI.setSpecialStyle("IDsearchDateStart", "inputreset", "");
                      var $tmpDate1 = new Date($aReturnValue1);
                      YAHOO.util.Dom.get("IDsearchDateStartTS").value = $tmpDate1.getTime();
                    } else if ($aReturnValue1 === "empty") {
                      Newsdesk.GUI.setSpecialStyle("IDsearchDateStart", "inputreset", "");
                      YAHOO.util.Dom.get("IDsearchDateStartTS").value = "";
                    } else {
                      Newsdesk.GUI.setSpecialStyle("IDsearchDateStart", "inputerror", "Fehler: Bitte beachten Sie das Eingabeformat.");
                    }

                    var $aReturnValue2 = Newsdesk.GUI.checkIsDate("IDsearchDateEnd");
                    if ($aReturnValue2 !== false && $aReturnValue2 !== "empty") {
                      Newsdesk.GUI.setSpecialStyle("IDsearchDateEnd", "inputreset", "");
                      var $tmpDate2 = new Date($aReturnValue2);
                      YAHOO.util.Dom.get("IDsearchDateEndTS").value = $tmpDate2.getTime();
                    } else if ($aReturnValue2 === "empty") {
                      Newsdesk.GUI.setSpecialStyle("IDsearchDateEnd", "inputreset", "");
                      YAHOO.util.Dom.get("IDsearchDateEndTS").value = "";
                    } else {
                      Newsdesk.GUI.setSpecialStyle("IDsearchDateEnd", "inputerror", "Fehler: Bitte beachten Sie das Eingabeformat.");
                    }

                    if ($aReturnValue1 === false || $aReturnValue2 === false) {
                      Newsdesk.GUI.freeGui();
                      return;
                    }

                    if (YAHOO.util.Dom.get("IDsearchDateEndTS").value != "" && YAHOO.util.Dom.get("IDsearchDateStartTS").value != "" && parseInt(YAHOO.util.Dom.get("IDsearchDateStartTS").value) > parseInt(YAHOO.util.Dom.get("IDsearchDateEndTS").value)) {
                      Newsdesk.GUI.setSpecialStyle("IDsearchDateEnd", "inputerror", "Fehler: Das Enddatum liegt vor dem Startdatum.");
                      Newsdesk.GUI.freeGui();
                      return;
                    }

                    var $requestForm = YAHOO.util.Connect.setForm("naviSearchDefault");
                    var $request = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {
                      success: function(t){ Newsdesk.GUI.show("main", t.responseText); Newsdesk.GUI.get('search', 'footer'); }
                      }, 'ndpagesite=' + (($oParams != null && $oParams.ndpagesite != null) ? ($oParams.ndpagesite) : 0) + '&reqArea=main&NDglobalArea=search&NDinteriorArea=default&NDinternalArea=query&displayArea=archived' + '&' + Newsdesk._REQCOM);
                    return;
                  }
              default:
                var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.show("navi", t.responseText) }}, 'reqArea=navi&NDglobalArea=search&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
                var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.show("main", t.responseText, true); Newsdesk.GUI.get('search', 'footer'); }}, 'reqArea=main&NDglobalArea=search&NDinteriorArea=default&displayArea=actual' + '&' + Newsdesk._REQCOM);
                YAHOO.util.Dom.removeClass("footer", "XL");
                return;
            }
            var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.show("navi", t.responseText) }}, 'reqArea=navi&NDglobalArea=search&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
            var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.show("main", t.responseText, true); Newsdesk.GUI.get('search', 'footer'); }}, 'reqArea=main&NDglobalArea=search&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
            YAHOO.util.Dom.removeClass("footer", "XL");
            return;
        }
        return;
      case 'news': //
        switch($sInteriorArea) {
          case 'article':
            switch($sInnerArea) {
              case 'new':
                Newsdesk.Server.createTemporaryArticle($oParams.articleType, "news");
                return;
              case 'get':
                Newsdesk.Server.setActualElement($oParams.articleId, $sGlobalArea, null, null, null);
                return;
              case 'create':
              case 'update':
                // default-Werte setzen
                // sp_date_start
                if (YAHOO.util.Dom.get("sp_date_start").value == "") {
                  YAHOO.util.Dom.get("sp_date_start").value = Newsdesk.Utils.getStringFromDate("DD.MM.JJJJ");
                }
                // sp_date_publication
                // wenn leer, mit Startdatum - wenn datum - vorbelegen
                if (YAHOO.util.Dom.get("sp_date_publication").value == "" && YAHOO.util.Dom.get("sp_date_start").value.search(/^\d\d\.\d\d\.\d\d\d\d$/) != -1) {
                  YAHOO.util.Dom.get("sp_date_publication").value = YAHOO.util.Dom.get("sp_date_start").value;
                }

                // check form
                var $failure = 0;
                $failure += Newsdesk.Client.Form.checkField(null,"sp_stage",["required"],[{message:"Pflichtfeld: Bitte definieren Sie den Status der Meldung.\n"}],{feedbackId:"IDshowSearchStageFeedback"});
                $failure += Newsdesk.Client.Form.checkField("sp_date_start",null,["required","isDate"],[{message:"Pflichtfeld: Bitte füllen Sie dieses Feld aus..\n"},{message:"Datumsfeld: Bitte beachten Sie das Eingabeformat.\n"}],null);
                $failure += Newsdesk.Client.Form.checkField("sp_date_publication",null,["required","isDate"],[{message:"Pflichtfeld: Bitte füllen Sie dieses Feld aus..\n"},{message:"Datumsfeld: Bitte beachten Sie das Eingabeformat.\n"}],null);
                $failure += Newsdesk.Client.Form.checkField("sp_date_end",null,["required","isDate"],[{message:"Pflichtfeld: Bitte füllen Sie dieses Feld aus.\n"},{message:"Datumsfeld: Bitte beachten Sie das Eingabeformat.\n"}],null);
                $failure += Newsdesk.Client.Form.checkField(null,"sp_category",["required"],[{message:"Pflichtfeld: Bitte kategorisieren Sie die Meldung.\n"}],{feedbackId:"IDshowSearchCategoryFeedback"});
                $failure += Newsdesk.Client.Form.checkField("sp_headline",null,["required"],[{message:"Pflichtfeld: Bitte füllen Sie dieses Feld aus.\n"}],null);
                $failure += Newsdesk.Client.Form.checkField("sp_intro"   ,null,["required"],[{message:"Pflichtfeld: Bitte füllen Sie dieses Feld aus.\n"}],null);
                if ($failure > 0) {
                  Newsdesk.GUI.freeGui();
                  return;
                }

                Newsdesk.GUI.progressbar(1);

                if ($sInnerArea === 'create') {
                  // CREATE article from mainNewsDefault AND naviNewsDefault
                  Newsdesk.Server.createNewArticle("article", "news", null, ["mainNewsDefault","naviNewsDefault"], [true, true]);
                } else if ($sInnerArea === 'update') {
                  // UPDATE article from mainNewsDefault AND naviNewsDefault
                  Newsdesk.Server.updateArticle("news", null, ["mainNewsDefault","naviNewsDefault"], [true, true]);
                }
                return;
              case 'delete':
                if (confirm("Möchen Sie die Pressemeldung\n\n" + $oParams.articleName + "\n\nwirklich unwiederbringlich löschen?")) {
                  Newsdesk.Server.deleteArticle("search", $oParams.articleId);
                } else {
                  this.freeGui();
                  return;
                }
                return;
              default:
                this.freeGui();
                return;
            }
            var $tmpForm = $oParams.form;
            document.$tmpForm.SYS_INFE_action.value = 'update';
            YAHOO.util.Connect.setForm($oParams.form, true);
            var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.article, {upload: function(o) {alert(o.responseText)},success: function(o) {alert(o.responseText)}});
            return;
          default:
            Newsdesk.Client._ACTIVEXHR+=4;
            var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true})  }}, 'reqArea=navi&NDglobalArea=news&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
            var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("main", t.responseText, true, {auto:true})  }}, 'reqArea=main&NDglobalArea=news&NDinteriorArea=default&showTab=' +  Newsdesk._ACTTAB + '&' + Newsdesk._REQCOM);
            var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; YAHOO.util.Dom.addClass("footer", "XL"); Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer&NDglobalArea=news&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
            var $request4 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("global", t.responseText, true, {auto:true}) }}, 'reqArea=global' + '&' + Newsdesk._REQCOM);
            return;
        }
        return;
      case 'rss': //
        switch($sInteriorArea) {
          case 'article':
            switch($sInnerArea) {
              case 'new':
                Newsdesk.Server.createTemporaryArticle($oParams.articleType, "rss");
                return;
              case 'get':
                Newsdesk.Server.setActualElement($oParams.articleId, $sGlobalArea, null, null, null);
                return;
              case 'create':
                var $failure = Newsdesk.Server.createNewArticle("article", "rss", null, ["mainRssDefault"], [false]);
                if ($failure) {
                  Newsdesk.GUI.freeGui();
                }
                return;
              case 'delete':
                if (confirm("Möchen Sie den RSS-Feed\n\n" + $oParams.articleName + "\n\nwirklich unwiederbringlich löschen?")) {
                  Newsdesk.Server.deleteArticle("rss", $oParams.articleId);
                } else {
                  this.freeGui();
                  return;
                }
                return;
              case 'update':
                var $failure = Newsdesk.Server.updateArticle("rss", null, ["mainRssDefault"], [true]);
                if ($failure) {
                  Newsdesk.GUI.freeGui();
                }
                return;
              default:
                var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.show("navi", t.responseText) }}, 'reqArea=navi&NDglobalArea=rss&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
                var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.show("main", t.responseText, true) }}, 'reqArea=main&NDglobalArea=rss&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
                var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.show("footer", t.responseText) }}, 'reqArea=footer&NDglobalArea=rss&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
                return;
            }
            return;
          case 'direct':
            switch($sInnerArea) {
              case 'navi':
                if ($oParams.tab == 2) {
                  Newsdesk.Client._ACTIVEXHR+=2;
                  var $request = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true}) }}, 'reqArea=navi&NDglobalArea=rss&NDinteriorArea=picker' + '&' + Newsdesk._REQCOM);
                  var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer&NDglobalArea=rss&NDinteriorArea=picker' + '&' + Newsdesk._REQCOM);
                  } else {
                  Newsdesk.Client._ACTIVEXHR+=2;
                  var $request = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true}) }}, 'reqArea=navi&NDglobalArea=rss&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
                  var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer&NDglobalArea=rss&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
                }
                return;
              case 'footer':
                Newsdesk.Client._ACTIVEXHR+=1;
                var $request = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer&NDglobalArea=rss&NDinteriorArea=picker' + '&' + Newsdesk._REQCOM);
                return;
              default:
                return;
            }
            return;
          case 'query':
            var $requestForm = YAHOO.util.Connect.setForm("naviRssPicker");

            // hier die Datums-Eingaben aufbereiten und deren Format und Logik prüfen
            var $failure = 0;

            // IDsearchDateStart
            $failure += Newsdesk.Client.Form.checkField("IDsearchDateStart",null,["isDate"],[null],null) > 0;
            if ($failure === 0) {
              if (YAHOO.util.Dom.get("IDsearchDateStart").value != "") {
                var $aDateParts = YAHOO.util.Dom.get("IDsearchDateStart").value.split(".");
                var $tmpDate1 = new Date(Date.UTC($aDateParts[2],$aDateParts[1]-1,$aDateParts[0]) + Newsdesk._TZOMS);
                YAHOO.util.Dom.get("IDsearchDateStartTS").value = $tmpDate1.getTime();
              } else {
                YAHOO.util.Dom.get("IDsearchDateStartTS").value = "";
              }
            }

            // IDsearchDateEnd
            $failure += Newsdesk.Client.Form.checkField("IDsearchDateEnd",null,["isDate"],[null],null) > 0;
            if ($failure === 0) {
              if (YAHOO.util.Dom.get("IDsearchDateEnd").value != "") {
                var $aDateParts = YAHOO.util.Dom.get("IDsearchDateEnd").value.split(".");
                var $tmpDate1 = new Date(Date.UTC($aDateParts[2],$aDateParts[1]-1,$aDateParts[0]) + Newsdesk._TZOMS);
                YAHOO.util.Dom.get("IDsearchDateEndTS").value = $tmpDate1.getTime();
              } else {
                YAHOO.util.Dom.get("IDsearchDateEndTS").value = "";
              }
            }

            // IDsearchDateEnd > IDsearchDateStart
            if (YAHOO.util.Dom.get("IDsearchDateEndTS").value != "" && YAHOO.util.Dom.get("IDsearchDateStartTS").value != "") {
              $failure += Newsdesk.Client.Form.checkField("IDsearchDateEndTS",null,["isNumber"],[{operator:"gte",comparator:"IDsearchDateStartTS",message:"Fehler: Das Enddatum liegt vor dem Startdatum."}],{feedbackId:"IDsearchDateEnd"});
            }

            if ($failure > 0) {
              Newsdesk.GUI.freeGui();
              return;
            }

            Newsdesk.Client._ACTIVEXHR+=1;
            var $request = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {
              success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("newspickertab_main", t.responseText, true, {auto:true}); Newsdesk.GUI.get('rss','direct', 'footer'); }
              }, 'ndpagesite=' + (($oParams != null && $oParams.ndpagesite != null) ? $oParams.ndpagesite : 0) + '&reqArea=main&NDglobalArea=rss&NDinteriorArea=picker&NDinternalArea=query&displayArea=' + '&' + Newsdesk._REQCOM);
            return;
          default:
            Newsdesk.Client._ACTIVEXHR+=3;
            var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true}) }}, 'reqArea=navi&NDglobalArea=rss&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
            var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; YAHOO.util.Dom.removeClass("footer", "XL"); Newsdesk.GUI.show("main", t.responseText, true, {auto:true}) }}, 'reqArea=main&NDglobalArea=rss&NDinteriorArea=default&showTabRSS=' + Newsdesk._ACTRSSTAB + '&' + Newsdesk._REQCOM);
            var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer&NDglobalArea=rss&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
            return;
        }
        return;
      case 'config': // Konfiguration anzeigen
        switch($sInteriorArea) {
          case 'data1':
            switch($sInnerArea) {
              case 'update':
                var $failure = Newsdesk.Server.updateArticle($sGlobalArea, $sInteriorArea, ["mainForm"], [true]);
                if ($failure) {
                  Newsdesk.GUI.freeGui();
                }
                return;
              case 'get':
                Newsdesk.Server.setActualElement($oParams.articleId, $sGlobalArea, $sInteriorArea, null, null);
                return;
              default:
                Newsdesk.syncClientWithServer();
                Newsdesk.Client._ACTIVEXHR+=3;
                var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("main", t.responseText, true, {auto:true}) }}, 'reqArea=main&NDglobalArea=config&NDinteriorArea=data1' + '&' + Newsdesk._REQCOM);
                var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true}) }}, 'reqArea=navi&NDglobalArea=config&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
                var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer&NDglobalArea=config&NDinteriorArea=data1' + '&' + Newsdesk._REQCOM);
                return;
            }
            return;
          case 'category':
            switch($sInnerArea) {
              case 'new':
                Newsdesk.Server.createTemporaryArticle($oParams.articleType, "config", "category");
                return;
              case 'get':
                Newsdesk.Server.setActualElement($oParams.articleId, $sGlobalArea, $sInteriorArea, null, null);
                return;
              case 'update':
                var $failure = Newsdesk.Server.updateArticle("config", "category", ["mainConfigCategory"], [true]);
                if ($failure) {
                  Newsdesk.GUI.freeGui();
                }
                return;
              case 'create':
                var $failure = Newsdesk.Server.createNewArticle($oParams.articleType, "config", "category", [$oParams.form], [false]);
                if ($failure) {
                  Newsdesk.GUI.freeGui();
                }
                return;
              case 'delete':
                if (confirm("Möchen Sie die Kategorie\n\n" + $oParams.articleName + "\n\nwirklich unwiederbringlich löschen?")) {
                  Newsdesk.Server.deleteArticle("config", $oParams.articleId);
                } else {
                  this.freeGui();
                  return;
                }
                return;
              case 'adhocsend':
                // ermittle die IDs der Artikel zum versenden aus dem Array von Input-Elementen 'document.getElementsByName("rt_adhocToSend")'
                var $aIdListOfCheckboxes = document.getElementsByName("rt_adhocToSend");
                var $aIdListToSend = [];
                for (var $i=0; $i < $aIdListOfCheckboxes.length; $i++) {
                  if ($aIdListOfCheckboxes[$i].checked == true) {
                    $aIdListToSend.push($aIdListOfCheckboxes[$i].value);
                  }
                }

                if (parseInt(Newsdesk.Utils.getStringFromDate("NOW")) - parseInt($oParams.lastAdhocSent) <
                      ((!isNaN(parseInt(Newsdesk.GUI.server.NDCache.sec_minToNextAdHoc))) ? (Newsdesk.GUI.server.NDCache.sec_minToNextAdHoc * 60000): 1800000)
                    ) {
                  // alert(Newsdesk.GUI.server.NDCache.sec_minToNextAdHoc);
                  alert("Sie haben vor " + ((Math.floor((parseInt(Newsdesk.Utils.getStringFromDate("NOW")) - parseInt($oParams.lastAdhocSent)) / 60000) <= 1) ? "1 Minute" :
                    (Math.floor((parseInt(Newsdesk.Utils.getStringFromDate("NOW")) - parseInt($oParams.lastAdhocSent)) / 60000) + " Minuten")) +
                    " bereits den AdHoc-Versand initiiert.\n\nEin erneuter Versand ist erst nach Ablauf von " +
                    ((!isNaN(parseInt(Newsdesk.GUI.server.NDCache.sec_minToNextAdHoc))) ? Newsdesk.GUI.server.NDCache.sec_minToNextAdHoc : "30")  +
                    " Minuten möglich.");
                  Newsdesk.GUI.freeGui();
                  return;
                } else if ($aIdListToSend.length <= 0) {
                  alert("Sie haben keine Pressemeldung für den AdHoc-Versand ausgewählt.");
                  Newsdesk.GUI.freeGui();
                  return;
                } else if (confirm("Möchen Sie für die Kategorie\n\n'" + $oParams.articleName + "'\n\neinen AdHoc-Newsletter mit\n\n" + $aIdListToSend.length +" Meldungen\n\njetzt versenden?")) {
                  // sp_everAdhocList normalisieren
                  var $sEverAdhocList = document.getElementById("sp_everAdhocList").value;
                  for (var $i=0; $i < $aIdListToSend.length; $i++) {
                    Newsdesk.log("rt_adhocToSend" + $aIdListToSend[$i]);
                    // CheckboxID hat NICHT die Usb-Erweiterung
                    if (YAHOO.util.Dom.get("rt_adhocToSend" + $aIdListToSend[$i]) != null) {
                      YAHOO.util.Dom.get("rt_adhocToSend" + $aIdListToSend[$i]).checked = false;
                    } else if (YAHOO.util.Dom.get("rt_adhocToSendUsb" + $aIdListToSend[$i]) != null) {
                      YAHOO.util.Dom.get("rt_adhocToSendUsb" + $aIdListToSend[$i]).checked = false;
                      YAHOO.util.Dom.get("rt_adhocToSendUsb" + $aIdListToSend[$i]).setAttribute("id","rt_adhocToSend" + $aIdListToSend[$i]);
                      YAHOO.util.Dom.get("rt_adhocToSendLabelUsb" + $aIdListToSend[$i]).setAttribute("id","rt_adhocToSendLabel" + $aIdListToSend[$i]);
                    }

                    if (YAHOO.util.Dom.hasClass("nl_adHocSent" + $aIdListToSend[$i], "nl_adHocSent")) {
                      YAHOO.util.Dom.removeClass("nl_adHocSent" + $aIdListToSend[$i], "nl_adHocSent");
                      YAHOO.util.Dom.addClass("nl_adHocSent" + $aIdListToSend[$i], "nl_adHocSentDone");
                    }

                    if ($sEverAdhocList.indexOf($aIdListToSend[$i]) == -1) {
                      $sEverAdhocList += ',' + $aIdListToSend[$i];
                    }
                  }
                  // darf nicht mehr mehr gebraucht werden, da wir die Intervalle zwischen zwei AdHoc-Versendungen definieren können
                  // dazu muss main nach dem Versand neu geladen werden, was nicht geht, weil wir nicht wissen, wann der Versand fertig ist...
                  YAHOO.util.Dom.setStyle($oParams.elementID,"display","none");
                  Newsdesk.Server.IESHandler(
                    "GET",
                    "information",
                    "rtcontent=rt_isAdhoc|true" +
                    ";rtAdhocListToSend=" + $aIdListToSend.join(",") +
                    ";sp_everAdhocList=" + $sEverAdhocList +
                    ";lastAdhocSent=" + Newsdesk.Utils.getStringFromDate("NOW") +
                    ";SYS_INFE_action=update" +
                    ";SYS_INFE_id=" + $oParams.articleId +
                    ";SYS_INFE_publicationArea=" + $oParams.publicationArea +
                    ";SYS_INFE_publicationChecked=" + $oParams.publicationArea +
                    ";SYS_INFE_publicationTemplate=" + $oParams.publicationTemplate +
                    ";SYS_pageParameter=" + encodeURIComponent('<?xml version="1.0" encoding="ISO-8859-1"?><SYSTEM_page-parameter><information><input name="sp_everAdhocList" type="text"><detail locale="default" data-type="text"/></input><input name="rtAdhocListToSend" type="text"><detail locale="default" data-type="text"/></input><input name="lastAdhocSent" type="text"><detail locale="default" data-type="text"/></input><input name="rtcontent" type="text"><detail locale="default" data-type="text"/></input></information></SYSTEM_page-parameter>').replace(/\=/g, "%3D"),
                    [
                      [
                        Newsdesk.GUI.progressbar, [2, "E-Mails versandt"]
                      ],
//                      [
//                        Newsdesk.Client.setEnvironment, ["config","default","default"]
//                      ],
//                     [
//                        Newsdesk.Client.viewEnvironment, [{loadParts: 2}]
//                      ]
[
  alert,["Der AdHoc-Versand der Kategorie\n\n'" + $oParams.articleName + "'\n\nist beendet."]
]
                    ]
                  );
                  Newsdesk.Client.viewEnvironment({loadParts: 0});
                } else {
                  this.freeGui();
                  return;
                }
                return;
              default:
                Newsdesk.Client._ACTIVEXHR+=4;
                var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("main", t.responseText, true, {auto:true}) }}, 'reqArea=main&NDglobalArea=config&NDinteriorArea=category' + '&' + Newsdesk._REQCOM);
                var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true}) }}, 'reqArea=navi&NDglobalArea=config&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
                var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer&NDglobalArea=config&NDinteriorArea=category' + '&' + Newsdesk._REQCOM);
                var $request4 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("global", t.responseText, true, {auto:true}) }}, 'reqArea=global' + '&' + Newsdesk._REQCOM);
                return;
            }
            return;
          case 'publisher':
            switch($sInnerArea) {
              case 'new':
                Newsdesk.Server.createTemporaryArticle($oParams.articleType, "config", "publisher");
                return;
              case 'get':
                Newsdesk.Server.setActualElement($oParams.articleId, $sGlobalArea, $sInteriorArea, null, null);
                return;
              case 'update':
                var $failure = Newsdesk.Server.updateArticle("config", "publisher", ["mainConfigPublisher"], [true], {"accordingPool":$oParams.accordingPool,"originTask":"update"});
                if ($failure) {
                  Newsdesk.GUI.freeGui();
                }
                return;
              case 'create':
                var $failure = Newsdesk.Server.createNewArticle($oParams.articleType, "config", "publisher", [$oParams.form], [false]);
                if ($failure) {
                  Newsdesk.GUI.freeGui();
                }
                return;
              case 'delete':
                if (confirm("Möchen Sie den Herausgeber\n\n" + $oParams.articleName + "\n\nwirklich unwiederbringlich löschen?")) {
                  Newsdesk.Server.deleteArticle("config", $oParams.articleId, {"deleteArticlePool":true,"poolId":$oParams.accordingPool,"lay1":$sGlobalArea,"lay2":$sInteriorArea,"lay3":$sInnerArea});
                } else {
                  this.freeGui();
                  return;
                }
                return;
              case 'view':
                if (($oParams.loadParts & 1) == 1) { // load main
                  Newsdesk.Client._ACTIVEXHR++;
                  var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("main", t.responseText, true, {auto:true}) }}, 'reqArea=main&NDglobalArea=config&NDinteriorArea=publisher' + '&' + Newsdesk._REQCOM);
                }
                if (($oParams.loadParts & 2) == 2) { // load navi
                  Newsdesk.Client._ACTIVEXHR++;
                  var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true,scrollTop:YAHOO.util.Dom.get("naviscroll").scrollTop}) }}, 'reqArea=navi&NDglobalArea=config&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
                }
                if (($oParams.loadParts & 4) == 4) { // load footer
                  Newsdesk.Client._ACTIVEXHR++;
                  var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer&NDglobalArea=config&NDinteriorArea=publisher' + '&' + Newsdesk._REQCOM);
                }
                return;
              default:
                Newsdesk.Client._ACTIVEXHR+=3;
                var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("main", t.responseText, true, {auto:true}) }}, 'reqArea=main&NDglobalArea=config&NDinteriorArea=publisher' + '&' + Newsdesk._REQCOM);
                var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true}) }}, 'reqArea=navi&NDglobalArea=config&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
                var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer&NDglobalArea=config&NDinteriorArea=publisher' + '&' + Newsdesk._REQCOM);
                return;
            }
            return;
          case 'user':
            switch($sInnerArea) {
              case 'new':
                Newsdesk.Server.setActualElement('', $sGlobalArea, $sInteriorArea, null, "USER");
                return;
              case 'get':
                Newsdesk.Server.setActualElement($oParams.userId, $sGlobalArea, $sInteriorArea, null, "USER");
                return;
              case 'create':
                // check form
                var $failure = 0;
                $failure += Newsdesk.Client.Form.checkField("SYS_USRE_firstName",null,["required"],[{message:"Pflichtfeld: Bitte geben Sie einen Vornamen an.\n"}]);
                $failure += Newsdesk.Client.Form.checkField("SYS_USRE_lastName",null,["required"],[{message:"Pflichtfeld: Bitte geben Sie einen Nachnamen an.\n"}]);
                $failure += Newsdesk.Client.Form.checkField("SYS_USRE_login",null,["required"],[{message:"Pflichtfeld: Bitte geben Sie einen Login an.\n"}]);

                $failure += Newsdesk.Client.Form.checkField("SYS_USRE_password",null,["required","isRegex"],[{message:"Pflichtfeld: Bitte geben Sie ein Passwort an.\n"},{pattern:".{6,}",message:"Das Passwort muss aus mindestens 6 Zeichen bestehen.\n"}]);
                $failure += Newsdesk.Client.Form.checkField("SYS_USRE_rpassword",null,["required","isRegex","equals"],[{message:"Pflichtfeld: Bitte geben Sie das Passwort nochmal an.\n"},{pattern:".{6,}",message:"Das Passwort muss aus mindestens 6 Zeichen bestehen.\n"},{fieldId:"SYS_USRE_password",message:"Die beiden Passwörter stimmen nicht miteinander überein.\n"}]);
                $failure += Newsdesk.Client.Form.checkField(null,"SYS_USRE_type",["required"],[{message:"Pflichtfeld: Bitte definieren Sie eine Nutzertypen.\n"}],{feedbackId:"val_SYS_USRE_type"});

                if ($failure > 0) {
                  Newsdesk.GUI.freeGui();
                  return;
                }

                Newsdesk.GUI.progressbar(1);

                Newsdesk.Server.createElement($sGlobalArea, $sInteriorArea, ["mainConfigUser"], [false], {"elementType":"USER"});
                return;
              case 'update':
                // check form
                var $failure = 0;
                $failure += Newsdesk.Client.Form.checkField("SYS_USRE_firstName",null,["required"],[{message:"Pflichtfeld: Bitte geben Sie einen Vornamen an.\n"}]);
                $failure += Newsdesk.Client.Form.checkField("SYS_USRE_lastName",null,["required"],[{message:"Pflichtfeld: Bitte geben Sie einen Nachnamen an.\n"}]);
                $failure += Newsdesk.Client.Form.checkField("SYS_USRE_login",null,["required"],[{message:"Pflichtfeld: Bitte geben Sie einen Login an.\n"}]);

                if (YAHOO.util.Dom.get("SYS_USRE_password").value != "") {
                  $failure += Newsdesk.Client.Form.checkField("SYS_USRE_rpassword",null,["required","isRegex","equals"],[{message:"Pflichtfeld: Bitte geben Sie das Passwort nochmal an.\n"},{pattern:".{6,}",message:"Das Passwort muss aus mindestens 6 Zeichen bestehen."},{fieldId:"SYS_USRE_password",message:"Die beiden Passwörter stimmen nicht miteinander überein."}]);
                }
                if ($failure > 0) {
                  Newsdesk.GUI.freeGui();
                  return;
                }

                Newsdesk.GUI.progressbar(1);

                Newsdesk.Server.updateElement($sGlobalArea, $sInteriorArea, ["mainConfigUser"], [false], {"elementType":"USER"});
                return;
              case 'view':
                if (($oParams.loadParts & 1) == 1) { // load main
                  Newsdesk.Client._ACTIVEXHR++;
                  var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("main", t.responseText, true, {auto:true}) }}, 'reqArea=main&NDglobalArea=config&NDinteriorArea=user' + '&' + Newsdesk._REQCOM);
                }
                if (($oParams.loadParts & 2) == 2) { // load navi
                  Newsdesk.Client._ACTIVEXHR++;
                  var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true,scrollTop:YAHOO.util.Dom.get("naviscroll").scrollTop}) }}, 'reqArea=navi&NDglobalArea=config&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
                }
                if (($oParams.loadParts & 4) == 4) { // load footer
                  Newsdesk.Client._ACTIVEXHR++;
                  var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer&NDglobalArea=config&NDinteriorArea=user' + '&' + Newsdesk._REQCOM);
                }
                return;
              default:
                Newsdesk.Client._ACTIVEXHR+=3;
                var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("main", t.responseText, true, {auto:true}) }}, 'reqArea=main&NDglobalArea=config&NDinteriorArea=user' + '&' + Newsdesk._REQCOM);
                var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true}) }}, 'reqArea=navi&NDglobalArea=config&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
                var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer&NDglobalArea=config&NDinteriorArea=user' + '&' + Newsdesk._REQCOM);
                return;
            }
            return;
          default:
            var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.show("navi", t.responseText) }}, 'reqArea=navi&NDglobalArea=config&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
            var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.show("main", t.responseText, true) }}, 'reqArea=main&NDglobalArea=config&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
            YAHOO.util.Dom.removeClass("footer", "XL");
            var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.GUI.show("footer", t.responseText) }}, 'reqArea=footer&NDglobalArea=config&NDinteriorArea=default' + '&' + Newsdesk._REQCOM);
            return;
        }
        return;
      case 'newsletter': // Newsletterabbonnenten aufnehmen
        switch($sInteriorArea) {
          default:
            Newsdesk.Client._ACTIVEXHR+=3;
            var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("main", t.responseText, true, {auto:true}) }}, 'reqArea=main&NDglobalArea=newsletter' + '&' + Newsdesk._REQCOM);
            var $request2 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("navi", t.responseText, true, {auto:true}) }}, 'reqArea=navi&NDglobalArea=newsletter' + '&' + Newsdesk._REQCOM);
            var $request3 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.ajaxget, {success: function(t){ Newsdesk.Client._ACTIVEXHR--; Newsdesk.GUI.show("footer", t.responseText, true, {auto:true}) }}, 'reqArea=footer&NDglobalArea=newsletter' + '&' + Newsdesk._REQCOM);
            return;
        }
        return;
      default: // was auch immer
        this.freeGui();
        return;
    }
  },
  show: function($sId, $sContent, $bFreeGui, $oParams) {
    if (YAHOO.lang.trim($sContent) == 'Newsdesk.GUI.loggedIn = true;') {
      eval($sContent);
      Newsdesk.GUI.get('global', null, null, null);
      Newsdesk.GUI.get('user', null, null, null);
      Newsdesk.GUI.get('search', null, null, null);
      if ($bFreeGui === true) {
        this.freeGui();
      }
      return;
    }

    // neuen Content einbauen
    YAHOO.util.Dom.get($sId).innerHTML = $sContent;

    // Höhe neu berechnen
    Newsdesk.Layout.calcLayout();

    // ggf. an scrollTop umsetzen
    if ($oParams != null) {
      if ($oParams.scrollTop != null) {
         YAHOO.util.Dom.get($sId+"scroll").scrollTop = $oParams.scrollTop;
      }
    }

    if ($bFreeGui === true) {
      if ($oParams != null) {
        if ($oParams.auto === true) {
          this.freeGuiAuto();
        } else {
          this.freeGui();
        }
      } else {
        this.freeGui();
      }
    }

  },
  showtab: function($sArea, $sPart) {
    // highlight tab
    var $sTmpId;
    // wir setzen class="active" im id="global"-div dort, wo es hin muss
    if ($sArea === 'rss') {
      for (var $i=0;$i<this.idstruct.rsstabs.length;$i++) {
        $sTmpId = this.idstruct.rsstabs[$i];
        if ($sTmpId == $sPart) {
          // update navi-part
          Newsdesk.GUI.get('rss','direct','navi',{tab:($i+1)});
          // update Client's Variable Newsdesk._ACTTAB
          Newsdesk._ACTRSSTAB = $i + 1;
          // update Server's Window Session Variable NDCache.showTab
          // for msie6, there is a bug with the tab display switching!?!
          if (YAHOO.env.ua.ie != 6) {
            Newsdesk.GUI.lock();
          }
          var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.setter, {success: function(t){ Newsdesk.GUI.freeGui();}}, 'showTabRSS=' + ($i+1) + '&' + Newsdesk._REQCOM);

          YAHOO.util.Dom.addClass($sPart, "active");
          YAHOO.util.Dom.setStyle($sPart+"_main","display","block");
          YAHOO.util.Dom.get("mainhead").getElementsByTagName("div")[0].innerHTML = this.contentstruct.rsstabs[$i];
        } else {
          YAHOO.util.Dom.removeClass($sTmpId, "active");
          YAHOO.util.Dom.setStyle($sTmpId+"_main","display","none");
        }
      }
    } else if ($sArea === 'rssShowOnly') {
      for (var $i=0;$i<this.idstruct.rsstabs.length;$i++) {
        $sTmpId = this.idstruct.rsstabs[$i];
        if ($sTmpId == $sPart) {
          // update Client's Variable Newsdesk._ACTTAB
          Newsdesk._ACTRSSTAB = $i + 1;
          // update Server's Window Session Variable NDCache.showTab
          // for msie6, there is a bug with the tab display switching!?!
          if (YAHOO.env.ua.ie != 6) {
            Newsdesk.GUI.lock();
          }
          var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.setter, {success: function(t){ Newsdesk.GUI.freeGui();}}, 'showTabRSS=' + ($i+1) + '&' + Newsdesk._REQCOM);

          YAHOO.util.Dom.addClass($sPart, "active");
          YAHOO.util.Dom.setStyle($sPart+"_main","display","block");
          YAHOO.util.Dom.get("mainhead").getElementsByTagName("div")[0].innerHTML = this.contentstruct.rsstabs[$i];
        } else {
          YAHOO.util.Dom.removeClass($sTmpId, "active");
          YAHOO.util.Dom.setStyle($sTmpId+"_main","display","none");
        }
      }
    } else if ($sArea === 'news') {
      for (var $i=0;$i<this.idstruct.newstabs.length;$i++) {
        $sTmpId = this.idstruct.newstabs[$i];
        if ($sTmpId == $sPart) {
          // update Client's Variable Newsdesk._ACTTAB
          Newsdesk._ACTTAB = $i + 1;
          // update Server's Window Session Variable NDCache.showTab
          // for msie6, there is a bug with the tab display switching!?!
          if (YAHOO.env.ua.ie != 6) {
            Newsdesk.GUI.lock();
          }
          var $request1 = YAHOO.util.Connect.asyncRequest('POST', Newsdesk.Config.requestURI.setter, {success: function(t){ Newsdesk.GUI.freeGui();}}, 'showTab=' + ($i+1) + '&' + Newsdesk._REQCOM);

          YAHOO.util.Dom.addClass($sPart, "active");
          YAHOO.util.Dom.setStyle($sPart+"_main","display","block");
          YAHOO.util.Dom.get("mainhead").getElementsByTagName("div")[0].innerHTML = this.contentstruct.newstabs[$i];
          } else {
          YAHOO.util.Dom.removeClass($sTmpId, "active");
          YAHOO.util.Dom.setStyle($sTmpId+"_main","display","none");
        }
      }
    }
  },
  showWidget: function($oObject, $elInputField) {
    if ($oObject == Newsdesk.Client.objects.calendar) {
      var $usedDateString = "";
      var $usedPageDate = ""; // MM.JJJJ
      var $aInputFieldValue;
      Newsdesk.Client.objects.actCalendarField = $elInputField;
      if (Newsdesk.Client.objects.actCalendarField.value != '') {
        $aInputFieldValue = Newsdesk.Client.objects.actCalendarField.value.match(/^\d\d.(\d\d.\d\d\d\d)$/);
        if ($aInputFieldValue != null) {
          $usedDateString = $aInputFieldValue[0];
          $usedPageDate = $aInputFieldValue[1];
        }
      }

      YAHOO.util.Dom.setStyle(Newsdesk.Client.objects.actCalendarDD,"left",YAHOO.util.Dom.getX(Newsdesk.Client.objects.actCalendarField) + 1 + "px");
      YAHOO.util.Dom.setStyle(Newsdesk.Client.objects.actCalendarDD,"top",YAHOO.util.Dom.getY(Newsdesk.Client.objects.actCalendarField) + 23 + "px");

      Newsdesk.Client.objects.calendar.cfg.setProperty("pagedate", $usedPageDate);
      Newsdesk.Client.objects.calendar.cfg.setProperty("selected", $usedDateString);

      Newsdesk.Client.objects.calendar.render();
      Newsdesk.Client.objects.calendar.show();
    }
  },
  clear: function($sId, $sContent, $bFreeGui, $oParams) {
    if ($sId === "footer") {
      YAHOO.util.Dom.get($sId).innerHTML = '<div class="footerLeft"></div><div class="footerRight"></div>';
    }
  },
  handleCalendarSelect: function($sType, $aArgs, $oObject) {
    var $dates = $aArgs[0];
    var $date = $dates[0];
    var $year = $date[0], $month = $date[1], $day = $date[2];
    var $txtDate = (($day < 10) ? "0"+$day : $day) + "." + (($month < 10) ? "0"+$month : $month) + "." + $year;
    Newsdesk.log($txtDate);
    Newsdesk.Client.objects.actCalendarField.value = $txtDate;
    Newsdesk.Client.objects.calendar.hide();
  },
  checkBoxes: function($bChecked, $sIdStringBeginning) {
    var $aAllCheckboxes = [];
    var $aAllInputs = document.getElementsByTagName("input");

    for (var $i=0;$i<$aAllInputs.length;$i++) {
      if ($aAllInputs[$i].type == 'checkbox') {
        $aAllCheckboxes.push($aAllInputs[$i]);
      }
    }

    for ($i=0;$i<$aAllCheckboxes.length;$i++) {
      if ($aAllCheckboxes[$i].id.indexOf($sIdStringBeginning) == 0) {
        $aAllCheckboxes[$i].checked = $bChecked;
      }
    }
  },
  checkIsChecked: function($sIdStringBeginning) {
    var $bOneIsChecked = false;
    var $aAllCheckboxes = [];
    var $aAllInputs = document.getElementsByTagName("input");

    for (var $i=0;$i<$aAllInputs.length;$i++) {
      if ($aAllInputs[$i].type == 'checkbox' || $aAllInputs[$i].type == 'radio') {
        $aAllCheckboxes.push($aAllInputs[$i]);
      }
    }

    for ($i=0;$i<$aAllCheckboxes.length;$i++) {
      if ($aAllCheckboxes[$i].id.indexOf($sIdStringBeginning) == 0) {
        if ($aAllCheckboxes[$i].checked == true) {
          return true;
        }
      }
    }
    return $bOneIsChecked;
  },
  checkIsDate: function($sId) {
    var $toCheck = YAHOO.util.Dom.get($sId).value;
    if ($toCheck == "") {
      return "empty";
    } else if ($toCheck.search(/^\d\d\.\d\d\.\d\d\d\d$/) == -1) {
      return false;
    } else {
      var $aDateParts = $toCheck.split(".");
      return (Date.UTC($aDateParts[2],$aDateParts[1]-1,$aDateParts[0]) + Newsdesk._TZOMS);
    }
  },
  setSpecialStyle: function($sId, $sSpecialStyle, $sTitle) {
    if ($sSpecialStyle == 'inputerror') {
      YAHOO.util.Dom.setStyle($sId,"border-left","1px solid #CA0300");
      YAHOO.util.Dom.setStyle($sId,"border-top","1px solid #CC0003");
      YAHOO.util.Dom.setStyle($sId,"border-right","2px solid #990003");
      YAHOO.util.Dom.setStyle($sId,"border-bottom","2px solid #9A0002");
      YAHOO.util.Dom.setStyle($sId,"background-color","#FFCC66");
      YAHOO.util.Dom.setStyle($sId,"background-image","url(/newsdesk/img/icon_note.gif)");
      YAHOO.util.Dom.setStyle($sId,"background-repeat","no-repeat");
      YAHOO.util.Dom.setStyle($sId,"background-position","right top");
      if ($sTitle != null) {
        YAHOO.util.Dom.get($sId).setAttribute("title", $sTitle);
      }
    } else if ($sSpecialStyle == 'inputreset') {
      YAHOO.util.Dom.setStyle($sId,"border-left","1px solid #A9BCC5");
      YAHOO.util.Dom.setStyle($sId,"border-top","1px solid #A9BCC5");
      YAHOO.util.Dom.setStyle($sId,"border-right","1px solid #D4DDE2");
      YAHOO.util.Dom.setStyle($sId,"border-bottom","1px solid #D4DDE2");
      YAHOO.util.Dom.setStyle($sId,"background-color","#FFFFFF");
      YAHOO.util.Dom.setStyle($sId,"background-image","");
      if ($sTitle != null) {
        YAHOO.util.Dom.get($sId).setAttribute("title", $sTitle);
      }
    } else if ($sSpecialStyle == 'checkboxerror') {
      YAHOO.util.Dom.setStyle($sId,"border-left","1px solid #CA0300");
      YAHOO.util.Dom.setStyle($sId,"border-top","1px solid #CC0003");
      YAHOO.util.Dom.setStyle($sId,"border-right","2px solid #990003");
      YAHOO.util.Dom.setStyle($sId,"border-bottom","2px solid #9A0002");
      YAHOO.util.Dom.setStyle($sId,"background-color","#FFCC66");
      YAHOO.util.Dom.setStyle($sId,"background-image","url(/newsdesk/img/icon_note.gif)");
      YAHOO.util.Dom.setStyle($sId,"background-repeat","no-repeat");
      YAHOO.util.Dom.setStyle($sId,"background-position","right");
      YAHOO.util.Dom.setStyle($sId,"margin-bottom","6px");
      if ($sTitle != null) {
        YAHOO.util.Dom.get($sId).value = $sTitle;
        YAHOO.util.Dom.get($sId).setAttribute("title", $sTitle);
      }
      YAHOO.util.Dom.setStyle($sId,"display","inline");
    } else if ($sSpecialStyle == 'checkboxreset') {
      YAHOO.util.Dom.setStyle($sId,"border-left","1px solid #A9BCC5");
      YAHOO.util.Dom.setStyle($sId,"border-top","1px solid #A9BCC5");
      YAHOO.util.Dom.setStyle($sId,"border-right","1px solid #D4DDE2");
      YAHOO.util.Dom.setStyle($sId,"border-bottom","1px solid #D4DDE2");
      YAHOO.util.Dom.setStyle($sId,"background-color","#FFFFFF");
      YAHOO.util.Dom.setStyle($sId,"background-image","");
      YAHOO.util.Dom.setStyle($sId,"margin-bottom","0");
      if ($sTitle != null) {
        YAHOO.util.Dom.get($sId).value = $sTitle;
        YAHOO.util.Dom.get($sId).setAttribute("title", $sTitle);
      }
      YAHOO.util.Dom.setStyle($sId,"display","none");
    }
  },
  freeGui: function() {
    // Sanduhr-element wegschmeissen
    if (YAHOO.util.Dom.get("ajaxWait") != null) {
      document.getElementsByTagName("body")[0].removeChild(document.getElementById("ajaxWait"));
      Newsdesk.log("gui freed");
    }
    if (YAHOO.env.ua.ie == 6) {
      YAHOO.util.Dom.setStyle("body","display","block");
      YAHOO.util.Dom.setStyle("head","display","block");
    }
  },
  freeGuiAuto: function() {
    // Sanduhr-element wegschmeissen, wenn Newsdesk.Client._ACTIVEXHR wieder 0 ist
    if (YAHOO.util.Dom.get("ajaxWait") != null && Newsdesk.Client._ACTIVEXHR === 0) {
      document.getElementsByTagName("body")[0].removeChild(document.getElementById("ajaxWait"));
      Newsdesk.log("gui automatically freed");
      if (YAHOO.env.ua.ie == 6) {
      YAHOO.util.Dom.setStyle("body","display","block");
      YAHOO.util.Dom.setStyle("head","display","block");
      }
    } else if (YAHOO.util.Dom.get("ajaxWait") != null && Newsdesk.Client._ACTIVEXHR !== 0) {
      Newsdesk.log("gui not automatically freed, " + Newsdesk.Client._ACTIVEXHR + " requests pending");
    } else {
      Newsdesk.log("automatic gui freeing not necessary or possible");
      Newsdesk.log("Newsdesk.Client._ACTIVEXHR = " + Newsdesk.Client._ACTIVEXHR);
      Newsdesk.log("YAHOO.util.Dom.get(\"ajaxWait\")" + YAHOO.util.Dom.get("ajaxWait"));
    }
  }
}

Newsdesk.Layout = {
  variableNodes: ["mainscroll", "naviscroll", "sp_section_text"],
  variableNodesHeightDelta: [225,184,295],
  variableNodesHeightMin: [80,121,0],
  calcLayout: function() {
    var $nBody = document.getElementsByTagName("body")[0];
	  var $nMain = YAHOO.util.Dom.get("main");
    var $iViewportHeight = YAHOO.util.Dom.getViewportHeight();
    var $newHeight;
    for (var $i=0; $i < Newsdesk.Layout.variableNodes.length; $i++) {
      if ($iViewportHeight - Newsdesk.Layout.variableNodesHeightDelta[$i] >= 0) {
        if (YAHOO.util.Dom.get(Newsdesk.Layout.variableNodes[$i]) != null) {
          $newHeight = $iViewportHeight - Newsdesk.Layout.variableNodesHeightDelta[$i];
          if ($newHeight < Newsdesk.Layout.variableNodesHeightMin[$i]) {
            $newHeight = Newsdesk.Layout.variableNodesHeightMin[$i];
          }
          YAHOO.util.Dom.get(Newsdesk.Layout.variableNodes[$i]).style.height = $newHeight + "px";
        }
      }
    }
    $nBody.style.height = $iViewportHeight + "px";
  }
};

Newsdesk.init = function($sCalledAs) {
  // Layout-Überwachung
  YAHOO.util.Event.addListener(window, "resize", Newsdesk.Layout.calcLayout);
  Newsdesk.Layout.calcLayout();
  Newsdesk._PROGRANI[0] = new YAHOO.util.Anim(document.getElementById("progress_bar_scale"), {width: {from: 0, to: 55}}, 0.5);
  Newsdesk._PROGRANI[1] = new YAHOO.util.Anim(document.getElementById("progress_bar_scale"), {width: {from: 55, to: 110}}, 0.5);
  Newsdesk._PROGRANI[2] = new YAHOO.util.Anim(document.getElementById("progress_opac"), {opacity: {from: 0.01, to: 1}}, 3);

  // Customizing
  // Logo
  if (Newsdesk.GUI.server.NDCache.custom_logoUrl != null) {
    YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("logoClient"),"backgroundImage","url(" + Newsdesk.GUI.server.NDCache.custom_logoUrl + ")");
  }
  if ($sCalledAs !== "frame") {
    if (document.cookie) {
      Newsdesk.GUI.get('search');
    } else {
      alert("Der Newsdesk funktioniert nur mit Cookies und wurde deaktiviert.");
      Newsdesk.GUI.lock();
      YAHOO.util.Dom.setStyle("ajaxWait", "cursor", "auto");
    }
  }

  // testing
  Newsdesk.Client.createWidgets();
};

// Einige Funktionen müssen überschrieben werden!
IES.tags.spt.Iterator.iteratorAction = function($sAction, $sId, $sHtmlanchor, $sFormId) {
  Newsdesk.GUI.lock();
  // da dieser Teil nur 1 mal in der Seite ist, kann über die ListenVariable das FormObjekt gefunden werden.
  var $oFormObject = document.getElementById($sFormId);
  $oFormObject.SYS_INFE_action.value       = 'edit';
  $oFormObject.SYS_INFE_listAction.value   = $sAction;
  $oFormObject.SYS_INFE_listID.value       = $sId;
  $oFormObject.action                      += '#a_';
  $oFormObject.action                      += $sHtmlanchor;
  var $bHasUpload = Newsdesk.Extensions.formHasUpload($oFormObject);
  Newsdesk.log($bHasUpload);
  var $requestForm = YAHOO.util.Connect.setForm($oFormObject, $bHasUpload);
  var $request1 = YAHOO.util.Connect.asyncRequest(
    'POST',
    Newsdesk.Config.requestURI.article, {
      success: function(o) {
        Newsdesk.GUI.show('main', o.responseText, true, {
          "scrollTop":YAHOO.util.Dom.get("mainscroll").scrollTop});
        },
      upload: function(o) {
        Newsdesk.GUI.show('main', o.responseText, true, {
          "scrollTop":YAHOO.util.Dom.get("mainscroll").scrollTop});
      }
    });
}

/*
Newsdesk.IES.request = function($sCommandUrl, $sFormId, $oCallback) {
  var $oFormObject = YAHOO.util.Dom.get($sFormId);
  var $bHasUpload = Newsdesk.Extensions.formHasUpload($oFormObject);
  var $requestForm = YAHOO.util.Connect.setForm($oFormObject, $bHasUpload);
  var $request = YAHOO.util.Connect.asyncRequest(
    'POST',
    $sCommandUrl,
    $oCallback
  );
}

*/
