/**
 * Displays the account
 *
 * @param accountNumber integer
 * @param from string The page we've come from
 */
function displayAccount(accountNumber, from)
{
	
	// Firstly we clear all children from the results div
	var len = ajaxResDiv.childNodes.length;
	while (ajaxResDiv.hasChildNodes()){
		ajaxResDiv.removeChild(ajaxResDiv.firstChild);
	}
	
	// Hide the results div
	hideDiv('ajaxResDiv');
	ajaxResDiv.style.height = '1px';
	ajaxResDiv.style.margin = '0';
	ajaxResDiv.style.padding = '0';
	ajaxResDiv.style.lineHeight = '0';

	// Clear all children from the contacts div
	var len = ajaxContactsDiv.childNodes.length;
	while (ajaxContactsDiv.hasChildNodes()){
		ajaxContactsDiv.removeChild(ajaxContactsDiv.firstChild);
	}

	// Hide tabs
	while (ajaxTabDiv.hasChildNodes()){
		ajaxTabDiv.removeChild(ajaxTabDiv.firstChild);
	}
	_hideTabDiv();

	// Main column
//	document.getElementById('columnTwoLarge').className = 'col4withBg';

	// Show the contacts div
	showDiv('ajaxContactsDiv');
	loadingHolder = document.createElement('div');
	loadingHolder.className = loadingText;
	ajaxContactsDiv.appendChild(loadingHolder);
	ajaxContactsDiv.style.height = 'auto';
	ajaxContactsDiv.style.margin = 'auto';
	ajaxContactsDiv.style.lineHeight = '18px';

	// Fetch the company details using AJAX
	var xmlHttp = getXmlHttpRequest();

	var url = ctrlUrl + 'ajax/get-account' +
						'/accountNumber/' + accountNumber + // accountNumber
						'/'
						;

	xmlHttp.open("GET", url, true);

	xmlHttp.send(null);

	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState < 4){
		} else if (xmlHttp.readyState == 4){
			if (xmlHttp.status == 200){
				ajaxContactsDiv.innerHTML = '';

				// Fetch the response tag
				var rspXML = xmlHttp.responseXML;

				// Fetch the error tag
				var errTag = rspXML.getElementsByTagName('error');

				// Was there an error?
				if (errTag.length != 0){

					// Heading
					var conH1 = document.createElement('h1');
					conH1.innerHTML = notFoundText;
					ajaxContactsDiv.appendChild(conH1);

				}else{

					// Extract the account
					var accountTags = rspXML.getElementsByTagName('account');

					// back button
					_buildBackButton(from);


					// Add the account details to the table body defined above
					_addAccounts(accountTags, 0, ajaxContactsDiv, 'none', 'none', false);


					// Add the company address details;

					var subHeaderRow = document.createElement('tr');

					var subHeaderDef = document.createElement('td');
					subHeaderDef.className = 'header';
					subHeaderDef.innerHTML = addressText;
					subHeaderRow.appendChild(subHeaderDef);

					var detailsDef = document.createElement('td');
					detailsDef.className = 'details';
					var address1 = nodeValue(accountTags[0].getElementsByTagName('address1')[0]);
					var address2 = nodeValue(accountTags[0].getElementsByTagName('address2')[0]);
					var address3 = nodeValue(accountTags[0].getElementsByTagName('address3')[0]);
					var town = nodeValue(accountTags[0].getElementsByTagName('town')[0]);
					var country = nodeValue(accountTags[0].getElementsByTagName('country')[0]);
					var statedesc = nodeValue(accountTags[0].getElementsByTagName('statedesc')[0]);
					var postcode = nodeValue(accountTags[0].getElementsByTagName('postcode')[0]);

					detailsDef.innerHTML = '';
					if (address1.length > 0){
						detailsDef.innerHTML += address1;
						detailsDef.innerHTML += '<br />';
					}

					if (address2.length > 0){
						detailsDef.innerHTML += address2;
						detailsDef.innerHTML += '<br />';
					} else if (town.length > 0) {
						// include town if address2 is not set
						detailsDef.innerHTML += town;
						detailsDef.innerHTML += '<br />';
					}
					/*
					if (statedesc.length > 0){
						detailsDef.innerHTML += toTitleCase(statedesc);
						detailsDef.innerHTML += '<br />';
					}
					*/
					if (address3.length > 0){
						detailsDef.innerHTML += address3;
						detailsDef.innerHTML += '<br />';
					} else if (statedesc.length > 0) {
						// include statedesc if address3 is not set
						detailsDef.innerHTML += statedesc;
						detailsDef.innerHTML += '<br />';
					}
					if (country.length > 0){
						detailsDef.innerHTML += toTitleCase(country);
						detailsDef.innerHTML += '<br />';
					}
					if (postcode.length > 0){
						detailsDef.innerHTML += postcode;
						detailsDef.innerHTML += '<br />';
					}

					subHeaderRow.appendChild(detailsDef);
					tableBody.appendChild(subHeaderRow);


					// Contacts loop

					var contact = accountTags[0].getElementsByTagName('contact');

					
					// Add the heading
					
					var conH2 = document.createElement('h2');
					conH2.className = 'blockHeader';
					conH2.innerHTML = nodeValue(accountTags[0].getElementsByTagName('companyname')[0]) + " " + contactsText;
					ajaxContactsDiv.appendChild(conH2);

					if (0 == contact.length){
						
						conP = document.createElement('p');
						conP.innerHTML = noContactsText;
						ajaxContactsDiv.appendChild(conP);
					
					} else {
						
						conH2.innerHTML += ' (' + contact.length + ')';
					}

					for(var i = 0, j = contact.length; i < j; i++){
							
						// Add the contact table
						
						var conTable = document.createElement('table');
						conTable.cellSpacing = 0;
						conTable.cellPadding = 0;
						conTable.border = 0;
						conTable.className = 'globalLocatorItem';
						var conTableBody = document.createElement('tbody');


						// Add Rotork Agent / Reps header
						
						var headerRow = document.createElement('h2');
						headerRow.innerHTML = ucfirst(nodeValue(contact[i].getElementsByTagName('type')[0]));
						headerRow.className = 'blockTitle';
						ajaxContactsDiv.appendChild(headerRow);
						

						// Name
						
						var subHeaderRow = document.createElement('tr');
						var subHeaderDef = document.createElement('td');
						subHeaderDef.className = 'header';
						subHeaderDef.innerHTML = nameText;
						subHeaderRow.appendChild(subHeaderDef);

						var detailsDef = document.createElement('td');
						detailsDef.className = 'details';

						detailsDef.innerHTML = '';
						detailsDef.innerHTML += nodeValue(contact[i].getElementsByTagName('salutation')[0]);
						detailsDef.innerHTML += ' ';
						detailsDef.innerHTML += nodeValue(contact[i].getElementsByTagName('christianname')[0]);
						detailsDef.innerHTML += ' ';
						detailsDef.innerHTML += nodeValue(contact[i].getElementsByTagName('lastname')[0]);

						subHeaderRow.appendChild(detailsDef);
						conTableBody.appendChild(subHeaderRow);


						// Phone number

						var subHeaderRow = document.createElement('tr');

						var subHeaderDef = document.createElement('td');
						subHeaderDef.className = 'header';
						subHeaderDef.innerHTML = directPhoneNoText;
						subHeaderRow.appendChild(subHeaderDef);

						var detailsDef = document.createElement('td');
						detailsDef.className = 'details';

						var phone = nodeValue(contact[i].getElementsByTagName('phonedirect')[0]);
						if (phone.length > 0){
							detailsDef.innerHTML = '+' + phone;
						}else{
							detailsDef.innerHTML = '-';
						}
						subHeaderRow.appendChild(detailsDef);
						conTableBody.appendChild(subHeaderRow);

						// Email address
						var subHeaderRow = document.createElement('tr');

						var subHeaderDef = document.createElement('td');
						subHeaderDef.className = 'header';
						subHeaderDef.innerHTML = emailAddressText;
						subHeaderRow.appendChild(subHeaderDef);

						var detailsDef = document.createElement('td');
						detailsDef.className = 'details';

						var emailnumber = nodeValue(contact[i].getElementsByTagName('emailnumber')[0]);
						if (emailnumber.length > 0){
							var a = document.createElement('a');
							a.href = 'mailto:' + emailnumber;
							a.innerHTML = emailnumber;
							detailsDef.appendChild(a);
						}else{
							detailsDef.innerHTML = '-';
						}
						subHeaderRow.appendChild(detailsDef);
						conTableBody.appendChild(subHeaderRow);

						// Append all...
						conTable.appendChild(conTableBody);
						ajaxContactsDiv.appendChild(conTable);

					}

					// Clear all
					var clearMe = document.createElement('div');
					clearMe.className = 'clearMe';
					ajaxContactsDiv.appendChild(clearMe);

					// back button
					_buildBackButton(from);

				}

			} else {
				
				// Non 200 HTTP status
			}
		}
	}

}

function _buildBackButton(from)
{
	var conBackDiv = document.createElement('div');

	if (backText.length > 5) {
		conBackDiv.className = 'back-large contentWrapper';
	} else {
		conBackDiv.className = 'back contentWrapper';
	}

	var conBackLink = document.createElement('a');
	conBackLink.innerHTML = '&laquo; ' + backText;
	conBackLink.title = backText;

	conBackLink.href = 'javascript:_runGL(' + tabOn + ');';

	conBackDiv.appendChild(conBackLink);
	ajaxContactsDiv.appendChild(conBackDiv);
}
