$(function() {
    //checks how many counters excists on the page
    var length = $(".container-countdown").length;
    
    //checks if popup or normal page counter is on the current page
    if (length != 0) {
        //starts timers by class loop
        for (var i = 0; i !=length; i++) {
            countingdown($(".container-countdown:eq("+i+")").attr('id'));
        };
    } else {
        countingdown('popupcountdown');
    }
});

// Function to countdown the remaining auction time.
function countingdown(count)
{
    // Bepalen adhv meegegeven timer hoe deze moet worden benaderd.
    if (count=="popupcountdown") {
        var currentcountdown = "#" + count;
    } else {
        var currentcountdown = "#" + count;
    }

    var dagen    = '';
    var uren     = '';
    var minuten  = '';
    var seconden = '';

    // Controleer of de countdown moet worden uitgevoerd
    if ($(currentcountdown + ">span[rel=seconden]").length > 0) {
        // De tijdsvariabelen invullen indien deze nog van toepassing zijn.
        if ($(currentcountdown + ">span[rel=dagen]").length > 0) {
            dagen = parseInt($(currentcountdown+">span[rel=dagen]").text());
        }
        
        if ($(currentcountdown + ">span[rel=uren]").length > 0) {
            uren = parseInt($(currentcountdown+">span[rel=uren]").text());
        }
        
        if ($(currentcountdown + ">span[rel=minuten]").length > 0) {
            minuten = parseInt($(currentcountdown+">span[rel=minuten]").text());
        }

        if ($(currentcountdown + ">span[rel=seconden]").length > 0) {
            seconden = parseInt($(currentcountdown + ">span[rel=seconden]").text());
        }

        // Timer met 1 seconde interval
        t = setInterval(function timing()
        {
            if ($(currentcountdown + ">span[rel=dagen]").length > 0) {
                dagen = parseInt($(currentcountdown+">span[rel=dagen]").text());
            }
            
            if ($(currentcountdown + ">span[rel=uren]").length > 0) {
                uren = parseInt($(currentcountdown+">span[rel=uren]").text());
            }
            
            if ($(currentcountdown + ">span[rel=minuten]").length > 0) {
                minuten = parseInt($(currentcountdown+">span[rel=minuten]").text());
            }

            if ($(currentcountdown + ">span[rel=seconden]").length > 0) {
                seconden = parseInt($(currentcountdown+">span[rel=seconden]").text());
            }

            if (seconden === 0) {
                if (minuten !== '') {
                    if (minuten === 0) {
                        if (uren !== '') {
                            if (uren === 0) {
                                if (dagen !== '') {
                                    dagen--;
                                    $(currentcountdown+">span[rel=dagen]").text(dagen);
                                    if (dagen === 1) {
                                        $(currentcountdown+">span.dagen-tekst").text("dag, ");
                                    } else {
                                        $(currentcountdown+">span.dagen-tekst").text("dagen, ");
                                    }
                                }
                                uren = 23;
                            } else {
                                uren--;
                            }
                            $(currentcountdown + ">span[rel=uren]").text(uren);
                        }
                        minuten = 59;
                    } else {
                        minuten--;
                    }
                    $(currentcountdown + ">span[rel=minuten]").text(minuten);
                    if (minuten === 1) {
                        $(currentcountdown + ">span.minuten-tekst").text("minuut en ");
                    } else {
                        $(currentcountdown + ">span.minuten-tekst").text("minuten en ");
                    }
                }
                seconden = 59;
            } else {
                seconden--;
            }

            if ($(currentcountdown + ">span.dagen-tekst").length > 0 && dagen === 0) {
                $(currentcountdown + ">span.dagen-tekst").remove();
                $(currentcountdown + ">span[rel=dagen]").remove();
            }

            if ($(currentcountdown + ">span.uren-tekst").length > 0 && dagen === '' && uren === 0) {
                $(currentcountdown + ">span.uren-tekst").remove();
                $(currentcountdown + ">span[rel=uren]").remove();
            }

            //if ($(currentcountdown+">span.minuten-tekst").length > 0 && dagen === '' && uren === '' && minuten === 0) {
            //    $(currentcountdown+">span.minuten-tekst").hide();
            //    $(currentcountdown+">span[rel=minuten]").hide();
            //}

            $(currentcountdown + ">span[rel=seconden]").text(seconden);

            if ($(currentcountdown+">span.seconden-tekst").length > 0 && dagen === '' && uren === '' && minuten === '' && seconden === 0) {
                $.getJSON('/mijn-catalogus/check-status/'+$(currentcountdown).attr('rel'), function(data) {
                    switch(data.status) {
                        case 'bied-nu':
                        case 'hoogste-bod':
                            checkStatus($(currentcountdown).attr('rel'));
                            break;
                        case 'toegewezen':
                        case 'verkocht':
                            $(currentcountdown).text('Bezig met verwerken');
                            $(currentcountdown+">span.uren-tekst").remove();
                            $(currentcountdown+">span[rel=uren]").remove();
                            checkStatus($(currentcountdown).attr('rel'));
                            $(currentcountdown).remove();
                            break;
                    }
                });
            }
            
            // Tekst seconde(n) goedzetten.
            if (seconden === 1) {
                $(currentcountdown + ">span.seconden-tekst").text("seconde");
            } else {
                $(currentcountdown + ">span.seconden-tekst").text("seconden");
            }

            // Checkmomenten
            if (count !== 'popupcountdown') {
                if (dagen !== '') {
                    if (minuten === 0 && seconden === 0) {
                        checkStatus($(currentcountdown).attr('rel'));
                    }
                } else if (uren === '') {
                    if (minuten > 10) {
                        if (minuten % 5 === 0 && seconden === 0) {
                            checkStatus($(currentcountdown).attr('rel'));
                        }
                    } else if (minuten <= 10 && minuten > 5) {
                        if (seconden === 0) {
                            checkStatus($(currentcountdown).attr('rel'));
                        }
                    } else {
                        if (seconden % 5 === 0) {
                            checkStatus($(currentcountdown).attr('rel'));
                        }
                        if (minuten === '' && seconden === 2) {
                            checkStatus($(currentcountdown).attr('rel'));
                        }
                    }
                }
            }
        },1000);
    }
}

function checkStatus(objectID)
{
    $.getJSON('/mijn-catalogus/check-status/' + objectID, function(data) {
        switch(data.status) {
            case 'bied-nu':
                statusBiedNu(objectID, data.hoogstebod, data.veilingnummer, data.objectnummer, data.dagen, data.uren, data.minuten, data.seconden, data.startprijs);
                break;
            case 'hoogste-bod':
                statusHoogsteBod(objectID, data.hoogstebod, data.dagen, data.uren, data.minuten, data.seconden);
                break;
            case 'verkocht':
                statusVerkocht(objectID);
                break;
            case 'binnenkort-webshop':
                statusBinnenkortWebshop(objectID);
                break;
            case 'toegewezen':
                statusToegewezen(objectID);
                break;
        }
    });
}

function statusHoogsteBod(objectID, hoogstebod, dagen, uren, minuten, seconden)
{
    $('#' + objectID + '-object').removeClass('red-bg');
    $('#' + objectID + '-object').addClass('yellow-bg');
    $('#' + objectID + '-object .status').removeClass('red');
    $('#' + objectID + '-object .status').addClass('yellow');
    $('#' + objectID + '-hoogstebod').text(hoogstebod);
    $('#' + objectID + '-uwbod').text(hoogstebod);
    $('#' + objectID + '-object .status').text('U heeft het hoogste bod');
    $('#' + objectID + '-countdown span[rel=minuten]').text(minuten);
    $('#' + objectID + '-countdown span[rel=seconden]').text(seconden);
    $('#' + objectID + '-countdown span[rel=minuten]').show();
}

function statusBiedNu(objectID, hoogstebod, veilingNummer, objectNummer, dagen, uren, minuten, seconden, startprijs)
{
    $('#' + objectID + '-object').removeClass('yellow-bg');
    $('#' + objectID + '-object').addClass('red-bg');
    $('#' + objectID + '-object .status').removeClass('yellow');
    $('#' + objectID + '-object .status').addClass('red');

    if (hoogstebod == false) {
        $('#' + objectID + '-hoogstebod').text(startprijs);
    } else {
        $('#' + objectID + '-startprijstekst').text('Hoogste bod');
        $('#' + objectID + '-hoogstebod').text(hoogstebod);
    }
    $('#' + objectID + '-countdown span[rel=minuten]').text(minuten);
    $('#' + objectID + '-countdown span[rel=seconden]').text(seconden);
    $('#' + objectID + '-countdown span[rel=minuten]').show();
    $('#' + objectID + '-object .status').html('<a onclick="javascript:$.prettyPhoto.open(\'/veilingen/' + veilingNummer + '/' + objectNummer + '/bieden?iframe=true&width=960&height=547\', \'\', \'\'); return false;">Bied nu</a>');
}

function statusVerkocht(objectID)
{
    $('#' + objectID + '-object').removeClass('yellow-bg');
    $('#' + objectID + '-object').removeClass('red-bg');
    $('#' + objectID + '-object').addClass('pink-bg');
    $('#' + objectID + '-object .status').removeClass('yellow');
    $('#' + objectID + '-object .status').removeClass('red');
    $('#' + objectID + '-object .status').addClass('pink');
    $('#' + objectID + '-object .status').text('Verkocht onder voorbehoud');
    $('#' + objectID + '-countdown').remove();
}

function statusBinnenkortWebshop(objectID)
{
    $('#' + objectID + '-object').removeClass('yellow-bg');
    $('#' + objectID + '-object').removeClass('red-bg');
    $('#' + objectID + '-object').addClass('pink-bg');
    $('#' + objectID + '-object .status').removeClass('yellow');
    $('#' + objectID + '-object .status').removeClass('red');
    $('#' + objectID + '-object .status').addClass('pink');
    $('#' + objectID + '-object .status').text('Binnenkort mogelijk in webshop');
    $('#' + objectID + '-countdown').remove();
}

function statusToegewezen(objectID)
{
    $('#' + objectID + '-object').removeClass('yellow-bg');
    $('#' + objectID + '-object').removeClass('red-bg');
    $('#' + objectID + '-object').addClass('green-bg');
    $('#' + objectID + '-object .status').removeClass('yellow');
    $('#' + objectID + '-object .status').removeClass('red');
    $('#' + objectID + '-object .status').addClass('green');
    $('#' + objectID + '-object .status').text('Wacht op toewijzing');
    $('#' + objectID + '-countdown').remove();
    //$('#' + objectID + '-countdown span[rel=minuten]').text();
    //$('#' + objectID + '-countdown span[rel=seconden]').text();
}