//----------------------------------------------------------------------
// XMLHttpRequest
//----------------------------------------------------------------------
	function createRequest(){
		if(window.ActiveXObject){
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} else if(window.XMLHttpRequest){
			xmlHttp = new XMLHttpRequest();
		}
		return xmlHttp;
	}
	
	//----------------------------------------------------------------------
	// showFaqCategory
	//--------------------------------------------------------------------
	
	function showShippingCosts(){
		
		
		var countryField	= document.forms.order_form.countryID;	
		var countryID		= (countryField) ? countryField.value : 0;
		
		var couponIDs			= Array();
		var couponFields		= document.getElementsByTagName('input');;
		for(i=0; i<couponFields.length; i++){
			if(couponFields[i].name == 'couponIDs[]' && couponFields[i].checked){
				//alert(i +' '+ couponFields[i].name + ' ' + couponFields[i].checked);
				couponIDs.push(couponFields[i].value);
			}
		}
		
		// ajax request object aanmaken
		var xmlHttp		= createRequest();
		
		// url openen
		var url			= 'ajax/shipping_costs.php?country='+countryID+'&coupons='+couponIDs;
		xmlHttp.open("GET", url, true);
		
		// zodra er content terug komt (van url)
		xmlHttp.onreadystatechange = function(){
			if(xmlHttp.readyState == 4){
				
				// content tonen
				var responseChunks = xmlHttp.responseText.split('##');
				
				var productPriceTotalH1	= document.getElementById('productPriceTotalH1');
				var shippingCostsH1		= document.getElementById('shippingCostsH1');
				var cartTotalH1			= document.getElementById('cartTotalH1');
				
				if(productPriceTotalH1) productPriceTotalH1.innerHTML	= '&euro; ' + responseChunks[0];
				if(shippingCostsH1)		shippingCostsH1.innerHTML		= '&euro; ' + responseChunks[1];
				if(cartTotalH1)			cartTotalH1.innerHTML			= '&euro; ' + responseChunks[2];
				
				showGiftsBar(responseChunks[0]);
			}
		}
		
		// lege waarde verzenden (anders wordt xmlHttp.open() niet uitgevoerd)
		xmlHttp.send(null);
		
		
	}
	
	//----------------------------------------------------------------------
	// showFaqCategory
	//----------------------------------------------------------------------
	function showFaqCategory(catID){
		
		if(catID){
		
			// ajax request object aanmaken
			var xmlHttp		= createRequest();
			
			// url openen
			var url			= 'ajax/faq.php?catID='+catID;
			xmlHttp.open("GET", url, true);
			
			// zodra er content terug komt (van url)
			xmlHttp.onreadystatechange = function(){
				if(xmlHttp.readyState == 4){
					
					// content tonen
					var resp			= xmlHttp.responseText
					var catContent		= resp.substring(0, resp.indexOf('{{'));
					var firstAnswerID	= resp.substring(resp.indexOf('{{')+2).split('}}').join('');
					
					document.getElementById('faq_questions').innerHTML	= catContent;
					showFaqAnswer(firstAnswerID);
					
				}
			}
			
			// lege waarde verzenden (anders wordt xmlHttp.open() niet uitgevoerd)
			xmlHttp.send(null);
			
		}
	}
	
	//----------------------------------------------------------------------
	// showFaqAnswer
	//----------------------------------------------------------------------
	function showFaqAnswer(questionID){
		
		if(questionID){
			
			// kleur updaten
			
			var elems	= getElementsByClassName('faqQuestion');//document.getElementsByClassName('faqQuestion');
			for(i=0; i<elems.length; i++){
				
				if(elems[i].id == questionID){
					elems[i].style.color = "#000000";	
				} else {
					elems[i].style.color = elems[i].parentNode.style.borderBottomColor;
				}
				
			}
		
			// ajax request object aanmaken
			var xmlHttp		= createRequest();
			
			// url openen
			var url			= 'ajax/faq.php?questionID='+questionID;
			xmlHttp.open("GET", url, true);
			
			// zodra er content terug komt (van url)
			xmlHttp.onreadystatechange = function(){
				if(xmlHttp.readyState == 4){
					
					// content tonen
					document.getElementById('faq_answer').innerHTML	= xmlHttp.responseText;
				}
			}
			
			// lege waarde verzenden (anders wordt xmlHttp.open() niet uitgevoerd)
			xmlHttp.send(null);
			
		} else {
			document.getElementById('faq_answer').innerHTML	= '&nbsp;';
		}
	}
	
	//----------------------------------------------------------------------
	// save account from shoppingcart
	//----------------------------------------------------------------------
	function ajaxSaveAccount(form){
		
		
		var fullname	= form.strRealName.value.trim();		if(fullname == 'full name')		fullname = '';
		var address		= form.strAddress.value.trim();			if(address == 'address')		address = '';
		var zip			= form.strPostalCode.value.trim();		if(zip == 'zip code')			zip = '';
		var city		= form.strCity.value.trim();			if(city == 'city')				city = '';
		var country		= form.countryID.value.trim();			if(country == '0')				country = '';
		
		if(!fullname || !address || !zip || !city || !country){
			alert('Please fill out all required fields');
			return false;
			void(0);
		}
		
		// ajax request object aanmaken
		var xmlHttp		= createRequest();
		
		// url openen
		var url			= 'ajax/save_account.php';
		var postVars	= 'fullname='+fullname+'&address='+address+'&zip='+zip+'&city='+city+'&country='+country;
		
		xmlHttp.open("POST", url, true);
		
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", postVars.length);
		xmlHttp.setRequestHeader("Connection", "close");
		
		// zodra er content terug komt (van url)
		xmlHttp.onreadystatechange = function(){
			if(xmlHttp.readyState == 4){
				
				// content tonen
				var sTxt		= document.getElementById('shippingInfoTxt');
				sTxt.innerHTML	= xmlHttp.responseText
				
				showShippingForm(false);
			}
		}
		
		// lege waarde verzenden (anders wordt xmlHttp.open() niet uitgevoerd)
		xmlHttp.send(postVars);
	}

//----------------------------------------------------------------------
// showProductDetail
//----------------------------------------------------------------------
	function showProductDetail(url){
		
		document.getElementById('productDetailLarge').src = 'img/clear.gif';
		
		var xmlHttp		= createRequest();
		
		xmlHttp.open("GET", url, true);
		xmlHttp.onreadystatechange = function(){
			if(xmlHttp.readyState == 4){
				
				document.getElementById('productDetailLarge').src = url;
			}
		}
		xmlHttp.send(null);
	}

	
//----------------------------------------------------------------------
// onFocus = Blur
//----------------------------------------------------------------------
	function onFocusBlur(){
		arrAnchors	= document.getElementsByTagName('a');
		for(i=0; i<arrAnchors.length; i++){
			arrAnchors[i].onfocus = function(){this.blur();};
		}
	}
	

function updatePlusMinus(prVarID, maxStock){
	var form		= document.getElementById('prDetailsForm');
	var field		= form['prVar_'+prVarID];
	
	// plus
	var plusImg		= document.getElementById('plusImg_'+prVarID);
	if(field.value < maxStock){
		plusImg.src		= "img/icon_cart_plus.jpg";
		plusImg.parentNode.style.cursor = 'pointer';
	} else {
		plusImg.src		= "img/icon_cart_plus_dis.jpg";
		plusImg.parentNode.style.cursor = 'default';
	}
	
	// minus
	var minImg		= document.getElementById('minImg_'+prVarID);
	if(field.value > 0){
		minImg.src		= "img/icon_cart_minus.jpg";
		minImg.parentNode.style.cursor = 'pointer';
	} else {
		minImg.src		= "img/icon_cart_minus_dis.jpg";
		minImg.parentNode.style.cursor = 'default';
	}
	
}

function updatePercentageBar(prVarID, currCount){
	var maxStock		= 5;
	var perc			= currCount / maxStock;
	
	if(perc > 1)		perc = 1;
	if(perc < 0)		perc = 0;
	
	var barWidth		= Math.round(perc * 74);
	
	document.getElementById('percBar_'+prVarID).style.width = barWidth + 'px';
}

function addCount(prVarID, maxStock){
	var form		= document.getElementById('prDetailsForm');
	var field		= form['prVar_'+prVarID];
	
	var newValue	= parseInt(field.value) + 1;
	
	if(newValue <= maxStock){
		field.value	= newValue;
		
		// percentage bar
		updatePercentageBar(prVarID, maxStock-newValue);
		updatePlusMinus(prVarID, maxStock);
	}
	
}

function minCount(prVarID, maxStock){
	var form		= document.getElementById('prDetailsForm');
	var field		= form['prVar_'+prVarID];
	var newValue	= parseInt(field.value) - 1;
	
	if(newValue >= 0){
		field.value	= newValue;
		
		// percentage bar
		updatePercentageBar(prVarID, maxStock-newValue);
		updatePlusMinus(prVarID, maxStock);
	}
}


function showCartTooltip(show){
	var div		= document.getElementById('shoppingCart');
	
	if(show){
		div.style.visibility	= 'visible';	
	} else {
		div.style.visibility	= 'hidden';
	}
}


String.prototype.trim = function(){
	return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');	
}

//----------------------------------------------------------------------
// validateMe
//----------------------------------------------------------------------
function addToCart(){
	
	// formulier
	form		= document.getElementById('prDetailsForm');//
	
	hasValue	= false;
	
	// door elementen loopen
	for(i=0; i<form.elements.length; i++){
		if(form.elements[i].value > 0){
			hasValue = true;	
		}
	}
	
	if(hasValue){
		form.submit();
	} else {
		alert('please select an amount');	
	}

	return false;
	
}



//----------------------------------------------------------------------
// showShippingForm
//----------------------------------------------------------------------
function showShippingForm(show){
	
	if(show==undefined) show = true;
	
	var sTxt	= document.getElementById('shippingInfoTxt');
	var sFrm	= document.getElementById('shippingInfoFrm');
	
	if(show){
		sTxt.style.display = 'none';
		sFrm.style.display = 'block';
	} else {
		sTxt.style.display = 'block';
		sFrm.style.display = 'none';
	}
}

function setDefaultValue(inputField, defaultValue){
	
	// on blur
	if(inputField.value == ''){
		inputField.value = defaultValue;
		inputField.style.color = '#aaaaaa';
		return true; void(0);
	}
	
	// on focus
	if(inputField.value == defaultValue){
		inputField.value = '';
		inputField.style.color = '#000000';
		return true; void(0);
	}
	
}


function showGiftsBar(total){
	
	total	= total.toString().split(',').join('.');
	total	= parseFloat(total);
	
	
	// ajax request object aanmaken
	var xmlHttp		= createRequest();
	
	// url openen
	var url			= 'ajax/gifts_bar.php?total='+total;
	xmlHttp.open("GET", url, true);
	
	// zodra er content terug komt (van url)
	xmlHttp.onreadystatechange = function(){
		if(xmlHttp.readyState == 4){
			
			// content tonen
			document.getElementById('giftMeter').innerHTML	= xmlHttp.responseText;
		}
	}
	
	// lege waarde verzenden (anders wordt xmlHttp.open() niet uitgevoerd)
	xmlHttp.send(null);
}

function saveCoupon(cb){
	var couponID	= cb.value;
	var status		= (cb.checked) ? 'on' : 'off';
	
	var xmlHttp		= createRequest();
	var url			= '../ajax/active_coupons.php?id='+couponID+'&status='+status;
	xmlHttp.open("GET", url, true);	
	xmlHttp.send(null);
}

//----------------------------------------------------------------------
// getElementsByClassName()
//
// Code/licensing: http://code.google.com/p/getelementsbyclassname/
// Developed by Robert Nyman, http://www.robertnyman.com
//----------------------------------------------------------------------
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};