﻿/// <reference path="jquery-1.4.1-vsdoc.js" />

var deletePageElementId = null;
var deletePageElementPageId = null;

var addPageId = null;
var addContent = null;
var addElementId = null;

var editElementId = null;
var editPageId = null;
var editContent = null;

var addSubPageId = null;
var deletePageId = null;

//var praxisVar = null;

var naviChanged = false;

var pageTitles;

var editPageTitleId= null;

jQuery(document).ready(function () {

    jQuery("#styleImageDialog").dialog({
        bgiframe: true, autoOpen: false, buttons: {
            'Speichern': function () {

                jQuery("#styleImageDialog").dialog("close");

                data = { elementId: editElementId, pageid: editPageId, size: jQuery("#imageSizeSelector").val() };

                $.post("/CMS/ChangeSingleImageElementStyle", data, function (result) {
                    if (result == "Success") {
                        location.reload();
                    } else {
                        messagebox("Ihre Änderung konnte leider nicht gespeichert werden. Bitte versuchen Sie es später nochmal.");
                    }
                });

            },

            'Abbrechen': function () {
                jQuery("#styleImageDialog").dialog("close");
            }
        }

    });

    jQuery("#chooseElementTypeDialog").dialog({
        bgiframe: true, autoOpen: false, buttons: {
            'Weiter': function () {
                jQuery("#chooseElementTypeDialog").dialog("close");


                switch (jQuery("#elementTypeSelector").val()) {
                    case "1":
                        //Text Element
                        jQuery("#addElementDialog").dialog("open");

                        jQuery("#contentArea").htmlarea("dispose");

                        jQuery("#contentArea").htmlarea();

                        break;

                    case "2":
                        //Single Image Element
                        jQuery("#pageIdInput").attr("value", addPageId);

                        jQuery("#elementIdInput").attr("value", addElementId);

                        jQuery("#addImageElementDialog").dialog("open");


                        break;

                    case "3":
                        //image gallery
                        jQuery("#addImageGalleryPageInput").attr("value", addPageId);

                        jQuery("#addImageGalleryElementInput").attr("value", addElementId);


                        jQuery("#addImageGalleryDialog").dialog("open");

                        break;

                    case "4":
                        jQuery("#addFilePageIdInput").attr("value", addPageId);

                        jQuery("#addFileElementIdInput").attr("value", addElementId);

                        jQuery("#addFileElementDialog").dialog("open");

                        break;

                    case "5":

                        jQuery("#addMapElementDialog").dialog("open");

                        break;
                }
            }
        }

    });

    jQuery("#editImageGalleryDialog").dialog({
        bgiframe: true, autoOpen: false, width: 385, close: function () {
            if (reloadPage == true) {
                location.reload();
            }
        }

    });


    jQuery("#addFileElementDialog").dialog({
        bgiframe: true, autoOpen: false, width: 385
    });

    jQuery("#addImageGalleryDialog").dialog({
        bgiframe: true, autoOpen: false, width: 385
    });

    jQuery("#addImageElementDialog").dialog({
        bgiframe: true, autoOpen: false, width: 385
    });



    jQuery("#deleteElementDialog").dialog({
        bgiframe: true, autoOpen: false, buttons: {

            'Ja': function () {
                jQuery("#deleteElementDialog").dialog("close");
                if (deletePageElementId !== null && deletePageElementPageId !== null) {

                    var data = { pageid: deletePageElementPageId, elementid: deletePageElementId };

                    $.post("/CMS/DeletePageElement/", data, function (result) {
                        if (result == "Success") {
                            location.reload();
                        } else {
                            messagebox("Fehler", "Das Element konnte nicht gelöscht werden. Bitte versuchen Sie es später nochmal.");
                        }
                    });
                }


                deletePageElementId = null;
                deletePageElementPageId = null;
            },

            'Nein': function () {
                jQuery("#deleteElementDialog").dialog("close");
            }

        }
    });


    jQuery("#editTextElement").dialog({
        bgiframe: true, autoOpen: false, width: 420, buttons: {
            'Speichern': function () {

                var html = $("#editContentArea").htmlarea("toHtmlString");

                html = html.replace(/[\r\n]+/g, " ");

                data = { elementId: editElementId, pageId: editPageId, content: escape(html) };

                $.post("/CMS/EditPageElement", data, function (result) {

                    if (result == "Success") {

                        location.reload();

                    } else {

                        messagebox("Fehler", "Ihre Änderung konnte nicht gespeichert werden. Bitte versuchen Sie es später nochmal.");

                    }


                });

                editElementId = null;
                editPageId = null;
            }
        }

    });

    jQuery("#editNavigationDialog").dialog({
        bgiframe: true, autoOpen: false, width: 415, buttons: {

            'Schließen': function () {
                jQuery("#editNavigationDialog").dialog("close");
                if (naviChanged) {
                    location.reload();
                }
            }
        }

    });

    jQuery("#addMapElementDialog").dialog({

        bgiframe: true, autoOpen: false, width: 420, buttons: {
            'Karte hinzufügen': function () {
                data = { typeId: "5", pageId: addPageId, content: escape(jQuery("#addMapAdress").attr("value")), elementId: addElementId };

                $.post("/CMS/AddPageElement", data, function (result) {

                    if (result == "Success") {
                        location.reload();
                    } else {

                        messagebox("Fehler", "Das Neue Element konnte nicht gespeichert werden, bitte versuchen Sie es später erneut.");

                    }

                });

                addContent = null;
            }
        }
    });

    jQuery("#addElementDialog").dialog({
        bgiframe: true, autoOpen: false, width: 420, buttons: {
            'Speichern': function () {



                data = { typeId: "1", pageId: addPageId, content: escape($("#contentArea").htmlarea("toHtmlString")), elementId: addElementId };

                $.post("/CMS/AddPageElement", data, function (result) {

                    if (result == "Success") {
                        location.reload();
                    } else {

                        messagebox("Fehler", "Das Neue Element konnte nicht gespeichert werden, bitte versuchen Sie es später erneut.");

                    }

                });

                addContent = null;


            }
        }

    });

    jQuery("#addSubPageDialog").dialog({
        bgiframe: true, autoOpen: false, buttons: {
            'Speichern': function () {

                //TODO do it

                jQuery("#addSubPageDialog").dialog("close");

                var data = { practiceId: jQuery("#addPageDialog #practiceIdInput").attr("value"), title: jQuery("#addSubPageTitleInput").attr("value") };

                $.post("/CMS/AddSubPage/" + addSubPageId, data, function (response) {

                    if (response == "Success") {
                        naviChanged = true;

                        jQuery("#editNavigationDialog").dialog("close");
                        editNavigation(praxisVar);
                    } else {
                        messagebox("Fehler", "Die Seite konnte nicht erstellt werden. Bitte versuchen Sie es später nochmal.");
                    }


                });

                jQuery("#addSubPageTitleInput").attr("value", "");
            }
        }

    });

    jQuery("#confirmDeletePageDialog").dialog({
        bgiframe: true, autoOpen: false, buttons: {
            'Ja': function () {
                jQuery("#confirmDeletePageDialog").dialog("close");

                $.post("/CMS/DeletePage/" + deletePageId, function (response) {
                    if (response == "Success") {



                        naviChanged = true;

                        editNavigation(praxisVar);

                    } else {
                        messagebox("Fehler", "Die Seite konnte nicht gelöscht werden. Bitte veruschen Sie es später nochmal.");
                    }
                });

            },
            'Nein': function () {
                jQuery("#confirmDeletePageDialog").dialog("close");
            }
        }
    });

    jQuery("#editPageTitleDialog").dialog({
        bgiframe: true, autoOpen: false, buttons: {
            'Speichern': function () {

                jQuery("#editPageTitleDialog").dialog("close");
                data = { title: jQuery("#renamePageInput").attr("value") };

                $.post("/CMS/EditPageTitle/" + editPageTitleId, data, function (response) {
                    if (response == "Success") {

                        naviChanged = true;

                        editNavigation(praxisVar);

                    } else {
                        messagebox("Fehler", "Die Seite konnte nicht umbenannt werden, bitte versuchen Sie es später nochmal.");
                    }
                }, function () {
                    alert("error");
                });
            },
            'Abbrechen': function () {
                jQuery("#editPageTitleDialog").dialog("close");
            }
        }
    });

    jQuery("#addPageDialog").dialog({
        bgiframe: true, autoOpen: false, buttons: {
            'Anlegen': function () {


                jQuery("#addPageDialog").dialog("close");

                var data = { practiceId: jQuery("#addPageDialog #practiceIdInput").attr("value"), title: jQuery("#addPageDialog #addPageTitleInput").attr("value") };

                $.post("/CMS/AddPage", data, function (response) {
                    if (response == "Success") {
                        //refresh the 



                        naviChanged = true;

                        jQuery("#editNavigationDialog").dialog("close");
                        editNavigation(praxisVar);
                    } else {
                        messagebox("Fehler", "Die Seite konnte nicht erstellt werden. Bitte versuchen Sie es später nochmal.");
                    }


                });

                jQuery("#addPageTitleInput").attr("value", "");
            }
        }
    });


});

function deletePage(id) {
    deletePageId = id;

    jQuery("#confirmDeletePageDialog").empty();

    jQuery("#confirmDeletePageDialog").append("Wollen Sie die Seite '" + pageTitles[id] + "' mitsamt Ihrer Inhalte und Unterseiten wirklich unwiderruflich löschen?");

    jQuery("#confirmDeletePageDialog").dialog("open");

    
}

function addSubPage(id) {
    addSubPageId = id;


    
    jQuery("#addSubPageDialog").dialog("open");

    
}

function editPageTitle(id) {

    editPageTitleId = id;
    //alert('editing pagetitle ' + id);

    jQuery("#renamePageInput").attr("value", pageTitles[id]);

    jQuery("#editPageTitleDialog").dialog("open");
}

function movePageElementUp(pageId, elementId) {
    var data = { pageId: pageId, elementId: elementId };

    $.post("/CMS/MovePageElementUp/", data, function (response) {

        if (response == "Success") {


            location.reload();
        } else {
            messagebox("Fehler", "Es ist ein Fehler aufgetreten, bitte versuchen Sie es später erneut.");
        }

    });
}

function movePageElementDown(pageId, elementId) {

    var data = {pageId : pageId, elementId: elementId};

    $.post("/CMS/MovePageElementDown/", data, function (response) {

        if (response == "Success") {
            location.reload();
        } else {
            messagebox("Fehler", "Es ist ein Fehler aufgetreten, bitte versuchen Sie es später erneut.");
        }

    });

}

function movePageUp(id) {

    $.post("/CMS/MovePageUp/" + id, function (response) {

        if (response == "Success") {
            editNavigation(praxisVar);

            naviChanged = true;
        } else {
            messagebox("Fehler","Es ist ein Fehler aufgetreten, bitte versuchen Sie es später erneut.");
        }

    });

    
}

function movePageDown(id) {
    $.post("/CMS/MovePageDown/" + id, function (response) {

        if (response == "Success") {
            editNavigation(praxisVar);

            naviChanged = true;
        } else {
            messagebox("Fehler", "Es ist ein Fehler aufgetreten, bitte versuchen Sie es später erneut.");
        }

    });
}

function addPage() {
    jQuery("#addPageDialog").dialog("open");
}
function addPageToNavigationDialog(page, level) {
    var strich = "";
    if (level > 0) {
        strich = "| ";
    }

    jQuery("#editNavigationDialog").append("<div class='lineDiv' style='border-bottom: 1px dashed black;' ><label style='font-size:12px; font-weight:normal; margin-left: " + (level * 8) + "px;'>" + strich + page.title + "</label><div style='float: right;' class='toolboxContainer' id='toolbox" + page.pageId +"' ><img title='Neue Unterseite hinzufügen' src='/Content/icons/Plus-48.png' alt='Neue Unterseite' onclick='addSubPage(" + page.pageId +");'  /><img title='Seitentitel bearbeiten' src='/Content/icons/Edit.png' alt='Bearbeiten' onclick='editPageTitle(" + page.pageId+  ");'  /><img title='Seite entfernen' src='/Content/icons/Delete.png' alt='Element löschen' onclick='deletePage(" + page.pageId +  ")';  /></div></div>");

    jQuery("#toolbox" + page.pageId).append("<img src='/Content/icons/Symbol_Up.png' title='Seite nach oben verschieben' onclick='movePageUp(" + page.pageId + ");' />");

    jQuery("#toolbox" + page.pageId).append("<img src='/Content/icons/Symbol_Down.png' title='Seite nach oben verschieben' onclick='movePageDown(" + page.pageId + ");' />");

    

    pageTitles[page.pageId] = page.title;

    for (var j = 0; j < page.subPages.length; j++) {
        addPageToNavigationDialog(page.subPages[j],level+1);
    }
}

function editNavigation(praxis) {
    pageTitles = new Array();
    praxisVar=praxis;

    jQuery("#editNavigationDialog").empty();


    $.post("/CMS/NavigationElements/" + praxis, function (elementsResult) {
        

        var pageObject = JSON.parse(elementsResult);




        for (var i = 0; i < pageObject.length; i++) {
            var page = pageObject[i];

            addPageToNavigationDialog(page, 0);
        }
        jQuery("#editNavigationDialog").append("<div style='margin-top:10px;'><a href='#' onclick='addPage(); return false;'>Neue Seite</a></div>");
        jQuery("#editNavigationDialog").dialog("open");

    }, function () {
        alert("error");
    });


}

function showHandleBar(elementId) {


    jQuery("#pe" + elementId + " .handleBar").css("display", "inline");
    jQuery("#pe" + elementId + " .content").css("border", "1px dashed black");

}

function hideHandleBar(elementId) {


    jQuery("#pe" + elementId + " .handleBar").css("display", "none");
    jQuery("#pe" + elementId + " .content").css("border", "none");

}


function addItem(elementId, pageId) {
 

    addElementId = elementId;
    addPageId = pageId;

    jQuery("#chooseElementTypeDialog").dialog("open");

}

function editImageGalleryElement(elementId, pageId) {
    editElementId = elementId;
    editPageId = pageId;

    var data = { pageId : editPageId, elementId: editElementId };

    $.post("/CMS/GetImagesFromGallery", data, function (resp) {
        var jjArray = JSON.parse(resp);
        jQuery("#currentImages").empty();

        jQuery("#currentImages").append("<div class='currentImagesContainer'></div>");

        for (var j = 0; j < jjArray.length; j++) {

            jQuery("#currentImages .currentImagesContainer").append("<div><div style='width:99px;'><img src='" + jjArray[j].image + "' style='border: 0px none; height:70px;'  /></div><div><a href='#' onclick=\"deleteImageFromGallery(" + elementId + "," + pageId + ",'" + jjArray[j].image + "'); return false;\">Entfernen</a></div></div>");
        }
    }, function () {
        alert("error");
    });

    jQuery("#imageGalleryPageId").attr("value", editPageId);
    jQuery("#imageGalleryElementId").attr("value", editElementId);

    jQuery("#editImageGalleryDialog").dialog("open");
}

var reloadPage = false;

function deleteImageFromGallery(elementId, pageid, image) {

    var data = { elementId: elementId, pageId : pageid, image: image };

    $.post("/CMS/DeleteImageFromGallery", data, function (resp) {
        if (resp == "Success") {
            reloadPage = true;
            jQuery("#editImageGalleryDialog").dialog("close");
            editImageGalleryElement(elementId, pageid);

        } else {
            messagebox("Fehler", "Es ist ein Fehler aufgetreten, bitte versuchen Sie es später erneut.");
        }

    });

}

function editImageElement(elementId, pageId) {

    editElementId = elementId;
    editPageId = pageId;

 

    var width = jQuery("#pe" + elementId + " img:last").width();
    var height = jQuery("#pe" + elementId + " img:last").height();

    jQuery("#imageWidthInput").attr("value", width);
    jQuery("#imageHeightInput").attr("value", height);


    jQuery("#styleImageDialog").dialog("open");

}

function editItem(elementId, pageId,content) {
    editElementId = elementId;
    editPageId = pageId;
    

    jQuery("#editTextElement").dialog("open");

    jQuery("#editContentArea").attr("value", jQuery("#" + content).html());

    jQuery("#editContentArea").htmlarea("dispose");

    jQuery("#editContentArea").htmlarea();

    
}

function deleteItem(elementId, pagieId) {
    deletePageElementId = elementId;
    deletePageElementPageId = pagieId;


    jQuery("#deleteElementDialog").dialog("open");

}

function moveItemUp(elementId) {
    alert("not yet implemented");
}

function moveItemDown(elementId) {
    alert("not yet implemented");
}
