dieser seite muss übergeben werden:
    	Unterkunft PK_ID ($unterkunft_id)
    	Zimmer PK_ID ($zimmer_id)
    	Datum: $vonTag,$vonMonat,$vonJahr
    		   $bisTag,$bisMonat,$bisJahr			
    	
    	die seite verwendet anfrage/send.php um das ausgefüllte
    	formular zu versenden
    */
    //alle reservierungen im angegebenen zeitraum entfernen,
    //auch jene die diesen zeitraum "Überschneiden":
    $vonDatum = parseDateFormular($vonTag, $vonMonat, $vonJahr);
    $bisDatum = parseDateFormular($bisTag, $bisMonat, $bisJahr);
    //alle eintraege in diesem zeitraum löschen:
    deleteReservationWithDate($zimmer_id, $vonDatum, $bisDatum, $link);
    $resu = getChildRooms($zimmer_id);
    if (!empty($resu)) {
        while ($d = mysqli_fetch_array($resu)) {
            $child = $d['PK_ID'];
            deleteReservationWithDate($child, $vonDatum, $bisDatum, $link);
        }
    }
    include_once "../../templates/headerA.php";
    ?>
<style type="text/css">
<?php 
    include_once $root . "/templates/stylesheetsIE9.php";
    ?>
</style>
<?php 
    include_once "../../templates/headerB.php";
/**
 * @author coster
 * @date 30.9.06
 * Hilfsfunktionen für die Gesamtübersicht
*/
function printResAdmin($zimmer_id, $i, $month, $year, $saAktiviert, $link)
{
    global $unterkunft_id;
    if (getDayName($i, $month, $year) == "SA" && $saAktiviert) {
        $isSamstag = true;
    } else {
        $isSamstag = false;
    }
    $status = getStatus($zimmer_id, $i, $month, $year, $link);
    if (sizeof($status) < 1 && hasChildRooms($zimmer_id) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true") {
        //if room is a parent, check if the child has another status:
        $childs = getChildRooms($zimmer_id);
        while ($c = mysqli_fetch_array($childs)) {
            $child_zi_id = $c['PK_ID'];
            $status = getStatus($child_zi_id, $i, $month, $year, $link);
            if (sizeof($status) > 0) {
                break;
            }
        }
    }
    /////////////////////////////////////////////////////////
    //urlauberwechsel genau an diesem tag:
    /////////////////////////////////////////////////////////
    if (isset($status) && sizeof($status) > 1) {
        //an diesem tag ist ein urlauberwechsel:
        ?>
			<table border="0" cellspacing="0" cellpadding="0" width="100%">
				<tr>
					<td class="<?php 
        echo parseStatus($status[0], $isSamstag);
        ?>
" align="right" width="50%"></td>
					<td class="<?php 
        echo parseStatus($status[1], $isSamstag);
        ?>
" align="right" width="50%">&nbsp;</td>
				</tr>
			</table>
		<?php 
    } else {
        if (isset($status) && sizeof($status) == 1) {
            //schauen ob der letzte tag halb-frei ist:
            $nTag = $i + 1;
            $nMonat = $month;
            $nJahr = $year;
            $anzahlTage = getNumberOfDays($month, $year);
            if ($nTag > $anzahlTage) {
                $nTag = 1;
                $nMonat = $month + 1;
            }
            //ende if tag zu gross
            if ($nMonat > 12) {
                $nMonat = 1;
                $nJahr = $year + 1;
            }
            //ende if monat zu gross
            $nStatus = getStatus($zimmer_id, $nTag, $nMonat, $nJahr, $link);
            if (sizeof($nStatus) < 1 && hasChildRooms($zimmer_id) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true") {
                //if room is a parent, check if the child has another status:
                $childs = getChildRooms($zimmer_id);
                while ($c = mysqli_fetch_array($childs)) {
                    $child_zi_id = $c['PK_ID'];
                    $nStatus = getStatus($child_zi_id, $nTag, $nMonat, $nJahr, $link);
                    if (sizeof($nStatus) > 0) {
                        break;
                    }
                }
            }
            //if (!(isset($nStatus)) && isset($status)){
            if (sizeof($nStatus) == 0) {
                //am nächsten tag ist es frei:
                ?>
				<table border="0" cellspacing="0" cellpadding="0" width="100%">
					<tr>
						<td class="<?php 
                echo parseStatus($status[0], $isSamstag);
                ?>
" align="right" width="50%">&nbsp;</td>
						<td class="<?php 
                echo parseStatus(0, $isSamstag);
                ?>
" align="right" width="50%"></td>
					</tr>
				</table>
			<?php 
            } else {
                //schauen ob der tag vorher frei ist:
                $vTag = $i - 1;
                $vMonat = $month;
                $vJahr = $year;
                if ($vTag < 1) {
                    $vMonat = $month - 1;
                    if ($vMonat < 1) {
                        $vMonat = 12;
                        $vJahr = $year - 1;
                    }
                    //ende if monat zu klein
                    $vTag = getNumberOfDays($vMonat, $vJahr);
                }
                //ende if tag zu klein
                $vStatus = getStatus($zimmer_id, $vTag, $vMonat, $vJahr, $link);
                if (sizeof($vStatus) < 1 && hasChildRooms($zimmer_id) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true") {
                    //if room is a parent, check if the child has another status:
                    $childs = getChildRooms($zimmer_id);
                    while ($c = mysqli_fetch_array($childs)) {
                        $child_zi_id = $c['PK_ID'];
                        $vStatus = getStatus($child_zi_id, $vTag, $vMonat, $vJahr, $link);
                        if (sizeof($vStatus) > 0) {
                            break;
                        }
                    }
                }
                if (sizeof($vStatus) == 0) {
                    //am vorherigen tag ist es frei:
                    ?>
					<table border="0" cellspacing="0" cellpadding="0" width="100%">
						<tr>
							<td class="<?php 
                    echo parseStatus(0, $isSamstag);
                    ?>
" align="right" width="50%"></td>
							<td class="<?php 
                    echo parseStatus($status[0], $isSamstag);
                    ?>
" align="right" width="50%">&nbsp;</td>
						</tr>
					</table>
				<?php 
                } else {
                    ?>
&nbsp;<?php 
                }
            }
            //ende else schauen ob tag vorher frei
        } else {
            //tag ausgeben:
            ?>
&nbsp;<?php 
        }
    }
    //ende else tag ausgeben
}
function getFreieZimmer($unterkunft_id, $anzahlErwachsene, $anzahlKinder, $anzahlZimmer, $haustiere, $vonTag, $vonMonat, $vonJahr, $bisTag, $bisMonat, $bisJahr, $link)
{
    //leeres array erzeugen zum speichern der freien zimmer:
    $freieZimmer = array();
    //variable zum zaehlen der erwachsenenBetten, kinderBetten, freie zimmer
    $bettenErw = 0;
    $bettenKin = 0;
    $freieZi = 0;
    //reservierungs-funktionen einbinden:
    include_once "../include/reservierungFunctions.php";
    //zimmer-funktionen hinzufügen:
    include_once "../include/zimmerFunctions.php";
    //properties hinzufügen:
    include_once "../include/propertiesFunctions.php";
    //alle zimmer der unterkunft auslesen und prüfen ob es im angegebenen zeitraum noch frei ist:
    $query = "\n\t\t\tSELECT \n\t\t\tPK_ID\t\t\n\t\t\tFROM\n\t\t\tRezervi_Zimmer\n\t\t\tWHERE\n\t\t\tFK_Unterkunft_ID = '{$unterkunft_id}'\t\n\t\t\tORDER BY\n\t\t\tZimmernr\n\t\t";
    $res = mysqli_query($link, $query);
    while ($d = mysqli_fetch_array($res)) {
        //zimmer-id holen:
        $zi_id = $d["PK_ID"];
        //wenn die suche nach erwachsenen oder kindern nach zimmern gefiltert
        //werden soll (z. b. ferienhäuser nur mit bestimmter personenanzahl):
        //dont check it if the accomodation has rooms and subrooms:
        if (!hasParentRooms($unterkunft_id)) {
            if (getPropertyValue(SUCHFILTER_ZIMMER, $unterkunft_id, $link) == "true") {
                if ($anzahlErwachsene > -1) {
                    if (getBetten($unterkunft_id, $zi_id, $link) < $anzahlErwachsene) {
                        continue;
                    }
                }
                if ($anzahlKinder > -1) {
                    if (getBettenKinder($unterkunft_id, $zi_id, $link) < $anzahlKinder) {
                        continue;
                    }
                }
            }
        }
        if (!isRoomTaken($zi_id, $vonTag, $vonMonat, $vonJahr, $bisTag, $bisMonat, $bisJahr, $link)) {
            //zimmer ist noch frei - dem array hinzufügen:
            $freieZimmer[] = $zi_id;
            $freieZi++;
            //zaehlen wie viele erwachsene und kinder platz haben:
            $bettenErw = $bettenErw + getBetten($unterkunft_id, $zi_id, $link);
            //echo("anzahlBetten insgesamt Erw =".$bettenErw."<br/>");
            $bettenKin = $bettenKin + getBettenKinder($unterkunft_id, $zi_id, $link);
            //echo("anzahlBetten insgesamt Kin =".$bettenKin."<br/>");
        }
    }
    if ($anzahlErwachsene > -1) {
        //checken ob genug betten fuer erwachsene frei sind:
        if ($anzahlErwachsene > $bettenErw) {
            //es sind nicht genug betten fuer erwachsene frei!
            $freieZimmer[0] = -1;
        }
    }
    if ($anzahlKinder > -1) {
        //wieviele betten sind noch frei wenn ich die erwachsenen reingelegt habe?
        if ($anzahlErwachsene > -1) {
            $insgesamtBettenFrei = $bettenErw + $bettenKin - $anzahlErwachsene;
        } else {
            $insgesamtBettenFrei = $bettenErw + $bettenKin;
        }
        //checken ob genug betten fuer kinder frei sind:
        if ($anzahlKinder > $insgesamtBettenFrei) {
            //echo("nicht genug betten fuer kinder!<br/>");
            $freieZimmer[0] = -2;
        }
    }
    if ($anzahlZimmer > -1) {
        //checken ob genug zimmer insgesamt frei sind:
        if ($anzahlZimmer > $freieZi) {
            $freieZimmer[0] = -3;
        }
    }
    //check if a parent-child relation exists and remove the parent if the child is not free:
    $freeRooms = array();
    if (count($freieZimmer) > 0 && hasParentRooms($unterkunft_id) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true") {
        global $root;
        include_once $root . "/include/zimmerFunctions.php";
        foreach ($freieZimmer as $freeRoom) {
            $count = 0;
            $count2 = 0;
            //is the room a parent room?
            if (hasChildRooms($freeRoom)) {
                //the room is a parent room, check if ALL the children are free rooms
                $childs = getChildRooms($freeRoom);
                while ($c = mysqli_fetch_array($childs)) {
                    $count2++;
                    for ($i = 0; $i < count($freieZimmer); $i++) {
                        if ($freieZimmer[$i] == $c['PK_ID']) {
                            $count++;
                        }
                    }
                }
                if ($count == $count2) {
                    $freeRooms[] = $freeRoom;
                }
            } else {
                $freeRooms[] = $freeRoom;
            }
        }
    } else {
        if (count($freieZimmer) > 0 && hasParentRooms($unterkunft_id) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) != "true") {
            global $root;
            include_once $root . "/include/zimmerFunctions.php";
            include_once $root . "/include/reservierungFunctions.php";
            foreach ($freieZimmer as $freeRoom) {
                $count = 0;
                $count2 = 0;
                //is the room a parent room?
                if (hasChildRooms($freeRoom)) {
                    //the room is a parent room, check if ALL the children are occupied:
                    $childs = getChildRooms($freeRoom);
                    $allOcc = true;
                    while ($c = mysqli_fetch_array($childs)) {
                        $chid = $c['PK_ID'];
                        //if the child is not occupied -> set to false!
                        $taken = isRoomTaken($chid, $vonTag, $vonMonat, $vonJahr, $bisTag, $bisMonat, $bisJahr, $link);
                        if (!$taken) {
                            $allOcc = false;
                            break;
                        }
                    }
                    if (!$allOcc) {
                        $freeRooms[] = $freeRoom;
                    }
                } else {
                    $freeRooms[] = $freeRoom;
                }
            }
        } else {
            $freeRooms = $freieZimmer;
        }
    }
    //checken ob genug zimmer insgesamt frei sind:
    if (count($freeRooms) < 1) {
        $freeRooms[0] = -3;
    }
    return $freeRooms;
}
function insertAnfrage($zimmer_id, $gast_id, $vonTag, $vonMonat, $vonJahr, $bisTag, $bisMonat, $bisJahr, $status, $anzahlErwachsene, $anzahlKinder, $haustiere, $pension, $link)
{
    if ($vonMonat < 10 && strlen($vonMonat) <= 1) {
        $vonMonat = "0" . $vonMonat;
    }
    if ($bisMonat < 10 && strlen($bisMonat) <= 1) {
        $bisMonat = "0" . $bisMonat;
    }
    if ($vonTag < 10 && strlen($vonTag) <= 1) {
        $vonTag = "0" . $vonTag;
    }
    if ($bisTag < 10 && strlen($bisTag) <= 1) {
        $bisTag = "0" . $bisTag;
    }
    $vonDatum = $vonJahr . "-" . $vonMonat . "-" . $vonTag;
    $bisDatum = $bisJahr . "-" . $bisMonat . "-" . $bisTag;
    //get the current timestamp in mysql format:
    $timestamp = generateMySqlTimestamp();
    //daten eintragen:
    $query = "insert into \n\t\t\t\tRezervi_Reservierung\n\t\t\t\t(FK_Zimmer_ID,FK_Gast_ID,Datum_von,Datum_bis,Status,Erwachsene,Kinder,Pension,ANFRAGEDATUM)\n\t\t\t\tVALUES\t\t\t\t\n\t\t\t\t('{$zimmer_id}','{$gast_id}','{$vonDatum}','{$bisDatum}','{$status}','{$anzahlErwachsene}','{$anzahlKinder}','{$pension}','{$timestamp}')\n\t\t   \t  ";
    $res = mysqli_query($link, $query);
    if (!$res) {
        echo "die Anfrage {$query} scheitert";
    }
    //also insert reservations of child rooms, if exists:
    global $root;
    include_once $root . '/include/zimmerFunctions.php';
    $res = getChildRooms($zimmer_id);
    if (!empty($res)) {
        while ($d = mysqli_fetch_array($res)) {
            insertAnfrage($d['PK_ID'], $gast_id, $vonTag, $vonMonat, $vonJahr, $bisTag, $bisMonat, $bisJahr, $status, $anzahlErwachsene, $anzahlKinder, $haustiere, $pension, $link);
        }
    }
}
		</tr>
	</table>
	<?php 
} else {
    //zuerst mal prüfen ob datum und so passt:
    //variableninitialisierungen:
    $datumVon = parseDateFormular($vonTag, $vonMonat, $vonJahr);
    $datumBis = parseDateFormular($bisTag, $bisMonat, $bisJahr);
    //wenn nicht ok:
    //1. zimmer ist zu dieser zeit belegt:
    $taken = false;
    if (!isset($zimmer_ids)) {
        $taken = isRoomTaken($zimmer_id, $vonTag, $vonMonat, $vonJahr, $bisTag, $bisMonat, $bisJahr, $link);
        //if the room is a parent room, check if the child rooms are taken:
        if (!$taken && hasChildRooms($zimmer_id)) {
            $childs = getChildRooms($zimmer_id);
            while ($c = mysqli_fetch_array($childs)) {
                $child_zi_id = $c['PK_ID'];
                $taken = isRoomTaken($child_zi_id, $vonTag, $vonMonat, $vonJahr, $bisTag, $bisMonat, $bisJahr, $link);
                if ($taken) {
                    break;
                }
            }
        }
    }
    if ($taken) {
        ?>
	<table border="0" cellpadding="0" cellspacing="0" class="tableColor">
	  <tr>
	    <td><p class="standardSchriftBold"><?php 
        echo getUebersetzung("Zu dieser Zeit ist es belegt!", $sprache, $link);
function showMonth($month, $year, $unterkunft_id, $zimmer_id, $sprache, $saAktiviert, $link)
{
    //anzahl der tage des monats:
    $anzahlTage = getNumberOfDays($month, $year);
    ?>

    <?php 
    for ($i = 1; $i <= $anzahlTage; $i++) {
        $res_id = getReservierungID($zimmer_id, $i, $month, $year, $link);
        $statusString = getStatusString($zimmer_id, $i, $month, $year, $saAktiviert, $link);
        $gast_id = -1;
        ?>
        <div class="row">
            <!-- wochentag anzeigen -->
            <div class="col-sm-1">
                <label class="control-label">
                    <?php 
        echo getUebersetzung(getDayName($i, $month, $year), $sprache, $link);
        ?>
                </label>
            </div>
            <!-- datum anzeigen -->
            <div class="col-sm-1 <?php 
        echo $statusString;
        ?>
">
                <label class="control-label">
                    <?php 
        printResAdmin($zimmer_id, $i, $month, $year, $saAktiviert, $link);
        ?>
                </label>
            </div>
            <!-- gast anzeigen -->
            <div class="col-sm-3">
                <?php 
        if ($statusString != "frei") {
            ?>
                    <?php 
            //gast-id auslesen:
            //$gast_id = getReservierungGastID($zimmer_id,$i,$month,$year,$link);
            $gast_ids = getReservierungGastIDs($zimmer_id, $i, $month, $year, $link);
            while ($h = mysqli_fetch_array($gast_ids)) {
                $gast_id = $h["FK_Gast_ID"];
                //if child rooms available, check also childs:
                if (($gast_id == 1 || empty($gast_id)) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true" && hasChildRooms($zimmer_id)) {
                    //if room is a parent, check if the child has another status:
                    $childs = getChildRooms($zimmer_id);
                    while ($c = mysqli_fetch_array($childs)) {
                        $child_zi_id = $c['PK_ID'];
                        $gast_id = getReservierungGastID($child_zi_id, $i, $month, $year, $link);
                        if ($gast_id != 1 && $gast_id != "") {
                            break;
                        }
                    }
                }
                //gast-namen ausgeben:
                if ($gast_id != 1 && $gast_id != "") {
                    ?>
                            <a href="./gastInfo/index.php?gast_id=<?php 
                    echo $gast_id;
                    ?>
&zimmer_id=<?php 
                    echo $zimmer_id;
                    ?>
&jahr=<?php 
                    echo $year;
                    ?>
&monat=<?php 
                    echo $month;
                    ?>
">
                            <?php 
                    echo getGuestNachname($gast_id, $link);
                    ?>
                            </a>
                            <?php 
                    echo ", ";
                    echo getGuestOrt($gast_id, $link);
                    echo ", EW " . getErwachsene($res_id, $link) . ", K " . getKinder($res_id, $link) . ", " . getPension($res_id, $link);
                } else {
                    if ($gast_id == "") {
                    } else {
                        echo getUebersetzung("anonymer Gast", $sprache, $link);
                    }
                }
            }
            //ende while gast ids
        } else {
            echo "&nbsp;";
        }
        ?>
            </div>
        </div>
    <?php 
    }
    //ende for
    ?>
    <?php 
}
function printResAdminAJAX($zimmer_id, $i, $month, $year, $saAktiviert, $link, $unterkunft_id)
{
    //global $unterkunft_id;
    $response = "";
    $status = getStatus($zimmer_id, $i, $month, $year, $link);
    if (sizeof($status) < 1 && hasChildRooms($zimmer_id) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true") {
        //if room is a parent, check if the child has another status:
        $childs = getChildRooms($zimmer_id);
        while ($c = mysqli_fetch_array($childs)) {
            $child_zi_id = $c['PK_ID'];
            $status = getStatus($child_zi_id, $i, $month, $year, $link);
            if (sizeof($status) > 0) {
                break;
            }
        }
    }
    if (getDayName($i, $month, $year) == "SA" && $saAktiviert) {
        $isSamstag = true;
    } else {
        $isSamstag = false;
    }
    if (isset($status) && sizeof($status) > 1) {
        //an diesem tag ist ein urlauberwechsel:
        $response .= "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">";
        $response .= "<tr>";
        $response .= "<td class=\"" . parseStatus($status[0], $isSamstag) . "\" align=\"right\" width=\"50%\">";
        $response .= $i;
        $response .= "</td>";
        $response .= "<td class=\"" . parseStatus($status[1], $isSamstag) . "\" align=\"right\" width=\"50%\">&nbsp;";
        $response .= "</td>";
        $response .= "</tr>";
        $response .= "</table>";
    } else {
        if (isset($status) && sizeof($status) == 1) {
            //schauen ob der letzte tag halb-frei ist:
            $nTag = $i + 1;
            $nMonat = $month;
            $nJahr = $year;
            $anzahlTage = getNumberOfDays($month, $year);
            if ($nTag > $anzahlTage) {
                $nTag = 1;
                $nMonat = $month + 1;
            }
            //ende if tag zu gross
            if ($nMonat > 12) {
                $nMonat = 1;
                $nJahr = $year + 1;
            }
            //ende if monat zu gross
            $nStatus = getStatus($zimmer_id, $nTag, $nMonat, $nJahr, $link);
            //echo("nächster Tag: ");var_dump($nStatus);
            if (sizeof($nStatus) < 1 && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true" && hasChildRooms($zimmer_id)) {
                //if room is a parent, check if the child has another status:
                $childs = getChildRooms($zimmer_id);
                while ($c = mysqli_fetch_array($childs)) {
                    $child_zi_id = $c['PK_ID'];
                    $nStatus = getStatus($child_zi_id, $nTag, $nMonat, $nJahr, $link);
                    if (sizeof($nStatus) > 0) {
                        break;
                    }
                }
            }
            if (sizeof($nStatus) == 0) {
                $response .= "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">";
                $response .= "<tr>";
                $response .= "<td class=\"" . parseStatus($status[0], $isSamstag) . "\" align=\"right\" width=\"50%\">";
                $response .= "</td>";
                $response .= "<td class=\"frei\" align=\"right\" width=\"50%\">&nbsp;";
                $response .= $i;
                $response .= "</td>";
                $response .= "</tr>";
                $response .= "</table>";
            } else {
                //schauen ob der tag vorher frei ist:
                $vTag = $i - 1;
                $vMonat = $month;
                $vJahr = $year;
                if ($vTag < 1) {
                    $vMonat = $month - 1;
                    if ($vMonat < 1) {
                        $vMonat = 12;
                        $vJahr = $year - 1;
                    }
                    //ende if monat zu klein
                    $vTag = getNumberOfDays($vMonat, $vJahr);
                }
                //ende if tag zu klein
                $vStatus = getStatus($zimmer_id, $vTag, $vMonat, $vJahr, $link);
                if (sizeof($vStatus) < 1 && hasChildRooms($zimmer_id) && getPropertyValue(RES_HOUSE, $unterkunft_id, $link) == "true") {
                    //if room is a parent, check if the child has another status:
                    $childs = getChildRooms($zimmer_id);
                    while ($c = mysqli_fetch_array($childs)) {
                        $child_zi_id = $c['PK_ID'];
                        $vStatus = getStatus($child_zi_id, $vTag, $vMonat, $vJahr, $link);
                        if (sizeof($vStatus) > 0) {
                            break;
                        }
                    }
                }
                if (sizeof($vStatus) == 0) {
                    //am vorherigen tag ist es frei:
                    $response .= "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\">";
                    $response .= "<tr>";
                    $response .= "<td class=\"frei\" align=\"right\" width=\"50%\">";
                    $response .= $i;
                    $response .= "</td>";
                    $response .= "<td class=\"" . parseStatus($status[0], $isSamstag) . "\" align=\"right\" width=\"50%\">&nbsp;";
                    $response .= "</td>";
                    $response .= "</tr>";
                    $response .= "</table>";
                } else {
                    $response .= $i;
                }
            }
            //ende else schauen ob tag vorher frei
        } else {
            //tag ausgeben:
            $response .= $i;
        }
    }
    //ende else tag ausgeben
    return $response;
}