function ClearValue(field, strCheck)
	{
		if(field.value == strCheck)
		field.value = "";				
	}
function Repopulate(field, strCheck)
	{
		if(field.value == "")
		field.value = strCheck;
	}	

	function VerifyPasswords() {
		if (document.myForm.strPassword.value != "") {
			if (document.myForm.strPassword.value != document.myForm.strConfirmPassword.value) {
				alert("Your passwords do not match.");
				return false;
			} else
				return true;
		} else
			return true;
	}
var phone_field_length=0; 
function TabNext(obj,event,len,next_field)
{
	if(event == "down"){phone_field_length=obj.value.length;}
else if(event == "up")
	{if(obj.value.length != phone_field_length){phone_field_length=obj.value.length;
	if(phone_field_length == len){next_field.focus();}
	}
	}
} 
	
	function SetLookupDisable(blnDisable) {
		document.myForm.intLookupListingId.disabled = blnDisable;
	}

	function VerifyDelete(strLocation) {
		if (confirm("Are you SURE you want to delete this?"))
			document.location = strLocation;
	}

	function SetDateToToday(strFormName, strElementRoot) {
		var vFormElement;
		vToday = new Date();

		vFormElement = eval("document." + strFormName + "." + strElementRoot + "_month");
		vFormElement.selectedIndex = vToday.getMonth() + 1;

		vFormElement = eval("document." + strFormName + "." + strElementRoot + "_day");
		vFormElement.value = vToday.getDate();

		vFormElement = eval("document." + strFormName + "." + strElementRoot + "_year");
		vFormElement.value = vToday.getFullYear();

		return false;
	};

	function SetShowDateToWeekend(strFormName, strElementRoot, intDay, strStart, strEnd) {
		var vFormElement;
		vToday = new Date();
		intWeekday = vToday.getDay();
		
		if (intWeekday == 0)
			intWeekday = 7;
		
		vNewDate = new Date();
		with (vNewDate) setDate(getDate() + intDay - intWeekday);

		vFormElement = eval("document." + strFormName + ".strShowTimeStart");
		vFormElement.selectedIndex = strStart;

		vFormElement = eval("document." + strFormName + ".strShowTimeEnd");
		vFormElement.selectedIndex = strEnd;

		vFormElement = eval("document." + strFormName + "." + strElementRoot + "_month");
		vFormElement.selectedIndex = vNewDate.getMonth() + 1;

		vFormElement = eval("document." + strFormName + "." + strElementRoot + "_day");
		vFormElement.value = vNewDate.getDate();

		vFormElement = eval("document." + strFormName + "." + strElementRoot + "_year");
		vFormElement.value = vNewDate.getFullYear();

		return false;
	};

	function SetDateToClear(strFormName, strElementRoot) {
		var vFormElement;
		
		vFormElement = eval("document." + strFormName + "." + strElementRoot + "_month");
		vFormElement.selectedIndex = "";

		vFormElement = eval("document." + strFormName + "." + strElementRoot + "_day");
		vFormElement.value = "";

		vFormElement = eval("document." + strFormName + "." + strElementRoot + "_year");
		vFormElement.value = "";

		return false;
	};

	function LookupForDeal(strVarname) {
		var objElement = eval("document.myForm." + strVarname);
		var intValue = objElement.value;

		if (intValue)
			newWindow = window.open('lookup_for_deal.phtml?' + strVarname + '=' + intValue, 'LookupForDeal', 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=no,width=300,height=300,left=50,top=50');
		else
			alert ("Please enter in a value");
	};

	function popupprint(strUrl) {
		newWindow = window.open(strUrl, 'printPage', 'menubar=no,toolbar=yes,location=no,status=no,scrollbars=yes,resizable=yes,width=680,height=300,left=50,top=50');
	};
	
	function popupwin(mylink, windowname) {
		if (! window.focus)return true;
		var href;
		if (typeof(mylink) == 'string')
		   href=mylink;
		else
		   href=mylink.href;
		window.open(href, windowname, 'menubar=no,toolbar=yes,location=no,status=no,scrollbars=yes,resizable=yes,width=300,height=300,left=50,top=50');
		return false;
	}
	
	function AgentBio(intAgentId) {
		document.searchAgents.action = "agent_bio.phtml";
		document.searchAgents.submit();
//		newWindow = window.open('agent_bio.phtml?intAgentId=' + intAgentId, 'agentBioPage', 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=no,width=680,height=300,left=50,top=50');
	};

	function LookupForDealExec() {
		window.opener.myForm.strAddress1.value = document.myForm.strAddress1.value;
		window.opener.myForm.strAddress2.value = document.myForm.strAddress2.value;
		window.opener.myForm.strCity.value = document.myForm.strCity.value;
		window.opener.myForm.strState.value = document.myForm.strState.value;
		window.opener.myForm.strZip.value = document.myForm.strZip.value;
		
		window.close();
	};

	function LookupForListing() {
		var intValue = document.myForm.intLn.value;

		if (intValue)
			newWindow = window.open('lookup_for_listing.phtml?intLookupLn=' + intValue, 'LookupForDeal', 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=no,width=500,height=300,left=50,top=50');
		else
			alert ("Please enter in a value");
	};

	function LookupForListingExec() {
		window.opener.myForm.intLn.value = document.myForm.intLn.value;
		window.opener.myForm.strTyp.value = document.myForm.strTyp.value;
		window.opener.myForm.strUd.value = document.myForm.strUd.value;
		window.opener.myForm.strLag.value = document.myForm.strLag.value;
		window.opener.myForm.strLo.value = document.myForm.strLo.value;
		window.opener.myForm.strOfficeFormName.value = document.myForm.strOfficeFormName.value;
		window.opener.myForm.intLp.value = document.myForm.intLp.value;
		window.opener.myForm.strHsn.value = document.myForm.strHsn.value;
		window.opener.myForm.strCp.value = document.myForm.strCp.value;
		window.opener.myForm.strStr.value = document.myForm.strStr.value;
		window.opener.myForm.strUn.value = document.myForm.strUn.value;
		window.opener.myForm.strCit.value = document.myForm.strCit.value;
		window.opener.myForm.strAdi.value = document.myForm.strAdi.value;
		window.opener.myForm.strAr.value = document.myForm.strAr.value;
		window.opener.myForm.strAreaName.value = document.myForm.strAreaName.value;
		window.opener.myForm.strSub.value = document.myForm.strSub.value;
		window.opener.myForm.strRms.value = document.myForm.strRms.value;
		window.opener.myForm.intBr.value = document.myForm.intBr.value;
		window.opener.myForm.strBth.value = document.myForm.strBth.value;
		window.opener.myForm.strMbb.value = document.myForm.strMbb.value;
		window.opener.myForm.strCars.value = document.myForm.strCars.value;
		window.opener.myForm.strGar.value = document.myForm.strGar.value;
		window.opener.myForm.strPkn.value = document.myForm.strPkn.value;
		window.opener.myForm.strPar.value = document.myForm.strPar.value;
		window.opener.myForm.strFp.value = document.myForm.strFp.value;
		window.opener.myForm.intBlt.value = document.myForm.intBlt.value;
		window.opener.myForm.strLsz.value = document.myForm.strLsz.value;
		window.opener.myForm.strWf.value = document.myForm.strWf.value;
		window.opener.myForm.strBmt.value = document.myForm.strBmt.value;
		window.opener.myForm.strModel.value = document.myForm.strModel.value;
		window.opener.myForm.strTax.value = document.myForm.strTax.value;
		window.opener.myForm.strTxy.value = document.myForm.strTxy.value;
		window.opener.myForm.strAsm.value = document.myForm.strAsm.value;
		window.opener.myForm.strMbs.value = document.myForm.strMbs.value;
		window.opener.myForm.strMbf.value = document.myForm.strMbf.value;
		window.opener.myForm.strB2s.value = document.myForm.strB2s.value;
		window.opener.myForm.strB2f.value = document.myForm.strB2f.value;
		window.opener.myForm.strB3s.value = document.myForm.strB3s.value;
		window.opener.myForm.strB3f.value = document.myForm.strB3f.value;
		window.opener.myForm.strB4s.value = document.myForm.strB4s.value;
		window.opener.myForm.strB4f.value = document.myForm.strB4f.value;
		window.opener.myForm.strLrs.value = document.myForm.strLrs.value;
		window.opener.myForm.strLrf.value = document.myForm.strLrf.value;
		window.opener.myForm.strDrs.value = document.myForm.strDrs.value;
		window.opener.myForm.strDrf.value = document.myForm.strDrf.value;
		window.opener.myForm.strKts.value = document.myForm.strKts.value;
		window.opener.myForm.strKtf.value = document.myForm.strKtf.value;
		window.opener.myForm.strFrs.value = document.myForm.strFrs.value;
		window.opener.myForm.strFrf.value = document.myForm.strFrf.value;
		window.opener.myForm.strRe1.value = document.myForm.strRe1.value;
		window.opener.myForm.strRe2.value = document.myForm.strRe2.value;
		window.opener.myForm.strRe3.value = document.myForm.strRe3.value;
		window.opener.myForm.strRe4.value = document.myForm.strRe4.value;
		window.opener.myForm.strRe5.value = document.myForm.strRe5.value;
		window.opener.myForm.strRe6.value = document.myForm.strRe6.value;
		window.opener.myForm.strA1n.value = document.myForm.strA1n.value;
		window.opener.myForm.strA1s.value = document.myForm.strA1s.value;
		window.opener.myForm.strA1f.value = document.myForm.strA1f.value;
		window.opener.myForm.strA2n.value = document.myForm.strA2n.value;
		window.opener.myForm.strA2s.value = document.myForm.strA2s.value;
		window.opener.myForm.strA2f.value = document.myForm.strA2f.value;
		window.opener.myForm.strA3n.value = document.myForm.strA3n.value;
		window.opener.myForm.strA3s.value = document.myForm.strA3s.value;
		window.opener.myForm.strA3f.value = document.myForm.strA3f.value;
		window.opener.myForm.strA4n.value = document.myForm.strA4n.value;
		window.opener.myForm.strA4s.value = document.myForm.strA4s.value;
		window.opener.myForm.strA4f.value = document.myForm.strA4f.value;
		window.opener.myForm.strA5n.value = document.myForm.strA5n.value;
		window.opener.myForm.strA5s.value = document.myForm.strA5s.value;
		window.opener.myForm.strA5f.value = document.myForm.strA5f.value;
		window.opener.myForm.strTpe.value = document.myForm.strTpe.value;
		window.opener.myForm.strTpc.value = document.myForm.strTpc.value;
		window.opener.myForm.strTmu.value = document.myForm.strTmu.value;
		window.opener.myForm.strTmf.value = document.myForm.strTmf.value;
		window.opener.myForm.strDir.value = document.myForm.strDir.value;
		window.opener.myForm.strDr1.value = document.myForm.strDr1.value;
		window.opener.myForm.strDr2.value = document.myForm.strDr2.value;
		window.opener.myForm.strDr3.value = document.myForm.strDr3.value;
		window.opener.myForm.strUfl.value = document.myForm.strUfl.value;
		window.opener.myForm.intAsf.value = document.myForm.intAsf.value;
		window.opener.myForm.strPta.value = document.myForm.strPta.value;
		window.opener.myForm.strCaa.value = document.myForm.strCaa.value;
		window.opener.myForm.strExp.value = document.myForm.strExp.value;
		window.opener.myForm.strUfe.value = document.myForm.strUfe.value;
		window.opener.myForm.strTnu.value = document.myForm.strTnu.value;
		window.opener.myForm.strUf1.value = document.myForm.strUf1.value;
		window.opener.myForm.strRm1.value = document.myForm.strRm1.value;
		window.opener.myForm.strBr1.value = document.myForm.strBr1.value;
		window.opener.myForm.strBt1.value = document.myForm.strBt1.value;
		window.opener.myForm.strUf2.value = document.myForm.strUf2.value;
		window.opener.myForm.strRm2.value = document.myForm.strRm2.value;
		window.opener.myForm.strBr2.value = document.myForm.strBr2.value;
		window.opener.myForm.strBt2.value = document.myForm.strBt2.value;
		window.opener.myForm.strUf3.value = document.myForm.strUf3.value;
		window.opener.myForm.strRm3.value = document.myForm.strRm3.value;
		window.opener.myForm.strBr3.value = document.myForm.strBr3.value;
		window.opener.myForm.strBt3.value = document.myForm.strBt3.value;
		window.opener.myForm.strUf4.value = document.myForm.strUf4.value;
		window.opener.myForm.strRm4.value = document.myForm.strRm4.value;
		window.opener.myForm.strBr4.value = document.myForm.strBr4.value;
		window.opener.myForm.strBt4.value = document.myForm.strBt4.value;
		window.opener.myForm.strAzn.value = document.myForm.strAzn.value;
		window.opener.myForm.strNbrPhotos.value = document.myForm.strNbrPhotos.value;
		window.opener.myForm.strZp.value = document.myForm.strZp.value;
		window.opener.myForm.strAge.value = document.myForm.strAge.value;
		window.opener.myForm.strE.value = document.myForm.strE.value;
		window.opener.myForm.strW.value = document.myForm.strW.value;
		window.opener.myForm.strN.value = document.myForm.strN.value;
		window.opener.myForm.strS.value = document.myForm.strS.value;
		window.opener.myForm.strFpl.value = document.myForm.strFpl.value;
		window.opener.myForm.strGsd.value = document.myForm.strGsd.value;
		window.opener.myForm.strHsd.value = document.myForm.strHsd.value;
		window.opener.myForm.strJhd.value = document.myForm.strJhd.value;
		window.opener.myForm.strOsd.value = document.myForm.strOsd.value;
		window.opener.myForm.strAir.value = document.myForm.strAir.value;
		window.opener.myForm.strHea.value = document.myForm.strHea.value;
		window.opener.myForm.strPet.value = document.myForm.strPet.value;
		window.opener.myForm.strTourUrl.value = document.myForm.strTourUrl.value;
		window.opener.myForm.strRecmoddate.value = document.myForm.strRecmoddate.value;
		window.opener.myForm.strSt.value = document.myForm.strSt.value;		
		window.close();
	};


	function LookupPropertyType() {
		window.open('lookup_property_type.phtml', 'LookupPropertyType', 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=no,width=400,height=350,left=50,top=50');
	};

	function LookupArea() {
		window.open('lookup_area.phtml', 'LookupArea', 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=no,width=500,height=300,left=50,top=50');
	};

	function SaveListing(intListingId) {
		window.open('/save_listing.phtml?intListingId=' + intListingId, 'SaveListing', 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=no,width=50,height=50,left=50,top=50');
	};

	function DeleteListing(intSavedListingId) {
		window.open('/delete_saved_listing.phtml?intSavedListingId=' + intSavedListingId, 'DeleteListing', 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=no,width=50,height=50,left=50,top=50');
	};

	function DeleteSavedSearch(intSavedSearchId) {
		window.open('/delete_saved_search.phtml?intSearchId=' + intSavedSearchId, 'DeleteSavedSearch', 'menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=no,width=50,height=50,left=50,top=50');
	};

	function SetAgentDropdown(blnDisabledState) {
		document.registrationForm.intAgentUserId.disabled = blnDisabledState;
	};

	function hov(loc,cls) {
	   if(loc.className)
		  loc.className=cls;
	}

	function dynamicSelect(id1, id2) {
		// Feature test to see if there is enough W3C DOM support
		if (document.getElementById && document.getElementsByTagName) {
			// Obtain references to both select boxes
			var sel1 = document.getElementById(id1);
			var sel2 = document.getElementById(id2);
			// Clone the dynamic select box
			var clone = sel2.cloneNode(true);
			// Obtain references to all cloned options 
			var clonedOptions = clone.getElementsByTagName("option");
			// Onload init: call a generic function to display the related options in the dynamic select box
			refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
			// Onchange of the main select box: call a generic function to display the related options in the dynamic select box
			sel1.onchange = function() {
				refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
			};
		}
	}
	function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {
		// Delete all options of the dynamic select box
		while (sel2.options.length) {
			sel2.remove(0);
		}
		// Create regular expression objects for "select" and the value of the selected option of the main select box as class names
		var pattern1 = /( |^)(select)( |$)/;
		var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");
		// Iterate through all cloned options
		for (var i = 0; i < clonedOptions.length; i++) {
			// If the classname of a cloned option either equals "select" or equals the value of the selected option of the main select box
			if (clonedOptions[i].className.match(pattern1) || clonedOptions[i].className.match(pattern2)) {
				// Clone the option from the hidden option pool and append it to the dynamic select box
				sel2.appendChild(clonedOptions[i].cloneNode(true));
			}
		}
	}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_nbGroup(event, grpName) { //v6.0
var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
	if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
	  img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
	  if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
	  nbArr[nbArr.length] = img;
	  for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
		if (!img.MM_up) img.MM_up = img.src;
		img.src = img.MM_dn = args[i+1];
		nbArr[nbArr.length] = img;
	} }
  } else if (event == "over") {
	document.MM_nbOver = nbArr = new Array();
	for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
	  if (!img.MM_up) img.MM_up = img.src;
	  img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])?args[i+1] : img.MM_up);
	  nbArr[nbArr.length] = img;
	}
  } else if (event == "out" ) {
	for (i=0; i < document.MM_nbOver.length; i++) { img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
	nbArr = document[grpName];
	if (nbArr) for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
	document[grpName] = nbArr = new Array();
	for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
	  if (!img.MM_up) img.MM_up = img.src;
	  img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
	  nbArr[nbArr.length] = img;
  } }
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
/*******************************************************************************
*  ruthsarian_utilities.js : 2006.02.27
* -----------------------------------------------------------------------------
*  A group of useful JavaScript utilities that can aid in the development
*  of webpages.
*******************************************************************************/

/* event_attach() takes care of attaching event handlers (functions) to events. 
 * this simplifies the process of attaching multiple handlers to a single event
 *
 * NOTE: the onload stack is executed in a LIFO manner to mimic 
 *       IE's window.attachEvent function. However, Opera also has its own
 *       window.attachEvent function which executes the onload stack in a 
 *       FIFO manner. FIFO is better, but IE has a larger user base, so
 *       LIFO is the way we go.
 */
function event_attach( event , func )
{
	if ( window.attachEvent )
	{
		window.attachEvent( event , func );
	}
	else
	{
		if ( ( typeof( func ) ).toLowerCase() != 'function' )
		{
			return;
		}
		if ( ( typeof( document.event_handlers ) ).toLowerCase() == 'undefined' )
		{
			document.event_handlers = new Array();
		}
		if ( ( typeof( document.event_handlers[ event ] ) ).toLowerCase() == 'undefined' )
		{
			document.event_handlers[ event ] = new Array();
		}
		if ( ( typeof( eval( 'window.' + event ) ) ).toLowerCase() != 'function' )
		{
			eval( 'window.' + event + ' = function () { if ( ( typeof( document.event_handlers[ \'' + event + '\' ] ) ).toLowerCase() != \'undefined\' ) { for ( i = document.event_handlers[ \'' + event + '\' ].length - 1 ; i >= 0  ; i-- ) { document.event_handlers[ \'' + event + '\' ][ i ](); } } } ' );
		}
		document.event_handlers[ event ][ document.event_handlers[ event ].length ] = func;
	}
}

/* Browser Detect  v2.1.6
 * documentation: http://www.dithered.com/javascript/browser_detect/index.html
 * license: http://creativecommons.org/licenses/by/1.0/
 * code by Chris Nott (chris[at]dithered[dot]com)
 *
 * modified to include Dreamcast
 */
function browser_detect() 
{
	var ua			= navigator.userAgent.toLowerCase(); 
	this.isGecko		= (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
	this.isAppleWebKit	= (ua.indexOf('applewebkit') != -1);
	this.isKonqueror	= (ua.indexOf('konqueror') != -1); 
	this.isSafari		= (ua.indexOf('safari') != - 1);
	this.isOmniweb		= (ua.indexOf('omniweb') != - 1);
	this.isDreamcast	= (ua.indexOf("dreamcast") != -1);
	this.isOpera		= (ua.indexOf('opera') != -1); 
	this.isIcab		= (ua.indexOf('icab') != -1); 
	this.isAol		= (ua.indexOf('aol') != -1); 
	this.isIE		= (ua.indexOf('msie') != -1 && !this.isOpera && (ua.indexOf('webtv') == -1)); 
	this.isMozilla		= (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length);
	this.isFirebird		= (ua.indexOf('firebird/') != -1);
	this.isNS		= ((this.isGecko) ? (ua.indexOf('netscape') != -1) : ((ua.indexOf('mozilla') != -1) && !this.isOpera && !this.isSafari && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1)));
	this.isIECompatible	= ((ua.indexOf('msie') != -1) && !this.isIE);
	this.isNSCompatible	= ((ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla);
	this.geckoVersion	= ((this.isGecko) ? ua.substring((ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14)) : -1);
	this.equivalentMozilla	= ((this.isGecko) ? parseFloat(ua.substring(ua.indexOf('rv:') + 3)) : -1);
	this.appleWebKitVersion	= ((this.isAppleWebKit) ? parseFloat(ua.substring(ua.indexOf('applewebkit/') + 12)) : -1);
	this.versionMinor	= parseFloat(navigator.appVersion); 
	if (this.isGecko && !this.isMozilla) {
		this.versionMinor = parseFloat(ua.substring(ua.indexOf('/', ua.indexOf('gecko/') + 6) + 1));
	}
	else if (this.isMozilla) {
		this.versionMinor = parseFloat(ua.substring(ua.indexOf('rv:') + 3));
	}
	else if (this.isIE && this.versionMinor >= 4) {
		this.versionMinor = parseFloat(ua.substring(ua.indexOf('msie ') + 5));
	}
	else if (this.isKonqueror) {
		this.versionMinor = parseFloat(ua.substring(ua.indexOf('konqueror/') + 10));
	}
	else if (this.isSafari) {
		this.versionMinor = parseFloat(ua.substring(ua.lastIndexOf('safari/') + 7));
	}
	else if (this.isOmniweb) {
		this.versionMinor = parseFloat(ua.substring(ua.lastIndexOf('omniweb/') + 8));
	}
	else if (this.isOpera) {
		this.versionMinor = parseFloat(ua.substring(ua.indexOf('opera') + 6));
	}
	else if (this.isIcab) {
		this.versionMinor = parseFloat(ua.substring(ua.indexOf('icab') + 5));
	}
	this.versionMajor	= parseInt(this.versionMinor); 
	this.isDOM1		= (document.getElementById);
	this.isDOM2Event	= (document.addEventListener && document.removeEventListener);
	this.mode		= document.compatMode ? document.compatMode : 'BackCompat';
	this.isWin		= (ua.indexOf('win') != -1);
	this.isWin32		= (this.isWin && (ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1));
	this.isMac		= (ua.indexOf('mac') != -1);
	this.isUnix		= (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1)
	this.isLinux		= (ua.indexOf('linux') != -1);
	this.isNS4x		= (this.isNS && this.versionMajor == 4);
	this.isNS40x		= (this.isNS4x && this.versionMinor < 4.5);
	this.isNS47x		= (this.isNS4x && this.versionMinor >= 4.7);
	this.isNS4up		= (this.isNS && this.versionMinor >= 4);
	this.isNS6x		= (this.isNS && this.versionMajor == 6);
	this.isNS6up		= (this.isNS && this.versionMajor >= 6);
	this.isNS7x		= (this.isNS && this.versionMajor == 7);
	this.isNS7up		= (this.isNS && this.versionMajor >= 7);
	this.isIE4x		= (this.isIE && this.versionMajor == 4);
	this.isIE4up		= (this.isIE && this.versionMajor >= 4);
	this.isIE5x		= (this.isIE && this.versionMajor == 5);
	this.isIE55		= (this.isIE && this.versionMinor == 5.5);
	this.isIE5up		= (this.isIE && this.versionMajor >= 5);
	this.isIE6x		= (this.isIE && this.versionMajor == 6);
	this.isIE6up		= (this.isIE && this.versionMajor >= 6);
	this.isIE7x		= (this.isIE && this.versionMajor == 7);
	this.isIE7up		= (this.isIE && this.versionMajor >= 7);
	this.isIE4xMac		= (this.isIE4x && this.isMac);
}

/* Opacity Displayer, Version 1.0 - http://old.alistapart.com/stories/pngopacity/
 * Copyright Michael Lovitt, 6/2002.
 */
function opacity( strId , strPath , intWidth , intHeight , strClass , strAlt )
{	
	if ( document.pngAlpha )
	{
		document.write( '<div style="height:'+intHeight+'px;width:'+intWidth+'px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+strPath+'.png\', sizingMethod=\'scale\')" id="'+strId+'" class="'+strClass+'"></div>' );
	}
	else if ( document.pngNormal )
	{
		document.write( '<img src="'+strPath+'.png" width="'+intWidth+'" height="'+intHeight+'" name="'+strId+'" border="0" class="'+strClass+'" alt="'+strAlt+'" />' );
	}
	else if ( document.layers )
	{
		return( '<img src="'+strPath+'.gif" width="'+intWidth+'" height="'+intHeight+'" name="'+strId+'" border="0" class="'+strClass+'" alt="'+strAlt+'" />' );
	}
	else
	{
		document.write( '<img src="'+strPath+'.gif" width="'+intWidth+'" height="'+intHeight+'" name="'+strId+'" border="0" class="'+strClass+'" alt="'+strAlt+'" />' );
	}
	return( '' );
}
function opacity_init()
{
	var browser = new browser_detect();
	document.pngAlpha = false;
	document.pngNormal = false;
	document.strExt = ".gif";

	if ( ( browser.isIE55 || browser.isIE6up ) && browser.isWin32 )
	{
		document.pngAlpha = true;
		document.strExt = ".png";
	}
	else if ( 
			( browser.isGecko ) || 
			( browser.isIE5up && browser.isMac ) || 
			( browser.isOpera && browser.isWin && browser.versionMajor >= 6 ) || 
			( browser.isOpera && browser.isUnix && browser.versionMajor >= 6 ) || 
			( browser.isOpera && browser.isMac && browser.versionMajor >= 5 ) || 
			( browser.isOmniweb && browser.versionMinor >= 3.1 ) || 
			( browser.isIcab && browser.versionMinor >= 1.9 ) || 
			( browser.isWebtv ) || 
			( browser.isDreamcast ) 
		)
	{
		document.pngNormal = true;
		document.strExt = ".png";
	}
}

/* handler for Netscape Navigator clients that screw up the display
 * of CSS pages when reloaded
 */
function NN_reloadPage( init )
{
	if ( init == true ) with ( navigator )
	{
		if ( ( appName == "Netscape" ) && ( parseInt ( appVersion ) == 4 ) )
		{
			document.NN_pgW = innerWidth;
			document.NN_pgH = innerHeight;
			event_attach ( 'onresize' , NN_reloadPage );
		}
	}
	else if ( innerWidth != document.NN_pgW || innerHeight != document.NN_pgH )
	{
		location.reload();
	}
}

/* Min Width v1.1.3 by PVII-www.projectseven.com
 * http://www.projectseven.com/tutorials/css/minwidth/index.htm
 *
 * modified for readability and ability to limit application to
 * IE only so CSS min-width property may be used by compliant
 * browsers.
 *
 * NOTE: horizontal spacing (margins, padding, borders) set in
 *       % values may cause IE to crash when using this script.
 *
 * ALSO: padding, margins, and borders on parents of the element
 *       you specify may result in IE getting suck in an infinite
 *       loop. Please be sure to check your layout before you 
 *       publish it!
 */
function set_min_width( obj_name , min_width , ieOnly )
{
	if ( ( typeof( ieOnly ) ).toLowerCase() == 'undefined' )
	{
		ieOnly = true;
	}
	if ( ieOnly == false || ( document.getElementById && navigator.appVersion.indexOf( "MSIE" ) > -1 && !window.opera ) )
	{
		document.min_width_obj_name = obj_name;
		document.min_width_size = min_width;
		document.resizing = false;
		event_attach( 'onload' , control_min_width );
		event_attach( 'onresize' , control_min_width );
	}
}
function control_min_width()
{
	var cw , w , pl , pr , ml , mr , br , bl , ad , theDiv = document.min_width_obj_name;
	var g = document.getElementById( theDiv );
	w = parseInt(document.min_width_size);
	if ( g && document.body && document.body.clientWidth )
	{
		gs = g.currentStyle;
		cw = parseInt( document.body.clientWidth );
		pl = parseInt( gs.paddingLeft );
		pr = parseInt( gs.paddingRight );
		ml = parseInt( gs.marginLeft );
		mr = parseInt( gs.marginRight );
		bl = parseInt( gs.borderLeftWidth );
		br = parseInt( gs.borderRightWidth );
		ml = ml ? ml : 0;
		mr = mr ? mr : 0;
		pl = pl ? pl : 0;
		pr = pr ? pr : 0;
		bl = bl ? bl : 0;
		br = br ? br : 0;
		ad = pl + pr + ml + mr + bl + br;
		if ( cw <= w )
		{
			w -= ad;
			g.style.width = w + "px";
		}
		else
		{
			g.style.width = "auto";
		}
	}
}

/* Cookie API  v1.0.1
 * documentation: http://www.dithered.com/javascript/cookies/index.html
 * license: http://creativecommons.org/licenses/by/1.0/
 * code (mostly) by Chris Nott (chris[at]dithered[dot]com)
 */
function setCookie( name, value, expires, path, domain, secure )
{
	 var curCookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires.toGMTString() : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "");
	document.cookie = curCookie;
}
function getCookie( name )
{
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf( "; " + prefix );
	if ( begin == -1 )
	{
		begin = dc.indexOf(prefix);
		if (begin != 0) return null;
	}
	else
	{
		begin += 2;
	}
	var end = document.cookie.indexOf( ";", begin );
	if ( end == -1 )
	{
		end = dc.length;
	}
	return unescape(dc.substring(begin + prefix.length, end));
}
function deleteCookie( name, path, domain )
{
	var value = getCookie( name );
	if ( value != null )
	{
		document.cookie = name + "=" + 
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			"; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
	return value;
}

/* font size functions operate on the body element's
 * style and defines sizes in percentages. because
 * the default font size is set to 0 in the array,
 * the first value in the font_sizes array should
 * _ALWAYS_ be 100.
 *
 *	var font_sizes = new Array( 100, 110, 120 );
 *	var current_font_size = 0;
 *	event_attach( 'onload' , loadFontSize );
 */
function loadFontSize()
{
	current_font_size = parseInt( '0' + getCookie ( "font_size" ) );
	setFontSize ( current_font_size );
}
function setFontSize( size )
{
	if( size >= 0 && size < font_sizes.length )
	{
		current_font_size = size;
	}
	else if( ++current_font_size >= font_sizes.length )
	{
		current_font_size = 0;
	}
	if ( document.body )
	{
		document.body.style.fontSize = font_sizes[ current_font_size ] + '%';
		setCookie( "font_size" , current_font_size );
	}
}

/* standard trim function to remove leading and trailing 
 * whitespace from a given string
 */
function trim( str )
{
   return str.replace(/^\s*|\s*$/g,"");
}

/* stylesheets should be defined in the HTML via a LINK tag
 * and rel attribute set to "alternate stylesheet". the title
 * attribute is then set in the format of "title : group"
 * this function will disable all but the stylesheet specified
 * by title in the group specified by group.
 *
 * Based on code by Paul Sowden
 * http://www.alistapart.com/articles/alternate/
 *        
 */
function setActiveStyleSheet( title , group )
{
	var i, a, b, g, t;
	if ( !title || !group )
	{
		return;
	}
	for ( i = 0; ( a = document.getElementsByTagName( "link" )[ i ] ); i++ ) 
	{
		if ( a.getAttribute( "rel" ).indexOf( "style" ) != -1 && a.getAttribute( "title" ) )
		{
			b = ( a.getAttribute( "title" ) ).split( ":" );
			g = trim( b[ b.length - 1 ] );
			if ( g.toLowerCase() == group.toLowerCase() )
			{
				a.disabled = true;
				t = trim( ( a.getAttribute( "title" ) ).substring( 0, a.getAttribute( "title" ).length - b[ b.length - 1 ].length - 1 ) );
				if( t.toLowerCase() == title.toLowerCase() )
				{
					a.disabled = false;
				}
			}
			setCookie( "style_" + g.toLowerCase() , title );
		}
	}
}
function getPreferredStylesheet ( group )
{
	return ( getCookie ( "style_" + group ) );
}

/* Son of Suckerfish Dropdowns
 * This attaches an event to each LI element so when the mouseover event triggers,
 * the element's class is altered to include (and remove on mouseout) an extra class.
 * We can then use that class, in conjunction with stylesheets, to trigger drop-down
 * menus that are (mostly) CSS-based.
 *
 * Original: http://www.htmldog.com/articles/suckerfish/dropdowns/
 * Fixes to work with IE/Mac: http://carroll.org.uk/sandbox/suckerfish/bones2.html
 */
function sfHover ( objID )
{
	var browser = new browser_detect();
	if ( browser.isIE && !browser.isIE7up )
	{
		var sfEls = document.getElementById( objID ).getElementsByTagName( "LI" );
		for (var i=0; i<sfEls.length; i++)
		{
			sfEls[i].onmouseover = function()
			{
				this.className+=(this.className.length>0? " ": "") + "sfhover";
			}
			sfEls[i].onmouseout = function()
			{
				this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
			}
		}
	}
}

/*
// ///////////////////////////
// isdefined v1.0
// 
// Check if a javascript variable has been defined.
// 
// Author : Jehiah Czebotar
// Website: http://www.jehiah.com
// Usage  : alert(isdefined('myvar'));
// ///////////////////////////
*/
function isDefined ( variable )
{
    return ( typeof( window[ variable ] ) == "undefined" ) ?  false : true;
}

/* DEMO CODE */
function rmHoverAndDelay( objID )
{
	if ( document.getElementById )
	{
		if ( !isDefined( "rmHaD_guid" ) )
		{
			rmHaD_guid = 0;
			rmHaD_over = function ( e ) { e.className += ( e.className.length > 0 ? " " : "" ) + "sfhover"; }
			rmHaD_out  = function ( e ) { e.className = e.className.replace( new RegExp( "( ?|^)sfhover\\b" ), "" );  }
			rmHaD_Els  = document.getElementById( objID ).getElementsByTagName( "LI" );
			rmHaD_Last = -1;
			rmHaD_Delay = 500;
			rmHaD_OverGlobalTimeout = null;
		}

		var i = rmHaD_guid;
		rmHaD_guid += rmHaD_Els.length;
		var newMaxGUID = rmHaD_guid;

		for ( ; i < newMaxGUID ; i++ )
		{
			if ( rmHaD_Els[i].className.indexOf( "rMenu-expand" ) >= 0 )
			{
				rmHaD_Els[i].rmTimeout = null;
				rmHaD_Els[i].rmId = i;
				rmHaD_Els[i].onmouseover = function() 
				{
					clearTimeout ( rmHaD_OverGlobalTimeout );
//					clearTimeout ( this.rmTimeout );
					rmHaD_OverGlobalTimeout = setTimeout( 'rmHaD_over( rmHaD_Els[' + this.rmId + '] )', rmHaD_Delay );
				}
				rmHaD_Els[i].onmouseout  = function()
				{
					this.rmTimeout = setTimeout( 'rmHaD_out( rmHaD_Els[' + this.rmId + '] )', rmHaD_Delay );
				}
			}
		}
	}
}

/***********************************************
* Image Thumbnail viewer- © Dynamic Drive (www.dynamicdrive.com)
* Last updated Sept 26th, 03'. This notice must stay intact for use
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat" && !window.opera)? document.documentElement : document.body
}

function enlarge(which, e, boxid){
if (ie||ns6){
crossobj=document.getElementById? document.getElementById(boxid) : document.getElementsByTagName(boxid)
var dragbarid = 'd-' + boxid;

crossobj.innerHTML='<div align="left" class="dragbar" id="'+dragbarid+'"><span class="closetext" onClick="closepreview(\''+boxid+'\')">Close</span> </div><img class="photo-full" src="'+which+'">'
crossobj.style.visibility="visible"
document.reload;
return false
}
else //if NOT IE 4+ or NS 6+, simply display image in full browser window
return true
}

function closepreview(boxid){
crossobj=document.getElementById? document.getElementById(boxid) : document.getElementsByTagName(boxid)
crossobj.innerHTML='<img src="/images/spacer.gif">'
crossobj.style.visibility="hidden"
}


	if ( ( typeof( NN_reloadPage ) ).toLowerCase() != 'undefined' ) { NN_reloadPage( true ); }
	if ( ( typeof( opacity_init  ) ).toLowerCase() != 'undefined' ) { opacity_init(); }
	if ( ( typeof( set_min_width ) ).toLowerCase() != 'undefined' ) { set_min_width( 'pageWrapper' , 940 ); }

/***********************************************
* Image Thumbnail viewer- © Dynamic Drive (www.dynamicdrive.com)
***********************************************/
var ie=document.all
var ns6=document.getElementById&&!document.all
var ns4=document.layers

/***************************
* MORTGAGE CALCUALTOR
***************************/
function Morgcal() { 
form = document.mortgageForm ;
mortresults=document.getElementById('Results');
LoanAmount= convertToNumber(form.LoanAmount);
DownPayment= convertToNumber(form.LoanAmount) * convertToNumber(form.DownPayment) / 100;
AnnualInterestRate = convertToNumber(form.InterestRate)/100 ;
Years= convertToNumber(form.NumberOfYears) ;
MonthRate=AnnualInterestRate/12 ;
NumPayments=Years*12 ;
Prin=LoanAmount-DownPayment ;
MonthPayment=Math.floor((Prin*MonthRate)/(1-Math.pow((1+MonthRate),(-1*NumPayments)))*100)/100 ;
MonthlyTax=convertToNumber(form.Taxes)/12;
MonthlyAssessment = convertToNumber(form.Assessment)*1;
TotalPayment=MonthPayment+MonthlyTax+MonthlyAssessment;
form.DownPmt.value=addCommas(DownPayment.toFixed(0));
form.Prin.value=addCommas(Prin.toFixed(0));
form.MonthlyPayment.value=addCommas(MonthPayment.toFixed(0));
form.MonthlyAssessment.value=addCommas(MonthlyAssessment.toFixed(0));
form.MonthlyTax.value=addCommas(MonthlyTax.toFixed(0));
form.MonthlyTotal.value=addCommas(TotalPayment.toFixed(0));
mortresults.style.visibility='visible';
} 
function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}
function convertToNumber(box){
val=box.value;
val = val.replace(/[^0-9.-]/g, ''); // strip non-digit chars
val = stripDuplicateChars(val, '.', 1, 0); // strip excess decimals
val = stripDuplicateChars(val, '-', 0, 1); // strip excess minus signs
box.value=addCommas(val);
return val; // return value
}
function stripDuplicateChars(str, strip, n, s){
var count=0; var stripped=str.substring(0, s); var chr;
for (var i=s; i<str.length; i++){ chr = str.substring(i, i+1);
if (chr == strip){ count++; if (count<n+1){ stripped = stripped +
chr;}}
else {stripped = stripped + chr;}} return stripped;
}
function BookmarkThisPage(){
var title = 'Chicago Home Estates - '+document.title;
var url = location.href;
var skipCpcAds = url.indexOf("gclid") - 1;
if (skipCpcAds > 0) url = url.substr(0,skipCpcAds);
if (document.all)
window.external.AddFavorite(url, title);
else
alert("Your browser does not support this function.\nPress CTRL-D (Netscape,Firefox,Safari) \nor CTRL-T (Opera) to bookmark");
}
function goToSelectedPage(box, prefix, suffix)
{
destination = prefix+box.value+suffix;
if (destination) location.href = destination;
}
function checkLen(x,y)
{
if (y.length==x.maxLength)
	{
	var next=x.tabIndex + 1;
	if (next<document.getElementById("registrationForm").length)
		{
		document.getElementById("registrationForm").elements[next].focus();
		}
	}
}
function checkLenNumeric(x,y)
{
y=y.replace(/[^0-9]/g, '');
x.value=y;
if (y.length==x.maxLength)
	{
	var next=x.tabIndex + 1;
	if (next<document.getElementById("registrationForm").length)
		{
		document.getElementById("registrationForm").elements[next].focus();
		}
	}
}

/***********************************************
* Cool DHTML tooltip script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var offsetxpoint=-60 //Customize x offset of tooltip
var offsetypoint=-50 //Customize y offset of tooltip
var enabletip=false

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ddrivetip(thetext){
document.onmousemove=positiontip
if (ns6||ie){
tipobj.innerHTML=thetext
enabletip=true
}
}

function positiontip(e){
if (enabletip){
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window
var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20

var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth)
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
else if (curX<leftedge)
tipobj.style.left="5px"
else
//position the horizontal position of the menu where the mouse is positioned
tipobj.style.left=curX+offsetxpoint+"px"

//same concept with the vertical position
tipobj.style.top=curY+offsetypoint+"px"
tipobj.style.visibility="visible"
}
}

function hideddrivetip(){
enabletip=false
tipobj.innerHTML='<img src="/images/spacer.gif">'
tipobj.style.visibility="hidden"
}

