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;
}

jQuery(document).ready(function() {
	jQuery("#video").dialog({
        width: 360,
        height: 290,
		autoOpen: false,
		resizable: false,
		draggable: false,
		closeText: 'Schliessen',
		dialogClass: 'video'
	});
	jQuery('#zeigevideo').click(function(){
		jQuery('#video').dialog('open');
		return false;
	});
	
	jQuery("#image").dialog({
		autoOpen: false,
		resizable: false,
		width: 402,
		height: 402,
		draggable: false,
        dialogClass: 'image'
	   }).siblings(".ui-dialog-titlebar").hide();

	jQuery('#zeigeimage').click(function(){
		jQuery('#image').dialog('open');
		return false;
	});
	
	jQuery('.ui-dialog').draggable();

});

function image_close(){
	jQuery('#image').dialog('close');
}

	
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');
        }
        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: 10000,
        steps: 10000 / 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: 1000,
        steps: 100,
        value: parseInt(leftstart2),
        change: filter,
        slide: function(e, ui) {
            var left = ui.value;
            if (!left)
            {
            	inputAmount.val('0');
            }
            else
            {
            	inputAmount.val(jQuery.string(left).decFormat());
            }
        }       
    });
    
    
    // detail spezifisch
    
	jQuery('a#reset_categories').attr('href', 'praemien_suche');
	
    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;
    });
    
    
    jQuery('input#bottom_add_to_cart_submit').click(function(){
    	
    	var action = jQuery('form#bonus_details').attr('action');
    	var price = jQuery('form#bonus_details select#prices').val();
    	var bonusId = jQuery('form#bonus_details input#bonusId').val();
    	window.location.href = '/' + action + '?bonusId=' + bonusId + '&prices=' + price;
    	
    	return false;
    });
    // detail spezifisch ende
});

(function ($) {
  $.fn.cleanval = function () {
	  return jQuery.string(this.val()).decClean();
  };
})(jQuery);

jQuery.bonusFilter = {
	blocked: false
}
