$(function() {

    var d;  // pomocne
    var buf_class_blok = $('#nast_s_t').val();  // Buffer
    var buf_n_vel = $('input[name=nast_n_vel]:checked').val();       // Buffer tridy velikosti pisma nazvu nastenky
    var buf_a_vel = $('input[name=nast_a_vel]:checked').val();       // Buffer tridy velikosti pisma autora
    var barva = parseInt($('#nast_typ').val().substr(1, 1)) || 1;            // Citac
    var barev = 7;            // Nemeni se
    var map_class = {         // Namapovani id nahledu na skutecnou tridu
        'n-t1': 'mrak',
        'n-t2': 'srdce',
        'n-t3': 'pap1',
        'n-t4': 'pap2',
        'n-t5': 'pap3'
    };
    var active_tn = 0;            // Buffer
    d = $('#nast_typ').val().substr(3);
    $.each(map_class, function(key, value) {
        if (d == value) {
            active_tn = parseInt(key.substr(3)) - 1;
            return;
        }
    });
    var map_spendliky = {     // Namapovani id nahledu na skutecnou tridu
        'o1': 's-r',
        'o2': 's-y',
        'o3': 's-b',
        'o4': 's-g',
        'o5': 's-m',
        'o6': 's-o',
        'o8': 's-w'
    };
    d = $('#nast_s_b').val();
    var spendlik_barva = 0;
    $.each(map_spendliky, function(key, value) {
        if (d == value) {
            spendlik_barva = parseInt(key.substr(1)) - 1;
            return;
        }
    });
    var tn = $('.typy-nahledy div');
    var barvy = $('.barvy div');
    var spendliky = $('.n-spendliky div');
    var s_barvy = $('.s-barvy div');
    //var posun = $('.nahled .zpet, .nahled .vpred');
    var blok = $('.nahled .blok');
    var nast_s_b = $('#nast_s_b');
    var nast_s_t = $('#nast_s_t');
    var nast_s_p = $('#nast_s_p');
    var blok_s = blok.children().eq(3);
    var pripichnuti = $('input[name=nast_pozice]');
    var buf_pos = $('input[name=nast_pozice]:checked').val();  // Buffer tridy pozice spendliku
    var akt_s = parseInt(nast_s_t.val().substr(1)) - 1;
    var frm_nastenka = $("#frm_nastenka");
    var nast_add_link = $("#nast-add-link");

    var nast_n = $('#nast_n');
    nast_n.autoResize({
        onResize : function() {
            $(this).css({opacity: 0.8});
        },
        animateCallback : function() {
            $(this).css({opacity: 1});
        },
        animateDuration : 300,
        extraSpace : 40
    });
    var nast_n_vel = $('#nast_n_vel');
    var nast_n_col = $('#nast_n_col');
    var d_nast_n_col = $('#d_nast_n_col');
    var ukazatel = $('.n-text .ukazatel');
    var pocet_znaku;

    var nast_a_vel = $('#nast_a_vel');
    var nast_a_col = $('#nast_a_col');
    var d_nast_a_col = $('#d_nast_a_col');

    var nast_p_col = $('#nast_p_col');
    var d_nast_p_col = $('#d_nast_p_col');

    var blok_a = $('.nahled .autor');
    var blok_p = $('.nahled .pocet');
    var blok_n = $('.nahled .nazev');

    var nast_typ = $('#nast_typ');
    var prispevek = $("#prispevek");

    var cp_nn = {
        color: nast_n_col.val(),
        onShow: function (colpkr) {
            $(colpkr).fadeIn(500);
            return false;
        },
        onHide: function (colpkr) {
            $(colpkr).fadeOut(500);
            nast_n_col.val(color);
            d_nast_n_col.css('backgroundColor', '#' + color);
            blok_n.css('color', '#' + color);
            return false;
        },
        onChange: function (hsb, hex, rgb) {
            color = hex;
            var col = 'rgb(' + rgb.r + ', ' + rgb.g + ', '+ rgb.b + ')';
            d_nast_n_col.css('backgroundColor', col);
            blok_n.css('color', col);
        }
    };

    var cp_na = {
        color: nast_a_col.val(),
        onShow: function (colpkr) {
            $(colpkr).fadeIn(500);
            return false;
        },
        onHide: function (colpkr) {
            $(colpkr).fadeOut(500);
            nast_a_col.val(color);
            d_nast_a_col.css('backgroundColor', '#' + color);
            blok_a.css('color', '#' + color);
            return false;
        },
        onChange: function (hsb, hex, rgb) {
            color = hex;
            var col = 'rgb(' + rgb.r + ', ' + rgb.g + ', '+ rgb.b + ')';
            d_nast_a_col.css('backgroundColor', col);
            blok_a.css('color', col);
        }
    };

    var cp_np = {
        color: nast_p_col.val(),
        onShow: function (colpkr) {
            $(colpkr).fadeIn(500);
            return false;
        },
        onHide: function (colpkr) {
            $(colpkr).fadeOut(500);
            nast_p_col.val(color);
            d_nast_p_col.css('backgroundColor', '#' + color);
            blok_p.css('color', '#' + color);
            return false;
        },
        onChange: function (hsb, hex, rgb) {
            color = hex;
            var col = 'rgb(' + rgb.r + ', ' + rgb.g + ', '+ rgb.b + ')';
            d_nast_p_col.css('backgroundColor', col);
            blok_p.css('color', col);
        }
    };


    $('#colorSelector').ColorPicker({
        color: '#0000ff',
        onShow: function (colpkr) {
            $(colpkr).fadeIn(500);
            return false;
        },
        onHide: function (colpkr) {
            $(colpkr).fadeOut(500);
            return false;
        },
        onChange: function (hsb, hex, rgb) {
            $('#colorSelector div').css('backgroundColor', '#' + hex);
        }
    });


    tn.click(function() {
        var t = $(this);
        active_tn = tn.index(t);
        tn.removeClass('tn-selected');
        var o_class = t.attr('class');
        t.addClass('tn-selected');
        barvy.removeClass('b-sel');
        barvy.eq(barva-1).addClass('b-sel');
        blok.fadeOut(200, function() {
            if (buf_class_blok != '') {
                blok.removeClass(buf_class_blok);
            }
            buf_class_blok = 't' + barva + ' ' + map_class[o_class];
            nast_typ.val(buf_class_blok);
            blok.addClass(buf_class_blok);
            blok.fadeIn(200);
        });
    });

    //posun.click(function() {
    //    var t = $(this);
    //    trida = t.attr('class');
    //    if (trida == 'vpred') {
    //        if (barva == barev) {
    //            barva = 1;
    //        }
    //        else {
    //            barva += 1;
    //        }
    //    }
    //    else {
    //        if (barva == 1) {
    //            barva = barev;
    //        }
    //        else {
    //            barva -= 1;
    //        }
    //    }
    //    tn.eq(active_tn).click();
    //});

    barvy.click(function() {
        var t = $(this);
        barva = parseInt(t.attr('class').substr(1));
        tn.eq(active_tn).click();
    });

    nast_n.bind('keyup change', function() {
        pocet_znaku = this.value.length;
        var b = 'green';
        if (pocet_znaku > 60 && pocet_znaku < 100) {
            b = 'orange';
        }
        else if (pocet_znaku > 99) {
            b = 'red';
            if (pocet_znaku > 100) {
                this.value = this.value.substr(0, 100);
                nast_n.focus();
            }
            pocet_znaku = 100;
        }
        ukazatel.css({width: pocet_znaku + '%', backgroundColor: b});
        blok_n.html(this.value.replace(/\n/g, "<br>"));
    });

    nast_n_vel.change(function() {
        nast_n.focus();
        if (buf_n_vel) {
            blok_n.removeClass(buf_n_vel);
        }
        buf_n_vel = 'fs' + this.value;
        blok_n.addClass(buf_n_vel);
    });

    nast_a_vel.change(function() {
        if (buf_a_vel) {
            blok_a.removeClass(buf_a_vel);
        }
        buf_a_vel = 'fs' + this.value;
        blok_a.addClass(buf_a_vel);
    });

    s_barvy.click(function() {
        var t = $(this);
        s_barvy.fadeIn(200);
        s_barvy.removeClass('b-sel');
        trida = this.className;
        spendliky.parent().fadeOut(200, function() {
            spendliky.removeClass(nast_s_b.val());
            spendlik = map_spendliky[trida];
            nast_s_b.val(spendlik);
            spendliky.addClass(spendlik);
            spendliky.parent().fadeIn(200);
            spendliky.eq(akt_s).click();
        });
        t.addClass('b-sel');
    });

    spendliky.click(function() {
        blok_s.removeClass();
        var trida = this.className;
        nast_s_t.val(trida.substr(2, 2));
        akt_s = parseInt(nast_s_t.val().substr(1)) - 1;
        if (buf_pos == 'l' || buf_pos == 'c' || buf_pos == 'r') {
            blok_s.show();
            blok_s.addClass(buf_pos + ' ' + trida);
        }
    });

    pripichnuti.bind('change click', function() {
        var buf_pos1 = this.value;
        nast_s_p.val(buf_pos1);
        blok_s.removeClass(buf_pos);
        if (buf_pos1 == 'l' || buf_pos1 == 'c' || buf_pos1 == 'r') {
            blok_s.show();
            buf_pos = buf_pos1;
            spendliky.eq(akt_s).click();
        }
        else {
            blok_s.hide();
        }

    });

    frm_nastenka.submit(function() {
        var stav = true;
        var msg = '';
        if (nast_n.val().length < 5) {
            msg += "Musí vyplnit název nástěnky, který je dlouhý alespoň 5 znaků!";
            stav = false;
        }
        if (prispevek.val().length < 5) {
            if (msg != '') {
                msg += "\n";
            }
            msg += "Musí vyplnit první příspěvek na nástěnce, který musí být dlouhý alespoň 5 znaků!";
            stav = false;
        }
        if (msg != '') {
            alert(msg);
        }
        return stav;
    });

    nast_add_link.click(function() {
        if ($('.nast-add').is(":hidden")) {
            $('.nast-add').show();
        }
        else {
            $('.nast-add').hide();
        }
    });

    tn.eq(active_tn).click();
    nast_n.change();
    nast_n.focus();
    s_barvy.eq(spendlik_barva).click();

    var color = nast_n_col.val();
    d_nast_n_col.css('backgroundColor', '#' + color);
    blok_n.css('color', '#' + color);
    d_nast_n_col.ColorPicker(cp_nn);
    nast_n_vel.change();

    color = nast_a_col.val();
    d_nast_a_col.css('backgroundColor', '#' + color);
    blok_a.css('color', '#' + color);
    d_nast_a_col.ColorPicker(cp_na);
    nast_a_vel.change();

    color = nast_p_col.val();
    d_nast_p_col.css('backgroundColor', '#' + color);
    blok_p.css('color', '#' + color);
    d_nast_p_col.ColorPicker(cp_np);
});

function del_nast_confirm() {
    return confirm("Opravdu chce nástěnku smazat??");
}