function userTypeInput() 
{
	var aval = false;
	var bval = false;
	var utype = document.getElementById("userType");
	var other = document.getElementById("otherUserType");

	if (utype.options[utype.selectedIndex].value == "agent")
	{
		other.style.display = "none";
		document.getElementById("officeZipLabel").style.display = "inline";
		document.getElementById("officeZipData").style.display = "inline";
		document.getElementById("cityLabel").style.display = "inline";
		document.getElementById("cityData").style.display = "inline";
		document.getElementById("companyLabel").style.display = "inline";
		document.getElementById("companyData").style.display = "inline";
		document.getElementById("brokerNameLabel").style.display = "none";
		document.getElementById("brokerNameData").style.display = "none";
		document.getElementById("brokerCodeLabel").style.display = "inline";
		document.getElementById("brokerCodeData").style.display = "inline";
		document.getElementById("proSpan").style.display = "inline";
		
	}
	else if (utype.options[utype.selectedIndex].value == "broker")
	{
		document.getElementById("officeZipLabel").style.display = "inline";
		document.getElementById("officeZipData").style.display = "inline";
		document.getElementById("cityLabel").style.display = "inline";
		document.getElementById("cityData").style.display = "inline";
		document.getElementById("companyLabel").style.display = "inline";
		document.getElementById("companyData").style.display = "inline";
		document.getElementById("brokerNameLabel").style.display = "inline";
		document.getElementById("brokerNameData").style.display = "inline";
		document.getElementById("brokerCodeLabel").style.display = "inline";
		document.getElementById("brokerCodeData").style.display = "inline";
		document.getElementById("proSpan").style.display = "inline";
	}
	else if (utype.options[utype.selectedIndex].value == "owner")
	{
		aval = true;
		other.style.display = "none";
		document.getElementById("officeZipLabel").style.display = "inline";
		document.getElementById("officeZipData").style.display = "inline";
		document.getElementById("cityLabel").style.display = "inline";
		document.getElementById("cityData").style.display = "inline";
		document.getElementById("companyLabel").style.display = "inline";
		document.getElementById("companyData").style.display = "inline";
		document.getElementById("brokerNameLabel").style.display = "none";
		document.getElementById("brokerNameData").style.display = "none";
		document.getElementById("brokerCodeLabel").style.display = "none";
		document.getElementById("brokerCodeData").style.display = "none";
		document.getElementById("proSpan").style.display = "inline";
	}
	else if (utype.options[utype.selectedIndex].value == "other")
	{
		other.style.display = "inline";
		other.focus();
	}
	else
	{
		other.style.display = "none";
	}

	var data = document.getElementsByName("agentData");

	for (var i=0; i < data.length; i++) 
	{
		if (aval == true)
		{
			data[i].style.display = "inline";
		}
		else
		{
			data[i].style.display = "none";
		}
	}

	if (utype.options[utype.selectedIndex].value == "broker")
	{
		var data = document.getElementsByName("brokerData");

		for (var i=0; i < data.length; i++) 
		{
			if (bval == true)
			{
				data[i].style.display = "inline";
			}
			else
			{
				data[i].style.display = "none";
			}
		}
	}
}

function loginInput(email,errorSpan) 
{
	document.getElementById(errorSpan).innerHTML = "validating....";
	var req = new AjaxRequest();
	req.onError = errorHandler;
	req.url = "servlet/lookup?action=loginCheck&login=" + escape(email.value);
	req.onSuccess = function() {
		if (!req.responseXML)
		{
			alert(req.responseText);
			return;
		}
		var error = req.responseXML.getElementsByTagName('error');
		if (error && error.length > 0)
		{
			document.getElementById(errorSpan).innerHTML = error.item(0).firstChild.nodeValue;
		}
		else
		{
			document.getElementById(errorSpan).innerHTML = "";
		}
	}
	req.process();
}

function emailCheck(email,errorSpan) 
{
	document.getElementById(errorSpan).innerHTML = "validating....";
	var req = new AjaxRequest();
	req.onError = errorHandler;
	req.url = "servlet/lookup?action=emailCheck&email=" + escape(email.value);
	req.onSuccess = function() {
		if (!req.responseXML)
		{
			alert(req.responseText);
			return;
		}
		var error = req.responseXML.getElementsByTagName('error');
		if (error && error.length > 0)
		{
			document.getElementById(errorSpan).innerHTML = error.item(0).firstChild.nodeValue;
		}
		else
		{
			document.getElementById(errorSpan).innerHTML = "";
		}
	}
	req.process();
}

function pwdInput() 
{
	var pw = document.getElementById("password").value;
	var pw2 = document.getElementById("password2").value;

	if (pw != pw2)
	{
		document.getElementById('pwdError').innerHTML = "passwords do not match";
	}
	else if (pw.length < 4)
	{
		document.getElementById('pwdError').innerHTML = "password must be at least 4 characters";
	}
	else
	{
		document.getElementById('pwdError').innerHTML = "";
	}
};

function zipInput(zip) 
{
	if (zip.value.length < 5)
	{
		return false;
	}

	var req = new AjaxRequest();
	req.onError = errorHandler;
	req.url = "servlet/lookup?action=zipInfo&zip=" + zip.value;
	req.onSuccess=function() {
		if (!req.responseXML)
		{
			alert("service unavailable");
			return;
		}
		var company = document.getElementById('company');
		var error = req.responseXML.getElementsByTagName('error');
		if (error.length != 0)
		{
			document.getElementById('zipError').innerHTML = error.item(0).firstChild.nodeValue;
			document.getElementById('city').value = "";
			document.getElementById('state').value = "";
			company.selectedIndex = 0;
			company.disabled = true;
		}
		else
		{
			var city = req.responseXML.getElementsByTagName('city');
			if (city.length != 0)
			{
				document.getElementById('zipError').innerHTML = "";
				document.getElementById('city').value = city.item(0).firstChild.nodeValue;
				document.getElementById('state').value = req.responseXML.getElementsByTagName('state').item(0).firstChild.nodeValue;
				document.getElementById('city').disabled = true;
				document.getElementById('state').disabled = true;
			}
			else
			{
				document.getElementById('zipError').innerHTML = "unrecognized zip code";
				document.getElementById('city').disabled = false;
				document.getElementById('state').disabled = false;
				document.getElementById('city').value = "";
				document.getElementById('state').value = "";
			}

			var cos = req.responseXML.getElementsByTagName('company');
			company.options.length = 0;

			company.options[0] = new Option('-- Select Company --','0',false,false);
			for (i = 0; i < cos.length; i++)
			{
				company.options[i+1] = new Option(cos[i].firstChild.nodeValue,cos[i].getAttribute('id'),false,false);
			}
			company.options[i+1] = new Option('Other','-1',false,false);
			company.disabled=false;
		}
	}
	req.process();
};

function companyInput(company) 
{
	var name = document.getElementById("companyName");
	var brokerCode = document.getElementById("brokerCode");
	var brokerage = document.getElementById("brokerage");

	if (company.options[company.selectedIndex].value == -1)
	{
		name.style.display = "inline";
		name.focus();
		brokerCode.disabled = true;
		brokerage.disabled = true;
	}
	else if (company.options[company.selectedIndex].value > 0)
	{
		name.style.display = "none";
		name.style.value = "";
		brokerCode.disabled = false;
		brokerage.disabled = false;
	}
	else
	{
		brokerCode.disabled = true;
		brokerage.disabled = true;
	}
};

function companyNameInput() 
{
	var name = document.getElementById("companyName");
	var brokerCode = document.getElementById("brokerCode");
	var brokerage = document.getElementById("brokerage");
	if (name.value.length > 0)
	{
		brokerCode.disabled = false;
		brokerage.disabled = false;
	}
	else
	{
		brokerCode.disabled = true;
		brokerage.disabled = true;
	}
};

function brokerInput(code) 
{
	var name = document.getElementById('brokerName');
	var company = document.getElementById('company');
	if (company.options[company.selectedIndex].value == -1 ||
	    company.options[company.selectedIndex].value == 0 ||
	    code.length == 0)
	{
		name.innerHTML = "";
		return;
	}

	var req = new AjaxRequest();
	req.onError = errorHandler;
	req.url = "servlet/lookup?action=brokerInfo&code=" + code.value + "&company=" + company.options[company.selectedIndex].value;
	req.onSuccess=function() {
		if (!req.responseXML)
		{
			alert("service unavailable");
			return;
		}
		var broker = req.responseXML.getElementsByTagName('broker');
		if (broker.length != 0)
		{
			name.innerHTML = broker.item(0).firstChild.nodeValue;
		}
		else
		{
			name.innerHTML = "";
		}
	}
	req.process();
};

function officeZipInput(zip) {
	if (zip.length < 5)
	{
		return false;
	}

	var req = new AjaxRequest();
	req.onError = errorHandler;
	req.url = "servlet/lookup?action=zipInfo&zip=" + zip;
	req.onSuccess=function() {
		if (!req.responseXML)
		{
			alert("service unavailable");
			return;
		}
		var company = document.getElementById('company');
		var error = req.responseXML.getElementsByTagName('error');
		if (error.length != 0)
		{
			document.getElementById('zipError').innerHTML = error.item(0).firstChild.nodeValue;
			document.getElementById('city').value = "";
			document.getElementById('state').value = "";
			company.selectedIndex = 0;
			company.disabled = true;
		}
		else
		{
			var city = req.responseXML.getElementsByTagName('city');
			if (city.length != 0)
			{
				document.getElementById('zipError').innerHTML = "";
				document.getElementById('city').value = city.item(0).firstChild.nodeValue;
				document.getElementById('state').value = req.responseXML.getElementsByTagName('state').item(0).firstChild.nodeValue;
				document.getElementById('city').disabled = true;
				document.getElementById('state').disabled = true;
			}
			else
			{
				document.getElementById('zipError').innerHTML = "unrecognized zip code";
				document.getElementById('city').disabled = false;
				document.getElementById('state').disabled = false;
				document.getElementById('city').value = "";
				document.getElementById('state').value = "";
			}

			var cos = req.responseXML.getElementsByTagName('company');
			company.options.length = 0;

			company.options[0] = new Option('-- Select Company --','0',false,false);
			for (i = 0; i < cos.length; i++)
			{
				company.options[i+1] = new Option(cos[i].firstChild.nodeValue,cos[i].getAttribute('id'),false,false);
			}
			company.options[i+1] = new Option('Other','-1',false,false);
			company.disabled=false;
		}
	}
	req.process();
};
