var W3CDOM = (document.getElementsByTagName && document.createElement);


/*
	ANALYTICS
*/


var _gaq = _gaq || [];
	_gaq.push(['_setAccount', 'UA-10447742-1']);
	_gaq.push(['_trackPageview']);

(function() {
	var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
	ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
	(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
})();
					  
					  

/*
	ALGEMENE FUNCTIES
*/

function toggle(obj) {
	var el = document.getElementById(obj);
	//alert (obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
	}
	else {
		el.style.display = 'block';
	}
}
function altertext(obj, txt) {
	var el = document.getElementById(obj);
	//alert (obj);
	//alert (txt);

	el.innerHTML = txt;
	
}
function changeBtn(obj) {
	var el = document.getElementById(obj);
	el.innerHTML = "<form action='basket.php' id='bestel2'><div style='float:left'><div class='btn_cart' style='float:left' ><input type='submit' value='Ga naar je winkelwagentje'></div></div></form>";
}
function emptySearchBox(id){
	document.getElementById(id).value = "";
	document.getElementById(id).style.color = "#000000";
	document.getElementById(id).style.fontStyle = "normal";
	
}
/*
	EINDE ALGEMENE FUNCTIES
*/

var z = 104;
function changeImageDepth(top){
	
	//alert (top);
	
	document.getElementById("product_1").style.cursor  = "pointer";
	document.getElementById("product_2").style.cursor  = "pointer";
	document.getElementById("product_3").style.cursor  = "pointer";
	
	document.getElementById("product_" + top).style.display = "block";
	document.getElementById("product_" + top).style.cursor  = "default";
	document.getElementById("product_" + top).style.zIndex = z++;
	
	_gaq.push(['_trackEvent', 'gui', 'product_images', 'gui', 0]);
	
} 
function changeImageDepth_2(top){
	
	//alert (top);
	
	document.getElementById("product_1").style.cursor  = "pointer";
	document.getElementById("product_3").style.cursor  = "pointer";
	
	
	document.getElementById("product_" + top).style.display = "block";
	document.getElementById("product_" + top).style.cursor  = "default";
	document.getElementById("product_" + top).style.zIndex = z++;
} 


function showBasket(id, nr_items){
	var itemsInCart = nr_items;
	
	for (i = 1; i < itemsInCart + 1; i++){
		this.document.getElementById("basket_" + i).style.width = "80px";
		this.document.getElementById("basket_" + i).style.cursor = "pointer";
		//alert (i);
	}
	//alert ("aap");
	this.document.getElementById(id).style.width = "250px";
	this.document.getElementById(id).style.cursor = "default";
}

function get_login(){
	//alert("dsjhdsj");
	this.document.getElementById("heading").style.height = "130px";
	toggle("loginForm");
	altertext("loginTxt", "Log hieronder in of <a href='register.php'>meld je aan</a> (voor nieuwe bezoekers). (<a href='#' onclick='close_login()'>verberg</a>)");
}

function close_login(){
	//alert("dsjhdsj");
	this.document.getElementById("heading").style.height = "20px";
	toggle("loginForm");
	altertext("loginTxt", " (<a onclick='get_login();' href='#'>inloggen</a> of <a href='register.php'>aanmelden</a>)");
}



// VOOR DE RATING

function showStars (rating, txt){
	if (rating == 5)			
	document.getElementById("rating").style.backgroundPosition = "-0px 0px";
	if (rating == 4)
	document.getElementById("rating").style.backgroundPosition = "-20px 0px";
	if (rating == 3)
	document.getElementById("rating").style.backgroundPosition = "-40px 0px";
	if (rating == 2)
	document.getElementById("rating").style.backgroundPosition = "-60px 0px";
	if (rating == 1)
	document.getElementById("rating").style.backgroundPosition = "-80px 0px";
	
	if (txt){
		document.getElementById("votesTxt").innerHTML = "&nbsp;(<a href='login_screen.php?" + txt + "'>Log in om te stemmen</a>)";
	}
}
function showNormalRating (rating){
	if (rating == 5)			
	document.getElementById("rating").style.backgroundPosition = "-0px 0px";
	if (rating == 4)
	document.getElementById("rating").style.backgroundPosition = "-20px 0px";
	if (rating == 3)
	document.getElementById("rating").style.backgroundPosition = "-40px 0px";
	if (rating == 2)
	document.getElementById("rating").style.backgroundPosition = "-60px 0px";
	if (rating == 1)
	document.getElementById("rating").style.backgroundPosition = "-80px 0px";
	if (rating == 0)
	document.getElementById("rating").style.backgroundPosition = "-100px 0px";
}
function rateStars (rating, book_id){
	updateElement('include/get_book_rating.php?rating=' + rating + '&id=' + book_id, 'rating_div');	
}
function rateRecipe (rating, recipe_id){
	updateElement('include/get_recipe_rating.php?rating=' + rating + '&recipe_id=' + recipe_id, 'rating_div');	
}



// VALIDATION

function validate(id) {
	validForm = true;
	firstError = null;
	errorstring = '';
	var x = document.getElementById(id).elements;
	for (var i=0;i<x.length;i++) {
		if (!x[i].value)
			writeError(x[i],'Verplicht veld');
	}
	if (!W3CDOM)
		alert(errorstring);
	if (firstError)
		firstError.focus();
	if (validForm){
		//ajax plaats sessie variable met username
		//reload header
		//aanpassen header
		close_login();
		ajax_post_login ();
		
		return false;
	}
	return false;
}

function writeError(obj,message) {
	validForm = false;
	if (obj.hasError) return;
	if (W3CDOM) {
		obj.className += ' fieldError';
		obj.onchange = removeError;
		var sp = document.createElement('span');
		sp.className = 'error';
		sp.appendChild(document.createTextNode(message));
		obj.parentNode.appendChild(sp);
		obj.hasError = sp;
	}
	else {
		errorstring += obj.name + ': ' + message + '\n';
		obj.hasError = true;
	}
	if (!firstError)
		firstError = obj;
}

function removeError()
{
	this.className = this.className.substring(0,this.className.lastIndexOf(' '));
	this.parentNode.removeChild(this.hasError);
	this.hasError = null;
	this.onchange = null;
}
function validateAndGoTo(id) {
	validForm = true;
	firstError = null;
	errorstring = '';
	var x = document.getElementById(id).elements;
	for (var i=0;i<x.length;i++) {
		if (!x[i].value)
			writeError(x[i],'Verplicht veld');
	}
	if (!W3CDOM)
		alert(errorstring);
	if (firstError)
		firstError.focus();
	if (validForm){
		//alert ("valid");
		return true;
	}
	return false;
}

function removeRed(){
	this.className = '';
	
}

function validateSignUp(){
	
	validForm = true;
	err1 = false;
	err2 = false;
	// reset waarden
	document.getElementById("err1").innerHTML = "";
	document.getElementById("err1").className += "";
	document.getElementById("err2").innerHTML = "";
	document.getElementById("err2").className += "";
	errorMessage = "";
	errorMessage2 = "";
	errorMessage3 = "";
	
	var x = document.getElementById("setupUser").elements;
	
	// email check
	// 1. waarde
	mail = document.getElementById("email");
	// 2, error schrijven
	if (mail.value.indexOf('@') == -1){
		validForm = false;
		
		errorMessage = "<li>Het emailadres is onjuist.</li>";
		mail.className += ' fieldError';
		mail.onchange = removeRed;
		
		err1 = true;
	}
	// passw. check
	// 1. waarden
	pw1 = document.getElementById("password1");
	pw2 = document.getElementById("password2");
	// 2. error schrijven	
	if (pw1.value != pw2.value || pw1.value == "" || pw2.value == ""){
		validForm = false;
		pw1.className += ' fieldError';
		pw1.onchange = removeRed;
		pw2.className += ' fieldError';
		pw2.onchange = removeRed;
		
		errorMessage += "<li>De wachtwoorden zijn niet of niet gelijk ingevuld.</li>";
		
		err1 = true;
		
		
	} 
	
	if (err1){
		document.getElementById("err1").innerHTML = "<ul>" + errorMessage + "</ul>";
		document.getElementById("err1").className += ' error';
	} // done
	
	// deel 2: adres
	// 1. waarden
	first_name = document.getElementById("address_first_name");
	last_name = document.getElementById("address_last_name");
	street = document.getElementById("address_street");
	number = document.getElementById("address_number");
	postal = document.getElementById("address_postal_code");
	town = document.getElementById("address_town");
	terms = document.getElementById("terms");
	

	// 2. error schrijven	
	if (first_name.value == ""){
		validForm = false;
		first_name.className += ' fieldError';
		first_name.onchange = removeRed;
		
		errorMessage2 += "<li>Voornaam is niet ingevuld</li>";
		
		err2 = true;
	}  
	if (last_name.value == ""){
		validForm = false;
		last_name.className += ' fieldError';
		last_name.onchange = removeRed;
		
		errorMessage2 += "<li>Achternaam is niet ingevuld</li>";
		
		err2 = true;
	}
	if (street.value == ""){
		validForm = false;
		street.className += ' fieldError';
		street.onchange = removeRed;
		
		errorMessage2 += "<li>Straatnaam is niet ingevuld</li>";
		
		err2 = true;
	}
	if (number.value == ""){
		validForm = false;
		number.className += ' fieldError';
		number.onchange = removeRed;
		
		errorMessage2 += "<li>Huisnummer is niet ingevuld</li>";
		
		err2 = true;
	} else {
		
		var isNumeric = number.value;
		if (isNaN(isNumeric)){
			//alert ('geen nummer');
			validForm = false;
			number.className += ' fieldError';
			number.onchange = removeRed;
		
			errorMessage2 += "<li>Huisnummer is geen nummer</li>";
			
			err2 = true;
		}
		

	}
	if (postal.value == ""){
		validForm = false;
		postal.className += ' fieldError';
		postal.onchange = removeRed;
		
		errorMessage2 += "<li>Postcode is niet ingevuld</li>";
		
		err2 = true;
	} else if (postal.value.length != 6){
		validForm = false;
		postal.className += ' fieldError';
		postal.onchange = removeRed;
		
		errorMessage2 += "<li>Postcode is met een verkeerd formaat ingevoerd. (4 cijfers, 2 letters, bijv. 1000AA)</li>";
		
		err2 = true;
	}
	if (town.value == ""){
		validForm = false;
		town.className += ' fieldError';
		town.onchange = removeRed;
		
		errorMessage2 += "<li>Plaatsnaam is niet ingevuld</li>";
		
		err2 = true;
	}
	
	if (err2){
		
		document.getElementById("err2").innerHTML = "<ul>" + errorMessage2 + "</ul>";
		document.getElementById("err2").className += ' error';
	}
	
	// TESTEN TERMS AKKOORD OF NIET
	if (terms.checked == false){
		validForm = false;
		terms.className += ' fieldError';
		terms.onchange = removeRed;
		errorMessage3 += "<li>Je moet akkoord gaan met onze voorwaarden</li>";
		err3 = true;
	}
	if (err3){
		
		document.getElementById("err3").innerHTML = "<ul>" + errorMessage3 + "</ul>";
		document.getElementById("err3").className += ' error';
	} // done

	if (validForm != true){
		return false;
	}
	
}


// SOFTE REGISTER

function validateSignUpSoft(){
	
	validForm = true;
	err1 = false;
	err2 = false;
	// reset waarden
	document.getElementById("err1").innerHTML = "";
	document.getElementById("err1").className += "";
	document.getElementById("err3").innerHTML = "";
	document.getElementById("err3").className += "";
	errorMessage = "";
	errorMessage3 = "";
	
	var x = document.getElementById("setupUser").elements;
	
	// email check
	// 1. waarde
	mail = document.getElementById("email");
	// 2, error schrijven
	if (mail.value.indexOf('@') == -1){
		validForm = false;
		
		errorMessage = "<li>Het emailadres is onjuist.</li>";
		mail.className += ' fieldError';
		mail.onchange = removeRed;
		
		err1 = true;
	}
	// passw. check
	// 1. waarden
	pw1 = document.getElementById("password1");
	pw2 = document.getElementById("password2");
	// 2. error schrijven	
	if (pw1.value != pw2.value || pw1.value == "" || pw2.value == ""){
		validForm = false;
		pw1.className += ' fieldError';
		pw1.onchange = removeRed;
		pw2.className += ' fieldError';
		pw2.onchange = removeRed;
		
		errorMessage += "<li>De wachtwoorden zijn niet of niet gelijk ingevuld.</li>";
		
		err1 = true;
		
		
	} 
	
	if (err1){
		document.getElementById("err1").innerHTML = "<ul>" + errorMessage + "</ul>";
		document.getElementById("err1").className += ' error';
	} // done
	

	terms = document.getElementById("terms");
	

	
	// TESTEN TERMS AKKOORD OF NIET
	if (terms.checked == false){
		validForm = false;
		terms.className += ' fieldError';
		terms.onchange = removeRed;
		errorMessage3 += "<li>Je moet akkoord gaan met onze voorwaarden</li>";
		err3 = true;
	}
	if (err3){
		
		document.getElementById("err3").innerHTML = "<ul>" + errorMessage3 + "</ul>";
		document.getElementById("err3").className += ' error';
	} // done

	if (validForm != true){
		return false;
	}
	
	return false;
	
}


function validateSignUpAddress(){
	
	validForm = true;
	err1 = false;
	err2 = false;
	// reset waarden

	document.getElementById("err2").innerHTML = "";
	document.getElementById("err2").className += "";

	errorMessage2 = "";
	
	
	// deel 2: adres
	// 1. waarden
	first_name = document.getElementById("address_first_name");
	last_name = document.getElementById("address_last_name");
	street = document.getElementById("address_street");
	number = document.getElementById("address_number");
	postal = document.getElementById("address_postal_code");
	town = document.getElementById("address_town");

	

	// 2. error schrijven	
	if (first_name.value == ""){
		validForm = false;
		first_name.className += ' fieldError';
		first_name.onchange = removeRed;
		
		errorMessage2 += "<li>Voornaam is niet ingevuld</li>";
		
		err2 = true;
	}  
	if (last_name.value == ""){
		validForm = false;
		last_name.className += ' fieldError';
		last_name.onchange = removeRed;
		
		errorMessage2 += "<li>Achternaam is niet ingevuld</li>";
		
		err2 = true;
	}
	if (street.value == ""){
		validForm = false;
		street.className += ' fieldError';
		street.onchange = removeRed;
		
		errorMessage2 += "<li>Straatnaam is niet ingevuld</li>";
		
		err2 = true;
	}
	if (number.value == ""){
		validForm = false;
		number.className += ' fieldError';
		number.onchange = removeRed;
		
		errorMessage2 += "<li>Huisnummer is niet ingevuld</li>";
		
		err2 = true;
	} else {
		
		var isNumeric = number.value;
		if (isNaN(isNumeric)){
			//alert ('geen nummer');
			validForm = false;
			number.className += ' fieldError';
			number.onchange = removeRed;
		
			errorMessage2 += "<li>Huisnummer is geen nummer</li>";
			
			err2 = true;
		}
		

	}
	if (postal.value == ""){
		validForm = false;
		postal.className += ' fieldError';
		postal.onchange = removeRed;
		
		errorMessage2 += "<li>Postcode is niet ingevuld</li>";
		
		err2 = true;
	} else if (postal.value.length != 6){
		validForm = false;
		postal.className += ' fieldError';
		postal.onchange = removeRed;
		
		errorMessage2 += "<li>Postcode is met een verkeerd formaat ingevoerd. (4 cijfers, 2 letters, bijv. 1000AA)</li>";
		
		err2 = true;
	}
	if (town.value == ""){
		validForm = false;
		town.className += ' fieldError';
		town.onchange = removeRed;
		
		errorMessage2 += "<li>Plaatsnaam is niet ingevuld</li>";
		
		err2 = true;
	}
	
	if (err2){
		
		document.getElementById("err2").innerHTML = "<ul>" + errorMessage2 + "</ul>";
		document.getElementById("err2").className += ' error';
	}


	if (validForm != true){
		return false;
	}
	
}

// WW opvragen

function validateField(fieldname){
	validForm = true;
	err1 = false;

	// reset waarden

	document.getElementById("err1").innerHTML = "";
	document.getElementById("err1").className += "";

	errorMessage = "";

	email = document.getElementById("email");
	
	
	if (email.value == ""){
		validForm = false;
		email.className += ' fieldError';
		email.onchange = removeRed;
		
		errorMessage += "<li>Vul je emailadres in</li>";
		
		err1 = true;
	}
	

	

	if (err1){
		
		document.getElementById("err1").innerHTML = "<ul>" + errorMessage + "</ul>";
		document.getElementById("err1").className += ' error';
	}

	if (validForm != true){
		return false;
	}	
	
}
//
// Payment methode wijzigen
//

function changePayment (type){
	ideal = document.getElementById("ideal_payment");
	no_ideal =  document.getElementById("no_ideal_payment");
	if (type == "iDeal"){
		ideal.style.display = "block";
		no_ideal.style.display = "none";
	} else {
		ideal.style.display = "none";
		no_ideal.style.display = "block";
	}
}



//
// wishlist
//

function pre_wish(){
	target = document.getElementById("wishlist");
	target.style.backgroundColor = "#D3DDE4";
	
	img = document.getElementById("wish_heart");
	img.src = "/img/heart_red.gif";
}

function stop_wish(){
	target = document.getElementById("wishlist");
	target.style.backgroundColor = "#FFFFFF";
	
	img = document.getElementById("wish_heart");
	img.src = "/img/heart.gif";
}

function add_wish(id){
	
	//alert ("wish: " + id);
	stop_wish();
	updateElement('ajax/add_wishlist.php?id=' + id, 'wishlist');
	setTimeout ("show_wish(" + id + ")", 100 );
	
	_gaq.push(['_trackEvent', 'add_to_wishlist', id, 'wishlist', 0]);
	return false;
}
function show_wish(id){
	
	updateElement('ajax/show_wishlist.php?id=' + id, 'wish');
}

//
// ADMIN FUNCTIES
//

//
// Om de status van een order te wijzigen
//

function change_status(id, status, group, server){
	window.location = "http://" + server + "/admin/order_change_status.php?order_id=" + id + "&status_list=" + status + "&group=" + group;
}
