To open a filter rule, just click on it. Once a filter rule is opened, it takes effect until it's closed again. You can open several rules at once. Then just select what you want, for example the hair color, the age range, spoken languages, etc..
Use the Select All/Clear All button when they're available to select or clear several checkboxes at once.

Note: The filters only work for escorts who supplied most data about them. If for example an escort didn't specify her age, she will be filtered as soon as you move the age slider. The only data that are always available are her hair color and one of incall or outcall services."; $STR_LEFTBAR_PRICE_HOUR="pro Stunde"; $STR_LEFTBAR_PRICE_MINIMUM="Minimum"; $STR_LEFTBAR_COUNTRY="Herkunftsland"; $STR_LEFTBAR_LANGUAGES="Sprache"; $STR_LEFTBAR_HEIGHT="Grösse"; $STR_LEFTBAR_HEIGHT_SHORT="kurz"; $STR_LEFTBAR_HEIGHT_AVERAGE="mittlere"; $STR_LEFTBAR_HEIGHT_TALL="hoch"; $STR_LEFTBAR_BREASTS="Brüste Grösse"; $STR_LEFTBAR_BREASTS_SMALL="klein"; $STR_LEFTBAR_BREASTS_AVERAGE="mittlere"; $STR_LEFTBAR_BREASTS_BIG="gross"; $STR_LEFTBAR_WEIGHT="Gewicht"; $STR_LEFTBAR_TRAVELS="Reisen"; $STR_LEFTBAR_SERVICES="Services"; $STR_LEFTBAR_HOTELS="nach hotels"; $STR_LEFTBAR_APARTMENTS="nach Wohnungen"; $STR_LEFTBAR_TRAVELS_NONE="keiner"; $STR_LEFTBAR_TRAVELS_SPAIN="Spanien"; $STR_LEFTBAR_TRAVELS_EUROPE="Europa"; $STR_LEFTBAR_NAME="Name"; $STR_LEFTBAR_NAMES_ALL="[Alle]"; $STR_LEFTBAR_GOTO="Go to that step"; $STR_LEFTBAR_DAYSLEFT="Days left:"; $STR_LEFTBAR_DAYSLEFT_HELP="Days left until the advert is not displayed anymore"; $STR_LEFTBAR_DAYSLEFT_VIP="VIP account"; $STR_LEFTBAR_AGENCIES="Agenturen"; $STR_LEFTBAR_AGENCIES_LIST="Agenturen Liste"; $STR_LEFTBAR_CERTIFIED_BASIC="Elementar"; $STR_LEFTBAR_CERTIFIED_EXTENDED="Verlängert"; $STR_LEFTBAR_INCALL="Incall"; $STR_LEFTBAR_OUTCALL_HOTELS="Outcall nach Hotels"; $STR_LEFTBAR_OUTCALL_APARTMENTS="Outcall nach Wohnungen"; $STR_LEFTBAR_TRAVEL_SPAIN="Reisen in Spanien"; $STR_LEFTBAR_TRAVEL_EUROPE="Reisen nach Europa"; $STR_LEFTBAR_LANGUAGE_SPANISH="Spanisch"; $STR_LEFTBAR_LANGUAGE_ENGLISH="Englisch"; $STR_LEFTBAR_LANGUAGE_FRENCH="Französisch"; $STR_LEFTBAR_LANGUAGE_GERMAN="Deutsch"; $STR_LEFTBAR_LANGUAGE_ITALIAN="Italienisch"; $STR_LEFTBAR_LANGUAGE_PORTUGUESE="Portugiesisch"; $STR_LEFTBAR_STRIPTEASE="Striptease"; $STR_LEFTBAR_STAGDO="Junggesellenabschied"; $STR_LEFTBAR_MASSAGE="Massage"; $STR_LEFTBAR_BLOWJOB="Oral ohne Kondom"; $STR_LEFTBAR_BLOWJOB_FULL="Sperma im Mund"; $STR_LEFTBAR_ANAL="Anal"; $STR_LEFTBAR_THREESOME="Dreier"; $STR_LEFTBAR_COUPLES="Paar"; $STR_LEFTBAR_SADO="Sadomasochismus"; $STR_LEFTBAR_LOCATION="Lage"; $STR_LEFTBAR_GET_ANDROID="Download der Android-App!"; ?> filter_open = false; firstrun = true; cities = Array(); countries = Array(); function leftbar_city_add(city) { for (i = 0; i < cities.length; i++) { if (cities[i] == city) { return; /* found */ } } cities[i] = city; } function leftbar_country_add(country) { for (i = 0; i < countries.length; i++) { if (countries[i] == country) { return; /* found */ } } countries[i] = country; } function leftbar_iterate_internal() { /* IE requires that for some reasons */ var leftbar_city = $("#leftbar_city > option", leftbarobj); var leftbar_country = $("#leftbar_country > option", leftbarobj); displayed = 0; total = 0; age_min = 30; age_max = 40; price_min = 150; price_max = 200; weight_min = 50; weight_max = 60; if (firstrun) { data = $(".cities").attr("data-info").split("|"); j = 0; while (city_data = data.shift()) { cities[j++] = city_data; } } else { /* * Cache the filters as they don't change * while we iterate. */ cityval = leftbar_cityobj.val(); countryval = leftbar_countryobj.val(); } $(".escort").each(function () { name = $(".name", this).text(); data = $(".data", this).attr("data-info").split("|"); age = Number(data.shift()); price = Number(data.shift()); price_hour = Number(data.shift()); hair = Number(data.shift()); eyes = Number(data.shift()); city = data.shift(); country = data.shift(); languages = data.shift(); height = Number(data.shift()); breasts = Number(data.shift()); weight = Number(data.shift()); places = Number(data.shift()); services = Number(data.shift()); certified = Number(data.shift()); show = false; total++; console.log("running loop"); if (firstrun) { leftbar_country_add(country); displayed++; } else { console.log("running filters..."); show = true; /* city */ if (show) { console.log(name + ", city"); if ((cityval == "@-none") || (cityval == city)) { show = true; } else { show = false; } } /* country */ if (show) { console.log(name + ", country"); if ((countryval == "@-none" || countryval == "-none") || /* XXX: sometimes it's @-none and sometimes it's -none.. don't find why */ (countryval == country)) { show = true; } else { show = false; } } if (filter_open) { /* height */ if (show) { console.log(name + ", height"); if (height) { switch (height_obj.val()) { case "1": if (!(height < 160)) { show = false; } break; case "3": if (!(height > 174)) { show = false; } break; case "2": if (!(height >= 160 && height <= 174)) { show = false; } break; default: /* show all */ break; } } else { if (height_obj.val() != "0") { show = false; } } } /* breasts */ if (show) { console.log(name + ", breasts"); if (breasts) { switch (breasts_obj.val()) { case "1": if (!(breasts < 90)) { show = false; } break; case "3": if (!(breasts >= 100)) { show = false; } break; case "2": if (!(breasts >= 90 && breasts < 100)) { show = false; } break; default: /* show all */ break; } } else { if (breasts_obj.val() != "0") { show = false; } } } /* price */ if (show) { console.log(name + ", price"); if (price) { switch (price_min_obj.val()) { case "0": /* always true */ break; case "1": if (price < 100) { show = false; } break; case "2": if (price < 150) { show = false; } break; case "3": if (price < 200) { show = false; } break; case "4": if (price < 250) { show = false; } break; case "5": if (price < 300) { show = false; } break; case "6": if (price < 600) { show = false; } break; case "7": if (price < 1000) { show = false; } break; } if (show) { switch (price_max_obj.val()) { case "0": if (price > 100) { show = false; } break; case "1": if (price > 150) { show = false; } break; case "2": if (price > 200) { show = false; } break; case "3": if (price > 250) { show = false; } break; case "4": if (price > 300) { show = false; } break; case "5": if (price > 600) { show = false; } break; case "6": if (price > 1000) { show = false; } break; case "7": /* always true */ break; } } } else { if (!(price_min_obj.val() == 0 && price_max_obj.val() == 7)) { show = false; /* she has no price, don't display */ } } } /* certified */ if (show) { console.log(name + ", certified"); if (certified) { /* always true */ } else { if (certified_obj.val() != 0) { show = false; } } } /* age */ if (show) { console.log(name + ", age"); if (age) { switch (age_min_obj.val()) { case "0": /* always true */ break; case "1": if (age < 20) { show = false; } break; case "2": if (age < 25) { show = false; } break; case "3": if (age < 30) { show = false; } break; case "4": if (age < 35) { show = false; } break; case "5": if (age < 40) { show = false; } break; case "6": if (age < 45) { show = false; } break; } if (show) { switch (age_max_obj.val()) { case "0": if (age > 20) { show = false; } break; case "1": if (age > 25) { show = false; } break; case "2": if (age > 30) { show = false; } break; case "3": if (age > 35) { show = false; } break; case "4": if (age > 40) { show = false; } break; case "5": if (age > 45) { show = false; } break; case "6": /* always true */ break; } } } else { if (!(age_min_obj.val() == 0 && age_max_obj.val() == 6)) { show = false; /* she didn't specify her age so she's out */ } } } /* hair */ if (show) { console.log(name + ", hair"); switch (hair_obj.val()) { case "0": /* always true */ break; case "1": if (hair != 0) /* blond */ { show = false; } break; case "2": if (hair != 1) /* black */ { show = false; } break; case "3": if (hair != 2) /* brown */ { show = false; } break; case "4": if (hair != 3) /* red */ { show = false; } break; } } /* eyes */ if (show) { console.log(name + ", eyes"); switch (eyes_obj.val()) { case "0": /* always true */ break; case "1": if (eyes != 0) /* blue */ { show = false; } break; case "2": if (eyes != 1) /* brown */ { show = false; } break; case "3": if (eyes != 2) /* green */ { show = false; } break; case "4": if (eyes != 3) /* grey */ { show = false; } break; } } /* places */ if (show) { console.log(name + ", location"); switch (location_obj.val()) { case "0": /* always true */ break; case "1": /* incall */ if ((places & 1) != 1) { show = false; } break; case "2": /* outcall hotels */ if ((places & 18) != 18) { show = false; } break; case "3": /* outcall apartments */ if ((places & 34) != 34) { show = false; } break; case "4": /* outcall spain */ if ((places & 6) != 6) { show = false; } break; case "5": /* outcall europe */ if ((places & 10) != 10) { show = false; } break; } } /* languages */ if (show) { console.log(name + ", languages"); switch (languages_obj.val()) { case "0": /* always true */ break; case "1": /* spanish */ if (!(languages & 1)) { show = false; } break; case "2": /* english */ if (!(languages & 2)) { show = false; } break; case "3": /* french */ if (!(languages & 4)) { show = false; } break; case "4": /* german */ if (!(languages & 8)) { show = false; } break; case "5": /* italian */ if (!(languages & 16)) { show = false; } break; case "6": /* portuguese */ if (!(languages & 32)) { show = false; } break; } } /* services */ if (show) { console.log(name + ", services"); switch (services_obj.val()) { case "0": /* always true */ break; case "1": /* striptease */ if (!(services & 1)) { show = false; } break; case "2": /* stagdo */ if (!(services & 2)) { show = false; } break; case "3": /* massage */ if (!(services & 4)) { show = false; } break; case "4": /* blowjob */ if (!(services & 8)) { show = false; } break; case "5": /* blowjob full */ if (!(services & 16)) { show = false; } break; case "6": /* anal */ if (!(services & 32)) { show = false; } break; case "7": /* threesome */ if (!(services & 64)) { show = false; } break; case "8": /* couples */ if (!(services & 128)) { show = false; } break; case "9": /* sado */ if (!(services & 256)) { show = false; } break; } } } if (show) { $(this).show(); displayed++; } else { $(this).hide(); } } }); if (firstrun) { leftbar_city.each(function () { $(this).attr("value", "@" + $(this).attr("value")); }); leftbar_country.each(function () { $(this).attr("value", "@" + $(this).attr("value")); }); /* * Not terribly efficient. */ while (cities.length) { s = cities.shift(); leftbar_city.each(function () { if (s == $(this).attr("value").substring(1)) { $(this).attr("value", $(this).attr("value").substring(1)); } }); } leftbar_city.each(function () { if ($(this).attr("value").substring(0, 1) == "@") { if ($(this).attr("value").substring(1, 2) == "-") { $(this).text(""); } else { $(this).remove(); } } }); while (countries.length) { s = countries.shift(); leftbar_country.each(function () { if (s == $(this).attr("value").substring(1)) { $(this).attr("value", $(this).attr("value").substring(1)); } }); } leftbar_country.each(function () { if ($(this).attr("value").substring(0, 1) == "@") { if ($(this).attr("value").substring(1, 2) == "-") { $(this).text(""); } else { $(this).remove(); } } }); firstrun = false; } $("#leftbar_processing").hide(); console.log("displayed: " + displayed); if (displayed) { fake_scroll(); } else { $("#noresults").show(); } } /* this refreshes the lazily loaded images */ function fake_scroll() { window.scrollTop = 0; var e = document.createEvent("UIEvents"); e.initUIEvent("scroll", true, true, window, 1); window.dispatchEvent(e); } function leftbar_iterate() { $("#noresults").hide(); $("#leftbar_processing").show(); setTimeout("leftbar_iterate_internal()", 1); } $(function () { leftbarobj = $("#leftbar"); leftbar_cityobj = $("#leftbar_city", leftbarobj); leftbar_countryobj = $("#leftbar_country", leftbarobj); height_obj = $("#height", leftbarobj); breasts_obj = $("#breasts", leftbarobj); price_min_obj = $("#price_min", leftbarobj); price_max_obj = $("#price_max", leftbarobj); certified_obj = $("#certified", leftbarobj); age_min_obj = $("#age_min", leftbarobj); age_max_obj = $("#age_max", leftbarobj); hair_obj = $("#hair", leftbarobj); eyes_obj = $("#eyes", leftbarobj); location_obj = $("#location", leftbarobj); languages_obj = $("#languages", leftbarobj); services_obj = $("#services", leftbarobj); $("#leftbar_wait").fadeOut(200, function () { $("#leftbar").css('visibility', 'visible').hide().fadeIn(200); }); leftbar_iterate_internal(); $("#leftbar_city").val('cadiz'); $("#leftbar_city", "#leftbar").change(function (e) { if ($(this).attr("value") == '@-none') { location.replace('list.php'); } else { location.replace('list.php?city=' + $(this).attr("value")); } }); /* toggle all select on change */ $(".select-change", "#leftbar").change(function (e) { leftbar_iterate(); }); $("#filterbutton").click(function () { $(this).find('.glyphicon').toggleClass("glyphicon-minus").toggleClass("glyphicon-plus"); filter_open ^= true; leftbar_iterate(); }); });