var count = 1;
var map = null;
var imageHome = null;
var imageCondo = null;
var tupdate = null;
var divAmt = YUtility.createNode('DIV');
divAmt.innerHTML = '&nbsp;&nbsp;&nbsp;Loading . . .&nbsp;&nbsp;&nbsp;';
divAmt.style.backgroundColor='white';
divAmt.style.padding='2px';
divAmt.style.border='1px solid black';
divAmt.style.fontSize='11px';
function startMap(detailID, zoom, lon, lat){
	document.getElementById('detail').innerHTML = '<h1>Rental Details</h1><br /><br /><center>Click address for details</center>';
	document.getElementById('map').innerHTML += 'Waiting for map to load<br /><img src="images/loadingAnimation.gif" alt="Loading" />';
	map = new YMap(document.getElementById("map"));
	map.setMapType(YAHOO_MAP_REG);
	map.addTypeControl();
	var zp = new YCoordPoint(5,35);
	map.addZoomShort(zp);
	map.removeZoomScale();
	map.setZoomRange(1,11);
	map.disableKeyControls();

	imageHome = new YImage('images/icn-sfm-lrg.gif', new YSize(13,17),new YCoordPoint(7,0));
	imageCondo = new YImage('images/icn-multi-lrg.gif', new YSize(13,17),new YCoordPoint(7,0));
	updateCriteria(true,detailID, zoom, lon, lat);
	YEvent.Capture(map, EventsList.endPan , function() {		
			clearTimeout(tupdate);
			tupdate=setTimeout("updateCriteria()",600);
		});
	YEvent.Capture(map, EventsList.changeZoom, function() {
			clearTimeout(tupdate);
			tupdate=setTimeout("updateCriteria()",600);
		});
}
function createMarker(point, id) {
	var icon = imageCondo;
	if(document.getElementById(id+'icon').title == 'Home') icon = imageHome;
	var marker = new YMarker(point, icon, "marker"+id);
	YEvent.Capture(marker, EventsList.MouseClick, function() {		
			detail(id);
		});
	var rent = document.getElementById(id+'rent').innerHTML;
	var bed = document.getElementById(id+'bed').innerHTML;
	var bath = document.getElementById(id+'bath').innerHTML;
	var addr = document.getElementById(id+'add').innerHTML;
	marker.addAutoExpand('<span style="font-size:9px;">'+rent+' '+bed+' br/'+bath+' ba<br />'+(addr.replace(/-/g, '&minus;')).replace(/ /g, '&nbsp;')+'</span>');
	marker.setSmartWindowColor('green');
	return marker;
}
function detail(id) {
	if(document.getElementById(id+"icon")) {
		if(map.getMarkerObject("marker"+id)) {
			var marker = map.getMarkerObject("marker"+id);
			marker.closeAutoExpand();
			marker.openAutoExpand();
		} else {
			var ids = new Array();
			ids = map.getMarkerIDs();
			map.getMarkerObject(ids[0]).closeAutoExpand();
		}
		$.get("listing-detailsmap.php", {"id": id}, function(data){
				document.getElementById("detail").innerHTML = data;
				tb_init('a.thickbox');});
		$(".divColor").removeClass('divColor');
		$('#divData div:even').addClass('divEven');
		$('#divData div:odd').addClass('divOdd');
		if($("#row"+id).hasClass("divEven")) $("#row"+id).removeClass("divEven");
		else if($("#row"+id).hasClass("divOdd")) $("#row"+id).removeClass("divOdd");
		$("#row"+id).addClass("divColor");
		var scrollOffset = 450;
		if(jQuery.browser.msie) var scrollOffset = 0;
		if(document.getElementById("divData").scrollTop > document.getElementById(id+"icon").offsetTop-scrollOffset || document.getElementById("divData").scrollTop < document.getElementById(id+"icon").offsetTop - 100-scrollOffset) {
			document.getElementById("divData").scrollTop = document.getElementById(id+"icon").offsetTop-20-scrollOffset;
		}
	}
}

function chngImg(imgNum, id) {
	var imgMax = parseInt(document.getElementById('imgMax').innerHTML);
	var imgCur = parseInt(document.getElementById('imgCur').innerHTML);
	if(imgNum == 'prev') {
		if(imgCur == 1) imgNum = imgMax;
		else imgNum = imgCur-1;
	} else if (imgNum == 'next') {
		if(imgCur == imgMax) imgNum = 1;
		else imgNum = imgCur+1;
	}
	document.getElementById('mapPic').src=document.getElementById('pic'+imgNum).title;
	imgCur = imgNum;
	document.getElementById('imgCur').innerHTML = imgCur;
}

function updateCriteria(onStart,detailID, zoom, lon, lat) {
	if (typeof onStart == 'undefined' ) onStart = false;
	if (typeof detailID == 'undefined') detailID = 0;
	if (typeof zoom == 'undefined' ) zoom = 0;
	if (typeof lon == 'undefined' ) lon = 0;
	if (typeof lat == 'undefined' ) lat = 0;
	var bounds = map.getBoundsLatLon();
	var form1 = document.getElementById('form1');
	var gville = 'n';
	var ocala = 'n';
	var criteria = new Object();
	divAmt.innerHTML = '&nbsp;&nbsp;&nbsp;Loading . . .&nbsp;&nbsp;&nbsp;';
	if(form1.gville.checked) gville='y';
	if(form1.ocala.checked) ocala='y';
	criteria.gville = gville;
	criteria.ocala = ocala;
	criteria.prop = form1.prop.value;
	if(form1.price)
		criteria.price = form1.price.value;
	else {
		criteria.rentL = form1.rentL.value;
		criteria.rentH = form1.rentH.value;
	}
	criteria.bed = form1.bed.value;
	criteria.bath = form1.bath.value;
	criteria.sort = form1.sort.value;
	criteria.mlsnum = form1.mlsnum.value;
	if(!onStart) {
		criteria.lonmin = bounds.LonMin;
		criteria.latmin = bounds.LatMin;
		criteria.latmax = bounds.LatMax;
		criteria.lonmax = bounds.LonMax;
		criteria.zoom = map.getZoomLevel();
	}
	
	$.get("searchmapresults.php", criteria, function(data){
		document.getElementById("divListings").innerHTML = data;
		$('#divData div:even').addClass('divEven');
		$('#divData div:odd').addClass('divOdd');
		var pointers = new Array();
		var addresses = new Array();
		$(".ListingID").each(function(i) {
			if($(this).attr("title")>0) addresses.push($(this).attr("title"));
		});
		$(".LatLon").each(function(i) {
			var latlon = $(this).attr("title");
			var latlonarr = latlon.split(',');
			var lat = latlonarr[0];
			var lon = latlonarr[1];
			pointers.push(new YGeoPoint(lat,lon));
		});
		var ids = new Array();
		ids = map.getMarkerIDs();
		$.each(ids, function() {
			map.getMarkerObject(this).hide();
		});
		updateMarkers(pointers, addresses);
		if(onStart) {
			var overlayAmt = new YCustomOverlay(new YCoordPoint(5,5), divAmt);
			map.addOverlay(overlayAmt);
			if(zoom >= 1 && zoom <=11 && lon < 0 && lat > 0) {
				map.drawZoomAndCenter(new YGeoPoint(lat, lon), zoom);
			} else if(pointers.length > 0) {
				var bestZoom = map.getBestZoomAndCenter(pointers);
				map.drawZoomAndCenter(bestZoom.YGeoPoint, bestZoom.zoomLevel);
			} else {
				map.drawZoomAndCenter("5522 NW 43rd St, Gainesville FL");
			}
		}
		if(detailID > 0) detail(detailID);
	});		
}

function updateMarkers(points, ids) {
	divAmt.innerHTML = (points.length)+' rentals found';
	for(i = 0; i < points.length; i++) {
		var id = ids[i];
		var point = points[i];

		if(point.Lat > 0) {
			if(map.getMarkerObject("marker"+id)) {
				var marker = map.getMarkerObject("marker"+id);
				marker.unhide();
			} else {
				var marker = createMarker(point, id);
				marker.setSmartWindowColor('green');
				map.addOverlay(marker);
			}
		} else {
			points.splice(i,1);
			ids.splice(i,1);
			i--;
		}
	}
}

function sortValues(column) {
	$.get("searchmapresults.php", {"sort":column}, function(data){
		document.getElementById("divListings").innerHTML = data;
		$('#divData div:even').addClass('divEven');
		$('#divData div:odd').addClass('divOdd');
		if(document.getElementById("detailID")) detail(document.getElementById("detailID").innerHTML);
	});
}