<?php include('navbar.php'); 
date_default_timezone_set('Europe/London');?>
<script type="text/javaScript">
var xmlHttpReq = false;
var xmlHttpReq2 = false;
var xmlHttpReq3 = false;
var xmlHttpReq4 = false;
//AJAX Related functions for CSY2028 Assignment 2
function appendRecord (ID, CARNAME, FUELTYPE, TRANSMISSION, ENGINESIZE, DOORS, AVAILABLE, TOTAL, DATEADDED){	//Function for appending records in the database
	mytable = document.getElementById("DBTable");

	mycurrent_row = document.createElement("tr");
	mycurrent_row.setAttribute ("ID", "Row" + ID);
	
	mycurrent_cell = document.createElement ("td");
	currenttext = document.createTextNode (ID);
	mycurrent_cell.appendChild (currenttext);
	mycurrent_row.appendChild (mycurrent_cell);
	
	mycurrent_cell = document.createElement ("td");
	currenttext = document.createTextNode (CARNAME);
	mycurrent_cell.appendChild (currenttext);
	mycurrent_row.appendChild (mycurrent_cell);
	
	mycurrent_cell = document.createElement ("td");
	currenttext = document.createTextNode (FUELTYPE);
	mycurrent_cell.appendChild (currenttext);
	mycurrent_row.appendChild (mycurrent_cell);
	
	mycurrent_cell = document.createElement ("td");
	currenttext = document.createTextNode (TRANSMISSION);
	mycurrent_cell.appendChild (currenttext);
	mycurrent_row.appendChild (mycurrent_cell);
	
	mycurrent_cell = document.createElement ("td");
	currenttext = document.createTextNode (ENGINESIZE);
	mycurrent_cell.appendChild (currenttext);
	mycurrent_row.appendChild (mycurrent_cell);
	
	mycurrent_cell = document.createElement ("td");
	currenttext = document.createTextNode (DOORS);
	mycurrent_cell.appendChild (currenttext);
	mycurrent_row.appendChild (mycurrent_cell);
	
	mycurrent_cell = document.createElement ("td");
	currenttext = document.createTextNode (AVAILABLE);
	mycurrent_cell.appendChild (currenttext);
	mycurrent_row.appendChild (mycurrent_cell);
	
	mycurrent_cell = document.createElement ("td");
	currenttext = document.createTextNode (TOTAL);
	mycurrent_cell.appendChild (currenttext);
	mycurrent_row.appendChild (mycurrent_cell);
	
	mycurrent_cell = document.createElement ("td");
	currenttext = document.createTextNode (DATEADDED);
	mycurrent_cell.appendChild (currenttext);
	mycurrent_row.appendChild (mycurrent_cell);
	
	mytable.appendChild (mycurrent_row);
}
function loadDatabaseRecordCallback(){
	if(xmlHttpReq.readyState == 4){
		alert("From Server (Load Records): \n" + xmlHttpReq.responseText);
		var record = xmlHttpReq.responseXML.getElementsByTagName('record');
		for (var i = 0; i < record.length; i++){
			var rec = record[i];
			alert (rec.getElementsByTagName("DATEADDED")[0].firstChild.data);
			
			var ID = rec.getElementsByTagName("ID")[0].firstChild.data;
			var CARNAME = rec.getElementsByTagName("CARNAME")[0].firstChild.data;
			var FUELTYPE = rec.getElementsByTagName("FUELTYPE")[0].firstChild.data;
			var TRANSMISSION = rec.getElementsByTagName("TRANSMISSION")[0].firstChild.data;
			var ENGINESIZE = rec.getElementsByTagName("ENGINESIZE")[0].firstChild.data;
			var DOORS = rec.getElementsByTagName("DOORS")[0].firstChild.data;
			var AVAILABLE = rec.getElementsByTagName("AVAILABLE")[0].firstChild.data;
			var TOTAL = rec.getElementsByTagName("TOTAL")[0].firstChild.data;
			var DATEADDED = rec.getElementsByTagName("DATEADDED")[0].firstChild.data;
			appendRecord(ID, CARNAME, FUELTYPE, TRANSMISSION, ENGINESIZE, DOORS, AVAILABLE, TOTAL, DATEADDED);
		}
	}
}
function loadDatabaseRecord(){
	if(window.XMLHttpRequest){
		xmlHttpReq = new XMLHttpRequest();
	}
	else if(window.ActiveXObject){
		xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
    alert ("To Server (Load Records):\n\najax-open-DB(3).php");

	xmlHttpReq.open('GET', "ajax-open-DB(3).php", true);
	xmlHttpReq.onreadystatechange = loadDatabaseRecordCallback; 
	xmlHttpReq.send(null);
}
function addNewRecordCallback(){
	if(xmlHttpReq2.readyState == 4){
		alert ("From Server (Add New Records):\n" + xmlHttpReq2.responseText);
		if (xmlHttpReq2.status == 200){
			var record = xmlHttpReq2.responseXML.getElementsByTagName('record');
			var s ="";
			for (var i = 0; i < record.length; i ++){
				var rec = record[i];
				
				var ID = rec.getElementsByTagName("ID")[0].firstChild.data;
				var CARNAME = rec.getElementsByTagName("CARNAME")[0].firstChild.data;
				var FUELTYPE = rec.getElementsByTagName("FUELTYPE")[0].firstChild.data;
				var TRANSMISSION = rec.getElementsByTagName("TRANSMISSION")[0].firstChild.data;
				var ENGINESIZE = rec.getElementsByTagName("ENGINESIZE")[0].firstChild.data;
				var DOORS = rec.getElementsByTagName("DOORS")[0].firstChild.data;
				var AVAILABLE = rec.getElementsByTagName("AVAILABLE")[0].firstChild.data;
				var TOTAL = rec.getElementsByTagName("TOTAL")[0].firstChild.data;
				var DATEADDED = rec.getElementsByTagName("DATEADDED")[0].firstChild.data;
				appendRecord (ID, CARNAME, FUELTYPE, TRANSMISSION, ENGINESIZE, DOORS, AVAILABLE, TOTAL, DATEADDED);
			}
		}
	}
}
function addNewRecord(ID){	//Function for adding a new record to the database
	if (document.myform.CARNAME.value == "" || document.myform.FUELTYPE.value == "" || document.myform.TRANSMISSION.value == "" || document.myform.ENGINESIZE.value == "" || document.myform.DOORS.value == "" || document.myform.AVAILABLE.value == "" || document.myform.TOTAL.value == "" ||  document.myform.DATEADDED.value == ""){
		alert ("Empty field(s) - Cannot create record");
		return;
	}
	var mydata = null;
	if (window.XMLHttpRequest){
		xmlHttpReq2 = new XMLHttpRequest ();
	}
	else if (window.ActiveXObject){
		xmlHttpReq2 = new ActiveXObject ("Microsoft.XMLHTTP");
	}
	mydata = '?CARNAME=' + document.myform.CARNAME.value +
			'&FUELTYPE=' + document.myform.FUELTYPE.value +
			'&TRANSMISSION=' + document.myform.TRANSMISSION.value +
			'&ENGINESIZE=' + document.myform.ENGINESIZE.value +
			'&DOORS=' + document.myform.DOORS.value +
			'&AVAILABLE=' + document.myform.AVAILABLE.value +
			'&TOTAL=' + document.myform.TOTAL.value +
			'&DATEADDED=' + document.myform.DATEADDED.value;

		alert ("To Server (Add New Record):\n\najax-insert-into-DB(4).php" + mydata);

		xmlHttpReq2.open ('GET', "ajax-insert-into-DB(4).php" + mydata, true);
		xmlHttpReq2.onreadystatechange = addNewRecordCallback;
		xmlHttpReq2.send(null);
}
function deleteRecordCallback(){
	if(xmlHttpReq3.readyState == 4){
		alert ("From Server (Delete Record): " + xmlHttpReq3.responseText);
		
		mytable = document.getElementById ("DBTable");
		myrow = document.getElementById ("Row" + ID);
		mytable.removeChild (myrow);
	}
}
function deleteRecord(ID){	//Function for deleting a record from the database
	if(window.XMLHttpRequest){
		xmlHttpReq3 = new XMLHttpRequest();
	}
	else if(window.ActiveXObject){
		xmlHttpReq3 = new ActiveXObject("Microsoft.XMLHTTP");
	}
	mydata = '?ID=' + document.myform.ID.value; 

	alert ("To Server (Delete Record):\n\najax-delete-from-DB(3).php" + mydata);

	xmlHttpReq3.open ('GET', "ajax-delete-from-DB(3).php" + mydata, true);
	xmlHttpReq3.onreadystatechange = deleteRecordCallback;
	xmlHttpReq3.send(null);
	
	
}
function updateRecordCallback(){
	if (xmlHttpReq4.readyState == 4){
		alert ("From Server (Update Record):\n" + xmlHttpReq4.responseText);
		if (xmlHttpReq4.status == 200){
			var record = xmlHttpReq4.responseXML.getElementsByTagName('record');
			var s = "";
			for (var i = 0; i < record.length; i ++){
				var rec = record[i];
					
				var ID = rec.getElementsByTagName("ID")[0].firstChild.data;
				var CARNAME = rec.getElementsByTagName("CARNAME")[0].firstChild.data;
				var FUELTYPE = rec.getElementsByTagName("FUELTYPE")[0].firstChild.data;
				var TRANSMISSION = rec.getElementsByTagName("TRANSMISSION")[0].firstChild.data;
				var ENGINESIZE = rec.getElementsByTagName("ENGINESIZE")[0].firstChild.data;
				var DOORS = rec.getElementsByTagName("DOORS")[0].firstChild.data;
				var AVAILABLE = rec.getElementsByTagName("AVAILABLE")[0].firstChild.data;
				var TOTAL = rec.getElementsByTagName("TOTAL")[0].firstChild.data;
				var DATEADDED = rec.getElementsByTagName("DATEADDED")[0].firstChild.data;
				appendRecord (ID, CARNAME, FUELTYPE, TRANSMISSION, ENGINESIZE, DOORS, AVAILABLE, TOTAL, DATEADDED);
			}
		}
	}
}
function updateRecord(){	//Function for updating a record in the database
	var ID = document.myform.ID.value;
	var CARNAME = document.myform.CARNAME.value;
	var FUELTYPE = document.myform.FUELTYPE.value;
	var TRANSMISSION = document.myform.TRANSMISSION.value;
	var ENGINESIZE = document.myform.ENGINESIZE.value;
	var DOORS = document.myform.DOORS.value;
	var AVAILABLE = document.myform.AVAILABLE.value;
	var TOTAL = document.myform.TOTAL.value;
	var DATEADDED = document.myform.DATEADDED.value;

	var mydata = null;
	if (window.XMLHttpRequest){
		xmlHttpReq4 = new XMLHttpRequest ();
	}
	else if (window.ActiveXObject){
		xmlHttpReq4 = new ActiveXObject ("Microsoft.XMLHTTP");
	}
	mydata = '?ID=' + document.myform.ID.value +
			'&CARNAME=' + document.myform.CARNAME.value +
			'&FUELTYPE=' + document.myform.FUELTYPE.value +
			'&TRANSMISSION=' + document.myform.TRANSMISSION.value +
			'&ENGINESIZE=' + document.myform.ENGINESIZE.value +
			'&DOORS=' + document.myform.DOORS.value +
			'&AVAILABLE=' + document.myform.AVAILABLE.value +
			'&TOTAL=' + document.myform.TOTAL.value +
			'&DATEADDED=' + document.myform.DATEADDED.value;
			
	alert ("To Server (Update Record):\n\ajax-update-DB(3).php" + mydata);

	xmlHttpReq4.open ('GET', "ajax-update-DB(3).php" + mydata, true);
	xmlHttpReq4.onreadystatechange = updateRecordCallback;
	xmlHttpReq4.send(null);

	myrow = document.getElementById ("Row" + ID);
	mytable.removeChild (myrow);
}
</script>
<div id="TableContain">
	<div>
		<h1>XYZ Car Rental Database Mangagement</h1>
	</div>
		<button value="Add"  onClick="addNewRecord()">Add</button>&nbsp;&nbsp;
		<button value="Del"  onClick="deleteRecord()">Delete</button>&nbsp;&nbsp;
		<button value="Mod"  onClick="updateRecord()">Modify</button>&nbsp;&nbsp;
		<button value="Load" onClick="loadDatabaseRecord()">Display Table</button>&nbsp;&nbsp;
		<br />
		<label>If you are adding a vehicle to the database leave the ID field blank.</label>
	<table id="DBTable">
		<tr>
			<th>Car ID</th>
			<th>Car Name</th>
			<th>Fuel Type</th>
			<th>Transmission</th>
			<th>Engine Size</th>
			<th>Door Number</th>
			<th>Available</th>
			<th>Total</th>
			<th>Date Added</th>
		</tr>
		<form name="myform" action="">
			<tr>
				<td><input type="text"  id="ID" name="ID" size="2"></td>
				<td><input type="text"  id="CARNAME" name="CARNAME" maxlength="10" size="10"></td>
				<td><input type="text"  id="FUELTYPE" name="FUELTYPE" maxlength="10" size="10"></td>
				<td><input type="text"  id="TRANSMISSION" name="TRANSMISSION" maxlength="10" size="10"></td>
				<td><input type="text"  id="ENGINESIZE" name="ENGINESIZE" maxlength="3" size="5"></td>
				<td><input type="text"  id="DOORS" name="DOORS" maxlength="1" size="5"></td>
				<td><input type="text"  id="AVAILABLE" name="AVAILABLE" maxlength="4" size="5"></td>
				<td><input type="text"  id="TOTAL" name="TOTAL" maxlength="4" size="5"></td>
				<td><input type="text"  id="DATEADDED" name="DATEADDED" maxlength="6" size="7" value="<?php echo date('dmy'); ?>" disabled></td>
			</tr>
		</form>
	</table>
</div>
</body>
</html>