	var CurrentGenreId;
	var PriceMatrix = false;
	var TIMEOUT_DELAY = 2500;
	var CurrProductGroupId = '';
	var CurrPriceRange = '';
	var DirectPriceMatrix=new Array(); 

	function InvokeFormAction(formValue, actionValue)
	{
		document.forms[formValue].action += actionValue;
		document.forms[formValue].submit();
	}
	function InvokeAction(value)
	{
		document.forms[0].action += value;
		document.forms[0].submit();
	}
	function AmountChanged(value)
	{
		if (value != null)
			PriceMatrix = true;
			
		if (isNaN(value))
			PriceMatrix = false;
	}
	function InvokePriceMatrix()
	{
		if (PriceMatrix)
			InvokeFormAction('Product','AddToCart');
			//document.forms[1].submit();
		else
			alert('Om te bestellen dient u het aantal op te geven in de prijzen matrix');
	}
	
	function InvokeDirectPriceMatrix(MatrixForm)
	{
		var checkOk = false;
		var NrOfElems = MatrixForm.length;
		var Elems = MatrixForm.elements;
		
		for (var i = 0; i < NrOfElems; i++)
		{			
			if ((Elems[i].type.toLowerCase() == "text") && (Elems[i].value != ""))
			{
				checkOk = true;
				break;
			}
		}
		if (checkOk)
		{
			MatrixForm.action += 'AddToCart';
			MatrixForm.submit();	
		}
		else
		{
			alert('Om te bestellen dient u het aantal op te geven in de prijzen matrix');
		}
	}
	
	function DecreaseQuantity(Seqno)
	{
		document.forms['ShoppingCart']['Quantity_' + Seqno].value = parseInt(document.forms['ShoppingCart']['Quantity_' + Seqno].value) - 1;

		var re = new RegExp(/^[0-9]+$/);
		if (document.forms['ShoppingCart']['Quantity_' + Seqno].value < 1 || !re.test(document.forms['ShoppingCart']['Quantity_' + Seqno].value))
		{
			document.forms['ShoppingCart']['Quantity_' + Seqno].value = 1;
		}
	}

	function IncreaseQuantity(Seqno)
	{
		document.forms['ShoppingCart']['Quantity_' + Seqno].value = parseInt(document.forms['ShoppingCart']['Quantity_' + Seqno].value) + 1;

		var re = new RegExp(/^[0-9]+$/);
		if (document.forms['ShoppingCart']['Quantity_' + Seqno].value < 1 || !re.test(document.forms['ShoppingCart']['Quantity_' + Seqno].value))
		{
			document.forms['ShoppingCart']['Quantity_' + Seqno].value = 1;
		}
	}
	function CartRemoveItem(i)
	{
		InvokeFormAction('ShoppingCart', 'Delete&Seqno=' + i);
	}

	function ShowTellAFriendForm()
	{
		document.getElementById('TellAFriendForm').style.display = 'block';
		//document.getElementById('TellAFriendButton').style.display = 'none';
	}
	function TellAFriend(ProductId)
	{
		document.forms['Product'].action = 'Pages/Products/ViewProduct.asp?ShopProductId=' + ProductId + '&Action=TellAFriend';
		document.forms['Product'].submit();
	}
	function clearValue(eraseByValue, elementId)
	{
		if (document.getElementById(elementId).value == eraseByValue)
			document.getElementById(elementId).value = '';
	}

	function ShowGenreItems(elementId)
	{
		if (document.getElementById('GenreItems_' + elementId).style.display != 'block')
			document.getElementById('GenreItems_' + elementId).style.display = 'block';
	}
	function HideGenreItems(elementId)
	{
		if (document.getElementById('GenreItems_' + elementId).style.display != 'none')
			document.getElementById('GenreItems_' + elementId).style.display = 'none';
	}

	function dropItem(elementId)
	{
		if (document.getElementById(elementId).style.display != 'block')
			document.getElementById(elementId).style.display = 'block';
	}
	function hideItem(elementId)
	{
		if (document.getElementById(elementId).style.display != 'none')
			document.getElementById(elementId).style.display = 'none';
	}
	function startDropItem(elementId)
	{
		if (document.getElementById(elementId).style.display == 'none')
		{
			document.getElementById(elementId).style.display = 'block';
			if (document.getElementById(elementId + '-preview') != null)
				document.getElementById(elementId + '-preview').style.display = 'none';
		}
		else
		{
			document.getElementById(elementId).style.display = 'none';
			if (document.getElementById(elementId + '-preview') != null)
				document.getElementById(elementId + '-preview').style.display = 'block';
		}
	}

	function FilterProducts(PriceRange)
	{
		document.getElementById('output-products').innerHTML = '<img src="Images/ajax-loader.gif" alt="loader" />';
		$('#output-products').load('AjaxProducts.asp?PriceRange=' + PriceRange);
	}

	function FilterProductsByDynamicAttributes(AttributeLabel, Value)
	{
		$('a[id*="filter_' + AttributeLabel + '"]').each(function () {
			$(this).removeClass('selected');
		});
		document.getElementById('output-products').innerHTML = '<img src="Images/ajax-loader.gif" alt="loader" />';
		$('#output-products').load('AjaxProducts.asp?AttributeLabel=' + AttributeLabel + '&Value=' + Value);
		//document.getElementById('filter_' + AttributeLabel + '-' + Value).class = 'selected';

		$('#filter_' + AttributeLabel + '-' + Value).addClass('selected');

		//test filters
		document.getElementById('output-filters').innerHTML = '<img src="Images/ajax-loader.gif" alt="loader" />';
		$('#output-filters').load('AjaxFilters.asp?AttributeLabel=' + AttributeLabel + '&Value=' + Value);
	}
	function FilterProductsBySupplier(Label, Value)
	{
		$('a[id*="filter_' + Label + '"]').each(function () {
			$(this).removeClass('selected');
		});
		document.getElementById('output-products').innerHTML = '<img src="Images/ajax-loader.gif" alt="loader" />';
		$('#output-products').load('AjaxProducts.asp?ShopSupplierId=' + Value);

		$('#filter_' + Label + '-' + Value).addClass('selected');
	
		//test filters
		document.getElementById('output-filters').innerHTML = '<img src="Images/ajax-loader.gif" alt="loader" />';
		$('#output-filters').load('AjaxFilters.asp');
	}	
	function FilterProductsBySerie(Label, Value)
	{
		$('a[id*="filter_' + Label + '"]').each(function () {
			$(this).removeClass('selected');
		});
		document.getElementById('output-products').innerHTML = '<img src="Images/ajax-loader.gif" alt="loader" />';
		$('#output-products').load('AjaxProducts.asp?ShopSerieId=' + Value);

		$('#filter_' + Label + '-' + Value).addClass('selected');

		//test filters
		document.getElementById('output-filters').innerHTML = '<img src="Images/ajax-loader.gif" alt="loader" />';
		$('#output-filters').load('AjaxFilters.asp');
	}	
	function FilterProductsBySubSerie(Label, Value)
	{
		$('a[id*="filter_' + Label + '"]').each(function () {
			$(this).removeClass('selected');
		});
		document.getElementById('output-products').innerHTML = '<img src="Images/ajax-loader.gif" alt="loader" />';
		$('#output-products').load('AjaxProducts.asp?ShopSubSerieId=' + Value);

		$('#filter_' + Label + '-' + Value).addClass('selected');

		//test filters
		document.getElementById('output-filters').innerHTML = '<img src="Images/ajax-loader.gif" alt="loader" />';
		$('#output-filters').load('AjaxFilters.asp');
	}			
	function SelectPage(SortBy, SortOrder, Page, NrResults)
	{
		document.getElementById('output-products').innerHTML = '<img src="Images/ajax-loader.gif" alt="loader" />';
		$('#output-products').load('AjaxProducts.asp?SortBy=' + SortBy + '&SortOrder=' + SortOrder + '&Page=' + Page + '&Results=' + NrResults);
	}
	function SelectOffersPage(SortBy, SortOrder, Page, NrResults)
	{
		document.getElementById('output-products').innerHTML = '<img src="Images/ajax-loader.gif" alt="loader" />';
		$('#output-products').load('AjaxOffers.asp?SortBy=' + SortBy + '&SortOrder=' + SortOrder + '&Page=' + Page + '&Results=' + NrResults);
	}
	function LoadSmallShoppingCart(htmlOutputId)
	{
		document.getElementById(htmlOutputId).innerHTML = '<img src="Images/ajax-loader_small.gif" alt="loader" />';
		$("#" + htmlOutputId).load("AjaxSmallShoppingCart.asp");
	}
	function LoadAccessoires(productId, htmlOutputId)
	{
		document.getElementById(htmlOutputId).innerHTML = '<img src="Images/ajax-loader.gif" alt="loader" />';
		$("#" + htmlOutputId).load('AjaxAccessoires.asp?ShopProductId=' + productId);
	}
	function LoadAccessoiresWithParams(productId, htmlOutputId, SortBy, SortOrder, Page)
	{
		document.getElementById(htmlOutputId).innerHTML = '<img src="Images/ajax-loader.gif" alt="loader" />';
		$("#" + htmlOutputId).load('AjaxAccessoires.asp?ShopProductId=' + productId + '&SortBy=' + SortBy + '&SortOrder=' + SortOrder + '&Page=' + Page);
	}

	function AddToCartQuickAjax(productId)
	{
		document.getElementById('output-shoppingcart').innerHTML = '<img src="Images/ajax-loader_small.gif" alt="loader" />';
		$("#output-shoppingcart").load("AjaxSmallShoppingCart.asp?Action=Add&ShopProductId=" + productId + "&Quantity=1", ShowAddedToCartMessage);
	}
	function AddToCart()
	{
		InvokeFormAction(2,'AddToCart');
	}
	
	/*function AddToCart(formname)
	{
		InvokeFormAction(formname,'AddToCart');
	}*/

	function ViewThumbImage(DetailImageLink)
	{
		document.getElementById('DetailImage').src = DetailImageLink;
	}

	function ShowAddedToCartMessage()
	{
		document.onmousemove=getMouseCoordinates;
		document.getElementById("AddedToCartMessage").innerHTML = "Product is toegevoegd aan uw winkelwagen";
		document.getElementById("AddedToCartMessage").style.display = "block";
		setTimeout('HideAddedToCartMessage()', TIMEOUT_DELAY);
	}

	function HideAddedToCartMessage()
	{
		document.onmousemove = null;
		document.getElementById("AddedToCartMessage").style.display = "none";
		document.getElementById("AddedToCartMessage").innerHTML = "";
		clearTimeout();
	}


	function getMouseCoordinates(event)
	{
		var MouseX = 0;
		var MouseY = 0;
		var IE = document.all?true:false;
		var ev = event || window.event;


		if (IE) {
			MouseX = ev.clientX+document.body.scrollLeft;
       	MouseY = ev.clientY+document.body.scrollTop;
		}
		else {
			MouseX = ev.pageX;
			MouseY = ev.pageY;
		}

		if (document.getElementById("AddedToCartMessage") != null) {
			document.getElementById("AddedToCartMessage").style.left = (MouseX + 30) + "px";
			document.getElementById("AddedToCartMessage").style.top = (MouseY + 30) + "px";
		}
	}

	// PageLoad function
	// This function is called when:
	// 1. after calling $.historyInit();
	// 2. after calling $.historyLoad();
	// 3. after pushing "Go Back" button of a browser
	function pageload(hash) {
		// hash doesn't contain the first # character.
		if(hash) {
			// find the a-element with the given id
			var a = $("#"+hash);
			if (a.attr("target") != "undefined")
			{
				// There was a target defined, load the URL inside this target
				$("#"+a.attr("target")).load(a.attr("href"));
				alert('Loading content inside: ' + a.attr("target"));
			}
			else
			{
				// Somthing else??
			}
		} else {
			// start page
			// Could load some defaults... PE:
			// $("#load").empty();
		}
	}


