
var af_Gallery_Map=function(html,coords,GAPIKey){var that=this;that.html=html;that.coords=coords;that.GAPIKey=GAPIKey;that.MapsAPIAvailable=false;that.MapVisible=that.html.map.style.display!='none';that.MapInitialized=false;that.map=null;that.marker=null;that.defaultCoords={lat:50.62,lon:7.015,zoom:6};that.initialize=function(){var mapWidth=Math.min((parseInt(that.html.map.style.width,10)||512),512);var mapHeight=Math.min((parseInt(that.html.map.style.height,10)||512),512);var loc=that.getCoords();var imgurl='http://maps.google.com/staticmap?center='+loc.lat+','+loc.lon+'&zoom='+loc.zoom+'&size='+mapWidth+'x'+mapHeight+'&format=jpg&markers='+loc.lat+','+loc.lon+',red&key='+that.GAPIKey;that.html.map.style.backgroundImage='url("'+imgurl+'")';var img=new Image();img.src=imgurl;};that.toggle=function(event){af_Events.stopEvent(event);if(that.html.map.style.display!='none'){that.html.map.style.display='none';that.MapVisible=false;af_CSS.removeClass(that.html.toggle,'off');af_CSS.addClass(that.html.toggle,'on');return false;}
that.html.map.style.display='';that.MapVisible=true;if(that.MapsAPIAvailable){that.setupMap();}else{if(typeof google!='undefined'&&typeof google.load!='undefined'){google.load('maps','2',{callback:that.MapsAPILoaded,language:'de'});}}
af_CSS.removeClass(that.html.toggle,'on');af_CSS.addClass(that.html.toggle,'off');window.scrollTo(0,af_CSS.getPosition(that.html.map).y-(af_CSS.getDimensions(that.html.map).height/2));return false;};that.getCoords=function(){return{lat:parseFloat(that.coords.lat)||that.defaultCoords.lat,lon:parseFloat(that.coords.lon)||that.defaultCoords.lon,zoom:parseInt(that.coords.zoom,10)||that.defaultCoords.zoom};};that.setupMap=function(){if(!that.MapsAPIAvailable||!that.MapVisible||that.MapInitialized){return false;}
that.html.map.style.backgroundImage='';var loc=that.getCoords();that.map=new google.maps.Map2(that.html.map);that.map.setCenter(new google.maps.LatLng(loc.lat,loc.lon),loc.zoom);that.map.setMapType(G_NORMAL_MAP);that.map.addControl(new google.maps.SmallZoomControl());that.map.addControl(new google.maps.MapTypeControl());that.map.enableScrollWheelZoom();if(typeof that.html.zoomInput!='undefined'){GEvent.addListener(that.map,'zoomend',that.zoomUpdated);}
if(typeof that.html.latInput!='undefined'&&typeof that.html.lonInput!='undefined'){that.marker=new google.maps.Marker(that.map.getCenter(),{draggable:true});GEvent.addListener(that.marker,'dragend',that.markerDragged);GEvent.addListener(that.map,'dblclick',that.updateMarker);}else{that.marker=new google.maps.Marker(that.map.getCenter(),{draggable:false});}
that.map.addOverlay(that.marker);that.MapInitialized=true;};that.zoomUpdated=function(){if(typeof that.html.zoomInput!='undefined'){that.html.zoomInput.value=that.map.getZoom();}};that.updateMarker=function(overlay,latlng){that.marker.setLatLng(latlng);return that.updatePosition(latlng);};that.updatePosition=function(latlng){if(typeof that.html.latInput=='undefined'||typeof that.html.lonInput=='undefined'||typeof that.html.zoomInput=='undefined'){return false;}
that.html.latInput.value=latlng.lat();that.html.lonInput.value=latlng.lng();that.html.zoomInput.value=that.map.getZoom();return true;};that.markerDragged=function(){return that.updatePosition(this.getLatLng());};that.clearCoordinates=function(){that.html.latInput.value=0;that.html.lonInput.value=0;that.html.zoomInput.value=0;return false;};that.MapsAPILoaded=function(){that.MapsAPIAvailable=true;if(that.MapVisible){that.setupMap();}
af_Events.addOnEvent(window,'unload',google.maps.Unload);};af_Events.addOnEvent(window,'load',that.initialize);af_Events.addEventListener(that.html.toggle,'click',that.toggle);};var af_Gallery_Zoom=function(link,interpolated,full,scrollPosition){var that=this;that.link=link;that.interpolated=interpolated;that.full=full;that.scrollPosition=scrollPosition;that.xBorder=15;that.yBorder=15;that.heightOffset=75;that.image=null;that.fullInitialized=false;that.zoomIn=function(event){if(!that.fullInitialized){var a=document.createElement('a');a.setAttribute('href','');a=that.full.appendChild(a);af_Events.addEventListener(a,'click',that.zoomOut);var img=document.createElement('img');img.setAttribute('src',that.link.getAttribute('href'));that.image=a.appendChild(img);af_Events.addEventListener(that.image,'mousemove',that.mouseMoved);that.fullInitialized=true;}
af_CSS.addClass(that.interpolated,'active');af_CSS.addClass(that.full,'active');that.resetImage();that.scaleContainers();var interp=that.interpolated.getElementsByTagName('img')[0];var interpDimensions=af_CSS.getDimensions(interp,false);if(that.scrollPosition){window.scrollTo(0,that.scrollPosition.y);}
af_Events.stopEvent(event);return false;};that.zoomOut=function(event){af_CSS.removeClass(that.interpolated,'active');af_CSS.removeClass(that.full,'active');window.scrollTo(0,0);af_Events.stopEvent(event);return false;};that.resetImage=function(){if(!that.image){return;}
that.image.style.marginTop=0;that.image.style.marginLeft=0;};that.scaleContainers=function(){var winWidth=document.documentElement.clientWidth||document.body.clientWidth;var winHeight=document.documentElement.clientHeight||document.body.clientHeight;that.full.style.height=(winHeight-that.heightOffset)+'px';that.interpolated.style.height=(winHeight-that.heightOffset)+'px';};that.mouseMoved=function(event){var image=event.currentTarget||event.srcElement;var container=image.parentNode.parentNode;var containerPos=af_CSS.getPosition(container.parentNode);var containerDims=af_CSS.getDimensions(container,false);var imageDims=af_CSS.getDimensions(image,false);var mousePos=af_Events.getMousePosition(event);var x=(mousePos.x-containerPos.x-that.xBorder)/(containerDims.width-(2*that.xBorder));var y=(mousePos.y-containerPos.y-that.yBorder)/(containerDims.height-(2*that.yBorder));x=Math.max(0,Math.min(1,x));y=Math.max(0,Math.min(1,y));var newX=Math.round((imageDims.width-containerDims.width)*-x);var newY=Math.round((imageDims.height-containerDims.height)*-y);if(imageDims.height>containerDims.height){image.style.marginTop=newY+'px';}
if(imageDims.width>containerDims.width){image.style.marginLeft=newX+'px';}};that.windowResized=function(event){that.scaleContainers();that.resetImage();if(that.scrollPosition){window.scrollTo(0,that.scrollPosition.y);}};af_Events.addEventListener(that.link,'click',that.zoomIn);af_Events.addOnEvent(window,'resize',that.windowResized);};