// Address Lookup
var xmlHttp;
var lastKeyPress;
var intval;
var qryHttp;

// Function to set typing timer for address lookup
function timerwait() {
	lastKeyPress = new Date();
	document.getElementById('suggestions').innerHTML = 'Waiting ...';
	window.clearInterval(intval);
	intval = '';
	if (intval == '') {
		intval = window.setInterval('showHint()', 500);
	} else {
		stopwait();
	}
}

// Function to remove typing timer for address lookup
function stopwait() {
	if (intval != '') {
		window.clearInterval(intval);
		intval = '';
	}
}

// Function to process data and perform AJAX call
function showHint() {
	var currentTime = new Date();
	var elapsedTime = (currentTime.getTime() - lastKeyPress.getTime());
	var url = '/include/address.find.php';
	var str = '';
	var area = '';
	var f = document.getElementById('appform');
	var z = document.getElementById('zoomform');
	var q = document.getElementById('searchform');

	if (elapsedTime > 750) {
		stopwait();
		str = document.getElementById('address').value;
		if (str.length < 3) {
			document.getElementById('suggestions').innerHTML = '';
			return;
		}
		xmlHttp = GetXmlHttpObject();
		if (xmlHttp == null) {
			alert('Browser does not support HTTP Request');
			return;
		}

		// Convert to Upper Case
		str = str.toUpperCase();
		// Replace Characters in string

		str = str.replace(/FLAT/,'');
		str = str.replace(/APT/,'');
		str = str.replace(/^\s+/g,' ');
		str = str.replace(/\s+/g,' ');
		str = str.replace(/\./g,' ');
		str = str.replace(/\//g,' ');
		str= str.replace(/;/g,'');
		str = str.replace(/,/g,'');
		str = str.replace(/'/g,'*');
		str = str.replace(/\(/g,'[');
		str = str.replace(/\)/g,']');
		// url = url + '?q=' + str + '&f=' + f  + '&z=' + z  + '&q=' + q;
		url = url + '?q=' + str;
		xmlHttp.onreadystatechange = stateChanged;
		xmlHttp.open('GET',url,true);
		xmlHttp.send(null);
	}

}

// AJAX Change Handler
function stateChanged() {
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete') {
		if (xmlHttp.status != 200) {
			document.getElementById('suggestions').innerHTML = 'Problem getting data...';
		} else {
			document.getElementById('suggestions').innerHTML = xmlHttp.responseText;
		}
	} else {
		document.getElementById('suggestions').innerHTML = '';
	}
}

// AJAX Object Creator
function GetXmlHttpObject() {
	try {
		// Firefox, Opera 8.0+ Safari
		xmlHttp = new window.XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp = new window.ActiveXObject('Msxml2.XMLHTTP');
		} catch (e) {
			xmlHttp = new window.ActiveXObject('Microsoft.XMLHTTP');
		}
	}
	return xmlHttp;
}

// Function to set typing timer for address lookup
function timerOwner() {
	lastKeyPress = new Date();
	document.getElementById('OwnerSuggest').innerHTML = 'Waiting ...';
	window.clearInterval(intval);
	intval = '';
	if (intval == '') {
		intval = window.setInterval('showHintOwner()', 500);
	} else {
		stopwait();
	}
}

// Function to process data and perform AJAX call
function showHintOwner() {
	var currentTime = new Date();
	var elapsedTime = (currentTime.getTime() - lastKeyPress.getTime());
	var url = '/include/owner.find.php';
	var str = '';
	var area = '';
	var f = document.getElementById('appform');
	var z = document.getElementById('zoomform');
	var q = document.getElementById('searchform');

	if (elapsedTime > 750) {
		stopwait();
		str = document.getElementById('txtOwner').value;
		if (str.length < 3) {
			document.getElementById('OwnerSuggest').innerHTML = '';
			return;
		}
		xmlHttp = GetXmlHttpObject();
		if (xmlHttp == null) {
			alert('Browser does not support HTTP Request');
			return;
		}

		// Convert to Upper Case
		str = str.toUpperCase();
		// Replace Characters in string
		str = str.replace(/^\s+/g,' ');
		str = str.replace(/\s+/g,' ');
		str = str.replace(/\./g,' ');
		str = str.replace(/\//g,' ');
		str= str.replace(/;/g,'');
		str = str.replace(/,/g,'');
		str = str.replace(/'/g,'*');
		str = str.replace(/\(/g,'[');
		str = str.replace(/\)/g,']');
		// url = url + '?q=' + str + '&f=' + f  + '&z=' + z  + '&q=' + q;
		url = url + '?q=' + str;
		xmlHttp.onreadystatechange = stateChangedOwner;
		xmlHttp.open('GET',url,true);
		xmlHttp.send(null);
	}

}

// AJAX Change Handler
function stateChangedOwner() {
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 'complete') {
		if (xmlHttp.status != 200) {
			document.getElementById('OwnerSuggest').innerHTML = 'Problem getting data...';
		} else {
			document.getElementById('OwnerSuggest').innerHTML = xmlHttp.responseText;
		}
	} else {
		document.getElementById('OwnerSuggest').innerHTML = '';
	}
}
