var xmlDoc;
var http = createRequestObject();
var response = "";
var id;
var aLocIdToCode = new Array();

function locationIdToCode(id) {
	return(aLocIdToCode[id]);
}

function createRequestObject() {
	var ro;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer"){
		ro = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		ro = new XMLHttpRequest();
	}
	return ro;
}
	
function sndReq(action) 
{
	http.open('get', '/ajax/?action='+action);
	http.onreadystatechange = handleResponse;
	http.send(null);
}

function sndReqArg(action,sub) 
{
	if (action == 'locaties')
	{
		http.open('get', '/ajax/locaties.php?landID='+sub);		
	}
	else if (action == 'locatiesmetcodes')
	{
		http.open('get', '/ajax/locaties.php?landID='+sub+'&code=1');
	}
	else if (action == 'autotypes')
	{
		http.open('get', '/ajax/autotypes.php?landID='+sub);		
	}
	else
	{
		http.open('get', 'ajax/rpc.php?action='+action+'&sub='+sub);
	}
	http.onreadystatechange = handleResponse;
	http.send(null);
}	


function searchSuggest() 
{
	if (http.readyState == 4 || http.readyState == 0) {
		var str = escape(document.getElementById('txtSearch').value);
		http.open("GET", '/ajax/searchMember.php?string=' + str, true);
		http.onreadystatechange = handleSearchSuggest; 
		http.send(null);
	}		
}

function handleSearchSuggest() {
	if (http.readyState == 4) {
		var ss = document.getElementById('search_suggest')
		ss.innerHTML = '';
		var str = http.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			var suggest = '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
			suggest += 'class="suggest_link">' + str[i] + '</div>';
			ss.innerHTML += suggest;
		}
	}
}

function getInkoopprijs(landID, autotypeID, begindatum, einddatum, contractID, elementID) 
{
	id = elementID;	

	if (http.readyState == 4 || http.readyState == 0) {
		http.open("GET", '/ajax/getInkoopprijs.php?autotypeID='+autotypeID+'&landID='+landID+'&begindatum='+begindatum+'&einddatum='+einddatum+'&contractID='+contractID, true);
		http.onreadystatechange = returnResponse; 
		http.send(null);
	}		
}

function getVerhuurprijs(landID, autotypeID, begindatum, einddatum, contractID, elementID) 
{
}


function returnResponse() {
	var retval = "";
	if (http.readyState == 4) 
	{
		response = http.responseText;
		parseXML();
		alert(xmlDoc.childNodes.length);
		alert(xmlDoc.childNodes[1].childNodes[0].childNodes[0].nodeValue);
		
	}
}


function handleResponse() 
{
	if(http.readyState == 4)
	{
		response = http.responseText;
      parseXML();
	}
}

function parseXML()
{
	// code for IE
	if (window.ActiveXObject)
	{
		var doc=new ActiveXObject("Microsoft.XMLDOM");
		doc.async="false";
		doc.loadXML(response);
	}
	// code for Mozilla, Firefox, Opera, etc.
	else
	{
		var parser=new DOMParser();
		var doc=parser.parseFromString(response,"text/xml");
	}
	xmlDoc = doc.documentElement;
	//alert(xmlDoc.childNodes[0].childNodes[0].childNodes[0].nodeValue);
}

// HIERONDER GAAN WE SPECIFIEKE FUNCTIES MAKEN OM SPECIFIEKE AJAX REQUESTS TE PARSEN

function parseLocaties(ID, selected)
{
//   sndReqArg('locaties', landID);
   
	var name;
	var value;
	
   clearSelect(ID);

	for (var i = 0; i < xmlDoc.childNodes.length; i++)
	{
		name = xmlDoc.childNodes[i].childNodes[0].childNodes[0].nodeValue;
		value = xmlDoc.childNodes[i].childNodes[1].childNodes[0].nodeValue;

		if (value == selected)
		{
			addOptionSelect(ID, name, value, true);
		}
		else
		{
			addOptionSelect(ID, name, value, false);
		}
	}
}

function parseAutotypes(ID, selected)
{
	var name;
	var value;

	clearSelect(ID);	

	for (var i = 0; i < xmlDoc.childNodes.length; i++)
	{
		name = xmlDoc.childNodes[i].childNodes[0].childNodes[0].nodeValue;
		value = xmlDoc.childNodes[i].childNodes[1].childNodes[0].nodeValue;

		if (value == selected)
		{
			addOptionSelect(ID, name, value, true);
		}
		else
		{
			addOptionSelect(ID, name, value, false);
		}
	}
}


// HIERONDER DE FUNCTIES HTML ELEMENTEN TE BEWERKEN 

function clearSelect(ID)
{
	var oSelect = document.getElementById(ID);
	oSelect.options.length  = 0;
}

function addOptionSelect(ID, name, value, selected)
{
	var select = document.getElementById(ID);
	select.options[select.options.length] =  new Option(name, value, false, selected);
}

function jsonAutotypes(ID, selected, landID, bestemmingID, addBlank)
{	
	dojo.xhrGet({
		url: "/ajax/autotypes.php?landID="+landID+"&selected="+selected+"&ID="+ID+"&bestemmingID="+bestemmingID,

		load: function(responseObject, ioArgs)
		{
			var ID = responseObject.ID;
			clearSelect(ID);
			
			if (addBlank == true) {
				addOptionSelect(responseObject.ID, '--', 0, false);
			}
			
			for(var i = 0; i < responseObject.autotypes.length; i++)
			{
				if (responseObject.autotypes[i].selected == "ja")
				{
					addOptionSelect(responseObject.ID, responseObject.autotypes[i].name, responseObject.autotypes[i].ID, true);
				}
				else
				{
					addOptionSelect(responseObject.ID, responseObject.autotypes[i].name, responseObject.autotypes[i].ID, false);
				}
			}
			return responseObject;
		},
		error: function(response, ioArgs){
			//alert("An error occurred, with response: " + response);
			return response;
		},
		handleAs: "json"
	});
}

function jsonLocaties(ID, selected, landID, locatiecode)
{	
	dojo.xhrGet({
		url: "/ajax/locaties.php?landID="+landID+"&selected="+selected+"&ID="+ID+"&code="+locatiecode,

		load: function(responseObject, ioArgs)
		{
			var ID = responseObject.ID;
			clearSelect(ID);
			
			for(var i = 0; i < responseObject.locaties.length; i++)
			{
				aLocIdToCode[responseObject.locaties[i].ID] = responseObject.locaties[i].code;
				if (responseObject.locaties[i].selected == "ja")
				{
					addOptionSelect(responseObject.ID, responseObject.locaties[i].name, responseObject.locaties[i].ID, true);
				}
				else
				{
					addOptionSelect(responseObject.ID, responseObject.locaties[i].name, responseObject.locaties[i].ID, false);
				}
			}
			return responseObject;
		},
		error: function(response, ioArgs){
			//alert("An error occurred, with response: " + response);
			return response;
		},
		handleAs: "json"
	});
}

function jsonSeasons(targetEltId, countryId, selectedSeasonId, addBlank)
{	
	dojo.xhrGet({
		url: "/ajax/seasons.php?targetEltId="+targetEltId+"&countryId="+countryId+"&selectedSeasonId="+selectedSeasonId,

		load: function(responseObject, ioArgs) {
			var targetEltId = responseObject.targetEltId;
			clearSelect(targetEltId);
			if (addBlank == true) {
				addOptionSelect(targetEltId, '--', 0, false);
			}
			
			for(var i = 0; i < responseObject.seasons.length; i++) {
				season = responseObject.seasons[i];
				addOptionSelect(targetEltId, season.name, season.id, (season.selected != "0"));
			}
			return responseObject;
		},
		error: function(response, ioArgs) {
			//alert("An error occurred, with response: " + response);
			return response;
		},
		handleAs: "json"
	});
}
