/* *****************************************************************************
    jscopiamap.js
    Autor: Eduard Díaz <edudiaz@scopia.es>
    Desenvolupat per: scopia visual interfaces systems sl <http://scopia.es/>
    projecte: Ajuntament de Sant Cugat del Vallès <http://www.santcugat.cat/>
    Copyright (c) 2009-2010 Scopia visual interfaces systems sl
    Dual licensed under the MIT and GPL licenses.
    date: 18/1/2010
    version: 0.1.3
***************************************************************************** */

(function(){var window=this,undefined,_jScopiaMap=window.jScopiaMap,jScopiaMap=window.jScopiaMap=function(context){return  new jScopiaMap.fn.init(context)};jScopiaMap.fn=jScopiaMap.prototype={map:null,cmap:null,tOverlay:null,tilelayers:[],markers:[],listeners:[],target:'map',minzoom:13,maxzoom:17,version:"0.1.3",init:function(target){if(typeof  target!=="string"){return}var tdiv=document.getElementById(target);if(typeof  tdiv!=="object"){return}this.target=target},loadCustommap2:function(map,maptype){var  copyright=new GCopyright(1,new GLatLngBounds(new GLatLng(-90,-280),new GLatLng(90,280)),0,"");var copyrightCollection=new GCopyrightCollection('Mapa');copyrightCollection.addCopyright(copyright);this.tilelayers=new  GTileLayer(copyrightCollection,this.minzoom,this.maxzoom);this.tilelayers.getTileUrl=this.CustomGetTileUrl;this.tilelayers.isPng=function(){return  true};this.tilelayers.tiles=jScopiaMap.tiles;this.tilelayers.tilesurl=jScopiaMap.tilesurl;this.tilelayers.tilesurlnone=jScopiaMap.tilesurlnone;this.tOverlay=new  GTileLayerOverlay(this.tilelayers);this.map.addOverlay(this.tOverlay)},loadCustommap:function(map,maptype){var  copyright=new GCopyright("",new GLatLngBounds(new GLatLng(-90,-280),new GLatLng(90,280)),0,"");var  copyrightCollection=new GCopyrightCollection("");copyrightCollection.addCopyright(copyright);this.tilelayers[0]=maptype.getTileLayers()[0];this.tilelayers[1]=new  GTileLayer(copyrightCollection,this.minzoom,this.maxzoom);this.tilelayers[1].getTileUrl=this.CustomGetTileUrl;this.tilelayers[1].isPng=function(){return  true};var custommap=new GMapType(this.tilelayers,maptype.getProjection(),"Sant Cugat",{errorMessage:"Sense dades"});map.addMapType(custommap);return  custommap},CustomGetTileUrl:function(a,b){var tilesdir=jScopiaMap.tilesurl;var tiles=jScopiaMap.tiles;var  showmap=false;for(titem in tiles){if(b==tiles[titem].zoom&&a.x>=tiles[titem].x_min&&a.x<=tiles[titem].x_max&&a.y>=tiles[titem].y_min&&a.y<=tiles[titem].y_max){showmap=true}};if(showmap){return  tilesdir+"/"+b+"/"+(a.x)+"-"+(a.y)+".png"}else{return  G_NORMAL_MAP.getTileLayers()[0].getTileUrl(a,b)}},loadxml:function(urldocxml){var  obj=this;GDownloadUrl(urldocxml,function(data){var  xml=GXml.parse(data);var markers=xml.documentElement.getElementsByTagName("marker");for(var  i=0;i<markers.length;i++){var lng=parseFloat(markers[i].getAttribute("lng"));var  lat=parseFloat(markers[i].getAttribute("lat"));var  label=markers[i].getAttribute("label");var  mkname=GXml.value(markers[i].getElementsByTagName("name")[0]);var  address=GXml.value(markers[i].getElementsByTagName("address")[0]);var  infowindow=GXml.value(markers[i].getElementsByTagName("infowindow")[0]);obj.addmarker(lng,lat,label,mkname,address,infowindow)}/*obj.fit2markers()*/})},openiwindow:function(){this.map.getInfoWindow().maximize()},addmarker:function(lng,lat,label,mkname,address,infowindow){var  obj=this;var latlng=new GLatLng(lat,lng);var  marker=new GMarker(latlng);var addressto="http://www.google.com/maps?source=uds&amp;daddr="+escape(address)+""+escape("@"+lat+","+lng)+"&amp;iwstate1="+escape("dir:to");var  addressfrom="http://www.google.com/maps?source=uds&amp;saddr="+escape(address)+""+escape("@"+lat+","+lng)+"&iwstate1="+escape("dir:from");var  minContent='<div style="font-size:110%;color:#006600 !important;">'+label+'</div>';minContent+='<div style="margin-bottom: 4px;font-size:123%;font-weight:bold">'+mkname+'</div>';minContent+='<div class="addr adr">'+address+'</div>';var maxContent='<div style="margin-top:10px;font-size:11px;">';maxContent+=infowindow;maxContent+='<p style="color:#006600 !important;">';maxContent+='<span style="padding-right:0.8em;">Obtenir itineraris:</span>';maxContent+='<a style="color:#006600 !important;" href="'+addressto+'" target="_blank">Cap aquí</a>';maxContent+='<span style="padding-left:0.2em;padding-right:0.2em;">-</span>';maxContent+='<a style="color:#006600 !important;" href="'+addressfrom+'" target="_blank">Des d\'aquí</a>';maxContent+='</p>';maxContent+='</div>';var divMinContent=document.createElement('div');divMinContent.style.marginTop='10px';divMinContent.style.fontSize="11px";divMinContent.innerHTML=minContent;var maximizelink=document.createElement('a');maximizelink.className="link_mapa";maximizelink.href='javascript:void(0)';maximizelink.onclick=(function(obj){return function(){obj.openiwindow()}})(obj);var sometext=document.createTextNode("Més informació ...");maximizelink.appendChild(sometext);divMinContent.appendChild(maximizelink);var pRoutes=document.createElement('div');var routesContent='<div style="margin-top:7px;width:300px;"><span style="padding-right:0.8em;">Obtenir itineraris:</span>';routesContent+='<a class="link_mapa" href="'+addressto+'" target="_blank">Cap aquí</a>';routesContent+='<span style="padding-left:0.2em;padding-right:0.2em;">-</span>';routesContent+='<a class="link_mapa" href="'+addressfrom+'" target="_blank">Des d\'aquí</a></div>';pRoutes.innerHTML=routesContent;divMinContent.appendChild(pRoutes);var maxTitle=label;var litem=this.listeners.length;var mitem=this.markers.length;this.listeners[litem]=GEvent.addListener(marker,'click',function(){marker.openInfoWindowHtml(divMinContent,{maxContent:maxContent,maxTitle:maxTitle})});var contentNode=document.createElement('div');contentNode.innerHTML=maxContent;var titleNode=document.createElement('div');titleNode.innerHTML=maxTitle;this.listeners[litem+1]=GEvent.addListener(this.map,'click',function(overlay,latlng){if(latlng){map.openInfoWindowHtml(latlng,'<b>'+label+'</b>',{maxContent:contentNode,maxTitle:titleNode})}});marker.ID=label;marker.title=label;this.markers[mitem]=marker;this.map.addOverlay(marker)},doSearchCompleteCallback:function(search){search.results.splice(2)},fit2markers:function(){var bounds=new GLatLngBounds;for(var i in this.markers){bounds.extend(this.markers[i].getPoint())}this.map.setCenter(bounds.getCenter(),this.map.getBoundsZoomLevel(bounds)-1)},saveposition:function(){this.position=this.map.getCenter()},restoreposition:function(){this.map.setCenter(this.position())},loadmap:function(urlxml){if(GBrowserIsCompatible()){this.map=new GMap2(document.getElementById(this.target));this.map.setCenter(new GLatLng(jScopiaMap.lat,jScopiaMap.lng),jScopiaMap.zoom);this.cmap=this.loadCustommap(this.map,G_NORMAL_MAP);this.map.setMapType(this.cmap);this.map.setUIToDefault();this.loadxml(urlxml)}}};jScopiaMap.fn.init.prototype=jScopiaMap.fn})();

/* **************************** configuracio ******************************** */

//coordenades de la vista incial
jScopiaMap.lng = 2.0832824707;
jScopiaMap.lat = 41.4733450875;
jScopiaMap.zoom = 17;
//url del servidor de titles
jScopiaMap.tilesurl = '/headers/zonas/1201/titlesStcugat';
jScopiaMap.tilesurlnone = '/headers/zonas/1201/tmapper/sitemedia/img/titles/none.png';
//tiles personalitzats, generat des de scopia t.mapper
jScopiaMap.tiles = [{zoom:12, x_min:2070, y_min:1527, x_max:2072, y_max:1529},{zoom:13, x_min:4141, y_min:3055, x_max:4144, y_max:3058},{zoom:14, x_min:8282, y_min:6111, x_max:8289, y_max:6117},{zoom:15, x_min:16564, y_min:12222, x_max:16579, y_max:12235},{zoom:16, x_min:33128, y_min:24444, x_max:33158, y_max:24470},{zoom:17, x_min:66256, y_min:48889, x_max:66317, y_max:48942}]

/* ****************************************************************************
    Exemple:
    <div id="map" style="width:800px;height:500px;"></div>
    <script type="text/javascript" src="jscopiamap.min.js"></script>
    <script>var map1 = jScopiaMap('map').loadmap('markers/markers.xml');</script>
 **************************************************************************** */





