function MWS_Services_RealEstateManager(searchDiv, searchResultsDiv, onClickCode){
	var contentText = '<div class="wrap"><div><div id="'+searchDiv+'" class="srchPanel"></div></div></div>';
	MWS.realestateSearchTab = new YAHOO.widget.Tab
		({ id:'realestatesearchView', label: "Real Estate Search", content: contentText, active:true });	

	contentText = ''+
		'<div class="wrap">'+
		'<div>'+
		'<div id="'+searchResultsDiv+'" class="srchResPanel"></div>'+
		'</div>'+
		'</div>';
	MWS.realestateSearchResultsTab = new YAHOO.widget.Tab
		({ id:'realestatesearchResultsView', label: "Search Results", content: contentText });	

	MWS.realestateResultsLayer = new OpenLayers.Layer.Markers("Real Estate");
	MWS.MWS_MapObj.addLayers([MWS.realestateResultsLayer]);
	MWS.realestatePopUp = null;
	MWS.realestateItem = function ()
	{
		this.ID = 0;
		this.X = 0;
		this.Y = 0;
		this.Number = 0;
		this.Name = "";
		//this.Type = "";
		this.UniqueID = "";		
	}
	 
	MWS.realestateItems = new Array();

	MWS.MWS_addService("realestatemanager", "Real Estate Manager", "event");
	var startUpFunction = function (){
		var serviceID = "realestatemanager";

		if (MWS.security_LoggedIn)
		{
		
			MWS.ServiceClearTabs();	
			MWS.ServiceTabs.addTab(MWS.realestateSearchTab);
			MWS.ServiceTabs.addTab(MWS.realestateSearchResultsTab);
			MWS.ServiceTabs.set('activeIndex', 0);		
			YAHOO.example.app.tabView.set('activeIndex', 0);
			
			var svc = MWS.MWS_getService(serviceID);
			var div = OpenLayers.Util.getElement(MWS.MWS_getServiceDiv(serviceID, 0));

			var userLastKey = "";
			try{
				userLastKey = MWS.MWS_ExternalFrameDocumentObj.forms[0].userLastKey.value;
			}catch(e){}

			if (div!=null)
				//div.style.height = '100%';
				div.innerHTML="<iframe  width='100%' frameborder='0'" + 
			"name='framerealestatemanager' " +
			"src='mavlibs/utils/realestatemanager/manager.php?appFirstLoaded=1"+
			"&userLastKey="+userLastKey+"&sessionid="+
			MWS.MWS_SessionID+"' width='280' height='300'" +
			"></iframe>";
		}
		else
		{
			//alert ("You must first log in in order to access this page.");			
			MWS.security_ToggleLogin('loginMenuDiv');	
			MWS.security_PostLoginTargetService = serviceID;
		}
	};
	
	var cleanUpFunction = function (){
		var divs = MWS.MWS_getServiceFunction("realestatemanager", "event", "serviceDivs");
		if (divs!=null)
		{
			for( var j = 1; j < divs.length; j++) 
			{
				var div = OpenLayers.Util.getElement(divs[j]);
				if (div!=null)
					div.innerHTML="";
			}
		}
	};

	var clickFunction = function (webServiceID,x,y){
		try{
			MWS.MWS_ExternalFrameDocumentObj.forms[0].longitude.value = x;
			MWS.MWS_ExternalFrameDocumentObj.forms[0].latitude.value = y;
		}catch(e){}
	};

	var t = "<iframe />";
	var svc = MWS.MWS_getService("realestatemanager");
	svc.StartUpFunction = startUpFunction;
	svc.CleanUpFunction = cleanUpFunction;
	svc.MapClickFunction=clickFunction;
	
	svc.ResultsInitText = t;

	MWS.MWS_setServiceDiv("realestatemanager", searchDiv);
	MWS.MWS_setServiceDiv("realestatemanager", searchResultsDiv);

	/*
	** This function is called to retrieve the search results to be mapped.
	*/
	MWS.realestateRequestResults = function (url)
	{
		OpenLayers.loadURL(url, '', MWS.MWS_MapObj, MWS.realestateMapResults);
	}

	/*
	** This function is called to parse the results from the real estate search.
	** These are the search results displayed in left panel.
	** Function also displays real estate markers on map.
	*/
	MWS.realestateMapResults = function (resp)
	{
		
		var theXML = resp.responseXML.documentElement;
		var r = theXML.getElementsByTagName('ResultSet')[0].childNodes;
		MWS.realestateResultsLayer.clearMarkers();
		MWS.realestateItems = new Array();
		
		for (var i = 0; i < r.length; i++)
		{
			var oResult = r[i];
			if(r[i].firstChild)
			{
				var oID = MWS_Utils.getNodeText(r[i], 'ID', "");
				var oX = MWS_Utils.getNodeText(r[i], 'X', -1);
				var oY = MWS_Utils.getNodeText(r[i], 'Y', -1);
				var oNumber = MWS_Utils.getNodeText(r[i], 'Number', 0);
				var oName = MWS_Utils.getNodeText(r[i], 'Name', "");
				var oSaleRent = MWS_Utils.getNodeText(r[i], 'SaleRent', "");
				var oBaths = MWS_Utils.getNodeText(r[i], 'Baths', 0);
				var oHBaths = MWS_Utils.getNodeText(r[i], 'HBaths', 0);
				var oBeds = MWS_Utils.getNodeText(r[i], 'Beds', 0);
				var oSPrice = MWS_Utils.getNodeText(r[i], 'SPrice', 0);
				var oRPrice = MWS_Utils.getNodeText(r[i], 'RPrice', 0);
				var oGarages = MWS_Utils.getNodeText(r[i], 'Garages', 0);
				var oPic = MWS_Utils.getNodeText(r[i], 'Pic', "");
				var oDesc = MWS_Utils.getNodeText(r[i], 'Desc', "");

				var oUniqueid = MWS_Utils.getNodeText(r[i], 'UniqueID', "");

				var item = new MWS.realestateItem();
				
				item.ID = oID;
				item.X = oX;
				item.Y = oY;
				item.Number = oNumber;
				item.Name = oName;
				item.SaleRent = oSaleRent;
				item.Baths = oBaths;
				item.HBaths = oHBaths;
				item.Beds = oBeds;
				item.SPrice = oSPrice;
				item.RPrice = oRPrice;
				item.Garages = oGarages;
				item.Pic = oPic;
				item.Uniqueid = oUniqueid;
				item.Desc = oDesc;

				MWS.realestateItems[oID] = item;
				
				DetailBubble = OpenLayers.Class(OpenLayers.Popup.AOMFramedCloud, {'autoSize': true});

				var feature = new OpenLayers.Feature(MWS.realestateResultsLayer, new OpenLayers.LonLat(oX,oY));
				feature.closeBox = true;
				feature.popupClass = DetailBubble;
				//feature.data.popupContentHTML = "<div class='olFramedCloudPopupContent'><div style='{position: relative; font-size: 8pt;}'><table><tr><td>TESTING TESTING <BR>TESTINGdfdfdv  dfd dfdfdfasdf <BR>TESTINGdfdfdv  dfd dfdfdfasdf <BR>TESTINGdfdfdv dfdfdfdfdfdfdfdfdfdfdffdfdfdfdf LAST LINE :-)</td></tr></table></div></div>";
				feature.data.popupContentHTML = "<div class='olFramedCloudPopupContent'><div style='{position: relative; font-size: 8pt;}'></div></div>";
				feature.data.overflow = "hidden";
				feature.poiid = oID;
				//feature.data.overflow = (overflow) ? "auto" : "hidden";
				item.Feature = feature;

				var icon = MWS_Utils.createIcon
				("mavlibs/utils/markercreator.php?index=" + oNumber + "&type=REALESTATE",28,28);

				var marker = new OpenLayers.Marker(new OpenLayers.LonLat(oX,oY),icon);

				var markerClick = function (evt) {
					MWS.realestateClickDiv(this.poiid);
					OpenLayers.Event.stop(evt);
				};

				marker.setOpacity(1);
				marker.poiid = oID;
				//marker.poitype = oType;
				marker.number = oNumber;
				marker.events.register("mousedown", feature, markerClick);

				MWS.realestateResultsLayer.addMarker(marker); 
			}
		} 

		try{
		var theCoord = null;
		theCoord = theXML.getElementsByTagName('Xmin')[0];
		var xmin = parseFloat(theCoord.firstChild.data);
		theCoord = theXML.getElementsByTagName('Ymin')[0];
		var ymin = parseFloat(theCoord.firstChild.data);
		theCoord = theXML.getElementsByTagName('Xmax')[0];
		var xmax = parseFloat(theCoord.firstChild.data);
		theCoord = theXML.getElementsByTagName('Ymax')[0];
		var ymax = parseFloat(theCoord.firstChild.data);

		var xmin2 = xmin - ((xmax-xmin)/4);
		var xmax2 = xmax + ((xmax-xmin)/4);
		var ymin2 = ymin - ((ymax-ymin)/4);
		var ymax2 = ymax + ((ymax-ymin)/4);
		bounds = new OpenLayers.Bounds();
		bounds.extend(new OpenLayers.LonLat(xmin2,ymin2));
		bounds.extend(new OpenLayers.LonLat(xmax2,ymax2));

		MWS.MWS_MapObj.zoomToExtent(bounds);
		}
		catch(e)
		{};
		MWS.MWS_showWaitingImage(false);
	};

MWS.realestateClickDiv = function( id ) {
		var item = MWS.realestateItems[id];
		item.Feature.data.popupContentHTML = 
			MWS.realestateCreatePopUpContent(id);
		MWS.realestateRemovePopUp();
		MWS.realestatePopUp = item.Feature.createPopup(true);
		MWS.realestateCreatePopUpContent(id);
		MWS.MWS_MapObj.addPopup(MWS.realestatePopUp);
		MWS.realestatePopUp.show();
		//OpenLayers.Event.stop(evt);
	}

MWS.realestateRemovePopUp = function() {
	if (MWS.realestatePopUp!=null)
	{
		try{
		MWS.MWS_MapObj.removePopup(MWS.realestatePopUp);
		MWS.realestatePopUp.destroy();
		MWS.realestatePopUp = null;
		}catch(e){}
	}
}
//This function creates the html that will be displayed in the popup
MWS.realestateCreatePopUpContent = function(id) {
		var item = MWS.realestateItems[id];
		var beds = "";
		var baths = "";
		var hbaths = "";
		var price = "";
		var pic = "";

		if (item.SaleRent == "SALE"){
			if (item.SPrice > 0)
				price = item.SPrice;
		}
		else if (item.SaleRent == "RENT"){
			if (item.RPrice > 0)
				price = item.RPrice + " per month";
		}

		if (item.Pic != "")
			pic = "<img src='" + item.Pic + "' border='0'>";

		html = "<div style='width: 250px;'>" + 
			"<div class='reListingHdr'>" + item.Name + "</div>" +
			"<div class='reListingSumm'>" +
				"$" + price + ", " +
				MWS_Utils.pluralizeString("bedroom", item.Beds, ", ") + 
				MWS_Utils.pluralizeString("bathroom", item.Baths, ", ") + 
				MWS_Utils.pluralizeString("half-bath", item.HBaths, ", ") + 
				MWS_Utils.pluralizeString("garage", item.Garages, "") + 
			"</div>" +
			"<div style='height: 10px;'></div>" +
			"<div class='reListingDesc'>" + item.Desc + "</div>" +
			"<div style='height: 10px;'></div>" +
			"<div class='reListingPic'>" + pic + "</div>" +
			"</div>";
			

				
		//This is for Detailed Popup
		/*
		MWS.realestatePopUp.setContentHTML("<iframe  width='100%' frameborder='0'" + 
			"name='framerealestatesearch' " +
			"src='mavlibs/utils/realestatemanager/manager.php?"+
			"&sessionid="+MWS.MWS_SessionID+
			"&id="+id+
			"&pmPageList=searchdetails"+"&pmPage=searchdetails"+
			"' width='280' height='100%'" +
			"></iframe>");	
		*/
		
		return html;
}
MWS.realestateSubmitSearch = function (frm) {
	var app_name = "realestatemanager";
	var numBaths = frm.realestatemanager_numBaths.options[frm.realestatemanager_numBaths.options.selectedIndex].value;
	var numBeds = frm.realestatemanager_numBeds.options[frm.realestatemanager_numBeds.options.selectedIndex].value;
	var saleOrRent = frm.realestatemanager_saleOrRent.options[frm.realestatemanager_saleOrRent.options.selectedIndex].value;
	var minPrice = frm.realestatemanager_minPrice.options[frm.realestatemanager_minPrice.options.selectedIndex].value;
	var maxPrice = frm.realestatemanager_maxPrice.options[frm.realestatemanager_maxPrice.options.selectedIndex].value;
	
	var div = OpenLayers.Util.getElement(MWS.MWS_getServiceDiv("realestatesearch", 1));

	var userLastKey = "";
	try{userLastKey = MWS.MWS_ExternalFrameDocumentObj.forms[0].userLastKey.value;}catch(e){}

	if (div!=null)
	{
			//div.style.height = '100%';
			div.innerHTML="<iframe  width='100%' frameborder='0'" + 
		"name='framerealestatesearch' " +
		"src='mavlibs/utils/realestatemanager/manager.php?appFirstLoaded=0"+
		"&userLastKey="+userLastKey+"&sessionid="+MWS.MWS_SessionID+
		"&pmPageList=searchresults"+"&pmPage=searchresults&realestatemanager_SearchButtonClicked=1"+
		"&" + app_name + "_numBaths="+numBaths+ 
		"&" + app_name + "_numBeds="+numBeds+ 
		"&" + app_name + "_saleOrRent="+saleOrRent+ 
		"&" + app_name + "_minPrice="+minPrice+ 
		"&" + app_name + "_maxPrice="+maxPrice+ 
		"' width='280' height='300'" +
		"></iframe>";
	}
	MWS.ServiceTabs.set('activeIndex', 1);		
}

//----------------------------------------------------------
	MWS.MWS_addService("realestatesearch", "Real Estate Search", "event");
	var startUpFunction = function (){
		MWS.MWS_resetEnvironment();
	
		var serviceID = "realestatesearch";
		var svc = MWS.MWS_getService(serviceID);
		
		MWS.ServiceClearTabs();	
		MWS.ServiceTabs.addTab(MWS.realestateSearchTab);
		MWS.ServiceTabs.addTab(MWS.realestateSearchResultsTab);
		MWS.ServiceTabs.set('activeIndex', 0);	
		YAHOO.example.app.tabView.set('activeIndex', 0);
		
		var div = OpenLayers.Util.getElement(MWS.MWS_getServiceDiv(serviceID, 0));

		var userLastKey = "";
		try{userLastKey = MWS.MWS_ExternalFrameDocumentObj.forms[0].userLastKey.value;}catch(e){}

		if (div!=null)
			div.innerHTML="<iframe  width='100%' frameborder='0'" + 
		"name='framerealestatesearch' " +
		"src='mavlibs/utils/realestatemanager/manager.php?appFirstLoaded=1"+
		"&userLastKey="+userLastKey+"&sessionid="+MWS.MWS_SessionID+
		"&pmPageList=search"+"&pmPage=search"+
		"' width='280' height='300'" +
		"></iframe>";
	};
	
	var cleanUpFunction = function (){
		try{
		MWS.realestateResultsLayer.clearMarkers();
		}catch(e){}
	};

	var clickFunction = function (webServiceID,x,y){
		try{
			MWS.MWS_ExternalFrameDocumentObj.forms[0].longitude.value = x;
			MWS.MWS_ExternalFrameDocumentObj.forms[0].latitude.value = y;
		}catch(e){}
	};

	var t = "<iframe />";
	var svc = MWS.MWS_getService("realestatesearch");
	svc.StartUpFunction = startUpFunction;
	svc.CleanUpFunction = cleanUpFunction;
	svc.MapClickFunction=clickFunction;
	
	svc.ResultsInitText = t;

	MWS.MWS_setServiceDiv("realestatesearch", searchDiv);
	MWS.MWS_setServiceDiv("realestatesearch", searchResultsDiv);

	MWS.realestateSearchTabClickFunction = function (e) {
		var div = OpenLayers.Util.getElement(MWS.MWS_getServiceDiv("realestatesearch", 0));
		if (div!=null){
			div.innerHTML="<iframe  width='100%' frameborder='0'" + 
			"name='framerealestatesearch' " +
			"src='mavlibs/utils/realestatemanager/manager.php?appFirstLoaded=1"+
			"&userLastKey="+userLastKey+"&sessionid="+MWS.MWS_SessionID+
			"&pmPageList=search"+"&pmPage=search"+
			"' width='280' height='300'" +
			"></iframe>";
		}
	} 

	MWS.realestateSearchResultsTabClickFunction = function (e) {
		var div = OpenLayers.Util.getElement(MWS.MWS_getServiceDiv("realestatesearch", 1));
		if (div!=null){
			div.innerHTML="<iframe  width='100%' frameborder='0'" + 
			"name='framerealestatesearch' " +
			"src='mavlibs/utils/realestatemanager/manager.php?appFirstLoaded=1"+
			"&userLastKey="+userLastKey+"&sessionid="+MWS.MWS_SessionID+
			"&pmPageList=searchresults"+"&pmPage=searchresults"+
			"' width='280' height='300'" +
			"></iframe>";
		}
	} 	
}

