$(document).ready(function() {
    // csrf token
    function getCookie(name) { 
        var cookieValue = null; 
        if (document.cookie && document.cookie != '') { 
            var cookies = document.cookie.split(';'); 
            for (var i = 0; i < cookies.length; i++) { 
                var cookie = jQuery.trim(cookies[i]); 
                // Does this cookie string begin with the name we want? 
                if (cookie.substring(0, name.length + 1) == (name + '=')) { 
                   cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); 
                    break; 
                } 
            } 
        } 
        return cookieValue; 
    }
    
    if(!(getCookie('csrftoken'))) {
        var umfrageid = $("#umfrage_id").val();
        
        $("#umfrage_" + umfrageid + "_messages").hide();
        $("#umfrage_" + umfrageid + "_messages li").replaceWith('<li class="error">Ein Cookie konnte nicht gespeichert werden. Abstimmung nicht möglich.</li>');
        $("#umfrage_" + umfrageid + "_messages").fadeIn("slow", 
            function () {
            $("#umfrage_" + umfrageid + "_messages").click(function () {
                $("#umfrage_" + umfrageid + "_messages").fadeOut();
            });
            }
        );
    }

    var vote = function() {
        var auswahlid = $("input[name='umfragen_auswahl']:radio:checked").val();
        var csrf = getCookie('csrftoken'); 
        if($("input[name='umfragen_auswahl']:radio:checked").length > 0){
            // store value in data variable
            var data = { auswahl: auswahlid, 'csrfmiddlewaretoken': csrf };
            $.post("/umfragen/", data,
                function(data){
                    if($("#umfragen_ergebnisse_zeilen").length > 0){
                        var umfrage_id = 0;
                        $("#umfragen_ergebnisse_zeilen").remove();
                        $(".chartscontainer").remove();
                        // Add the umfragen_ergebnisse_zeilen tbody to umfragen_ergebnis_chart table
                        $("#umfragen_ergebnis_chart").append("<tbody id='umfragen_ergebnisse_zeilen'></tbody>");
                        $.each(data["auswahl_data"], function(i, item){
                            if(item.model == "umfragen.auswahl"){
                                $("#umfragen_ergebnisse_zeilen").append("<tr><td>" + item.fields.auswahl + "</td><td>" + item.fields.votes + "</tr>");
                                if (item.fields.umfrage > 0) {
                                    umfrage_id = item.fields.umfrage
                                }
                            }
                        });
                        $("#umfragen_ergebnisse_zeilen").append("<tr></tr>");
                        // zeichne chart durch jquery.charts.js an stelle der tabelle
                        $("#umfragen_ergebnis_chart").charts();
                        // Message
                        if (umfrage_id > 0) {
                            if(data["message"]["text"]) {
                                $("#umfrage_" + umfrage_id + "_messages").hide();
                                $("#umfrage_" + umfrage_id + "_messages li").replaceWith('<li class="' + data["message"]["class"] + '">' + data["message"]["text"] + '</li>');
                                $("#umfrage_" + umfrage_id + "_messages").fadeIn("slow", 
                                    function () {
                                        $("#umfrage_" + umfrage_id + "_messages").click(function () {
                                            $("#umfrage_" + umfrage_id + "_messages").fadeOut();
                                        });
                                    }
                                );
                            }
                        }
                    }
                }
            );
        }
      return false;
    };

    // attach the click handler to the button
    $("#submit_vote").click(vote);
    // zeige chart durch jquery.charts.js an stelle der tabelle
    $("#umfragen_ergebnis_chart").charts();
    // attach the click handler to blende ergebnis für abstimmung ein
    $("#umfragen_ergebnis_anzeigen").click(function () {
        $("#umfragen_abstimmung").fadeOut("slow", function () {$("#umfragen_ergebnisse").fadeIn("slow");});
    });
    // attach the click handler to blende abstimmung für ergebnis ein
    $("#umfragen_abstimmung_anzeigen").click(function () {
        $("#umfragen_ergebnisse").fadeOut("slow", function () {$("#umfragen_abstimmung").fadeIn("slow");});
    });
});

