//globals var map; var mgr; var initZoom = 5; var initLat = '52'; var initLng = '-57'; var tooltip = document.createElement("div"); var myHtmlNode = document.getElementById("listingcontainer"); var marklist = {}; var markerlist= {}; var currentMark; var zoommessage = document.createElement("div"); zoommessage.innerHTML = "

Zoom in more and
drag the map to see
service area markers.

"; zoommessage.style.visibility="hidden"; var selectedMark; function load() { if (GBrowserIsCompatible()) { doQueryString(); map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(initLat, initLng), initZoom); map.addControl(new GLargeMapControl()); map.addControl(new GScaleControl()); map.addControl(new GMapTypeControl()); mgr = new GMarkerManager(map); map.getPane(G_MAP_FLOAT_PANE).appendChild(tooltip); tooltip.style.visibility="hidden"; var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(150,200)); pos.apply(zoommessage); map.getContainer().appendChild(zoommessage); doZoomMessage(initZoom); } addMapLayer("/icebergdata.aspx"); addNbhds("/nbhds.aspx"); GEvent.addListener(map,"mouseout", function() { tooltip.style.visibility="hidden"; }); GEvent.addListener(map, "zoomend", function (oldLevel, newLevel) { doZoomMessage(newLevel); marker=selectedMark; drawCircles(marker); }); GEvent.addListener(map,"click", function(overlay, point) { if(!overlay){ removeMapLayer("bullseye"); selectedMark=""; } }); } function addMapLayer(url){ GDownloadUrl(url, function (data, code) { var xmlDoc = GXml.parse(data); var id = xmlDoc.documentElement.getAttribute("id"); var markers = xmlDoc.documentElement.getElementsByTagName("marker"); for (var i = 0; i < markers.length; i++) { createMarker(markers[i]); } }); } function addNbhds(url){ GDownloadUrl(url, function (data, code) { var xmlDoc = GXml.parse(data); //var id = xmlDoc.documentElement.getAttribute("id"); var nbhds = []; var markers = xmlDoc.documentElement.getElementsByTagName("nbhd"); //alert(GXml.value(markers[0].getElementsByTagName("long")[0])); for (var i = 0; i < markers.length; i++) { var id = markers[i].getAttribute("id"); var point = new GLatLng(GXml.value(markers[i].getElementsByTagName("lat")[0]),GXml.value(markers[i].getElementsByTagName("long")[0])); var html = ""; var buscats = markers[i].getElementsByTagName("buscat"); for (var j = 0; j < buscats.length; j++) { if (buscats[j].getAttribute("count")>0 && buscats[j].getAttribute("type") != 'eat') { html += '' + buscats[j].getAttribute("label") + ' (' + buscats[j].getAttribute("count") + ')'; } } marker = createMark(point, html); marklist["n" + id] = marker; nbhds.push(marker); } mgr.addMarkers(nbhds, 9); mgr.refresh(); }); } function createMark(point, html){ var marker = new GMarker(point, myicons["small"]); //GEvent.addListener(marker,"mouseover", function() { // marker.openInfoWindowHtml('
'+html+'
'); //}); marker.tooltip = '
'+html+'
'; GEvent.addListener(marker,"mouseover", function() { showTooltip(marker); }); return marker; } function createMarker(markerNode){ var lat = parseFloat(markerNode.getAttribute("lat")); var lng = parseFloat(markerNode.getAttribute("lng")); var point = new GLatLng(lat,lng); var icon = markerNode.getAttribute("class"); var label = markerNode.getAttribute("title"); var html = markerNode.getElementsByTagName("infowindow")[0].firstChild.data; var marker = new GMarker(point, myicons[icon]); marker.my_html = html; marker.my_name = label; GEvent.addListener(marker,"click", function() { selectedMark = marker; drawCircles(); marker.openInfoWindowHtml('
'+marker.my_html+'
'); }); map.addOverlay(marker); } function showTooltip(mark) { tooltip.innerHTML = mark.tooltip; var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.fromDivPixelToLatLng(new GPoint(0,0),true),map.getZoom()); var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(mark.getPoint(),map.getZoom()); var anchor=mark.getIcon().iconAnchor; var width=mark.getIcon().iconSize.width; var height=tooltip.clientHeight; var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(offset.x - point.x - anchor.x + width, offset.y - point.y -anchor.y -height)); pos.apply(tooltip); tooltip.style.visibility="visible"; } function doZoomMessage(zoomlevel) { zoommessage.style.visibility="hidden"; if (zoomlevel < 9){ zoommessage.style.visibility="visible"; } } function doSidebar(id, type, sort){ myHtmlNode = document.getElementById("list"); myHtmlNode.innerHTML="loading..."; var url = '/businessproxy.aspx?nid=' + id + '&btype=' + type; if (sort){ url += '&sort=' + sort; } GDownloadUrl(url, function (data, code) { var xmlDoc = GXml.parse(data); if (currentMark){currentMark.setImage('/media/2251-marker_20_red.png');} currentMark = marklist["n" + id]; currentMark.setImage('/media/5602-2251-marker_20_green.png'); tooltip.style.visibility="hidden"; // DO HEADER var name = GXml.value(xmlDoc.documentElement.getElementsByTagName("name")[0]); var count = xmlDoc.documentElement.getElementsByTagName("buscat")[0].getAttribute("count"); myHtmlNode = document.getElementById("listhead"); headHTML = '
'; headHTML += '

Services in...
' + name + ' ('+ count +')

'; headHTML +='

'; headHTML += 'sort:  '; headHTML += 'a-z  '; headHTML += 'type

'; headHTML += '
'; //myHtmlNode.innerHTML = headHTML; // DO LISTING var businesses = xmlDoc.documentElement.getElementsByTagName("business"); var listHTML = headHTML; for (var i = 0; i < businesses.length; i++) { var town = GXml.value(businesses[i].getElementsByTagName("towncity")[0]); var name = GXml.value(businesses[i].getElementsByTagName("name")[0]); var phone = GXml.value(businesses[i].getElementsByTagName("phone")[0]); var tollfreephone = GXml.value(businesses[i].getElementsByTagName("tollfreephone")[0]); var season = GXml.value(businesses[i].getElementsByTagName("season")[0]); var email = GXml.value(businesses[i].getElementsByTagName("email")[0]); var url = GXml.value(businesses[i].getElementsByTagName("url")[0]); var subtype = GXml.value(businesses[i].getElementsByTagName("subtype")[0]); var bid = businesses[i].getAttribute("id"); var turl; switch (type) { case "stay": { turl="http://www.newfoundlandlabrador.com/Search/PlacesToStay.aspx"; break; } case "shop": { turl="http://www.newfoundlandlabrador.com/Search/WhatToDo.aspx"; break; } case "todo": { turl="http://www.newfoundlandlabrador.com/Search/WhatToDo.aspx"; break; } case "tour": { turl="http://www.newfoundlandlabrador.com/Search/WhatToDo.aspx"; break; } case "eat": { turl="http://www.newfoundlandlabrador.com/Search/PlacesToEat.aspx"; break; } default: { turl="http://www.newfoundlandlabrador.com/Search/PlacesToStay.aspx"; break; } } turl = 'more info...'; var listingHTML = ''; listingHTML += '
'; listingHTML += '

' + town + '
' + name + '

'; if (phone != ""){listingHTML += '

Direct: ' + phone + '

';} if (tollfreephone != ""){listingHTML += '

Toll-free: ' + tollfreephone + '

';} if (season != ""){listingHTML += '

Season: ' + season + '

';} if (email != ""){listingHTML += '

' + email + '

';} if (url != ""){ var s = new String(url); var s = s.replace(/\./g,"_"); listingHTML += '

' + url + '

'; } listingHTML += '

' + subtype +' '+ turl +'

'; listingHTML += '
'; listHTML += listingHTML; } myHtmlNode = document.getElementById("list"); myHtmlNode.innerHTML = listHTML; }); } myicons ={}; var icon= new GIcon(); icon.image = "/media/221-icon_sat.png"; icon.shadow = "/media/226-icon_sat_shadow.png"; icon.printImage = "/media/6188-icon_sat.gif"; icon.mozPrintImage = "/media/6188-icon_sat.gif"; icon.iconSize = new GSize(27, 23); icon.shadowSize = new GSize(40, 23); icon.iconAnchor = new GPoint(13, 23); icon.infoWindowAnchor = new GPoint(15, 20); myicons["sat"] = icon; var icon= new GIcon(); icon.image = "/media/232-icon_eye.png"; icon.shadow = "/media/226-icon_sat_shadow.png"; icon.printImage = "/media/6195-icon_eye.gif"; icon.mozPrintImage = "/media/6195-icon_eye.gif"; icon.iconSize = new GSize(27, 23); icon.shadowSize = new GSize(40, 23); icon.iconAnchor = new GPoint(13, 23); icon.infoWindowAnchor = new GPoint(15, 20); myicons["eye"] = icon; var icon= new GIcon(); icon.image = "/media/1839-dd-start.png"; icon.shadow = "/media/1853-shadow50.png"; icon.iconSize = new GSize(20, 34); icon.shadowSize = new GSize(37, 34); icon.iconAnchor = new GPoint(10, 34); icon.infoWindowAnchor = new GPoint(10, 10); myicons["start"] = icon; var icon= new GIcon(); icon.image = "/media/1846-dd-end.png"; icon.shadow = "/media/1853-shadow50.png"; icon.iconSize = new GSize(20, 34); icon.shadowSize = new GSize(37, 34); icon.iconAnchor = new GPoint(10, 34); icon.infoWindowAnchor = new GPoint(10, 10); myicons["end"] = icon; var icon= new GIcon(); icon.image = "/media/2251-marker_20_red.png"; icon.shadow = "/media/2258-mm_20_shadow.png"; icon.iconSize = new GSize(12, 20); icon.shadowSize = new GSize(22, 20); icon.iconAnchor = new GPoint(12, 10); icon.infoWindowAnchor = new GPoint(5, 10); myicons["small"] = icon; var icon= new GIcon(); icon.image = "media/3400-vic.png"; icon.shadow = "/media/3408-vic_shadow.png"; icon.iconSize = new GSize(27, 23); icon.shadowSize = new GSize(40, 23); icon.iconAnchor = new GPoint(13, 23); icon.infoWindowAnchor = new GPoint(15, 20); myicons["vic"] = icon; function Querystring(qs) { this.params = new Object() this.get=Querystring_get if (qs == null) qs=location.search.substring(1,location.search.length) if (qs.length == 0) return qs = qs.replace(/\+/g, ' ') var args = qs.split('&') for (var i=0;i