/*
 * Dit zijn de aanvraag-specifieke javascript functies
 *
 * Functies
 * - xmlHttpRequestObject(): creeert het xmlHttp object
 * - insertAanvraag(aanvraag_type, product_code): roept aanvraag_toevoegen via Ajax aan.
 * - updateOverzicht(): roept aanvraag_overzicht via Ajax aan en ververst de tabel in het rechter zijmenu
 * - addAanvraag(aanvraag_type, product_code): voert insertAanvraag en updateOverzicht uit in één functie om aan te roepen bij elke monster-aanvraag link.
 */

var xmlHttp = createXmlHttpRequestObject();

/*
  * Creates an XMLHttpRequest instance
  * (deze functie komt letterlijk uit het boek: Ajax and Php)
  */
function createXmlHttpRequestObject () {
	// will store the reference to the XMLHttpRequest object
	var xmlHttp;
	
	// this should work for all browsers except IE and older
	try {
		// try to create XMLHttpRequest object
		xmlHttp = new XMLHttpRequest();
	} catch (e) {
		// assume IE6 or older
		var xmlHttpVersions = new Array (	"MSXML2.XMLHTTP.6.0",
																			"MSXML2.XMLHTTP.5.0",
																			"MSXML2.XMLHTTP.4.0",
																			"MSXML2.XMLHTTP.3.0",
																			"MSXML2.XMLHTTP",
																			"Microsoft.XMLHTTP");
		//try every prog id until one works
		for (var i=0; i<xmlHttpVersions.length && !xmlHttp; i++) {
			try {
				// try to create XMLHttpRequest object
				xmlHttp = new ActiveXObject(xmlHttpVersions[i]);
			} catch (e) {}
		}
	}
	
	if (!xmlHttp)
		alert ('Error creating the XMLHttpRequest object.');
	else
		return xmlHttp;
}

/*
  * voer een nieuwe aanvraag in via 'custom/aanvraag_toevoegen.php'
  * @param aanvraag_type: het type aanvraag
  * @param product_code: de deco_visie code voor het product
  */
function insertAanvraag(aanvraag_type, product_code) {
	var url = BASE_URL+"deco_custom/aanvraag_toevoegen.php?aanvraag_type="+aanvraag_type+"&product_code="+product_code;
	execute_script(url);
	// geen response is een goede respons
}

function updateOverzicht() {
	var url = BASE_URL+"deco_custom/aanvraag_overzicht.php";
	execute_script(url);
	
	// haal het xml response main object
	xmlResponse = xmlHttp.responseXML.documentElement;

	// haal alle data op in arrays
	totalsArray					= xmlResponse.getElementsByTagName("totals");
	leverancierArray		= xmlResponse.getElementsByTagName("leverancier");

	if (leverancierArray.length == 0) return false;	
	
	// creeer de tabel die de informatie laat zien
	var table = "<table cellpadding='3'>";
	for (var i=0; i<leverancierArray.length; i++) {
		table += "<tr>";
		table += "<td>"+leverancierArray.item(i).firstChild.data.toString()+"</td>";
		table += "<td>"+totalsArray.item(i).firstChild.data.toString()+"</td>";
		table += "</tr>\n";
	}
	table += "</table>";
	
	// geef alles weer in de div
	document.getElementById("aanvragen").innerHTML = "<b><a href='"+BASE_URL+"aanvragen/lijst'>Aanvragen:</a></b> <br>\n" + table;
}

function execute_script (url) {
	try {
		xmlHttp.open("GET", url, false);
		xmlHttp.send(null);
	} catch (e) {
		alert ('Er is een fout opgetreden in het ophalen van de aanvragen\n Error:'+e);
	}
	
	var response = xmlHttp.responseText;
	
	if (response.indexOf("ERRNO") >= 0
			|| response.indexOf("error") >= 0) {
		alert(response);
	}
}

function addAanvraag(aanvraag_type, product_code) {
	insertAanvraag(aanvraag_type, product_code);
	updateOverzicht();
	document.getElementById('aanvragen_respons').innerHTML = '<b>De aanvraag is toegevoegt</b>';
}

function textDecoration(oA, style) {
	oA.style.textDecoration = style;
}

function are_you_sure (aanvraag_id) {
	var vraag = confirm("Weet u zeker dat u deze aanvraag wilt verwijderen?");
	if (vraag) {
		var url = BASE_URL+"deco_custom/aanvraag_verwijder.php?aanvraag_id="+aanvraag_id;
		execute_script(url);
		updateOverzicht();
	}
}