var rootPath = '/';
var fbID = 0;
var aID = 0;

function initializeFB() {
    
    // Initialisiere FB
    window.fbAsyncInit = function() {
        FB.init({appId: '127309457291486', status: true, cookie: true, xfbml: true});
    };
    (function() {
        var e = document.createElement('script');e.async = true;
        e.src = document.location.protocol +
        '//connect.facebook.net/de_DE/all.js#xfbml=1';
        document.getElementById('fb-root').appendChild(e);
    }());
    
}

function loadCalendar(date, todo) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();

    // Führe Ajax aus und aktualisiere den Kalender
    jQuery.post(
        rootPath + "php/classes/AjaxController.php?id=1&time="+time,
        {
            'date' : date,
            'todo' : todo
        },
        function(data) {

            // Überprüfe, ob etwas zurückkommt
            if(data != null) {

                // Entferne vorheriger Kalender
                $('#tblCalendar').remove();

                // Füge den Kalender nach dem NextEvent hinzu
                $('#tblNextEvent').after(data);

            }else {

                // Gib eine Fehlermeldung aus
                alert('Beim Versuch den Kalender zu laden ist ein Fehler aufgetreten');

            }
        }
    );

}

// ------------------------------ PageContent speichern ------------------------

function saveNewPageContent() {

    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var regex = '^[\\/?!+¦@#*°ç§%¬$£|¢()="´~^`\\]\\[\\{\\}_:;,\\.\\A-z0-9><\\s&;-]+$';
    var content = CKEDITOR.instances['ckPageEditor'].getData();
    var sitename = $('#txtSitename').val();
    var subname = $('#txtSubname').val();

    // Verstecke SaveButton
    $('#divSaveButton').css('display', 'none');

    // Zeige Waiting div an
    $('#divWaiting').css('display', 'block');

    // Überprüfe ob Textboxen einen gültigen Wert besitzen
    if(checkPageContentFieldRegex()) {

        // Textfelder enthalten einen gültigen Wert, überprüfe ContentFeld
        if(content.match(regex)) {

            // Sende Content
            jQuery.post(
                rootPath + "php/classes/AjaxController.php?id=2&time="+time,
                {
                    'sitename' : sitename,
                    'subname' : subname,
                    'content' : content
                },
                function(data) {

                    // Überprüfe, ob etwas zurückkommt
                    if(data != null && data == 'TRUE') {

                        // Zeige und Verstecke Elemente
                        hideShowFields(false, 'Der Inhalt konnte erfolgreich in der Datenbank gespeichert werden.');

                    }else if(data == 'EXISTS') {

                        // Zeige und Verstecke Elemente
                        hideShowFields(true, 'Es besteht bereits eine Seite mit dem angegebenen Seitennamen und dem Subnamen.');

                    }else {

                        // Zeige und Verstecke Elemente
                        hideShowFields(true, 'Es besteht bereits eine Seite mit dem angegebenen Seitennamen und dem Subnamen.');
                        
                    }
                }
            );
            
        }else{

            // Zeige und Verstecke Elemente
            hideShowFields(true, 'Der Inhalt verf&uuml;gt &uuml;ber unerlaubte Zeichen.');

        }

    }else {

        // Zeige und Verstecke Elemente
        hideShowFields(true, 'Es ist ein Fehler aufgetreten. Bitte &uuml;berpr&uuml;fen Sie ihre Eingaben.');

    }

}

function updatePageContent() {

    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var regex = '^[\\/?!+¦@#*°ç§%¬$£|¢()="´~^`\\]\\[\\{\\}_:;,\\.\\A-z0-9><\\s&;-]+$';
    var content = CKEDITOR.instances['ckPageEditor'].getData();
    var sitename = $('#txtSitename').val();
    var subname = $('#txtSubname').val();

    // Verstecke SaveButton
    $('#divSaveButton').css('display', 'none');

    // Zeige Waiting div an
    $('#divWaiting').css('display', 'block');

    // Überprüfe ob Textboxen einen gültigen Wert besitzen
    if(checkPageContentFieldRegex()) {

        // Textfelder enthalten einen gültigen Wert, überprüfe ContentFeld
        if(content.match(regex)) {

            // Sende Content
            jQuery.post(

                rootPath + "php/classes/AjaxController.php?id=3&time="+time,
                {
                    'sitename' : sitename,
                    'subname' : subname,
                    'content' : content
                },
                function(data) {

                    // Überprüfe, ob etwas zurückkommt
                    if(data != null && data == 'TRUE') {

                        // Zeige und Verstecke Elemente
                        hideShowFieldsUpdate(false, 'Der Inhalt konnte erfolgreich in der Datenbank aktualisiert werden.');

                    }else {

                        // Zeige und Verstecke Elemente
                        hideShowFieldsUpdate(true, data+'Beim Speichern des neuen Inhaltes in die Datenbank ist ein Fehler aufgetreten.');

                    }
                    
                }
                
            );

        }else{

            // Zeige und Verstecke Elemente
            hideShowFieldsUpdate(true, 'Der Inhalt verf&uuml;gt &uuml;ber unerlaubte Zeichen.');

        }

    }else {

        // Zeige und Verstecke Elemente
        hideShowFieldsUpdate(true, 'Es ist ein Fehler aufgetreten. Bitte &uuml;berpr&uuml;fen Sie ihre Eingaben.');

    }

}

function hideShowFields(error, msg) {

    if(error) {

        // Blende Div Success aus
        $('#divSuccess').css('display', 'none');

        // Div mit text füllen
        $('#divError').html(msg);

        // Überprüfe ob Div Error bereits angezeigt wird
        if( $('#divError').css('display') == 'block') {
            $('#divError').effect("pulsate", {times:3}, 300);
        }else {
            $('#divError').slideDown('fast', function() {});
        }

        // Blende Waiting div aus und zeige Save-Button an
        $('#divWaiting').css('display', 'none');
        $('#divSaveButton').css('display', 'block');

    }else {

        // Blende Div Success aus
        $('#divError').css('display', 'none');

        // Div mit text füllen
        $('#divSuccess').html(msg);

        // Überprüfe ob Div Success bereits angezeigt wird
        if( $('#divSuccess').css('display') == 'block') {
            $('#divSuccess').effect("pulsate", {times:3}, 300);
        }else {
            $('#divSuccess').slideDown('fast', function() {});
        }

        // Blende Waiting alle anderen Form-Elemente aus
        $('#divPageContentSaveButton').css('display', 'none');
        $('#divPageContentContext').css('display', 'none');
        $('#divPageContentFieldset').css('display', 'none');
        
    }

}

function hideShowFieldsUpdate(error, msg) {

    if(error) {

        // Blende Div Success aus
        $('#divSuccess').css('display', 'none');

        // Div mit text füllen
        $('#divError').html(msg);

        // Überprüfe ob Div Error bereits angezeigt wird
        if( $('#divError').css('display') == 'block') {
            $('#divError').effect("pulsate", {times:3}, 300);
        }else {
            $('#divError').slideDown('fast', function() {});
        }

        // Blende Waiting div aus und zeige Save-Button an
        $('#divWaiting').css('display', 'none');
        $('#divSaveButton').css('display', 'block');

    }else {

        // Blende Div Success aus
        $('#divError').css('display', 'none');

        // Div mit text füllen
        $('#divSuccess').html(msg);

        // Überprüfe ob Div Success bereits angezeigt wird
        if( $('#divSuccess').css('display') == 'block') {
            $('#divSuccess').effect("pulsate", {times:3}, 300);
        }else {
            $('#divSuccess').slideDown('fast', function() {});
        }

        // Blende Waiting div aus und zeige Save-Button an
        $('#divWaiting').css('display', 'none');
        $('#divSaveButton').css('display', 'block');

    }

}

function checkInputOnLeave(id, errorid) {

    // Initialisierung & Deklaration
    var regex = '^[a-z0-9_]+$';
    var txtValue = $('#'+id).val();
    
    // Überprüfe ob Wert gültig ist
    if(txtValue.match(regex)) {
        $('#'+errorid).css('display', 'none');
        return true;
    }else {
        $('#'+errorid).css('display', 'block');
        return true;
    }

}

function checkPageContentFieldRegex() {

    // Überprüfe Seitenname
    return (checkInputOnLeave('txtSitename', 'spanErrorSitename') && checkInputOnLeave('txtSubname', 'spanErrorSubname'));

}

/**
 * Funktion, welche die mitgegebene Seite aus der Datenbank löscht
 */
function deletePage(pageID) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var doDelete = confirm('Soll die Seite wirklich gelöscht werden?');

    // Überprüfe ob Kommentar wirklich gelöscht werden soll
    if(doDelete) {

        // Führe Ajax aus und aktualisiere Slider
        jQuery.post(
            rootPath + "php/classes/AjaxController.php?id=16&time="+time,
            {
                'pageID' : pageID
            },
            function(data) {

                if(data == 'TRUE') {

                    // Gib Erfolg aus
                    alert('Die Seite wurde erfolgreich aus dem System entfernt');

                    // Seite neuladen
                    window.location.reload();

                }else {

                    // Gib Fehler aus
                    alert('Beim löschen der Seite ist ein Fehler aufgetreten.');

                }

            }
        );

    }
}

// --------------------------- Page Content speichern ende ---------------------

// --------------------------- Galerie-Funktionen ------------------------------

/**
 * Funktion, welche über Ajax den Slider einen Schritt weiter oder zurück
 * gleiten lässt
 */
function loadSlider(galleryID, position) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();

    // Führe Ajax aus und aktualisiere Slider
    jQuery.post(
        rootPath + "php/classes/AjaxController.php?id=4&time="+time,
        {
            'galleryID' : galleryID,
            'position'  : position
        },
        function(data) {

            if(data != null && data != 'FALSE') {
                $("#divGallerySlider").html(data);
            }else {
                $("#divGallerySlider").html('<div class="divError">Es ist ein Fehler aufgetreten</div>');
            }

        }
    );

}

/**
 * Funktion, welche ein Bild aus der Datenbank löscht
 */
function deleteImage(galleryID, imageID) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();

    // Gib Meldung aus ob gelöscht werden soll
    var doDelete = confirm('Soll das Bild wirklich entfernt werden?');

    // Überprüfe ob gelöscht werden soll
    if(doDelete) {

        // Blende Bild aus und zeige Waiting
        $("#divImageContainer").html('<div style="text-align: center"><img src="' + rootPath + 'design/Icons/Loading.gif" alt="Bitte warten" /> Bitte warten, Bild wird gel&ouml;scht.</div>');

        // Führe Ajax aus und aktualisiere Slider
        jQuery.post(
            rootPath + "php/classes/AjaxController.php?id=5&time="+time,
            {
                'galleryID' : galleryID,
                'imageID'  : imageID
            },
            function(data) {

                //alert(data);
                if(data == 'TRUE') {
                    alert('Bild wurde erfolgreich entfernt');
                }else {
                    alert('Bild konnte nicht entfernt werden');
                }

                // Seite neuladen
                window.location.reload();

            }
        );

    }

}

/**
 * Funktion, welche das Galerie-Kommentar Formular einblendet
 */
function showCommentForm() {

    // Ändere Eigenschaften des Kommentar-Buttons
    $("#btnShowCommentForm").html("abbrechen");
    $("#btnShowCommentForm").attr("href", "javascript: hideCommentForm()");

    // Zeige Kommentar-Formular an
    $("#divGalleryCommentForm").slideDown();

}

/**
 * Funktion welche das Galerie-Kommentar Formular ausblendet
 */
function hideCommentForm() {

    // Ändere Eigenschaften des Kommentar-Buttons
    $("#btnShowCommentForm").html("Kommentar erstellen");
    $("#btnShowCommentForm").attr("href", "javascript: showCommentForm()");

    // Lösche Kommentar / Name
    $("#txtName").val("Ihr Name");
    $("#txtComment").val("Ihr Kommentar");

    // unchecke Checkboxen
    if(document.getElementById("cbWithFBImage")) {
        document.getElementById("cbWithFBImage").checked = false;
        document.getElementById("cbPostOnFB").checked = false;
    }

    // Setze Standartbild
    $("#imgCommentImage").attr("src", rootPath + "design/CommentImage.png");

    // Zeige Kommentar-Formular an
    $("#divGalleryCommentForm").slideUp();

    // Setze Standardhöhe der Textarea
    $("#ataa_0").attr("style", "padding: 0px; margin: 0px; height: 16px;");
    $("#txtComment").attr("style", "overflow: hidden; height: 16px;");

}

/**
 * Funktion, welche die Namens-Textbox löscht
 */
function clearNameField() {

    // Überprüfe ob "Ihr Name"
    if($("#txtName").val().toLowerCase() == "ihr name") {
        $("#txtName").val("");
    }

}

/**
 * Funktion, welche überprüft, ob ein leeres Feld erstellt wurde
 */
function checkForEmptyName() {

    // Überprüfe ob leer
    if($("#txtName").val() == "") {

        // Setze Standart-Text
        $("#txtName").val("Ihr Name");
        
    }

}

/**
 * Funktion, welche die Kommentar Textbox löscht
 */
function clearCommentField() {

    // Überprüfe ob "Ihr Kommentar"
    if($("#txtComment").val().toLowerCase() == "ihr kommentar") {
        $("#txtComment").val("");
    }
}

/**
 * Funktion, welche überprüft, ob ein leeres Feld erstellt wurde
 */
function checkForEmptyComment() {

    // Überprüfe ob leer
    if($("#txtComment").val() == "") {

        // Setze Standart-Text
        $("#txtComment").val("Ihr Kommentar");

    }
    
}

/**
 * Funktion, welche das Login-Formular von Facebook aufruft
 */
function fbCommentarLogin() {

    // Initialisierung & Deklaration
    var time = new Date().getTime();

    // Rufe Login von FB auf
     FB.login(function(response) {
        if (response.session) {

            // Überprüfe ob Seite Berechtigung vom Besucher besitzt
            if(response.perms == "user_photos,publish_stream") {

                // Rufe FB-Form erneut auf
                jQuery.post(
                    rootPath + "php/classes/AjaxController.php?id=17&time="+time+"id="+response,
                    {
                        'id' : response
                    },
                    function(data) {

                        $("#divCommentWithFB").html(data);

                    }
                );

            }
        }else {
            alert('Sie müssen sich mit Facebook verbinden um diese Funktion nutzen zu können.');
        }
    }, {perms:'user_photos,publish_stream'});

}

/**
 * Funktion, welche das Profilbild des Besuchers von Facebook holt
 */
function getFBProfilImage() {

    // Überprüfe, ob Checkgox gewählt ist
    if ($("#cbWithFBImage").is(':checked')) {

        // Zeige Ladebalken an
        $("#imgCommentImage").attr("src", rootPath + "design/Icons/Loading.gif");

        // Überprüfe ob Besucher in FB eingeloggt ist
        FB.getLoginStatus(function(response) {

            if (response.session) {

                // User ist eingeloggt zeige Profilbild an
                $("#imgCommentImage").attr("src", "http://graph.facebook.com/" + response.session.uid + "/picture");
                fbID = response.session.uid;

            }

        }, {perms:'publish_stream'});

    } else {

         // Zeige STV Möriken-Wildegg Bild an
         $("#imgCommentImage").attr("src", rootPath + "design/CommentImage.png");

    }

}

/**
 * Funktion, welche das Publischen des Kommentars auf FB aktiviert
 */
function activatePublishingCommentOnFB() {

    // Überprüfe, ob Checkgox gewählt ist
    if ($("#cbPostOnFB").is(':checked')) {

        // Überprüfe ob Besucher in FB eingeloggt ist
        FB.getLoginStatus(function(response) {

            // Überprüfe ob Session vorhanden ist
            if(response.session) {

                // Setze FB-Id
                fbID = response.session.uid;

            }

        }, {perms:'publish_stream'});

    }

}

/**
 * Funktion, welche überprüft, ob die gesuchte Permission vorhanden ist
 */
function hasPermission(response, perm) {
    var begin = response.perms.indexOf('extended”:[') + 11;
    var end = response.perms.indexOf(']', begin);
    var perms = response.perms.substring(begin, end);
    return (perms.indexOf(perm) != -1);
}

/**
 * Funktion, welche überprüft, ob die gesuchte User Permission vorhanden ist
 */
function hasPermission2(response, perm) {
    var begin = response.perms.indexOf('user":[') + 7;
    var end = response.perms.indexOf(']', begin);
    var perms = response.perms.substring(begin, end);
    return (perms.indexOf(perm) != -1);
}

/**
 * Funktion, welche den Kommentar in der Datenbank abspeichert
 */
function saveCommentInDB(imageID, galleryID, imagePosition) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var fbIDFromUser = 0;
    var regexComment = '^[a-zA-Z+¦@#*°ç§%¬&|\\/¢()=?´`~\\^!£$àéèÉÀÈÖÄÜöäü\\.-:;,\\s\\[\\]\\{\\}]+$';
    var regexName = '^[A-Za-zäöüÄÖÜàéè\\s\\&\\;]+$';
    var comment = $("#txtComment").val().replace('\'', '`')
    var postOnFB = 'FALSE';

    // Blende Button aus
    $('#btnSaveComment').attr('href', '');
    $('#btnSaveComment').html('<img src="'+rootPath+'design/Icons/Loading.gif" alt="Loading" style="margin-bottom: -2px; border: none" /> Bitte warten...');

    // Überprüfe, ob Checkbox gewählt ist
    if ($("#cbWithFBImage").is(':checked')) {
        fbIDFromUser = fbID;
    }

    // Überprüfe, ob Checkbox gewählt ist
    if ($("#cbPostOnFB").is(':checked')) {
        postOnFB = 'TRUE';
    }

    // Überprüfe auf Korrektheit der Daten
    if(!isNaN(fbIDFromUser) && !isNaN(galleryID) && !isNaN(imageID)) {

        // Überprüfe Text und Name
        if ($("#txtName").val().match(regexName) && comment.match(regexComment)) {

            // Überprüfe ob überhaupt ein Name und Kommentar eingegeben wurde
            if($("#txtName").val().toLowerCase() != "ihr name" && comment.toLowerCase() != "ihr kommentar") {

                // Führe Ajax aus und speichere Kommentar
                jQuery.post(
                    rootPath + "php/classes/AjaxController.php?id=6&time="+time,
                    {
                        'fbID' : fbIDFromUser,
                        'galleryID' : galleryID,
                        'imageID'  : imageID,
                        'name' : $("#txtName").val(),
                        'comment' : comment,
                        'postFB' : postOnFB
                    },
                    function(data) {

                        // Überprüfe ob Kommentar gespeichert werden konnte
                        if(data == 'TRUE') {

                            // Füge Kommentar der Seite hinzu
                            $("#divGalleryCommentForm").after(getCommentBox(fbIDFromUser, $("#txtName").val(), comment));
                            $('#divRightContainer').prepend(getSiteCommentBox(galleryID, imagePosition,$("#txtName").val(), comment));

                            // Blende Formular aus
                            hideCommentForm();

                            // Setze Standardhöhe der Textarea
                            $("#ataa_0").attr("style", "padding: 0px; margin: 0px; height: 16px;")
                            $("#txtComment").attr("style", "overflow: hidden; height: 16px;");

                            // Zeige Button wieder an
                            $('#divSaveComment').html('<a class="btnSaveComment" id="btnSaveComment" href="javascript: saveCommentInDB(\'3\', \'1\')" title="Speichere Kommentar">Kommentar speichern</a>');

                        }else {
                            alert('Beim Speichern des Kommentars in der Datenbank ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.');
                        }

                    }
                );

            }else {

                // Gib Fehlermeldung aus
                alert('Bitte geben Sie einen Kommentar und einen Namen ein');
                
            }

        }else {

            // Gib Meldung aus
            alert('Es wurden nicht erlaubte Zeichen im Namen oder im Text gefunden');

        }
            
    }else {

        // Gib Meldung aus
        alert('Beim speichern des Kommentares ist ein Fehler aufgetreten');

    }

    // Blende Button ein
    $('#btnSaveComment').attr('href', 'javascript: saveCommentInDB(\''+imageID+'\', \''+galleryID+'\')');
    $('#btnSaveComment').html('Kommentar speichern');

}

/**
 * Funktion, welche eine Kommentarbox zusammenbaut
 */
function getCommentBox(fbIDFromUser, name, comment) {

    // Initialisierung & Deklaration
    var str = '';
    var strDate = '';
    var time = new Date();
    var arrOfMonths = new Array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");

    // Setze Datum zusammen
    strDate = time.getDate() + ". " + arrOfMonths[time.getMonth()] + " " + time.getFullYear() + " - " + time.getHours() + ":" + time.getMinutes();

    // Setze String zusammen
    str += '<table class="tblCommentContainer" cellpadding="0" cellspacing="0">';
    str += '  <tr>';
    str += '      <td class="tdCommentImage">';

    // Überprüfe ob FacebookBild
    if (fbID != 0) {
        str += '          <img class="imgCommentImage" src="http://graph.facebook.com/' + fbIDFromUser + '/picture" alt="Kommentarbild" />';
    }else{
        str += '          <img class="imgCommentImage" src="'+ rootPath + 'design/CommentImage.png" alt="Kommentarbild" />';
    }

    str += '      </td>';
    str += '      <td class="tdCommentBox">';
    str += '          <div class="divCommentTextContainer">';
    str += '              <div class="divCommentArrow"></div>';
    str += '              <div class="divCommentName">' + Encoder.htmlEncode(name, false) + '</div>';
    str += '              <div class="divCommentDate">' + strDate + '</div>';
    str += '              <div class="divCommentText">' + Encoder.htmlEncode(comment, false) + '</div>';
    str += '          </div>';
    str += '          <div class="divCommentShadow"></div>';
    str += '      </td>';
    str += '  </tr>';
    str += '</table>';

    // Gib string zurück
    return str;

}

/**
 * Funktion, welche einen Kommentar auf der Seite ausgibt
 */
function getSiteCommentBox(galleryID, position, name, comment) {

    // Initialisierung & Deklaration
    var str = '';

    // Setze String zusammen
    str += '    <div id="divPostItch6" class="divPostItch6"></div>';
    str += '    <table id="tblLastComment" class="tblLastComment" cellpadding="0" cellspacing="0">';
    str += '        <tr>';
    str += '            <td id="tdLastCommentShadowTopLeft" class="tdLastCommentShadowTopLeft"></td>';
    str += '            <td id="tdLastCommentShadowTopCenter" class="tdLastCommentShadowTopCenter"></td>';
    str += '            <td id="tdLastCommentShadowTopRight" class="tdLastCommentShadowTopRight"></td>';
    str += '        </tr>';
    str += '        <tr>';
    str += '            <td id="tdLastCommentShadowLeft" class="tdLastCommentShadowLeft"></td>';
    str += '            <td id="tdLastCommentCenter" class="tdLastCommentCenter">';
    str += '              <span class="spanCommentWriter">Von: '+Encoder.htmlEncode(name, false)+'</span>';
    str += '              <span class="spanCommentText">'+Encoder.htmlEncode(comment, false)+'</span>';
    str += '              <span class="spanCommentGoTo"><a class="aCommentGoTo" href="'+rootPath+'gallery/'+galleryID+'/image/'+position+'/">Zum Bild &gt;&gt;</a></span>';
    str += '            </td>';
    str += '            <td id="tdLastCommentShadowRight" class="tdLastCommentShadowRight"></td>';
    str += '        </tr>';
    str += '        <tr>';
    str += '            <td id="tdLastCommentShadowBottom" class="tdLastCommentShadowBottom" colspan="3"></td>';
    str += '        </tr>';
    str += '    </table>';

    // Gib string zurück
    return str;

}

/**
 * Funktion, welche das Galeriebild auf Facebook hochlädt
 */
function uploadImageToFB(galleryID, imageID) {

    // Deaktiviere Button und zeige lade Status an
    $("#divFBUploadImage").html('<div class="divUploadWating"><img src="'+rootPath+'design/Icons/Loading.gif" alt="Loading" style="margin-bottom: -2px" /> Bitte warten...</div>');

    // Überprüfe ob Besucher in FB eingeloggt ist
    FB.login(function(response) {

        // Überprüfe ob Session vorhanden ist
        if(response.session) {

            // Überprüfe ob Seite Berechtigung vom Besucher besitzt
            if(response.perms == 'user_photos,publish_stream') {

                // Lade Bild hoch
                postImageOnFB(galleryID, imageID);

            }

        }else {

            // Gib Fehler aus
            alert('Sie müssen sich mit Facebook verbinden um diese Funktion benutzen zu können.');

        }

    }, {perms:'user_photos,publish_stream'});

}

/**
 * Funktion, welche das Bild auf Facebook postet
 */
function postImageOnFB(galleryID, imageID) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();

    // Führe Ajax aus und aktualisiere Slider
    jQuery.post(
        rootPath + "php/classes/AjaxController.php?id=7&time="+time,
        {
            'galleryID' : galleryID,
            'imageID'  : imageID
        },
        function(data) {

            // Überprüfe ob Upload erfolgreich war
            if(data == 'TRUE') {
                alert('Das Bild wurde erfolgreich auf Facebook hochgeladen');
            }else {
                alert('Beim hochladen des Bildes auf Facebook ist ein Fehler aufgetreten');
            }
            
            // Blende Button wieder ein
            $("#divFBUploadImage").html('<a class="aUploadImage" href="javascript: uploadImageToFB(\''+galleryID+'\', \''+imageID+'\')"><img class="imgFBSmall" src="'+rootPath+'design/Icons/FBSmall.png" alt="Bild auf Facebook laden" />Bild hochladen</a>');

        }
    );
    
}

/**
 * Funktion, welche das ganze Objekt ausgibt
 */
function print_r(arr, level) {

	var dumped_text = "";
	if (!level) level = 0;

	//The padding given at the beginning of the line.
	var level_padding = "";
	var bracket_level_padding = "";

	for (var j = 0; j < level + 1; j++) level_padding += "    ";
	for (var b = 0; b < level; b++) bracket_level_padding += "    ";

	if (typeof(arr) == 'object') { //Array/Hashes/Objects
		dumped_text += "Array\n";
		dumped_text += bracket_level_padding + "(\n";
		for (var item in arr) {

			var value = arr[item];

			if (typeof(value) == 'object') { //If it is an array,
				dumped_text += level_padding + "[" + item + "] => ";
				dumped_text += print_r(value, level + 2);
			} else {
				dumped_text += level_padding + "[" + item + "] => " + value + "\n";
			}

		}
		dumped_text += bracket_level_padding + ")\n\n";
	} else { //Stings/Chars/Numbers etc.
		dumped_text = "===>" + arr + "<===(" + typeof(arr) + ")";
	}

	return dumped_text;

}

/**
 * Funktion, welche einen bestimmten Kommentar aus der Datenbank löscht
 */
function deleteComment(commentID) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var doDelete = confirm('Soll der Kommentar wirklich gelöscht werden?');

    // Überprüfe ob Kommentar wirklich gelöscht werden soll
    if(doDelete) {

        // Führe Ajax aus und aktualisiere Slider
        jQuery.post(
            rootPath + "php/classes/AjaxController.php?id=8&time="+time,
            {
                'commentID' : commentID
            },
            function(data) {

                if(data == 'TRUE') {

                    // Gib Erfolg aus
                    alert('Der Kommentar wurde erfolgreich aus dem System entfernt');

                    // Seite neuladen
                    window.location.reload();

                }else {

                    // Gib Fehler aus
                    alert('Beim löschen des Kommentars ist ein Fehler aufgetreten.');

                }

            }
        );
            
    }

}

/**
 * Funktion, welche das Bearbeitungs Formular einblendet
 */
function showEditCommentForm(galleryID, imageID, commentID) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();

    // Führe Ajax aus und aktualisiere Slider
    jQuery.post(
        rootPath + "php/classes/AjaxController.php?id=9&time="+time,
        {
            'galleryID' : galleryID,
            'imageID'   : imageID,
            'commentID' : commentID
        },
        function(data) {

            $('#divGalleryEditCommentForm').html(data);
            $('#divGalleryEditCommentForm').slideDown('fast');

        }
    );
            
}

/**
 * Funktion, welche einen Kommentar in der Datenbank aktualisiert
 */
function updateCommentInDB(commentID) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var regexComment = '^[a-zA-Z+¦@#*°ç§%¬&|\\/¢()=?´`~\\^!£$àéèÉÀÈÖÄÜöäü\\.-:;,\\s\\[\\]\\{\\}]+$';
    var regexName = '^[A-Za-zäöüÄÖÜàéè\\s\\&\\;]+$';
    var comment = $("#txtEditComment").val().replace('\'', '`');

    // Zeige Loading-Status an
    $('#aUpdateCommentInDB').html('<img src="' + rootPath + 'design/Icons/Loading.gif" alt="Bitte warten" style="border: none; margin-bottom: -2px" /> Bitte warten...');

    // Überprüfe ob Comment und Name korrekt sind
    if(comment.match(regexComment) && $("#txtEditName").val().match(regexName)) {

        // Führe Ajax aus und aktualisiere Slider
        jQuery.post(
            rootPath + "php/classes/AjaxController.php?id=10&time="+time,
            {
                'commentID' : commentID,
                'name'      : $("#txtEditName").val(),
                'comment'   : comment
            },
            function(data) {

                if(data=='TRUE'){

                    // Gib Erfolg aus
                    alert('Der Kommentar wurde erfolgreich aktualisiert');
                    
                    // Seite neuladen
                    window.location.reload();

                }else {

                    // Gib Fehler aus
                    alert('Beim Versuch, den Kommentar zu aktualisieren, ist ein Fehler aufgetreten');

                }

            }
        );

    }else {
        alert('Der Name oder der Kommentar enthält eines oder mehrere ungültige Zeichen.');
    }

}

/**
 * Funktion, welche das Bearbeiten eines Kommentars abbricht
 */
function abortEditComment() {

    // Blende Div aus
    $('#divGalleryEditCommentForm').slideUp('fast');

    // Entferne inhalt
    $('#divGalleryEditCommentForm').html('');

}

/**
 * Funktion, welche die restlichen Kommentare ein / ausblendet
 */
function showHideComments() {

    // Überprüfe ob Kommentare bereits angezeigt werden
    if($('#divShowMoreComments').css('display') == 'none'){
        $('#divShowMoreComments').css('display', 'block');
        $('#aShowAllComments').html('Zeige weniger Kommentare');
    }else {
        $('#divShowMoreComments').css('display', 'none');
        $('#aShowAllComments').html('Zeige alle Kommentare');
    }

}

/**
 * Funktion, welch die Galerie-Liste lädt
 */
function loadGalleryList(id) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();

    // Führe Ajax aus und aktualisiere Slider
    jQuery.post(
        rootPath + "php/classes/AjaxController.php?id=21&time="+time,
        {
            'section' : id
        },
        function(data) {

            // Fülle den Container mit Inhalt
            $('#divGalleriesContainer').html(data);
            $('#divGalleriesContainer').css('display', 'block');

            // Entferne Lade Div
            $('#divLoading').css('display', 'none');
            
        }
    );

}

// --------------------------- Galerie Funktionen Ende -------------------------

// --------------------------- Galerie Editor Start ----------------------------

/**
 * Funktion, welche die Änderungen in der Galerie speichert
 */
function saveGalleryChanges(galleryid) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var dateGallery = $('#txtGalleryDate').val();
    var titleGallery = $('#txtGalleryTitle').val();
    var photographerGallery = $('#txtGalleryPhotographer').val();
    var arrOfIDs = new Array();

    // Lade IDs in das Array
    $(':checkbox:checked').each(function(i){arrOfIDs[i] = $(this).val();});

    // Überprüfe Variablen
    if(checkVariables(titleGallery, photographerGallery)) {

        // Führe Ajax aus und aktualisiere Slider
        jQuery.post(
            rootPath + "php/classes/AjaxController.php?id=18&time="+time,
            {
                'galleryID'             : galleryid,
                'dateGallery'           : dateGallery,
                'titleGallery'          : titleGallery,
                'photographerGallery'   : photographerGallery,
                'arrOfIDs'              : arrOfIDs
            },
            function(data) {

                if(data) {
                    
                    // Gib Erfolg aus
                    hideShowFields3(false, 'Die Galerie wurde erfolgreich aktualisiert');

                }else {

                    // Gib Fehler aus
                    hideShowFields3(true, 'Beim Speichern der Änderungen ist ein Fehler aufgetreten');

                }
                
            }
        );

    }else {

        // Gib Fehler aus
        hideShowFields3(true, 'Es wurden nicht alle Felder korrekt ausgefüllt');

    }


}

/**
 * Funktion, welche die Variablen der Galerie überprüft
 */
function checkVariables(titleGallery, photgrapherGallery) {

    // Initialisierung & Deklaration
    var regexTitle = '^[äöüÄÖÜA-z\\s0-9]+$';
    var regexPhotographer = '^[äöüÄÖÜA-z\\s0-9]+$';
    var isValid = true;

    // Überprüfe Titel
    if(titleGallery.match(regexTitle)) {
        $('#txtGalleryTitleError').css('display', 'none');
    }else {
        isValid = false
        $('#txtGalleryTitleError').css('display', 'block');
    }

    // Überprüfe Photograph
    if(photgrapherGallery.match(regexPhotographer)) {
        $('#txtGalleryPhotographerError').css('display', 'none');
    }else {
        isValid = false
        $('#txtGalleryPhotographerError').css('display', 'block');
    }

    return isValid;

}

/**
 * Funktion, welche bestimmte Elemente ein / ausblendet
 */
function hideShowFields3(error, msg) {

    if(error) {

        // Blende Div Success aus
        $('#divSuccess').css('display', 'none');

        // Div mit text füllen
        $('#divError').html(msg);

        // Überprüfe ob Div Error bereits angezeigt wird
        if( $('#divError').css('display') == 'block') {
            $('#divError').effect("pulsate", {times:3}, 300);
        }else {
            $('#divError').slideDown('fast', function() {});
        }

    }else {

        // Blende Div Success aus
        $('#divError').css('display', 'none');

        // Div mit text füllen
        $('#divSuccess').html(msg);

        // Überprüfe ob Div Success bereits angezeigt wird
        if( $('#divSuccess').css('display') == 'block') {
            $('#divSuccess').effect("pulsate", {times:3}, 300);
        }else {
            $('#divSuccess').slideDown('fast', function() {});
        }

    }

}

/**
 * Funktion, welche die Galerie-Textboxen auf Korrektheit überprrüft
 */
function checkGalleryInputsOnLeave(id, errorid) {

    // Initialisierung & Deklaration
    var regex = '^[äöüÄÖÜA-z\\s0-9]+$';
    var txtValue = $('#'+id).val();

    // Überprüfe ob Wert gültig ist
    if(txtValue.match(regex)) {
        $('#'+errorid).css('display', 'none');
        return true;
    }else {
        $('#'+errorid).css('display', 'block');
        return true;
    }

}

/**
 * Funktion, welche die mitgegebene Galerie aus der Datenbank löscht
 */
function deleteGallery(galleryID) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var doDelete = confirm('Soll die Galerie wirklich gelöscht werden?');

    // Überprüfe ob Kommentar wirklich gelöscht werden soll
    if(doDelete) {

        // Führe Ajax aus und aktualisiere Slider
        jQuery.post(
            rootPath + "php/classes/AjaxController.php?id=19&time="+time,
            {
                'galleryID' : galleryID
            },
            function(data) {

                if(data == 'TRUE') {

                    // Gib Erfolg aus
                    alert('Die Bildergalerie wurde erfolgreich aus dem System entfernt');

                    // Seite neuladen
                    window.location.reload();

                }else {

                    // Gib Fehler aus
                    alert('Beim löschen der Bildergalerie ist ein Fehler aufgetreten.');

                }

            }
        );

    }
    
}

// --------------------------- Galerie Editor End ------------------------------

// --------------------------- News Eintrag erstellen Start --------------------

/**
 * Funktion, welche den Text aus der TextBox löscht, wenn darauf geklickt
 * wird und es sich um den Standart-Text handelt
 */
function deleteTitleValue() {

    // Initialisierung & Deklaration
    var text = $('#txtNewsEntryTitle').val();

    // Überprüfe auf Standart-Text
    if(text == 'Hier Titel einsetzen') {
        $('#txtNewsEntryTitle').val('');
    }

}

/**
 * Funktion, welche den Standart-Text wieder in die Titel-Textbox setzt, wenn
 * kein Titel angegeben wurde
 */
function refillTitleValue() {

    // Initialisierung & Deklaration
    var text = $('#txtNewsEntryTitle').val();

    // Überprüfe auf Standart-Text
    if(text == '') {
        $('#txtNewsEntryTitle').val('Hier Titel einsetzen');
    }
}

/**
 * Funktion, welche den Container mit den Galerie-Titeln anzeigt
 */
function showGalleries() {

    // Überprüfe ob CheckBox gesetzt ist
    if($('#cbWithGallery').is(':checked')) {
        $('#divGalleryTitlesContainer').slideDown('fast');
    }else {
        $('#divGalleryTitlesContainer').slideUp('fast');
        $('#divGalleryContainer').html('');
        $("input:radio:checked[name='rbGalleryID']").attr('checked', false);
        $('#divGalleryChanges').slideUp('fast');
    }

}

/**
 * Funktion, welche nur die Galerie-Titel ausblendet / einblendet
 */
function showGalleryTitles() {

    // Überprüfe ob Tabelle sichtbar ist
    if($('#tblAllGalleries').css('display') == 'block') {
        $('#tblAllGalleries').slideUp('fast');
        $('#showHideTitles').html = 'Galerie-Titel einblenden';
    }else {
        $('#tblAllGalleries').slideDown('fast');
        $('#showHideTitles').html = 'Galerie-Titel ausblenden';
    }

}

/**
 * Funktion, welche die ausgewählte Bildergalerie holt und anzeigt
 */
function loadNewNewsGallery(id) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();

    // Überprüfe ob Möchten Sie bereits angezeigt wird
    if($('#divGalleryChanges').css('display') != 'block') {
        $('#divGalleryChanges').slideDown('fast');
    }

    // Zeige Loading-Status an
    $('#divGalleryContainer').html('<div style="margin: 0; height: 169px; text-align: center"><img src="'+rootPath+'design/Icons/Loading.gif" alt="Loading" style="margin-bottom: -2px; border: none" /> Bitte warten...</div>');

    // Führe Ajax aus und aktualisiere Slider
    jQuery.post(
        rootPath + "php/classes/AjaxController.php?id=11&time="+time,
        {
            'galleryID' : id
        },
        function(data) {

            if(data) {
                $('#divGalleryContainer').html(data);
            }else {
                alert('Galerie konnte nicht geladen werden');
                $('#divGalleryContainer').html('');
            }

        }
    );

}

/**
 * Funktion, welche das umherschieben der Bilder ermöglicht
 */
function reArrangeNewsImages() {

    test = $( "#ulGalleryImages" ).sortable({
        update: function(event, ui) {

            // Hole neue Reihenfolge und speichere Reihenfolge in Datenbank
            var order = $( "#ulGalleryImages" ).sortable('toArray');
            saveNewOrderInDB(order);

        }
    });
    $( "#ulGalleryImages" ).disableSelection();

    
}

/**
 * Speichert die neue Anordnung in der Datenbank
 */
function saveNewOrderInDB(order) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();

    // Führe Ajax aus und aktualisiere Slider
    jQuery.post(
        rootPath + "php/classes/AjaxController.php?id=12&time="+time,
        {
            'newsImage1' : order[0],
            'newsImage2' : order[1],
            'newsImage3' : order[2],
            'galleryID'   : $("input:radio:checked[name='rbGalleryID']").val()
        },
        function(data) {

            // Überprüfe auf Fehlschlag
            if(data != 'TRUE') {
                alert('Beim speichern der neuen Reihenfolge in der Datenbank, ist ein Fehler aufgetreten');
            }
        }
    );

}

/**
 * Funktion, welche das neue Fenster für neue NewsBilder öffnet
 */
function openImageSelector(url)
{
   var newWindow = window.open(url + "?galleryid=" + $("input:radio:checked[name='rbGalleryID']").val() ,'', 'width=600,height=800,menubar=no,status=no, location=no,toolbar=no,scrollbars=yes');
   newWindow.focus();
}

/**
 * Funktion, welche ein Bild für einen NewsEintrag auswählt
 */
function checkNewNewsImage(id) {

    // Überprüfe ob nicht bereits drei ausgewählt sind
    if($("input:checked").length > 3) {
        
        alert('Es sind bereits drei Bilder gewählt. Um dieses Bild zu selektieren, wählen Sie zuerst ein anderes ab.');
        $('#'+id).attr('checked', false);
        
    }

}

/**
 * Funktion, welche die neuen NewsBilder in der Datenbank speichert
 */
function saveNewNewsImage(galleryID) {

    // Initialisierung & Deklaration
    var arrOfIDs = new Array();

    // Gib warten Status aus
    $('#btnSaveNewNewsImage').html('<img src="'+rootPath+'design/Icons/Loading.gif" alt="Loading" style="margin-bottom: -2px; border: none" /> Bitte warten...');

    // Überprüfe ob alle drei Bilder gewählt wurden
    if($("input:checked").length == 3) {

        // Lade IDs in das Array
        $(':checkbox:checked').each(function(i){arrOfIDs[i] = $(this).val();});

        // Speichere Bilder in der Datenbank
        saveNewsImagesInDB(arrOfIDs, galleryID);
       
    }else {
        alert("Bitte wählen Sie drei Bilder für den Newseintrag aus.");
        $('#btnSaveNewNewsImage').html('&Auml;nderungen speichern');
    }

}

/**
 * Speichert die neue Anordnung in der Datenbank
 */
function saveNewsImagesInDB(images, galleryID) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();

    // Führe Ajax aus und aktualisiere Slider
    jQuery.post(
        rootPath + "php/classes/AjaxController.php?id=12&time="+time,
        {
            'newsImage1' : images[0],
            'newsImage2' : images[1],
            'newsImage3' : images[2],
            'galleryID'  : galleryID
        },
        function(data) {

            // Überprüfe auf Fehlschlag
            if(data == 'TRUE') {
                                
                // Lade Bilder im News-Formular neu
                var tmpElement = $("input:radio:checked[name='rbGalleryID']", window.opener.document);
                var rbElement = window.opener.document.getElementById(tmpElement[0].id);
                rbElement.click();


                // Schliesse Fenster
                window.close();

            }else {
                alert('Beim speichern der neuen Newsbilder in der Datenbank, ist ein Fehler aufgetreten');
            }
        }
    );

}

/**
 * Funktion, welche einen neuen News-Eintrag in der Datenbank speichert
 */
function saveNewNewsEntry() {

    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var regexContent = '^[\\/?!+¦@#*°ç§%¬$£|¢()="´~^`\\]\\[\\{\\}_:;,\\.\\A-z0-9><\\s&;-]+$';
    var regexTitle = '^[\\s=\\)\\(\\;\\.\\-&?!A-zäöüÄÖÜÉÀÈàéè0-9]+$';
    var title = $('#txtNewsEntryTitle').val();
    var content = CKEDITOR.instances['ckNewsTextEditor'].getData();
    var galleryID = $("input:radio:checked[name='rbGalleryID']").val();

    galleryID = (galleryID != null) ? galleryID : 0;

    // Verstecke SaveButton
    $('#divSaveButton').css('display', 'none');

    // Zeige Waiting div an
    $('#divWaiting').css('display', 'block');

    // Überprüfe auf Standardsätze
    if(title != 'Hier Titel einsetzen' && title != '' && content != '') {

        // Überprüfe auf Korrektheit der Daten
        if(title.match(regexTitle) && content.match(regexContent)) {

            // Sende Content
            jQuery.post(
                rootPath + "php/classes/AjaxController.php?id=13&time="+time,
                {
                    'title' : title,
                    'content' : content,
                    'galleryID' : galleryID
                },
                function(data) {

                    // Überprüfe, ob etwas zurückkommt
                    if(data != null && data == 'TRUE') {

                        // Zeige und Verstecke Elemente
                        hideShowFields2(false, 'Der Newseintrag konnte erfolgreich in der Datenbank gespeichert werden.');

                    }else {

                        // Zeige und Verstecke Elemente
                        hideShowFields2(true, 'Beim Speichern des Newseintrages in der Datenbank ist ein Fehler aufgetreten.');

                    }
                }
            );

        } else {
            hideShowFieldsUpdate(true, 'Im Inhalt oder im Titel wurden unerlaubte Zeichen gefunden.');
        }

    }else {

        // Zeige und Verstecke Elemente
        hideShowFields2(true, 'Bitte geben Sie einen Titel sowie einen News-Text ein.');

    }

}

/**
 * Funktion, welche einen bestehenden News-Eintrag in der Datenbank aktualisiert
 */
function updateNewsEntryInDb(newsID) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var regexContent = '^[\\/?!+¦@#*°ç§%¬$£|¢()="´~^`\\]\\[\\{\\}_:;,\\.\\A-z0-9><\\s&;-]+$';
    var regexTitle = '^[\\s=\\)\\(\\;\\.\\-&?!A-zäöüÄÖÜÉÀÈàéè0-9]+$';
    var title = $('#txtNewsEntryTitle').val();
    var content = CKEDITOR.instances['ckNewsTextEditor'].getData();
    var galleryID = $("input:radio:checked[name='rbGalleryID']").val();

    galleryID = (galleryID != null) ? galleryID : 0;

    // Verstecke SaveButton
    $('#divSaveButton').css('display', 'none');

    // Zeige Waiting div an
    $('#divWaiting').css('display', 'block');

    // Überprüfe auf Standardsätze
    if(title != 'Hier Titel einsetzen' && title != '' && content != '' && !isNaN(newsID)) {

        // Überprüfe auf Korrektheit der Daten
        if(title.match(regexTitle) && content.match(regexContent)) {

            // Sende Content
            jQuery.post(
                rootPath + "php/classes/AjaxController.php?id=14&time="+time,
                {
                    'title'     : title,
                    'content'   : content,
                    'galleryID' : galleryID,
                    'newsID'    : newsID
                },
                function(data) {

                    // Überprüfe, ob etwas zurückkommt
                    if(data != null && data == 'TRUE') {

                        // Zeige und Verstecke Elemente
                        hideShowFieldsUpdate(false, 'Der Newseintrag konnte erfolgreich in der Datenbank gespeichert werden.');

                    }else {

                        // Zeige und Verstecke Elemente
                        hideShowFieldsUpdate(true, 'Beim Speichern des Newseintrages in der Datenbank ist ein Fehler aufgetreten.');

                    }
                }
            );

        } else {
            hideShowFieldsUpdate(true, 'Im Inhalt oder im Titel wurden unerlaubte Zeichen gefunden.');
        }

    }else {

        // Zeige und Verstecke Elemente
        hideShowFieldsUpdate(true, 'Bitte geben Sie einen Titel sowie einen News-Text ein.');

    }

}

/**
 * Funktion, welche bestimmte Elemente ein / ausblendet
 */
function hideShowFields2(error, msg) {

    if(error) {

        // Blende Div Success aus
        $('#divSuccess').css('display', 'none');

        // Div mit text füllen
        $('#divError').html(msg);

        // Überprüfe ob Div Error bereits angezeigt wird
        if( $('#divError').css('display') == 'block') {
            $('#divError').effect("pulsate", {times:3}, 300);
        }else {
            $('#divError').slideDown('fast', function() {});
        }

        // Blende Waiting div aus und zeige Save-Button an
        $('#divWaiting').css('display', 'none');
        $('#divSaveButton').css('display', 'block');

    }else {

        // Blende Div Success aus
        $('#divError').css('display', 'none');

        // Div mit text füllen
        $('#divSuccess').html(msg);

        // Überprüfe ob Div Success bereits angezeigt wird
        if( $('#divSuccess').css('display') == 'block') {
            $('#divSuccess').effect("pulsate", {times:3}, 300);
        }else {
            $('#divSuccess').slideDown('fast', function() {});
        }

        // Blende Waiting alle anderen Form-Elemente aus
        $('#divAllNewsFormContainer').css('display', 'none');
        $('#divNewsSaveButton').css('display', 'none');

    }

}

/**
 * Funktion, welche den mitgegebenen NewsEintrag aus der Datenbank löscht
 */
function deleteNewsEntry(newsID) {
    
    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var doDelete = confirm('Soll der Newseintrag wirklich gelöscht werden?');

    // Überprüfe ob Kommentar wirklich gelöscht werden soll
    if(doDelete) {

        // Führe Ajax aus und aktualisiere Slider
        jQuery.post(
            rootPath + "php/classes/AjaxController.php?id=15&time="+time,
            {
                'newsID' : newsID
            },
            function(data) {

                if(data == 'TRUE') {

                    // Gib Erfolg aus
                    alert('Der Newseintrag wurde erfolgreich aus dem System entfernt');

                    // Seite neuladen
                    window.location.reload();

                }else {

                    // Gib Fehler aus
                    alert('Beim löschen des Newseintrages ist ein Fehler aufgetreten.');

                }

            }
        );

    }
}

// --------------------------- News Eintrag erstellen Ende ---------------------

// --------------------------- Kalender Eintrag erstellen Start ----------------

function clearTextareaText() {

   // Initialisierung & Deklaration
   var nextEventInfo = $('#txtNextEventInfo').val();

   if(nextEventInfo == 'Ihr Next-Event Box Text') {
       $('#txtNextEventInfo').val('');
   }

}

function checkTextareaText() {

   // Initialisierung & Deklaration
   var nextEventInfo = $('#txtNextEventInfo').val();

   if(nextEventInfo == '') {
       $('#txtNextEventInfo').val('Ihr Next-Event Box Text');
   }

}

/**
 * Funktion, welche das Start und End-Datum überprüft
 */
function checkDates() {

    // Initialisierung & Deklaration
    var isValid = true;
    var dateRegex = '^(0[1-9]|[12][0-9]|3[01]|[1-9])\\.(0[1-9]|1[012]|[1-9])\\.(\\d{4}|\\d{2})$';
    var startDate = $('#txtStartDate').val();
    var endDate = $('#txtEndDate').val();

    if(startDate.match(dateRegex)) {
        $('#spanErrorStartDate').css('display', 'none');
    }else {
        isValid = false;
        $('#spanErrorStartDate').css('display', 'block');
    }

    if(endDate.match(dateRegex)) {
        $('#spanErrorEndDate').css('display', 'none');
    }else {
        isValid = false;
        $('#spanErrorEndDate').css('display', 'block');
    }

    return isValid;

}

/**
 * Funktion, welche einen neuen Anlass in der Datenbank speichert
 */
function saveNewCalendarItem() {

    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var regexContent = '^[\\/?!+¦@#*°ç§%¬$£|¢()="´~^`\\]\\[\\{\\}_:;,\\.\\A-z0-9><\\s&;-]+$';
    var regexTitle = '^[\\s=\\)\\(\\;\\.\\-&?!A-zäöüÄÖÜÉÀÈàéè0-9]+$';
    var regexNextEvent = '^[a-zA-Z+¦@#*°ç§%¬&|\\/¢()=?´`~\\^!£$àéèÉÀÈÖÄÜöäü0-9\\.\\-:;,\\s\\[\\]\\{\\}]+$';
    var title = $('#txtNewsEntryTitle').val();
    var content = CKEDITOR.instances['ckCalendarTextEditor'].getData();
    var nextEventInfo = $('#txtNextEventInfo').val();
    var startDate = $('#txtStartDate').val();
    var endDate = $('#txtEndDate').val();

    // Überprüfe Vollständigkeit
    if(checkDates() && title.match(regexTitle) && content.match(regexContent) && nextEventInfo.match(regexNextEvent) && title != 'Hier Titel einsetzen') {

        // Sende Content
            jQuery.post(
                rootPath + "php/classes/AjaxController.php?id=23&time="+time,
                {
                    'title'     : title,
                    'content'   : content,
                    'startDate' : startDate,
                    'endDate'   : endDate,
                    'nextEventInfo' : nextEventInfo
                },
                function(data) {

                    // Überprüfe, ob etwas zurückkommt
                    if(data != null && data == 'TRUE') {

                        // Zeige und Verstecke Elemente
                        hideShowFields2(false, 'Der Anlass konnte erfolgreich in der Datenbank gespeichert werden.');

                    }else {

                        // Zeige und Verstecke Elemente
                        hideShowFields2(true, 'Beim Speichern des Anlasses in der Datenbank ist ein Fehler aufgetreten.');

                    }
                }
            );

    }else {

        // Zeige Fehler an
        hideShowFields2(true, 'Es wurden nicht alle ben&ouml;tigte Felder ausgef&uuml;llt.');

    }

}

/**
 * Funktion, welche den mitgegebenen Anlass aus der Datenbank löscht
 */
function deleteCalendarItem(eventID) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var doDelete = confirm('Soll der Anlass wirklich gelöscht werden?');

    // Überprüfe ob Kommentar wirklich gelöscht werden soll
    if(doDelete) {

        // Führe Ajax aus und aktualisiere Slider
        jQuery.post(
            rootPath + "php/classes/AjaxController.php?id=24&time="+time,
            {
                'eventID' : eventID
            },
            function(data) {

                if(data == 'TRUE') {

                    // Gib Erfolg aus
                    alert('Der Anlass wurde erfolgreich aus dem System entfernt');

                    // Seite neuladen
                    window.location.reload();

                }else {

                    // Gib Fehler aus
                    alert('Beim löschen des Anlasses ist ein Fehler aufgetreten.');

                }

            }
        );

    }

}

/**
 * Funktion, welche einen Anlass in der Datenbank aktualisiert
 */
function updateCalendarItem(eventID) {

    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var regexContent = '^[\\/?!+¦@#*°ç§%¬$£|¢()="´~^`\\]\\[\\{\\}_:;,\\.\\A-z0-9><\\s&;-]+$';
    var regexTitle = '^[\\s=\\)\\(\\;\\.\\-&?!A-zäöüÄÖÜÉÀÈàéè0-9]+$';
    var regexNextEvent = '^[a-zA-Z+¦@#*°ç§%¬&|\\/¢()=?´`~\\^!£$àéèÉÀÈÖÄÜöäü0-9\\.\\-:;,\\s\\[\\]\\{\\}]+$';
    var title = $('#txtNewsEntryTitle').val();
    var content = CKEDITOR.instances['ckCalendarTextEditor'].getData();
    var nextEventInfo = $('#txtNextEventInfo').val();
    var startDate = $('#txtStartDate').val();
    var endDate = $('#txtEndDate').val();

    // Überprüfe Vollständigkeit
    if(checkDates() && title.match(regexTitle) && content.match(regexContent) && nextEventInfo.match(regexNextEvent) && title != 'Hier Titel einsetzen') {

        // Sende Content
            jQuery.post(
                rootPath + "php/classes/AjaxController.php?id=25&time="+time,
                {
                    'title'     : title,
                    'content'   : content,
                    'startDate' : startDate,
                    'endDate'   : endDate,
                    'nextEventInfo' : nextEventInfo,
                    'eventID' : eventID
                },
                function(data) {

                    // Überprüfe, ob etwas zurückkommt
                    if(data != null && data == 'TRUE') {

                        // Zeige und Verstecke Elemente
                        hideShowFieldsUpdate(false, 'Der Anlass konnte erfolgreich in der Datenbank aktualisiert werden.');

                    }else {

                        // Zeige und Verstecke Elemente
                        hideShowFieldsUpdate(true, 'Beim Aktualisieren des Anlasses in der Datenbank ist ein Fehler aufgetreten.');

                    }
                }
            );

    }else {

        // Zeige Fehler an
        hideShowFieldsUpdate(true, 'Es wurden nicht alle ben&ouml;tigte Felder ausgef&uuml;llt.');

    }

}

// --------------------------- Kalender Eintrag erstellen Ende -----------------

function login() {

    // Initialisierung & Deklaration
    var time = new Date().getTime();
    var user = $('#txtLoginName').val();
    var pw = $('#txtLoginPassword').val();
    var regexUser = '^[A-z0-9äöüÄÖÜ\\s]+$';
    var regexPw = '^[A-z0-9äöüÄÖÜ\\s]+$';

    // Überprüfe Variablen auf Korrektheit
    if(user.match(regexUser) && pw.match(regexPw)) {

        // Blende ErrorDiv aus
        $('#divError').css('display', 'none');

        // Loge den Besucher ein
        jQuery.post(
            rootPath + "php/classes/AjaxController.php?id=20&time="+time,
            {
                'user'  : user,
                'pw'    : pw
            },
            function(data) {

                if(data == 'TRUE') {

                    // Seite neuladen
                    window.location.href = rootPath + 'index.php?site=admin&sub=main_menu';

                }else {

                    // Gib Fehler aus
                    $('#divError').html('Es wurde ein falscher Benutzername oder falsches Passwort eingegeben!');

                    // Überprüfe ob Div Error bereits angezeigt wird
                    if( $('#divError').css('display') == 'block') {
                        $('#divError').effect("pulsate", {times:3}, 300);
                    }else {
                        $('#divError').slideDown('fast', function() {});
                    }

                }

            }
            
        );

    }else {

        // Div mit text füllen
        $('#divError').html('Es wurden unerlaubte Zeichen im Benutzername oder im Passwort entdeckt!');

        // Überprüfe ob Div Error bereits angezeigt wird
        if( $('#divError').css('display') == 'block') {
            $('#divError').effect("pulsate", {times:3}, 300);
        }else {
            $('#divError').slideDown('fast', function() {});
        }


    }


}

function goToSection(nr) {

    // Initialisierung & Deklaration
    nr = (!isNaN(nr)) ? nr : 0;

    // Initialisierung & Deklaration
    var time = new Date().getTime();

    // Führe Ajax aus und aktualisiere Slider
    jQuery.post(
        rootPath + "php/classes/AjaxController.php?id=22&time="+time,
        {
            'section' : nr
        },
        function(data) {

           // Überprüfe welche Seite angezeigt werden soll
           switch(nr){

               case 0: {
                   self.location.href = rootPath + 'index.php?site=index&sub=index';
                   break;
               }
               case 1: {
                   self.location.href = rootPath + 'index.php?site=aktive&sub=index';
                   break;
               }
               case 2: {
                   self.location.href = rootPath + 'index.php?site=trampolin&sub=index';
                   break;
               }
               case 3: {
                   self.location.href = rootPath + 'index.php?site=maennerriege&sub=index';
                   break;
               }
               case 4: {
                   self.location.href = rootPath + 'index.php?site=jugendriegek&sub=index';
                   break;
               }
               case 5: {
                   self.location.href = rootPath + 'index.php?site=damenriege&sub=index';
                   break;
               }
               case 6: {
                   self.location.href = rootPath + 'index.php?site=muki&sub=index';
                   break;
               }

           }

        }
    );

}

