function init()
{   
	offX = 543;
	offY = 10;
	loadGeneralMap();
	positionDetails();
}
function loadGeneralMap()
{
	displayMode = "M";
	if(!YAHOO.util.Dom.get("generalMap"))
		return false;
	map = new GMap2(YAHOO.util.Dom.get("generalMap"));
	map.addControl(new GSmallMapControl());
	geocoder = new GClientGeocoder();
	 markers = new Array();
	 var bounds = new GLatLngBounds;
	for(var i = 0; i < listings.length; i++)
	{
		var adrStr = listings[i].streetNumber + " " + listings[i].streetName + ", " + listings[i].city + ", " + listings[i].state;
    	if (listings[i].zip != null)
        	adrStr += " " + listings[i].zip;
    	
    	if (listings[i].latitude != null && listings[i].longitude != null)
    	{
    		var point = new GLatLng(listings[i].latitude, listings[i].longitude);
    		//map.setCenter(point, 13);
    	
    	    // Create YGL marker icon
    		var YGLIcon = new GIcon(G_DEFAULT_ICON);
    	    //YGLIcon.image = "http://maps.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";
    		YGLIcon.image = YGL_URL + "images/house_pin.png";
    		YGLIcon.shadow = "";
    		YGLIcon.iconSize = new GSize(28, 26);

    	    // Set up  GMarkerOptions object
    		markerOptions = { icon:YGLIcon };

    		var marker = new GMarker(point, markerOptions);
    		marker.listingId = listings[i].id;
    		
    		markers[markers.length] = marker;
    		map.addOverlay(marker);
        	GEvent.addListener(marker, "click", function() {
        		  openMapInfo(this);
        		  });
        bounds.extend(point);
    	}
	}
	var auto_zoom = map.getBoundsZoomLevel(bounds);
	
	if (auto_zoom>16) 
		auto_zoom = 16;
	zoom = auto_zoom;
	center = bounds.getCenter();
	 map.setCenter(bounds.getCenter());
	 map.setZoom(auto_zoom);
}
function openMapInfo(marker)
{
	var html = "<table onClick=\"window.location='" + SITE_URL + urlPrefix + "/apartment.php?comemoveIn=rental_search&id="+marker.listingId +"';\" class=\"info-table\" >";
	html += "<tr>";
		html += "<td colspan='4' style='font-weight:bold; padding-bottom:10px;'>" + YAHOO.util.Dom.get(marker.listingId + "_ADDRESS").innerHTML + "</td>";
	html += "</tr>";
	html += "<tr>";
		//html += "<td>Rent:</td>";
		html += "<td style='padding-left:15px;padding-right:15px;'>" + YAHOO.util.Dom.get(marker.listingId + "_RENT").innerHTML + "</td>";
	
		html += "<td rowspan ='5' colspan='2' style='text-align:center; padding-bottom:10px;'><img  src='" + YAHOO.util.Dom.get(marker.listingId + "_PHOTO").src + "'  /></td>";
	html += "</tr>";
	html += "<tr>";
		//html += "<td>Avail.:</td>";
		html += "<td style='padding-left:15px;padding-right:15px;'>Available " + YAHOO.util.Dom.get(marker.listingId + "_AVAIL").innerHTML + "</td>";
	html += "</tr>";
	html += "<tr>";
		//html += "<td>Bed:</td>";
		html += "<td style='padding-left:15px;padding-right:15px;'>" + YAHOO.util.Dom.get(marker.listingId + "_BED").innerHTML + " / " + 
			YAHOO.util.Dom.get(marker.listingId + "_BATH").innerHTML	+ "</td>";
		html += "</tr>";	
	html += "<tr>";
		//html += "<td colspan='1'>" + "Util.:" + "</td>";
		html += "<td colspan='1'>Includes: " + YAHOO.util.Dom.get(marker.listingId + "_UTIL").innerHTML + "</td>";
	html += "</tr>";
	
	html += "</table>";
	
	marker.openInfoWindow(
			html);
}
function findMarker(id){
	var curMarker;
	for(var i=0;i<markers.length;i++)
	{
		
		if(markers[i].listingId==id)
			{
			  curMarker =  markers[i];
			  if(id.indexOf("temp")>=0)
			  { 
				  //alert("remove array");
				  
				  markers.splice(i,1);
			  }
				return curMarker;
			}
	}
	return null;
}
function highlight(id,e){
	if (!e) var e = window.event;	
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.fromElement;
	//alert(reltg.className);
	if(reltg.className!="YglListing")
	{
		return;
	}
	if(!highted)
	{
		marker = findMarker(id);
		
		if(marker)
		{
			//marker.setImage("http://maps.google.com/mapfiles/markerff.gif");
		
			var point = marker.getLatLng();
			map.setCenter(point, 13);
		
		    // Create YGL marker icon
			var YGLIcon = new GIcon(G_DEFAULT_ICON);
		    YGLIcon.image = SITE_URL + "images/house_on.png";
			//YGLIcon.image = YGL_URL + "images/house_pin.png";
			YGLIcon.shadow = "";
			YGLIcon.iconSize = new GSize(28, 26);
	
		    // Set up  GMarkerOptions object
			markerOptions = { icon:YGLIcon };
	
			var marker1 = new GMarker(point, markerOptions);
			var tempId= marker.listingId;
			tempId +="temp"
			marker1.listingId = tempId;
			
			markers[markers.length] = marker1;			
			map.addOverlay(marker1);
			openMapInfo(marker);
		}
		highted = true;
	}
}
function dehighlight(id,e)
{
	if (!e) var e = window.event;

	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	//alert(reltg.className);
	if(reltg.className!="YglListing")
	{
		
			return;
		}
	if(highted)
	{
		var tempId =id+"temp";
		marker = findMarker(id);
		marker1 = findMarker(tempId);
		
			if(marker1)
			{  				
				map.removeOverlay(marker1)				
			}
			if(marker)
			{
				marker.closeInfoWindow(); 
				
			}
		highted =false;
	}
}
function activateListing(listingId)
{
	window.location = SITE_URL + urlPrefix + "/apartments.php?listing=" + listingId;
}
function positionGeneralMap()
{ 
	if (displayMode == "M")
		positionDetailsDiv();
}
function positionDetailsDiv()
{
	var xy = findPos(YAHOO.util.Dom.get("search-tab"));
	if (YAHOO.util.Dom.get("bottomPager"))
		var stop = findPos(YAHOO.util.Dom.get("bottomPager"))[1];
	else
		var stop = 500;
	var newX = xy[0] + offX;
	if( typeof( window.pageYOffset ) == 'number' ) {
		var newY = window.pageYOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		var newY = document.body.scrollTop;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		var newY = document.documentElement.scrollTop;
	} else 
		var newY = document.body.scrollTop;
	newY = (newY > xy[1]) ? (newY + offY) : (xy[1] + offY);
 //alert(newX+" , "+newY);
	YAHOO.util.Dom.setStyle("right-content", "left", newX + "px");
	if (true||(newY + 500) < stop)
	{
		YAHOO.util.Dom.setStyle("right-content", "top", newY + "px");
	}
	setTimeout("positionDetails();", 500);
}
function findPos(obj) 
{
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent);
	}
	return [curleft,curtop];
}
function positionDetails()
{ 
	positionGeneralMap();
}