
// OM DE Ineternet Explorer CACHING ISSUE TE ONTLOPEN WORDT DE XMLHTTP FUNFTIE open() AANGEROEPEN VOORDAT DE onreadystatechange wordt gebruikt.

// Niet vergeten even checken in opera en safari. Las net iets over de volgorde waar iets mis kan gaan.
// Het plaatsen van de open() methode VOOR de onreadyStateChange kan volgens dit artikel enige problemen opleveren:
// http://www.quirksmode.org/blog/archives/2005/09/xmlhttp_notes_r_2.html

var ajax = ajaxRequest();
function changeFactuurAdres(host){
	var params = "act=getForm&step=3&form=factuur"; 
	
	var old = '<input id="otherFactuur" checked="checked" type="checkbox" name="otherFactuur" onclick="changeFactuurAdres(\''+host+'\');"/>Zakelijk <i>factuuradres</i> gebruiken.<br/>';
	
	if(document.getElementById('otherFactuur').checked){
		ajax.open("POST", "http://"+host+"/webshop/ajax_responder.php", true);
		
		ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		ajax.setRequestHeader("Content-length", params.length);
		ajax.setRequestHeader("Connection", "close");
		
		ajax.send(params);
		
		ajax.onreadystatechange = function() {
			if(ajax.readyState == 4 && ajax.status == 200){
				document.getElementById('otherFactuurLabel').innerHTML = old + ajax.responseText;
			}
		}
	}
	else{
		document.getElementById('otherFactuurLabel').innerHTML = old;
		document.getElementById('otherFactuur').checked = false;
	}
}

function procesInquiry(host)
{
	// var loading = '<h2>Een ogenblig geduld aub...</h2>';
	// loading += '<p>Uw order wordt gecontroleerd en verwerkt. Dit kan enige tijd duren.<br /></p>';
	// document.getElementById('betaal_wizard').innerHTML = loading;
	
	var params = "act=sendOrder"; 
	
	ajax.open("POST", "http://"+host+"/webshop/ajax_responder.php", true);
	
	ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	ajax.setRequestHeader("Content-length", params.length);
	ajax.setRequestHeader("Connection", "close");
	
	ajax.send(params);
	
	ajax.onreadystatechange = function() {
		if(ajax.readyState == 4 && ajax.status == 200){
			document.getElementById('betaal_wizard').innerHTML = ajax.responseText;
		}
	}
	
}


function selectAantal(host, id) {
	var innerHTML = '<div class="productOptions">Hoeveel banden wilt u bestellen?<br /><br />';
	innerHTML += '<select onchange="addBandToCart(\''+host+'\', \''+id+'\', this.value);" name="selectAantal">';
	innerHTML += '<option value="0">Selecteer een aantal...</option>';
	innerHTML += '<option value="1">1</option>';
	innerHTML += '<option value="2">2</option>';
	innerHTML += '<option value="3">3</option>';
	innerHTML += '<option value="4">4</option>';
	innerHTML += '</select></div>'
	document.getElementById('item_'+id).innerHTML = innerHTML;
}

// BETAAL WIZARD FUNTIONS
function getForm(host, step){
	ajax.open("GET", "http://"+host+"/webshop/ajax_responder.php?act=getForm&step="+step,true);
	ajax.onreadystatechange=function(){
		if(ajax.readyState==4){
			document.getElementById("betaal_wizard").innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);
}

//	FORMULIERCHECK FUNCTIES

function checkEmail(field, defaultclassname){
	var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
    if(pattern.test(field.value)){         
		field.className = defaultclassname;
		document.getElementById(field.name + '_error').innerHTML = '';
    }else{   
		field.className = 'error'; 
		document.getElementById(field.name + '_error').innerHTML = 'Dit is geen geldig email adres';
    }

}

function checkPass(field, defaultclassname){
	if(field.value.length > 4){
		field.className = defaultclassname;
		document.getElementById(field.name + '_error').innerHTML = '';
	}
	else{
		field.className = 'error'; 
		document.getElementById(field.name + '_error').innerHTML = 'Het wachtwoord moet uit minimaal 5 tekens bestaan';
    }
}

function isEmpty(field, defaultclassname){
	if(field.value != ''){ // even trim functie bijinzetten nog een keer
		field.className = defaultclassname;
		document.getElementById(field.name + '_error').innerHTML = '';
	}
	else{   
		field.className = 'error'; 
		document.getElementById(field.name + '_error').innerHTML = 'Dit is een verplicht veld';
    }
}

// SIDEBAR FUNCTIONS
function addToCart(host, id){
	var oldBorder = $('#item_'+id).css('border');
	
	ajax.open("GET", "http://"+host+"/webshop/ajax_responder.php?act=add&id="+id,true);
	ajax.onreadystatechange=function(){
		if(ajax.readyState==4){
			//$('#item_'+id).effect("transfer", { to: $("#webshop") }, 1000, function(){
				document.getElementById("webshop_content").innerHTML = ajax.responseText;
			//	$('#webshop').stop().fadeIn(200);
			//});
		}
	}
	ajax.send(null);
}

// Buiten gebruik. Vervangen door selectAantal();
function checkVoorraad(host, id){
	ajax.open("GET", "http://"+host+"/webshop/ajax_responder.php?act=checkVoorraad&id="+id,true);
	var open = false;
	if(!open){
		var oldInnerHTML = document.getElementById('item_'+id).innerHTML;
	}
	ajax.onreadystatechange=function(){
		if(ajax.readyState==4){
			var result = ajax.responseText;
			// document.getElementById(id).innerHTML = result;
			if(result == ' true') // WTF!!! er komt een spatie vooraf mee terug!!!
			{
				addBandToCart(host, id, oldInnerHTML);
			}
			else
			{
				document.getElementById('item_'+id).innerHTML = 'Product is niet langer leverbaar!';
				document.getElementById('item_'+id).innerHTML = ajax.responseText;
			}
			
		}
		else{
			document.getElementById('item_'+id).innerHTML = 'Op dit moment wordt de voorraad van dit product gecontrolleerd. <br /><img src="http://'+host+'/assets/icons/ajax-loader.gif" alt="Voorraad peilen..." />';
		}
	}
	ajax.send(null);
}

function addBandToCart(host, id, aantal){
	ajax.open("GET", "http://"+host+"/webshop/ajax_responder.php?act=addBand&id="+id+"&aantal="+aantal,true);
	
	
	ajax.onreadystatechange=function(){
		if(ajax.readyState==4){
		
		
		// $('#item_'+id).effect("transfer", { to: $("#webshop") }, 1000, function(){
			
			// $('#webshop').animate({
				
			// }, 1000);
		
			// document.getElementById("webshop_content").innerHTML = ajax.responseText;
			// document.getElementById('item_'+id).innerHTML = oldInnerHTML;
			getQuantity(host, id);
		// });
			window.location = 'http://'+host+'/shopping_cart/';
		}
	}
	ajax.send(null);
}
function getQuantity(host, id){
	ajax.open("GET", "http://"+host+"/webshop/ajax_responder.php?act=getQuantity&id="+id,true);
	
	ajax.onreadystatechange=function(){
		if(ajax.readyState==4){
			document.getElementById('aantal_'+id).innerHTML = 'Er bevinden zich <b>'+ajax.responseText+'</b> artikelen van dit product in uw winkelwagen.';
		}
	}
	ajax.send(null);
}

// SHOPPING CART FUNCTIONS 
function deleteFromCart(host, id){ 
	ajax.open("GET", "http://"+host+"/webshop/ajax_responder.php?act=del&id="+id,true);
	ajax.onreadystatechange=function(){
		if(ajax.readyState==4){
			document.getElementById("shopping_cart").innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);
}

function updateQuantity(host, id, field){
	if(field.value == '' || field.value == 0)
	{
		field.value = 1;
	}
	
	quantity = field.value;
	ajax.open("GET", "http://"+host+"/webshop/ajax_responder.php?act=updateQuantity&id="+id+"&quantity="+quantity,true);
	ajax.onreadystatechange=function(){
		if(ajax.readyState==4){
			document.getElementById("shopping_cart").innerHTML = ajax.responseText;
			document.getElementById(field.id).focus();
		}
	}
	ajax.send(null);
}

// GENERAL FUNCTIONS
function ajaxRequest(){ var date = new Date().getTime(); // IE CATCH ontlopen 
	var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
	if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
		for (var i=0; i<activexmodes.length; i++){
			try{
				return new ActiveXObject(activexmodes[i]);
			}
			catch(e){
			//suppress error
			}
		}
	}
	else if (window.XMLHttpRequest){ // if Mozilla, Safari etc
		return new XMLHttpRequest();
	}
	else{
		return false;
	}
}




