if (!document.all) { document.captureEvents(Event.MOUSEMOVE); }
document.onmousemove = getMouseXY;

var tempX = 0;
var tempY = 0;

function getMouseXY(e) {
	if (document.all) {
		if (document.body && event) {
			// grab the x-y pos.s if browser is IE
			tempX = event.clientX + document.body.scrollLeft;
			tempY = event.clientY + document.body.scrollTop;
			
			window.status = tempX +' | '+ tempY;
		}
	}
	else {
		// grab the x-y pos.s if browser is NS
		tempX = e.pageX;
		tempY = e.pageY;
	}

	if (tempX < 0) { tempX = 0; }
	if (tempY < 0) { tempY = 0; }

	return true;
}

function isOverMe(obj) {
	var objX = getX(obj);
	var objY = getY(obj);

	var objW = parseInt(obj.offsetWidth);
	var objH = parseInt(obj.offsetHeight);

	if (tempX >= objX && tempX <= (objX + objW) && tempY >= objY && tempY <= (objY + objH)) {
		return true;
	}
	else {
		return false;
	}
}

var fadeMe = null;

var isHigh = null;
var isFading = false;

function doFade(obj) {
	var percent = 100;
	var animateMe = 10;

	var timer = window.setInterval(function() {
		percent -= animateMe;

		obj.style.filter = 'alpha(opacity='+ percent +')';
		obj.style.opacity = (percent/100);
		obj.style.mozOpacity = (percent/100);

		if (percent <= 40) {
			window.clearInterval(timer);
			
			obj.removeAttribute("style");
			
			//obj.style.filter = 'none';
			//obj.style.opacity = '';
			//obj.style.mozOpacity = '';
			
			obj.className = obj.className +' faded';
		}
	}, 50);
}

function unFade(obj, pVal) {
	if (pVal == null) {
		var percent = 40;
	}

	else {
		var percent = pVal;
	}
	var animateMe = 10;
	
	isFading = true;
	
	var timer = window.setInterval(function() {
		percent += animateMe;

		obj.style.filter = 'alpha(opacity='+ percent +')';
		obj.style.opacity = (percent/100);
		obj.style.mozOpacity = (percent/100);

		if (percent >= 100) {
			window.clearInterval(timer);
			
			obj.removeAttribute("style");
			
			//obj.style.filter = 'none';
			//obj.style.opacity = '';
			//obj.style.mozOpacity = '';
			
			obj.className = obj.className.replace('faded','');
			
			isFading = false;
		}
	}, 50);
}

function hiLight(obj, out, intName, keepHigh) {
	if (1 == 1) {
		if (isFading) {
			//if (intName) {
			//	window.clearInterval(intName);
			//}

			//var retry = window.setInterval(function() {
			//	hiLight(obj, null, retry);
			//}, 100);
		}
		else {
			if (fadeMe && intName == null) {
				window.clearInterval(fadeMe);
			}

			if (obj && obj.parentNode && obj.parentNode.className && obj.parentNode.className.indexOf('listing') >= 0) {	
				if (out == 1) {
					if (!isOverMe(obj)) {
						hiLight(null, out, intName);
					}
				}
				else {
					if (intName) {
						window.clearInterval(intName);
					}

					var objLI = obj.parentNode.getElementsByTagName('li');
					for (i=0;i<objLI.length;i++) {
						var objA = objLI[i].getElementsByTagName('a');
						for (j=0;j<objA.length;j++) {
							if (obj == objLI[i]) {
								isHigh = objLI[i];

								if (objA[j].className.indexOf('faded') >= 0) {
									objA[j].className = objA[j].className.replace('faded','');
								}
							}
							else {
								if (objA[j].className.indexOf('faded') < 0) {
									objA[j].className = objA[j].className +' faded';
								}
							}					
						}
					}
				}
			}
			else {
				if (out == 1) {
					if (intName) {
						window.clearInterval(intName);
					}

					var objA = document.getElementsByTagName('a');
					for (i=0;i<objA.length;i++) {
						if (objA[i].className.indexOf('faded') >= 0) {			
							unFade(objA[i]);
						}
					}

					isHigh = null;
				}
				else {
					var objA = document.getElementsByTagName('a');
					for (i=0;i<objA.length;i++) {
						if (objA[i].className.indexOf('faded') >= 0) {			
							unFade(objA[i],60);
						}
					}
				}
			}

			if (obj && out == null && keepHigh == null) {	
				fadeMe = window.setInterval(function() {
					hiLight(obj, 1, fadeMe);
				}, 100);
			}
		}
	}
}

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}

String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

String.prototype.isNumeric = function() {
	var RegExp = /^(-)?(\d*)(\.?)(\d*)$/;
	var result = this.match(RegExp);
	return result;
}

String.prototype.isAlpha = function() {
	var RegExp = /^[a-zA-Z]?(-)?(\.?)$/;
	var result = this.match(RegExp);
	return result;
}

String.prototype.isAlphaNumeric = function() {
	var RegExp = /\w/;
	var result = this.match(RegExp);
	return result;
}

function doCapitalize(str) {
	return str.toLowerCase().replace(/\b[a-z]/g, cnvrt);
	function cnvrt() {
	    return arguments[0].toUpperCase();
	}
}

function escMe(str, replaceWith) { 
	str = escape(str);

	for (i=0; i<str.length; i++) { 
		if (str.indexOf("%0D%0A") > -1) { 
			//Windows encodes returns as \r\n hex
			str = str.replace("%0D%0A", replaceWith);
		}
		else if (str.indexOf("%0A") > -1) { 
			//Unix encodes returns as \n hex
			str = str.replace("%0A", replaceWith);
		}
		else if (str.indexOf("%0D") > -1) { 
			//Macintosh encodes returns as \r hex
			str = str.replace("%0D", replaceWith);
		}
	}

	return unescape(str); //unescape all other encoded characters
}

function calcHeight(obj) {
	obj.style.height = obj.contentWindow.document.body.scrollHeight +'px';
}

function eFunc() {
	//empty func
}

function rFunc(url, fvars) {
	var xml = GetXmlHttpObject(eFunc);

	if (fvars == null) {
		fvars = '';
	}

	xml.open ("POST", url , false);
	xml.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	xml.send (fvars);
	
	return xml.responseText;
}

function GetXmlHttpObject(handler) { 
	var objXmlHttp = null;

	if (navigator.userAgent.indexOf("Opera") >= 0) {
		objXmlHttp = new XMLHttpRequest();
		objXmlHttp.onload = handler;
		objXmlHttp.onerror = handler;
		
		return objXmlHttp;
	}

	if (navigator.userAgent.indexOf("MSIE")>=0) {
		var strName = "Msxml2.XMLHTTP";
		if (navigator.appVersion.indexOf("MSIE 5.5") >= 0)
		{
			strName = "Microsoft.XMLHTTP";
		}
		
		try {
			objXmlHttp = new ActiveXObject(strName);
			objXmlHttp.onreadystatechange = handler;
			return objXmlHttp;
		}
		catch(e) {
			alert("Error. Scripting for ActiveX might be disabled")
			return;
		}
	}

	if (navigator.userAgent.indexOf("Mozilla")>=0)
	{
		objXmlHttp = new XMLHttpRequest();
		objXmlHttp.onload = handler;
		objXmlHttp.onerror = handler;
		
		return objXmlHttp;
	}
}

function exeAjax(url, fvars, fname, async) {
	xml = GetXmlHttpObject(fname);

	xml.open ("POST", url , async);
	xml.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	xml.send (fvars);
}

function getForm(frmURL) {
	var xml = GetXmlHttpObject(eFunc);

	var sVars = '';

	xml.open ("POST", frmURL , false);
	xml.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	xml.send (sVars);
	
	return xml.responseText;
}

function addEvent(obj, evType, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, true);
		return true;
	}
	else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+ evType, fn);
		return r;
	}
	else {
		return false;
	}
}

function removeEvent(obj, evType, fn, useCapture) {
	if (obj.removeEventListener) {
		obj.removeEventListener(evType, fn, useCapture);
		return true;
	}
	else if (obj.detachEvent) {
		var r = obj.detachEvent("on"+ evType, fn);
		return r;
	}
	else {
		alert("Handler could not be removed");
	}
}

function getViewportHeight() {
	if (window.innerHeight!=window.undefined) return window.innerHeight;
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientHeight;
	if (document.body) return document.body.clientHeight; 
	return window.undefined; 
}

function getViewportWidth() {
	if (window.innerWidth!=window.undefined) return window.innerWidth; 
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientWidth; 
	if (document.body) return document.body.clientWidth; 
	return window.undefined; 
}

function hideSelectBoxes() {
	for(var i = 0; i < document.forms.length; i++) {
		for(var e = 0; e < document.forms[i].length; e++){
			if(document.forms[i].elements[e].tagName == "SELECT") {
				document.forms[i].elements[e].style.visibility = "hidden";
			}
		}
	}
}

function displaySelectBoxes() {
	for(var i = 0; i < document.forms.length; i++) {
		for(var e = 0; e < document.forms[i].length; e++){
			if(document.forms[i].elements[e].tagName == "SELECT") {
			document.forms[i].elements[e].style.visibility = "visible";
			}
		}
	}
}

function getX(el) {
	if (el) {
		xPos = el.offsetLeft;
		tempEl = el.offsetParent;
		
		while (tempEl != null) {
			xPos += tempEl.offsetLeft;
			tempEl = tempEl.offsetParent;
		}
		return xPos;
	}
	else {
		return null;
	}
}

function getY(el) {
	if (el) {
		yPos = el.offsetTop;
		tempEl = el.offsetParent;
		
		while (tempEl != null) {
			yPos += tempEl.offsetTop;
			tempEl = tempEl.offsetParent;
		}
		return yPos;
	}
	else {
		return null;
	}
}

function setOptions(f, chosen) {
	if (f.id == 'frmSearch') {
		var selbox1 = f.type;
		var selbox2 = f.price;
	}
	else if (f.id == 'frmRegister') {
		var selbox1 = f.aType;
		var selbox2 = f.aPrice;
	}
	else if (f.id == 'frmAlert') {
		var selbox1 = f.aType;
		var selbox2 = f.aPrice;
	}

	selbox1.options.length = 0;
	selbox2.options.length = 0;

	if (chosen == "1" || chosen == "999" || chosen == "") {
		if (f.id == 'frmSearch') {
			selbox1.options[selbox1.options.length] = new Option('All Types','');
			selbox1.options[selbox1.options.length] = new Option('--------------------','');
			//selbox1.options[selbox1.options.length] = new Option('All Types','');
		}
		else {
			if (f.id == 'frmRegister') {
				selbox1.options[selbox1.options.length] = new Option('All','');
				selbox1.options[selbox1.options.length] = new Option('-------------------------','');
			}
			else {
				selbox1.options[selbox1.options.length] = new Option('Any Type','');
				selbox1.options[selbox1.options.length] = new Option('-------------------------','');
			}
		}
		selbox1.options[selbox1.options.length] = new Option('Apartment','2');
		selbox1.options[selbox1.options.length] = new Option('Bungalow','5');
		selbox1.options[selbox1.options.length] = new Option('Detached','4');
		selbox1.options[selbox1.options.length] = new Option('Semi-Detached','3');
		selbox1.options[selbox1.options.length] = new Option('Townhouse','6');

		if (f.id == 'frmSearch') {
			selbox2.options[selbox2.options.length] = new Option('Any Price','');
			selbox2.options[selbox2.options.length] = new Option('--------------------','');
			//selbox2.options[selbox2.options.length] = new Option('Any Price','');
		}
		else {
			if (f.id == 'frmRegister') {
				selbox2.options[selbox2.options.length] = new Option('Any','');
				selbox2.options[selbox2.options.length] = new Option('-------------------------','');
			}
			else {
				selbox2.options[selbox2.options.length] = new Option('Any Price','');
				selbox2.options[selbox2.options.length] = new Option('-------------------------','');
			}
		}
		selbox2.options[selbox2.options.length] = new Option('200,000 or less','0|200000');
		selbox2.options[selbox2.options.length] = new Option('200,000 to 325,000','200000|325000');
		selbox2.options[selbox2.options.length] = new Option('325,000 to 450,000','325000|450000');
		selbox2.options[selbox2.options.length] = new Option('450,000 to 600,000','450000|600000');
		selbox2.options[selbox2.options.length] = new Option('600,000 or more','600000|6000000');
	}
	else {
		if (f.id == 'frmSearch') {
			selbox1.options[selbox1.options.length] = new Option('All Types','');
			//selbox1.options[selbox1.options.length] = new Option('--------------------','');
			//selbox1.options[selbox1.options.length] = new Option('All Types','');
		}
		else {
			if (f.id == 'frmRegister') {
				selbox1.options[selbox1.options.length] = new Option('All','');
			}
			else {
				selbox1.options[selbox1.options.length] = new Option('Any Type','');
				//selbox1.options[selbox1.options.length] = new Option('-------------------------','');
			}
		}

		if (f.id == 'frmSearch') {
			selbox2.options[selbox2.options.length] = new Option('Any Price','');
			selbox2.options[selbox2.options.length] = new Option('--------------------','');
			//selbox2.options[selbox2.options.length] = new Option('Any Price','');
		}
		else {
			if (f.id == 'frmRegister') {
				selbox2.options[selbox2.options.length] = new Option('Any','');
				selbox2.options[selbox2.options.length] = new Option('-------------------------','');
			}
			else {
				selbox2.options[selbox2.options.length] = new Option('Any Price','');
				selbox2.options[selbox2.options.length] = new Option('-------------------------','');
			}
		}
		selbox2.options[selbox2.options.length] = new Option('200,000 or less','0|200000');
		selbox2.options[selbox2.options.length] = new Option('200,000 to 325,000','200000|325000');
		selbox2.options[selbox2.options.length] = new Option('325,000 to 450,000','325000|450000');
		selbox2.options[selbox2.options.length] = new Option('450,000 to 600,000','450000|600000');
		selbox2.options[selbox2.options.length] = new Option('600,000 or more','600000|6000000');
	}
}