BaseFilter=new Class({template:new Template('<div style="display:none" id="#{name}_filter_form" class="filter"><h3 class="title"><span>#{title}</span></h3><div class="filter_content"></div></div>'),initialize:function(a){this.form=a;this.class_mouse_on="mouse_on";var b=this;this.form.addEvent("mouseenter",function(c){this.addClassName(b.class_mouse_on)});this.form.addEvent("mouseleave",function(c){this.removeClassName(b.class_mouse_on)})},settings:function(){alert("BaseFilter.settings is not overriden")},toString:function(){return"[BaseFilter]"},show:function(){if(this.form){this.form.style.display="block"}},hide:function(){if(this.form){this.form.style.display="none"}},visible:function(){if(!this.form){return false}return this.form.visible()},name:function(){alert("BaseFilter.name is not overriden")},enable_label:function(a){a.up(".item").removeClassName("disabled");a.up(".item").addClassName("enabled")},disable_label:function(a){a.up(".item").addClassName("disabled");a.up(".item").removeClassName("enabled")},get_items:function(){if(!this.form){return[]}return this.form.getElementsBySelector(".item")},label_value:function(a){return a},hook_mouse_events:function(){var a=this;this.get_items().each(function(b){b.addEvent("click",a.on_item_click.bind(a));b.addEvent("mouseenter",a.on_item_mouseenter.bind(a));b.addEvent("mouseleave",a.on_item_mouseleave.bind(a))})},on_item_click:function(c){var b=this.find_item(c);if(b.hasClassName("disabled")){return}var a=b.down("input");var d=b.hasClassName("selected");if(d){if(a){a.checked=false}this.change_item_state(b,"enabled")}else{if(a){a.checked=true}this.change_item_state(b,"selected")}b.addClassName("hover");this.on_selection_change()},on_item_mouseenter:function(b){var a=this.find_item(b);if(a.hasClassName("disabled")){return}a.addClassName("hover")},on_item_mouseleave:function(b){var a=this.find_item(b);a.removeClassName("hover")},find_item:function(b){var a=$(b.target);if(!a.hasClassName("item")){a=a.up(".item")}if(!a){error("Could not find item!")}return a},change_item_state:function(d,c){var a=d.down("input");if(c=="selected"&&a&&a.type=="radio"){this.get_items().each(function(f){if(f.hasClassName("selected")){f.removeClassName("selected");f.addClassName("enabled")}})}var b=["hover","selected","enabled","disabled"];b.each(function(e){d.removeClassName(e)});d.addClassName(c)}});CheckboxFilter=new Class({Extends:BaseFilter,id:"undefined_filter_form",_name:"undefined",items:[],initialize:function(a){this._name=a.name;this.options=a;this.id=this.name()+"_filter_form";this.form=$(this.id);if(!this.form){var b=this.template.evaluate(this.options);if(this.options.before){$(this.options.before+"_filter_form").insert({before:b})}else{$("filter_toolbar").insert({bottom:b})}this.form=$(this.id)}this.parent(this.form);if(typeof this.init!="undefined"){this.init()}this.hook_mouse_events()},render:function(a){a=a.reject(function(h){return h.is_empty()});if(a.length>0){this.form.style.display="block"}else{this.form.style.display="none"}var g={};this.get_selected_items().each(function(h){g[h]=1});this.remove_items();a.sort();var d='<ul class="items">';for(var b=0;b<a.length;b++){var e=a[b];var f=e;if(typeof this.options.metrical_unit!="undefined"){f+=" "+this.options.metrical_unit}var c=(g[e])?'checked="checked" ':"";d+='<li class="item enabled"><input '+c+'id="'+this.name()+"_"+b+'" type="checkbox" name="items[]" value="'+e+'" style="display:none;" /><span class="label checkbox">'+f+"</span></li>"}d+="</ul>";this.form.down(".filter_content").insert(d,"top");this.hook_mouse_events()},settings:function(){var a=this.get_selected_items();if(a.length==0){return[]}return[this.name()+" in "+a.join(",")]},name:function(){return this._name},set_enabled_items:function(b){var a=this;this.get_checkboxes().each(function(c){if(b.contains(c.value)){c.enable();a.enable_label(c)}else{c.disable();a.disable_label(c)}})},enable_items:function(a){var b=this;this.get_checkboxes().each(function(c){if(a.contains(c.value)){c.enable();b.enable_label(c)}})},select:function(b){var a=false;this.get_checkboxes().each(function(c){if(c.value==b){c.checked=true;a=true}});if(a){this.on_selection_change()}else{error("CheckboxFilter.select("+this.name()+"): Can't find value: "+b+"!")}},get_selected_items:function(){var a=[];this.get_checkboxes().each(function(b){if($F(b)){a.push($F(b))}});return a},get_checkboxes:function(){var a=this.form.getElementsBySelector("input[type=checkbox]");return a},reset:function(){this.get_checkboxes().each(function(b){var a=b.up(".item");if(a){if(a.hasClassName("selected")){a.removeClassName("selected");a.addClassName("enabled")}}b.checked=false})},on_selection_change:function(){FilterController.update({page_number:0},this)},remove_items:function(){var a=this.form.down(".items");if(a!=undefined){a.remove()}}});RadioFilter=new Class({Extends:BaseFilter,id:"undefined_filter_form",items:[],initialize:function(){this.form=$(this.id);this.parent(this.form);if(typeof this.init!="undefined"){this.init()}this.hook_mouse_events();var a=this;this.do_reset=function(){a.reset();a.on_selection_change()}},render:function(a){var f={};f[this.get_value()]=1;this.remove_items();a.sort();var e='<ul class="items">';for(var c=0;c<a.length;c++){var b=a[c];var d=(f[b])?'checked="checked" ':"";e+='<li class="item enabled"><input '+d+'id="'+this.name()+"_"+c+'" type="radio" name="'+this.name()+'_items[]" value="'+b+'" style="display:none;" /><span class="label radio">'+this.label_value(b)+"</span></li>"}e+="</ul>";this.form.down(".filter_content").insert(e,"top");this.hook_mouse_events()},name:function(){return"[RadioFilter]"},reset:function(){this.get_radio_button().each(function(b){var a=b.up(".item");if(a){if(a.hasClassName("selected")){a.removeClassName("selected");a.addClassName("enabled")}}b.checked=false})},on_selection_change:function(){FilterController.update({page_number:0},this)},get_radio_button:function(){return this.form.getElementsBySelector("input[type=radio]")},get_value:function(){var a=false;this.get_radio_button().each(function(b){if(b.checked){a=b.value;return}});return a},select:function(b){var a=false;this.get_radio_button().each(function(c){if(c.value==b){c.checked=true;a=true}});if(a){this.on_selection_change()}else{error("RadioFilter.select("+this.name()+"): Can't find value: "+b+"!")}},remove_items:function(){var a=this.form.down(".items");if(a!=undefined){a.remove()}},set_enabled_items:function(b){var a=this;this.get_radio_button().each(function(c){if(b.contains(c.value)){c.enable();a.enable_label(c)}else{c.disable();a.disable_label(c)}})},enable_items:function(a){var b=this;this.get_radio_button().each(function(c){if(a.contains(c.value)){c.enable();b.enable_label(c)}})}});SizeFilter=new Class({Extends:BaseFilter,id:"size_filter_form",initialize:function(){this.form=$(this.id);this.parent(this.form);this.length_values=[];this.width_values=[];var a=this;this.length_value_container=this.form.down(".length_values");this.width_value_container=this.form.down(".width_values");this.item_template=new Template('<div class="item enabled"><span class="number">#{number}</span></div>');this.reset=function(){var b=a.form.getElementsBySelector(".item");b.each(function(c){if(c.hasClassName("selected")){c.removeClassName("selected");c.addClassName("enabled")}});a.length_values=[];a.width_values=[]}},render:function(d,b){this.initial_length_values=d;this.initial_width_values=b;if(d.length==0&&b.length==0){this.form.style.display="none";return}this.length_value_container.update(this.get_items_html(d));this.width_value_container.update(this.get_items_html(b));var a=this.form.getElementsBySelector(".item");var c=this;a.each(function(e){e.addEvent("mouseenter",function(f){f.stop();c.on_item_mouse_enter(e)});e.addEvent("mouseleave",function(f){f.stop();c.on_item_mouse_leave(e)});e.addEvent("click",function(g){var f=parseInt(e.firstChild.firstChild.nodeValue);var h=(e.up(".length_values")==undefined);if(h){c.on_width_value_click(e,f)}else{c.on_length_value_click(e,f)}})});this.form.style.display="block"},set_enabled_items:function(b,a){this.set_enabled_length_items(b);this.set_enabled_width_items(a)},set_enabled_length_items:function(c){var a=this.form.down(".length_values").getElementsBySelector(".item");var b=this;a.each(function(d){var f=d.firstChild.firstChild.nodeValue;var e=c.contains(f);if(e){d.removeClassName("disabled");d.addClassName("enabled")}else{d.addClassName("disabled");d.removeClassName("enabled")}})},set_enabled_width_items:function(b){var a=this.form.down(".width_values").getElementsBySelector(".item");var c=this;a.each(function(d){var f=d.firstChild.firstChild.nodeValue;var e=b.contains(f);if(e){d.removeClassName("disabled");d.addClassName("enabled")}else{d.addClassName("disabled");d.removeClassName("enabled")}})},enable_items:function(b,a){this.enable_length_items(b);this.enable_width_items(a)},enable_length_items:function(c){var a=this.form.down(".length_values").getElementsBySelector(".item");var b=this;a.each(function(e){var f=e.firstChild.firstChild.nodeValue;var d=c.contains(f);var g=e.hasClassName("disabled");if(g&&d){e.removeClassName("disabled");e.addClassName("enabled")}})},enable_width_items:function(b){var a=this.form.down(".width_values").getElementsBySelector(".item");var c=this;a.each(function(e){var f=e.firstChild.firstChild.nodeValue;var d=b.contains(f);var g=e.hasClassName("disabled");if(g&&d){e.removeClassName("disabled");e.addClassName("enabled")}})},settings:function(){var a=[];if(this.width_values.length>0){a.push("width in "+this.width_values.join(","))}if(this.length_values.length>0){a.push("length in "+this.length_values.join(","))}return a},name:function(){return"size"},get_items_html:function(a){var c=this;var b="";a.each(function(d){b+=c.item_template.evaluate({number:d})});b+='<br style="clear: both" />';return b},on_width_value_click:function(a,b){if(a.hasClassName("disabled")){return}if(a.hasClassName("selected")){this.width_values=this.width_values.reject(function(c){return c==b});a.removeClassName("selected");a.addClassName("hover")}else{this.width_values.push(b);a.addClassName("selected");a.addClassName("hover")}this.update_controller("width")},on_length_value_click:function(a,b){if(a.hasClassName("disabled")){return}if(a.hasClassName("selected")){this.length_values=this.length_values.reject(function(c){return c==b});a.removeClassName("selected");a.addClassName("hover")}else{this.length_values.push(b);a.addClassName("selected");a.addClassName("hover")}this.update_controller("length")},update_controller:function(a){FilterController.update({page_number:0},this,a)},on_item_mouse_enter:function(a){if(a.hasClassName("disabled")){return}a.addClassName("hover")},on_item_mouse_leave:function(a){a.removeClassName("hover")}});Category1Filter=new Class({Extends:RadioFilter,id:"category1_filter_form",on_selection_change:function(){FilterController.on_category1_change()},settings:function(){var a=this.get_value();if(!a){return[]}return["category1 is "+a]},name:function(){return"category1"}});Category2Filter=new Class({Extends:RadioFilter,id:"category2_filter_form",on_selection_change:function(){FilterController.on_category2_change()},settings:function(){var a=this.get_value();if(!a){return[]}return["category2 is "+a]},name:function(){return"category2"}});Category3Filter=new Class({Extends:RadioFilter,id:"category3_filter_form",on_selection_change:function(){FilterController.on_category3_change()},settings:function(){var a=this.get_value();if(!a){return[]}return["category3 is "+a]},name:function(){return"category3"}});HardnessGradeFilter=new Class({Extends:RadioFilter,id:"hardness_grade_filter_form",info_map:{H1:"40-60 kg",H2:"60-80 kg",H3:"80-100 kg",H4:"mehr als 100 kg"},label_value:function(a){return this.create_text(a)},create_text:function(a){return this.info_map[a]+" ("+a+")"},settings:function(){var a=this.get_value();if(!a){return[]}return["hardness_grade is "+a]},name:function(){return"hardness_grade"}});var RangeSlider=new Class({Implements:[Events,Options],options:{min:0,max:100,snap:null,snap_visual:false,snap_on_end_of_drag:true,start_min:null,start_max:null,min_event_interval:100,track_styles:{},handle_styles:{},handle_tween_options:{duration:400}},initialize:function(b,g,a,d){this.track=b;this.min_handle=g;this.max_handle=a;this.setOptions(d||{});this.options.track_styles=$extend({position:"relative",cursor:"pointer"},this.options.track_styles);this.options.handle_styles=$extend({position:"absolute",cursor:"move"},this.options.handle_styles);this.track.setStyles(this.options.track_styles);this.min_handle.setStyles(this.options.handle_styles);this.max_handle.setStyles(this.options.handle_styles);var c=this.track.getSize();var f=(c.x<c.y)?"vertical":"horizontal";this.options.min=this.snap_value_floor(this.options.min);this.options.max=this.snap_value_ceil(this.options.max);this.min_value=(this.options.start_min!==null)?this.options.start_min:this.options.min;this.max_value=(this.options.start_max!==null)?this.options.start_max:this.options.max;this.position_property=(f=="vertical")?"top":"left";this.size_property=(f=="vertical")?"y":"x";this.handle_length=this.min_handle.getSize()[this.size_property];this.state="";this.drag_start_mouse_position=null;this.mouse_move_event_handler=this.on_mouse_move.bind(this);this.position_range=c[this.size_property]-2*this.handle_length;this.value_range=this.options.max-this.options.min;this.min_handle_position=null;this.max_handle_position=null;this.old_min_handle_position=null;this.old_max_handle_position=null;this.sended_change_event_last=(new Date()).getTime();this.send_change_event_time_out=null;this.track_position=this.track.getPosition();this.keep_values_in_bounds();this.translate_min_value_to_position();this.translate_max_value_to_position();this.position_handles();document.addEvent("mouseup",this.on_mouse_up.bind(this));this.min_handle.addEvent("mousedown",this.on_min_handle_mouse_down.bind(this));this.max_handle.addEvent("mousedown",this.on_max_handle_mouse_down.bind(this));this.track.addEvent("click",this.on_track_click.bind(this));var e=function(h){h.stop()};this.min_handle.addEvent("click",e);this.max_handle.addEvent("click",e);this.min_handle.set("tween",$extend(this.options.handle_tween_options,{link:"cancel",onComplete:this.on_min_handle_tween_complete.bind(this),onCancel:this.on_min_handle_tween_cancel.bind(this)}));this.max_handle.set("tween",$extend(this.options.handle_tween_options,{link:"cancel",onComplete:this.on_max_handle_tween_complete.bind(this),onCancel:this.on_max_handle_tween_cancel.bind(this)}))},get_value_bounds:function(){return{min:this.options.min,max:this.options.max}},keep_values_in_bounds:function(){if(this.min_value<this.options.min){this.min_value=this.options.min}if(this.min_value>this.options.max){this.min_value=this.options.max}if(this.max_value>this.options.max){this.max_value=this.options.max}if(this.max_value<this.options.min){this.max_value=this.options.min}},translate_min_value_to_position:function(){this.min_handle_position=this.calculate_min_value_to_position(this.min_value)},translate_max_value_to_position:function(){this.max_handle_position=this.calculate_max_value_to_position(this.max_value)},translate_min_position_to_value:function(){this.min_value=this.snap_value(this.calculate_min_position_to_value(this.min_handle_position))},translate_max_position_to_value:function(){this.max_value=this.snap_value(this.calculate_max_position_to_value(this.max_handle_position))},calculate_min_value_to_position:function(a){return((a-this.options.min)/this.value_range)*this.position_range},calculate_max_value_to_position:function(a){return this.handle_length+((a-this.options.min)/this.value_range)*this.position_range},calculate_min_position_to_value:function(a){return this.options.min+a/this.position_range*this.value_range},calculate_max_position_to_value:function(a){return this.options.min+(a-this.handle_length)/this.position_range*this.value_range},position_handles:function(){this.min_handle.setStyle(this.position_property,this.min_handle_position);this.max_handle.setStyle(this.position_property,this.max_handle_position)},on_min_handle_mouse_down:function(a){a.stop();this.state="drag_min";this.min_handle.get("tween").cancel();this.on_dragging_start(a.client[this.size_property])},on_max_handle_mouse_down:function(a){a.stop();this.state="drag_max";this.max_handle.get("tween").cancel();this.on_dragging_start(a.client[this.size_property])},on_mouse_up:function(a){if(this.state==""){return}this.on_dragging_end()},on_dragging_start:function(a){this.drag_start_mouse_position=a;document.addEvent("mousemove",this.mouse_move_event_handler);this.old_min_handle_position=this.min_handle_position;this.old_max_handle_position=this.max_handle_position},on_dragging_end:function(){this.state="";document.removeEvent("mousemove",this.mouse_move_event_handler);if(this.options.snap&&this.options.snap_on_end_of_drag){this.translate_min_value_to_position();this.translate_max_value_to_position();this.position_handles()}this.fire_complete_event()},on_mouse_move:function(b){var a=b.client[this.size_property]-this.drag_start_mouse_position;if(this.state=="drag_min"){this.move_min_handle(a)}else{if(this.state=="drag_max"){this.move_max_handle(a)}}},move_min_handle:function(e){var d=this.keep_min_handle_position_in_bounds(this.old_min_handle_position+e);if(d==this.min_handle_position){return}this.min_handle_position=d;var b=this.min_value;this.translate_min_position_to_value();var c=this.options.snap&&this.options.snap_visual;if(c){this.translate_min_value_to_position()}var a=(b!=this.min_value);if(!c||a){this.min_handle.setStyle(this.position_property,this.min_handle_position)}if(a){this.fire_change_event()}},move_max_handle:function(e){var d=this.keep_max_handle_position_in_bounds(this.old_max_handle_position+e);if(d==this.max_handle_position){return}this.max_handle_position=d;var b=this.max_value;this.translate_max_position_to_value();var c=this.options.snap&&this.options.snap_visual;if(c){this.translate_max_value_to_position()}var a=(b!=this.max_value);if(!c||a){this.max_handle.setStyle(this.position_property,this.max_handle_position)}if(a){this.fire_change_event()}},keep_min_handle_position_in_bounds:function(c){var b=0;var a=this.max_handle_position-this.handle_length;if(c<b){c=b}else{if(c>a){c=a}}return c},keep_max_handle_position_in_bounds:function(c){var b=this.min_handle_position+this.handle_length;var a=this.position_range+this.handle_length;if(c<b){c=b}else{if(c>a){c=a}}return c},snap_value:function(a){if(this.options.snap===null){return a}return(a/this.options.snap).round()*this.options.snap},snap_value_floor:function(a){if(this.options.snap===null){return a}return(a/this.options.snap).floor()*this.options.snap},snap_value_ceil:function(a){if(this.options.snap===null){return a}return(a/this.options.snap).ceil()*this.options.snap},fire_change_event:function(){$clear(this.send_change_event_time_out);var a=(new Date()).getTime();if(a-this.sended_change_event_last<this.options.min_event_interval){var b=this.fire_change_event.bind(this);this.send_change_event_time_out=setTimeout(b,this.options.min_event_interval);return}this.sended_change_event_last=a;var b=this.fireEvent.bind(this,["change",{min:this.min_value,max:this.max_value}]);setTimeout(b,0)},fire_complete_event:function(){this.fireEvent("complete",{min:this.min_value,max:this.max_value})},on_track_click:function(f){var d=f.client[this.size_property]-this.track_position[this.size_property];var e=this.min_handle.getPosition(this.track)[this.size_property];var g=this.max_handle.getPosition(this.track)[this.size_property];var i=(e+this.handle_length-d).abs();var b=(g-d).abs();var h=(i<b)?"min":"max";if(i==b){i=(e-d).abs();h=(i<b)?"min":"max"}var a,c=d-this.handle_length/2;if(h=="min"){a=this.min_handle;c=this.keep_min_handle_position_in_bounds(c);if(this.options.snap){c=this.calculate_min_value_to_position(this.snap_value(this.calculate_min_position_to_value(c)))}}else{a=this.max_handle;c=this.keep_max_handle_position_in_bounds(c);if(this.options.snap){c=this.calculate_max_value_to_position(this.snap_value(this.calculate_max_position_to_value(c)))}}a.tween(this.position_property,c)},on_min_handle_tween_complete:function(a){this.read_min_position_from_handle();this.translate_min_position_to_value();this.fire_change_event();this.fire_complete_event()},on_max_handle_tween_complete:function(a){this.read_max_position_from_handle();this.translate_max_position_to_value();this.fire_change_event();this.fire_complete_event()},on_min_handle_tween_cancel:function(){this.read_min_position_from_handle()},on_max_handle_tween_cancel:function(){this.read_max_position_from_handle()},read_max_position_from_handle:function(){this.max_handle_position=this.max_handle.getPosition(this.track)[this.size_property]},read_min_position_from_handle:function(){this.min_handle_position=this.min_handle.getPosition(this.track)[this.size_property]}});PriceFilter=new Class({Extends:BaseFilter,id:"price_filter_form",initial_min:-1,initial_max:-1,initialize:function(){this.form=$(this.id);this.parent(this.form);this.min_price=undefined;this.max_price=undefined;var a=this;this.reset=function(){a.create(a.initial_min,a.initial_max);a.min_price=a.initial_min;a.max_price=a.initial_max};this.slider=this.form.down(".slider");this.min_price_output=this.form.down(".min_price_output");this.max_price_output=this.form.down(".max_price_output")},render:function(a){this.create(a[0],a[1])},create:function(a,e){a=parseInt(a);e=parseInt(e);this.initial_min=a;this.initial_max=e;var d=this;var c=this.slider.down(".slider_handle_a");var b=this.slider.down(".slider_handle_b");if(!this.slider_control){this.slider_control=new RangeSlider(this.slider,c,b,{min:a,max:e,snap:10,onChange:function(f){d.read_and_display_values(f)},onComplete:function(f){d.read_and_display_values(f);FilterController.update({page_number:0},d)}})}this.read_and_display_values(this.slider_control.get_value_bounds())},settings:function(){var a=[];if(typeof this.min_price!="undefined"&&typeof this.max_price!="undefined"){a.push("price between "+this.min_price+" and "+this.max_price)}return a},name:function(){return"price"},read_and_display_values:function(a){this.min_price=a.min;this.max_price=a.max;this.min_price_output.update(this.min_price+" &euro;");this.max_price_output.update(this.max_price+" &euro;")},hide_output:function(){this.min_price_output.update("");this.max_price_output.update("")}});PageModel={data_lookup:data_lookup,category1:category1,category2:category2,category3:category3,get_data_lookup_by_category_path:function(b){var c=this.data_lookup;for(var a=0;a<b.length;a++){b[a]=b[a].gsub("&euro;","\u20ac")}if(b.length>=1){c=c[b[0]]}if(b.length>=2){c=c[b[1]]}if(b.length>=3){c=c[b[2]]}if(typeof c=="undefined"){error("Could not lookup data for category path: ",b)}return c},count_variants_with_attribute:function(a,d){var b=a.attribute_values[d];var c=0;$H(b).each(function(f,e){c+=parseInt(f)});return c},attribute_values:function(a,b){if(b=="price"){return a.attribute_values[b]}return $H(a.attribute_values[b]).getKeys()}};FilterController={order_by:"price",order_dir:"asc",page_number:0,record_count:0,records_per_page:9,filter_by_request_id:{},filter_type_by_request_id:{},attributes:[],update_enabled:true,top_pager:null,bottom_pager:null,hidden_filters:{},initial_category_path:[],last_request_id:-1,content_container_id:"product_listing",initialize:function(){var j=$("filter_toolbar");j.style.visibility="hidden";if(PageModel.category1&&PageModel.category2&&PageModel.category3){this.initial_category_path=[PageModel.category1,PageModel.category2,PageModel.category3]}else{if(PageModel.category1&&PageModel.category2){this.initial_category_path=[PageModel.category1,PageModel.category2]}else{error("No category entry")}}for(var f=0;f<this.initial_category_path.length;f++){this.hidden_filters["category"+(f+1)]=true}this.show_or_hide_filters_by_relevancy();this.disable_update();for(var f=0;f<this.initial_category_path.length;f++){var c=FilterRegistry.get("category"+(f+1));var h=this.initial_category_path[f];c.select(h)}this.enable_update();j.style.visibility="visible";var g=read_cookie("last_filter_params");if(g){var l=true;if(g.indexOf(GLOBALS.get("category1"))==-1){l=false}if(GLOBALS.get("category2")&&g.indexOf(GLOBALS.get("category2"))==-1){l=false}if(GLOBALS.get("category3")&&g.indexOf(GLOBALS.get("category3"))==-1){l=false}if(!GLOBALS.get("category3")&&g.indexOf("category3")!=-1){l=false}if(l){var d=JSON.decode(g);this.order_by=d.order_by;this.order_dir=d.order_dir;this.records_per_page=d.records_per_page;this.page_number=Math.floor(d.first_record/this.records_per_page);$(this.content_container_id).update("");this.send_request(d)}}var k=read_cookie("order");if(k){var e=k.split(",");this.order_by=e[0];this.order_dir=e[1]}var b=read_cookie("records_per_page");if(b){this.records_per_page=b}var a=$("filter_toolbar").down(".filter_info");a.show();a.down(".reset").addEvent("click",this.reset.bind(this))},show_or_hide_filters_by_relevancy:function(){var f={};var b=PageModel.get_data_lookup_by_category_path(this.initial_category_path);var c=b.attributes;var e=parseInt(b.count);for(var d=0;d<c.length;d++){var g=c[d];var a=PageModel.count_variants_with_attribute(b,g);if(g=="price"||(e/2)<a){f[g]=PageModel.attribute_values(b,g)}else{}}var h=this;$H(f).each(function(i,j){if(j=="length"){if(!f.width){filter=null}else{filter=FilterRegistry.get("size")}}else{filter=FilterRegistry.get(j)}if(!filter){return}if(h.hidden_filters[filter.name()]){filter.hide()}else{filter.show()}if(filter.name()=="size"){filter.render(f.length,f.width)}else{filter.render(i)}})},reset:function(){FilterRegistry.get_filters().filter(function(a){return a.visible()}).invoke("reset");this.update({page_number:0})},update:function(c,b,a){if(!this.update_enabled){return}if(typeof c=="undefined"){c={}}if(typeof c.page_number!="undefined"){this.page_number=c.page_number}var c={settings:this.collect_criteria_list(),first_record:this.page_number*this.records_per_page,records_per_page:this.records_per_page,order_by:this.order_by,order_dir:this.order_dir};write_cookie("last_filter_params",JSON.encode(c));write_cookie("order",c.order_by+","+c.order_dir);write_cookie("records_per_page",c.records_per_page);this.send_request(c);if(b){this.filter_by_request_id[this.last_request_id]=b}if(a){this.filter_type_by_request_id[this.last_request_id]=a}},send_request:function(a){this.last_request_id=Server.request("filter","filter",a,{on_success:this.handle_response.bind(this)})},set_order:function(b,a){this.order_by=b;this.order_dir=a;this.update()},disable_update:function(){this.update_enabled=false},enable_update:function(){this.update_enabled=true},handle_response:function(c){if(c.get("request_id")!=this.last_request_id){return}if($("product_listing_extra_info")){$("product_listing_extra_info").dispose()}this.top_pager=GLOBALS.get("top_pager");this.bottom_pager=GLOBALS.get("bottom_pager");ListingRenderer.render(this.content_container_id,c.get("records"));this.record_count=parseInt(c.get("count"));this.attributes=c.get("attributes");this.attribute_values=c.get("attribute_values");this.update_filter_active_state(c.get("request_id"));if(this.top_pager){var b=this.page_number+1;var a=this.total_pages();var d={page_number:b,total_pages:a,record_count:this.record_count,records_per_page:this.records_per_page,order_by:this.order_by,order_dir:this.order_dir};this.top_pager.update(d);this.bottom_pager.update(d)}if(FilterMain.debug){this.display_debugging_output(c)}},update_filter_active_state:function(c){var k=this.filter_by_request_id[c];var f="undefined";if(k&&k.name){f=k.name()}else{}var j={category1:1,category2:1,price:1,size:1};var d=FilterRegistry.get_filters().filter(function(i){return i.visible()}).collect(function(i){return i.name()});for(var g=0;g<d.length;g++){var b=d[g];if(j[b]){continue}var h=FilterRegistry.get(b);if(!h){continue}var a=$H(this.attribute_values[b]).getKeys();if(f==b){h.enable_items(a)}else{h.set_enabled_items(a)}}var e=FilterRegistry.get("size");if(this.attributes.contains("length")&&this.attributes.contains("width")){if(k!=e){e.set_enabled_items($H(this.attribute_values.length).getKeys(),$H(this.attribute_values.width).getKeys())}else{if(this.filter_type_by_request_id[c]=="width"){e.enable_width_items($H(this.attribute_values.width).getKeys());e.set_enabled_length_items($H(this.attribute_values.length).getKeys())}else{e.set_enabled_width_items($H(this.attribute_values.width).getKeys());e.enable_length_items($H(this.attribute_values.length).getKeys())}}}},on_category1_change:function(){if(!this.update_enabled){return}this.update({page_number:0},FilterRegistry.get("category1"))},on_category2_change:function(){if(!this.update_enabled){return}this.update({page_number:0},FilterRegistry.get("category2"))},on_category3_change:function(){if(!this.update_enabled){return}this.update({page_number:0},FilterRegistry.get("category3"))},set_records_per_page:function(a){var b=this.page_number*this.records_per_page;if(this.records_per_page!=a){this.page_number=Math.floor(b/a)}this.records_per_page=a;this.update()},prev_page:function(){if(this.page_out_of_bounds(this.page_number-1)){return}this.page_number--;this.update()},next_page:function(){if(this.page_out_of_bounds(this.page_number+1)){return}this.page_number++;this.update()},goto_page:function(a){a=parseInt(a)-1;if(this.page_out_of_bounds(a)){return}this.page_number=a;this.update()},page_out_of_bounds:function(a){a=parseInt(a);if(a>=this.total_pages()){return true}if(a<0){return true}return false},total_pages:function(){return Math.ceil(this.record_count/this.records_per_page)},collect_criteria_list:function(){var b=FilterRegistry.get_filters();var a=[];for(var d=0;d<b.length;d++){var f=b[d];var e=f.settings();for(var c=0;c<e.length;c++){a.push(e[c])}}return a},display_debugging_output:function(b){var e=this.attribute_values;var c="";$H(e).each(function(l,j){var m="";var k=0;if(j=="price"){m="min: "+l[0]+", max: "+l[1]}else{var i=[];$H(l).each(function(n){k+=parseInt(n);i.push(p.key+"("+n+")")});m=i.join(", ")}c+="<em>"+j+"("+k+')</em>: <input type="text" value="'+m+'" style="width: 50%" /><br />'});var h=b.get("execution_times");var f="";$H(h).each(function(j,i){f+="<em>"+i+"</em>: "+j+" sec.<br />"});var a=$("debug_output");if(!a){var d='<div id="debug_output"></div>';document.body.insert(d,"bottom");a=$("debug_output")}a.update("<em>attributes:</em> "+b.get("attributes").join(", ")+"<br /><em>count:</em> "+this.record_count+"<br />"+c+"<hr />"+f);var g=b.get("executed_sql");$H(g).each(function(j,i){g[i]=j.split("\n").join(" ")});debug("executed_sql:",g)}};window.addEvent("domready",function(){GlobalRequestObserver.addEvent("onNumberOfRunningRequestChanged",function(a){if(a==1){$("filter_toolbar").down(".filter_info").down(".title").addClassName("progress")}if(a==0){$("filter_toolbar").down(".filter_info").down(".title").removeClassName("progress")}})});ListingRenderer={init:function(){this.product_item_template=GLOBALS.get("product_item_template");this.url_template=new Template(GLOBALS.get("base_url")+"#{seo_path}.html")},render:function(e,a){this.container=$(e);this.picture_variant=(read_cookie("option_view")=="table")?"topseller_item":"list_item";this.cycle_class="odd";var d="";if(FilterController.order_by=="price"){var b=FilterController.order_dir;a.sort(function(g,f){var i=parseFloat(g.price);var h=parseFloat(f.price);if(i==h){return 0}if(b=="asc"){if(i<h){return -1}return 1}if(i>h){return -1}return 1})}for(var c=0;c<a.length;c++){d+=this.render_product_item(a[c]);this.cycle_class=(this.cycle_class=="odd")?"even":"odd"}this.container.update(d)},render_product_item:function(b){var e=(parseInt(b.stock_amount)>0);var d=b.icons.gsub(","," ");if(!e){d=d.gsub("available_from_stock","")}var c={};c.id=this.get_product_id(b);c.link=this.get_product_url(b.seo_path);c.vendor_title=b.vendor_name;c.title=b.name;c.description=b.short_description;c.image_url=picturama_url(c.id,1,c.title,this.picture_variant);c.old_price_display="none";c.old_price_formated="";c.heavy_reduced_display="none";c.price_class="normal_price";c.cycle_class=this.cycle_class;c.special_classes=d;var a=parseFloat(b.old_price);if(a!=0){c.old_price_display="block";c.old_price_formated=this.format_price(b.old_price);c.price_class="new_price";if(parseInt(b.old_price)<=parseInt(b.price)){c.old_price_display="none";c.heavy_reduced_display="block"}}c.price_formated=this.format_price(b.price,b.max_price);c.icons_top_left="";if(e){c.icons_top_left='<img src="/forliving/images/icons/48h.jpg" alt="48 Stunden Lieferzeit" />'}c.icons_bottom_left=this.create_product_icons(b.icons);c.delivery_cost_url="/cms/versandkosten.html";return this.product_item_template.substitute(c)},icon_map:{newest_product:{file:"new.gif",alt:"Neu im Sortiment"},most_bought:{file:"topseller.gif",alt:"Topseller"},most_reduced:{file:"most_reduced.gif",alt:"Stark reduziert"},shopping_tip:{file:"special.gif",alt:"Empfehlung"}},create_product_icons:function(c){c=c.split(",").map(function(f){return f.trim()}).filter(function(f){return f!=""}).sort();if(c.contains("most_bought")&&c.contains("shopping_tip")){c.erase("shopping_tip")}var b="";for(var a=0;a<c.length;a++){var d=c[a];if(!$defined(this.icon_map[d])){continue}b+='<img src="/forliving/images/icons/'+this.icon_map[d].file+'" alt="'+this.icon_map[d].alt+'" title="'+this.icon_map[d].alt+'" />'}return b},format_price:function(d,e){var f=d.split(".");var c=f[0];var b=(typeof f[1]!="undefined")?f[1]:"00";while(b.length<2){b+="0"}var a=c+","+b;if(d==e){return a}else{return"ab "+a}},wrap_product_link:function(b,a){return'<a href="'+this.get_product_url(a)+'">'+b+"</a>"},get_product_id:function(c){var a=c.id;var b=c.parent_id;if(b!=""&&!b.startsWith("fake_parent_id")){a=b}return a},get_product_url:function(b){var a=this.url_template.evaluate({seo_path:b});return a}};ListingRenderer.init();FilterRegistry={filters:null,get_filters:function(){this.init_filters();return this.filters},get:function(b){this.init_filters();var a=false;if(this.filters_by_name[b]){a=this.filters_by_name[b]}else{a=this.filters_by_name[b+"_filter"]}if(!a){return null}return a},init_filters:function(){if(this.filters){return}this.filters=[new SizeFilter(),new CheckboxFilter({name:"height",metrical_unit:"cm",title:"Gesamth�he",before:"price"}),new CheckboxFilter({name:"vendor",title:"Hersteller",before:"price"}),new Category1Filter(),new Category2Filter(),new Category3Filter(),new PriceFilter(),new HardnessGradeFilter()];this.filters_by_name={};base=this;this.filters.each(function(a){base.filters_by_name[a.name()]=a})}};FilterMain={debug:false,initialize:function(){FilterController.initialize()}};window.addEvent("domready",function(){if($("filter_toolbar")){FilterMain.initialize()}});FilterInfo=new Class({arrow_width:13,arrow_html:'<div class="arrow">&nbsp;</div>',initialize:function(a){this.filter_div=a;this.filter_name=this.filter_div.id.gsub("_filter_form","");this.info_display_id=this.filter_name+"_info_display";this.content=null;this.shadow=null;this.visible=false;this.add_info_button();this.register_mouse_events()},add_info_button:function(){this.filter_div.insert({bottom:'<a class="info_link" href="javascript:;">&nbsp;</a>'})},register_mouse_events:function(){var a=this.filter_div.down(".info_link");a.addEvent("mouseover",this.show_info.bind(this));a.addEvent("mouseout",this.hide_info.bind(this))},show_info:function(){this.visible=true;if(this.content){$(this.info_display_id).show();this.show_shadow();return}var a='<div class="filter_help" id="'+this.info_display_id+'" style="display: none;">Daten werden geladen...'+this.arrow_html+"</div>";var d=$("main_container");var b=d.insert({top:a});var e=this.filter_div.getCoordinates(d);b.setStyles({position:"absolute",top:e.top,left:e.left+e.width-1+this.arrow_width,zIndex:2});Server.request("cms","show",{filter_name:this.filter_name},{on_success:this.on_content_loaded.bind(this)})},hide_info:function(){this.visible=false;$(this.info_display_id).hide();this.hide_shadow()},on_content_loaded:function(a){info_display_div=$(this.info_display_id);this.content=a.get("content");info_display_div.update(this.content+this.arrow_html);if(!this.visible){return}info_display_div.show();this.show_shadow()},hide_shadow:function(){if(this.shadow){this.shadow.hide();if(Browser.Engine.trident){this.shadow.destroy();this.shadow=null}}},show_shadow:function(){if(this.shadow){this.shadow.show();return}this.shadow=new Shadow($(this.info_display_id),{offset:12})}});window.addEvent("domready",function(){$$(".filter").each(function(a){if(!a.visible()){return}if(!a.id){return}new FilterInfo(a)})})
/*
Script: SimpleCarousel.js

Builds a carousel object that manages the basic functions of a generic carousel (a carousel	here being a collection of "slides" that play from one to the next, with a collection of "buttons" that reference each slide).

License:
	http://clientside.cnet.com/wiki/cnet-libraries#license
*/
;var SimpleCarousel=new Class({Implements:[Options,Events],options:{slideInterval:4000,transitionDuration:700,startIndex:0,buttonOnClass:"selected",buttonOffClass:"off",rotateAction:"none",rotateActionDuration:100,autoplay:true},initialize:function(a,c,d,b){this.container=$(a);if(this.container.hasClass("hasCarousel")){return false}this.setOptions(b);this.container.addClass("hasCarousel");this.slides=$$(c);this.buttons=$$(d);this.createFx();this.showSlide(this.options.startIndex);if(this.options.autoplay){this.autoplay()}if(this.options.rotateAction!="none"){this.setupAction(this.options.rotateAction)}return this},toElement:function(){return this.container},setupAction:function(a){this.buttons.each(function(c,b){$(c).addEvent(a,function(){this.slideFx.setOptions(this.slideFx.options,{duration:this.options.rotateActionDuration});if(this.currentSlide!=b){this.showSlide(b)}this.stop()}.bind(this))},this)},createFx:function(){if(!this.slideFx){this.slideFx=new Fx.Elements(this.slides,{duration:this.options.transitionDuration})}this.slides.each(function(a){a.setStyle("opacity",0)})},showSlide:function(b){var a={};this.slides.each(function(c,d){if(d==b&&d!=this.currentSlide){$(this.buttons[d]).swapClass(this.options.buttonOffClass,this.options.buttonOnClass);a[d.toString()]={opacity:1}}else{$(this.buttons[d]).swapClass(this.options.buttonOnClass,this.options.buttonOffClass);a[d.toString()]={opacity:0}}},this);this.fireEvent("onShowSlide",b);this.currentSlide=b;this.slideFx.start(a);return this},autoplay:function(){this.slideshowInt=this.rotate.periodical(this.options.slideInterval,this);this.fireEvent("onAutoPlay");return this},stop:function(){$clear(this.slideshowInt);this.fireEvent("onStop");return this},rotate:function(){current=this.currentSlide;next=(current+1>=this.slides.length)?0:current+1;this.showSlide(next);this.fireEvent("onRotate",next);return this}});window.addEvent("domready",function(){new SimpleCarousel($("product_carousel"),$$("#product_carousel .item"),$$("#product_carousel .item"),{slideInterval:6500})});