/**
  *  Zeigt das gesamte Panel an
  */
 function show()
 {
     $this->CONTENT->setWidth($this->WIDTH - 8 * $this->PANELTITELRIGHTWIDTH);
     //---------------------------------------------------
     // Inhalt
     //---------------------------------------------------
     $cont = new Div();
     $cont->setBorder(1);
     $cont->setWidth($this->WIDTH - 2 * $this->PANELTITELRIGHTWIDTH);
     if ($this->HEIGHT > 0) {
         $cont->setHeight($this->HEIGHT - $this->PANELTITELHEIGHT);
     }
     $cont->setOverflow("auto");
     $cont->setStyle("background-color", $this->BGCOLOR);
     $cont->setStyle("border-style", "solid");
     $cont->setStyle("border-top", "1px");
     $cont->setStyle("border-left", "1px");
     $cont->setStyle("border-right", "2px");
     $cont->setStyle("border-bottom", "2px");
     $cont->setStyle("border-color", $_SESSION['config']->COLORS['text']);
     $cont->add($this->CONTENT);
     //---------------------------------------------------
     $tb = new Table(array(""));
     $rH = $tb->createRow();
     $rH->setAlign("center");
     $rH->setBackgroundColor($_SESSION['config']->COLORS['text']);
     $rH->setFontType($_SESSION['config']->COLORS['text']);
     $rH->setAttribute(0, $this->NAME);
     $tb->addRow($rH);
     $rC = $tb->createRow();
     $rC->setAlign("center");
     $rC->setAttribute(0, $cont);
     $tb->addRow($rC);
     return $tb;
 }
 private function getTypeChooseDialog()
 {
     $sensorWertOption = new Div("createSensorWert", 250, 40);
     $sensorWertOption->setToolTip("Sensoren die einen Messwert liefern<br><br>z.b. <br>- Helligkeitssensor<br>- Temperatursensor<br>- Abstandssensor");
     $sensorStatusOption = new Div("createSensorStatus", 250, 40);
     $sensorStatusOption->setToolTip("Sensoren die nur 1 oder 0 als Wert liefern<br><br>z.b. <br>- Bewegungsmelder<br>- Regensensor<br>- Lichtschranke");
     $zeitOption = new Div("createZeit", 250, 40);
     $wochentagOption = new Div("createWochentag", 250, 40);
     $sensorWertOption->setStyle("line-height", "40px");
     $sensorStatusOption->setStyle("line-height", "40px");
     $zeitOption->setStyle("line-height", "40px");
     $wochentagOption->setStyle("line-height", "40px");
     $sensorWertOption->setAlign("center");
     $sensorWertOption->setVAlign("middle");
     $sensorStatusOption->setAlign("center");
     $sensorStatusOption->setVAlign("middle");
     $zeitOption->setAlign("center");
     $zeitOption->setVAlign("middle");
     $wochentagOption->setAlign("center");
     $wochentagOption->setVAlign("middle");
     $sensorWertOption->add(new Text("Sensor Wert", 4, true));
     $sensorStatusOption->add(new Text("Sensor Status", 4, true));
     $zeitOption->add(new Text("Uhrzeit", 4, true));
     $wochentagOption->add(new Text("Wochentag", 4, true));
     $sensorWertOption->setBackgroundColor($_SESSION['config']->COLORS['button_background']);
     $sensorStatusOption->setBackgroundColor($_SESSION['config']->COLORS['button_background']);
     $zeitOption->setBackgroundColor($_SESSION['config']->COLORS['button_background']);
     $wochentagOption->setBackgroundColor($_SESSION['config']->COLORS['button_background']);
     $sensorWertLink = new Link("?createSensorWert=ok" . ($this->URL_PARAMS != "" ? "&" . $this->URL_PARAMS : "") . "#createSensorWert", $sensorWertOption, false, "", "", true, false);
     $sensorStatusLink = new Link("?createSensorStatus=ok" . ($this->URL_PARAMS != "" ? "&" . $this->URL_PARAMS : "") . "#createSensorStatus", $sensorStatusOption, false, "", "", true, false);
     $zeitLink = new Link("?createZeit=ok" . ($this->URL_PARAMS != "" ? "&" . $this->URL_PARAMS : "") . "#createZeit", $zeitOption, false, "", "", true, false);
     $wochentagLink = new Link("?createWochentag=ok" . ($this->URL_PARAMS != "" ? "&" . $this->URL_PARAMS : "") . "#createWochentag", $wochentagOption, false, "", "", true, false);
     $t = new Table(array("", "", ""));
     $t->setColSizes(array(null, 5, null));
     $t->setAlignments(array("center", "center", "center"));
     $r = $t->createRow();
     $r->setSpawnAll(true);
     $r->setAttribute(0, new Title("Art der neuen Bedingung auswaehlen", true, 4));
     $t->addRow($r);
     $t->addSpacer(0, 5);
     $r1 = $t->createRow();
     $r1->setAttribute(0, $sensorStatusLink);
     $r1->setAttribute(1, "");
     $r1->setAttribute(2, $sensorWertLink);
     $t->addRow($r1);
     $t->addSpacer(0, 5);
     $r2 = $t->createRow();
     $r2->setAttribute(0, $zeitLink);
     $r2->setAttribute(1, "");
     $r2->setAttribute(2, $wochentagLink);
     $t->addRow($r2);
     return $t;
 }
 function getMobileSwitch()
 {
     $tbl = new Table(array("", "", "", ""));
     $tbl->setAlignments(array("center", "left", "left", "right"));
     $tbl->setColSizes(array(60, "", 170, 150));
     $tbl->setBorder(0);
     $rowTtl = $tbl->createRow();
     $rowTtl->setVAlign("middle");
     $txtAn = new Text("AN", 7, true);
     $txtAus = new Text("AUS", 7, true);
     $divAn = new Div();
     $divAn->add($txtAn);
     $divAn->setWidth(150);
     $divAn->setHeight(50);
     $divAn->setAlign("center");
     $divAn->setVAlign("middle");
     $divAn->setStyle("line-height", "50px");
     $divAn->setBorder(1);
     $divAn->setBackgroundColor("green");
     $divAus = new Div();
     $divAus->setWidth(150);
     $divAus->setHeight(50);
     $divAus->setAlign("center");
     $divAus->setVAlign("middle");
     $divAus->setStyle("line-height", "50px");
     $divAus->add($txtAus);
     $divAus->setBorder(1);
     $divAus->setBackgroundColor("red");
     $txtName = new Text($this->OBJNAME, 6, true);
     $img = $this->getControlArtIcon(false);
     $lnkAn = new Link("http://" . $this->IP . "?schalte=on", $divAn, false, "arduinoSwitch");
     $lnkAus = new Link("http://" . $this->IP . "?schalte=-" . $this->FUNK_ID, $divAus, false, "arduinoSwitch");
     $rowTtl->setAttribute(0, $img);
     $rowTtl->setAttribute(1, $txtName);
     $rowTtl->setAttribute(2, $lnkAn);
     $rowTtl->setAttribute(3, $lnkAus);
     $tbl->addRow($rowTtl);
     return $tbl;
 }
$layoutTable->setWidth(820);
$layoutTable->setHeight(400);
$layoutTable->setAlign("left");
$layoutTable->setBORDER(0);
$layoutTable->setBackgroundColor($_SESSION['config']->COLORS['panel_background']);
$layoutTable->setSpacing(0);
$layoutTable->setPadding(0);
/* ------------------------------------
     HAUPT-MENU
   ------------------------------------ */
$menuDiv = new Div();
$menuDiv->setWidth(810);
$menuDiv->setBorder(0);
$menuDiv->setOverflow("hidden");
$menuDiv->setAlign("center");
$menuDiv->setStyle("padding-left", "2px");
$spc = new Text(" | ");
$menu = new DbMenu("Hauptmenue");
$menu->setAlign("center");
$menu->setFontsize(3);
$menu->setMenuType("horizontal");
$menuDiv->add($menu);
$contentLayoutRow1 = $layoutTable->createRow();
$contentLayoutRow1->setAttribute(0, $menuDiv);
$layoutTable->addRow($contentLayoutRow1);
/* --------------------------------- */
/* ------------------------------------
     HAUPTPANEL
   ------------------------------------ */
$MainPanel = new Div();
$MainPanel->setBorder(0);
$rMenu->setAttribute(0, $menuDiv);
$rMenu->setAttribute(1, $fMode);
$tblMenu->addRow($rMenu);
$layoutTable->addSpacer(0, 15);
$contentLayoutRow1 = $layoutTable->createRow();
$contentLayoutRow1->setAttribute(0, $tblMenu);
$layoutTable->addRow($contentLayoutRow1);
/* --------------------------------- */
/* ------------------------------------
HAUPTPANEL
------------------------------------ */
$MainPanel = new Div();
$MainPanel->setBackgroundColor($_SESSION['config']->COLORS['panel_background']);
$MainPanel->setWidth($bannerWidth + 12);
$MainPanel->setBorder(2);
$MainPanel->setStyle("padding", "0px 0px");
$MainPanel->setStyle("margin", "0px 0px");
$MainPanel->setStyle("overflow-x", "hidden");
$MainPanel->setStyle("overflow-y", "overflow");
$cont = new DivByInclude($_SESSION['mainpage'], false);
$cont->setWidth($mainWidth);
$cont->setStyle("overflow-y", "overflow");
$cont->setStyle("padding", "5px 6px");
$cont->setBackgroundColor($_SESSION['config']->COLORS['main_background']);
// Kopftexte und Nachrichten-Prüfung werden in DivByInclude  verwaltet
if (isset($_SESSION['MENU_PARENT']) && strlen($_SESSION['MENU_PARENT']) > 0) {
    $sql = "SELECT * FROM menu WHERE parent='" . $_SESSION['MENU_PARENT'] . "'";
    $rslt = $_SESSION['config']->DBCONNECT->executeQuery($sql);
    $menuHeight = 0;
    if (mysql_numrows($rslt) > 0) {
        $menuHeight = 50;
 function getMobileSwitch()
 {
     $tbl = new Table(array("", "", "", "", ""));
     $tbl->setAlignments(array("center", "left", "left", "left", "right"));
     $tbl->setColSizes(array(60, "", 100, 160, 150));
     $tbl->setBorder(0);
     $rowTtl = $tbl->createRow();
     $rowTtl->setVAlign("middle");
     $txtAn = new Text("AN", 7, true);
     $txtAus = new Text("AUS", 7, true);
     switch ($this->ART) {
         case 1:
             // Steckdosen
         // Steckdosen
         case 3:
             // Glühbirne
             $txtAn = new Text("AN", 7, true);
             $txtAus = new Text("AUS", 7, true);
             break;
         case 2:
             // Jalousien
             $txtAn = new Text("AUF", 7, true);
             $txtAus = new Text("ZU", 7, true);
             break;
         case 4:
             // Heizung
             $txtAn = new Text("WARM", 7, true);
             $txtAus = new Text("KALT", 7, true);
             break;
         default:
             $txtAn = new Text("AN", 7, true);
             $txtAus = new Text("AUS", 7, true);
     }
     $divAn = new Div();
     $divAn->add($txtAn);
     $divAn->setWidth(150);
     $divAn->setHeight(50);
     $divAn->setAlign("center");
     $divAn->setVAlign("middle");
     $divAn->setStyle("line-height", "50px");
     $divAn->setBorder(1);
     $divAn->setBackgroundColor("green");
     $divAn->setOverflow("hidden");
     $divAus = new Div();
     $divAus->setWidth(150);
     $divAus->setHeight(50);
     $divAus->setAlign("center");
     $divAus->setVAlign("middle");
     $divAus->setStyle("line-height", "50px");
     $divAus->add($txtAus);
     $divAus->setBorder(1);
     $divAus->setBackgroundColor("red");
     $divAus->setOverflow("hidden");
     $txtName = new Text($this->OBJNAME, 6, true);
     $img = $this->getControlArtIcon(false);
     $lnkAn = new Link("?switchShortcut=" . $this->FUNK_ID . "-on", $divAn, false, "arduinoSwitch");
     $lnkAus = new Link("?switchShortcut=" . $this->FUNK_ID . "-off", $divAus, false, "arduinoSwitch");
     $fDimmLvl = "";
     if ($this->isDimmable()) {
         $fDimmLvl = new Form();
         $cobDimmLvl = new Combobox("dimmer", getNumberComboArray(1, 16), "", " ");
         $cobDimmLvl->setDirectSelect(true);
         $cobDimmLvl->setStyle("font-size", "40px");
         $fDimmLvl->add($cobDimmLvl);
         $fDimmLvl->add(new Hiddenfield("schalte", $this->FUNK_ID));
     }
     $rowTtl->setAttribute(0, $img);
     $rowTtl->setAttribute(1, $txtName);
     $rowTtl->setAttribute(2, $fDimmLvl);
     $rowTtl->setAttribute(3, $lnkAn);
     $rowTtl->setAttribute(4, $lnkAus);
     $tbl->addRow($rowTtl);
     return $tbl;
 }
/* --------------------------------- */
/*            Untermenü              */
/* --------------------------------- */
if (isset($_SESSION['MENU_PARENT']) && strlen($_SESSION['MENU_PARENT']) > 0) {
    $sql = "SELECT * FROM menu WHERE parent='" . $_SESSION['MENU_PARENT'] . "'";
    $rslt = $_SESSION['config']->DBCONNECT->executeQuery($sql);
    $menuHeight = 0;
    if (mysql_numrows($rslt) > 0) {
        $menuHeight = 50;
        $_SESSION['additionalLayoutHeight'] = $_SESSION['additionalLayoutHeight'] + $menuHeight;
        $menuDiv = new Div();
        $menuDiv->setWidth("99%");
        $menuDiv->setHeight($menuHeight);
        $menuDiv->setBorder(0);
        $menuDiv->setAlign("left");
        $menuDiv->setStyle("padding", "0px 0px");
        $menu = new DbMenu("Hauptmenue");
        $menu->setAlign("center");
        $menu->setFontsize("5em");
        $menu->setMenuType("horizontal");
        $menuDiv->add($menu);
        $menuDiv->add(new Line(1, 6));
        $contentLayoutRow2 = $layoutTable->createRow();
        $contentLayoutRow2->setAttribute(0, $menuDiv);
        $layoutTable->addRow($contentLayoutRow2);
    }
}
/* --------------------------------- */
/* ------------------------------------
HAUPTPANEL
------------------------------------ */
 function showLogContent()
 {
     $div = new Div();
     $div->setWidth("100%");
     $div->setHeight("250");
     $div->setStyle("white-space", "nowrap");
     $output = array();
     $tmp = exec("tail -n " . $this->getLinesToShow() . " " . $this->getPath(), $output);
     foreach (array_reverse($output) as $out) {
         $tx = new Text($out . "<br>", 2, false, false, false, false);
         $div->add($tx);
     }
     $ln = new Line();
     $ln->show();
     $div->show();
     $ln->show();
 }
 function postHandleControlEdit($dbTable)
 {
     // Neuen Eintrag anlegen
     if (isset($_REQUEST['InsertNewControl']) && $_REQUEST['InsertNewControl'] == "do" && isset($_REQUEST['X']) && isset($_REQUEST['Y'])) {
         if (!(isset($_REQUEST['Name']) && isset($_REQUEST['FunkId']) && isset($_REQUEST['Art']))) {
             $mask = $this->getInsertMask($_REQUEST['X'], $_REQUEST['Y'] - $_SESSION['additionalLayoutHeight']);
             $mask->show();
             $dv = new Div();
             $dv->setVAlign("middle");
             $dv->setAlign("center");
             $dv->setBorder(3);
             $dv->setStyle("border-color", "#ff2200");
             $dv->setStyle("background-color", "#aacc00");
             $dv->setXPos($_REQUEST['X']);
             $dv->setYPos($_REQUEST['Y']);
             $dv->setWidth($this->CONTROL_IMAGE_WIDTH);
             $dv->setHeight($this->CONTROL_IMAGE_HEIGHT);
             $dv->add(new Text("Neu", 3, true, false, false, false));
             $dv->show();
         }
     }
     // Neuen Sensor anlegen
     if (isset($_REQUEST['InsertNewSensorControl']) && $_REQUEST['InsertNewSensorControl'] == "do") {
         if (!(isset($_REQUEST['name']) && isset($_REQUEST['id']) && isset($_REQUEST['sensor_art']))) {
             $mask = $this->getInsertSensorMask($_REQUEST['X'], $_REQUEST['Y'] - $_SESSION['additionalLayoutHeight']);
             $mask->show();
             $dv = new Div();
             $dv->setVAlign("middle");
             $dv->setAlign("center");
             $dv->setBorder(3);
             $dv->setStyle("border-color", "#ff2200");
             $dv->setStyle("background-color", "#aacc00");
             $dv->setXPos($_REQUEST['X']);
             $dv->setYPos($_REQUEST['Y']);
             $dv->setWidth($this->SENSOR_IMAGE_WIDTH);
             $dv->setHeight($this->SENSOR_IMAGE_HEIGHT);
             $dv->add(new Text("Neu", 2, true, false, false, false));
             $dv->show();
         }
     }
     // Existierenden Eintrag bearbeiten
     if (isset($_REQUEST['editControl']) && strlen($_REQUEST['editControl']) > 0) {
         if (!(isset($_REQUEST['RowId']) && isset($_REQUEST['Name']) && isset($_REQUEST['FunkId']) && isset($_REQUEST['Art']))) {
             $mask = $this->getEditMask($_REQUEST['editControl']);
             $mask->show();
         }
     }
     // Existierenden Eintrag bearbeiten
     if (isset($_REQUEST['editSensorControl']) && strlen($_REQUEST['editSensorControl']) > 0) {
         if (!(isset($_REQUEST['RowId']) && isset($_REQUEST['name']) && isset($_REQUEST['sensor_art']) && isset($_REQUEST['sensor_art']))) {
             $mask = $this->getEditSensorMask($_REQUEST['editSensorControl']);
             $mask->show();
         }
     }
 }