        
        var RELATIVE_SOURCE_PATH = "IDXWork";
        var RELATIVE_IMAGES_PATH = RELATIVE_SOURCE_PATH + "/images/";
        var RELATIVE_ICONS_PATH = RELATIVE_SOURCE_PATH + "/icons/";
        var RELATIVE_PROP_IMAGES_PATH = RELATIVE_SOURCE_PATH + "/PropImages/";
        var XML_PATH = "http://www.thebutlerchain.com/IDXWork/XMLFiles/";
        
        var PAGE_LIMIT = 25;
  
		// Global variables used with the mouse wheel zoom
		var mouseLatLng;
		var zoomRect;
		// --------------------------------------------------------------
		
		var bounds = new GLatLngBounds();
		
		
		var container;
		var opacity = 0.4;
		var wheelZooming = false;
		var map;
		
		var NormalLayer = G_NORMAL_MAP.getTileLayers()[0]
		var SatelliteLayer = G_SATELLITE_MAP.getTileLayers()[0]
		var satProj = G_SATELLITE_MAP.getProjection();	
		var normalProj = G_NORMAL_MAP.getProjection();	

        var s0;
        var s;
    	function sliderInit() {
            
            s0 = new Slider(document.getElementById("slider-0"), document.getElementById("slider-input-0"));
            s0.setMinimum(0);
            s0.setMaximum(20000000);            
            s0.setUnitIncrement(100000);
            
            s = new Slider(document.getElementById("slider-1"), document.getElementById("slider-input-1"));
            s.setMinimum(0);
            s.setMaximum(20000000);
            s.setUnitIncrement(100000);
            
            s0.onchange = function () {        	
            	//document.getElementById("span.minPrice").innerHTML = CommaFormattedValue(s0.getValue());
            	document.getElementById("min_price").value = s0.getValue();
            	//s.setMinimum(s0.getValue());
            };
            s0.setValue(s0.getMinimum()); 
            
            s.onchange = function () {        	
            	//document.getElementById("span.maxPrice").innerHTML = CommaFormattedValue(s.getValue());
            	document.getElementById("max_price").value = s.getValue();
            	//s0.setMaximum(s.getValue());
            	
            	
            };
            s.setValue(s.getMaximum()); 
            
		}	    
		
		function min_price_onChange() {
		    var minPrice = document.getElementById("min_price");
		    
		    if (isWhitespace(minPrice.value)) minPrice.value = '0';
		    
		    if (isNaN(minPrice.value)) {
		        minPrice.value = s0.getValue();
		        return;    
		    }
		    
		    s0.setValue(minPrice.value);
		}
		
		function max_price_onChange() {
		    var maxPrice = document.getElementById("max_price");
		    
		    if (isWhitespace(maxPrice.value)) maxPrice.value = s.getMaximum();
		    
		    if (isNaN(maxPrice.value)) {
		        maxPrice.value = s.getValue();
		        return;    
		    }
		    
		    s.setValue(maxPrice.value);
		}
			
			
			

		
		
		var DEFAULT_XML_INDEX = 0;
		var gdir;
		function onMainLoad() {
			showHideLoading(true);	  
			setTimeout("onLoadPage();",10);
		}
		
    	function onLoadPage() {
            
            // create the map
            map = new GMap2(document.getElementById("map"), {draggableCursor:"crosshair"});
            map.addControl(new GLargeMapControl());
            map.addControl(new GMapTypeControl());
            map.setCenter(new GLatLng(28.469899, -81.525078), 13);
            
            map.setMapType(G_HYBRID_MAP);
				
			gdir = new GDirections(map, document.getElementById("directions"));
  			GEvent.addListener(gdir, "load", onGDirectionsLoad);
  			GEvent.addListener(gdir, "error", onGDirectionsError);
				
				
    		GEvent.addListener(map, 'mousemove', mouseMove);
    		GEvent.addListener(map, "moveend", moveEnd);
    		GEvent.addListener(map, "zoomend", zoomEnd);				
    
    		// Mouse wheel zoom - Attach event handlers -----
    		map.enableDoubleClickZoom(); 
    		map.enableContinuousZoom();
    		GEvent.addDomListener(document.getElementById("map"), "DOMMouseScroll", wheelZoom);
    		GEvent.addDomListener(document.getElementById("map"), "mousewheel", wheelZoom); 
    		// ----------------------------------------------
            sliderInit();
            createSubDivisionSL();
            
            
            if (xmlProps) {
	            for (var index = 0; index < xmlProps.length; index++ ) {
	                loadXML(index);	      	
	            }
            }
            
            // create a local search control and add it to your map
            ls = new google.maps.LocalSearch({linkTarget : GSearch.LINK_TARGET_SELF}); 
            
            map.addControl(ls, new GControlPosition(0,(0,0)));  
            var adsManager = new GAdsManager(map, "ca-pub-9699413082796194");
						adsManager.enable();
            
            loadingInterval = setInterval('allXMLsLoaded();',1000);
	      
	    }
	    
	    var ls;
	    var loadingInterval;
	    
	    function onGDirectionsError() {
	    	clearDirections();
	    	showHideLoading(false);		
	    	alert('Invalid address');	    	
	    }
	    
		function onGDirectionsLoad(){ 
			document.getElementById("directions").style.display='block';
			document.getElementById("divClearDirections").style.display='block';
			
			if (document.getElementById("td.directions").childNodes.length > 0) {
					document.getElementById("td.directions").insertBefore(document.getElementById("directions"),
						document.getElementById("td.directions").childNodes[document.getElementById("td.directions").childNodes.length-1]);
			}
			else	
				document.getElementById("td.directions").appendChild(document.getElementById("directions"));		
				
			showHideLoading(false);		
		}
	    
	    function changeChoice(mlsNumber,where) {
	    	
	    	showHideLargeImage(false);
	    	
	    	var labelChoice;
	    	var urlSpec;
	    	var mlsIsStart = 'false';
	    	if (where == 'fromhere'){
	    		labelChoice = 'End Address';
	    		urlSpec = "<b>Get directions: </b><a href='javascript:void(0);' onclick=\"changeChoice('"+mlsNumber+"','tohere');\">To here</a> - From here";
	    		mlsIsStart = 'true';
	    	}
	    	else {
	    		labelChoice = 'Start Address';
	    		urlSpec = "<b>Get directions: </b>To here - <a href='javascript:void(0);' onclick=\"changeChoice('"+mlsNumber+"','fromhere');\">From here</a>";
	    		mlsIsStart = 'false';
	    	}
	    	document.getElementById('span.da.'+mlsNumber).innerHTML = labelChoice;
	    	document.getElementById('span.da.choice'+mlsNumber).innerHTML = urlSpec;
	    	document.getElementById('hdDA'+mlsNumber).value = mlsIsStart;
	    	
	    }
	    
	    function setDirections(mlsNumber,pointAddress) {
	    	
	    	showHideLargeImage(false);
	    	
	    	var mlsIsStart = document.getElementById("hdDA"+mlsNumber).value;
	    	var fromAddress = (mlsIsStart == 'false')?document.getElementById("txtDA"+mlsNumber).value:pointAddress;
	    	var toAddress = (mlsIsStart == 'true')?document.getElementById("txtDA"+mlsNumber).value:pointAddress;
	    	
	    	showHideLoading(true);
	    	
	      gdir.load("from: " + fromAddress + " to: " + toAddress,
	                { "locale": "en" });	    	
	    }
	    
	    function defaultShow(index) {	        
            eval(xmlProps[index].loadMarkers+'(index)');            
            map.setZoom(map.getBoundsZoomLevel(bounds));
            map.setCenter(bounds.getCenter());
	    }
	    
	    function slSubDivisions_onChange(sl) {
	    	showHideLargeImage(false);
	    	
	    	if (isWhitespace(sl.value)) return;
	    	
	    	//showHideLoading(true);
	    	
	    	//setTimeout("loadSubDivision();",10);
	    	loadSubDivision();
	    }
	    
	    function allXMLsLoaded() {
	    	var done = true;
	    	if (xmlProps) {
		    	for (var j = 0; j < xmlProps.length; j++) {
		    		if (!xmlProps[j].loaded) {
		    			done = false;
		    			break;
		    		}
		    	}
	    	}
	    	
	    	if (done) {	    		
	    		clearInterval(loadingInterval);	    		
	    		if (!xmlProps) {	    			 
	    			showHideLoading(false);
	    			return;
	    		}
	    		
          pagedMarkers.sort(pagedSortNumber);
          xmlMarkers = pagedMarkers;
          loadPage(0);
          
          
            
	    	}
	    }
	    
	    var xmlMarkers = new Array();	    
	    
	    
	    function loadSubDivision() {
	    	var sl = document.getElementById('slSubDivisions');
	    	
	    	if (isWhitespace(sl.value)) return;
	    	
	    	//clearLocalResults();
	    	
	    	//bounds = new GLatLngBounds();
	    	//map.clearOverlays();
	    	
	    	//showCheckedKMLs();
	    	//putHomeOnMap();
	    	
	    	var index = sl.value;
	    	
	    	var xurl = otherProperties[index].xurl;
	    	
	    	window.location.href=xurl;
	    	
	    }
	    
	    function createSubDivisionSL() {
	    	var sl = document.getElementById("slSubDivisions");
	    	for (var index = 0; index < otherProperties.length; index++ ) {
					var opt = document.createElement("Option");
					opt.value=index;
					opt.text=otherProperties[index].title;
					sl.options[sl.options.length] = opt;	    		
	    	}
		}
	    
      var gmarkers = [];
      var htmls = [];
      var i = 0;
      
      function loadXML(index) {
 				// Read the data from example.xml
 				xmlProps[index].loaded = false;
 				var xmlObj = xmlProps[index];
	      var request = GXmlHttp.create();
	      var fName = XML_PATH+xmlObj.fileName;
	      //alert(fName);
	      request.open("GET", fName, true);
	      
	      
	      request.onreadystatechange = function() {
	        if (request.readyState == 4) {
	        	
	          var xmlDoc = request.responseXML;	 
	           
	          xmlProps[index].xmlDoc = xmlDoc;         
	          setJSObjects(index);
	          xmlProps[index].loaded = true;
	          //if (xmlProps[index].isDefault)
	          	//defaultShow(index);
	          //eval(xmlObj.loadMarkers+'(index)');
	          
	          //eval(xmlProps[index].loadMarkers+'(index)');
	          
	          //map.setZoom(map.getBoundsZoomLevel(bounds));
	      		//map.setCenter(bounds.getCenter());
	        }
	      }
	      request.send(null);      	
      }
      
      function sortNumber(a, b){
				return parseInt(a.Price) - parseInt(b.Price);
			}
			
			function pagedSortNumber(a, b){
				var aObj = xmlProps[a.xmlIndex].markerObjects[a.relativeIndex];            
				var bObj = xmlProps[b.xmlIndex].markerObjects[b.relativeIndex];            
				
				return sortNumber(aObj,bObj);
			}
			
      function setJSObjects(index) {
      	var xmlObj = xmlProps[index];				
				var xmlDoc = xmlObj.xmlDoc;				
				// obtain the array of markers and loop through it
        var markers = xmlDoc.documentElement.getElementsByTagName("row");
        
        var objArray = new Array();
        
        for (var mIndex = 0; mIndex < markers.length; mIndex++) {
        	var tempLong = markers[mIndex].getElementsByTagName("Longitude")[0];
        	
        	if ( !tempLong || isWhitespace(GXml.value(tempLong)) || (GXml.value(tempLong) == 'Longitude' ) ) continue;
        	
        	var theNodes = markers[mIndex].childNodes;
        	var obj = new Object();
        	
        	for (var nIndex = 0; nIndex < theNodes.length; nIndex++) {
        		if (theNodes[nIndex].nodeType == 1) {
        		  
        			if ( !eval('obj.'+theNodes[nIndex].nodeName) )
        				eval('obj.'+theNodes[nIndex].nodeName+'=""');
        			else 
        				eval('obj.'+theNodes[nIndex].nodeName+'+=","');
        				
        			eval('obj.'+theNodes[nIndex].nodeName+'+="'+escape(GXml.value(theNodes[nIndex]))+'"');   
        			if ( eval('obj.'+theNodes[nIndex].nodeName) == 'Y' )
        				eval('obj.'+theNodes[nIndex].nodeName+'="Yes"');   
        			if ( eval('obj.'+theNodes[nIndex].nodeName) == 'N' )
        				eval('obj.'+theNodes[nIndex].nodeName+'="No"');   
        		}
        	}
        	
        	if ( !obj.List_Price )        		
        		obj.Price = 0;
        	else {
        		obj.List_Price = unescape(obj.List_Price);
        		obj.Price = parseInt(stripCharsInBag(obj.List_Price,",.$"));        	
        	}
        	
        	if ( obj.Taxes )
        		obj.Taxes = '$' + CommaFormattedValue( (stripCharsInBag(obj.Taxes,",.$")) );
        	if ( obj.LP_SQ_FT )
        		obj.LP_SQ_FT = '$' + CommaFormattedValue( formatValue( obj.LP_SQ_FT,2));
        	if ( obj.Millage_Rate )
        		obj.Millage_Rate = '$' + CommaFormattedValue( formatValue(obj.Millage_Rate,2) );
      		if ( obj.HOA_Fee )
        		obj.HOA_Fee = '$' + CommaFormattedValue( formatValue(obj.HOA_Fee,2) );
      		
      		if (obj.VT_Link)
        		obj.VT_Link = unescape(obj.VT_Link);  		
        		
        	if (obj.Image != null) { 
	        	obj.Image = unescape(obj.Image);
	        	obj.imgFiles = obj.Image.split(",");	        	 
	        }
        		
        	for (var prop in xmlObj) {
        		if (prop == 'xmlDoc') continue;
        		if (eval('obj.'+prop)) continue;
        		eval('obj.'+prop+'=xmlObj.'+prop);
        	}
        	obj.xmlIndex = index;
        	obj.ownIndex = objArray.length;
        	objArray[objArray.length] = obj;   
        	
        	var pageMarker = new Object();
        	pageMarker.xmlIndex = index;
        	pageMarker.relativeIndex = (objArray.length-1);
        	pagedMarkers[pagedMarkers.length] = pageMarker;
        }
        
        
        xmlProps[index].markerObjects = objArray;
        
      }
      
      var cPP = -1;
      
      var pagedMarkers = new Array();
      function loadPage(pageIndex) {
      	
        if (cPP > -1)
            unloadPage(cPP);
            
        cPP = pageIndex;
        showHideLargeImage(false);
        var sIndex = cPP*PAGE_LIMIT;
        var eIndex = sIndex+PAGE_LIMIT;
        
        if (eIndex > pagedMarkers.length)
            eIndex = pagedMarkers.length;
        
        for (var index = sIndex; index < eIndex; index++) {            
    			
    			var xmlObj = xmlProps[pagedMarkers[index].xmlIndex];    		

          var marker = eval(xmlObj.createMarker+'(pagedMarkers[index].xmlIndex,pagedMarkers[index].relativeIndex)');
          //pagedMarkers[index].markerRef = marker;
          bounds.extend(marker.getPoint());
          map.addOverlay(marker);    		
	        
        }
        
        map.setZoom(map.getBoundsZoomLevel(bounds));
	    	map.setCenter(bounds.getCenter());
	    
        loadPageSideBar();
        
        showHideLoading(false);
        
      }
      
      function unloadPage(pageIndex) {

        bounds = new GLatLngBounds();
        
        var sIndex = pageIndex*PAGE_LIMIT;
        var eIndex = sIndex+PAGE_LIMIT;
        
        if (eIndex > pagedMarkers.length)
            eIndex = pagedMarkers.length;
            
        for (var index = sIndex; index < eIndex; index++) {            
            var mobj = xmlProps[pagedMarkers[index].xmlIndex].markerObjects[pagedMarkers[index].relativeIndex];            
            //bounds.extend(marker.getPoint());
            map.removeOverlay(mobj.markerRef);    		
        }        
        
      }

    function loadPageSideBar() {  
        
        var MAX_PAGES = parseInt(pagedMarkers.length / PAGE_LIMIT);
        if ( (pagedMarkers.length % PAGE_LIMIT) > 0)
        	MAX_PAGES++;
        
        while (	document.getElementById("td.leftPane").childNodes.length > 0 )
            document.getElementById("td.leftPane").removeChild( document.getElementById("td.leftPane").childNodes[0] );
    
        
        var sIndex = cPP*PAGE_LIMIT;
        var eIndex = sIndex+PAGE_LIMIT;
        
        if (eIndex > pagedMarkers.length)
            eIndex = pagedMarkers.length;
            
        
				var divElement = document.createElement('div');
				divElement.style.overflow='auto';
				divElement.id = 'div.searchresults';				
				divElement.style.display = 'none';
				divElement.style.position = 'relative';						
				//divElement.style.height = '';	
				divElement.style.width = '300px';	
				divElement.style.height = '600px';
				divElement.style.border = "1px solid black";
				
				var tableObj = document.createElement('table');
				tableObj.cellpadding="0";
				tableObj.cellspacing="0";
				tableObj.width='100%';							
				var tbodyObj = document.createElement('tbody');

        var navPTR = document.createElement("tr");        
        var navTD = document.createElement("td");        
        navTD.colSpan="3";
        navTD.width="100%";
        var navTable = document.createElement('table');
				navTable.cellpadding="0";
				navTable.cellspacing="0";
				navTable.width='100%';							
				var navTBody = document.createElement('tbody');
        
        var navtr = document.createElement("tr");        
        var prevtd = document.createElement("td");        
        prevtd.align = "center";
        prevtd.width = "33%";
        if (cPP > 0) {
            var prevPP = parseInt(cPP)-1;            
            var prevaLink = document.createElement("img");            
            prevaLink.onclick= function() {
            	loadPage(prevPP);			
            }
            prevaLink.src = RELATIVE_IMAGES_PATH + "prev.jpg";
            prevaLink.width="25";
            prevaLink.height="25";
            prevtd.appendChild(prevaLink);                     
        }
        else {
        	prevtd.appendChild(document.createTextNode(" "));                     
        }
        navtr.appendChild(prevtd);   
        
        var currentPageCounter = parseInt(cPP) + 1;
        var slPage = document.createElement("Select");
        slPage.id = "slPage";
        for (var slIndex = 1; slIndex <= MAX_PAGES; slIndex++) {
        	slPage.options[slPage.options.length] = new Option(slIndex,slIndex-1);
        	if (currentPageCounter == slIndex)
        		slPage.options[slPage.options.length-1].selected = true;
        }
        slPage.onchange = function() {
        	loadPage(document.getElementById('slPage').value);
        }
        
        var emptyTD = document.createElement("td");    
        emptyTD.noWrap = true;
        emptyTD.appendChild(document.createTextNode("Page "));
        emptyTD.appendChild(slPage);
        emptyTD.appendChild(document.createTextNode(" of " + MAX_PAGES));        
        //emptyTD.innerHTML = "Page " + currentPageCounter + " of " + MAX_PAGES;
        emptyTD.align="center";
        emptyTD.width = "33%";        
        navtr.appendChild(emptyTD);
        
        var nexttd = document.createElement("td");        
        nexttd.align = "center";    
        nexttd.width = "33%";    
        if (currentPageCounter < MAX_PAGES) {
            var nextPP = parseInt(cPP)+1;            
            var nextaLink = document.createElement("img");            
            nextaLink.onclick= function() {
            	loadPage(nextPP);
            }
            nextaLink.src = RELATIVE_IMAGES_PATH + "next.jpg";
            nextaLink.width="25";
            nextaLink.height="25";
            nexttd.appendChild(nextaLink);                        
        }
        else {
        	nexttd.appendChild(document.createTextNode(" "));                     
        }
        navtr.appendChild(nexttd);
        
        navTBody.appendChild(navtr);
        navTable.appendChild(navTBody);
        navTD.appendChild(navTable);
        navPTR.appendChild(navTD);
        
        tbodyObj.appendChild(navPTR);
        
        var iconMaxWidth = 15;
        var iconMaxHeight = 15;
        
        for (var index = sIndex; index < eIndex; index++) {               
            var mobj = xmlProps[pagedMarkers[index].xmlIndex].markerObjects[pagedMarkers[index].relativeIndex];
            
        	var tr = document.createElement("tr");
        	
        	var mi = mobj.markerRef.getIcon().iconSize;				
        	
        	var imgTD = document.createElement("td");
        	var imgO = document.createElement("img");
        	imgO.height=iconMaxHeight;
        	imgO.width= ((mi.width * iconMaxHeight)/mi.height);
        	imgO.src = mobj.markerRef.getIcon().image;
        	imgTD.appendChild(imgO);
        	tr.appendChild(imgTD);
        	
        	var priceTD = document.createElement("td");
        	var priceText = document.createTextNode('$'+ mobj.List_Price);
        	priceTD.appendChild(priceText);
        	tr.appendChild(priceTD);
        	
        	var td = document.createElement("td");
        	var aLink = document.createElement("a");
        	aLink.setAttribute("class","results");        	
        	
        	aLink.href="javascript:showPagedResultInfo("+index+");";
        	
        	aLink.innerHTML = unescape(mobj.Address) + ", " + unescape(mobj.City) + ", FL " + unescape(mobj.Zip_Code);
        	td.appendChild(aLink);
        	tr.appendChild(td);
        	
        	tbodyObj.appendChild(tr);
        	
        }
        	
        tableObj.appendChild(tbodyObj);		
        divElement.appendChild(tableObj);
        
        
        document.getElementById("td.leftPane").appendChild(divElement);
        	
        divElement.style.display='block';
		
    }
      
      
      function loadMarkers(index) {
		showHideLargeImage(false);
		
		var xmlObj = xmlProps[index];
		
		var xmlDoc = xmlObj.xmlDoc;
		
		// obtain the array of markers and loop through it
        var markers = xmlObj.markerObjects;
        
        for (var mIndex = 0; mIndex < markers.length; mIndex++) {
            var marker = eval(xmlObj.createMarker+'(index,mIndex)');
            bounds.extend(marker.getPoint());
            map.addOverlay(marker);
        }
      	
      }
      
      
      var win=null;
      function NewWindow(mypage,link,myname,w,h,scroll,pos){
        
      	if(pos=="random"){LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
      	if(pos=="center"){LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;}
      	else if((pos!="center" && pos!="random") || pos==null){LeftPosition=0;TopPosition=20}
      	settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=yes,directories=no,status=yes,menubar=yes,toolbar=yes,resizable=yes';      	
      	        
      	mypage = mypage+"?link="+link;
      	
      	win=window.open(mypage,myname,settings);
      	
      	win.focus();
      	if (win.opener == null) win.opener = self;
      }
      
      var baseurl = RELATIVE_SOURCE_PATH+"/frames.htm";
      var mlsURL = "http://idxpro.cisdata.net/PROPFLYERPICS/AR210813/FL-MID/@#/index.html";
      function openURL(mlsNumber) {
          var x = "http://idxpro.cisdata.net/PROPFLYERPICS/AR210813/FL-MID/"+mlsNumber+"/index.html";
          NewWindow(baseurl,x ,'Test',screen.width,screen.height,'yes','center');
      }
      
      function openVirtualTour(x) { 
          NewWindow(baseurl,x ,'VirtualTour',screen.width,screen.height,'yes','center');
      }
      
        

      // A function to create the marker and set up the event window
      function chainRes_createMarker(index,mIndex) {
      	
      	var markerObject = xmlProps[index].markerObjects[mIndex];
      	
      	
      	var point = new GLatLng(parseFloat(markerObject.Latitude),parseFloat(markerObject.Longitude));
      	
      	
      	var iconType = (markerObject.Image != null)?xmlProps[index].specialIcon:xmlProps[index].defaultIcon;
      	if (markerObject.Status) {
      	    if (markerObject.Status == "PNC") iconType = "pending";
      	    else if (markerObject.Status == "SLD") iconType = "sold";      	
      	}
      		
      	//xmlProps[index].markerObjects[mIndex].currentIcon = iconType;
      	
      	
        var marker = new GMarker(point,gicons[iconType]);
        
        xmlProps[index].markerObjects[mIndex].markerRef = marker;
        
        /*
        GEvent.addListener(marker,"mouseover", function() {
          var hoverhtml = "";
	      	hoverhtml += "<b>$"+unescape(markerObject.List_Price)+"</b><br/>";
	      	if (markerObject.Image != null) { 
		        	hoverhtml += "<img width=150 height=100 src='PropImages/"+unescape(markerObject.Image).split(',')[0]+"' />";
		      }
          marker.openInfoWindowHtml(hoverhtml);
        }); 
        */
        
      var contactInfo = "<table>";
        contactInfo += "<tr><td nowrap><b>CHRISTOPHER SAMPSON</b></td></tr>";
        contactInfo += "<tr><td nowrap><b>IDX Realty Inc.</b></td></tr>";
        contactInfo += "<tr><td nowrap>2813 South Hiawassee Rd</td></tr>";
        contactInfo += "<tr><td nowrap>Suite 303</td></tr>";
        contactInfo += "<tr><td nowrap>Orlando, FL 32835</td></tr>";
        contactInfo += "<tr><td nowrap>Ph: 407-765-7917</td></tr>";
        contactInfo += "<tr><td nowrap>Ce: 407-765-7917</td></tr>";
        contactInfo += "<tr><td nowrap></td></tr>";
        contactInfo += "<tr><td nowrap><a href='mailto:idxrealty@gmail.com'>Send me an email</a></td></tr>";
        contactInfo += "</table>";
        
        
        
        GEvent.addListener(marker, "click", function() {        
        	showHideLargeImage(false);
        	
        	var imgFiles = markerObject.imgFiles;
        	
        	var summaryHTML = "<table width='100%'>";
        	summaryHTML += "<tr>";
        	if (imgFiles != null) {
        		summaryHTML += "<td><img width=150 height=100 onclick='showHideLargeImage(true,0,"+index+","+mIndex+");' src='"+RELATIVE_PROP_IMAGES_PATH+imgFiles[0]+"' /></td>";
        	}
        	else {
        	    summaryHTML += "<td><img width=135 height=135 src='"+RELATIVE_IMAGES_PATH+"nophoto.jpg' /></td>";        	    
        	}
        	summaryHTML += "<td>"+contactInfo+"</td>";
        	summaryHTML += "</tr>";
        	
        	var status = !markerObject.Status?"":markerObject.Status;
        	if (!isWhitespace(status)) {
        	    if (status == "ACT")
        	        status = "Active";
        	    else if (status == "PNC")
        	        status = "Pending";
        	    else if (status == "SLD")
        	        status = "Sold";
        	}
        	
        	var Half_Baths = !markerObject.Half_Baths?0:markerObject.Half_Baths;
        	var Full_Baths = !markerObject.Full_Baths?0:markerObject.Full_Baths;
        	var Beds = !markerObject.Beds?0:markerObject.Beds;
        	
        	var vTourHTML = "";
        	if (markerObject.VT_Link) {        			        		
        		vTourHTML += "<tr><td colspan='2' align='center'><a href=\"javascript:openVirtualTour('"+markerObject.VT_Link+"');\">Virtual Tour</a></td></tr>";
        	}	
        	
        	summaryHTML += "<tr><td colspan='2'><table>";
        	summaryHTML += "<tr><td valign='top'><b>MLS #:</b></td><td><a href=\"javascript:openURL('"+markerObject.MLS_NUM+"');\">"+unescape(markerObject.MLS_NUM)+"</a></td></tr>";
        	summaryHTML += "<tr><td valign='top'><b>Address:</b></td><td>"+unescape(markerObject.Address)+"<br/>"+unescape(markerObject.City)+", FL "+unescape(markerObject.Zip_Code)+"</td></tr>";
        	summaryHTML += "<tr><td valign='top'><b>Price:</b></td><td>$"+unescape(markerObject.List_Price)+"</td></tr>";
        	if (markerObject.Sold_Price)
        		summaryHTML += "<tr><td valign='top'><b>Sold Price:</b></td><td>$"+unescape(markerObject.Sold_Price)+"</td></tr>";        	        	        	
        	summaryHTML += "<tr><td colspan='2' valign='top'>"+unescape(markerObject.Beds)+" <b>Beds</b>, "+unescape(Full_Baths)+" <b>Full Baths</b>, "+unescape(Half_Baths)+" <b>Half Baths</b></td></tr>";        	        	
        	summaryHTML += "<tr><td valign='top'><b>Living Sq. Ft:</b></td><td>"+ CommaFormattedValue(unescape(markerObject.Sq_Ft_Heated))+"</td></tr>";        	
        	summaryHTML += "<tr><td valign='top'><b>Status:</b></td><td>"+status+"</td></tr>";
        	summaryHTML += "<tr><td valign='top'><b>Posted By:</b></td><td>"+unescape(markerObject.Office_Name)+"</td></tr>";
        	summaryHTML += vTourHTML;
        	summaryHTML += "</table></td></tr>";
        	
        	summaryHTML += "</table>";
        	
        	var in_img = "";        	
        	if (imgFiles != null) {
	        	for (var fIndex = 0; fIndex < imgFiles.length; fIndex+=2) {
	        		in_img += "<tr><td><img width=150 height=100 onclick='showHideLargeImage(true,"+fIndex+","+index+","+mIndex+");' src='"+RELATIVE_PROP_IMAGES_PATH+imgFiles[fIndex]+"' /></td>";
	        		if ( (fIndex+1) < imgFiles.length)
	        			in_img += "<td><img width=150 height=100 onclick='showHideLargeImage(true,"+(fIndex+1)+","+index+","+mIndex+");' src='"+RELATIVE_PROP_IMAGES_PATH+imgFiles[fIndex+1]+"' /></td></tr>";        		
	        		else {
	        			in_img += "<td>&nbsp;</td></tr>";        		
	        			break;
	        		}
	        	}
        	}
	        	        
        	var detailObjects = [
        		{"label":"Community Name","field":"Subdivision_Community_Name"},{"label":"HOA Fee","field":"HOA_Fee"},
        		{"label":"HOA Payment Schedule","field":"HOA_Payment_Schedule"},{"label":"Condo Building","field":"Condo_Bldg"},
        		{"label":"Floor","field":"condo_Floor"},{"label":"Water Front Name","field":"Water_front_Name"},        	
        		{"label":"Pool","field":"POOL"},{"label":"Price/Sq. FT","field":"LP_SQ_FT"},{"label":"Waterfront","field":"Water_Type"},
        		{"label":"Elementary School","field":"Elementary_School"},{"label":"Middle/Junior School","field":"Middle_or_Junior_School"},
        		{"label":"High School","field":"High_School"},{"label":"Exterior Construction","field":"Exterior_Construction"},
        		{"label":"Millage Rate","field":"Millage_Rate"},{"label":"Taxes","field":"Taxes"},{"label":"Avg. days on market","field":"ADOM"},
        		{"label":"Fire Place","field":"FPL"},{"label":"Remarks","field":"Public_Remarks"}
        	];
        	
        	var in_details = "<table>";        	
        	for (var j = 0; j < detailObjects.length; j++) {
        		var fieldValue = eval('markerObject.'+detailObjects[j].field);
        	  if ( !fieldValue ) continue;
        	  
	        	in_details += "<tr><td valign='top'><b>"+detailObjects[j].label+":</b></td>";
	        	in_details += "<td  valign='top'>";
	        	if (detailObjects[j].field == "Public_Remarks") {
	        		in_details += "<div style='width:300px'>"+unescape(fieldValue)+"<div>"; 
	        	}
	        	else {
	        		in_details += unescape(fieldValue); 
	        	}
	        	in_details += "</td></tr>";
        	}
        	
        	var defaultAddr = "";
        	if (userHome) {
        		defaultAddr = userHome.address;
        	}
        	var pointAddress = unescape(markerObject.Address)+ ", "+unescape(markerObject.City)+", FL "+unescape(markerObject.Zip_Code);
        	
        	var strdir = "<tr><td colspan='2'>";
        	strdir += "<table>";
        	strdir += "<tr>";
        	strdir += "<td><input type='hidden' id='hdDA"+markerObject.MLS_NUM+"' name='hdDA"+markerObject.MLS_NUM+"' value='false' />";
        	strdir += "<span id='span.da.choice"+markerObject.MLS_NUM+"'><b>Get directions: </b>To here - <a href='javascript:void(0);' onclick=\"changeChoice('"+markerObject.MLS_NUM+"','fromhere');\">From here</a></span></td>";        	
        	strdir += "</tr>";
        	strdir += "<tr>";
        	strdir += "<td><span id='span.da."+markerObject.MLS_NUM+"'>Start address</span></td>";        	
        	strdir += "</tr>";
        	strdir += "<tr>";
        	strdir += "<td>";
        	strdir += "<input type='text' id='txtDA"+markerObject.MLS_NUM+"' name='txtDA"+markerObject.MLS_NUM+"' value='"+defaultAddr+"' size='45'>";        	
        	strdir += "</td>";
        	strdir += "<td>";
        	strdir += "<input type='button' name='btnDA"+markerObject.MLS_NUM+"' value='Go' onclick=\"setDirections('"+markerObject.MLS_NUM+"','"+pointAddress+"');\">";        	
        	strdir += "</td>";
        	strdir += "</tr>";
        	strdir += "<table>";
        	strdir += "</td></tr>";        	
        	
        	in_details+= strdir;
        	
        	in_details += "</table>";
        	
        	var tabCount = 2;
        	if (markerObject.VIDEO) {        		        		
        		tabCount++;;
        	}
        	
        	if (!isWhitespace(in_img))
        		tabCount++;
        	
        	summaryHTML = '<div style="width:'+(tabCount*88)+'px">'+summaryHTML+'</div>';
        	
       	 	var tabs = [];
       		tabs.push(new GInfoWindowTab("Summary",summaryHTML));        
       		tabs.push(new GInfoWindowTab("Details",in_details));
       		
       		if (!isWhitespace(in_img)) {
						var strgallery = "<div style='overflow:auto; position: relative; height:300px; border: 1px solid black'>";       		
						strgallery += "<table>"+in_img+"</table></div>";						
						var tabTitle = imgFiles.length + " Snap" + ( (imgFiles.length > 1)?"s":"");
       			tabs.push(new GInfoWindowTab(tabTitle,strgallery));        
       		}
       		
       		if (markerObject.VIDEO) {        		
       			var videos = markerObject.VIDEO.split(",");
       			
       			var strvideo = "<div style='overflow:auto; position: relative; height:355px; border: 1px solid black'><table>";       			       			
       			for (var j = 0; j < videos.length; j++) {
       				strvideo += "<tr><td><embed src='"+unescape(videos[j])+"' type='application/x-shockwave-flash' wmode='transparent' width='425' height='350'></embed></td></tr>";
       			}
       			strvideo += "</table></div>";
       			var tabTitle = videos.length + " Video" + ( (videos.length > 1)?"s":"");
       			tabs.push(new GInfoWindowTab(tabTitle,strvideo));
       		}
       		        
        	marker.openInfoWindowTabsHtml(tabs);
        
        });
        // save the info we need to use later for the side_bar
        //gmarkers[i] = marker;
        //htmls[i] = html;
        // add a line to the side_bar html
        //side_bar_html += '<a href="javascript:myclick(' + i + ')">' + name + '</a><br>';
        //i++;
        return marker;
      }
/*
			function showHideLargeImage(img,show) {
				var divLargeImage = document.getElementById('divLargerImage');
				var tdLargeImage = document.getElementById('tdLargerImage.image');
				
				if (show) {
					tdLargeImage.innerHTML = '<img src="'+img+'" />';
					divLargeImage.style.pixelTop = (document.body.scrollTop + 50);
					divLargeImage.style.visibility='visible';
				}
				else {
					tdLargeImage.innerHTML = '';
					divLargeImage.style.visibility='hidden';
				}
			}
*/			
  			function showHideLargeImage(show,thisImgIndex,index,mIndex) {
  				
  			    
    			var divLargeImage = document.getElementById('divLargerImage');
    			var tdLargeImage = document.getElementById('tdLargerImage.image');
    			
    			clearTimeout(imageSliderTimeout);
    			
    			if (show) {
    			    var mobj = xmlProps[index].markerObjects[mIndex];
    			    
    			    var tdPrevImg = document.getElementById('td.previmage.image');
    			    var tdNextImg = document.getElementById('td.nextimage.image');
    			    tdPrevImg.innerHTML = '';
    			    tdNextImg.innerHTML = '';
    			    
    			    if (thisImgIndex > 0) {
    			    		var prevIndex = parseInt(thisImgIndex) - 1;
    			        tdPrevImg.innerHTML = '<img onclick="javascript:showHideLargeImage(true,'+prevIndex+','+index+','+mIndex+');" src="'+RELATIVE_IMAGES_PATH+'prev.jpg" width="25" height="25"/>';    			            			        
    			    }
    			    if (thisImgIndex < (mobj.imgFiles.length-1)) {
    			        var nextIndex = parseInt(thisImgIndex) + 1;
    			        tdNextImg.innerHTML = '<img onclick="javascript:showHideLargeImage(true,'+nextIndex+','+index+','+mIndex+');" src="'+RELATIVE_IMAGES_PATH+'next.jpg" width="25" height="25"/>';    			            			        
    			    }
							tdLargeImage.innerHTML = '<img src="'+ RELATIVE_PROP_IMAGES_PATH + mobj.imgFiles[thisImgIndex]+'" />';
							divLargeImage.style.pixelTop = (document.body.scrollTop + 50);
							divLargeImage.style.visibility='visible';							
							
							if (thisImgIndex < (mobj.imgFiles.length-1)) {
								imageSliderTimeout = setTimeout('showHideLargeImage(true,'+nextIndex+','+index+','+mIndex+');',3000); 
							}
							else if (thisImgIndex > 0) {
								imageSliderTimeout = setTimeout('showHideLargeImage(true,0,'+index+','+mIndex+');',3000); 
							}
							
							
    			}
    			else {
    				tdLargeImage.innerHTML = '';
    				divLargeImage.style.visibility='hidden';
    			}
			}
			
			var imageSliderTimeout = null;
			
      // A function to create the marker and set up the event window
      function chainVac_createMarker(index,mIndex) {
      	
       	
      	var markerObject = xmlProps[index].markerObjects[mIndex];
      	
      	var point = new GLatLng(parseFloat(markerObject.Latitude),parseFloat(markerObject.Longitude));
      	
      	var iconType = (markerObject.Image != null)?xmlProps[index].specialIcon:xmlProps[index].defaultIcon;
      	
      	if (markerObject.Status) {
      	    if (markerObject.Status == "PNC") iconType = "pending";
      	    else if (markerObject.Status == "SLD") iconType = "sold";      	
      	}
      		
      	//xmlProps[index].markerObjects[mIndex].currentIcon = iconType;
      	
      	
        var marker = new GMarker(point,gicons[iconType]);
        
        xmlProps[index].markerObjects[mIndex].markerRef = marker;
        
	      
	      
                /*
        GEvent.addListener(marker,"mouseover", function() {
          var hoverhtml = "";
	      	hoverhtml += "<b>$"+unescape(markerObject.List_Price)+"</b><br/>";
	      	if (markerObject.Image != null) { 
		        	hoverhtml += "<img width=150 height=100 src='PropImages/"+unescape(markerObject.Image).split(',')[0]+"' />";
		      }
          marker.openInfoWindowHtml(hoverhtml);
        }); 
        */
        
        var contactInfo = "<table>";
        contactInfo += "<tr><td nowrap><b>CHRISTOPHER SAMPSON</b></td></tr>";
        contactInfo += "<tr><td nowrap><b>IDX Realty Inc.</b></td></tr>";
        contactInfo += "<tr><td nowrap>2813 South Hiawassee Rd</td></tr>";
        contactInfo += "<tr><td nowrap>Suite 303</td></tr>";
        contactInfo += "<tr><td nowrap>Orlando, FL 32835</td></tr>";
        contactInfo += "<tr><td nowrap>Ph: 407-765-7917</td></tr>";
        contactInfo += "<tr><td nowrap>Ce: 407-765-7917</td></tr>";
        contactInfo += "<tr><td nowrap></td></tr>";
        contactInfo += "<tr><td nowrap><a href='mailto:idxrealty@gmail.com'>Send me an email</a></td></tr>";
        contactInfo += "</table>";
        
        GEvent.addListener(marker, "click", function() {        
        	
        	showHideLargeImage(false);
	        
        	var imgFiles = markerObject.imgFiles;
	        
        	
        	var summaryHTML = "<table width='100%'>";
        	summaryHTML += "<tr>";
        	if (imgFiles != null) {
        		summaryHTML += "<td><img width=150 height=100 onclick='showHideLargeImage(true,0,"+index+","+mIndex+");' src='"+RELATIVE_PROP_IMAGES_PATH+imgFiles[0]+"' /></td>";
        	}
        	else {
        	    summaryHTML += "<td><img width=135 height=135 src='"+RELATIVE_PROP_IMAGES_PATH+"nophoto.jpg' /></td>";        	    
        	}
        	summaryHTML += "<td>"+contactInfo+"</td>";
        	summaryHTML += "</tr>";
        	
        	var status = !markerObject.Status?"":markerObject.Status;
        	if (!isWhitespace(status)) {
        	    if (status == "ACT")
        	        status = "Active";
        	    else if (status == "PNC")
        	        status = "Pending";
        	    else if (status == "SLD")
        	        status = "Sold";
        	}
        	
        	var vTourHTML = "";
        	if (markerObject.VT_Link) {        			        			
        			vTourHTML += "<tr><td colspan='2'><a href=\"javascript:openVirtualTour('"+markerObject.VT_Link+"');\">Virtual Tour</a></td></tr>";
        	}	
        	
        	summaryHTML += "<tr><td colspan='2'><table>";
        	summaryHTML += "<tr><td valign='top'><b>MLS #:</b></td><td><a href=\"javascript:openURL('"+markerObject.MLS_NUM+"');\">"+unescape(markerObject.MLS_NUM)+"</a></td></tr>";
        	summaryHTML += "<tr><td valign='top'><b>Address:</b></td><td>"+unescape(markerObject.Address)+"<br/>"+unescape(markerObject.City)+", FL "+unescape(markerObject.Zip_Code)+"</td></tr>";
        	summaryHTML += "<tr><td valign='top'><b>Price:</b></td><td>$"+unescape(markerObject.List_Price)+"</td></tr>";        	        	
        	if (markerObject.Sold_Price)
        		summaryHTML += "<tr><td valign='top'><b>Sold Price:</b></td><td>$"+unescape(markerObject.Sold_Price)+"</td></tr>";        	        	
        	summaryHTML += "<tr><td valign='top'><b>Status:</b></td><td>"+status+"</td></tr>";
        	summaryHTML += "<tr><td valign='top'><b>Posted By:</b></td><td>"+unescape(markerObject.Office_Name)+"</td></tr>";
        	summaryHTML += vTourHTML;
        	summaryHTML += "</table></td></tr>";
        	
        	summaryHTML += "</table>";
        	
        	var in_img = "";        	
        	if (imgFiles != null) {
	        	for (var fIndex = 0; fIndex < imgFiles.length; fIndex+=2) {
	        		in_img += "<tr><td><img width=150 height=100 onclick='showHideLargeImage(true,"+fIndex+","+index+","+mIndex+");' src='"+RELATIVE_PROP_IMAGES_PATH+imgFiles[fIndex]+"' /></td>";
	        		if ( (fIndex+1) < imgFiles.length)
	        			in_img += "<td><img width=150 height=100 onclick='showHideLargeImage(true,"+(fIndex+1)+","+index+","+mIndex+");' src='"+RELATIVE_PROP_IMAGES_PATH+imgFiles[fIndex+1]+"' /></td></tr>";        		
	        		else {
	        			in_img += "<td>&nbsp;</td></tr>";        		
	        			break;
	        		}
	        	}
        	}
        	
	        	        
        	var detailObjects = [
        		{"label":"Community Name","field":"Subdivision_Community_Name"},{"label":"HOA Fee","field":"HOA_Fee"},
        		{"label":"HOA Payment Schedule","field":"HOA_Payment_Schedule"},{"label":"Condo Building","field":"Condo_Bldg"},
        		{"label":"Floor","field":"condo_Floor"},{"label":"Water Front Name","field":"Water_front_Name"},
        		{"label":"Pool","field":"POOL"},{"label":"Price/Sq. FT","field":"LP_SQ_FT"},{"label":"Waterfront","field":"Water_Type"},
        		{"label":"Elementary School","field":"Elementary_School"},{"label":"Middle/Junior School","field":"Middle_or_Junior_School"},
        		{"label":"High School","field":"High_School"},{"label":"Exterior Construction","field":"Exterior_Construction"},
        		{"label":"Millage Rate","field":"Millage_Rate"},{"label":"Taxes","field":"Taxes"},{"label":"Avg. days on market","field":"ADOM"},
        		{"label":"Fire Place","field":"FPL"},{"label":"Remarks","field":"Public_Remarks"}
        	];
        	
        	var in_details = "<table>";        	
        	for (var j = 0; j < detailObjects.length; j++) {
        		var fieldValue = eval('markerObject.'+detailObjects[j].field);
        	  if ( !fieldValue ) continue;
        	  
	        	in_details += "<tr><td valign='top'><b>"+detailObjects[j].label+":</b></td>";
	        	in_details += "<td  valign='top'>";
	        	if (detailObjects[j].field == "Public_Remarks") {
	        		in_details += "<div style='width:300px'>"+unescape(fieldValue)+"<div>"; 
	        	}
	        	else {
	        		in_details += unescape(fieldValue); 
	        	}
	        	in_details += "</td></tr>";
        	}
        	
        	var defaultAddr = "";
        	if (userHome) {
        		defaultAddr = userHome.address;
        	}
        	var pointAddress = unescape(markerObject.Address)+ ", "+unescape(markerObject.City)+", FL "+unescape(markerObject.Zip_Code);
        	
        	var strdir = "<tr><td colspan='2'>";
        	strdir += "<table>";
        	strdir += "<tr>";
        	strdir += "<td><input type='hidden' id='hdDA"+markerObject.MLS_NUM+"' name='hdDA"+markerObject.MLS_NUM+"' value='false' />";
        	strdir += "<span id='span.da.choice"+markerObject.MLS_NUM+"'><b>Get directions: </b>To here - <a href='javascript:void(0);' onclick=\"changeChoice('"+markerObject.MLS_NUM+"','fromhere');\">From here</a></span></td>";        	
        	strdir += "</tr>";
        	strdir += "<tr>";
        	strdir += "<td><span id='span.da."+markerObject.MLS_NUM+"'>Start address</span></td>";        	
        	strdir += "</tr>";
        	strdir += "<tr>";
        	strdir += "<td>";
        	strdir += "<input type='text' id='txtDA"+markerObject.MLS_NUM+"' name='txtDA"+markerObject.MLS_NUM+"' value='"+defaultAddr+"' size='45'>";        	
        	strdir += "</td>";
        	strdir += "<td>";
        	strdir += "<input type='button' name='btnDA"+markerObject.MLS_NUM+"' value='Go' onclick=\"setDirections('"+markerObject.MLS_NUM+"','"+pointAddress+"');\">";        	
        	strdir += "</td>";
        	strdir += "</tr>";
        	strdir += "<table>";
        	strdir += "</td></tr>";        	
        	
        	in_details+= strdir;
        	
        	in_details += "</table>";
        	
        	var tabCount = 2;
        	if (markerObject.VIDEO) {        		        		
        		tabCount++;;
        	}
        	
        	if (!isWhitespace(in_img))
        		tabCount++;
        	
        	summaryHTML = '<div style="width:'+(tabCount*88)+'px">'+summaryHTML+'</div>';
        	
       	 	var tabs = [];
       		tabs.push(new GInfoWindowTab("Summary",summaryHTML));        
       		tabs.push(new GInfoWindowTab("Details",in_details));
       		
       		if (!isWhitespace(in_img)) {
						var strgallery = "<div style='overflow:auto; position: relative; height:300px; border: 1px solid black'>";       		
						strgallery += "<table>"+in_img+"</table></div>";						
						var tabTitle = imgFiles.length + " Snap" + ( (imgFiles.length > 1)?"s":"");
       			tabs.push(new GInfoWindowTab(tabTitle,strgallery));        
       		}
       		
       		if (markerObject.VIDEO) {        		
       			var videos = markerObject.VIDEO.split(",");
       			var strvideo = "<div style='overflow:auto; position: relative; height:355px; border: 1px solid black'><table>";       			       			
       			for (var j = 0; j < videos.length; j++) {
       				strvideo += "<tr><td><embed src='"+unescape(videos[j])+"' type='application/x-shockwave-flash' wmode='transparent' width='425' height='350'></embed></td></tr>";
       			}
       			strvideo += "</table></div>";
       			var tabTitle = videos.length + " Video" + ( (videos.length > 1)?"s":"");
       			tabs.push(new GInfoWindowTab(tabTitle,strvideo));
       		}
       		        
        	marker.openInfoWindowTabsHtml(tabs);
        
        });
        // save the info we need to use later for the side_bar
        //gmarkers[i] = marker;
        //htmls[i] = html;
        // add a line to the side_bar html
        //side_bar_html += '<a href="javascript:myclick(' + i + ')">' + name + '</a><br>';
        //i++;
        return marker;
      }

			
			// Mouse wheel zoom - Event handler -----
			function wheelZoom(event) {
				if (wheelZooming) {
					return;
				}
			
				wheelZooming = true;
			
				// zoomRect and rectIcon are global variables!!!
			
				zoomRect = new GMarker(mouseLatLng,{icon:rectIcon});
				map.addOverlay(zoomRect);
			
				if (event.cancelable) {
					event.preventDefault();
				}
				map.closeInfoWindow(); 
				if((event.detail || -event.wheelDelta) < 0) {
					window.setTimeout(function(){
						map.removeOverlay(zoomRect);
						map.zoomIn(mouseLatLng,true,true);
						wheelZooming = false;
					},200);
				} 
				else {
					window.setTimeout(function(){
						map.removeOverlay(zoomRect);
						map.zoomOut(mouseLatLng,true);
						wheelZooming = false;
					},200);
				}
				return false; 
			}
			// End event handler -----
			
			
			
			// Nothing related to mouse wheel zoom below this line ---------------------------
			
			
			function moveEnd() {
				//updateStatusBar();
			}
			
			function zoomEnd(oldZ,zoom) {
				//updateStatusBar();
			}

			function mouseMove(mousePt) {
				mouseLatLng = mousePt;
				/*
				var zoom = map.getZoom();
				var oStatusDiv = document.getElementById("mouseTrack")	
				var mousePx = normalProj.fromLatLngToPixel(mousePt, zoom);
				oStatusDiv.innerHTML = 'Mouse LatLng: ' + mousePt.y.toFixed(6) + ', ' + mousePt.x.toFixed(6) ;
				oStatusDiv.innerHTML += '<br> ';
				oStatusDiv.innerHTML += 'Mouse Px: ' + mousePx.x + ', ' + mousePx.y;
				oStatusDiv.innerHTML += '<br>';
				oStatusDiv.innerHTML += 'Tile: ' + Math.floor(mousePx.x / 256) + ', ' + Math.floor(mousePx.y / 256);
				*/
			}	    
			
			
	var searchResults = new Array();

	function clearLocalResults() {		
			showHideLargeImage(false);
			
		var divElement = document.getElementById("div.searchresults");
		if (divElement) {
			document.getElementById("td.leftPane").removeChild(divElement);		
			searchResults = new Array();
			map.clearOverlays();
			bounds = new GLatLngBounds();
			
			showCheckedKMLs();
			putHomeOnMap();
			
			cPP = -1;
			pagedMarkers = xmlMarkers;
			loadPage(0);			
			//defaultShow(DEFAULT_XML_INDEX);			
		}
	}
	
	var debug = true;
	
	function btnLocalSearch_onClick() {
		showHideLoading(true);	  
	  setTimeout("searchProperty();",10);
	}
	
	function searchProperty() {
		showHideLargeImage(false);
		
		
		var txtSearch = document.getElementById("txtLocalPropertySearch");
		var value = txtSearch.value;
		
		/*
		if (value.length < 5) {
			alert("Please enter atleast 5 characters");
			return;
		}
		*/
		
		var hasPool = document.getElementById("chkPool").checked;
		var hasPhotos = document.getElementById("chkPhotos").checked;
		var hasVTour = document.getElementById("chkVTour").checked;
		var hasFP = document.getElementById("chkFP").checked;
		var minPrice = parseInt(document.getElementById("min_price").value);
		var maxPrice = parseInt(document.getElementById("max_price").value);
		var minBeds = parseInt(document.getElementById("slBeds").value);
		var minBaths = parseInt(document.getElementById("slBaths").value);
		var adomFilter = document.getElementById("slADOM").value;
		var status = document.getElementById("slStatus").value;
				
		//clearLocalResults();
		
		
		value = value.toLowerCase();
		
		var results = new Array();
		
		var keywordFields = ["Address","City","Zip_Code","List_Price","MLS_NUM"];
		
		if (xmlProps) {
			for (var index = 0; index < xmlProps.length; index++) {
				
				if (!xmlProps[index].loaded) continue;
				
				var allMarkers = xmlProps[index].markerObjects;
				for (var i = 0; i < allMarkers.length; i++) {
					var name = "";
					
					for (var k=0; k < keywordFields.length; k++) {
						var tempKeyword = unescape(eval('allMarkers[i].'+keywordFields[k]));
						if (tempKeyword) name += tempKeyword;
					}
					
					
					name = name.toLowerCase();
					if (name.indexOf(value) > -1) {
						
						if (hasPool && (!allMarkers[i].POOL || allMarkers[i].POOL == 'No' ) ) {
							continue;
						}
						if (hasFP && (!allMarkers[i].FPL || allMarkers[i].FPL == 'No' ) ) {
							continue;
						}
						if (hasPhotos && (!allMarkers[i].Image) ) {
							continue;
						}
						if (hasVTour && (!allMarkers[i].VT_Link) ) {
							continue;
						}
						if ( (allMarkers[i].Price < minPrice) || (allMarkers[i].Price > maxPrice) ) {
							continue;
						}
						if (minBeds && (!allMarkers[i].Beds || parseInt(allMarkers[i].Beds) < minBeds)) {
							continue;
						}
						if (minBaths && (!allMarkers[i].Full_Baths || parseInt(allMarkers[i].Full_Baths) < minBaths)) {
							continue;
						}
						if (!isWhitespace(status) && (allMarkers[i].Status != status)) {
							continue;
						}
						if (!isWhitespace(adomFilter) && (!allMarkers[i].ADOM || !eval('allMarkers[i].ADOM '+ adomFilter) ) ) {
							continue;
						}
						
						var pageMarker = new Object();
	        	pageMarker.xmlIndex = index;
	        	pageMarker.relativeIndex = i;					
						results[results.length] = pageMarker;
					}
				}
			}
		}
		
		if (results.length > 0) {
			
			while (	document.getElementById("td.leftPane").childNodes.length > 0 )
      	document.getElementById("td.leftPane").removeChild( document.getElementById("td.leftPane").childNodes[0] );
            
			results.sort(pagedSortNumber);
			
			unloadPage(cPP);
			
			pagedMarkers = results;
			
			cPP=-1;
			loadPage(0);		
			
		}
		else {
			alert("No matching results found");
			showHideLoading(false);	  
		}
		
		
		
		
	}
	
	function showResultInfo(resultIndex) {		
		GEvent.trigger(searchResults[resultIndex].markerRef,'click');
	}
	
	function showPagedResultInfo(index) {		
		var mobj = xmlProps[pagedMarkers[index].xmlIndex].markerObjects[pagedMarkers[index].relativeIndex];
		GEvent.trigger(mobj.markerRef,'click');
	}
	
	function propertySearch_onKeyPress(evt) {
		if (!evt) evt = window.event;		
		var keyCode = evt.keyCode ? evt.keyCode : evt.which ? evt.which : evt.charCode;		
		if (keyCode == 13) {		
			showHideLoading(true);	  
	  	setTimeout("searchProperty();",10);			
		}
		
	}			
	
		function showCheckedKMLs() {
			if (document.getElementById('chkHighSchool').checked)
				loadKML('School');
			else
				unloadKML('School');
				
			if (document.getElementById('chkZipCode').checked)
				loadKML('ZipCode');
			else
				unloadKML('ZipCode');
		}
			
		var kmls = [
			{"key":"School","url":"http://www.thebutlerchain.com/IDXWork/KML/OlympiaHighSchool.xml"},
			{"key":"ZipCode","url":"http://www.thebutlerchain.com/IDXWork/KML/ZipCodes.xml"},
			{"key":"SouthWestSubDivisions","url":"http://www.thebutlerchain.com/IDXWork/KML/sws2.xml"}
		];
		
		var exml = new Array();
		
		function kmlCheckboxClick(cb) {
			showHideLargeImage(false);
			
			showHideLoading(true);
	    var load = cb.checked;
	    var key = cb.value;
	    setTimeout("loadunloadKML("+load+",'"+key+"');",10);	    	
		}
		
		function loadunloadKML(load,key) {
			if (load) 
				loadKML(key);
			else
				unloadKML(key);	
			showHideLoading(false);
		}
		
		
		function unloadKML(key) {
			
			
			
			var index = 0;
			for (;index < kmls.length; index++) {
				if (kmls[index].key == key)
					break;
			}
			
			
			if (!exml[index]) return;
			
			
			
			for (var i=0; i < exml[index].gmarkers.length; i++)			
				map.removeOverlay(exml[index].gmarkers[i]);
			
			for (var i=0; i < exml[index].groundoverlays.length; i++)				
				map.removeOverlay(exml[index].groundoverlays[i]);
			
			for (var i=0; i < exml[index].gpolygons.length; i++)						
				map.removeOverlay(exml[index].gpolygons[i]);
			
			for (var i=0; i < exml[index].gpolylines.length; i++)			
				map.removeOverlay(exml[index].gpolylines[i]);
			
			
		}
		
		function loadKML(key) {
		    //alert('key='+key);
		    
			var index = 0;
			for (;index < kmls.length; index++) {
				if (kmls[index].key == key)
					break;
			}
			
			//alert('kmls['+index+'].url='+kmls[index].url);
			
			exml[index] = new EGeoXml("exml["+index+"]", map, kmls[index].url);
			exml[index].bounds = bounds;
			exml[index].parse();				
			
			
			//map.setCenter(new GLatLng(28.469901,-81.525078));
			//map.setZoom(13);
		}
		
		var userHome;
		
		function btnHomeSet_onClick() {
			showHideLargeImage(false);
			
			var addr = document.getElementById("txtHome").value;
			if (isWhitespace(addr)) {
				setUserHome();
				return;
			}
			
			showHideLoading(true);	  
	  	setTimeout("setUserHome();",10);
			
		}
		
		function setUserHome() {
			
			var addr = document.getElementById("txtHome").value;
			if (isWhitespace(addr)) {
				alert('Please specify your address');
				return;				
			}
			
			
			if (userHome)
				map.removeOverlay(userHome.marker);
			
			var geo = new GClientGeocoder(); 
			
			var setHomeReturn = function(point) {				
				
				if (!point) {
					alert('Invalid Address. Please try again.');
					showHideLoading(false);						
					return;
				}
				var marker = new GMarker(point,gicons['user_home']);				
				map.addOverlay(marker);
				map.setCenter(point,10);
				userHome = new Object();
				userHome.marker = marker;
				userHome.address = addr;
				
				GEvent.addListener(marker, "click", function() { 
					marker.openInfoWindowHtml(userHome.address);	
				});
				
				marker.openInfoWindowHtml(userHome.address);	
				showHideLoading(false);
			}
			geo.getLatLng(addr,setHomeReturn);
		}
		
		
		
		function putHomeOnMap() {
			if (!userHome) return;
			map.addOverlay(userHome.marker);
			//map.setCenter(userHome.marker.getPoint(),10);			
		}
			
		function clearDirections() {
			showHideLargeImage(false);
			
			gdir.clear();
			map.setZoom(map.getBoundsZoomLevel(bounds));
	    map.setCenter(bounds.getCenter());
	      
			document.getElementById("directions").style.display = 'none';
			document.getElementById("divClearDirections").style.display = 'none';
			//document.getElementById("tempHolder").appendChild(document.getElementById("directions"));
		}
		
		function showHideLoading(show) {
			
			if (show) {
				document.getElementById('divLoading').style.pixelTop = (document.body.scrollTop + 50);
				document.getElementById('divLoading').style.visibility = 'visible';			
			}
			else {
				document.getElementById('divLoading').style.visibility = 'hidden';			
			}
		}
		
		function findPosX(obj) {
		    var curleft = 0;
		    if (obj.offsetParent) {
		        while (obj.offsetParent) {
		            curleft += obj.offsetLeft;
		            obj = obj.offsetParent;
		        }
		    }
		    else if (obj.x) {
		        curleft += obj.x;
		    }
		    return curleft;
		}
		
		function  findPosY(obj) {
		    var curTop = 0;
		    if (obj.offsetParent) {
		        while (obj.offsetParent) {
		            curTop += obj.offsetTop;
		            obj = obj.offsetParent;
		        }
		    }
		    else if (obj.y) {
		        curTop += obj.y;
		    }
		    return curTop;
		}
		
		function performGoogleLocalSearch(v) {
			
			showHideLargeImage(false);
			if (!isWhitespace(v)) 
				ls.execute(v);
		
		}
		
		
		function cleanMap() {
		    map.clearOverlays();
		    clearDirections();
		    clearLocalResults();
		    
		    putHomeOnMap();
		    
		    document.getElementById('chkHighSchool').checked = false;
		    document.getElementById('chkZipCode').checked = false;
		    document.getElementById('chkSWSubDivision').checked = false;
		    
		}