// JavaScript Document
var requester = null;
var formRequester = null;
//MOVED BELOW STATEMENT TO BODY TAG
//window.onload = init;

/* Initialisation for JS capable browsers */
function init()
{
//alert("init called");

	var orderForm = document.getElementById("orderForm");
    var cat2 = document.getElementById("cat2");
    var franchiseTypeDescription = document.getElementById("franchiseTypeDescription");
    var IndustrySectorName = document.getElementById("IndustrySectorName");

//the form controls that fire off onChange events. Which call onChangeReceipt(). Signifying user request
franchiseTypeDescription.onchange = onchangeReceipt;
cat2.onchange = onchangeReceipt;
IndustrySectorName.onchange = onchangeReceipt;

//calling this here (on page loading) means all franchisors are displayed when page is first displayed.
onchangeReceiptOrder("franchiseName");
return true;
}

//not passing in a value here causes application to fail in Firefox.
//so created onchangeReceipt() solely to handle event calls above,
function onchangeReceiptOrder(order)
{ //alert("onchangeReceipt");

  if(arguments.length == 0)
  {
	  //alert("order undefined");
	  orderBy = "franchiseName";
  }
  else
  {
	   orderBy = order;
   }
  
   
   var orderForm = document.getElementById("orderForm");
   
    //alert(orderForm.receipt.value);
   //alert(orderForm.cat.value);

	if (requester != null && requester.readyState != 0 && requester.readyState != 4)
	{
		requester.abort();
	}

	try
	{
		requester = new XMLHttpRequest();
	}
	catch (error)
	{
		try
		{
			requester = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (error)
		{
			requester = null;

			return false;
		}
	}

	requester.onreadystatechange = onreadystatechangeReceipt;

	requester.open("GET", "directoryController.cfm?FranchiseTypeDescription=" + orderForm.franchiseTypeDescription.value + "&cat2=" + orderForm.cat2.value + "&IndustrySectorName=" + orderForm.IndustrySectorName.value + "&orderBy=" + orderBy);
	requester.send(null);

	return true;
}


//change Receipt does the same as above except it always passes companyName as the orderBy value.
function onchangeReceipt()
{ //alert("onchangeReceipt");


   
   var orderForm = document.getElementById("orderForm");
   
    //alert(orderForm.receipt.value);
   //alert(orderForm.cat.value);

	if (requester != null && requester.readyState != 0 && requester.readyState != 4)
	{
		requester.abort();
	}

	try
	{
		requester = new XMLHttpRequest();
	}
	catch (error)
	{
		try
		{
			requester = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (error)
		{
			requester = null;

			return false;
		}
	}

	requester.onreadystatechange = onreadystatechangeReceipt;

	requester.open("GET", "directoryController.cfm?FranchiseTypeDescription=" + orderForm.franchiseTypeDescription.value + "&cat2=" + orderForm.cat2.value + "&IndustrySectorName=" + orderForm.IndustrySectorName.value + "&orderBy=" + 'franchiseName');
	requester.send(null);

	return true;
}



/*
Excutes when requester.onreadystatechange fires
calls writeDetails() which outputs results to page.

Ready States:
0 = uninitialized
1 = loading
2 = loaded
3 = interactive
4 = complete 
*/
function onreadystatechangeReceipt()
{    
    //show loading gif while loading
	if (requester.readyState == 1)
	{ //alert("readyState1");
	
	document.getElementById("loading").innerHTML = "<img src='loadingGraphic.gif'>";
	//document.getElementById("loadingText").innerHTML = "";
	document.getElementById("loadingRight").innerHTML = "<img src='loadingGraphic.gif'>";
	//document.getElementById("loadingTextRight").innerHTML = "";
	document.getElementById("displayResults").innerHTML = "<img src='loading.gif'><br>Loading...";
	}
	
	// If XMLHR object has finished retrieving the data
	// remove loading notification and display results
	if (requester.readyState == 4)
	{
		document.getElementById("loading").innerHTML = "";
		//document.getElementById("loadingText").innerHTML = "";
		document.getElementById("loadingRight").innerHTML = "";
	    //document.getElementById("loadingTextRight").innerHTML = "";
		//alert("readyState4");
		
		// If the data was retrieved successfully
		try
		{   //http status of 200 indicates successful retrival
			if (requester.status == 200)
			{   //alert("write");
				writeDetails();
			}
			// IE returns a status code of 0 on some occasions, so ignore this case
			else if (requester.status != 0)
			{
				alert("There was an error while retrieving the URL: " + requester.statusText + requester.status);
			}
		}
		catch (error)
		{
		}
	}

	return true;
}

/* Writes results to page */
function writeDetails()
{
  
var displayResults = document.getElementById("displayResults");
displayResults.innerHTML = requester.responseText;
	
	return true;
}


/*Non ajax stuff */

function getDayOfTheMonth()
{
//create date object
now = new Date();
dayOfTheMonth = now.getDate();
return dayOfTheMonth;
}


function getMonthName()
{
//create date object
now = new Date();
month = now.getMonth();
switch(month)
{
case 0:
month = "January";
break;
case 1:
month = "February";
break;
case 2:
month = "March";
break;
case 3:
month = "April";
break;
case 4:
month = "May";
break;
case 5:
month = "June";
break;
case 6:
month = "July";
break;
case 7:
month = "August";
break;
case 8:
month = "September";
break;
case 9:
month = "October";
break;
case 10:
month = "November";
break;
case 11:
month = "December";
break;
}
return month;
}



function getDayOfWeek()
{
now2 = new Date();
day = now2.getDay();

switch(day)
{
case 0:
dayOfTheWeek = "Sunday";
break;
case 1:
dayOfTheWeek = "Monday";
break;
case 2:
dayOfTheWeek = "Tuesday";
break;
case 3:
dayOfTheWeek = "Wednesday";
break;
case 4:
dayOfTheWeek = "Thursday";
break;
case 5:
dayOfTheWeek = "Friday";
break;
case 6:
dayOfTheWeek = "Saturday";
break;
}
return dayOfTheWeek;
}


dayOfTheWeek = getDayOfWeek();
currentMonth =  getMonthName();
dayOfTheMonth = getDayOfTheMonth();





function searchValidate()
{

if(document.form2.criteria.value.length < 1)
 {alert("OOPS! You forgot to enter a search term.");
  return false;
 }
return true;
}





