//
// (c) Copyright MMX Enigma Software (1273095 Ont Inc). All rights reserved.
//
//
// Address prompter
//
var addressprompttext = 'Click here then start typing and pick your entry from the pop-up list';
var categorycheckboxcount = 9;
var idno = null;
if (window.location.search != '')
	idno = window.location.search.split('?')[1].split('=')[1].split('&')[0];
function addressstate(obj,enaflag)
{
	var hasurlfeed = false;
	var addressfeed = unescape(window.location.search.split('&addr=')[1]);
	if (addressfeed == "undefined" || addressfeed == "") addressfeed = null;
	if (addressfeed != null)
		hasurlfeed = true;
	else
		addressfeed = obj.value;

	if (enaflag)
	{
		if (obj.value == addressprompttext)
		{
			obj.className = 'style10';
			obj.value = '';
		}
	}
	else
	{
		if (addressfeed != null && addressfeed != '')
		{
			obj.value = addressfeed;
			var geocoder = new google.maps.Geocoder();
			geocoder.geocode( { 'address': addressfeed}, function(results, status)
			{
				if (status == google.maps.GeocoderStatus.OK)
				{
					document.getElementById("lat").value = results[0].geometry.location.lat();
					document.getElementById("lng").value = results[0].geometry.location.lng();
					lat = results[0].geometry.location.lat();
					lng = results[0].geometry.location.lng();
					obj.value = parseaddress(results[0]);;
					if (document.getElementById("addressbad") != null)
					{
						document.getElementById("addressbad").style.visibility = "hidden";
						document.getElementById("addressbad").style.display = "none";
						document.getElementById("addressok").style.visibility = "visible";
						document.getElementById("addressok").style.display = "block";
						if (document.getElementById("name") != null)
							document.getElementById("name").focus();
					}
					else
					{
						setaddr(obj.value);
						if (hasurlfeed == false)
						{
							obj.className = 'style10_grey';
							obj.value = addressprompttext;
						}
						else
							obj.className = 'style10';
					}
				}
			});
		}
		else
		{
			obj.className = 'style10_grey';
			obj.value = addressprompttext;
		}
	}
}

function clearcoords()
{
	document.getElementById("lat").value = '';
	document.getElementById("lng").value = '';
	document.getElementById("addressbad").style.visibility = "visible";
	document.getElementById("addressbad").style.display = "block";
	document.getElementById("addressok").style.visibility = "hidden";
	document.getElementById("addressok").style.display = "none";
}

function showhelp(showflag)
{
	if (showflag)
	{
		document.getElementById("addresshelp").style.top = document.getElementById("imghelp").style.top;
		document.getElementById("addresshelp").style.left = document.getElementById("imghelp").style.left;
		document.getElementById("addresshelp").style.visibility = "visible";
		document.getElementById("addresshelp").style.display = "block";
	}
	else
	{
		document.getElementById("addresshelp").style.visibility = "hidden";
		document.getElementById("addresshelp").style.display = "none";
	}
}
function showehelp(showflag)
{
	if (showflag)
	{
		document.getElementById("eaddresshelp").style.top = document.getElementById("imghelp").style.top;
		document.getElementById("eaddresshelp").style.left = document.getElementById("imghelp").style.left;
		document.getElementById("eaddresshelp").style.visibility = "visible";
		document.getElementById("eaddresshelp").style.display = "block";
	}
	else
	{
		document.getElementById("eaddresshelp").style.visibility = "hidden";
		document.getElementById("eaddresshelp").style.display = "none";
	}
}
//
// Validate/submit request
//
function emailok(emailaddr)
{
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(emailaddr))
		return true;
	else
		return false;
}

function submitrequest()
{
	var numlat = parseFloat(document.getElementById("lat").value)
	var numlng = parseFloat(document.getElementById("lng").value)
	var twocatchecked = false;

	if (isNaN(numlat) == false && isNaN(numlng) == false)
	{
		for (var i = 2; i < categorycheckboxcount; i++)
		{
			if (document.getElementById("cat"+i).checked)
				twocatchecked = true;
		}
		if (twocatchecked)
		{
			if (document.getElementById("leadname").value != '')
			{
				if (emailok(document.getElementById("leademail").value))
				{
					if (document.getElementById("leadphone").value != '')
					{
						if (document.getElementById("leadqualify").value != '')
						{
							document.getElementById("idno").value = idno;
							document.getElementById("frmmain").submit();
						}
						else
						{
							alert('No response to _I am planning to move in_ was selected. Please select a range of time in which you plan to move.');
							return false;
						}
					}
					else
					{
						alert('No phone number was entered. Please enter your contact phone number.');
						return false;
					}
				}
				else
				{
					alert('No valid E-mail address was entered. Please enter your E-mail address.');
					return false;
				}
			}
			else
			{
				alert('No name was entered. Please enter your full name.');
				return false;
			}
		}
		else
		{
			alert('No item of interested is checked. Please check off one or more items of interest in addition to schools.');
			return false;
		}
	}
	else
	{
		alert('Address is not yet complete. Please enter an address of interest.');
		return false;
	}
}

$().ready(function() {
//
// Initialise autocomplete handler for maprequest
//
	$('#address').geo_autocomplete(new google.maps.Geocoder, {
		mapkey: mapapikey, 
		selectFirst: false,
		minChars: 3,
		cacheLength: 50,
		width: 300,
		scroll: true,
		scrollHeight: 330
	}).result(function(_event, _data) {
		if (_data)
		{
			document.getElementById("lat").value = _data.geometry.location.lat();
			document.getElementById("lng").value = _data.geometry.location.lng();
			document.getElementById("address").value = parseaddress(_data);
			document.getElementById("addressbad").style.visibility = "hidden";
			document.getElementById("addressbad").style.display = "none";
			document.getElementById("addressok").style.visibility = "visible";
			document.getElementById("addressok").style.display = "block";
			if (document.getElementById("leadname") != null)
				document.getElementById("leadname").focus();
		}
	});
//
// Initialise autocomplete handler for mapadmin add amenity
//
	$('#eaddress').geo_autocomplete(new google.maps.Geocoder, {
		mapkey: mapapikey, 
		selectFirst: false,
		minChars: 3,
		cacheLength: 50,
		width: 300,
		scroll: true,
		scrollHeight: 330
	}).result(function(_event, _data) {
		if (_data)
		{
			document.getElementById("lat2").value = _data.geometry.location.lat();
			document.getElementById("lng2").value = _data.geometry.location.lng();
			elat = _data.geometry.location.lat();
			elng = _data.geometry.location.lng();
			document.getElementById("eaddress").value = parseaddress(_data);
			document.getElementById("eaddressbad").style.visibility = "hidden";
			document.getElementById("eaddressbad").style.display = "none";
			document.getElementById("eaddressok").style.visibility = "visible";
			document.getElementById("eaddressok").style.display = "block";
			drawaddmap();
		}
	});
//
// Initialise autocomplete handler for mappublic
//
	$('#addressmap').geo_autocomplete(new google.maps.Geocoder, {
		mapkey: mapapikey, 
		selectFirst: false,
		minChars: 3,
		cacheLength: 50,
		width: 300,
		scroll: true,
		scrollHeight: 330
	}).result(function(_event, _data) {
		if (_data)
		{
			lat = _data.geometry.location.lat();
			lng = _data.geometry.location.lng();
			if (document.getElementById("lat") != null)
				document.getElementById("lat").value = _data.geometry.location.lat();
			if (document.getElementById("lng") != null)
				document.getElementById("lng").value = _data.geometry.location.lng();
			currentgeopoint = new GLatLng(lat, lng);
			document.getElementById("addressmap").value = parseaddress(_data);
			if (document.getElementById("address") != null)
			{
				document.getElementById("address").value = document.getElementById("addressmap").value;
				document.getElementById("addressbad").style.visibility = "hidden";
				document.getElementById("addressbad").style.display = "none";
				document.getElementById("addressok").style.visibility = "visible";
				document.getElementById("addressok").style.display = "block";
				document.getElementById("address").className = 'style10';
			}
			if (document.getElementById("requestlink") != null)
				document.getElementById("requestlink").href = document.getElementById("requestlink").href.split('&')[0]+'&addr='+escape(_data.formatted_address);
			clearmap();
			map.setCenter(new GLatLng(lat, lng), initialzoomlevel);
			drawmap();
			drawcurrentmarker(lat, lng);
			drawcircles();
		}
	});
});

function parseaddress(aresult)
{
	var streetnum = null;
	var streetname = null;
	var fullstreet = null;
	var sublocality = null;
	var sublocality2 = null;
	var city = null;
	var state = null;
	var zip = null;
	var country = null;
	var fulladdress = null;
	for (var i = 0; i < aresult.address_components.length; i++)
	{
		for (var j = 0; j < aresult.address_components[i].types.length; j++)
		{
			switch(aresult.address_components[i].types[j])
			{
				case 'street_number':
					streetnum = aresult.address_components[i].short_name;
					break;
				case 'route':
					streetname = aresult.address_components[i].short_name;
					break;
				case 'sublocality':
					sublocality = aresult.address_components[i].short_name;
					break;
				case 'administrative_area_level_3':
					sublocality2 = aresult.address_components[i].short_name;
					break;
				case 'locality':
					city = aresult.address_components[i].short_name;
					break;
				case 'administrative_area_level_1':
					state = aresult.address_components[i].short_name;
					break;
				case 'postal_code':
					zip = aresult.address_components[i].short_name;
					break;
				case 'country':
					country = aresult.address_components[i].long_name;
			}
		}
	}

	if (city == null && sublocality == null && sublocality2 != null)
		sublocality = sublocality2;
	if (city == null && sublocality != null)
		city = sublocality;

	if (document.getElementById("lsnum") != null)
		document.getElementById("lsnum").value = streetnum;
	if (document.getElementById("lsname") != null)
		document.getElementById("lsname").value = streetname;
	if (document.getElementById("lsubname") != null)
		document.getElementById("lsubname").value = sublocality;
	if (document.getElementById("lcity") != null)
		document.getElementById("lcity").value = city;
	if (document.getElementById("lstate") != null)
		document.getElementById("lstate").value = state;
	if (document.getElementById("lcountry") != null)
		document.getElementById("lcountry").value = country;
	if (document.getElementById("lzip") != null)
		document.getElementById("lzip").value = zip;
	if (document.getElementById("lsnum2") != null)
		document.getElementById("lsnum2").value = streetnum;
	if (document.getElementById("lsname2") != null)
		document.getElementById("lsname2").value = streetname;
	if (document.getElementById("lsubname2") != null)
		document.getElementById("lsubname2").value = sublocality;
	if (document.getElementById("lcity2") != null)
		document.getElementById("lcity2").value = city;
	if (document.getElementById("lstate2") != null)
		document.getElementById("lstate2").value = state;
	if (document.getElementById("lcountry2") != null)
		document.getElementById("lcountry2").value = country;
	if (document.getElementById("lzip2") != null)
		document.getElementById("lzip2").value = zip;

	fulladdress = '';
	if (streetnum != null)
		fulladdress = fulladdress+streetnum;
	if (streetname != null)
		fulladdress = fulladdress+' '+streetname;
	fullstreet = fulladdress;
	if (document.getElementById("lstreet") != null)
		document.getElementById("lstreet").value = fullstreet;
	if (document.getElementById("lstreet2") != null)
		document.getElementById("lstreet2").value = fullstreet;
//	if (sublocality != null)
//		fulladdress = fulladdress+', '+sublocality;
	if (city != null)
		fulladdress = fulladdress+', '+city;
	if (state != null)
		fulladdress = fulladdress+', '+state;
	if (country != null)
		fulladdress = fulladdress+', '+country;
	if (fulladdress.substring(0,1) == ' ')
		fulladdress = fulladdress.substring(1);
	if (fulladdress.substring(0,2) == ', ')
		fulladdress = fulladdress.substring(2);

	return fulladdress;
}

