jQuery.fn.delay = function(time, func)
{
    this.each
    (
        function()
        {
            setTimeout(func,time);
        }
    );
    
    return this;
};



$.ajaxSettings.cache = false;


// JS die geladen moet worden bij het laden van de site.

window.onload = function()
{
    var loadedPage = "";
    
    // Klik button afhandelen.
    
    $('.click').click
    (
        function()
        {   
            // Stand.
            
            if (this.id == 'stand')
            {
                loadPage("pages/politieke_partijen_stand.php");
                
                // Het laden van de gegevens (laatste 7 dagen).
                
                $('#poli_votesLastSevenDays').html('<img src="ajax-loader.gif">'); 
                var result = $.ajax({url: "pages/politieke_partijen_stand.php?q=last_seven_days", async: false}).responseText;
                $('#poli_votesLastSevenDays').html(result);     
            }
        }
    );  
    
    
    // Home link catcher.
    
    $('.homeLink').click
    (
        function ()
        {
            window.location = "http://www.nederlandkiestopnieuw.nl/";
        }
    );
    
    
    // Klik button hover.
    
    $(".click").hover ( function() { $(this).css('text-decoration', 'none'); }, function() { $(this).css('text-decoration', 'underline'); });
    
    
    // Result box dialog.
    
    $("#result_box").dialog
    (
        {
            width: 600,
            minHeight: 50,
            title: '&nbsp;',
            zIndex: 1000000,
            modal: true,
            autoOpen: false
        }
    );
    
    // Inladen van de divs.
    
    var result = $.ajax({url: "ajax.php?q=getVote", async: false}).responseText;
    $('#poli_vote').html(result);
    $('#poli_vote').css('display', 'block');
    
    var poll = $.ajax({url: "ajax.php?q=getPoll", async: false}).responseText;
    $('#poll_box').html(poll);
    
    
    handleVote();
    handlePoll();
}


 
// Stemmen afvangen (politieke partijen). 

function handleVote()
{
    // Klik afvangen.
    
    $('.catchVote').click
    (
        function()
        {
            $('#result_box').dialog('open');
            $('#result_box').html('<img src="ajax-loader.gif">');
            
            var polPartij = $('input[name=pollPoliVote]:checked').val();
            
            if (polPartij)
            {
                var result = $.ajax({url: "ajax.php?q=doVote&partij_id="+polPartij, async: false}).responseText;
                
                // Stem OK
                
                if (result == '1')
                {
                    // Als de stand pagina is geladen, dan deze gelijk updaten.
                    
                    if (loadedPage == 'pages/politieke_partijen_stand.php')
                    {
                        loadPage("pages/politieke_partijen_stand.php");
                        
                        // Het laden van de gegevens (laatste 7 dagen).
                        
                        $('#poli_votesLastSevenDays').html('<img src="ajax-loader.gif">'); 
                        var result = $.ajax({url: "pages/politieke_partijen_stand.php?q=last_seven_days", async: false}).responseText;
                        $('#poli_votesLastSevenDays').html(result);    
                    }    
                    
                    $('#result_box').html("Bedankt voor uw stem! <br /> <br /> <a href=\'javascript:closeDialog();\'>Ga terug naar de website.</a>");
                    $('#indexPartijVote').html('<div align="center">Bedankt voor uw stem!</div>');
                }
                
                // Er is al gestemd.
                
                else if (result == '2')
                {
                    $('#result_box').html("U heeft al een keer gestemd deze week, uw stem word dus niet mee genomen in de resultaten. <br /> <br /> <a href=\'javascript:closeDialog();\'>Ga terug naar de website.</a>");    
                }
                
                // NOT NL
                
                else if (result == '4')
                {
                    $('#result_box').html("Uw stem wordt niet meegenomen in de resultaten.<br />Stemmen kunnen alleen worden verzonden vanuit Nederland en niet vanuit privé-netwerken van bijvoorbeeld bedrijven en scholen. <br /> <br /> <a href=\'javascript:closeDialog();\'>Ga terug naar de website.</a>");    
                }
            }
            
            
            // Geen partij gekozen -> error.
            
            else
            {
                $('#result_box').html('U heeft geen politieke partij gekozen, probeert u het opnieuw. <br /> <br /> <a href=\'javascript:closeDialog();\'>Ga terug naar de website.</a>');    
            }
        }
    );
    
    
    // Stem hover.
    
    $(".partij_name").hover ( function() { $(this).css('text-decoration', 'none'); }, function() { $(this).css('text-decoration', 'underline'); });
    
    
}


// Sluiten van het dialog.

function closeDialog()
{
    $('#result_box').dialog('close');    
}


// Poll afvangen.

function handlePoll()
{
    // Afvangen van het klikken op de knop.
    
    $('.stemButton').click
    (
        function ()
        {
            $('#result_box').dialog('open');
            $('#result_box').html('<img src="ajax-loader.gif">');
            
            var poll_id   = $('#pollId').html();
            var option_id = $('input[name=pollVote]:checked').val();
            
            if (option_id)
            {
                var result = $.ajax({url: "ajax.php?q=handlePoll&poll_id="+poll_id+"&option_id="+option_id, async: false}).responseText;
                $('#result_box').html(result);
                
                // Stem OK
                
                if (result == '1')
                {
                    $('#indexPollBox').html('<div align="center">Bedankt voor uw stem!</div>');
                    $('#result_box').html('Bedankt voor uw stem! <br /> <br /> <a href=\'javascript:closeDialog();\'>Ga terug naar de website.</a>');
                }
                
                // Er is al gestemd.
                
                else if (result == '2')
                {
                    $('#result_box').html('Uw heeft al een keer gestemd op deze poll, daarom word deze niet mee genomen in de resultaten. <br /> <br /> <a href=\'javascript:closeDialog();\'>Ga terug naar de website.</a>');    
                }
                
                // Stem NOT NL
                
                else if (result == '3')
                {
                    $('#result_box').html('Uw stem wordt niet meegenomen in de resultaten.<br />Stemmen kunnen alleen worden verzonden vanuit Nederland en niet vanuit privé-netwerken van bijvoorbeeld bedrijven en scholen. <br /> <br /> <a href=\'javascript:closeDialog();\'>Ga terug naar de website.</a>');    
                }

            }
            
            else
            {
                $('#result_box').html('U heeft geen stem optie gekozen, probeert u het opnieuw. <br /> <br /> <a href=\'javascript:closeDialog();\'>Ga terug naar de website.</a>');    
            }
        }
    );
    
    
    // Afvangen van het klikken op de Overzicht knop.
    
    $('.poll_overzicht_link').click
    (
        function ()
        {
            loadPage("pages/poll.php");
        }
    );
    
    // Overzicht link hover.
    
    $(".poll_overzicht_link").hover ( function() { $(this).css('text-decoration', 'none'); }, function() { $(this).css('text-decoration', 'underline'); });
    
    
    // Stylen van de poll.
    
    $('.voteRadio').css('cursor', 'pointer');
    $('.stemButton').css('cursor', 'pointer');
}


// Pagina laden.

function loadPage(pageUrl)
{
    $('#page_box').html('<img src="ajax-loader.gif">');
    var result = $.ajax({url: pageUrl, async: false}).responseText;
    $('#page_box').html(result);
    
    loadedPage = pageUrl; 
    
    
    // Afvangen van het wisselen in de poll list.
    
    if ($('#polls_list').length > 0)
    {
        $('#polls_list').change
        (
            function ()
            {
                // Poll sub pagina laden.
                
                if (this.value > 0)
                {
                    $('#pollInformation').html('<img src="ajax-loader.gif">');
                    var result = $.ajax({url: 'pages/poll.php?q=getPoll&poll_id='+this.value, async: false}).responseText;
                    $('#pollInformation').html(result); 
                    
                    commentHandler(); 
                    getPollComments(this.value); 
                }
                
                // Geen poll -> empty box.
                
                else
                {
                    $('#pollInformation').html('');     
                }
            }
        );
    }    
}


// Comments voor de poll.

function commentHandler()
{
    // Afvangen van het klikken op de reageren knop.
    
    $('.addComment').click
    (
        function ()
        {
            $('#result_box').dialog('open');
            $('#result_box').html('<img src="ajax-loader.gif">');
            
            var result = $.ajax({url: "pages/poll.php?q=getPollForm", async: false}).responseText;
            $('#result_box').html(result);
            
            
            // Afvangen van de reactieknop.
            
            $('.commentAdd').click
            (
                function ()
                {
                    // Vars setten.
                    var t_pollId = $('#temp_pollId').html();
                    var f_name = $('#form_name').val();    
                    var f_text = $('#form_text').val();
                    
                    if (f_name.length == 0)
                    {
                        $('#errorBox').html('U heeft uw naam niet ingevuld.<br /><br />');   
                    }
                    
                    else if (f_text.length == 0)
                    {
                        $('#errorBox').html('U heeft uw emailadres niet ingevuld.<br /><br />');    
                    }
                    
                    else
                    {
                        $('#errorBox').html();
                        var result = $.ajax({url: "pages/poll.php?q=addPollComment&form_text="+f_text+"&form_name="+f_name+"&pollId="+t_pollId, async: false}).responseText;
                        
                        // Comment is succesvol toegevoegd.
                        
                        if (result == 'done')
                        {
                            // Poll reactie box updaten.
                        
                            getPollComments(t_pollId);
                            
                            // Dialog closen.
                            
                            $('#result_box').dialog('close');     
                        }
                        
                        // Error.
                        
                        else
                        {
                            $('#result_box').html('Er ging iets mis bij het plaatsen van uw reactie, probeert u het opnieuw. <br /> <br /> <a href=\'javascript:closeDialog();\'>Ga terug naar de website.</a>');    
                        }
                    }
                }
            );
        }
    );
    
    // Hover voor de reageren link.
    
    $(".addComment").hover ( function() { $(this).css('text-decoration', 'none'); }, function() { $(this).css('text-decoration', 'underline'); });  
}


// Comments van de poll ophalen.

function getPollComments(pollId)
{
    $('#pollReacties').html('<img src="ajax-loader.gif">');
    var result = $.ajax({url: "pages/poll.php?q=getPollComents&poll_id="+pollId, async: false}).responseText;
    $('#pollReacties').html(result);    
}

