/* *****************************************************************************
    embed.js
    Autor: Eduard Díaz <edudiaz@scopia.es>
    Desenvolupat per: scopia visual interfaces systems sl <http://scopia.es/>
    projecte: viquiatles <http://atles.eduwiki.cat/>
    Copyright (c) 2009-2010 Scopia visual interfaces systems sl
    Dual licensed under the MIT and GPL licenses.
    date: 31/5/2010
    version: 0.1.2
***************************************************************************** */
(function(){var window=this,undefined,_jScopiaAtlesMap=window.jScopiaAtlesMap,jScopiaAtlesMap=window.jScopiaAtlesMap=function(context){return new jScopiaAtlesMap.fn.init(context)};jScopiaAtlesMap.fn=jScopiaAtlesMap.prototype={map:null,lat:0,lng:0,zoom:1,markers:[],lines:[],shapes:[],listeners:[],bounds:null,target:'map',position:null,icons:{'blue':{'image':'icon_blue.png','shadow':'icon_shadow.png','iconSize':[50,50],'shadowSize':[50,50],'iconAnchor':[18,50],'infoWindowAnchor':[5,1]},'cyan':{'image':'icon_cyan.png','shadow':'icon_shadow.png','iconSize':[50,50],'shadowSize':[50,50],'iconAnchor':[18,50],'infoWindowAnchor':[5,1]},'green':{'image':'icon_green.png','shadow':'icon_shadow.png','iconSize':[50,50],'shadowSize':[50,50],'iconAnchor':[18,50],'infoWindowAnchor':[5,1]},'orange':{'image':'icon_orange.png','shadow':'icon_shadow.png','iconSize':[50,50],'shadowSize':[50,50],'iconAnchor':[18,50],'infoWindowAnchor':[5,1]},'red':{'image':'icon_red.png','shadow':'icon_shadow.png','iconSize':[50,50],'shadowSize':[50,50],'iconAnchor':[18,50],'infoWindowAnchor':[5,1]},'yellow':{'image':'icon_yellow.png','shadow':'icon_shadow.png','iconSize':[50,50],'shadowSize':[50,50],'iconAnchor':[18,50],'infoWindowAnchor':[5,1]},'yellow_green':{'image':'icon_yellow_green.png','shadow':'icon_shadow.png','iconSize':[50,50],'shadowSize':[50,50],'iconAnchor':[18,50],'infoWindowAnchor':[5,1]}},rooticons:'http://atles.eduwiki.cat/sitemedia/markers/img/mkicons/',version:"0.1.2",init:function(target){if(typeof target!=="string"){return}var tdiv=document.getElementById(target);if(typeof tdiv!=="object"){return}this.target=target},getObjIcon:function(oIcon){if(typeof oIcon=='undefined'){return G_DEFAULT_ICON}else if((typeof oIcon.image=='undefined')||(typeof oIcon.shadow=='undefined')||(typeof oIcon.iconSize=='undefined')||(typeof oIcon.shadowSize=='undefined')||(typeof oIcon.iconAnchor=='undefined')||(typeof oIcon.infoWindowAnchor=='undefined')){return G_DEFAULT_ICON}var icon=new GIcon();icon.image=this.rooticons+oIcon.image;icon.shadow=this.rooticons+oIcon.shadow;icon.iconSize=new GSize(oIcon.iconSize[0],oIcon.iconSize[1]);icon.shadowSize=new GSize(oIcon.shadowSize[0],oIcon.shadowSize[1]);icon.iconAnchor=new GPoint(oIcon.iconAnchor[0],oIcon.iconAnchor[1]);icon.infoWindowAnchor=new GPoint(oIcon.infoWindowAnchor[0],oIcon.infoWindowAnchor[1]);return icon},jpoint2LatLng:function(points){var p;var latlnglist=[];for(p in points){latlnglist.push(new GLatLng(points[p].lat,points[p].lng))}return latlnglist},resize_image:function(image,imgWidth){if(typeof(image)!='object'){return}if(typeof(image.currentStyle)=='object'){var oldwidth=image.currentStyle["width"];oldwidth=parseInt(oldwidth.substr(0,oldwidth.length-2))}else{var oldwidth=image.width}if(imgWidth<oldwidth){image.style.width=parseInt(imgWidth)+"px";image.style.height="auto";return}},drawitems:function(json){if(typeof json!=="object"){alert('error');return}this.lat=json.lat;this.lng=json.lng;this.zoom=json.zoom;var items=json.elements;for(var item in items){if(typeof items[item]=="undefined")return;if(typeof items[item].mtype=="undefined")return;switch(items[item].mtype){case'marker':var idmarker=items[item].id;var color=items[item].color;var infowindow='';if(color)var icon=this.getObjIcon(this.icons[color]);else var icon=G_DEFAULT_ICON;var label=items[item].id;if(typeof items[item].title!="undefined"){label=items[item].title;if(items.length>1){infowindow+='<h1>'+label+'</h1>'}}infowindow+=items[item].html;this.addmarker(items[item].lat,items[item].lng,label,icon,infowindow);break;case'line':var points=this.jpoint2LatLng(items[item].points);this.addline(points,items[item].color,items[item].weight,items[item].opacity);break;case'shape':var color=items[item].color;var weight=items[item].weight;var opacity=items[item].opacity;var fillcolor=items[item].fillcolor;var fillopacity=items[item].fillopacity;var points=this.jpoint2LatLng(items[item].points);this.addshape(points,color,weight,opacity,fillcolor,fillopacity);break;default:return}}this.map.setCenter(new GLatLng(this.lat,this.lng),this.zoom);this.fit2elements()},addmarker:function(lat,lng,label,icon,infowindow){var latlng=new GLatLng(lat,lng);var marker=new GMarker(latlng,{icon:icon});if(typeof infowindow=="undefined"){infowindow="<h2>"+label+"</h2>"}var divContent=document.createElement('div');divContent.innerHTML=infowindow;var mapcontainer=document.getElementById(this.target);var w=parseInt(mapcontainer.clientWidth);if(w=='NaN')w=parseInt(mapcontainer.offsetWidth);if(w>160)divContent.style.width=(w-w/2)+"px";else divContent.style.width="150px";divContent.style.paddingBottom="15px";var images=divContent.getElementsByTagName('img');if(images.length>0){for(image in images){this.resize_image(images[image],(w-w/2)-10,null)}}var obj=this;var i=this.listeners.length;this.listeners[i]=GEvent.addListener(marker,'click',function(){obj.saveposition();marker.openInfoWindowHtml(divContent)});marker.title=label;var k=this.markers.length;marker.ID='mk_'+k;this.markers[k]=marker;this.map.addOverlay(marker);this.bounds.extend(latlng)},addline:function(points,color,weight,opacity){var line=new GPolyline(points,color,weight,opacity);var k=this.lines.length;this.lines[k]=line;this.map.addOverlay(line);this.bounds.extend(line.getBounds().getSouthWest());this.bounds.extend(line.getBounds().getNorthEast())},addshape:function(points,color,weight,opacity,fillcolor,fillopacity){var shape=new GPolygon(points,color,weight,opacity,fillcolor,fillopacity);var k=this.shapes.length;this.shapes[k]=shape;this.map.addOverlay(shape);this.bounds.extend(shape.getBounds().getSouthWest());this.bounds.extend(shape.getBounds().getNorthEast())},fit2elements:function(){this.map.setZoom(this.map.getBoundsZoomLevel(this.bounds));this.map.setCenter(this.bounds.getCenter());this.saveposition()},saveposition:function(){this.position=this.map.getCenter()},restoreposition:function(){this.map.panTo(this.position)},loadmap:function(json){if(GBrowserIsCompatible()){this.map=new GMap2(document.getElementById(this.target));this.map.setCenter(new GLatLng(this.lat,this.lng),this.zoom);this.map.setUIToDefault();var obj=this;this.position=new GLatLng(this.lat,this.lng);var i=this.listeners.length;this.listeners[i]=GEvent.addListener(this.map.getInfoWindow(),"closeclick",function(){obj.restoreposition()});this.bounds=new GLatLngBounds;this.drawitems(json)}}};jScopiaAtlesMap.fn.init.prototype=jScopiaAtlesMap.fn})();(function(){var window=this,undefined,_viquiatlesCallback=window.viquiatlesCallback,viquiatlesCallback=window.viquiatlesCallback=function(target,data){return new viquiatlesCallback.fn.init(target,data)};viquiatlesCallback.fn=viquiatlesCallback.prototype={init:function(target,data){if(typeof target!=="string"){return}var tdiv=document.getElementById(target);if(typeof tdiv!=="object"){return}if(typeof data!=="object"){return}if(typeof va_maps==='undefined'){va_maps=[]}var lmap=va_maps.length;va_maps[lmap]=jScopiaAtlesMap(target);va_maps[lmap].loadmap(data)}};viquiatlesCallback.fn.init.prototype=viquiatlesCallback.fn})();
