var ArtikelFilter = {

	filters: [],
	filteredElems: [],

	init: function ( ) {

		this.filteredElems = [];

		$('filter_set').addEvent('click', function(e) {
			ArtikelFilter.filter(this, e);
		}, this);

		$('filter_rem').addEvent('click', function(e) {
			$$('.filter_checkbox').each(
				function (el, i) {
					el.checked = false;
				}
			);
			ArtikelFilter.filter(this, e);
		}, this);

    },


	filter: function (checkbox, e) {

		this.filters = [];
		this.filteredElems = [];

	 	$$('.filter_checkbox').each(
        	function ( chkbox ) {
				if ( chkbox.checked ) {
					this.filters.extend([chkbox.value]);
				}
			}, this);

	 	$$('.content_category_element').each(
	 		function ( div, i ) {
				var matched = true;
				if ( this.filters.length === 0 ) {
                	matched = true;
				} else $each(this.filters, function ( artnr ) {
                    if ( ! div.getProperty('rel').contains(',' + artnr) ) {
						matched = false;
					}
				});
				if ( ! matched ) {
					this.filteredElems.extend([i]);
					div.setStyle('display', 'none');
					div.addClass('nm');


				} else {
					this.filteredElems.remove(i);
					if ( ! this.filteredElems.contains(i) && ! PreisFilter.filteredElems.contains(i) ) {
						div.setStyle('display', 'block');
						div.removeClass('nm');
					}

				}
		}, this);

	}

};

window.addEvent('domready', ArtikelFilter.init);




var PreisFilter = {

	filters: [],

	filteredElems: [],

	init: function ( ) {
		
		this.filteredElems = [];

		$('filter_set_preis').addEvent('click', function(e) {
			PreisFilter.filter(this, e);
		}, this);

		$('filter_rem_preis').addEvent('click', function(e) {
			$$('.filter_checkbox_preis').each(
				function (el, i) {
					el.checked = false;
				}
			);
			PreisFilter.filter(this, e);
		}, this);


		$('filter_preis_von').addEvent('keyup', function(e) {
			this.value = this.value.replace(/[^\d]/g, '');
			if ( this.value.toInt() )
				$('filter_preis_bis').value = this.value.toInt() + 50;
			if ( this.value == '' ) $('filter_preis_bis').value = '';
		}, this);

		$('filter_preis_bis').addEvent('keyup', function(e) {
			this.value = this.value.replace(/[^\d]/g, '');
		}, this);



    },

	filter: function (checkbox, e) {

		this.filters = [];
		this.filteredElems = [];

	 	$$('.filter_checkbox_preis').each(
        	function ( chkbox ) {
				if ( chkbox.checked ) {
					this.filters.extend([chkbox.value]);
				}
			},
			this
		);

		if ( this.filters[0] == 'man' ) {
			if ( $('filter_preis_von').value == '' || $('filter_preis_bis').value == '' ) return;
			this.filters[0] = 'preis >= '  + $('filter_preis_von').value + ' && preis <= ' + $('filter_preis_bis').value;
		}
		
	 	$$('.content_category_element').each(
	 		function ( div, i ) {
				var preis = div.getElements('p[class=preis_category]')[0].getText().replace(',', '.').replace(/[^\d\.]/g, '').trim().toFloat();
				var evl = 'var check = (' + this.filters[0] + ');';
				eval(evl);
				if ( ! check && this.filters.length > 0 ) {
					div.setStyle('display', 'none');
					this.filteredElems.extend([i]);
				} else {
					this.filteredElems.remove(i);
					if ( ! this.filteredElems.contains(i) && ! ArtikelFilter.filteredElems.contains(i) ) {
						div.setStyle('display', 'block');
					}
				}
		}, this);

	}

};

window.addEvent('domready', PreisFilter.init);
