var MuscomQuiz = {
    /**
     * Quiz javascript code for the Muscom Quiz
     */

    init: function init() {
        this.nextContainer       = $('#next');
        this.currentContainer    = $('#content');
        this.animationContainer  = $('#animation_container');
        this.loader              = $('#loader');

    },

    answer: function answer(url) {
        if(url.indexOf('#/quizvraag/') != -1 && url.indexOf('?answer=') != -1) {
            answ = url.split('?answer=')[1];
            quiz = url.split('#/quizvraag/')[1].split('/')[0];
            this.processAnswer(quiz, answ);
            return true;
        }
    },

    processAnswer: function processAnswer(quiz, answer) {
        var currentThis = this;

        $.ajax({
            url: '/quiz/answer/'+quiz+'/'+answer+'/',
            beforeSend: function() {
                currentThis.loader.show();
            },
            error: function() {
                currentThis.loader.hide();
            },
            success: function(data) {
                currentThis.loader.hide();
                goodanswer = data;
                
                $('.quizanswers a').each(function(elem) {
                    $(this).attr('href', 'javascript:void(0);');
                });

                if(goodanswer == answer) {
                    $('.answer_' + answer).addClass('good');
                } else {
                    $('.answer_' + answer).addClass('bad');
                    $('.answer_' + goodanswer).addClass('good');
                }
                
                nb = $('#nextbutton');
                nb.show('fast');
                nb.click(function(e) {
                    quiz = document.location.href.split('#/quizvraag/')[1].split('/')[0];
                    currentThis.nextQuestion(quiz);
                    $(this).hide('fast');
                });
                //setTimeout(function() { currentThis.nextQuestion(quiz); }, 2000);
            }
        });
    },

    nextQuestion: function nextQuestion(quiz) {
        var currentThis = this;
        //document.location.href = '#/quizvraag/' + quiz + '/';
        currentThis.nextContainer.css('top', currentThis.currentContainer.css('top'));
        currentThis.nextContainer.css('left', currentThis.currentContainer.width() * 2);
        var animation = { left: '-=' + currentThis.currentContainer.width() };
        
        $.ajax({
            url: '/quizvraag/' + quiz + '/',
            beforeSend: function() {
                currentThis.loader.show();
            },
            error: function() {
                currentThis.loader.hide();
            },
            success: function(data) {
                currentThis.loader.hide();
                currentThis.nextContainer.html(data);
                currentThis.animationContainer.animate(animation, 1000, function resetContainers() {
                    currentThis.currentContainer.html(data);
                    currentThis.currentContainer.css('left', currentThis.currentContainer.width());
                    currentThis.currentContainer.css('top', currentThis.currentContainer.height());
                    currentThis.animationContainer.css('left', 0 - currentThis.currentContainer.width());
                    currentThis.animationContainer.css('top', 0 - currentThis.currentContainer.height());
                    currentThis.nextContainer.css('left', currentThis.currentContainer.width() * 2);
                    currentThis.nextContainer.css('top', currentThis.currentContainer.height());
                    document.location.href = '#/quizvraag/' + quiz + '/';
                });
            }
        });
    }
}

