function createXMLHttpRequest() {
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
}
    
function createQueryString() {
    return queryString;
}

function doRequestUsingGET(query,responseMethod,responseparm) {
	window.setTimeout("loading ('loadingdiv','up')", 500); 	window.setTimeout("loading ('loadingdiv','up')", 200); 	
		
 	this.responseMethod = responseMethod;
	this.responseparm = responseparm;

  createXMLHttpRequest();
  var query = "xml.php?"+query; 
  xmlHttp.onreadystatechange = handleStateChange;
  xmlHttp.open("GET", query, true);
  xmlHttp.send(null);
}

function doRequestUsingPOST(query,responseMethod,responseparm) {
	window.setTimeout("loading ('loadingdiv','up')", 500); 	window.setTimeout("loading ('loadingdiv','up')", 200); 	
 	this.responseMethod = responseMethod;
	this.responseparm = responseparm;

  createXMLHttpRequest();
  
  var url = "xml.php";
	//alert(query);
  
  xmlHttp.open("POST", url, true);
  xmlHttp.onreadystatechange = handleStateChange;
  xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");    
  xmlHttp.send(query);
}
    
function handleStateChange() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
            parseResults();
        }
    }
}

function parseResults() {
reloaded();
 switch(this.responseMethod){
 	case 'div' :
 		var writediv = document.getElementById(this.responseparm); 
 		writediv.innerHTML = xmlHttp.responseText;
 		//evaluate scripts in present in response 		
		var scripts = writediv.getElementsByTagName("script");
	
		if (scripts.length != 0)	{
			for (var i=0; scripts[i]; i++){
			eval(scripts[i].innerHTML);
			}
 		}
 		
 	break; 
	case 'get':
		doRequestUsingGET(responseparm[0],responseparm[1],responseparm[2]);
	break;
	
	//todo: implement conditional response handling based on servers response
	
	case 'alert	':
		alert(xmlHttp.responseText);
	break;
 	default:
 		alert(xmlHttp.responseText);
	}
		
}

function setSubstrate(responseMethod,divID){

	var colors = document.getElementById('colors');
	var model = document.getElementById('model');
	var sizes =document.getElementById('sizes');
	
	if (typeof model.selectedIndex != 'undefined'){
		substratetype = model.options[model.selectedIndex].value;
	}else {
		substratetype = model.value;
	}
	if(typeof colors.selectedIndex != 'undefined'){
	colorID = colors.options[colors.selectedIndex].value;
	} else{
		colorID = colors.value;
	}

	size = sizes.options[sizes.selectedIndex].value;

	var url='object=products&function=addSubstrate&args='+substratetype+','+colorID+(size!='0' ? ','+size :'');
	//alert(url);
	var nextquery = Array('object=products&function=productbit',responseMethod,divID);
	doRequestUsingGET(url,'get', nextquery);
}

function setSize(sizeid) {
	var nextquery = Array('object=products&function=productbit','div','product');
	doRequestUsingGET('object=products&function=setSize&args='+sizeid,'get', nextquery);
}

function addItemtoCart(productid,amount) {
	clearheadline();
	clearheadercart();
	var nextquery = Array('object=cart&function=carthtml&args=body','div','product');
	doRequestUsingGET('object=cart&function=addItem&args='+productid+','+amount,'get',nextquery);
}

function clearheadercart(){
	var headercart = document.getElementById('headercart');
		if (headercart) document.getElementById('headercart').innerHTML ='';
}

function showCart(divid) {
	clearheadercart();
	clearheadline();
	doRequestUsingGET('object=cart&function=carthtml&args=body','div',divid);
}

function changeProductAmount(productid,amount){// alert(productid);

	var nextquery = Array('object=cart&function=carthtml&args=body','div','subcontainer');
	doRequestUsingGET('object=cart&function=changeamount&args='+productid+','+amount,'get',nextquery);
}

function orderInfoToSession() {
	//check email
	if (trim(document.getElementById('email').value) !== trim(document.getElementById('email2').value)) {
		alert("De ingevulde emailadressen zijn niet hetzelde. \nVul ze aub nogmaals in"); 
		return false;
	}
	var userform = document.getElementById('userform');
	var formvalues='';
	for (var x=0; userform.elements[x]; x++){
		var infofield = userform.elements[x];
		if (infofield.type == 'text') {
			if (infofield.alt=='required' && (trim(infofield.value)=='')){
				alert (''+ infofield.name +' is niet ingevuld');
			userform.elements[x].focus();
			return false;	
			}
			formvalues += infofield.name+'='+infofield.value +',';	
		} else if (infofield.type =='radio'){
			if (infofield.checked ===	true){ 
				formvalues += infofield.name+'='+infofield.value +',';		
			var betaalmethode = true; 
			}
		}
	}
	if (betaalmethode != true){alert ('kies een betaalmethode'); return false;}
	nextquery = Array('object=order&function=orderformhtml&args=bevestig','div','subcontainer');
	doRequestUsingPOST('object=order&function=orderinfogather&args='+formvalues,'get',nextquery);
	clearheadercart();
}

function radioSelect(rowelement,radioid){
	var table = rowelement.parentNode; 
	if(table.hasChildNodes()){
		var children = table.childNodes;
		for (var i = 0; i < children.length; i++){
		if (typeof(children[i].rowIndex) != 'undefined')
			children[i].style.background='';
		}
	}
	rowelement.style.background='#666666';
	document.getElementById(radioid).checked=true;
}

function clearheadline(){
var headline = document.getElementById('headline');
	if (headline != null)	{
		headline.innerHTML = '';
	}
}

function trim(value) {
  value = value.replace(/^\s+/,'');
  value = value.replace(/\s+$/,'');
  return value;
}

function deleteItemfromCart(productid) {
	if (confirm('Weet u zeker dat u dit artikel wilt verwijderen?')){
		var nextquery = Array('object=cart&function=carthtml&args=body','div','subcontainer');
		doRequestUsingGET('object=cart&function=deleteItem&args='+productid,'get',nextquery);
	}
}

function directOrder(productid,amount) {//alert(productid); 
	clearheadercart();
	clearheadline();
	var nextquery = Array('object=cart&function=carthtml&args=body,direct','div','product');
	doRequestUsingGET('object=cart&function=addItem&args='+productid+','+amount,'get',nextquery);
}

function blink(elementid){ 
	colorarray = Array('#000000','#111111', '#222222','#333333','#444444','#555555','#666666','#777777', '#888888', '#999999', '#AAAAAA', '#BBBBBB', '#CCCCCC','#DDDDDD','#EEEEEE','#FFFFFF'); 
		i=0; 	
	setInterval ("changecolor('"+elementid+"')",100);

}

function changecolor(x) { 

	var x= document.getElementById(x);
	if (x != null){
		x.style.color = colorarray[i];
		if (i==14){ i= 0;
			colorarray = colorarray.reverse();
		}
	}
	i++;
}

function ordersave(){
		nextquery = Array ('object=order&function=saythankyou','div','subcontainer');
		doRequestUsingPOST('object=order&function=ordersave','get',nextquery);
}

function bgimage(){
	document.body.style.backgroundImage = 'url(/images/bgbg.gif)';
}

function sifrcall (){
	/* Replacement calls. Please see documentation for more information. */
	
	if(typeof sIFR == "function"){

			sIFR.replaceElement(named({sSelector:"body h4", sFlashSrc:"/css/vandenkeere.swf", sColor:"#FFFFFF", sLinkColor:"#FFFFFF", sBgColor:"#FFFFFF", sHoverColor:"#CCCCCC", nPaddingTop:0, nPaddingBottom:0, sFlashVars:"offsetTop=0",sWmode:"transparent"}));
			sIFR.replaceElement(named({sSelector:"body h1", sFlashSrc:"/css/vandenkeere.swf", sColor:"#FFFFFF", sLinkColor:"#FFFFFF", sBgColor:"#FFFFFF", sHoverColor:"#CCCCCC", nPaddingTop:0, nPaddingBottom:0, sFlashVars:"offsetTop=0",sWmode:"transparent"}));
			sIFR.replaceElement(named({sSelector:"body h2", sFlashSrc:"/css/vandenkeere.swf", sColor:"#FFFFFF", sLinkColor:"#FFFFFF", sBgColor:"#FFFFFF", sHoverColor:"#CCCCCC", nPaddingTop:0, nPaddingBottom:0, sFlashVars:"offsetTop=0",sWmode:"transparent"}));
//		sIFR.replaceElement("h4", "/css/vandenkeere.swf", "#660000", null, null, null, 0, 0, 0, 0);
	
	}
}

function reloaded(){

	window.setTimeout("loading ('loadingdiv','down')", 1000); 
}
	
function loading(divid,direction){
	var container = document.getElementById(divid);
		if (typeof container != 'undefined') {
			if (direction == 'up') {
			container.style.display = '';


			} else {
				container.style.display = 'none';
			}
		}
}
		
	
	

