function catalogSeeOnClickHandler() {
    var path = '/catalog';

    var selector = $('#selector').val();
    var countryId = $('#countryId').val();
    var year = $('#year').val();

    if (countryId != '00') {
        if (year != '0000') {
            if (selector == 'c') {
                path += '/' + countryId.toLowerCase();
                path += '/' + year;
            } else {
                path += '/' + year;
                path += '/' + countryId.toLowerCase();
            }
        } else {
            path += '/' + countryId.toLowerCase();
        }
    } else {
        if (year != '0000') {
            path += '/' + year;
        }
    }

    location.href = path;    
}

function catalogCountryIdOnChangeHandler() {
    var selector = $('#selector').val();

    if (selector == '') {
        $("#year option[value='0000']").attr('selected', 'selected');
    }

    var selected = $("#countryId option:selected");

    if (selected.val() != '00') {
        $('#see').removeAttr('disabled');
    } else {
        if (selector != '') {
            $('#see').attr('disabled', 'disabled');
        } else {
            selected = $("#year option:selected");
            if (selected.val() == '0000') {
                $('#see').attr('disabled', 'disabled');
            }
        }
    }
}

function catalogYearOnChangeHandler() {
    var selector = $('#selector').val();

    if (selector == '') {
        $("#countryId option[value='00']").attr('selected', 'selected');
    }

    var selected = $("#year option:selected");

    if (selected.val() != '0000') {
        $('#see').removeAttr('disabled');
    } else {
         if (selector != '') {
            $('#see').attr('disabled', 'disabled');
        } else {
            selected = $("#countryId option:selected");
            if (selected.val() == '00') {
                $('#see').attr('disabled', 'disabled');
            }
        }
    }
}

function start() {
    $('body').append('<div id="ajaxLoader" class="message"><div><img src="/images/ajax-loader.gif" alt="Ajax loader indicator" /><p>Loading...</p></div></div>');
    $('#ajaxLoader').width($('body').width());
    $('#ajaxLoader').height($('body').height());
}

function stop() {
    $('#ajaxLoader').html('');
}

function showMessages(data, func) {
    var message = data.split('|');
    if (message[0] == 0) {
        $('body').append('<div id="okMessage" class="message"><div><img src="/images/message-ok.gif" alt="Ok message indicator" /><p>' + message[1] + '</p></div></div>');
        $('#okMessage').width($('body').width());
        $('#okMessage').fadeOut(3000, function() {
            $('#okMessage').remove();
            $('#ajaxLoader').remove();
        });
    } else if (message[0] > 0) {
        $('body').append('<div id="warningMessage" class="message"><div><img src="/images/message-warning.gif" alt="Warning message indicator" /><p>' + message[1] + '</p></div></div>');
        $('#warningMessage').width($('body').width());
        $('#warningMessage').fadeOut(3000, function() {
            $('#warningMessage').remove();
            $('#ajaxLoader').remove();
        });
    } else {
        $('body').append('<div id="errorMessage" class="message"><div><img src="/images/message-error.gif" alt="Error message indicator" /><p>' + message[1] + '</p></div></div>');
        $('#errorMessage').width($('body').width());
        $('#errorMessage').fadeOut(3000, function() {
            $('#errorMessage').remove();
            $('#ajaxLoader').remove();
        });
    }

    if (func != null && message[0] == 0) {
        func();
    }
}

function markAsCollected(coinId) {
    start();

    $.ajax({
        url: '/coin/markascollected',
        data: {coinId: coinId},
        async: false,
        success: function(data) {
            stop();
            showMessages(data, function() {
                $('#macOption').html('<a href="#" onclick="unmarkAsCollected(<?php echo $this->coin->getCoinID(); ?>)">Unmark as collected</a>');
                $('#madOption').html('<a href="#" onclick="markAsDuplicated(<?php echo $this->coin->getCoinID(); ?>)">Mark as duplicated</a>');
                $('#mawOption').html('');
            });
        }
    });
}

function unmarkAsCollected(coinId) {
    start();

    $.ajax({
        url: '/coin/unmarkascollected',
        data: {coinId: coinId},
        async: false,
        success: function(data) {
            stop();
            showMessages(data, function() {
                $('#macOption').html('<a href="#" onclick="markAsCollected(<?php echo $this->coin->getCoinID(); ?>)">Mark as collected</a>');
                $('#madOption').html('');
                $('#mawOption').html('<a href="#" onclick="markAsWanted(<?php echo $this->coin->getCoinID(); ?>)">Mark as wanted</a>');
            });
        }
    });
}

function markAsDuplicated(coinId) {
    start();

    $.ajax({
        url: '/coin/markasduplicated',
        data: {coinId: coinId},
        async: false,
        success: function(data) {
            stop();
            showMessages(data, function() {
                $('#macOption').html('');
                $('#madOption').html('<a href="#" onclick="unmarkAsDuplicated(<?php echo $this->coin->getCoinID(); ?>)">Unmark as duplicated</a>');
            });
        }
    });
}

function unmarkAsDuplicated(coinId) {
    start();

    $.ajax({
        url: '/coin/unmarkasduplicated',
        data: {coinId: coinId},
        async: false,
        success: function(data) {
            stop();
            showMessages(data, function() {
                $('#macOption').html('<a href="#" onclick="unmarkAsCollected(<?php echo $this->coin->getCoinID(); ?>)">Unmark as collected</a>');
                $('#madOption').html('<a href="#" onclick="markAsDuplicated(<?php echo $this->coin->getCoinID(); ?>)">Mark as duplicated</a>');
            });
        }
    });
}

function markAsWanted(coinId) {
    start();

    $.ajax({
        url: '/coin/markaswanted',
        data: {coinId: coinId},
        async: false,
        success: function(data) {
            stop();
            showMessages(data, function() {
                $('#mawOption').html('<a href="#" onclick="unmarkAsWanted(<?php echo $this->coin->getCoinID(); ?>)">Unmark as wanted</a>');
            });
        }
    });
}

function unmarkAsWanted(coinId) {
    start();

    $.ajax({
        url: '/coin/unmarkaswanted',
        data: {coinId: coinId},
        async: false,
        success: function(data) {
            stop();
            showMessages(data, function() {
                $('#mawOption').html('<a href="#" onclick="markAsWanted(<?php echo $this->coin->getCoinID(); ?>)">Mark as wanted</a>');
            });
        }
    });
}
