var gMapElm = null;var gMapObj = null;var gMapMark = null;var gMapMarkerGroups = { "default": [], "active": [], "info": [] };var gMapBulletRed = null;var gMapBulletBlue = null;var gMapGeo = null;var gMapPan = null;var gCacheObj = null;var gMapCurAdNum = null;var gMapCurCoord = null;var gMapCurAddr = null;var gMapActions = null;var gMapStatus = null;var gMapRetryPanel = 0;var gMapTimeout = null;var gMapPagePath = null;var gMapPageCat = null;var gMapPageSubCat = null;function loadMap(id, interactive){if(!gMapElm){return false;}/*<![CDATA[*/if (GBrowserIsCompatible()){gMapObj = new GMap2(gMapElm);gMapPan = new GStreetviewPanorama(document.getElementById("panoMap"));gMapObj.setUIToDefault();point = new GLatLng(38.6,-98);gMapObj.setCenter(point,3,G_NORMAL_MAP);var tinyIcon = new GIcon();tinyIcon.image = "/images/map/usa4smapicon.png";tinyIcon.iconSize = new GSize(38, 32);/*tinyIcon.shadowSize = new GSize(22, 20);*/tinyIcon.iconAnchor = new GPoint(12, 36);tinyIcon.infoWindowAnchor = new GPoint(5, 1);gMapMark = { icon:tinyIcon };var tinyIcon = new GIcon();tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";tinyIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";tinyIcon.iconSize = new GSize(12, 20);tinyIcon.shadowSize = new GSize(22, 20);tinyIcon.iconAnchor = new GPoint(6, 20);tinyIcon.infoWindowAnchor = new GPoint(5, 1);gMapBulletRed = { icon:tinyIcon };var tinyIcon = new GIcon();tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_blue.png";tinyIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";tinyIcon.iconSize = new GSize(12, 20);tinyIcon.shadowSize = new GSize(22, 20);tinyIcon.iconAnchor = new GPoint(6, 20);tinyIcon.infoWindowAnchor = new GPoint(5, 1);gMapBulletBlue = { icon:tinyIcon };if(interactive){GEvent.addListener(gMapObj, "click", getAddress);}GEvent.addListener(gMapPan, "error", handleNoFlash);gMapGeo = new GClientGeocoder();}/*]]>*/}function createIcon(label, colPin, colFont){var tinyIcon = new GIcon();tinyIcon.image = "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=" + label + "|" + colPin + "|" + colFont;tinyIcon.shadow = "http://chart.apis.google.com/chart?chst=d_map_pin_shadow";tinyIcon.iconSize = new GSize(16, 24);tinyIcon.shadowSize = new GSize(26, 24);tinyIcon.iconAnchor = new GPoint(10, 24);tinyIcon.infoWindowAnchor = new GPoint(5, 1);gMapPin = { icon:tinyIcon };return gMapPin;}function handleNoFlash(errorCode) {if (errorCode == FLASH_UNAVAILABLE) {alert("Error: Flash doesn't appear to be supported by your browser");showMessage('Cannot show map', 'Your browser does not support flash.');return;}}function getAddress(overlay, latlng){if (latlng != null){gMapGeo.getLocations(latlng, showAddressRetainMapPos);gMapPan.setLocationAndPOV(latlng);}}function showAddressRecenter(response){gMapObj.clearOverlays();if (!response || response.Status.code != 200){showMessage('Address not found', 'Unable to map a location to that address.  Please revise into a standard format.');} else{place = response.Placemark[0];point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);gMapObj.setCenter(point, 15);gMapCurCoord = place.Point.coordinates[1] + "," + place.Point.coordinates[0];marker = new GMarker(point, gMapMark);gMapObj.addOverlay(marker);showInfoWindowPlace(marker, place)}}function showAddressRecenterFromMySavedMap(){myPlace = myMapManage("Q", gMapCurAdNum);if(myPlace){initMap('contactMap', true);gMapObj.clearOverlays();point = new GLatLng(myPlace["coords"][0], myPlace["coords"][1]);gMapObj.setCenter(point, 15);marker = new GMarker(point, gMapMark);gMapObj.addOverlay(marker);count = myMapManage("C");var content =	"<a href='/mymap/?id=" + gMapCurAdNum + "'><b>View My Maps (" + count + ")</b></a>" +" ( <small>" +"<a href='javascript:void(0)' onClick='return removeFromMyMaps()'>Remove</a> " +"</small>) " +"<br>" +"<br>";gMapStatus.innerHTML = content;}}function showMySavedMaps(){myPlaces = myMapManage("S");var listedContent = "";if(myPlaces){listedContent += "<span class='mTitle'>Mapped Locations (" + myPlaces.length + ")</span> " +"<small>(<a href='javascript:void(0)' onClick='return removeAllFromMyMap()'>Remove All</a>)</small>" +"<hr/><ol>";initMap('contactMap', false);gMapObj.clearOverlays();var bounds = new GLatLngBounds;for(var i = 0; i < myPlaces.length; i++){var myPlace = myPlaces[i];point = new GLatLng(myPlace["coords"][0], myPlace["coords"][1]);var mapPinOn = createIcon(i+1, "FF0000", "000000");var mapPinOff = createIcon(i+1, "0000FF", "FFFFFF");markerActive = new GMarker(point, mapPinOn);markerDefault = new GMarker(point, mapPinOff);markerActive.hide();GEvent.addListener(markerDefault, "click", function() { showMarkerPos(this, myPlace["adnum"]); });GEvent.addListener(markerActive, "click", function() { showMarkerPos(this, myPlace["adnum"]); });gMapMarkerGroups["active"].push(markerActive);gMapMarkerGroups["default"].push(markerDefault);gMapMarkerGroups["info"].push(myPlace);gMapObj.addOverlay(markerActive);gMapObj.addOverlay(markerDefault);bounds.extend(markerDefault.getPoint());listedContent +=	"<li><a href='javascript:void(0);' rel='mLinks' id='mid-" + myPlace["adnum"] + "' class='mItem' onClick='toggleMarkerFromClick(\"" + myPlace["adnum"] + "\")'>" +myPlace["addr"] +"</a>" +"<small>(<a href='javascript:void(0)' onClick='return removeFromMyMapsItem(\"" + myPlace["adnum"] + "\")'>Remove</a>)</small> " +"</li>";}listedContent += "</ol>";gMapObj.setZoom(gMapObj.getBoundsZoomLevel(bounds));gMapObj.setCenter(bounds.getCenter());window.onload = function(){gMapTimeout = setInterval("checkMapPanelExists()", 500);}} else{var iMap = document.getElementById("contactMap");if(iMap){var clearContent = "<br><br><br><br>" +"<p><b>There are no mapped items to show.</b></p>" +"<p>Please visit our classified pages and select a classified to map here.</p>";iMap.innerHTML = clearContent;}}var listObj = document.getElementById("mapItems");if(listObj){listObj.innerHTML = listedContent;}}function checkMapPanelExists(){var e = document.getElementById("mapInfoPanel");if(e){toggleMarkerFromUrl();clearInterval(gMapTimeout);}}function showAddressRetainMapPos(response){gMapObj.clearOverlays();if (!response || response.Status.code != 200){showMessage('Address not found', 'Unable to map a location to that address.  Please revise into a standard format.');} else{place = response.Placemark[0];var origlatlong = response.name.split(/,/);point = new GLatLng(origlatlong[0],	origlatlong[1]);marker = new GMarker(point, gMapMark);gMapObj.addOverlay(marker);showInfoWindowPlace(marker, place)}}function showInfoWindowPlace(marker, place){return false;marker.openInfoWindowHtml("<div style='color:#000; text-align: left; font-size: 11px; height: 50px; margin: 0; padding: 0'>" +"<b>Geo Addr:</b>" + place.address + "<br>" +"<b>Accuracy:</b>" + place.AddressDetails.Accuracy + "<br>" +"<b>Country code:</b> " + place.AddressDetails.Country.CountryNameCode +"</div>");}function showInfoWindow(marker, content){marker.openInfoWindowHtml("<div style='color:#000; text-align: left; font-size: 11px; margin: 0; padding: 0 0 10px 0;'>" +content +"</div>");}function showMarkerPos(marker, adNum){for(var i=0; i < gMapMarkerGroups["default"].length; i++){gMarkDefault = gMapMarkerGroups["default"][i];gMarkActive = gMapMarkerGroups["active"][i];if(marker == gMarkDefault || marker == gMarkActive){gMarkInfo = gMapMarkerGroups["info"][i];gMarkDefault.hide();gMarkActive.show();var myMarker = findMarker(adNum);if(myMarker){var content =	"<b>Ad #:</b> <a href='/classifieds/" + gMarkInfo["adnum"] + ".php'>" + gMarkInfo["adnum"] + "</a><br>";if(gMarkInfo["subcat"] == gMarkInfo["cat"]){content += "<b>Page:</b> <a href='" + gMarkInfo["path"] + "#" + gMarkInfo["adnum"] + "'>" + gMarkInfo["subcat"] + "</a><br>";} else{content +=	"<b>Page:</b> <a href='" + gMarkInfo["path"] + "'>" + gMarkInfo["cat"] + "</a><br>" +"<b>Category:</b> <a href='" + gMarkInfo["path"] + "#" + gMarkInfo["adnum"] + "'>" + gMarkInfo["subcat"] + "</a><br>";}content +=	"<b>Address:</b> " + gMarkInfo["addr"] + "<br>" +"<a href='javascript:void(0)' onClick='return removeFromMyMaps(\"" + gMarkInfo["adnum"] + "\")'>Remove</a> " +"";showInfoWindow(marker, content);var listObj = document.getElementById("mapItems");if(listObj){var tagObjs = listObj.getElementsByTagName("a");for(j = 0; j < tagObjs.length; j++){var elm = tagObjs[j];if(elm.hasAttribute("rel") && elm.rel == "mLinks"){elm.className = "mItem";}}}var mItem = document.getElementById("mid-" + gMarkInfo["adnum"]);if(mItem){mItem.className = "mItemSel";}}} else{gMarkDefault.show();gMarkActive.hide();}}}function toggleMarkerFromUrl(){loc = window.location.href;matches = loc.match(/id=([0-9DLR]+)/);if(matches && matches[1]){var myMarker = findMarker(matches[1]);if(myMarker && myMarker["info"]){showMarkerPos(myMarker["default"], myMarker["info"]["adnum"]);}}}function toggleMarkerFromClick(loc){matches = loc.match(/([0-9DLR]+)/);if(matches && matches[1]){var myMarker = findMarker(matches[1]);if(myMarker && myMarker["info"]){showMarkerPos(myMarker["default"], myMarker["info"]["adnum"]);}}}function findMarker(adNum){var outputObj = new Object();for(var i=0; i < gMapMarkerGroups["default"].length; i++){outputObj["info"] = gMapMarkerGroups["info"][i];if(outputObj["info"]["adnum"] == adNum){outputObj["default"] = gMapMarkerGroups["default"][i];outputObj["active"] = gMapMarkerGroups["active"][i];return outputObj;}}}function removeMarker(adNum){var newMarkerGroups = { "default": [], "active": [], "info": []};for(var i=0; i < gMapMarkerGroups["default"].length; i++){var markerInfo = gMapMarkerGroups["info"][i];if(markerInfo["adnum"] != adNum){var markerDefault = gMapMarkerGroups["default"][i];var markerActive = gMapMarkerGroups["active"][i];newMarkerGroups["info"].push(markerInfo);newMarkerGroups["default"].push(markerDefault);newMarkerGroups["active"].push(markerActive);}}gMapMarkerGroups["info"] = newMarkerGroups["info"];gMapMarkerGroups["default"] = newMarkerGroups["default"];gMapMarkerGroups["active"] = newMarkerGroups["active"];}function initMap(id, interactive){gMapElm = document.getElementById(id);if(gMapElm){loadMap(id, interactive);var panoMapText = document.getElementById("panoMap");if(panoMapText){panoMapText.className = "dounhide";}gMapStatus = document.getElementById("myMaps");if(gMapStatus){gMapStatus.className = "dounhide";}}}function lookupAddress(id){var gAddr = document.getElementById("qAddr");initMap(id, true);if(gAddr && gAddr.value != "Enter an Address..."){gAddr.value = gAddr.value.replace(/[\||\^|\?]+/, "");gMapCurAddr = gAddr.value;gMapGeo.getLocations(gAddr.value, showAddressRecenter);var content = "";if(isMapped(gMapCurAdNum)){count = myMapManage("C");content +=	"<a href='/mymap/?id=" + gMapCurAdNum + "'><b>View My Maps (" + count + ")</b></a>" +" ( <small>" +"<a href='javascript:void(0)' onClick='return removeFromMyMaps()'>Remove</a> " +"</small>) " +"<br>" +"<br>" +"<span class='green'>Location already mapped, <a href='javascript:void(0)' onClick='return showAddressRecenterFromMySavedMap();'>View Map</a>.</span>";} else{content +=	"[ <a href='javascript:void(0)' onClick='return saveToMyMaps();'>Save to MY MAPS</a> ]<br>";if(count){content += "<a href='/mymap/?id=" + gMapCurAdNum + "'><b>View My Maps (" + count + ")</b></a>";}}gMapStatus.innerHTML = content;} else if(!gMapElm){showMessage('Map Element Not Found', 'Please call technical support.');} else{showMessage('No Address', 'Please type an address in the above input field.');}}function showMessage(title, msg){if(gMapElm){gCacheObj = gMapElm.innerHTML;gMapElm.innerHTML  = "<h2>" + title + "</h2>";gMapElm.innerHTML += "<p>" + msg + "</p>";setTimeout("reloadMapCache()", 4000);}}function reloadMapCache(){if(gCacheObj){gMapElm.innerHTML = gCacheObj;gCacheObj = null;}}function submitenter(id, e){var keycode;if (window.event) { keycode = window.event.keyCode; }else if (e) { keycode = e.which; }else { return true; }if (keycode == 13){lookupAddress(id);return false;}else{return true;}}function getMyMaps(adNum){gMapCurAdNum = adNum;count = myMapManage("C");var content = "";if(isMapped(gMapCurAdNum)){gMapStatus = document.getElementById("myMaps");if(gMapStatus){gMapStatus.className = "dounhide";}content +=	"<a href='/mymap/?id=" + gMapCurAdNum + "'><b>View My Maps (" + count + ")</b></a>" +"<br>" +"<span class='green'>Location already mapped, <a href='javascript:void(0)' onClick='return showAddressRecenterFromMySavedMap();'>Show Map Above</a>.</span>";gMapStatus.innerHTML = content;} else{gMapStatus = document.getElementById("myMaps");if(gMapStatus){gMapStatus.className = "dounhide";}if(count){content +=	"<a href='/mymap/?id=" + gMapCurAdNum + "'><b>View My Maps (" + count + ")</b></a>" +"<br>";} else{content += "<b>You have no saved maps</b><br>";}content +=	"You can now create your own maps.";gMapStatus.innerHTML = content;}}function removeFromMyMaps(adNum){if(adNum){var myMarker = findMarker(adNum);if(myMarker){gMapObj.removeOverlay(myMarker["active"]);gMapObj.removeOverlay(myMarker["default"]);removeMarker(adNum);myMapManage("D", adNum);var e = document.getElementById("mapInfoPanel");if(e){e.innerHTML = "";}}} else{myMapManage("D", gMapCurAdNum);var content = "[ <a href='javascript:void(0)' onClick='return saveToMyMaps();'>Add to MY MAPS</a> ]";gMapStatus.innerHTML = content;}return false;}function removeFromMyMapsItem(adNum){removeFromMyMaps(adNum);showMySavedMaps();}function removeAllFromMyMap(){myPlaces = myMapManage("S");if(myPlaces){for(var i = 0; i < myPlaces.length; i++){var myPlace = myPlaces[i];removeFromMyMaps(myPlace["adnum"]);}}showMySavedMaps();}function saveToMyMaps(){var cookies = new CookieHandler();var myMaps = cookies.get("myMaps");if(isMapped(gMapCurAdNum)){myMapManage("U", gMapCurAdNum, gMapCurCoord, gMapCurAddr);} else{myMapManage("A", gMapCurAdNum, gMapCurCoord, gMapCurAddr);count = myMapManage("C");var content =	"<a href='/mymap/?id=" + gMapCurAdNum + "'><b>View My Maps (" + count + ")</b></a>" +" ( <small>" +"<a href='javascript:void(0)' onClick='return removeFromMyMaps()'>Remove</a> " +"</small>) " +"<br>" +"<br>";/*"<span class='green'>Location already mapped, <a href='javascript:void(0)'>View Map</a>.</span>";*/gMapStatus.innerHTML = content;}}function isMapped(adNum){var cookies = new CookieHandler();var myMaps = cookies.get("myMaps");var mapped = false;if(myMapManage("Q", adNum)){mapped = true;}return mapped;}function toggleInlineAdMaps(){myPlaces = myMapManage("S");if(myPlaces){for(var i = 0; i < myPlaces.length; i++){var myPlace = myPlaces[i];var adNum = myPlace["adnum"];var e = document.getElementById("ad-" + adNum);if(e){var newDiv = document.createElement("div");var content =	"<div class='ad-mapped-bottom'>" +"<div class='ad-mapped-bottom-inner'>" +"Location Mapped " +"<a href='/mymap/?id=" + adNum + "'><b>View My Maps</b></a>" +"</div></div>";newDiv.innerHTML = content;e.className += " ad-mapped";e.appendChild(newDiv);}}}}function myMapManage(act, id, coord, addr){var cookies = new CookieHandler();var myMaps = cookies.get("myMaps");if(!myMaps && act != "A"){return false;}var output = false;var update = false;var counter = 0;if(act != "A"){var rows = myMaps.split(/\|/);var record = null;var tmpMaps = "";var outputArray = new Array();for(var i = 0; i < rows.length; i++){var fvals = "";var fields = rows[i].split(/\^/);var keys = new Object();keys["ad"] = fields[0];keys["coords"] = fields[1];keys["addr"] = fields[2];keys["path"] = fields[3];keys["cat"] = fields[4];keys["subcat"] = fields[5];var append = true;switch(act){case "D": if(fields[0] == id){append = false;update = true;}break;case "U": if(fields[0] == id){keys["coords"] = coord;keys["addr"] = addr;update = true;}break;case "Q": if(fields[0] == id){output = new Object();output["coords"] = keys["coords"].split(/,/);output["addr"] = keys["addr"];append = false;}break;case "C": counter++;break;case "S": outputObj = new Object();outputObj["adnum"] = keys["ad"];outputObj["coords"] = keys["coords"].split(/,/);outputObj["addr"] = keys["addr"];outputObj["path"] = keys["path"];outputObj["cat"] = keys["cat"];outputObj["subcat"] = keys["subcat"];outputArray.push(outputObj);append = false;default:break;}if(append){tmpMaps += keys["ad"] + "^" + keys["coords"] + "^" + keys["addr"] + "^" + keys["path"] + "^" + keys["cat"] + "^" + keys["subcat"] + "|";}}tmpMaps = tmpMaps.replace(/\|$/, "");} else{var row = id + "^" + coord + "^" + addr + "^" + gMapPagePath + "^" + gMapPageCat + "^" + gMapPageSubCat;if(myMaps){tmpMaps = myMaps + "|" + row;} else{tmpMaps = row;}update = true;}if(update){cookies.set("myMaps", tmpMaps);}if(act == "C"){output = counter;}if(act == "S"){output = outputArray;}return output;}function parseAddresses(){var e = document.getElementById("copyBlock");if(e){var m = e.innerHTML.match(/(([0-9]{1,7})([a-z0-9 ]+)( |,)*(ocala|belleview|citra|hernando|dunnellon|silver +springs? *(shores)?|summerfield|anthony|sparr|reddick|ocklawaha|lake +weir|candler)+( |,)*(FL(orida)?)*)/i);if(m){var i = document.getElementById("qAddr");if(i){i.value = m[1];}}}}
