var productFilter = new Object();
var merk = $.getURLParam("merk");

function isArray(obj) {
    return obj.constructor == Array;
}

productFilter.url = $.query;

productFilter.requestdata = new Object();

productFilter.trackfilter = "";

productFilter.selected = new Array;

productFilter.i = 0;

productFilter.checkMerken = function() {
	$("ul > li > input").each(function () {
		var categorie = $(this)[0].name.split("[");
		if (categorie[1] != undefined) var id = categorie[1].replace("]", "");
		if (categorie[0] == "merk") {
			if (productFilter.selected[$(this)[0].name] != undefined) {
				$(this)[0].checked = true;
			}
		}
	});		
}

productFilter.hideItems = function() {
	$(this).find("ul > li > input").each(function() {
		if (!$(this).attr("checked")) {
			$(this).parent().removeClass("visible");
			$(this).parent().addClass("invisible");						
		}
	});	
}

productFilter.clickShowItems = function() {
	$("#productFilter").find("ul > li > input").each(function() {
		if (!$(this).attr("checked")) {
			$(this).parent().removeClass("visible");
			$(this).parent().addClass("invisible");						
		}
	});	
	$(this).find("ul > li").removeClass("invisible");
	$(this).find("ul > li").addClass("visible");
}
	
productFilter.showItems = function() {
	$(this).find("ul > li").removeClass("invisible");
	$(this).find("ul > li").addClass("visible");
}

productFilter.setUrl = function() {
	window.location.hash = productFilter.url;
	var hash = window.location.hash;
	hash = hash.replace(/^.*#/, '');
	$.history.load(hash);
}

productFilter.clickItem = function() {
	if ($(this)[0].checked == false) {
		productFilter.url.REMOVE($(this)[0].name);
	} else {
		productFilter.url.SET($(this)[0].name, $(this)[0].value);
	}
	productFilter.setUrl();
//	var hash = window.location.hash;
//	hash = hash.replace(/^.*#/, '');
//	productFilter.selectedItems();
//	productFilter.history(window.location.hash);
//	productFilter.request();
//	$(this).unbind('click');
}

productFilter.selectedItems = function() {
	productFilter.selected = new Array();
	for (var parent in productFilter.url.keys) {
		for (var child in productFilter.url.keys[parent]) {
			for (var baby in productFilter.url.keys[parent][child]) {
				productFilter.selected[parent + "[" + child + "][" + baby + "]"] = productFilter.url.keys[parent][child][baby];
			}
		}
	}
}

productFilter.history = function(hash) {
	productFilter.selected = new Array;
	productFilter.requestdata = new Object();
	var items = hash.replace("#","").split("&");
	for (var keuzeitem in items) {
		var keuzevar = items[keuzeitem].split("=");
		//productFilter.selected[keuzevar[0]] = keuzevar[1];
		productFilter.requestdata[keuzevar[0]] = keuzevar[1];
	}
	//this.checkItems();
	//this.checkMerken();
}

productFilter.clickLink = function(link) 
{
	var vars = link.split("&");
	productFilter.requestdata = new Object();
	
	for (var keuzeitem in vars) {
		var keuzevar = vars[keuzeitem].split("=");
		//productFilter.selected[keuzevar[0]] = keuzevar[1];
		productFilter.requestdata[keuzevar[0]] = keuzevar[1];
	}
	
	
	//productFilter.requestdata[vars[0]] = vars[1];
	this.i = 1;
	//window.location.hash = vars[0] + "=" + vars[1];
	window.location.hash = link;
	productFilter.request();
}
	
$(function() 
{
	/*$(".single-item > a, .item > a").click(function()
	{
                scroll(0,0);
		var parent = $(this).parent().parent().parent().parent();
		var titlepart = "";
                var title = "";
                if (parent[0].id == undefined || (parent[0].id != undefined && parent[0].id != "productFilter")) {
			titlepart = $(this).parent().parent().parent().parent().children("div").children("a");
			titlepart = titlepart.html();
		}
		productFilter.clickLink($(this)[0].className);
                title = document.title;
                var titleparts = title.split(" - ");

		if (originaltitle == "") {
                    if (titleparts.length == 2) {
                        originaltitle = document.title;
                    } else {
                        originaltitle = titleparts[titleparts.length - 2] + " - " + titleparts[titleparts.length - 1];
                    }
		}

		if (titlepart != "") {
			document.title = $(this).text() + " - " + titlepart + " - " + originaltitle;
		} else {
			document.title = $(this).text() + " - " + originaltitle;
		}
	});

        $("ul.brands > li > a").click(function()
        {
            scroll(0,0);
            var link = $(this)[0].href;
            link = link.replace("%5B", "[");
            link = link.replace("%5D", "]");
            link = link.split("#");
            productFilter.clickLink(link[1]);
        });*/
});

productFilter.checkItems = function() {
//	var request = new Object();
//	var selected = new Array();
//	$.query = {hash: true, suffix: false};
//	productFilter.url = $.query;
//	productFilter.selected = "";
//	productFilter.selected = new Array;
	
//	for (var parent in productFilter.url.keys) {
//		for (var child in productFilter.url.keys[parent]) {
//			for (var baby in productFilter.url.keys[parent][child]) {
//				productFilter.selected[parent + "[" + child + "][" + baby + "]"] = productFilter.url.keys[parent][child][baby];
//			}
//		}
//	}

	productFilter.requestdata = new Object();
	
	$("#productFilter input[type='checkbox']").each(function() {
		var name = $(this)[0].name;
		var value = $(this)[0].value;
		
		if (productFilter.selected[$(this)[0].name] != undefined) {
			$(this)[0].checked = true;
		} else {
			$(this)[0].checked = false;
		}
		if ($(this)[0].checked == true) {
			productFilter.requestdata[name] = value;
			productFilter.url.SET(name, value);
			productFilter.i++;
		} else {
			productFilter.url.REMOVE(name);
		}
	});
	
//	$("#productFilter > ul > li").each(productFilter.showItems);
//	$("#productFilter > ul > li").each(productFilter.hideItems);
}

productFilter.request = function() {
	if (this.i > 0) {
//		$.history.load(window.location.hash.replace("#", ""));
		$("#producten").html("");
		$("#productHeader h1").html("Bezig met zoeken...");
//		pageTracker._trackEvent("Product Filter", "Get Products", productFilter.trackfilter);
		$.ajax({
			type: "POST",
			data: productFilter.requestdata,
			url: "/ecommerce/artikelen",
			success: function(msg){
				productFilter.trackfilter = "";
				if (msg != 'Geen producten gevonden!') {
					$("#producten").html(msg + "<div class='clear'></div>");
					$("#productHeader h1").html("Zoekresultaten");
				} else {
					$("#producten").html("Geen producten in deze categorie...");
					$("#productHeader h1").html("Geen resultaten gevonden...");					
				}
			newProducts.init();
			}
		});
	} else {
	
	}
}
