var XHR = {
	create : function()
	{
		var xmlHttp = null;
		if (window.XMLHttpRequest)
		{
			xmlHttp = new XMLHttpRequest();  
		}
		else if (window.ActiveXObject) 
		{
			try {
				xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
				xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}
		return xmlHttp;
	},
	getAsync : function(url,exec,id2, callback)
	{
		var xmlHttp = XHR.create();
		//url+=(url.indexOf("?")<0)? "?random="+(Math.floor(Math.random()*100000)):"&random="+(Math.floor(Math.random()*100000));
		/*alert(url);*/
		if(xmlHttp)
		{
			xmlHttp.open("GET", url, true);
			xmlHttp.onreadystatechange = function () {
				if (xmlHttp.readyState == 4) {
				    exec(xmlHttp.responseXML,id2);
				   if(callback) callback();
				}
	  		}
			xmlHttp.send(null);
		}
	},
	
	getSync : function(url)
	{
		var xmlHttp = XHR.create();
		url+=(url.indexOf("?")<0)? "?"+(Math.floor(Math.random()*100000)):"&"+(Math.floor(Math.random()*100000));
		if(xmlHttp)
		{
			xmlHttp.open("GET", url, true);
			xmlHttp.send(null);
			return xmlHttp.responseXML
		}
	}
}

var searchBox = {
	id:null,
	optionSelectedList:[], // {name:,value:}
	get : function(locatiecode,url,id,id2, callback)
	{
		var selectElm = document.getElementById(id);
		if(selectElm)
		{
			if(locatiecode.length)
			{
				selectElm.options.length=0;
				selectElm.options[selectElm.options.length] = new Option("Bezig met laden...","",false,false);
				selectElm.disabled=true;
				searchBox.id = id;
				url+='?locatie='+locatiecode;
				XHR.getAsync(url,searchBox.writeOptions,id2, callback);								
			}
			else
			{
				selectElm.options.length=0;
				selectElm.options[selectElm.options.length] = new Option("Geen voorkeur","",false,false);
			}		
		}
		
		// tweede element: dit kan mooier
		var selectElm = document.getElementById(id2);
		if(selectElm)
		{
			if(locatiecode.length)
			{
				selectElm.options.length=0;
				selectElm.options[selectElm.options.length] = new Option("Bezig met laden...","",false,false);
				selectElm.disabled=true;
				// niet nogmaals data ophalen.
				url+='?locatie='+locatiecode;
			}
			else
			{
				selectElm.options.length=0;
				selectElm.options[selectElm.options.length] = new Option("Geen voorkeur","",false,false);
			}		
		}
		return true;
	},
	writeOptions : function(xmlData,id2)
	{
		var selectElm = document.getElementById(searchBox.id);
		var fieldData = xmlData.getElementsByTagName("Field");
		var optionData = new Array();
		/*alert(searchBox.id)
		alert(fieldData.length)*/
				
		for (var j=0; j < fieldData.length; j++) 
		{
			if (fieldData[j].getAttribute("name") == searchBox.id) 
			{
				for(k=0; k < fieldData[j].childNodes.length; k++) 
				{
					if(fieldData[j].childNodes[k].tagName == 'Option') 
					{
						optionData.push(fieldData[j].childNodes[k]);
					}
					
				}
			}							  
		}
				
		var line = "---------------------------";
		
		selectElm.disabled=false;
		selectElm.options.length=0;
		selectElm.options[selectElm.options.length] = new Option("Geen voorkeur","",false,false);
		if(optionData.length)
		{
			selectElm.options[selectElm.options.length] = new Option(line,"",false,false);
			for(var i=0,optionElm;optionElm=optionData[i];i++)
			{
				if(optionElm.firstChild)
				{
					selectElm.options[selectElm.options.length] = new Option(optionElm.firstChild.nodeValue,optionElm.getAttribute("key"),false,false);
				}
				else if(optionElm.getAttribute("key")=="$LINE")
				{
					selectElm.options[selectElm.options.length] = new Option(line,"",false,false);
				}
			}	
		
		/*
		var selectElm = document.getElementById(searchBox.id);
		var optionData = xmlData.getElementsByTagName("Option");
		var line = "---------------------------";
		
		selectElm.disabled=false;
		selectElm.options.length=0;
		selectElm.options[selectElm.options.length] = new Option("Geen voorkeur","",false,false);
		if(optionData.length)
		{
			selectElm.options[selectElm.options.length] = new Option(line,"",false,false);
			for(var i=0,optionElm;optionElm=optionData[i];i++)
			{
				if(optionElm.firstChild)
				{
					selectElm.options[selectElm.options.length] = new Option(optionElm.firstChild.nodeValue,optionElm.getAttribute("key"),false,false);
				}
				else if(optionElm.getAttribute("key")=="$LINE")
				{
					selectElm.options[selectElm.options.length] = new Option(line,"",false,false);
				}
			}*/
			
		} 
		
		if (id2) {
		searchBox.id=id2
		var selectElm = document.getElementById(searchBox.id);
		var fieldData = xmlData.getElementsByTagName("Field");
		var optionData = new Array();
/*		alert(searchBox.id)
		alert(fieldData.length)*/
					
		for (var j=0; j < fieldData.length; j++) 
		{
			if (fieldData[j].getAttribute("name") == searchBox.id) 
			{
				for(k=0; k < fieldData[j].childNodes.length; k++) 
				{
					if(fieldData[j].childNodes[k].tagName == 'Option') 
					{
						optionData.push(fieldData[j].childNodes[k]);
					}
					
				}
			}							  
		}
				
		var line = "---------------------------";
		
		selectElm.disabled=false;
		selectElm.options.length=0;
		selectElm.options[selectElm.options.length] = new Option("Geen voorkeur","",false,false);
		if(optionData.length)
		{
			selectElm.options[selectElm.options.length] = new Option(line,"",false,false);
			for(var i=0,optionElm;optionElm=optionData[i];i++)
			{
				if(optionElm.firstChild)
				{
					selectElm.options[selectElm.options.length] = new Option(optionElm.firstChild.nodeValue,optionElm.getAttribute("key"),false,false);
				}
				else if(optionElm.getAttribute("key")=="$LINE")
				{
					selectElm.options[selectElm.options.length] = new Option(line,"",false,false);
				}
			}	
		
		/*
		var selectElm = document.getElementById(searchBox.id);
		var optionData = xmlData.getElementsByTagName("Option");
		var line = "---------------------------";
		
		selectElm.disabled=false;
		selectElm.options.length=0;
		selectElm.options[selectElm.options.length] = new Option("Geen voorkeur","",false,false);
		if(optionData.length)
		{
			selectElm.options[selectElm.options.length] = new Option(line,"",false,false);
			for(var i=0,optionElm;optionElm=optionData[i];i++)
			{
				if(optionElm.firstChild)
				{
					selectElm.options[selectElm.options.length] = new Option(optionElm.firstChild.nodeValue,optionElm.getAttribute("key"),false,false);
				}
				else if(optionElm.getAttribute("key")=="$LINE")
				{
					selectElm.options[selectElm.options.length] = new Option(line,"",false,false);
				}
			}*/
			
		} 
		
	}

		
		
	},
	showHide : function(sId,hId)
	{
		var hideElm = document.getElementById(hId);
		var showElm = document.getElementById(sId);
		if(hideElm) hideElm.style.display="none";
		if(showElm) showElm.style.display="block";
		initButtons(showElm.id);
		resetFooter();
		var pageselector = document.getElementById("pageselector");
		if( pageselector ) {
		    pageselector.style.display="none";
		    pageselector.style.display="block";
		}
		return false;
	},
	initOptionSelected :function()
	{
		var sB = searchBox;
		if(sB.optionSelectedList.length)
		{
			for(var i=0,optionSelected;optionSelected=sB.optionSelectedList[i];i++)
			{
				var selectElmList = document.getElementsByName(optionSelected.name);
				for(var j=0,selectElm;selectElm=selectElmList[j];j++)
				{
					var optionElmList = selectElm.getElementsByTagName("option");
					for(var k=0,optionElm;optionElm=optionElmList[k];k++)
					{
						if(optionElm.value==optionSelected.value) optionElm.selected = true;
					}
				}
			}
		}
	},
	when : function(selectElm)
	{
		
		if(selectElm.options[selectElm.selectedIndex].id=="dateperiod")
		{
			document.getElementById("searchDate").style.visibility="visible";
			resetFooter();
		}
		else
		{
			document.getElementById("searchDate").style.visibility="hidden";
			resetFooter();
		}
	}
}

addLoadEvent(searchBox.initOptionSelected);