function loadNews(){
    options = {
        'sessionid': sessionid,
        'module': 'news',
        'submodule': 'seite',
        'action': 'read',
        'typ': typ,
        'manr': manr,
        'show_valid': 'true'
    }

    $.post('ajax.php?sessionid='+sessionid, options, function(data_active){
    //$.getJSON('ajax.php', options, function(data_active){

        data_active = data_active[0];

        if (news_edit_mode == 1){ // editmode
            if (seite_id != null){
                options = {
                    'sessionid': sessionid,
                    'module': 'news',
                    'submodule': 'seite',
                    'id': seite_id,
                    'action': 'read',
                    'show_valid': 'false'
                }
            } else {
                options = {
                    'sessionid': sessionid,
                    'module': 'news',
                    'submodule': 'seite',
                    'action': 'read',
                    'typ': typ,
                    'manr': manr,
                    'show_valid': 'true'
                }
            }

            $.post('ajax.php?sessionid='+sessionid, options, function(data_seite){
            //$.getJSON('ajax.php', options, function(data_seite){

                $('#news_page').children().remove();

                data_seite = data_seite[0];
                if (data_seite != undefined){
                    if (typeof(data_seite.anordnung) == "string") {
                        data_seite.anordnung = JSON.parse(data_seite.anordnung);
                    }
                    seite_id = data_seite.id;
                    showBoxes(data_seite);

                    showEditModeStuff(data_active.id);
                } else {
                    // keine seite gefunden (manr?)
                    showEditModeStuff(-1);
                }
            }); // post um die aktive Seite zu laden
        } else {
             $('#news_page').children().remove();

            data_seite = data_active;

            if (data_seite != undefined){
                if (typeof(data_seite.anordnung) == "string") {
                    data_seite.anordnung = JSON.parse(data_seite.anordnung);
                }
                seite_id = data_seite.id;
                showBoxes(data_seite);
            } else {
                // keine seite gefunden (manr?)
            }

            if (permissions.edit_news){

                $('#news_page_control').children().remove();

                $('#news_page_control').append('<div class="ui_start_edit_news float_right size_small" style="position: relative; top: -5px;">\n\
                                            <a title="Den Editor zum Bearbeiten der Seite starten">[Seite bearbeiten]</a>\n\
                                        </div>');
            }
        }
    }); // post um die aktive Seite zu laden
}


function showBoxes(data_seite){
    if (news_edit_mode == 1){ // editmode
        $('#news_page').append('<div id="edit_sep_addline" style="width:100%; height: 10px">\n\
                                </div>\n\
                                <div style="width: 100%">\n\
                                    <button class="news_page_add_line" id="news_addline" style="width: 100%; text-align:center">Neue Zeile hinzufügen</button>\n\
                                </div>');

        options = {
            'sessionid': sessionid,
            'module': 'news',
            'submodule': 'box',
            'seite_id': data_seite.id,
            'action': 'read',
            'show_valid': 'false'
        }
    } else {
        options = {
            'sessionid': sessionid,
            'module': 'news',
            'submodule': 'box',
            'seite_id': data_seite.id,
            'action': 'read'
        }
    }

    $.post('ajax.php?sessionid='+sessionid, options, function(boxes_seite){
    //$.getJSON('ajax.php', options, function(boxes_seite){
        $.each(data_seite.anordnung, function (line, boxes){
           if (news_edit_mode == 1){ // editmode
               var id = addLine($('#news_page #edit_sep_addline'));
           } else {
               var id = addLine($('#news_page'));
           }

           $.each(boxes, function (key, box_id){
                if (boxes_seite[box_id] != null){
                    addBox('#' + id, boxes_seite[box_id]);
                }
           });

           var $line = $('#'+id + " .subcolumns")

           var len = $line.first().children().length;

           // Bei einer Box muessen wir nichts tun, da diese die komplette Breite einnimmt
           if (len == 1){
               $line.first()
                    .addClass('os1eb')
                    .removeClass('news-box-top')
                    .find('.news_portlet')
                        .addClass('os1eb ' + ((news_edit_mode == 0) ? 'is15pa' : ''));

               if ($line.length > 1) {
                    $line.last().remove();
               }
               $line.children().show();
           } else {
               var percent = Math.floor(100 / len);
               $line.each(function(){
                   $(this)
                       .children(':not(:last)')
                            .addClass('c' + percent + 'l')
                            .children(":first")
                                .addClass('subcl')
                                .end()
                            .children(":not(:first)")
                                .addClass('subc')
                                .end()
                            .end()
                        .children(':last').addClass('c' + percent + 'r')
                            .children(":last")
                                .addClass('subcr')
                                .end()
                            .end()
                        .children()
                            .show();
               })
           }
        });
   }, 'json');
}

function showEditModeStuff(active_ID){
   

// Editor fuer Newsboxen aufbauen (dialog)
    $('#news_editor').dialog({
        autoOpen: false,
        width: $(window).width() * 0.75,
        height: $(window).height() * 0.75,
        stack: false,
        close: function(event, ui) {
            $('#news_editor .wysiwyg').remove();
        },
        buttons: {
            'Abbrechen': function() {
                if (confirm("Dialog ohne zu Speichern schliessen?") == true){
                    $('#news_editor .wysiwyg').remove();
                    $(this).dialog('close');
                }
            },
            'Speichern': function() {
                var box_id = closeEditorDialog();
                updateBox(box_id)
                $(this).dialog('close');
            }
        }
    })

//    // Dialog zum erstellen neuer Staende'
//    $('#edit_createSeite').dialog({
//        autoOpen: false,
//        width: $(window).width() * 0.75,
//        height: $(window).height() * 0.75,
//        stack: false,
//        close: function(event, ui) {
//        },
//        buttons: {
//            'Abbrechen': function() {
//                $(this).dialog('close');
//            },
//            'Erstellen': function() {
//                createSeite();
//                $(this).dialog('close');
//            }
//        }
//    })

    var options = {
        'sessionid': sessionid,
        'module': 'news',
        'submodule': 'seite',
        'action': 'read',
        'show_valid': 'false',
        'typ': typ, // def=1: News Seite *nicht login(
        'manr': manr // def=2: so gew'hlt hier'
    }

    $.post('ajax.php?sessionid='+sessionid, options, function(data){

        $('#news_page_control').children().remove();

        if (malist != null){
            var seiten_manr = '<select id="select_manr">';

            $.each(malist.split(","), function (id, temp_manr){
                if (temp_manr == manr){
                    seiten_manr += '<option value="'+temp_manr+'" selected="selected">* '+temp_manr+'</option>';
                } else {
                    seiten_manr += '<option value="'+temp_manr+'">'+temp_manr+'</option>';
                }
            });
            seiten_manr += '</select>';

            $('#news_page_control').append(seiten_manr);
            $('#news_page_control').append('<input type="button" id="select_manr_button" value="Manr wechseln"/>');
        }

        var seiten_select = '<select id="select_seite">';

        $.each(data, function (id, seite){
            
            if (seite.id == active_ID){
                if (seite.id == seite_id){
                    seiten_select += '<option value="'+seite.id+'" selected="selected">* '+seite.beschreibung+' (ID: '+seite.id+')</option>';
                } else {
                    seiten_select += '<option value="'+seite.id+'">* '+seite.beschreibung+' (ID: '+seite.id+')</option>';
                }
            } else {
                if (seite.id == seite_id){
                    seiten_select += '<option value="'+seite.id+'" selected="selected">'+seite.beschreibung+' (ID: '+seite.id+')</option>';
                } else {
                    seiten_select += '<option value="'+seite.id+'">'+seite.beschreibung+' (ID: '+seite.id+')</option>';
                }
            }
        });
        seiten_select += '</select>';

        $('#news_page_control').append(seiten_select);
        $('#news_page_control').append('<div class="ui_end_edit_news float_right size_small" style="position: relative; top: -5px;">\n\
                                            <a title="Den Editor zum Bearbeiten der Seite schlie-en">[Zurück in Live-Modus]</a>\n\
                                        </div>');
        $('#news_page_control').append('<input type="button" id="select_seite_button" value="Seite wechseln"/>');
        $('#news_page_control').append('<input type="button" id="create_seite_button" value="Seite erstellen"/>');
        $('#news_page_control').append('<input type="button" id="edit_seite_button" value="Geladene Seite bearbeiten"/>');
        $('#news_page_control').append('<input type="button" id="delete_seite_button" value="Geladene Seite löschen"/>');
    }, 'json');
}

function createSeite(decription){

    var options = {
        'sessionid': sessionid,
        'module': 'news',
        'submodule': 'seite',
        'action': 'create',
        'beschreibung': decription,
        'typ': typ, // def=1: News Seite *nicht login(
        'manr': $('#create_seite_manr').val(), // def=2: so gew'hlt hier'
        'ausrichtung': ausrichtung // def=0: Zeile
    }

    $.post('ajax.php?sessionid='+sessionid, options, function(data){
        seite_id = data.id;
        manr = $('#create_seite_manr').val();

        loadNews();
    });
}

function updateSeite(id, manr, descr, gueltig_ab, gueltig_bis){

    var options = {
        'sessionid': sessionid,
        'module': 'news',
        'submodule': 'seite',
        'action': 'update',
        'id': id,
        'manr': manr, 
        'beschreibung': descr,
        'gueltig_ab': gueltig_ab,
        'gueltig_bis': gueltig_bis,
        'anordnung': new Array()
    }

    $.post('ajax.php?sessionid='+sessionid, options, function(data){
        loadNews();
    });
}
function deleteSeite(id){

    var options = {
        'sessionid': sessionid,
        'module': 'news',
        'submodule': 'seite',
        'action': 'delete',
        'id': id
    }

    $.post('ajax.php?sessionid='+sessionid, options, function(data){
        seite_id = null;
        loadNews();
    });
}

var line_id = 1;
function addLine(parent){
    var next_id = line_id;
    line_id ++;

    if (news_edit_mode == 1){ // editmode
        $(parent).before('<div id="news_line_'+next_id+'" title="News Zeile" class="news_portlet news_page_line_portlet ui-widget ui-widget-content ui-helper-clearfix ui-corner-all os1et">\n\
                    <div class="portlet-header news_page_line_header  ui-widget-header ui-corner-all clearfix">\n\
                        <span class="ui-icon ui-icon-close" title="Zeile löschen"></span>\n\
                        <img alt="Hinzufügen" src="templates/shc/images/page_white.png" class="news_page_add_box cursor_pointer" id="news_addbox_inline_'+next_id+'" style="float:right;" title="Box hinzufügen"/>\n\
                    </div>\n\
                    <div class="portlet-content">\n\
                        <div class="subcolumns equalize news-box-top news_page_line is1et" style="float: left; min-height:50px">\n\
                        </div>\n\
                    </div>\n\
                </div>');
    } else {
        $(parent).append('<div id="news_line_'+next_id+'" class="news_portlet news_page_line_portlet ui-helper-clearfix ui-corner-all" >\n\
                    <div class="portlet-content">\n\
                        <div class="subcolumns equalize news-box-top news_page_line">\n\
                        </div>\n\
                        <div class="subcolumns equalize no-ie-padding news-box-bottom os1eb">\n\
                        </div>\n\
                    </div>\n\
                </div>');
    }
    return 'news_line_'+next_id;
}

function addBox(component, box){
    if (news_edit_mode == 1){ // editmode
        var show_from = "";
        if (box.gueltig_ab != null){
            show_from = '<span class="gueltig_ab">'+box.gueltig_ab+'</span>';
        } else {
            show_from = ' immer<span class="gueltig_ab"></span>';
        }
        var show_to = "";
        if (box.gueltig_bis != null){
            show_to = '<span class="gueltig_bis">'+box.gueltig_bis+'</span>';
        } else {
            show_to = ' immer<span class="gueltig_bis"></span>';
        }

        $(component).children('.portlet-content').children('.news_page_line').append('\
            <div id="news_box_'+box.id+'"class="" style="display: none;">\n\
                <div title="News Box" class="news_portlet news_page_box_portlet ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"">\n\
                    <div class="portlet-header news_page_box_header ui-widget-header ui-corner-all">\n\
                        <span class="ui-icon ui-icon-close" title="Box löschen"></span>\n\
                        <span class="ui-icon ui-icon-pencil" title="Box bearbeiten"></span>\n\
                        wird angezeigt von '+show_from+' \n\
                        bis '+show_to+'\n\
                        <div class="titel">'+box.titel+'</div>\n\
                    </div>\n\
                    <div class="portlet-content">'+box.inhalt+'</div>\n\
                    <div class="portlet-content_unfetched" style="display: none;">'+box.inhalt_unfetched+'</div>\n\\n\
                 </div> \n\
            </div>');
        
            // Das 2. div wird nur hinzugefuegt und wieder geloscht, dass er die portlets neu anordnet und das eigentliche neue div
            // in dre richtigen zeile landet.
            $(component).children('.portlet-content').children('.news_page_line').append('<div id="dummy_box_delete"></div>');
            $('#dummy_box_delete').remove();

            setSortable();
    } else {
        $(component).children('.portlet-content').children('.news_page_line').append('\
            <div class="" style="display: none;">\n\
                <div id="news_box_'+box.id+'" class="news_portlet news_page_box_portlet container ui-helper-clearfix ui-corner-all">\n\
                    <div class="portlet-content clearfix">\n\
                        <h2>'+box.titel+'</h2>\n\
                    </div>\n\
                </div>\n\
            </div>').next().append('<div style="display: none;"><div class="container"></div></div>');

        $('#news_box_'+box.id+' .portlet-content').html(box.inhalt);

        $(component).children('.portlet-content').children('.news_page_line').append('<div id="dummy_box_delete" style="display: none;"></div>');
        $('#dummy_box_delete').remove();

//        $('.news_page_box_portlet').each(function(){
//            $(this).height($(this).parent().height() - ($(this).innerHeight() - $(this).height()))
//        })
    }
}

function createBox(component){
    var def_titel = 'News-Box';
    var def_inhalt = 'News-Box';

    options = {
        'sessionid': sessionid,
        'module': 'news',
        'submodule': 'box',
        'titel': def_titel,
        'inhalt': def_inhalt,
        'seite_id': seite_id,
        'action': 'create'
    }

    $.post('ajax.php?sessionid='+sessionid, options, function(data){

        data['inhalt_unfetched'] = data['inhalt'];

        addBox($(component).parents('.news_page_line_portlet'), data);

        saveNewAnordnung();

        return 'news_box_'+data.id;
    }, 'json');
}

function updateBox(box_id){
    var id = getNumberFromID(box_id);

    options = {
        'sessionid': sessionid,
        'module': 'news',
        'submodule': 'box',
        'id': id,
        'action': 'update',
        'titel': $('#edit_header').val(),
        'inhalt': $('#wysiwyg').val(),
        'gueltig_ab': $('#edit_valid_from').val(),
        'gueltig_bis': (($('#edit_valid_to').val() != "")? $('#edit_valid_to').val() + ' 23:59' : "")
    }

    $.post('ajax.php?sessionid='+sessionid, options, function(data){
        $('#'+box_id+' .portlet-content').html(data);
        $('#'+box_id+' .portlet-content_unfetched').html($('#wysiwyg').val());
    });
}

/**
 * Die Funktion setzt die Sortable Funktion auf die Portlets.
 * Einmal auf die #news_page, damit die einzelnen Zeilen verschiebbar sind
 * Und auf jede news_page_line, damit die boxen dadrin verschiebbar sind
 */
function setSortable(){
//
    $("#news_page").sortable({
            handle: '.news_page_line_header',
            placeholder: 'ui-state-highlight is1ea',
            update: function(){
                saveNewAnordnung();
            }
        });
    $("#news_page").disableSelection();

    $(".news_page_line").sortable({connectWith: '.news_page_line',
                           placeholder: 'ui-state-highlight is1ea os1et',
                           update: function(){
                            },
                            stop: function(){
                               saveNewAnordnung();
                            }
                         });
    $(".news_page_line").disableSelection();

}

function saveNewAnordnung(){
    var seite = new Array();

    var lines = $('#news_page').sortable( "toArray" ); // arraz f[r alle lines erstellen
    lines.splice(lines.length-2,2); // die letyten beiden lines m[ssen entfernt werden (add-line-button, und noch ne dummy-line)

    $.each(lines, function(index,   line_id){
        var boxes = $('#' + line_id + ' .news_page_line').sortable( "toArray" );
        var line = new Array();

        $.each(boxes, function(index, box_id){
            line[line.length] = getNumberFromID(box_id); // holt die eigentlich id (yahlenwert) aus dre id raus
        });

        if (line.length > 0){
            seite[seite.length] = line;
        }
    })

    options = {
        'sessionid': sessionid,
        'module': 'news',
        'submodule': 'seite',
        'id': seite_id,
        'action': 'update',
        'anordnung': JSON.stringify(seite)
    }
    $.post('ajax.php?sessionid='+sessionid, options, function(data){
        loadNews();
    });

}


function getNumberFromID(id){
    var r = id.match(/[\d\.]+/g);
    return r[0];
}

function closeEditorDialog(){
    var show_from = "";
    if ($('#edit_valid_from').val() != ""){
        show_from = '<span class="gueltig_ab">'+$('#edit_valid_from').val()+'</span>';
    } else {
        show_from = ' immer<span class="gueltig_ab"></span>';
    }
    var show_to = "";
    if ($('#edit_valid_to').val() != ""){
        show_to = '<span class="gueltig_bis">'+$('#edit_valid_to').val()+'</span>';
    } else {
        show_to = ' immer<span class="gueltig_bis"></span>';
    }

    // Header der Box setzen
    var header = $('#'+box_id+' .portlet-header');
    header.text("");
    header.prepend('<div class="titel">' + $('#edit_header').val() + '</div>');
    header.prepend(' bis '+show_to+'<br>');
    header.prepend('wird angezeigt von '+show_from);
    header.prepend('<span class="ui-icon ui-icon-pencil" title="Box bearbeiten"></span>');
    header.prepend('<span class="ui-icon ui-icon-close" title="Box löschen"></span>');

    $('#'+box_id+' .portlet-content').html($('#wysiwyg').val());
    $('#'+box_id+' .portlet-content_unfetched').html($('#wysiwyg').val());

    $('#news_editor .wysiwyg').remove();
    return box_id;
}



function initEditorDialog(id){
    box_id = id;
    
    var box = $('#news_editor');
    box.dialog('open');

    $('#edit_addimage').dialog({
            autoOpen: false,
            width: $(window).width() * 0.5,
            height: $(window).height() * 0.3,
            modal: true,
            close: function(event, ui) {},
            buttons: {
                'Abbrechen': function() {
                    $(this).dialog('close');
                },
                'Hinzufügen': function() {
                    $('#wysiwyg').wysiwyg('insertImage', $('#addimage_url').attr('value'), $('#addimage_alt').attr('value'), $('#addimage_float').val(), $('#addimage_link').attr('value'));
                    $('#addimage_url').val('');
                    $('#addimage_alt').val('');
                    $('#addimage_float').val(0);
                    $('#addimage_link').val('');
                    $(this).dialog('close');
                }
            }
        })

    $('#edit_addsmartyfunction').dialog({
        autoOpen: false,
        width: $(window).width() * 0.3,
        height: $(window).height() * 0.8,
        modal: true,
        close: function(event, ui) {},
        buttons: {
            'Abbrechen': function() {
                $('#addarticle_arnr').val('');
                $('#addarticle_article').val('');
                $('#addarticle_show_arnr').attr('checked', false);
                $('#addarticle_show_name1').attr('checked', false);
                $('#addarticle_show_name2').attr('checked', false);
                $('#addarticle_show_name3').attr('checked', false);
                $('#addarticle_show_description').attr('checked', false);
                $('#addarticle_show_preis_ek_mit').attr('checked', false);
                $('#addarticle_show_preis_ek_ohne').attr('checked', false);
                $('#addarticle_show_preis_brutto_mit').attr('checked', false);
                $('#addarticle_show_preis_brutto_ohne').attr('checked', false);
                $('#addarticle_show_picture').attr('checked', false);
                $(this).dialog('close');
            },
            'Hinzufügen': function() {
                $('#wysiwyg').wysiwyg('insertArticle', $('#addarticle_arnr').val(),
                                        $('#addarticle_show_arnr').attr('checked'),
                                        $('#addarticle_show_name1').attr('checked'),
                                        $('#addarticle_show_name2').attr('checked'),
                                        $('#addarticle_show_name3').attr('checked'),
                                        $('#addarticle_show_description').attr('checked'),
                                        $('#addarticle_show_preis_ek_mit').attr('checked'),
                                        $('#addarticle_show_preis_ek_ohne').attr('checked'),
                                        $('#addarticle_show_preis_brutto_mit').attr('checked'),
                                        $('#addarticle_show_preis_brutto_ohne').attr('checked'),
                                        $('#addarticle_show_picture').attr('checked')
                                    );
                $('#addarticle_arnr').val('');
                $('#addarticle_article').val('');
                $('#addarticle_show_arnr').attr('checked', false);
                $('#addarticle_show_name1').attr('checked', false);
                $('#addarticle_show_name2').attr('checked', false);
                $('#addarticle_show_name3').attr('checked', false);
                $('#addarticle_show_description').attr('checked', false);
                $('#addarticle_show_preis_ek_mit').attr('checked', false);
                $('#addarticle_show_preis_ek_ohne').attr('checked', false);
                $('#addarticle_show_preis_brutto_mit').attr('checked', false);
                $('#addarticle_show_preis_brutto_ohne').attr('checked', false);
                $('#addarticle_show_picture').attr('checked', false);
                
                $(this).dialog('close');
            }
        }
    })

    $('#addarticle_arnr').live("change", function(){
        options = {
            'sessionid': sessionid,
            'module': 'news',
            'submodule': 'box',
            'action': 'getarticle',
            'arnr': $('#addarticle_arnr').val()
        }

        $.post('ajax.php?sessionid='+sessionid, options, function(data){
            if (data == ""){
                // Kein Artikel yu der arnr gefunden
                $('#addarticle_article').val("Kein Artikel gefunden");
            } else {
                // Artikel ist vorhanden
                data = data[0];
                $('#addarticle_article').val(data.name1);                
            }
        });
    });


    $('#edit_addhtmlcode').dialog({
            autoOpen: false,
            width: $(window).width() * 0.5,
            height: $(window).height() * 0.3,
            modal: true,
            close: function(event, ui) {},
            buttons: {
                'Abbrechen': function() {
                    $(this).dialog('close');
                    $('#addhtml').val('');
                },
                'Hinzufügen': function() {
                    $('#wysiwyg').wysiwyg('insertHTMLCode', $('#addhtml').val());
                    $('#addhtml').val('');
                    $(this).dialog('close');
                }
            }
        })

    $('#edit_set_font_color').dialog({
            autoOpen: false,
            width: $(window).width() * 0.5,
            height: $(window).height() * 0.3,
            modal: true,
            close: function(event, ui) {},
            buttons: {
                'Abbrechen': function() {
                    $(this).dialog('close');
                },
                'Übernehmen': function() {
                    if ($('#font_color_hex').val() == ""){
                        $('#wysiwyg').wysiwyg('foreColor', $('#font_color').val());
                    } else {
                        $('#wysiwyg').wysiwyg('foreColor', '#' + $('#font_color_hex').val());
                    }
                    $(this).dialog('close');
                }
            }
        })
    $('#edit_set_font_name').dialog({
            autoOpen: false,
            width: $(window).width() * 0.5,
            height: $(window).height() * 0.3,
            modal: true,
            close: function(event, ui) {},
            buttons: {
                'Abbrechen': function() {
                    $(this).dialog('close');
                },
                'Übernehmen': function() {
                    $('#wysiwyg').wysiwyg('fontName', $('#font_name').val());
//                    $('#font_name').val('');
                    $(this).dialog('close');
                }
            }
        })
    $('#edit_set_font_size').dialog({
            autoOpen: false,
            width: $(window).width() * 0.5,
            height: $(window).height() * 0.3,
            modal: true,
            close: function(event, ui) {},
            buttons: {
                'Abbrechen': function() {
                    $(this).dialog('close');
                },
                'Übernehmen': function() {
                    $('#wysiwyg').wysiwyg('fontSize', $('#font_size').val());
//                    $('#font_size').val('');
                    $(this).dialog('close');
                }
            }
        })
    $('#wysiwyg').val($('#'+id+' .portlet-content_unfetched').html());
    $('#edit_header').val($('#'+id+' .portlet-header .titel').text());
    $('#edit_valid_from').val($('#'+id+' .portlet-header .gueltig_ab').text());
    $('#edit_valid_to').val($('#'+id+' .portlet-header .gueltig_bis').text());

    $('#wysiwyg').wysiwyg({});
}
