
function getRequestObject() {

	var ajaxRequest = null;

	try{
		// Opera 8.0+, Firefox, Safari
		ajaxRequest = new XMLHttpRequest();
	} catch (e){
		// Internet Explorer Browsers
		try{
			ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try{
				ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e){
				// Something went wrong
				alert("Your browser broke!");
				return false;
			}
		}
	}
	
	return ajaxRequest;
}

function showProductData(id) {
	var ajaxRequest = getRequestObject();

	// Create ready state change function
	ajaxRequest.onreadystatechange = function() {
		if(ajaxRequest.readyState == 4) {
			document.getElementById('productDetailsDialogInner').innerHTML = ajaxRequest.responseText;
			document.getElementById('productDetailsDialog').style.display = 'block';
			document.getElementById('backgroundFade').style.display = 'block';
			document.getElementById('backgroundFade').style.display = 'block';
		}
	}

	ajaxRequest.open("GET", "ajaxfunctions/get_product_details.php?id=" + id, true);
	ajaxRequest.send(null);
}

function setFormElementFromXML(xmlElement, formElement) {
	if (xmlElement.firstChild)
		document.getElementById(formElement).value = xmlElement.firstChild.data;
}

function showOrderDetails(id) {
	var ajaxRequest = getRequestObject();
	ajaxRequest.open("GET", "ajaxfunctions/get_order_details.php?id=" + id, true);

	// Create ready state change function
	ajaxRequest.onreadystatechange = function() {
		if(ajaxRequest.readyState == 4) {
			var result = ajaxRequest.responseXML;

			var value = '';

			// Get order id
			result.getElementsByTagName('orderId')[0].firstChild ? value = result.getElementsByTagName('orderId')[0].firstChild.data : value = '';
			document.getElementById('orderOrderId').innerHTML = value;

			// Get order date
			result.getElementsByTagName('date')[0].firstChild ? value = result.getElementsByTagName('date')[0].firstChild.data : value = '';
			document.getElementById('orderDate').innerHTML = value.substring(8, 10) + "/" + value.substring(5, 7) + "-" + value.substring(0, 4);

			// Get delivery date
			result.getElementsByTagName('deliveryDate')[0].firstChild ? value = result.getElementsByTagName('deliveryDate')[0].firstChild.data : value = '';
			document.getElementById('orderDeliveryDate').innerHTML = value.substring(8, 10) + "/" + value.substring(5, 7) + "-" + value.substring(0, 4) + " Kl:" + value.substring(11, 16);

			// Get status
			result.getElementsByTagName('status')[0].firstChild ? value = result.getElementsByTagName('status')[0].firstChild.data : value = '';
			document.getElementById('orderStatus').innerHTML = value;

			// Get points used
			result.getElementsByTagName('pointsUsed')[0].firstChild ? value = result.getElementsByTagName('pointsUsed')[0].firstChild.data : value = '';
			var pointsUsed = parseInt(value);
			document.getElementById('orderPointsUsed').innerHTML = value;

			// Get points earned
			result.getElementsByTagName('pointsEarned')[0].firstChild ? value = result.getElementsByTagName('pointsEarned')[0].firstChild.data : value = '';
			document.getElementById('orderPointsEarned').innerHTML = value;

			// Get totalprice
			result.getElementsByTagName('price')[0].firstChild ? value = result.getElementsByTagName('price')[0].firstChild.data : value = '';
			var totalPrice = parseInt(value) - (pointsUsed / 10);
			document.getElementById('orderTotalPrice').innerHTML = 'kr. ' + totalPrice + ',00';

			// Get allergies
			result.getElementsByTagName('allergies')[0].firstChild ? value = result.getElementsByTagName('allergies')[0].firstChild.data : value = '';
			document.getElementById('orderAllergies').value = value;

			// Get comments
			result.getElementsByTagName('comments')[0].firstChild ? value = result.getElementsByTagName('comments')[0].firstChild.data : value = '';
			document.getElementById('orderComments').value = value;

			// Get items
			var productIDs = new Array();
			var productNames = new Array();
			var productAmounts = new Array();
			var items = result.getElementsByTagName('item');

			for (var i=0; i < items.length; i++) {
				productIDs[i] = items.item(i).getAttribute("id");
				productNames[i] = items.item(i).getAttribute("name");
				productAmounts[i] = items.item(i).getAttribute("amount");
			}

			// Delete all rows in producttable before inserting
			var table = document.getElementById('orderDetailTable');
			while (table.rows.length > 1)
				table.deleteRow(1);

			// Insert all products in order 
			for (var i=0; i < productNames.length; i++) {
				var id = productIDs[i];

				var x = document.getElementById('orderDetailTable').insertRow(1);
				x.style.height = "20px";
				var c1 = x.insertCell(0);
				var c2 = x.insertCell(1);
				var c3 = x.insertCell(2);
				c2.style.textAlign = 'center';
				c3.style.textAlign = 'center';
				c1.innerHTML = productNames[i];
				c2.innerHTML = productAmounts[i];
				c3.innerHTML = '<a href="javascript:showProductData(' + id + ');"><img src="site/images/gui/magnifier.png" border="0" title="Se produktdetaljer"/></a>';
			}

			document.getElementById('orderDetailViewEmpty').style.display = 'none';
			document.getElementById('orderDetailViewMain').style.display = 'block';
		}
	}

	ajaxRequest.send(null);
}

