| 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
|---|
| 2 | <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"> |
|---|
| 3 | <head> |
|---|
| 4 | <meta http-equiv="content-type" content="text/html; charset={$CONTENT_ENCODING}" /> |
|---|
| 5 | <meta name="robots" content="noindex,nofollow" /> |
|---|
| 6 | <title>{$GALLERY_TITLE}</title> |
|---|
| 7 | |
|---|
| 8 | <script src="http://maps.google.com/maps?file=api&v=2&key={$GMAPS_API_KEY}&hl={$lang_info.code}" type="text/javascript"></script> |
|---|
| 9 | |
|---|
| 10 | {combine_script id='jquery' load='header' path='http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js'} |
|---|
| 11 | {combine_script id='jquery.nyroModal' load='async' path="`$PLUGIN_LOCATION`/template/nyroModal/jquery.nyroModal-1.6.2.js" version='1.6.2'} |
|---|
| 12 | {combine_css path="`$PLUGIN_LOCATION`/template/style.css" version=$RVM_PLUGIN_VERSION} |
|---|
| 13 | {combine_css path="`$PLUGIN_LOCATION`/template/nyroModal/nyroModal.css" version=$RVM_PLUGIN_VERSION} |
|---|
| 14 | |
|---|
| 15 | {combine_script id='rvm.dl' load='header' path="`$PLUGIN_LOCATION`/template/data_loader.js" version=$RVM_PLUGIN_VERSION} |
|---|
| 16 | {combine_script id='rvm.dh' load='header' path="`$PLUGIN_LOCATION`/template/data_handler.js" version=$RVM_PLUGIN_VERSION} |
|---|
| 17 | {combine_script id='rvm.pl' load='header' path="`$PLUGIN_LOCATION`/template/page_linker.js" version=$RVM_PLUGIN_VERSION} |
|---|
| 18 | {combine_script id='core.scripts' load='header' path='themes/default/js/scripts.js'} |
|---|
| 19 | |
|---|
| 20 | {get_combined_css} |
|---|
| 21 | {get_combined_scripts load='header'} |
|---|
| 22 | |
|---|
| 23 | <!--[if IE]> |
|---|
| 24 | <style type="text/css"> |
|---|
| 25 | v\:* {ldelim} |
|---|
| 26 | behavior:url(#default#VML); |
|---|
| 27 | } |
|---|
| 28 | </style> |
|---|
| 29 | <![endif]--> |
|---|
| 30 | <!--[if lt IE 7]> |
|---|
| 31 | <style type="text/css"> |
|---|
| 32 | #map {ldelim} position:auto; height: 100%; } |
|---|
| 33 | </style> |
|---|
| 34 | <![endif]--> |
|---|
| 35 | |
|---|
| 36 | |
|---|
| 37 | |
|---|
| 38 | <script type="text/javascript">{literal} |
|---|
| 39 | //<![CDATA[ |
|---|
| 40 | var map; |
|---|
| 41 | var geocoder; |
|---|
| 42 | |
|---|
| 43 | document.is_debug = false; |
|---|
| 44 | if ( document.location.search.match(/[\?&]debug/) ) { |
|---|
| 45 | document.is_debug = true; |
|---|
| 46 | document._window = window; |
|---|
| 47 | } |
|---|
| 48 | |
|---|
| 49 | function load() |
|---|
| 50 | { |
|---|
| 51 | if (!GBrowserIsCompatible()) |
|---|
| 52 | return; |
|---|
| 53 | |
|---|
| 54 | var mapElement = document.getElementById("map"); |
|---|
| 55 | map = new google.maps.Map2( mapElement ); |
|---|
| 56 | |
|---|
| 57 | map.addMapType( G_PHYSICAL_MAP ); |
|---|
| 58 | map.addControl(new google.maps.LargeMapControl3D()); |
|---|
| 59 | map.addControl(new google.maps.HierarchicalMapTypeControl()); |
|---|
| 60 | map.addControl(new google.maps.ScaleControl()); |
|---|
| 61 | |
|---|
| 62 | pwgPageLinker = new PageLinker(map, "aLinkToThisPage" ); |
|---|
| 63 | if ( !map.isLoaded() ) |
|---|
| 64 | { |
|---|
| 65 | {/literal} |
|---|
| 66 | {if isset($initial_bounds)} |
|---|
| 67 | var bounds = new google.maps.LatLngBounds( new google.maps.LatLng({$initial_bounds.s},{$initial_bounds.w}), new google.maps.LatLng({$initial_bounds.n},{$initial_bounds.e}) ); |
|---|
| 68 | map.setCenter( bounds.getCenter(), map.getBoundsZoomLevel( bounds ) ); |
|---|
| 69 | {/if} |
|---|
| 70 | {literal} |
|---|
| 71 | if ( !map.isLoaded() ) |
|---|
| 72 | map.setCenter( new google.maps.LatLng(0,0), 2 ); |
|---|
| 73 | } |
|---|
| 74 | |
|---|
| 75 | try { |
|---|
| 76 | // the overview must be added after setting map center |
|---|
| 77 | var ovcontrol = new google.maps.OverviewMapControl(new google.maps.Size(165,165)); |
|---|
| 78 | map.addControl(ovcontrol); |
|---|
| 79 | } |
|---|
| 80 | catch(e){ alert( e.message ); } |
|---|
| 81 | |
|---|
| 82 | map.enableScrollWheelZoom(); |
|---|
| 83 | map.enableDoubleClickZoom(); |
|---|
| 84 | |
|---|
| 85 | var pwgMarkerIcon = (function(){ {/literal}{$MAP_MARKER_ICON_JS}{literal} }).call(null); |
|---|
| 86 | |
|---|
| 87 | map.pwgDataLoader = new PwgDataLoader(map, {rectangle_of_confusion: pwgMarkerIcon.iconSize} ); |
|---|
| 88 | google.maps.Event.addListener(map.pwgDataLoader, "dataloading", function() { |
|---|
| 89 | var pre = '<img src="{/literal}{$PLUGIN_ROOT_URL}{literal}/icons/progress_s.gif" width="16" height="16" alt="~" /> '; |
|---|
| 90 | document.getElementById("dataLoadStatus").innerHTML = pre + Localization.get("Loading"); |
|---|
| 91 | } |
|---|
| 92 | ); |
|---|
| 93 | |
|---|
| 94 | google.maps.Event.addListener(map.pwgDataLoader, "dataloadfailed", function(responseCode) { |
|---|
| 95 | document.getElementById("dataLoadStatus").innerHTML = Localization.get("Failed") + " "+responseCode; |
|---|
| 96 | } |
|---|
| 97 | ); |
|---|
| 98 | |
|---|
| 99 | map.pwgDataHandler = new PwgDataHandler(map, {icon: pwgMarkerIcon, show_all_img_src: "{/literal}{$PLUGIN_ROOT_URL}{literal}/icons/pic_s.gif" } ); |
|---|
| 100 | google.maps.Event.addListener(map.pwgDataLoader, "dataloaded", pwgBind(map.pwgDataHandler, map.pwgDataHandler.handle) ); |
|---|
| 101 | |
|---|
| 102 | map.pwgDataLoader.start( "{/literal}{$U_MAP_DATA}{literal}" ); |
|---|
| 103 | |
|---|
| 104 | if (document.is_debug) |
|---|
| 105 | { |
|---|
| 106 | google.maps.Event.addListener(map, "moveend", function() { google.maps.Log.write("movend c:"+map.getCenter().toUrlValue());} ); |
|---|
| 107 | google.maps.Event.addListener(map, "maptypechanged", function() { google.maps.Log.write("maptypechanged");} ); |
|---|
| 108 | google.maps.Event.addListener(map, "infowindowopen", function() { google.maps.Log.write("infowindowopen");} ); |
|---|
| 109 | google.maps.Event.addListener(map, "infowindowclose", function() { google.maps.Log.write("infowindowclose");} ); |
|---|
| 110 | } |
|---|
| 111 | } |
|---|
| 112 | |
|---|
| 113 | function unload() |
|---|
| 114 | { |
|---|
| 115 | if (map) |
|---|
| 116 | { |
|---|
| 117 | !map.pwgDataLoader || map.pwgDataLoader.terminate(); |
|---|
| 118 | !map.pwgDataHandler || map.pwgDataHandler.terminate(); |
|---|
| 119 | } |
|---|
| 120 | GUnload(); |
|---|
| 121 | } |
|---|
| 122 | |
|---|
| 123 | function searchLocation(q) |
|---|
| 124 | { |
|---|
| 125 | if (!q.length) return false; |
|---|
| 126 | if (!geocoder) |
|---|
| 127 | geocoder = new google.maps.ClientGeocoder(); |
|---|
| 128 | geocoder.getLocations(q, function(resp) |
|---|
| 129 | { |
|---|
| 130 | if ( resp && resp.Status ) |
|---|
| 131 | { |
|---|
| 132 | document._geoResponse = resp; |
|---|
| 133 | if (resp.Status.code==200) |
|---|
| 134 | { |
|---|
| 135 | var zoom = 2; |
|---|
| 136 | switch (resp.Placemark[0].AddressDetails.Accuracy) |
|---|
| 137 | { |
|---|
| 138 | case 1: zoom=5; break; //country |
|---|
| 139 | case 2: zoom=7; break; //region |
|---|
| 140 | case 3: zoom=8; break; //county |
|---|
| 141 | case 4: zoom=12; break; //town |
|---|
| 142 | case 5: zoom=13; break; //post code |
|---|
| 143 | case 6: zoom=14; break; //street |
|---|
| 144 | case 7: case 8: zoom=16; break; //intersection/exact |
|---|
| 145 | } |
|---|
| 146 | map.setCenter( new google.maps.LatLng( resp.Placemark[0].Point.coordinates[1], resp.Placemark[0].Point.coordinates[0] ), zoom); |
|---|
| 147 | } |
|---|
| 148 | else |
|---|
| 149 | alert("This address has not been found\nCode:"+resp.Status.code); |
|---|
| 150 | } |
|---|
| 151 | }); |
|---|
| 152 | return false; |
|---|
| 153 | } |
|---|
| 154 | |
|---|
| 155 | |
|---|
| 156 | var Localization = |
|---|
| 157 | { |
|---|
| 158 | _strings: { |
|---|
| 159 | {/literal} |
|---|
| 160 | "go to %s": "{'go to %s'|@translate|@escape:javascript}", |
|---|
| 161 | "Next": "{'Next'|@translate|@escape:javascript}", |
|---|
| 162 | "Prev": "{'Prev'|@translate|@escape:javascript}", |
|---|
| 163 | "out of %d": "{'out of %d'|@translate|@escape:javascript}", |
|---|
| 164 | "Loading": "{'Loading'|@translate|@escape:javascript}", |
|---|
| 165 | "Failed": "{'Failed'|@translate|@escape:javascript}", |
|---|
| 166 | "Show all": "{'Show all'|@translate|@escape:javascript}", |
|---|
| 167 | "show all photos around this location": "{'show all photos around this location'|@translate|@escape:javascript}", |
|---|
| 168 | "displays %s on a map" : "{'displays %s on a map'|@translate|@escape:javascript}", |
|---|
| 169 | "opens %s in Google Earth" : "{'opens %s in Google Earth'|@translate|@escape:javascript}", |
|---|
| 170 | "%d photos" : "{'%d photos'|@translate|@escape:javascript}", |
|---|
| 171 | {literal} |
|---|
| 172 | dontMindTheComma: "" |
|---|
| 173 | }, |
|---|
| 174 | |
|---|
| 175 | get: function( str ) { |
|---|
| 176 | var lang_str = this._strings[str]; |
|---|
| 177 | if (lang_str == undefined) |
|---|
| 178 | { |
|---|
| 179 | if (document.is_debug) google.maps.Log.write("Language string undefined '"+ str+"'"); |
|---|
| 180 | return str; |
|---|
| 181 | } |
|---|
| 182 | return lang_str; |
|---|
| 183 | }, |
|---|
| 184 | |
|---|
| 185 | getQ: function( str ) { |
|---|
| 186 | return '"'+this.get(str)+'"'; |
|---|
| 187 | }, |
|---|
| 188 | |
|---|
| 189 | fmt1: function () { |
|---|
| 190 | var str = arguments[0]; |
|---|
| 191 | str = this.get(str); |
|---|
| 192 | str = str.replace( '%s', "%" ).replace( '%d', "%" ).replace('%', arguments[1]); |
|---|
| 193 | return str; |
|---|
| 194 | |
|---|
| 195 | } |
|---|
| 196 | } |
|---|
| 197 | {/literal} |
|---|
| 198 | //]]> |
|---|
| 199 | </script> |
|---|
| 200 | </head> |
|---|
| 201 | |
|---|
| 202 | <body onload="load()" onunload="unload()"> |
|---|
| 203 | |
|---|
| 204 | <div id="titlebar"> |
|---|
| 205 | <div class="titlebar_links" > |
|---|
| 206 | <span id="dataLoadStatus"></span> |
|---|
| 207 | <a id="aKml" href="" type="application/vnd.google-earth.kml+xml" class="gmnoprint"><img src="http://maps.google.com/mapfiles/ms/view_as_kml.png" width="16" height="16" alt="kml" /> <span>KML</span></a> |
|---|
| 208 | <a id="aLinkToThisPage" href="" class="gmnoprint"><img src="http://maps.google.com/mapfiles/bar_icon_link.gif" alt="<->" width="16" height="16" /> <span>{'Link to this page'|@translate}</span></a> |
|---|
| 209 | <a id="aBlowup" href="" onclick="return PwgDataHandler.blowupUrl(this.href);" class="gmnoprint" title="{'show all photos around this location'|@translate}"> |
|---|
| 210 | <img src="{$PLUGIN_ROOT_URL}/icons/pic_s.gif" alt="" title="{'show all photos around this location'|@translate}" /> |
|---|
| 211 | <span>{'Show all'|@translate}</span> |
|---|
| 212 | </a> |
|---|
| 213 | <span class="gmnoprint"> |
|---|
| 214 | <form action="#" onsubmit="if (this.q.value!='' && this.q.value!='{'Search a location...'|@translate|@escape:javascript}') searchLocation(this.q.value);return false;"> |
|---|
| 215 | <input type="text" size="32" name="q" |
|---|
| 216 | value="{'Search a location...'|@translate}" |
|---|
| 217 | onfocus="if (value=='{'Search a location...'|@translate|@escape:javascript}') value='';" |
|---|
| 218 | onblur="if (value=='') value='{'Search a location...'|@translate|@escape:javascript}'" /> |
|---|
| 219 | <input type="submit" value="{'Search'|@translate}"/> |
|---|
| 220 | </form> |
|---|
| 221 | </span> |
|---|
| 222 | </div> |
|---|
| 223 | <div class="titlebar_title"> |
|---|
| 224 | <a href="{$U_HOME}" class="gmnoprint">{'Home'|@translate}</a> |
|---|
| 225 | <a href="{$U_HOME_MAP}" title="{'displays all photos on a map'|@translate}"><img src="{$PLUGIN_ROOT_URL}/icons/map_sw.gif" width="32" height="17" alt="map"/></a> |
|---|
| 226 | {'Viewing'|@translate}: <a id="aPageUrl" href=""></a> |
|---|
| 227 | </div> |
|---|
| 228 | </div> |
|---|
| 229 | |
|---|
| 230 | <div id="map"> </div> |
|---|
| 231 | </body> |
|---|
| 232 | {get_combined_scripts load='footer'} |
|---|
| 233 | </html> |
|---|