﻿var tabs = new Array();
var resultPagesXml = new Array();
var detailPagesXml = new Array();
var userListingsTagsAndRatings = new Array();
var currentPhotoIndex = 0;

function replaceIframeUrl(iframe, url) {
	if (iframe.contentDocument)
		iframe.contentDocument.location.replace(url);
	else if (iframe.contentWindow)
		iframe.contentWindow.document.location.replace(url);
	else
		iframe.src = url;
}

function showPhotoPopup(ln, photoIndex) {

	ln = currentEncodedID;
	hideMap();
	hideSendEmail();

	photoPopupEnlargePhoto(photoIndex);
	var tl = document.getElementById('topLeft');
	var s = document.getElementById('photoPopup');
	Position.clone(tl, s, { setWidth: false, setHeight: false, offsetLeft: -20, offsetTop: -30 });
	s.style.display = '';

	if (__EnableGoogleTracking__)
		urchinTracker('/searchdetail/photos/' + currentDetailID);
}


function photoPopupEnlargePhoto(photoIndex) {
	var photoUrl = currentFullImagePattern.replace('__SIZE__', 'full').replace('__IMAGE_NUMBER__', photoIndex);
	document.getElementById('enlargedPhoto').src = photoUrl;

	highlightPhotoThumbnail(photoIndex, 'photoPopupThumbnailDiv');
}

function showRequest(requestType, ln) {
	ln = currentDetailID;
	hideMap();
	hideSendEmail();

	var tl = document.getElementById('topLeft');
	var showing = document.getElementById('floatingRequestShowing');
	var showingIframe = document.getElementById('showingIframe');

	Position.clone(tl, showing, { setWidth: false, setHeight: false });

	var u = __ApplicationBase__ + 'RequestShowing.aspx?ln=' + ln + '&type=' + requestType;
	replaceIframeUrl(showingIframe, u);

	showing.style.display = '';

	if (__EnableGoogleTracking__)
		urchinTracker('/searchdetail/request' + requestType + '/' + currentDetailID);
}

function sendEmail(eln) {
	eln = currentEncodedID;
	hideMap();
	hideRequestShowing();

	var tl = document.getElementById('topLeft');
	var rs = document.getElementById('floatingSendEmail');
	var iframe = document.getElementById('emailIframe');

	Position.clone(tl, rs, { setWidth: false, setHeight: false });
	var u = __ApplicationBase__ + 'SendEmail.aspx?Property=' + eln;
	replaceIframeUrl(iframe, u);

	rs.style.display = '';

	if (__EnableGoogleTracking__)
		urchinTracker('/searchdetail/sendemail/' + currentDetailID);
}


function hidePhotoPopup() {
	document.getElementById('photoPopup').style.display = 'none';
}

function hideRequestShowing() {
	document.getElementById('floatingRequestShowing').style.display = 'none';
}

function hideMap() {
	document.getElementById('floatingMap').style.display = 'none';
}

function hideSendEmail() {
	document.getElementById('floatingSendEmail').style.display = 'none';
}


function getTabIndexForListingNumber(listingNumber) {
	for (var tabIndex = 0; tabIndex < tabs.length; tabIndex++)
		if (tabs[tabIndex].listingNumber == listingNumber)
		return tabIndex;

	return -1;
}

function showPropertyDetailResponse(originalRequest) {
	var xmldoc = originalRequest.responseXML;
	detailPagesXml['ln' + loadingID] = xmldoc;
	updateDetail(xmldoc);
}

function updateDetail(xmldoc) {
	var title;
	var permaLink;

	var properties = xmldoc.getElementsByTagName('property');
	var property = properties.item(0);

	currentEncodedID = property.getAttribute("encodedid");
	currentID = property.getAttribute("id");
	currentDetailID = loadingID = currentID;


	var title = property.getElementsByTagName('title');
	if (title && title.length > 0 && title[0].firstChild) {
		title = title[0].firstChild.data;
		document.title = title;
	}

	var fields = property.getElementsByTagName('field');

	for (var i = 0; i < fields.length; i++) {
		var item = fields[i];
		var v = (item.firstChild) ? item.firstChild.data : "";
		var key = item.getAttribute("name");
		var elementId = "field_" + key;

		var fieldNode = detailHtmlElements[elementId];

		if (!fieldNode) {
			fieldNode = document.getElementById(elementId);
			detailHtmlElements[elementId] = fieldNode;
		}

		if (fieldNode) {
			if (key == 'PermaLinkUrl') {
				permaLink = v;
				fieldNode.href = permaLink;
			} else if (key == 'VirtualTourUrl') {
				fieldNode.href = v;

				var hasVt = (v != '' && v != null);
				document.getElementById('vtExistsDiv').style.display = (hasVt) ? '' : 'none';
				document.getElementById('vtDoesNotExistDiv').style.display = (!hasVt) ? '' : 'none';

			} else if (key == 'iCalUrl') {
				fieldNode.href = v;
			} else if (key == 'PdfBrochureUrl') {
				fieldNode.href = v;			
			} else {
				fieldNode.innerHTML = v;
			}

			switch (key) {
				case 'MainPrice':
					if (document.getElementById('CalcListPrice'))
						document.getElementById('CalcListPrice').value = v;
					break;
				case 'YearlyTax':
					if (document.getElementById('CalcTaxes'))
						document.getElementById('CalcTaxes').value = v;
					break;
				case 'MonthlyAssessment':
					if (document.getElementById('CalcAssessment'))
						document.getElementById('CalcAssessment').value = v;
					break;
				case 'FullAddress':
					if (document.getElementById('field_FullAddress2'))
						document.getElementById('field_FullAddress2').innerHTML = v;
					if (document.getElementById('field_FullAddress3'))
						document.getElementById('field_FullAddress3').innerHTML = v;
					break;
				case 'Description':
					if (document.getElementById('printDescription'))
						document.getElementById('printDescription').innerHTML = v;
					break;
			}
		}
	}


	var numRooms = 0;
	var roomsTbody = document.getElementById('roomsTbody');
	if (roomsTbody) {
		var numRowsToDelete = roomsTbody.rows.length;
		for (var c = 0; c < numRowsToDelete; c++) {
			roomsTbody.deleteRow(0);
		}

		var rooms = property.getElementsByTagName('room');
		if (rooms) {
			numRooms = rooms.length;
			for (var c = 0; c < rooms.length; c++) {
				var r = roomsTbody.insertRow(c);
				r.insertCell(0).innerHTML = rooms.item(c).getAttribute('name');
				r.insertCell(1).innerHTML = rooms.item(c).getAttribute('size');
				r.insertCell(2).innerHTML = rooms.item(c).getAttribute('level');
				r.insertCell(3).innerHTML = rooms.item(c).getAttribute('flooring');
			}
		}
	}

	var interiorFeaturesTbody = document.getElementById('interiorFeaturesTbody');
	if (interiorFeaturesTbody)
		interiorFeaturesTbody.style.display = (numRooms > 0) ? '' : 'none';



	var imagesElement = xmldoc.getElementsByTagName('images');
	currentFullImagePattern = imagesElement.item(0).getAttribute("url-pattern");
	var numPropertyPhotos = imagesElement.item(0).getAttribute("num");
	currentNumPhotos = numPropertyPhotos;
	var mainImageItems = property.getElementsByTagName('main');
	if (mainImageItems && mainImageItems.length > 0) {
		mainImage = mainImageItems.item(0);
	}

	var mainImage = null;
	var mainImageItems = property.getElementsByTagName('main');
	if (mainImageItems && mainImageItems.length > 0) {
		mainImage = mainImageItems.item(0);
	}

	fieldNode = document.getElementById("d-mainimage");
	if (fieldNode) {

		var imgMainImage = document.getElementById('img-mainimage');
		if (imgMainImage)
			imgMainImage.style.display = 'none'; // Always set to 'none'.  print.css will override this
	
		if (mainImage && mainImage.firstChild) {
			fieldNode.style.backgroundImage = 'url(' + mainImage.firstChild.data + ')';
			fieldNode.style.backgroundPosition = "0px 0px";
			fieldNode.style.display = '';

			if (imgMainImage) {
				imgMainImage.src = mainImage.firstChild.data;
			}

			highlightPhotoThumbnail(-1, 'detailThumbnailDiv');
		}
		else {
			fieldNode.style.backgroundImage = '';

			if (imgMainImage) {
				imgMainImage.style.display = 'none';
			}
		}
	}

	var largePhotoTag = document.getElementById('photoPopup');
	if (largePhotoTag && largePhotoTag.style.display != 'none')
		photoPopupEnlargePhoto(0);

	currentPhotoIndex = 0;
	var numThumbnails = numPropertyPhotos;
	var compositeThumbnail = property.getElementsByTagName('composite-thumbnail');


	fieldNode = document.getElementById("morePhotosLink");
	if (fieldNode) {
		if (numPropertyPhotos > 9) {
			fieldNode.style.display = '';
			var numMorePhotos = document.getElementById("numMorePhotos");
			if (numMorePhotos)
				numMorePhotos.innerHTML = numPropertyPhotos - 9 + ' more photo' + ((numPropertyPhotos - 9 != 1) ? 's' : '');
		} else {
			fieldNode.style.display = 'none';
		}
	}
	
	if (numThumbnails > 0) {
		for (var i = 0; i < numThumbnails; i++) {
			fieldNode = document.getElementById("detailThumbnailDiv_" + i);
			fieldNode2 = document.getElementById("photoPopupThumbnailDiv_" + i);
			
			if (fieldNode || fieldNode2) {
				var pic1 = new Image();
				pic1.src = compositeThumbnail[0].firstChild.data
				imageCache["mls" + currentID] = pic1;

				if (fieldNode) {
					fieldNode.style.backgroundImage = 'url(' + compositeThumbnail[0].firstChild.data + ')';
					fieldNode.style.display = '';
				}

				if (fieldNode2) {
					fieldNode2.style.backgroundImage = 'url(' + compositeThumbnail[0].firstChild.data + ')';
					fieldNode2.style.display = '';
				}
			}
		}

		if (compositeThumbnail && compositeThumbnail.length > 0 && compositeThumbnail[0].firstChild) {
			currentCompositePhoto = compositeThumbnail[0].firstChild.data.replace('60x45', '350x253');
			setTimeout("preloadMediumComposite();", 750);
		}
	}

	for (var i = numThumbnails; i < 15; i++) {
		fieldNode = document.getElementById("detailThumbnailDiv_" + i);
		fieldNode2 = document.getElementById("photoPopupThumbnailDiv_" + i);
		
		if (fieldNode) {
			fieldNode.style.display = 'none';
		}

		if (fieldNode2) {
			fieldNode2.style.display = 'none';
		}
	}

	// Agent only
	var historyTable = document.getElementById('historyTable');
	if (historyTable) {
		var numRowsToDelete = historyTable.rows.length;
		for (var c = 0; c < numRowsToDelete; c++) {
			historyTable.deleteRow(0);
		}

		var changes = property.getElementsByTagName('change');
		if (changes) {
			numChanges = changes.length;
			for (var c = 0; c < changes.length; c++) {
				var v = (changes.item(c).firstChild) ? changes.item(c).firstChild.data : "";

				var r = historyTable.insertRow(c);
				r.insertCell(0).innerHTML = changes.item(c).getAttribute('date');
				r.insertCell(1).innerHTML = v;
			}
		}
	}


	stopLoading();

	if (_MoreAtAddressHover_ == '') {
		highlightSelectedTab(currentDetailID);
	}

	// Star Rating
	var numStars = null;
	var rt = userListingsTagsAndRatings['ln' + currentDetailID];
	if (rt && rt.rating)
		numStars = rt.rating;

	if (numStars != null) {
		preSet = document.getElementById('_' + numStars);
		off(preSet);
	}
	else {
		preSet = null; //document.getElementById('_' + rating);
		off(document.getElementById('_' + 1));
	}

	var rt = userListingsTagsAndRatings['ln' + currentDetailID];
	if (rt && rt.rating)
		numStars = rt.rating;
			
	var allTagElements = getAllTagHtmlElements();
	for (var c = 0; c < allTagElements.length; c++) {

		var tagNode = allTagElements[c];

		if (!tagNameIsSpecial(tagNode.tagName) && !tagNameIsPredefined(tagNode.tagName)) {

			var isSelected = false;

			if (rt && rt.tags) {

				for (var t = 0; t < rt.tags.length; t++) {
					if (rt.tags[t].toLowerCase() == tagNode.tagName.toLowerCase()) {
						isSelected = true;
						break;
					}
				}
			}

			tagNode.checkedIcon.src = __MediaBase__ + 'images/' + ((isSelected) ? 'icons/icon_rem_tag.' + __IconExtention__ : 'icons/icon_tag.' + __IconExtention__);

			//tagNode.checkedIcon.src = '<%=MediaBase%>images/' + ((isSelected) ? 'icons/bullet_delete.gif' : 'menu/icon_tag.gif');
			//if (tagNode.topNode.style.display = '')
			//tagNode.topNode.style.display = '';
		}

		//tagNode.topNode.style.display = '';  //((isSelected) ? '' : 'none');
		//
	}

    /*
	var shareUrl = permaLink.replace("www.", "share.");
	if (addthis_share) {
		addthis_share.title = title;
		addthis_share.url = shareUrl;
	}

	var addT = document.getElementById('addthisToolbox');
	if (addT) {
		addT.setAttribute('addthis:title', title);
		addT.setAttribute('addthis:url', shareUrl);
	}
    */


	var fieldNodePt = detailHtmlElements['field_PropertyType'];
	var calcTbody = document.getElementById('calculator');

	if (fieldNodePt && fieldNodePt.innerHTML != 'Rental Home') {

		calculatePayment();
		
		if (calcTbody)
			calcTbody.style.display = '';
	} else {
		if (calcTbody)
			calcTbody.style.display = 'none';
	}
	
	
	if (__EnableGoogleTracking__)
		urchinTracker('/searchdetail/' + currentDetailID);



    // Update 'addthis' buttons
    var shareUrl = permaLink.replace("http://www.", "http://share.");
	
	var addthisCompact = document.getElementById('addthis_compact');
	if (addthisCompact) {
	    addthisCompact.share.url = shareUrl;
		addthisCompact.share.title = document.title;
	}


	var atButtons = ['facebook', 'google', 'email'];
	for (var cc = 0; cc < atButtons.length; cc++) {
		var addthisButton = document.getElementById('addthis_' + atButtons[cc]);
		if (addthisButton) {
			var u = addthisButton.href;
			u = u.replace(/(&|\?)url=[^&]*/, '&url=' + escape(shareUrl));
			u = u.replace(/(&|\?)title=[^&]*/, '&title=' + escape(document.title));
			addthisButton.href = u;
		}
	}

}

function doesLabelExist(labelName) {

	return (getTagHtmlElement(labelName) != null);
}

function getTagHtmlElement(tagName) {

	if (tagName == null)
		return null;
		
	var allTagElements = getAllTagHtmlElements();

	for (var c = 0; c < allTagElements.length; c++) {
		if (allTagElements[c].tagName != null && allTagElements[c].tagName.toLowerCase() == tagName.toLowerCase())
			return allTagElements[c];
	}

	return null;
}

function getAllTagHtmlElements() {
	var tagNodes = new Array();

	var quickTagsList = document.getElementById('detail-tags');
	var imgTags = quickTagsList.getElementsByTagName("img");

	for (var c = 0; c < imgTags.length; c++) {
		var imgTag = imgTags.item(c);

		if (imgTag.id.indexOf("tag") == 0 && imgTag.id.indexOf("tagLink") != 0) {
			var t = imgTag.parentNode.lastChild.nodeValue;

			if (t == null)
				t = '';

			var tagNode = new Object();
			tagNode.topNode = imgTag.parentNode.parentNode;
			tagNode.tagName = t;
			tagNode.linkNode = imgTag.parentNode;
			tagNode.checkedIcon = imgTag;

			tagNodes.push(tagNode);
		}
	}

	return tagNodes;
}

function highlightSelectedTab(selectedListedNumber) {
	var selectedTabIndex = getTabIndexForListingNumber(selectedListedNumber);

	for (var tabIndex = 0; tabIndex < tabs.length; tabIndex++) {
		var t = document.getElementById('result_tab_' + tabIndex)

		if (tabIndex == selectedTabIndex) {
			t.onmouseover = '';
			t.onmouseout = '';
			t.className = 'prop-on';
			t.style.backgroundColor = '#e6edf3';
		}
		else {
			t.className = 'prop';
			t.onmouseover = function() { this.style.backgroundColor = '#d0dae4'; };
			t.onmouseout = function() { this.style.backgroundColor = '#e6edf3'; };
			t.style.backgroundColor = '#e6edf3';
		}
	}
}

function preloadMediumComposite() {
	var pic1 = new Image();
	pic1.src = currentCompositePhoto;
	imageCache["mlsM" + currentID] = pic1;
}

function showPhoto(photoIndex) {
	var previousPhotoIndex = currentPhotoIndex;
	currentPhotoIndex = photoIndex;

	fieldNode = document.getElementById("d-mainimage");
	if (fieldNode) {

		if (fieldNode.style.backgroundImage.indexOf(currentCompositePhoto) == -1)
			fieldNode.style.backgroundImage = 'url(' + currentCompositePhoto + ')';

		fieldNode.style.backgroundPosition = "0px " + (-photoIndex * 253) + "px";
	}

	var imgMainImage = document.getElementById('img-mainimage');
	if (imgMainImage)
		imgMainImage.style.display = 'none'; // Always set to 'none'.  print.css will override this

	highlightPhotoThumbnail(photoIndex, 'detailThumbnailDiv');
}

function highlightPhotoThumbnail(photoIndex, divIdPrefix) {
	
	for (var c = 0; c < 15; c++) {
		fieldNode = document.getElementById(divIdPrefix + '_' + c);
		if (fieldNode) {
			fieldNode.style.borderWidth = '1px';
			fieldNode.style.margin = '0px 1px 5px 0px';
		} else {
			break;
		}
	}	
	

	fieldNode = document.getElementById(divIdPrefix + '_' + photoIndex);
	if (fieldNode) {
		fieldNode.style.borderWidth = '3px';
		fieldNode.style.margin = '-2px -1px 3px -2px';
	}
}

function ChangeOrderBy(dd) {

	resultPagesXml.length = 0;
	orderBy = dd[dd.selectedIndex].value;
	changeList(-pageNum);
}


function mapIframeLoaded() {
	isMapIframeLoaded = true;

	if (delayedLat != 0) {
		showMap(delayedLat, delayedLng, delayedShowAll);
	}
}

function showMap(lat, lng, showAll) {
	lat = currentLat;
	lng = currentLng;

	if (!isMapIframeLoaded) {
		delayedLat = lat;
		delayedLng = lng;

		if (showAll)
			delayedShowAll = true;
		return (void (1));
	}
	if (showAll)
		document.getElementById('showAllResultsOnMap').click();

	hideRequestShowing();
	hideSendEmail();

	var tl = document.getElementById('topLeft');
	var map = document.getElementById('floatingMap');
	var mapIframe = document.getElementById('mapIframe');
	
	if (__EnableAjax__) {
		if (map.style.display == 'none') {
			map.style.display = '';
			resized();
			window.setTimeout("mapIframe.gotoProperty(" + lat + ", " + lng + ", true);", 500);
		}
		
		mapIframe.gotoProperty(lat, lng, true);
	} else {
		map.style.display = '';
		Position.clone(tl, map, { setWidth: false, setHeight: false });

		var u = __ApplicationBase__ + 'PropertyMap.aspx?ln=' + _DetailPropertyID_;
		replaceIframeUrl(mapIframe, u);

	}

	if (__EnableGoogleTracking__)
		urchinTracker('/searchdetail/showmap/' + currentDetailID);
}


function startLoading() {
	numLoading++;
	setTimeout("startLoadingTimeOut()", 225);
	//document.getElementById('loadingDiv').style.display = '';
}

function startLoadingTimeOut() {
	if(numLoading > 0)
		document.getElementById('loadingDiv').style.display = '';
}

function stopLoading() {
	numLoading--;

	if(numLoading == 0)
		document.getElementById('loadingDiv').style.display = 'none';
}

function showTabPropertyDetail(tabIndex, recenter, options) {
	var c = tabs[tabIndex];
	var ln = c.listingNumber;

	if (_MoreAtAddressHover_)
		ln = _MoreAtAddressHover_;
	
	showPropertyDetail(ln, c.lat, c.lng, recenter, options);
}



function changeList(offset) {
	changeToList(pageNum + offset);
}


function changeToListResponse(originalRequest) {
	if (originalRequest.responseText == 'LoginRequired') {
		document.location = _LoginUrl_;
		return;
	}

	var xmldoc = originalRequest.responseXML;
	resultPagesXml[pageNum] = xmldoc;

	var results = xmldoc.getElementsByTagName('r');
	for (var resultIndex = 0; resultIndex < results.length; resultIndex++) {
		var result = results.item(resultIndex);
		var listingNumber = result.getAttribute("id")
		var rating = result.getAttribute("r");
		var key = 'ln' + listingNumber;

		var tagsList = new Array();

		var tagsXml = result.getElementsByTagName('t');
		if (tagsXml) {
			for (var tc = 0; tc < tagsXml.length; tc++) {
				tagName = tagsXml.item(tc).getAttribute("n");
				tagsList.push(tagName);
			}
		}

		if (rating == null)
			userListingsTagsAndRatings['ln' + listingNumber] = { 'rating': null, 'tags': tagsList };
		else
			userListingsTagsAndRatings['ln' + listingNumber] = { 'rating': rating, 'tags': tagsList };
	}

	updateResultList(xmldoc);
}

function updatePaginator(pageNumber) {
	document.getElementById('currentPageNum').innerHTML = pageNumber;
	document.getElementById('currentPageNumBottom').innerHTML = pageNum;
}

function updateResultList(xmldoc) {
	var results = xmldoc.getElementsByTagName('r')

	//<r id="06492780" p="$10,500,000" img="6492780/6334658106/25-E-Banks-CHICAGO-IL-60610-0.jpg" a="25 E Banks" un="" bd="8" bt="9" half="2" lat="41.9068" lng="-87.6276"/>

	for (var resultIndex = 0; resultIndex < results.length; resultIndex++) {
		var result = results.item(resultIndex);
		tabIndex = resultIndex;


		var ln = result.getAttribute("id");
		var lat = result.getAttribute("lat");
		var lng = result.getAttribute("lng");
		tabs[tabIndex] = { 'listingNumber': ln, 'encryptedListingNumber': result.getAttribute("eid"), 'lat': lat, 'lng': lng };

		document.getElementById('result_tab_address_' + tabIndex).innerHTML = result.getAttribute("a");
		document.getElementById('result_tab_price_' + tabIndex).innerHTML = result.getAttribute("p");
		document.getElementById('result_tab_bed_' + tabIndex).innerHTML = result.getAttribute("bd");
		document.getElementById('result_tab_bath_' + tabIndex).innerHTML = result.getAttribute("bt") + ((result.getAttribute("half") != null && result.getAttribute("half") > 0) ? '&#189;' : '');

		var mpay = document.getElementById('result_tab_payment_' + tabIndex)
		if (mpay != null)
			mpay.innerHTML = result.getAttribute("m");


		if (result.getAttribute("un") != null && result.getAttribute("un") != '')
			document.getElementById('result_tab_unit_' + tabIndex).innerHTML = 'Unit ' + result.getAttribute("un") + '<br/>';
		else
			document.getElementById('result_tab_unit_' + tabIndex).innerHTML = '';


		var thumbnailDiv = document.getElementById('result_tab_thumbnail_' + tabIndex);
		if (result.getAttribute("img") != "")
			thumbnailDiv.style.backgroundImage = 'url(' + __PropertyImageBase__ + result.getAttribute("img") + ')';
		else
			thumbnailDiv.style.backgroundImage = '';


		if (thumbnailDiv.innerHTML != '')
			thumbnailDiv.innerHTML = ''; // Clear about an img that might be in the div tag

		thumbnailDiv.style.display = 'block';
		updateTabIcons(tabIndex, ln);



		var moreResultsAtAddress = result.getElementsByTagName('other');
		var numMoreResults = 0;
		if (moreResultsAtAddress && moreResultsAtAddress.item(0))
			numMoreResults = moreResultsAtAddress.item(0).getAttribute('count');

		if (numMoreResults > 0) {
			document.getElementById('more_listings_' + tabIndex).style.display = '';
			document.getElementById('more_listings_count_' + tabIndex).innerHTML = numMoreResults;


			var otherListings = moreResultsAtAddress.item(0).getElementsByTagName('i');
			var moreListingsDiv = document.getElementById('resultsAtSameAddress_tab_' + tabIndex);
			var moreListingsHtml = '';
			for (var c = 0; c < otherListings.length; c++) {
				var moreID = otherListings.item(c).getAttribute('id');
				var morePrice = otherListings.item(c).getAttribute('p');
				var moreUnit = otherListings.item(c).getAttribute('un');
				var moreBeds = otherListings.item(c).getAttribute('bd');
				var moreBaths = otherListings.item(c).getAttribute('bt');
				var moreHalf = otherListings.item(c).getAttribute('half');

				if (moreHalf && moreHalf > 0)
					moreBaths += '&#189;';

				if (moreUnit != '')
					moreUnit = 'Unit ' + moreUnit;

				//moreListingsHtml += otherListings.item(c).getAttribute('id');
				//moreListingsHtml += '<br/>';
				var omd = 'showPropertyDetail(\'' + moreID + '\', ' + lat + ', ' + lng + ', true, {UpdateSelectedTab: false})';
				//"&#189;"
				moreListingsHtml += '<span class="moreresult" onmouseover="_MoreAtAddressHover_ = \'' + moreID + '\';" onmouseout="_MoreAtAddressHover_ = \'\';"><span class="price">' + morePrice + '</span> <span class="detail">' + moreUnit + ' ' + moreBeds + ' bdr/ ' + moreBaths + ' bth</span></span>';

				//id="06834536" p="$315,000" un="414" bd="1" bt="1"

				//resultsAtSameAddress_tab_
				//return (String.Format("onmousedown=\"showPropertyDetail('{0}', {1}, {2}, true, {{UpdateSelectedTab: false}})\"", listing.Identifier.ListingNumber, parentResult.Latitude, parentResult.Longitude));
			}

			moreListingsDiv.innerHTML = moreListingsHtml;

		}
		else {
			document.getElementById('more_listings_' + tabIndex).style.display = 'none';
		}


		var tabDiv = document.getElementById('result_tab_' + tabIndex);
		tabDiv.style.display = '';
	}

	for (var tabIndex = results.length; tabIndex < 100; tabIndex++) {
		var tabDiv = document.getElementById('result_tab_' + tabIndex);

		if (!tabDiv)
			break;

		tabDiv.style.display = 'none';
	}
	/*
	var title = property.getElementsByTagName('title');
	if (title && title.length > 0 && title[0].firstChild)
	document.title = title[0].firstChild.data;


	var fields = property.getElementsByTagName('field');

	for (var i=0 ; i < fields.length ; i++)
	{
	var item = fields[i];
	var v = (item.firstChild) ? item.firstChild.data : "";
	var key = item.getAttribute("name");	
	var elementId = "field_" + key;

		var fieldNode = detailHtmlElements[elementId];
	}
	*/
	stopLoading();

	highlightSelectedTab(currentDetailID);
	updatePaginator(pageNum);


	if (__EnableGoogleTracking__)
		urchinTracker('/searchpage/' + _AjaxPageQuery_ + "&cp=" + pageNum);
}


function updateTabIcons(tabIndex, ln) {

	var rt = userListingsTagsAndRatings['ln' + ln];

	var numStars = null;
	if (rt && rt.rating)
		numStars = rt.rating;

	for (var c = 1; c <= 5; c++) {

		var s = document.getElementById('star' + c + '_tab_' + tabIndex);

		if (s)
			s.className = ((numStars == null || numStars < c) ? '' : 'on');
	}

	var numTags = 0;
	var numComments = 0;

	if (rt && rt.tags) {
		for (var c = 0; c < rt.tags.length; c++) {

			var tagName = rt.tags[c];

			if (!tagNameIsSpecial(tagName) && !tagNameIsPredefined(tagName)) {
				numTags++;
			}

			if (tagName.toLowerCase() == "note") {
				numComments++;
			}
		}
	}

	document.getElementById('tag_icon_tab_' + tabIndex).src = __MediaBase__ + 'images/icons/tag' + ((numTags == 0) ? '-bw' : '_yellow') + '.' + __IconExtention__;
	document.getElementById('comment_icon_tab_' + tabIndex).src = __MediaBase__ + 'images/icons/comment' + ((numComments == 0) ? '-bw' : '') + '.' + __IconExtention__;
}



function toggleMoreProperties(tabIndex, show) {
	if (show) {
		$('resultsAtSameAddress_tab_' + tabIndex).show();
		$('resultsAtSameAddress_tab_' + tabIndex + '_show').hide();
		$('resultsAtSameAddress_tab_' + tabIndex + '_hide').show();
		$('moreResultsLink_tab_' + tabIndex).innerHTML = 'hide';
		$('moreResultsLink_tab_' + tabIndex).href = 'javascript:toggleMoreProperties(' + tabIndex + ', false)';
	}
	else {
		$('resultsAtSameAddress_tab_' + tabIndex).hide();
		$('resultsAtSameAddress_tab_' + tabIndex + '_show').show();
		$('resultsAtSameAddress_tab_' + tabIndex + '_hide').hide();
		$('moreResultsLink_tab_' + tabIndex).innerHTML = 'show';
		$('moreResultsLink_tab_' + tabIndex).href = 'javascript:toggleMoreProperties(' + tabIndex + ', true)';
	}
}



function getCalcValue(id) {

	var v = 0;

	if (document.getElementById(id)) {
		var v = document.getElementById(id).value;
		v = v.replace('$', '').replace(/,/g, '').replace('%', '').replace('&nbsp', '');
		v = v.replace('NEW', '');
		v = v.replace(' ', '');
	}

	return (v == '' ? 0 : 0 + v);
}

function calculatePayment() {
	var price = getCalcValue('CalcListPrice');
	var downPaymentPercent = getCalcValue('CalcDownPaymentPercent');
	var assessment = getCalcValue('CalcAssessment');
	var taxes = getCalcValue('CalcTaxes');
	var interestRate = getCalcValue('CalcInterestRate');

	var p = price - (price * (downPaymentPercent / 100));
	var i = (interestRate / 100) / 12;
	var months = 30 * 12;
	var payment = Math.floor((p * i) / (1 - Math.pow(1 + i, (-1 * months))) * 100) / 100;

	payment += taxes / 12;
	payment += parseFloat(assessment);

	if (document.getElementById('CalcMonthlyPayment'))
		document.getElementById('CalcMonthlyPayment').value = '$' + Math.floor(payment);
}



function resized() {
	var dimensions = Element.getDimensions(document.body);
	var width = dimensions.width;
	var height = dimensions.height

	var fm = document.getElementById('floatingMap');
	var mi = document.getElementById('mapIframe');
	var mapTitle = document.getElementById('mapTitle');
	var tl = document.getElementById('topLeft');

	Position.clone(tl, fm, { setWidth: false, setHeight: false });
	var pp = Position.page(fm);
	var w = width - pp[0] - 10;
	var h = document.viewport.getHeight() - pp[1] - 10;

	fm.style.height = h + 'px';
	fm.style.minHeight = h + 'px';
	fm.style.width = w + 'px';
	fm.style.minWidth = w + 'px';

	mi.style.height = (h - 24) + 'px';
	mi.style.minHeight = (h - 24) + 'px';
	mi.style.width = (w) + 'px';
	mi.style.minWidth = (w) + 'px';
}



// Property tags
/*
function toggleTagDisplay() {

	var allTagElements = getAllTagHtmlElements();

	for (var c = 0; c < allTagElements.length; c++) {

		var tagNode = allTagElements[c];

		if (!tagNameIsSpecial(tagNode.tagName) && !tagNameIsPredefined(tagNode.tagName)) {
			//if (tagNode.topNode.style.display = '')
			//tagNode.topNode.style.display = '';
		}

		//tagNode.topNode.style.display = '';  //((isSelected) ? '' : 'none');
		//tagNode.checkedIcon.src = '<%=MediaBase%>images/' + ((isSelected) ? 'icons/bullet_delete.gif' : 'menu/icon_tag.gif');
	}
}
*/

function tagNameIsSpecial(tagName) {

	for (var c = 0; c < tagNamesSpecial.length; c++) {
		if (tagNamesSpecial[c].toLowerCase() == tagName.toLowerCase())
			return true;
	}

	return false;
}

function tagNameIsPredefined(tagName) {

	for (var c = 0; c < tagNamesPredefined.length; c++) {
		if (tagNamesPredefined[c].toLowerCase() == tagName.toLowerCase())
			return true;
	}

	return false;
}





function hideTagsToolTip(tabIndex, iconImage) {
	var d = document.getElementById('floatingToolTip');
	d.style.display = 'none';
}

function showTagsToolTip(tabIndex, iconImage) {

	var ln = tabs[tabIndex].listingNumber;
	var rt = userListingsTagsAndRatings['ln' + ln];

	var tipHtml = "";

	if (rt && rt.tags) {
		for (var c = 0; c < rt.tags.length; c++) {

			var tagName = rt.tags[c];

			if (!tagNameIsSpecial(tagName) && !tagNameIsPredefined(tagName)) {
				tipHtml += '<img height="16" width="16" src=\"' + __MediaBase__ + 'images/icons/tag_yellow.' + __IconExtention__ + '\">';
				tipHtml += '&nbsp;&nbsp;<b>' + tagName + '</b><br>';
			}

			if (tagName.toLowerCase() == "note") {
			}
		}
	}

	var d = document.getElementById('floatingToolTip');

	if (tipHtml != "") {
		d.style.display = '';
		d.innerHTML = '' + tipHtml + '';
		d.style.top = (getPosY(iconImage) + 0) + 'px';  //+ 15;
		d.style.left = (getPosX(iconImage) + 20) + 'px';  //+ 15;
	}

}

function getPosY(el) {
	var x, w, y, h;
	if (document.getBoxObjectFor) {
		var bo = document.getBoxObjectFor(el);
		x = bo.x;
		w = bo.width;
		y = bo.y;
		h = bo.height;
	}
	else if (el.getBoundingClientRect) {
		var rect = el.getBoundingClientRect();
		x = rect.left;
		w = rect.right - rect.left;
		y = rect.top;
		h = rect.bottom - rect.top;
	}
	//alert("Left: " + x + "\rTop: " + y + "\rWidth: " + w + "\rHeight: " + h);

	// FIXME scrollTop doesn't work in Firefix
	return (y + document.body.scrollTop);
}


function getPosX(el) {
	var x, w, y, h;
	if (document.getBoxObjectFor) {
		var bo = document.getBoxObjectFor(el);
		x = bo.x;
		w = bo.width;
		y = bo.y;
		h = bo.height;
	}
	else if (el.getBoundingClientRect) {
		var rect = el.getBoundingClientRect();
		x = rect.left;
		w = rect.right - rect.left;
		y = rect.top;
		h = rect.bottom - rect.top;
	}
	//alert("Left: " + x + "\rTop: " + y + "\rWidth: " + w + "\rHeight: " + h);

	// FIXME scrollLeft doesn't work in firefox
	return (x + document.body.scrollLeft);
}





function enlargeImage(url) {
	window.open(url, 'Image');
}
function changeImage(image, enhanced, imagecaption) {
	document.getElementById('mainimage').src = image.src
}

function setImageSize(img) {
	if (img.width >= img.height) {
		img.style.width = '100%';
		img.style.height = 'auto';
	}
	else {
		img.style.width = 'auto';
		img.style.height = '180px';
	}
}





function showPropertyDetail(propertyID, lat, lng, recenter, options) {
	startLoading();

	currentLat = lat;
	currentLng = lng;

	if (document.getElementById('floatingMap').style.display != 'none') {
		mapIframe.gotoProperty(currentLat, currentLng, recenter);
	}

	loadingID = propertyID;
	var url = __ApplicationBase__ + 'DetailXml.aspx';

	if (detailPagesXml['ln' + propertyID] != null) {
		updateDetail(detailPagesXml['ln' + propertyID]);
		return;
	}

	//var pars = "eln=" + currentEncodedID + "&rnd=" + Math.random();
	var pars = "ln=" + propertyID + "&rnd=" + Math.random();
	pars += _DetailRequestAdditionalParams_;

	var myAjax2 = new Ajax.Request(
		url,
		{
			method: 'get',
			parameters: pars,
			onComplete: showPropertyDetailResponse
		});

	//if (__EnableGoogleTracking__)
	//	urchinTracker('/searchdetail/' + propertyID);
}



function changeToList(num) {
	startLoading();
	pageNum = Math.max(1, Math.min(num, _TotalPages_));

	if (resultPagesXml[pageNum] != null) {
		updateResultList(resultPagesXml[pageNum]);
		return;
	}

	var url = __ApplicationBase__ + 'ResultXml.aspx';
	var pars = _AjaxPageQuery_ + "&cp=" + pageNum + "&rnd=" + Math.random();
	pars += '&ob=' + orderBy;
	pars += '&ln=' + currentDetailID;
	pars += _ResultAdditionalParams_;

	var myAjax = new Ajax.Request(
		url,
		{
			method: 'get',
			parameters: pars,
			onComplete: changeToListResponse
		});

	//if (__EnableGoogleTracking__)
	//	urchinTracker('/searchpage/' + _AjaxPageQuery_ + "&cp=" + pageNum);
}

function showAllResultsOnMap(cb) {
	if (cb.checked)
		mapIframe.addMarkers(_AjaxPageQuery_);
	else
		mapIframe.clearMarkers();
}



function ratingHover(tabIndex, numStars) {
	if (tabs[tabIndex].listingNumber == currentDetailID) {
		rating(document.getElementById('_' + numStars));
	}
}

function ratingHoverOut(tabIndex, numStars) {
	if (tabs[tabIndex].listingNumber == currentDetailID) {
		off(document.getElementById('_' + numStars));
	}
}

function ratingRate(tabIndex, numStars) {
	if (tabs[tabIndex].listingNumber == currentDetailID) {
		rateIt(document.getElementById('_' + numStars));
	}
}



function newTag() {
	document.getElementById('newTagErrorMessage').style.display = 'none';
	document.getElementById('newTagLi').style.display = 'none';
	document.getElementById('newTagDiv').style.display = '';
	document.getElementById('newTagName').focus();
}

function cancelNewTag() {
	document.getElementById('newTagDiv').style.display = 'none';
	document.getElementById('newTagLi').style.display = '';
	document.getElementById('newTagName').value = '';
}

function saveNewTag(id) {


	var n = document.createElement("div");
	var tn = document.getElementById('newTagName').value;


	if (tn.length == 0) {
		document.getElementById('newTagErrorMessage').innerHTML = 'Label name must be at<br />least 1 character long<br />';
		document.getElementById('newTagErrorMessage').style.display = '';
		return;
	}

	if (doesLabelExist(tn)) {
		document.getElementById('newTagErrorMessage').innerHTML = 'Label name already exists<br />';
		document.getElementById('newTagErrorMessage').style.display = '';
		return;
	}
	
	
	var tagNum = 1;

	while (document.getElementById('tag' + tagNum) != null)
		tagNum++;

	n.innerHTML = '<a class="tagAdd" href="javascript:toggleSet(currentDetailID, \'' + tn + '\', ' + tagNum + ', \'\');" style="text-align: left; color: black;"><img id="tag' + tagNum + '" height="16" width="16" src="' + __MediaBase__ + '/images/icons/icon_rem_tag.gif" alt="" />' + tn.escapeHTML() + '</a><a class="tagGoto" id="tagLink' + tagNum + '" count="1" href="/search/?sn=' + escape(tn) + '&"><img height="16" width="16" src="' + __MediaBase__ + 'images/icons/bullet_go.gif" alt="Search"/></a>';

	var u = document.getElementById('detail-tags');
	var l = document.getElementById('newTagLi');
	u.insertBefore(n, l);

	toggleSet(id, tn, tagNum, '');

	cancelNewTag();
}