function filter(page, searchterm) {
	if (jQuery.bonusFilter.blocked) {
		return;
	}
	
    var inputMilesFrom	= jQuery('input#MilesFrom');
    var inputMilesTo	= jQuery('input#MilesTo');
    var inputAmount		= jQuery('input#Amount');
	
	// clear values for post
    inputMilesFrom.val(inputMilesFrom.cleanval());
    inputMilesTo.val(inputMilesTo.cleanval());
    inputAmount.val(inputAmount.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;
}

function tracking_praemienkategorie(tracking_s){
    tracking_s = tracking_s.replace(/[^ a-z0-9]/i, "-");
    //omniture-Aufruf zusammenbauen:
    var s=s_gi(s_account);
    s.prop11=tracking_s;
    s.linkTrackVars='prop11';
    s.tl(this,'o','Praemienkategorie');
}



jQuery(document).ready(function() {
	var steps			= 100; // slider steps between min and max values
    var leftstart		= 100; // min value of miles slider
    var leftstart2		= 1000;   // min value of amount slider
    var rightstart		= 10000; // max value of miles slider
    
    var inputMilesFrom	= jQuery('input#MilesFrom');
    var inputMilesTo	= jQuery('input#MilesTo');
    var inputAmount		= jQuery('input#Amount');
    var milesSlider		= jQuery('#miles_slider');
    var amountSlider	= jQuery('#miles_slider_2');
    
    if (inputMilesFrom.val() !== '') {
        leftstart = inputMilesFrom.cleanval();
    } else {
        inputMilesFrom.val(jQuery.string(leftstart).decFormat());
    }
    if (inputMilesTo.val() !== '') {
        rightstart = inputMilesTo.cleanval();
        inputMilesTo.val(jQuery.string(rightstart).decFormat());
    } else {
        inputMilesTo.val('>' + jQuery.string(rightstart).decFormat());
    }
    if (inputAmount.val() !== '') {
        leftstart2 = inputAmount.cleanval();
    } else {
    	inputAmount.val(jQuery.string(leftstart2).decFormat());
    }
    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');
            tracking_praemienkategorie(jQuery(this).getUrlParam("cate[]"));
        }
        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;
    });
    
    inputMilesFrom.bind('change', function() {
    	jQuery.bonusFilter.blocked = false;
        if (Number(jQuery(this).cleanval()) >= Number(inputMilesTo.cleanval())) {
        	jQuery.bonusFilter.blocked = true;
        	inputMilesTo.focus().text('');
        } else {
        	milesSlider.slider('values', 0, Number(inputMilesFrom.cleanval()));
        }
    });
    inputMilesTo.bind('change', function() {
        if (Number(jQuery(this).cleanval()) <= Number(inputMilesFrom.cleanval())) {
            jQuery(this).val(Number(inputMilesFrom.cleanval()) + steps);
        }
        if (jQuery.bonusFilter.blocked) {
			var tmpFrom = Number(inputMilesFrom.cleanval());
	       	milesSlider.slider('values', 1, Number(jQuery(this).cleanval()));
	       	jQuery.bonusFilter.blocked = false;
	       	milesSlider.slider('values', 0, tmpFrom);
        } else {
        	milesSlider.slider('values', 1, Number(jQuery(this).cleanval()));
        }
    });
    inputAmount.bind('change', function(){
        amountSlider.slider('value', Number(inputAmount.cleanval()));
    });
    milesSlider.slider({
        min: 0,
        max: rightstart,
        step: rightstart / steps,
        range: true,
        change: filter,
        values: [leftstart, rightstart],
        slide: function(e, ui) {
            var left = ui.values[0];
            var right = ui.values[1];
            inputMilesFrom.val(jQuery.string(left).decFormat());
            
            jQuery.bonusFilter.blocked = left < right ? false : true;
            
            if (right == rightstart) {
                inputMilesTo.val('>' + jQuery.string(rightstart).decFormat());
            } else {
                inputMilesTo.val(jQuery.string(right).decFormat());
            }
        }       
    });
    amountSlider.slider({
        min: 0,
        max: leftstart2,
        steps: steps,
        stop: filter,
        value: leftstart2,
        slide: function(e, ui) {
            var left = ui.value;
            if (!left)
            {
            	inputAmount.val('0');
            }
            else
            {
            	inputAmount.val(jQuery.string(left).decFormat());
            }
        }       
    });
});

(function ($) {
  $.fn.cleanval = function () {
	  return jQuery.string(this.val()).decClean();
  };
})(jQuery);

jQuery.bonusFilter = {
	blocked: false
}
