$(function() {
    $('div#subMenu > ul li.active').corner('top');
    $('div.auctionOverview div.advertisementDetail ul.tabs li').corner('top');
    $('div.bidValues > div').corner();
    $('div.bidValues > div span').corner();
    $('div.bidValues > div input').corner();
    
    $('#calculateButton').click(function() {
        var code = $('#calculateCode').val();
        
        if (code == '') {
            return false;
        }
        
        $.post('/taxations/getValues.json', {
                code: $('#calculateCode').val(),
                mileage: $('#calculateMileage').val()
            }, function(data) {
            $('#salesValue').html('&euro; ' + data.salesValue);
            $('#tradeValue').html('&euro; ' + data.tradeValue);
            $('#salesValue, #tradeValue').removeClass('inactive');
        }, 'json')
    });
    
    $('select#selectAddress').change(function(obj) {
        $('div.currentAddress').css('display', 'none');
        $('div#address' + $(this).val()).css('display', 'block');
    });
    
    var marktplaatsValue = null;
    var marktplaatsPrijs;
    $('.advertisementPlans > div > div').click(function() {
        $('input[type="radio"]', this).attr('checked', true);
        if ($(this).hasClass('marktplaatsImpossible')) {
            $('#marktplaats').attr('disabled', 'disabled');
        } else {
            $('#marktplaats').removeAttr('disabled');
        }
    });
    
    $('.mediationPlans > div > div').click(function() {
        $('input[type="radio"]', this).attr('checked', true);
    });
    
    $('form.agree').submit(function() {
        if ($('input.agree', this).attr('checked') == false) {
            alert('U dient akkoord te gaan met de algemene voorwaarden.');
            return false;
        }
        return true;
    });

    $('#autotelexSign').blur(function() {
        //if (1) {
        var sign = $('#autotelexSign').val();
        if (sign.length >= 6) {
            $.get('/autotelex/carInfo.json', {sign: sign}, function(data) {
                
                $('#carInfo_uitvoering option').remove();
                $.each(data, function(name, value) {
                    $('#carInfo_uitvoering').append('<option value="' + value.uitvoering.id + '">' + value.uitvoering.naam + '</option>');
                });
                
                $.each(data[0], function(name, value) {
                    $('#carInfo_' + name).removeAttr('disabled');
                    $('#carInfo_' + name).val(value.id);
                    
                    $('#carInfo_' + name + ' option[value=""]').remove();
                    
                    if (value.naam != undefined) {
                        $('#carInfo_' + name + '_name').html(value.naam);
                    }
                });
                $('#carInfo_kleur').removeAttr('disabled');
                
                $('#carInfo_deuren').removeAttr('disabled');
                $('#carInfo_deuren').val(data[0].uitvoering.deuren);
                $('#carInfo_deuren option[value=""]').remove();
                
                $('#CarBuiltDateYear').removeAttr('disabled');
                $('#CarBuiltDateYear').val(data[0].auto.bouwjaar);
                $('#CarBuiltDateYear option[value=""]').remove();
                
                $('#CarBuiltDateMonth').removeAttr('disabled');
                
                var bouwmaand = data[0].auto.bouwmaand;
                if (bouwmaand < 10) {
                    bouwmaand = '0' + bouwmaand;
                }
                
                $('#CarBuiltDateMonth').val(bouwmaand);
                $('#CarBuiltDateMonth option[value=""]').remove();
            });
        }
    });
    
    if ($('#autotelexSign').length) {
        if ($('#autotelexSign').val().length) {
            $('#autotelexSign').trigger('blur');
        }
    }
    
    
    $('input.clickClear').each(function(i, obj) {
        var defaultValue = $(obj).val();
        $(obj).addClass('defaultValue');
        
        $(obj).focus(function() {
            if ($(obj).val() == defaultValue) {
                $(obj).val('');
                $(obj).removeClass('defaultValue');
            }
        });
        
        $(obj).blur(function() {
            if ($(obj).val() == '') {
                $(obj).val(defaultValue);
                $(obj).addClass('defaultValue');
            }
        });
    });
    
    if ($('.signButton').length > 0) {
        $('.signButton').css('cursor', 'pointer');
        $('.signButton').click(function() {
            document.location = '/taxations/index/' + $('.carRegistration').val();
        });
    }
    
    $('a.fancybox').fancybox();
    
    $('.advertisementPicture_big').click(function() {
        $('#AdvertisementPicture0').trigger('click');
        //$('#picturesTab').trigger('click');
    });
    

    $('#mediationPostalCode').change(function() {
        $('#mediators option').remove();
        $('#mediators').attr('disabled', 'disabled');
        $('#firstMediator').html('...');
        $('#mediator_selectedId').val('');
        
        $('#mediators').change(function() {
            $('#mediator_selectedId').val($('#mediators').val());
        });
        
        if ($('#mediationPostalCode').val().match(/^[1-9]{1}[0-9]{3}[\s\-]?[a-z]{2}$/i) != null) {
            $.post('/users/mediators.json', {
                postalCode: $('#mediationPostalCode').val()
            },
            function(data) {
                $('#firstMediator').html(data[0].name + ' - ' + data[0].city + ' - ' + data[0].distance + ' KM');
                
                $('#mediators').removeAttr('disabled');
                $('#mediators').append('<option value="' + data[0].id + '"></option>');
                for (var i = 1; i < data.length; i++) {
                    $('#mediators').append('<option value="' + data[i].id + '">' + data[i].name + ' - ' + data[i].city + ' - ' + data[i].distance + ' KM</option>');
                }
            }, 'json');
        }
    });
    
    $('#notificationBrands li input[type="checkbox"]').change(function() {
        $(this).attr('disabled', 'disabled');
        var checkbox = $(this);
        
        $.get('/user_notifications/set_brand.json', {
            id: $(this).parent().attr('id').substr(6),
            status: ($(this).attr('checked') == true ? 1 : 0)
        }, function(data) {
            checkbox.removeAttr('disabled');
            if (!data.success) {
               checkbox.attr('checked', !$(this).attr('checked'));
            }
        });
                var li = $(this).parent();
        var id = li.attr('id').substr(6);
        var current = li.hasClass('active');
        
        $('#notificationBrands li').removeClass('active');
        $('#notificationModels').html('');
        
        if (!current) {
            li.addClass('active');
            
            $.get('/user_notifications/get_models.json', {id: id}, function(data) {
                
                $(data).each(function(i, obj) {
                    var input = $('<input type="checkbox" />');
                    input.attr('checked', obj.checked);
                    
                    input.change(function() {
                        input.attr('disabled', 'disabled');
                        
                        $.get('/user_notifications/set_model.json', {
                            id: obj.id,
                            status: (input.attr('checked') == true ? 1 : 0)
                        }, function(data) {
                            input.removeAttr('disabled');
                            if (!data.success) {
                               input.attr('checked', !input.attr('checked'));
                            }
                        });
                    });
                    
                    var li = $('<li>' + obj.name + '</li>').prepend(input);
                    $('#notificationModels').append(li);
                })
            }, 'json');
        }
    });
    
    $('.notificationChoice').change(function() {
        var value = $(this).val();
        $.get('/user_notifications/set_type.json', {value: value});
        
        if (value == 2) {
            $('#notificationSelect').slideDown();
        } else {
            $('#notificationSelect').slideUp();
        }
    });
    
    if ($('.notificationChoice').length > 0) {
        if ($('.notificationChoice:checked').val() == 2) {
            $('#notificationSelect').show();
        }
    }
    $('#notificationBrands li span').click(function() {
        var li = $(this).parent();
        var id = li.attr('id').substr(6);
        var current = li.hasClass('active');
        
        $('#notificationBrands li').removeClass('active');
        $('#notificationModels').html('');
        
        if (!current) {
            li.addClass('active');
            
            $.get('/user_notifications/get_models.json', {id: id}, function(data) {
                
                $(data).each(function(i, obj) {
                    var input = $('<input type="checkbox" />');
                    input.attr('checked', obj.checked);
                    
                    input.change(function() {
                        input.attr('disabled', 'disabled');
                        
                        $.get('/user_notifications/set_model.json', {
                            id: obj.id,
                            status: (input.attr('checked') == true ? 1 : 0)
                        }, function(data) {
                            input.removeAttr('disabled');
                            if (!data.success) {
                               input.attr('checked', !input.attr('checked'));
                            }
                        });
                    });
                    
                    var li = $('<li>' + obj.name + '</li>').prepend(input);
                    $('#notificationModels').append(li);
                })
            }, 'json');
        }
    });
});

function setAdvertisementPlan(obj) {
    $('#carInfo_advertisementPlan').val($(obj).val());
}

function selectTab(id, i, obj) {
    $('> div', '#' + id).css('display', 'none');
    $($('> div', '#' + id)[i-1]).css('display', 'block');
    
    $('> li', $(obj).parent().parent()).removeClass('active');
    $(obj).parent().addClass('active');
}

function auctionFilter(url) {
    
    var types = new Array('Price', 'Year', 'Mileage');
    var min, max;
    
    $(types).each(function(i, type) {
        min = $('#min' + type).val();
        max = $('#max' + type).val();
        
        if (/^\d+$/.test(min) || /^\d+$/.test(max)) {
            if (!/^\d+$/.test(max)) {
                max = '';
            } else if (!/^\d+$/.test(min)) {
                min = '';
            }
            
            url += '/' + type.toLowerCase() + ':' + min + '-' + max;
        }
    });
    
    if ($('#auctionSearch').val() != '') {
        url += '/search:' + escape($('#auctionSearch').val());
    }
    
    if ($('#filterRegistration').val() != '') {
        url += '/registration:' + escape($('#filterRegistration').val());
    }
    
    document.location = url;
    
    return false;
}

function auctionSearch(url) {
    var search = $('#auctionSearch').val();
    document.location = url + '/search:' + escape(search);
}

function perPage(url, perPage) {
    document.location = url + '/perPage:' + perPage;
}
