 //<![CDATA[
		var map;
    var bounds;
		var reqObj = GXmlHttp.create();
		var geocoder = new GClientGeocoder();
		var i = 0;
    var gmarkers = [];
    var htmls = [];
		// ====== set up markers properties Start ======
		var baseIcon = new GIcon();
		baseIcon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
		//baseIcon.image = "school.png";
		baseIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		baseIcon.transparent = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		baseIcon.imageMap = [4,0,0,4,0,7,3,11,4,19,7,19,8,11,11,7,11,4,7,0];
		baseIcon.iconSize = new GSize(12, 20);
		baseIcon.shadowSize = new GSize(22, 20);
		baseIcon.iconAnchor = new GPoint(6, 20);
		baseIcon.infoWindowAnchor = new GPoint(5, 1);
		// ====== set up markers properties End ======

		// ====== set up marker mouseover tooltip div Start ======
		var toolTipDiv = document.createElement("div");
		toolTipDiv.setAttribute("id","div_marker_tooltip");
		toolTipDiv.style.border="1px #666 solid";
		toolTipDiv.style.backgroundColor="#ffffff";
		toolTipDiv.style.backgroundColor="#v";
		toolTipDiv.style.fontWeight="bold";
		toolTipDiv.style.overflow="hidden";
		// ====== set up marker mouseover tooltip div End ======


		function generatemap(isShowAddr,action,city,beds,baths,minprice,maxprice,proptype,typeArr,agent,area,thekw)
		{
			load(isShowAddr,action,city,beds,baths,minprice,maxprice,proptype,typeArr,agent,area,thekw);
		}

		function load(isShowAddr,action,city,beds,baths,minprice,maxprice,proptype,typeArr,agent,area,thekw) {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
				var overlayControl = new GOverviewMapControl(); // line for overlay Control on google map
				map.addControl(overlayControl); // line for overlay Control on google map
				var overmap = overlayControl.getOverviewMap(); // line for overlay Control on google map
				var overmapdiv = document.getElementById('map'); // line for overlay Control on google map
        map.setCenter(new GLatLng(44.28356440625,-105.513158390625), 0);
        var bounds = new GLatLngBounds(
                        new GLatLng(44.474088, -105.738420), new GLatLng(44.214976, -105.213504));
//        plotPoints();
				// move it to the map div
				document.getElementById("map").appendChild(toolTipDiv);
				// hide it
				toolTipDiv.style.visibility="hidden";

				if(isShowAddr == '1')
				  xlmDocumentGet(action,city,beds,baths,minprice,maxprice,proptype,typeArr,agent,area,thekw);
        map.setZoom(map.getBoundsZoomLevel(bounds));
      }
    }


function xlmDocumentGet(action,city,beds,baths,minprice,maxprice,proptype,typeArr,agent,area,thekw)
{
	var typeStr='';
	var newTypeStr = '';
	

	if (typeArr !='' && typeArr.length > 0)
	{
		typeStr ='&';
		newTypeStr ='&';
		for (var index=0;index<typeArr.length;index++)
		{
			typeStr += 'type[]='+typeArr[index]+'&';
			newTypeStr += 'type%5B%5D='+typeArr[index]+'&';
		}
		typeStr = typeStr.replace(/&$/,"");
		newTypeStr = newTypeStr.replace(/&$/,"");
	}

	var reqURL = 'rpc.php?';
	reqURL += 'action=' + action;

	if (proptype=='residential' || proptype=='foreclosure' || proptype=='commercial' || proptype=='incomeproducing' || proptype=='mobilehomeonly' || proptype == 'land' )
	{
		reqURL += typeStr;
		reqURL += '&city=' + city;
		reqURL += '&area=' + area;
		reqURL += '&proptype='+proptype;
		if(proptype != 'commercial') {
			reqURL += '&beds='+beds;
			reqURL += '&baths='+baths;
		}
		reqURL += '&minprice='+minprice;
		reqURL += '&maxprice='+maxprice;
		reqURL += '&kw='+thekw;
	}
	else if (agent>0) {
		reqURL += '&agent='+agent;
	}

	reqObj.open('get', reqURL, true);

	reqObj.onreadystatechange = function ()
		{
			if (reqObj.readyState == 4)
			{

				var schoolMarker = new Array();
				schoolMarker[0] = new Array("1000 Camel Dr, Gillette, WY 82716, USA","44.281804","-105.490887");
				schoolMarker[1] = new Array("4001 Saunders Blvd, Gillette, WY 82718, USA","44.261815","-105.514170");
				schoolMarker[2] = new Array("1000 W Lakeway Rd, Gillette, WY 82718, USA","44.269429","-105.518394");
				schoolMarker[3] = new Array("100 E 7th St, Gillette, WY 82716, USA","44.288236","-105.503946");
				schoolMarker[4] = new Array("4901 Sleepy Hollow Blvd, Gillette, WY 82718, USA","44.232176","-105.435972");
				schoolMarker[5] = new Array("800 N Butler Spaeth Rd, Gillette, WY 82716, USA","44.296614","-105.479251");
				schoolMarker[6] = new Array("410 Lakeside Dr, Gillette, WY 82716, USA","44.298147","-105.499236");
				schoolMarker[7] = new Array("816 E 7th St, Gillette, WY 82716, USA","44.288320","-105.491996");
				schoolMarker[8] = new Array("1001 W Lakeway Rd, Gillette, WY 82718, USA","44.269429","-105.518394");
				schoolMarker[9] = new Array("3005 Oakcrest Dr, Gillette, WY 82718, USA","44.266188","-105.529869");
				schoolMarker[10] = new Array("200 Prospector Pkwy, Gillette, WY 82716, USA","44.390541","-105.539313");
				schoolMarker[11] = new Array("901 W 8th St, Gillette, WY 82716, USA","44.287491","-105.515048");
				schoolMarker[12] = new Array("2500 Dogwood Ave, Gillette, WY 82718, USA","44.271791","-105.504572");
				schoolMarker[13] = new Array("800 Hemlock Ave, Gillette, WY 82716, USA","44.302037","-105.526663");


				var xmlDoc = reqObj.responseXML;

				arrAddList = xmlDoc.documentElement.getElementsByTagName("Result");
				var TotalAddress = arrAddList.length;

				var linkURL = 'listings/search.php?';
				linkURL += 'action=' + action;


				if (proptype=='residential' ||  proptype=='foreclosure' || proptype=='commercial' || proptype=='incomeproducing' || proptype=='mobilehomeonly' || proptype == 'land')
				{
					linkURL += typeStr;
					linkURL += '&city=' + city;
					linkURL += '&proptype='+proptype;
					if(proptype != 'commercial') {
						linkURL += '&beds='+beds;
						linkURL += '&baths='+baths;
					}
					linkURL += '&minprice='+minprice;
					linkURL += '&maxprice='+maxprice;
					linkURL += '&kw='+thekw;
				}

				var changeTextStr  = "Find a Property: <a href='";
				changeTextStr += httpurl;
				changeTextStr += linkURL;
				changeTextStr += "' style='color:#ccb277;' target='_blank'> Total: ";
				changeTextStr += TotalAddress;
				changeTextStr += " view listings</a>";

				changeText(changeTextStr);


				// Start code for plotting school addresses on map
				var TotalSchoolAddress = schoolMarker.length;
				for(var indxSc = 0; indxSc < TotalSchoolAddress; indxSc++)
				{
					var addressSchool = schoolMarker[indxSc][0];
					var schoolLat = schoolMarker[indxSc][1];
					var schoolLng = schoolMarker[indxSc][2];
					showAddressSchool(addressSchool, schoolLat, schoolLng, schoolMarker, indxSc, indxSc);
				}
				// End code for plotting school addresses on map

/*				// Now plot ReMax Office address

						var baseIconCommercial = new GIcon();
						baseIconCommercial.image = "remax_icon.png";
						baseIconCommercial.imageMap = [4,0,0,4,0,7,3,11,4,19,7,19,8,11,11,7,11,4,7,0];
						baseIconCommercial.iconSize = new GSize(45, 12);
						baseIconCommercial.shadowSize = new GSize(22, 20);
						baseIconCommercial.iconAnchor = new GPoint(6, 20);
						baseIconCommercial.infoWindowAnchor = new GPoint(5, 1);

						var officeIcon = new GIcon(baseIconCommercial);
				//		var schoolLat = point.lat();
						var officeLat = "44.2765602";
				//		var schoolLng = point.lng();
						var officeLng = "-105.4913336";

						var marker = createSchoolMarker(officeLat, officeLng, officeIcon, "907 E. Boxelder, Gillette, WY 82718, USA");

				map.addOverlay(marker);

				// End of office address plotting
*/
				// Start code for plotting property addresses on map
				if (TotalAddress > 0)
				{
					var iNotFound = 0;
					for(var indxAd = 0; indxAd < TotalAddress; indxAd++)
					{
						var addressStr = "";
						addressStr  = arrAddList[indxAd].getAttribute("Address");
						addressStr += ', ';
						addressStr += arrAddList[indxAd].getAttribute("city");
						addressStr += ', Wyoming';

						var latitude = arrAddList[indxAd].getAttribute("latitude");
						var longitude = arrAddList[indxAd].getAttribute("longitude");

						var idx_flag = arrAddList[indxAd].getAttribute("idx_flag");
						var idx_image = arrAddList[indxAd].getAttribute("idx_image");



						if(latitude != 0 && longitude != 0) {
							showAddress(addressStr, latitude, longitude, arrAddList, indxAd, indxAd,idx_flag,idx_image);
						} else {
							iNotFound++;
							var nfStr = '<br/>';
							nfStr += iNotFound;
							nfStr += '. ';
							nfStr += addressStr;
							document.getElementById("addrNotFound").innerHTML += nfStr;
						}
					}
				}
				else
				{
					changeText("We're sorry, but your search did not yield any results.");
				}
				// End code for plotting property addresses on map

				document.getElementById('map').className = "transOFF";
				document.getElementById('foo').disabled = false;
			}
		};

	reqObj.send(null);
}

// ====== Function used to show the tooltip Start ======
// it will be called on mousover event
function showTooltip(marker)
{
	toolTipDiv.innerHTML = marker.tooltip;
	var point = map.getCurrentMapType().getProjection().fromLatLngToPixel(map.getBounds().getSouthWest(),map.getZoom());
	var offset = map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
	var ianchor = marker.getIcon().iconAnchor;
	var width = marker.getIcon().iconSize.width;
	var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(offset.x - point.x - ianchor.x + width,- offset.y + point.y +ianchor.y));
	pos.apply(toolTipDiv);
	toolTipDiv.style.visibility = "visible";
}

// ====== change Division text value Start ======
function changeText(text)
{
	// Detect Browser
	var IE = (document.all) ? 1 : 0;
	var DOM = 0;
	if (parseInt(navigator.appVersion) >=5) { DOM=1 };
	if (DOM)
	{
		var viewer = document.getElementById('foo');
		viewer.innerHTML=text;
	}
	else if(IE)
	{
		document.all['foo'].innerHTML=text;
	}
}
// ====== change Division text value End ======

// ====== swapimage source path set Start ======
function swapimage(tester)
{
	tester.src= httpurl+'img/listings/p_nophoto.jpg'
}
// ====== swapimage source path set End ======

// ====== Create Marker for School Start ======
function createSchoolMarker(lat, lon, icon, address)
{
	var marker = new GMarker(new GLatLng(lat, lon),icon);
//	var marker = new GMarker(point,icon);
	var html = "";
	html +=	"<br/>";
	html +=	"<span class='GoogleTitleText' style='line-height:10px;'>";
	html += "&nbsp;";
	html += address;
	html += "</span>";

	gmarkers[i] = marker;
	htmls[i] = html;
	i++;
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
	});
	//GEvent.addListener(marker,"mouseover", function() { showTooltip(marker); });
	//GEvent.addListener(marker,"mouseout", function() { toolTipDiv.style.visibility="hidden"; });
	return marker;
}
// ====== Create Marker for School End ======

function showAddressSchool(address, latitude, longitude, markers, center,index)
{
		var baseIconCommercial = new GIcon();
		baseIconCommercial.image = "school.png";
		baseIconCommercial.imageMap = [4,0,0,4,0,7,3,11,4,19,7,19,8,11,11,7,11,4,7,0];
		baseIconCommercial.iconSize = new GSize(12, 20);
		baseIconCommercial.shadowSize = new GSize(22, 20);
		baseIconCommercial.iconAnchor = new GPoint(6, 20);
		baseIconCommercial.infoWindowAnchor = new GPoint(5, 1);

		var schoolIcon = new GIcon(baseIconCommercial);
//		var schoolLat = point.lat();
		var schoolLat = latitude;
//		var schoolLng = point.lng();
		var schoolLng = longitude;
		var marker = createSchoolMarker(schoolLat, schoolLng, schoolIcon, address);

		map.addOverlay(marker);
}

// ====== Create Marker and set tooltip and event handler function set here Start ======
function createMarker(latitude,longitude,icon,uid,price,beds,baths,city,proptype,idx_flag,idx_image)
{

	var marker = new GMarker(new GLatLng(latitude,longitude),icon);

	var toolTipStr = "";
	toolTipStr += "<div align='center' class='GoogleFlyWinImageBg' style='background-image:url(../img/google_top_data_middle2.jpg); background-repeat:repeat-x;background-position:top; width: 150px; height:auto; text-align: center;'>";
	toolTipStr += "<h5 align='center'  class='GoogleTitleText' style='background-color:#402501; color:#fff; padding: 4px; margin:0 0 5px 0'>";
	toolTipStr += " $&nbsp;";
	toolTipStr += price;
	toolTipStr += " </h5>";

	if(idx_flag == 'IDX')
	{
	 toolTipStr += " <img align='center' width='140' height='115' style='border:1px solid #666' src='"+idx_image+"' onError='swapimage(this);'>";
	}
	else
	{
	 toolTipStr += " <img align='center' width='140' height='115' style='border:1px solid #666' src='"+httpurl+"img/upload/properties/"+uid+"_0_140.jpg' onError='swapimage(this);'>";
	}
	toolTipStr += " <span class='GoogleDataText' valign='top'>";
	toolTipStr += " Click Marker for More Details</span>";
	toolTipStr += " </div>";

	marker.tooltip = toolTipStr;


	var html = "";
	html += "<div style='width: 330px;'><div style='width:160px; float:left; height: 125px;padding-right:5px;'>";
	html += " <a href='";
	html += httpurl;
	html += "listings/view.php?id="+uid+"' target='_blank'>";
	html += " <img width='140' height='125' style='border:1px solid #666' src='";
	if(idx_flag == 'IDX')
	{
	  html += idx_image+"' onError='swapimage(this);'  MM_preloadImages(this);>";
	}
	else
	{
	   html += httpurl;
  	html += "img/upload/properties/";
	 html += uid;
	 html += "_0_140.jpg' onError='swapimage(this);'  MM_preloadImages(this);>";
	}
	html += " </a>";
	html += "</div>";
	html += " <span class='GoogleTitleText' style='line-height:18px;'>";
	html += " <br /><strong>Price:&nbsp;</strong>$&nbsp;";
	html += price;
	if (proptype=='residential' || proptype=='incomeproducing' || proptype=='mobilehomeonly')
	{
		html += " <br /><strong>Beds:&nbsp;</strong>"+ beds +
				" <br /><strong>Baths:&nbsp;</strong>"+ baths;
	}
	html +=	" <br />";
	html +=	" <a href='";
	html +=	httpurl;
	html +=	"listings/view.php?id=";
	html +=	uid;
	html +=	"' target='_blank'>";
	html +=	" <img border='0' src='";
	html +=	httpurl;
	html +=	"img/view_details_icon.jpg' MM_preloadImages(this);>&nbsp;View Details</a></span></div>";

	//gmarkers[i] = marker;
	//htmls[i] = html;
	gmarkers.push(marker);
  htmls.push(html);
	i++;

	GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); });
	GEvent.addListener(marker,"mouseover", function() { showTooltip(marker); });
	GEvent.addListener(marker,"mouseout", function() { toolTipDiv.style.visibility="hidden"; });
	return marker;
}
// ====== Create Marker and set tooltip and event handler function set here End ======

// ====== Show pin points properties addresswise Start ======
function showAddress(address,latitude,longitude,markers, center,index,idx_flag,idx_image)
{


	var proptype = markers[index].getAttribute("proptype");
	var uid = markers[index].getAttribute("uid");
	var price = markers[index].getAttribute("price");
	var beds = 0;
	var baths = 0;

	beds = markers[index].getAttribute("beds");
	baths = markers[index].getAttribute("baths");

	var city = markers[index].getAttribute("city");

	var addressIcon = new GIcon(baseIcon);

	var marker = createMarker(latitude,longitude,addressIcon,uid,price,beds,baths,city,proptype,idx_flag,idx_image);
	//var marker = addMarker(44.275420, -105.484826, html);

	map.addOverlay(marker);

/* Code addedd by Dhaval */



		//alert("temp:::"+temp+"\nAddress::::"+address+"\ngeocoder.getLatLng FNC:::::\ntemp:::"+temp);
}
// ====== Show pin points properties addresswise End ======
//]]>



