var http = getHTTPObject(); // Create the HTTP Object
var requestObj = "reqAjaxSample.php?task=";

// page
function init()
{
	http.open("GET", requestObj + "init", true); 
	http.onreadystatechange = handleNextStep;
	http.send(null);
}

function nextStep ()
{
	http.open("GET", requestObj + "nextStep", true); 
	http.onreadystatechange = handleNextStep;
	http.send(null);
}

function prevStep ()
{
	http.open("GET", requestObj + "prevStep", true); 
	http.onreadystatechange = handleNextStep;
	http.send(null);
}

function handleNextStep ()
{
	if (http.readyState == 4) 
	{
		var elemData = http.responseText.split("|");
		var index = 0;
		while (elemData[index] != "endOfData")
		{
			var elem = document.getElementById (elemData[index]);
			index++;
			var cont = elemData[index];
			index++;
			elem.innerHTML = cont;
		}
	}
}

// dates
function fetchDates ()
{
	http.open("GET", requestObj + "fetchDates", true); 
	http.onreadystatechange = handleDisplayDates;
	http.send(null);
}

function newDate(date)
{
	http.open("GET", requestObj + "newDate&date=" + escape (date), true); 
	http.onreadystatechange = handleDisplayDates;
	http.send(null);
}

function deleteDate(date)
{
	http.open("GET", requestObj + "delDate&date=" + escape (date), true); 
	http.onreadystatechange = handleDisplayDates;
	http.send(null);
}

function handleDisplayDates ()
{
	if (http.readyState == 4) 
	{
		var displayDateList = "";
		if (displayDateList = http.responseText.length > 0)
			displayDateList = http.responseText.split("|");

		displayDates (displayDateList);
	}
}

function displayDates (displayDateList)
{
	var listStr = '';

	listStr = listStr + "<table>";
	for (i=0; i < displayDateList.length; i++)
	{
		var dateStr = displayDateList[i];
		listStr = listStr + "<tr><td>" + dateStr + "</td><td><input type='button' value='Delete' onclick='deleteDate(\"" + dateStr + "\");'/></td></tr>";
	}
	listStr = listStr + "</table>";

	document.getElementById("dateList").innerHTML = listStr;
}

// times
function fetchTimes ()
{
	http.open("GET", "requestTime.php?task=fetchTimes", true); 
	http.onreadystatechange = handleDisplayTimes;
	http.send(null);
}

function newTime()
{
	var hourStr = document.getElementById("hour").value;
	var timeStr = hourStr + ":" + document.getElementById("minute").value;

	http.open("GET", requestObj + "newTime&time=" + escape (timeStr), true); 
	http.onreadystatechange = handleDisplayTimes;
	http.send(null);
}

function deleteTime(time)
{
	http.open("GET", requestObj + "delTime&time=" + escape (time), true); 
	http.onreadystatechange = handleDisplayTimes;
	http.send(null);
}

function handleDisplayTimes ()
{
	if (http.readyState == 4) 
	{
		var displayTimeList = "";
		if (http.responseText.length > 0)
			displayTimeList = http.responseText.split("|");

		displayTimes (displayTimeList);
	}
}

function displayTimes (displayTimeList)
{
	var listStr = '';
	listStr = listStr + "<table>";

	for (i=0; i < displayTimeList.length; i++)
	{
		listStr = listStr + "<tr><td>" + displayTimeList[i] + "</td><td><input type='button' value='Delete' onclick='deleteTime(\"" + displayTimeList[i] + "\");' /></td></tr>";
	}

	listStr = listStr + "</table>";

	document.getElementById("timeList").innerHTML = listStr;
}

// fields
function fetchFields ()
{
	http.open("GET", requestObj + "fetchFields", true); 
	http.onreadystatechange = handleRequestField; 
	http.send(null);
}

function addField()
{
	var fieldName = document.getElementById("fieldName").value;
	http.open("GET", requestObj + "newField&field=" + escape(fieldName) , true); 
	http.onreadystatechange = handleRequestField; 
	http.send(null);
}

function deleteField(field)
{
	http.open("GET", requestObj + "delField&field=" + escape(field), true); 
	http.onreadystatechange = handleRequestField; 
	http.send(null);
}

function handleRequestField ()
{
  if (http.readyState == 4)
  {
		var displayFieldList = "";
		if (http.responseText.length > 0)
			displayFieldList = http.responseText.split("|");

		displayFields (displayFieldList);
		document.getElementById("fieldName").value = "";
		document.getElementById("fieldName").focus();
  }
}

function displayFields (displayFieldList)
{
	var listStr = '';
	listStr = listStr + "<table>";

	for (i=0; i < displayFieldList.length; i++)
	{
		listStr = listStr + "<tr><td>" + displayFieldList[i] + "</td><td><input type='button' value='Delete' onclick='deleteField(\"" + displayFieldList[i] + "\");' /></td></tr>";
	}

	listStr = listStr + "</table>";

	document.getElementById("fieldList").innerHTML = listStr;
}

function getZipInfo()
{
	var url = "requestZipInfo.php?zip="; // The server-side script
	var zipValue = document.getElementById("zip").value;
	http.open("GET", url + escape(zipValue), true);
	http.onreadystatechange = handleRequestZip;
	http.send(null);
}

function handleRequestZip ()
{
  if (http.readyState == 4) 
  {
		// Split the comma delimited response into an array
		if (http.responseText.length > 0)
		{
			results = http.responseText.split(",");
			document.getElementById('city').value = results[0];
			document.getElementById('phoneArea').value = results[2];
			document.getElementById ("state").value = results[1];
		}
  }
}

