/*global jQuery, console, document, aNewsSlider */
function filter(page, searchterm) {
    var cleanval = jQuery('input#MilesTo').cleanval();
    jQuery('input#MilesTo').val(cleanval);
    var myForm = jQuery('form#filterbonus');
    if (typeof(searchterm) == 'string' && searchterm.length > 0) {
        //console.log('Searchterm: ' + searchterm);
        myForm.find('input[name="s"]').val(searchterm);
    }
    myForm.submit();
    return false;
}

jQuery(document).ready(function() {
    var steps = 100;    // slider steps between min and max values
    var leftstart = 1;  // min value of slider
    
    if (jQuery('input#MilesFrom').val() !== '') {
        leftstart = jQuery('input#MilesFrom').val();
    } else {
        jQuery('input#MilesFrom').val(leftstart);
    }
    var rightstart = 10000;
    if (jQuery('input#MilesTo').val() !== '') {
        rightstart = jQuery('input#MilesTo').val(); 
    } else {
        jQuery('input#MilesTo').val('>' + rightstart);
    }
    //jQuery('form[name="filterbonus"]').bind('submit', filter);
    jQuery('form#filterbonus input.observe').bind('change', filter);
    
    jQuery('a.bonus_search_form_category_link').click(function(){
        if(jQuery(this).hasClass('checked')){
            jQuery(this).removeClass('checked');
            jQuery(this).addClass('unchecked');
        }else{
            jQuery(this).removeClass('unchecked');
            jQuery(this).addClass('checked');
        }
        var name = jQuery(this).attr('name');
       	var number = name.split('_'); 
        jQuery('form#filterbonus input[name*="' + number[1] + '"]').val(number[1]);
        filter();
        return false;
    });

    jQuery('a#reset_categories').click(function(){
        jQuery('form#filterbonus').find("a.checked").each(function() {
            jQuery(this).removeClass('checked');
            jQuery(this).addClass('unchecked');
        });
        filter();
        return false;
    });
    
    jQuery('input#MilesFrom').bind('change', function() {
        if (Number(jQuery(this).val()) >= Number(jQuery('input#MilesTo').val())) {
            jQuery(this).val(Number(jQuery('input#MilesTo').val()) - steps);
        }
        jQuery("#miles_slider").slider('moveTo', Number(jQuery('input#MilesFrom').val()), 0);
    });
    jQuery('input#MilesTo').bind('change', function() {
        if (Number(jQuery(this).val()) <= Number(jQuery('input#MilesFrom').val())) {
            jQuery(this).val(Number(jQuery('input#MilesFrom').val()) + steps);
        }
        if (jQuery(this).val().match(/>/)) {
            jQuery("#miles_slider").slider('moveTo', Number(jQuery(this).cleanval()), 1);
        } else {
            jQuery("#miles_slider").slider('moveTo', Number(jQuery(this).cleanval()), 1);
        }
    });
    jQuery('input#Amount').bind('change', function(){
        jQuery("#miles_slider_2").slider('moveTo', Number(jQuery('input#Amount').val()));
    });
    jQuery("#miles_slider").slider({
        startValue: leftstart,
        min: 0,
        max: 10000,
        steps:10000 / steps,
        range: true,
        stop: filter,
        handles: [{start:leftstart, min:1, max:10000, id:0},{start:rightstart, min:1, max:10000, id:1}],
        slide: function(e, ui) {
            var left = jQuery(this).slider('value', 0);
            var right = jQuery(this).slider('value', 1);
            jQuery('input#MilesFrom').val(left);
            if (right == rightstart) {
                jQuery('input#MilesTo').val('>' + rightstart);
            } else {
                jQuery('input#MilesTo').val(right);
            }
        }       
    });
    jQuery("#miles_slider_2").slider({
        startValue: leftstart,
        min: 0,
        max: 1000,
        steps:100,
        stop: filter,
        slide: function(e, ui) {
            var left = jQuery(this).slider('value');
            jQuery('input#Amount').val(left);
        }       
    });
    jQuery('#bonus_new, #bonus_pop').click(function(){
        var params = jQuery(this).attr('href').split('/');
        jQuery.post('bonus/bonus/selected/format/json/' + params[4] + '/' + params[5] + '/' + params[6] + '/' + params[7],
                    null,
                    function(data) {
                        var answer = eval(data);
                        try {
                            jQuery('#bonus_new, #bonus_pop').toggleClass('bonus_active');
                            jQuery('div.container').html(answer.data.complex.bonusList);
                        } catch(e) {
                            jQuery('div.bonus_list').html("<p>Leider wurden keine Ergebnisse zu Ihrer Suche gefunden.</p>"); // '"' gesetzt, weil im Inhalt Apostrophe vorkommen können
                            //console.log(e.message);
                        }
                    },
                    "json");
        return false;
    });
	(function ($) {
	  $.fn.cleanval = function () {
	    return this.val().match(/\d+/);
	  };
	})(jQuery);
});
