<?php
require 'includes/common.php';
require 'includes/database.php';
require 'includes/GuestbookEntry.class.php';
require 'includes/Guestbook.class.php';

$scripts = array(
                array('url' =>'http://maps.google.com/maps?file=api&amp;v=2.xx&amp;key=ABQIAAAAss81gk3RuX0_fNvtuRmZjxTN2Bax1SwLaW8MFBwtHzDiYPkwtRTYiKh3wElxORBZ23ZNrl61U5J9Dg', 'external'=>true),
                array('url' =>'/scripts/guestbook.js')
            );
$styles = array(
                array('url' => '/css/root.css')
          );

try {
    $guestBook = new Guestbook();
    $pendingEntry = new GuestbookEntry();
    if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'){
        if (isset($_POST['del']) && $_POST['del'] == 1){
            if (isset($_POST['passwd']) && $_POST['passwd'] == '******'){
                try {
                    $guestBook->deleteEntriesById($_POST['entryid']);
                    echo '1';
                }
                catch (Exception $e){
                    echo '0';
                }
            }
            else {
                echo '0';
            }
        }
        else {
            echo '0';
        }
    }
    else {
        if (count($_POST) > 0){
            if (isset($_POST['pendingEntryId'])){
                $pendingEntry = $guestBook->restorePendingEntry($_POST['pendingEntryId']);
            }
            else {
                $pendingEntry->setProperties($_POST);
            }

            if ($pendingEntry->validEntry()){
                if (isset($_POST['confirmedAdd']) && $_POST['confirmedAdd'] == 1){
                    if (isset($_POST['cancel'])){
                        $guestBook->removePendingEntry($_POST['pendingEntryId']);
                    }
                    else {
                        $guestBook->add($pendingEntry);
                        DoRedir($_SERVER['PHP_SELF']);
                    }
                }
                else {
                    $pendingId = $guestBook->addPendingEntry($pendingEntry);
                    displayTemplate('templates/header.tpl.php');
                    displayTemplate('templates/guestbook_confirmentry.tpl.php');
                    displayTemplate('templates/footer.tpl.php');
                }
            }
            else {
                $errorNotValid = true;
                $bookEntries = $guestBook->getEntries();
                displayTemplate('templates/header.tpl.php');
                displayTemplate('templates/guestbook.tpl.php');
                displayTemplate('templates/footer.tpl.php');
            }
        }
        else {
            $bookEntries = $guestBook->getEntries();
            $xmldata = '<?xml version="1.0"?><people>'."\n";
            foreach ($bookEntries as $e){
                if ($e->DontMap == false && $e->Lat !== null && $e->Lng !== null){
                    $xmldata .= '<guest name="'.rawurlencode($e->Name).'" lat="'.$e->Lat.'" lng="'.$e->Lng.'" location="'.rawurlencode($e->Location).'" time="'.$e->Time.'"><![CDATA[ '.$e->Comments.' ]]></guest>'."\n";
                }
            }
            $xmldata .= '</people>';
            $xmldata = addslashes(htmlentities($xmldata));
            $scripts[] = array('body'=>"var xmldata = '".str_replace(array("\r\n", "\r", "\n"), array("\n", "\n", "'+\n'"), $xmldata."';"));

            displayTemplate('templates/header.tpl.php');
            displayTemplate('templates/guestbook.tpl.php');
            displayTemplate('templates/footer.tpl.php');
        }
    }
}
catch (Exception $e){
    $file=__FILE__;
    $line=__LINE__;
    $ErrorMsg = 'Caught an exception while processing your request.  Please try again later.';
    LogError('Exception processing guestbook request.', $file, $line, $e);
    displayTemplate('templates/header.tpl.php');
    displayTemplate('templates/generic_error.tpl.php');
    displayTemplate('templates/footer.tpl.php');
}

?>