/* Filter javascritp code */



//var url = "http://localhost/Filter/View/"
//var url = "http://localhost:8888/run/avida/index.php/Filter/View/"
var url = "/Filter/View/"
	
// ========= document ready function starts below ============================
	
var cookieControl = 0;	
	
jQuery(document).ready(function() {
	//result amount check and output
	
	resultTotal();
	artFilterFilter ();
	
	landFilterFilterFirst ();
	
//=====part 1====== load when not on filter page then start setup for filter view ==============	

if (location.href.indexOf("Filter") == -1) {	
	
		
		jQuery('.bundesland ul').addClass('bundesland2');
		
		jQuery(".land ul li").first().after(jQuery('.bundesland ul'));
		
			
			filterCrit = [];
			
			jQuery('.filter-land').each(function(){
					
					if(jQuery(this).parent().hasClass("filter-values")){
						filterCrit.push(jQuery(this).text());
					}
				});
				
				//filter the region filter
				jQuery(".land .option .real_value").each(function (){
					
					filterPos = jQuery(this).text();
					
					if(jQuery.inArray(filterPos , filterCrit) == -1) {
						jQuery(this).parent().addClass("checkboxDisabled").removeClass("visible");
						
					} else {
						jQuery(this).parent().addClass("visible").removeClass("checkboxDisabled");
						 
					}
				
				});
				
				
				filterCrit = [];
				
				jQuery('.filter-interesse').each(function(){
						
						if(jQuery(this).parent().hasClass("filter-values")){
							filterCrit.push(jQuery(this).text());
						}
					});
					
					//filter the interesse filter
					jQuery(".interesse .option .real_value").each(function (){
						
						filterPos = jQuery(this).text();

						if(jQuery.inArray(filterPos , filterCrit) == -1) {
							jQuery(this).parent().addClass("checkboxDisabled").removeClass("visible");
							
						} else {
							jQuery(this).parent().addClass("visible").removeClass("checkboxDisabled");
							
						}
					
					});
					
					
					jQuery('.filter-category').each(function(){
						
						if(jQuery(this).parent().hasClass("filter-values")){
							filterCrit.push(jQuery(this).text());
						}
					});
					
					//filter the interesse filter
					jQuery(".unternehmenskategorie .option .real_value").each(function (){
						
						filterPos = jQuery(this).text();

						if(jQuery.inArray(filterPos , filterCrit) == -1) {
							jQuery(this).parent().addClass("checkboxDisabled").removeClass("visible");
							
						} else {
							jQuery(this).parent().addClass("visible").removeClass("checkboxDisabled");
							
						}
					
					});	
	
	}

//======================= end of part 1 ===============================================================
	
	
	//append bundesland to land under österreich and zusatzkategorien, also add styling classes
	
	jQuery('.bundesland ul').addClass('bundesland2');
	
	jQuery(".land ul li").first().after(jQuery('.bundesland ul'));
	
	
	
	//===========  reset filter function and listener ===========================================
	
	jQuery(".reset-filter").live("click" , function (){
		
		var activeFiltersRegion = [];
		var activeFiltersArt = [];
		var activeFiltersInteresse = [];
		
		jQuery(".option").removeClass("active");
		
		jQuery("#region-remover li").remove();
		jQuery("#art-remover li").remove();
		jQuery("#interesse-remover li").remove();
		jQuery('#region-remover').css('visibility','hidden'); 
		jQuery('#art-remover').css('visibility','hidden'); 
		jQuery('#interesse-remover').css('visibility','hidden'); 
		
		mainFilterGenerator(activeFiltersInteresse,activeFiltersArt,activeFiltersRegion,filterType,inOrOut);
		
		
		
		 
	})
	
	//================================== CLICK TRIGGER =================================================================
	
	jQuery('.option.visible').live("click", function () {
		
		
		if (jQuery(this).hasClass("active") == false) {
			
			
			
			currentCall = jQuery(this).find(".real_value").text();
		
		
		//== Austria check and remove bundeslaender
			
			if (currentCall == "Österreich") {
				jQuery(".bundesland2 .option").removeClass("active");
				jQuery("#region-remover .visible .real_value").each(function () {
					
					tempRemover = jQuery(this).text();
					
					if(tempRemover == "Burgenland" || tempRemover == "Kärnten" || tempRemover == "Niederösterreich" || tempRemover == "Oberösterreich" || tempRemover == "Salzburg" || tempRemover == "Steiermark" || tempRemover == "Tirol" || tempRemover == "Vorarlberg" || tempRemover == "Wien") {
						
						jQuery(this).parent().remove();
						
					}
					
				})
			}
		}
		
		//== Bundesland check and remove austria selection
		
		if (jQuery(this).parent().hasClass("bundesland2")) {
			
			jQuery(".land .option:contains(Österreich)").removeClass("active");
			jQuery("#region-remover .visible .real_value:contains(Österreich)").parent().remove();
			
		}
		
		
		//== category check for right filter type
		
		
		if(jQuery(this).hasClass("active") == false){
			filterType = jQuery(this).parent().parent().attr("class");
			if (filterType =="options"){
				
				filterType = "land";
				
			}
			inOrOut = "1"; 
			
		} else if (jQuery(this).hasClass("active")) {
			
			filterType = jQuery(this).parent().parent().attr("class");
			if (filterType =="options"){
				
				filterType = "land";
				
			}
			inOrOut = "0";
			
		}
		
		jQuery(this).toggleClass('active');	
		
		//========= cookie verwaltung und weiterleitungs abfragen =====================================
		
		if (location.href.indexOf("Filter") == -1) {
		
		
			var href;
			
			if (jQuery(this).parent().hasClass("bundesland2")) {
				href = "bundesland="+jQuery(this).find(".real_value").text();
			} else if (jQuery(this).parent().parent().hasClass("land")) {
				
				href = "land="+jQuery(this).find(".real_value").text();
				
			} else if (jQuery(this).parent().parent().hasClass("unternehmenskategorie")) {
				
				href = "art="+jQuery(this).find(".real_value").text();
				
			} else if (jQuery(this).parent().parent().hasClass("interesse")) {
				
				href = "interesse="+jQuery(this).find(".real_value").text();
				
			}
			
			document.cookie = 'filterCookie='+href+'; expires=Thu, 2 Aug 2162 20:47:11 UTC; path=/'
			
			location.href = url;
			
			
			
		} 
			
			
		
		
		
		//===============================================
		
		var activeFiltersRegion = [];
		var activeFiltersArt = [];
		var activeFiltersInteresse = [];
		
		jQuery(".land .active").each(function(){
			
			tempFilter = jQuery(this).find(".real_value").text();
			
			activeFiltersRegion.push(tempFilter);
			
			
			
		});
	
		
		jQuery(".unternehmenskategorie .active").each(function(){
			
			tempFilter = jQuery(this).find(".real_value").text();
			
			activeFiltersArt.push(tempFilter);
			
		});

		jQuery(".interesse .active").each(function(){
			
			tempFilter = jQuery(this).find(".real_value").text();
			
			activeFiltersInteresse.push(tempFilter);
			
		});
		
		//remover code 
		remover = jQuery(this);
		
		if(jQuery(this).parent().parent().hasClass("land") || jQuery(this).parent().hasClass("bundesland2")){
			
			if(jQuery(this).hasClass("active")) {
				jQuery(remover).clone().appendTo('#region-remover').addClass('remover').removeClass('option');
				jQuery('#region-remover').css('visibility','visible');  // show region-remover box
			} else {	
				tempRemover = jQuery(this).find(".real_value").text();
				jQuery("#region-remover").find('.real_value:contains('+tempRemover+')').parent().remove();
				//check if region-remover is empty
				if(jQuery('#region-remover li').size() == 0){
					jQuery('#region-remover').css('visibility','hidden'); 
				}
				
			};
		};
		
		 if (jQuery(this).parent().parent().hasClass("unternehmenskategorie")) {
			
			 if(jQuery(this).hasClass("active")) {
				 jQuery(remover).clone().appendTo('#art-remover').addClass('remover').removeClass('option');
				 jQuery('#art-remover').css('visibility','visible');  // show art-remover box
				} else {	
					tempRemover = jQuery(this).find(".real_value").text();
					jQuery("#art-remover .visible .real_value").each(function () {
						
						if (jQuery(this).text() == tempRemover) {
							//console.log(jQuery(this).text());
							jQuery(this).parent().remove();
							
						}
						
						
					});
					
					//check if region-remover is empty
					if(jQuery('#art-remover li').size() == 0){
						jQuery('#art-remover').css('visibility','hidden'); 
					}
					
				};

		 };	
			
		 if (jQuery(this).parent().parent().hasClass("interesse")) {
			
			 if(jQuery(this).hasClass("active")) {
				 jQuery(remover).clone().appendTo('#interesse-remover').addClass('remover').removeClass('option');
				 jQuery('#interesse-remover').css('visibility','visible'); // show interesse-remover box
				} else {	
					tempRemover = jQuery(this).find(".real_value").text();
						jQuery("#interesse-remover .visible .real_value").each(function () {
						
						if (jQuery(this).text() == tempRemover) {
							//console.log(jQuery(this).text());
							jQuery(this).parent().remove();
							
						}
						
						
					});
				
					//check if region-remover is empty
					if(jQuery('#interesse-remover li').size() == 0){
						jQuery('#interesse-remover').css('visibility','hidden'); 
					}
					
				};
			
		};

		//call the main filter function
		mainFilterGenerator(activeFiltersInteresse,activeFiltersArt,activeFiltersRegion,filterType,inOrOut);
		//filterKiller(activeFiltersInteresse,activeFiltersArt,activeFiltersRegion,filterType,inOrOut);

	});
	
	
	//remove filter listeners
	
	jQuery("#region-remover .remover").live("click", function () {
		
		removerButton = jQuery(this).find(".real_value").text();
		jQuery(".land").find('.real_value:contains('+removerButton+')').click();
		
		//check if region-remover is empty
		if(jQuery('#region-remover li').size() == 0){
			jQuery('#region-remover').css('visibility','hidden'); 
		}
		
	})
	
	jQuery("#art-remover .remover").live("click", function () {
		
		removerButton = jQuery(this).find(".real_value").text();
		jQuery(".unternehmenskategorie .real_value").each(function(){
			if(jQuery(this).text() == removerButton) {
				jQuery(this).click();	
			}
		});
		
		
		//check if art-remover is empty
		if(jQuery('#art-remover li').size() == 0){
			jQuery('#art-remover').css('visibility','hidden');
		}
		
	})
	
	jQuery("#interesse-remover .remover").live("click", function () {
		
		removerButton = jQuery(this).find(".real_value").text();
			jQuery(".interesse .real_value").each(function(){
				if(jQuery(this).text() == removerButton) {
					jQuery(this).click();	
				}
			});
		
		//check if interesse-remover is empty
		if(jQuery('#interesse-remover li').size() == 0){
			jQuery('#interesse-remover').css('visibility','hidden');
		}
	})
	
	
	//check if user is on filter page
	
	if (location.href.indexOf("Filter") != -1) {
		
	
		//set cookie for later use when not in filter view modus ===========================================
		if (document.cookie.indexOf('filterCookie=') != -1){
			
			tempCounter = document.cookie;
			tempAmount = tempCounter.match(/filter/g);
			currentCount = 0;
			
			while(currentCount <= tempAmount.length) {
				eraseCookie("filter"+currentCount);
				currentCount++;
				
				
			}
			
						
		var bereich = readCookie('filterCookie');
		
		

		if (bereich) {
			
		if (bereich.indexOf("land") != -1) {
			bereich = bereich.split("land=");
			bereich = bereich[1];
			jQuery(".land .real_value").each(function () {
				if(jQuery(this).text() == bereich) {
					jQuery(this).parent().click()
				}
			
			});	
						
		} else if (bereich.indexOf("bundesland") != -1) {
			
			bereich = bereich.split("bundesland=");
			bereich = bereich[1];
			
			
			jQuery(".bundesland2 .real_value").each(function () {
				if(jQuery(this).text() == bereich) {
					jQuery(this).parent().click()
				}
			
			});	
			
		
		}else if (bereich.indexOf("art") != -1) {
			
			bereich = bereich.split("art=");
			bereich = bereich[1];
			
			jQuery(".unternehmenskategorie .real_value").each(function () {
				if(jQuery(this).text() == bereich) {
					jQuery(this).parent().click()
				}
			
			});	
		
		}else if (bereich.indexOf("interesse") != -1) {
			bereich = bereich.split("interesse=");
			bereich = bereich[1];
			jQuery(".interesse .real_value").each(function () {
				if(jQuery(this).text() == bereich) {
					jQuery(this).parent().click()
				}
			
			});	
			
		}
		
		}
		
		eraseCookie('filterCookie');
		
		
	
	}
	
	};
	
	
jQuery(".singleslice").each(function () {
	
		if (!(jQuery(this).find(".filtertext-bottom").children().hasClass("number_of_beds"))) {
			
			jQuery("<p class='number_of_beds' style='display:none'><span>0</span></p>").prependTo(jQuery(this).find(".filtertext-bottom"));
			
		} 
		
		if (!(jQuery(this).find(".filtertext-bottom").children().hasClass("restaurant_gourmet"))){
			
			jQuery("<p class='restaurant_gourmet' style='display:none'><span>0</span></p>").prependTo(jQuery(this).find(".filtertext-bottom"));
			
		}
		
		if (!(jQuery(this).find(".filtertext-bottom").children().hasClass("entrance_price"))){
			
			jQuery("<p class='entrance_price' style='display:none'><span class='entrance'>0</span></p>").prependTo(jQuery(this).find(".filtertext-bottom"));
			
		}

		if (!(jQuery(this).find(".filtertext-bottom").children().hasClass("room_price"))){
			
			jQuery("<p class='room_price' style='display:none'><span class='rooms'>0</span></p>").prependTo(jQuery(this).find(".filtertext-bottom"));
			
		}
		
		if (!(jQuery(this).children().hasClass("stars"))){
			
			jQuery("<div class='stars' style='display:none'><div class='wussten_sie_img'><div class='sterne-text'>3</div><br></div></div>").prependTo(jQuery(this));
			
		}
	
})	
	
	
//================================== SORTING ===============================================	
var sorter = jQuery('.sort-box'),
    inverse = true,
    selectedSorter,
    sorterClicked;
 
 sorter.click(function(){
	 
	 if (sorterClicked == jQuery(this).attr("id")) {
		 
		 inverse = !inverse;
		 
	 } else {
		 inverse = true;
		 
	 }
	 
	 sorterClicked = jQuery(this).attr("id");
	 //console.log(sorterClicked);
	 jQuery(".sort-box").removeClass("sort-box-active");
	 jQuery(this).addClass("sort-box-active");
	 
	 switch(sorterClicked) {
	 case "sterne":
		 	selectedSorter = ".sterne-text";
		    break;
	 case "betten":
		 	selectedSorter = ".number_of_beds";
		    break;
	 case "hauben":
		 	selectedSorter = ".restaurant_gourmet";
		    break;
	 case "therme":
		 	selectedSorter = ".entrance_price .entrance";
		    break;
	 case "zimmer":
		 	selectedSorter = ".room_price .rooms";
		    break;
	 
	 }

     var header = jQuery('.singleslice'),
         index = header.index();
         
     header
         
         .find(selectedSorter)
         .filter(function(){
             return jQuery('.singleslice').index() === index;
         })
         .sortElements(function(a, b){
             
             a = jQuery(a).text();
             b = jQuery(b).text();
             
             return (
                 isNaN(a) || isNaN(b) ?
                     a > b : +a > +b
                 ) ?
                     inverse ? -1 : 1 :
                     inverse ? 1 : -1;
                 
         }, function(){
        	
             return this.parentNode.parentNode.parentNode;
         });
     
    // inverse = !inverse;
     
 });
 
 if (location.href.indexOf("Filter") != -1) {
 
	 cookieReader ();
 
 }
 
	
	//filter on document ready code ENDS here	======================================================
	
}); // document ready closing braquets



// filter functions start here ========================================================================


function mainFilterGenerator(activeFiltersInteresse,activeFiltersArt,activeFiltersRegion,filterType,inOrOut) {
	
	//console.log(activeFiltersInteresse+" "+activeFiltersArt+" "+activeFiltersRegion+" "+filterType+" "+inOrOut);
	
	jQuery('.filter-land').each(function () {
		tempCriteria = jQuery(this).text();
		
		if (jQuery.inArray(tempCriteria, activeFiltersRegion) != -1) {
			
			jQuery(this).addClass("landFilter");
			
			//jQuery(this).parents(".singleslice").fadeIn().addClass("shown").removeClass("hidden");

		} else {
			
			jQuery(this).removeClass("landFilter");
			
		};
	});	
	
	
	
	jQuery('.filter-category').each(function () {
		tempCriteria = jQuery(this).text();
		
		if (jQuery.inArray(tempCriteria, activeFiltersArt) != -1) {
			
			jQuery(this).addClass("artFilter");
			
			//jQuery(this).parents(".singleslice").fadeIn().addClass("shown").removeClass("hidden");

		} else {
			
			jQuery(this).removeClass("artFilter");
			
		};
	});	
	
	
	
	//console.log(activeFiltersInteresse);
	jQuery('.filter-interesse').each(function () {
		
		tempCriteria = jQuery(this).text();
		
		if (jQuery.inArray(tempCriteria, activeFiltersInteresse) != -1) {
			
			jQuery(this).addClass("intFilter");
			
			//jQuery(this).parents(".singleslice").fadeIn().addClass("shown").removeClass("hidden");

		} else {
			
			jQuery(this).removeClass("intFilter");
			
		};
	});	
	
	
	
	
	jQuery(".filter-criteria").parents(".singleslice").hide().removeClass("one").removeClass("two").removeClass("three").removeClass("shown");
	
	if (activeFiltersInteresse.length == 0 && activeFiltersArt.length == 0 && activeFiltersRegion.length == 0) {
		
		jQuery('.singleslice').fadeIn().show().addClass("shown");
		landFilterFilter ();
		artFilterFilter ();
		interessefilterFilter()
		
	};	
	
	
	
	if (jQuery(".filter-criteria").hasClass("landFilter")  ) {
		
		jQuery(".landFilter").each(function () {
			
			jQuery(this).parents(".singleslice").show().addClass("one").addClass("shown");
			
		})
		
	} 
	
	if (jQuery(".filter-criteria").hasClass("artFilter")) {
		
		jQuery(".artFilter").each(function () {
			
			jQuery(this).parents(".singleslice").show().addClass("two").addClass("shown");
			
		})
		
	}
	
	if (jQuery(".filter-criteria").hasClass("intFilter")) {
		
		jQuery(".intFilter").each(function () {
			
			jQuery(this).parents(".singleslice").show().addClass("three").addClass("shown");
			
		})
		
	}
	
	//===================================== 
	
	if (jQuery(".singleslice:visible").hasClass("one") && jQuery(".singleslice:visible").hasClass("two")) {
		
		
		jQuery(".singleslice:visible").each (function () {
			jQuery(this).hide().removeClass("shown");
			
			if (jQuery(this).hasClass("one") && jQuery(this).hasClass("two")) {
				
				jQuery(this).show().addClass("shown");
			}

		});
		
	}
	
if (jQuery(".singleslice:visible").hasClass("one") && jQuery(".singleslice:visible").hasClass("three")) {
		
		
		jQuery(".singleslice:visible").each (function () {
			jQuery(this).hide().removeClass("shown");
			
			if (jQuery(this).hasClass("one") && jQuery(this).hasClass("three")) {
				
				jQuery(this).show().addClass("shown");
			}

		});
		
	}

if (jQuery(".singleslice:visible").hasClass("two") && jQuery(".singleslice:visible").hasClass("three")) {
	
	
	jQuery(".singleslice:visible").each (function () {
		jQuery(this).hide().removeClass("shown");
		
		if (jQuery(this).hasClass("two") && jQuery(this).hasClass("three")) {
			
			jQuery(this).show().addClass("shown");
		}

	});
	
}


if (jQuery(".singleslice:visible").hasClass("one") && jQuery(".singleslice:visible").hasClass("two") && jQuery(".singleslice:visible").hasClass("three")) {
	
	
	jQuery(".singleslice:visible").each (function () {
		jQuery(this).hide().removeClass("shown");
		
		if (jQuery(this).hasClass("one") && jQuery(this).hasClass("two") && jQuery(this).hasClass("three")) {
			
			jQuery(this).show().addClass("shown");
		}

	});
	
}

if (filterType == "land") {
	
	if (inOrOut == "1") {
		artFilterFilter ();
		interessefilterFilter();
		landFilterFilterFirst ();
	} else {
		landFilterFilter ();
		interessefilterFilter();
		artFilterFilter ();
		
	}
	
	
} else if (filterType == "unternehmenskategorie") {
	
	if (inOrOut == "1") {
		landFilterFilter ();
		interessefilterFilter();
	} else {
		landFilterFilter ();
		interessefilterFilter();
		artFilterFilter ();
		
	}
	
} else if (filterType == "interesse") {
	
	if (inOrOut == "1") {
		landFilterFilter ();
		artFilterFilter ();
	} else {
		landFilterFilter ();
		interessefilterFilter();
		artFilterFilter ();
		
	}
}

if(cookieControl == 1) {
	cookieSaver ();
}	
resultTotal ();


	
	
} // mainFilterGenerator ends here ===========================================


// Main Filter Function ===================================================================================

function filterKiller(activeFiltersInteresse,activeFiltersArt,activeFiltersRegion,filterType,inOrOut) {
	
	//console.log(activeFiltersInteresse,activeFiltersArt,activeFiltersRegion)
		
	//first hide all results
	//jQuery('.singleslice').hide().addClass("hidden").removeClass("shown");
	
	
	//check if nothing is selected and show all results
	if (activeFiltersInteresse.length == 0 && activeFiltersArt.length == 0 && activeFiltersRegion.length == 0) {
		
		jQuery('.singleslice').fadeIn().show().addClass("shown").removeClass("hidden");
		landFilterFilter ();
		artFilterFilter ();
		interessefilterFilter();
		landFilterFilterFirst ();
		
	};	

	
	if (filterType == "unternehmenskategorie") { //=========================================================
	//interesse filter system
	
		if (activeFiltersInteresse.length > 0) {
			
			
			jQuery('.filter-interesse').each(function () {
					tempCriteria = jQuery(this).text();
					
					if (jQuery.inArray(tempCriteria, activeFiltersInteresse) != -1) {
						jQuery(this).parents(".singleslice").fadeIn().addClass("shown").removeClass("hidden");
			
					};
			});	
			
		
		landFilterFilter ();
		artFilterFilter ();
		interessefilterFilter();
		landFilterFilterFirst ();
	
	};
	
	//region filter system ==========================================================
	
	if (activeFiltersRegion.length > 0) {
		//console.log(activeFiltersRegion);
		
		jQuery('.filter-land').each(function () {
				tempCriteria = jQuery(this).text();
				
				if (jQuery.inArray(tempCriteria, activeFiltersRegion) != -1) {
					jQuery(this).parents(".singleslice").fadeIn().addClass("shown").removeClass("hidden");
		
				};
		});	
		
	
	interessefilterFilter();
	artFilterFilter ();
	landFilterFilterFirst ();

};	

	//art filter system =========================================================

	if (activeFiltersArt.length > 0) {
		//console.log(activeFiltersArt);

		if(activeFiltersRegion.length > 0 || activeFiltersInteresse.length > 0) {
			jQuery(".singleslice").each(function(){
				if (jQuery(this).is(":visible")) {
					jQuery(this).hide().addClass("hidden").removeClass("shown");
					jQuery(this).find('.filter-category').each(function () {
						tempCriteria = jQuery(this).text();
						if (jQuery.inArray(tempCriteria, activeFiltersArt) != -1) {
							jQuery(this).parents(".singleslice").show().addClass("shown").removeClass("hidden");
						};
					});
				}
			});
			resultTotal ();
		
		} else {
		jQuery('.filter-category').each(function () {
				tempCriteria = jQuery(this).text();
				
				
				if (jQuery.inArray(tempCriteria, activeFiltersArt) != -1) {

					jQuery(this).parents(".singleslice").fadeIn().addClass("shown").removeClass("hidden");
			
				};
				
		});	
		
		}
		
		landFilterFilter ();
		interessefilterFilter();
		
	}
	
	} 
	
if (filterType == "land") { //========================================================================


	
	
	
//region filter system ==========================================================
	//console.log(inOrOut);

	if (activeFiltersArt.length > 0) {
			
		jQuery(".singleslice").each(function(){
			
			if (jQuery(this).hasClass("shown")) {
				jQuery(this).hide().addClass("hidden").removeClass("shown");
				jQuery(this).find('.filter-category').each(function () {
					tempCriteria = jQuery(this).text();
					
					if (jQuery.inArray(tempCriteria, activeFiltersArt) != -1) {
						jQuery(this).parents(".singleslice").show().addClass("shown").removeClass("hidden");
					};
				});
			}
		});


	};

//interesse filter system =========================================================

	if (activeFiltersInteresse.length > 0) {
	
			jQuery(".singleslice").each(function(){
			
				if (jQuery(this).hasClass("shown")) {
					jQuery(this).hide().addClass("hidden").removeClass("shown");
					jQuery(this).find('.filter-interesse').each(function () {
						tempCriteria = jQuery(this).text();
						
						if (jQuery.inArray(tempCriteria, activeFiltersInteresse) != -1) {
							jQuery(this).parents(".singleslice").show().addClass("shown").removeClass("hidden");
						};
					});
				}
			});
	
	}

//region filter system =========================================================

	if (activeFiltersRegion.length > 0) {
		
		//console.log(activeFiltersRegion);
		
		jQuery(".singleslice").each(function(){
		
		if (jQuery(this).is(":visible")) {
			jQuery(this).hide().addClass("hidden").removeClass("shown");
	
			jQuery(this).find('.filter-land').each(function () {
				tempCriteria = jQuery(this).text();
				//console.log(activeFiltersRegion);
				if (tempCriteria == activeFiltersRegion) {
					
					jQuery(this).parents(".singleslice").show().addClass("shown").removeClass("hidden");
				};
			});
			
			
		}
	});



};
	
	artFilterFilter ();
	interessefilterFilter();
		
		
}
	
if (filterType == "interesse"){ //=======================================================================
		
		
		if (activeFiltersRegion.length > 0) {
				jQuery(".singleslice").each(function(){
				
				if (jQuery(this).hasClass("shown")) {
					jQuery(this).hide().addClass("hidden").removeClass("shown");
					jQuery(this).find('.filter-land').each(function () {
						tempCriteria = jQuery(this).text();
						if (jQuery.inArray(tempCriteria, activeFiltersRegion) != -1) {
							jQuery(this).parents(".singleslice").show().addClass("shown").removeClass("hidden");
						};
					});
				}
			});
			
		
	
		};
	
	//region filter system ==========================================================
		
		if (activeFiltersArt.length > 0) {
			
			
			jQuery(".singleslice").each(function(){
				
				if (jQuery(this).hasClass("shown")) {
					jQuery(this).hide().addClass("hidden").removeClass("shown");
					jQuery(this).find('.filter-category').each(function () {
						tempCriteria = jQuery(this).text();
						
						if (jQuery.inArray(tempCriteria, activeFiltersArt) != -1) {
							jQuery(this).parents(".singleslice").show().addClass("shown").removeClass("hidden");
						};
					});
				}
			});
		
		
	
	};	
	
	//region filter system =========================================================
	
	if (activeFiltersInteresse.length > 0) {


			jQuery(".singleslice").each(function(){
			
				if (jQuery(this).hasClass("shown")) {
					jQuery(this).hide().addClass("hidden").removeClass("shown");
					jQuery(this).find('.filter-interesse').each(function () {
						tempCriteria = jQuery(this).text();
						if (jQuery.inArray(tempCriteria, activeFiltersInteresse) != -1) {
							jQuery(this).parents(".singleslice").show().addClass("shown").removeClass("hidden");
						};
					});
				}
			});
		
		
		
		
	}
	artFilterFilter ();
	landFilterFilter ();
		
	}
	
	resultTotal ();
	
};
	
//===============================================================================================================
var filterCrit = Array();

//===================== interesse filter functions with arrays for each option


function interessefilterFilter() {
	
	//filter the interesse filter
	
	filterCrit = [];
	
	jQuery('.filter-interesse').each(function(){
			
			if(jQuery(this).parent().parent().hasClass("shown")){
				filterCrit.push(jQuery(this).text());
			}
		});
		
		//filter the interesse filter
		jQuery(".interesse .option .real_value").each(function (){
			
			filterPos = jQuery(this).text();

			if(jQuery.inArray(filterPos , filterCrit) == -1) {
				jQuery(this).parent().addClass("checkboxDisabled").removeClass("visible");
				
			} else {
				jQuery(this).parent().addClass("visible").removeClass("checkboxDisabled");
				
			}
		
		});

	};
	


//====== filter the land filter ==============================================
	
function landFilterFilterFirst () {
	
	
	
	filterCrit = [];
	
	jQuery('.filter-land').each(function(){
			
			if(jQuery(this).parent().parent().hasClass("singleslice")){
				filterCrit.push(jQuery(this).text());
			}
		});


		jQuery(".land .option .real_value").each(function (){
			
			filterPos = jQuery(this).text();
			
			if(jQuery.inArray(filterPos , filterCrit) == -1) {
				jQuery(this).parent().addClass("checkboxDisabled").removeClass("visible");
				
			} else {
				jQuery(this).parent().addClass("visible").removeClass("checkboxDisabled");
				
			}
		
		});
	
	
	
}	
	
function landFilterFilter () {
	
	
	filterCrit = [];
	
jQuery('.filter-land').each(function(){
		
		if(jQuery(this).parent().parent().hasClass("shown")){
			filterCrit.push(jQuery(this).text());
		}
	});


	jQuery(".land .option .real_value").each(function (){
		
		filterPos = jQuery(this).text();
		
		if(jQuery.inArray(filterPos , filterCrit) == -1) {
			jQuery(this).parent().addClass("checkboxDisabled").removeClass("visible");
			
		} else {
			jQuery(this).parent().addClass("visible").removeClass("checkboxDisabled");
			
		}
	
	});
	
	

}

//======================= filter the art filter ======================================

function artFilterFilter () {
	
	
	filterCrit = [];
	
jQuery('.filter-category').each(function(){
		
		if(jQuery(this).parent().parent().hasClass("shown")){
			filterCrit.push(jQuery(this).text());
		}
	});

	jQuery(".unternehmenskategorie .option .real_value").each(function (){
		
		filterPos = jQuery(this).text();
		
		if(jQuery.inArray(filterPos , filterCrit) == -1) {
			//console.log(filterPos+" out");
			jQuery(this).parent().addClass("checkboxDisabled").removeClass("visible");
			
		} else {
			//console.log(filterPos+" in");
			jQuery(this).parent().addClass("visible").removeClass("checkboxDisabled");
			
		}
	
	});

}

//=== total results counter function ====================

function resultTotal () {
	
	filterAmount = jQuery(".singleslice:visible").size();
	jQuery('.total-results').text('Ihre Ergebnisse: '+filterAmount);
	
	
	if(jQuery("#premium").height() == 0){
		jQuery("#premium").hide();
	} else {
		jQuery("#premium").show();
	}
	
}

//========================= cookie functions ===========================

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

//multiple cookie saver 

function cookieSaver () {
	
	//console.log("in");
	if (document.cookie.indexOf('filter') != -1){
		tempCounter = document.cookie;
		tempAmount = tempCounter.match(/filter/g);
		currentCount = 0;
		
		while(currentCount <= tempAmount.length) {
			eraseCookie("filter"+currentCount);
			currentCount++;
			
			
		}
	
	}
	tempIndex = 0;
	
	jQuery(".remover").each(function () {
		
		tempFilterSelected = jQuery(this).find(".real_value").text();
		
		createCookie('filter'+tempIndex,tempFilterSelected,10);
		
		//console.log(document.cookie);
		
		tempIndex++;
		
	
	});
	
	//console.log(document.cookie);
	
	
};

function cookieReader () {
	
	if (document.cookie.indexOf('filter') != -1){
		tempCounter = document.cookie;
		tempAmount = tempCounter.match(/filter/g);
		//console.log(tempAmount.length);
		currentCount = 0;
		
		while(currentCount <= tempAmount.length) {
			
			filterClick = readCookie("filter"+currentCount);
			
			jQuery(".option").each(function(){
				
				tempOption = jQuery(this).find(".real_value").text();
				
				if(tempOption == filterClick) {
					jQuery(this).click();
				}
				
				
				
			});
			
			currentCount++;
			//console.log(filterClick);
			
		}
		
		
		
	
	
	}	
	
	cookieControl = 1;
}


//sorting function ================================================
jQuery.fn.sortElements = (function(){
	 
    var sort = [].sort;
 
    return function(comparator, getSortable) {
 
        getSortable = getSortable || function(){return this;};
 
        var placements = this.map(function(){
 
            var sortElement = getSortable.call(this),
                parentNode = sortElement.parentNode,
 
                // Since the element itself will change position, we have
                // to have some way of storing its original position in
                // the DOM. The easiest way is to have a 'flag' node:
                nextSibling = parentNode.insertBefore(
                    document.createTextNode(''),
                    sortElement.nextSibling
                );
 
            return function() {
 
                if (parentNode === this) {
                    throw new Error(
                        "You can't sort elements if any one is a descendant of another."
                    );
                }
 
                // Insert before flag:
                parentNode.insertBefore(this, nextSibling);
                // Remove flag:
                parentNode.removeChild(nextSibling);
 
            };
 
        });
 
        return sort.call(this, comparator).each(function(i){
            placements[i].call(getSortable.call(this));
        });
 
    };
 
})();


