
var xmlsrcs=null;var xi;var imageItem=document.getElementById('image');var titleItem=document.getElementById('title');var descriptionItem=document.getElementById('description');var groupsItem=document.getElementById('groups');var panelItem=document.getElementById('panel');var googleMapItem=document.getElementById('googleMap');var mapDiv=document.getElementById('map');var om=null;var map=null;var channels=null;var markers=null;var clusterer=null;
var icon=new GIcon(G_DEFAULT_ICON);
icon.iconSize=new GSize(32,28);
icon.iconAnchor=new GPoint(11,28);
icon.shadow='/Kriminalpraevention/Image/Icons/GMSl.png';
icon.shadowSize=new GSize(52,29);
icon.infoWindowAnchor=new GPoint(18,5);
icon.infoShadowAnchor=new GPoint(15,25);

var blueIcon=new GIcon(icon);blueIcon.image='/Kriminalpraevention/Image/Icons/GMl.png';blueIcon.smallImage='/Kriminalpraevention/Image/Icons/GMl.png';var redIcon=new GIcon(icon);redIcon.image='/Kriminalpraevention/Image/Icons/GMl.png';redIcon.smallImage='/Kriminalpraevention/Image/Icons/GMl.png';var greenIcon=new GIcon(icon);greenIcon.image='/Kriminalpraevention/Image/Icons/GMl.png';greenIcon.smallImage='/Kriminalpraevention/Image/Icons/GMSl.png';var purpleIcon=new GIcon(icon);purpleIcon.image='/Kriminalpraevention/Image/Icons/GMl.png';purpleIcon.smallImage='/Kriminalpraevention/Image/Icons/GMs.png';var yellowIcon=new GIcon(icon);yellowIcon.image='/Kriminalpraevention/Image/Icons/GMl.png';yellowIcon.smallImage='/Kriminalpraevention/Image/Icons/GMs.png';var brownIcon=new GIcon(icon);brownIcon.image='/Kriminalpraevention/Image/Icons/GMl.png';brownIcon.smallImage='/Kriminalpraevention/Image/Icons/GMs.png';var orangeIcon=new GIcon(icon);orangeIcon.image='/Kriminalpraevention/Image/Icons/GMl.png';orangeIcon.smallImage='/Kriminalpraevention/Image/Icons/GMs.png';var whiteIcon=new GIcon(icon);whiteIcon.image='/Kriminalpraevention/Image/Icons/GMl.png';whiteIcon.smallImage='/Kriminalpraevention/Image/Icons/GMs.png';var blackIcon=new GIcon(icon);blackIcon.image='/Kriminalpraevention/Image/Icons/GMl.png';blackIcon.smallImage='/Kriminalpraevention/Image/Icons/GMs.png';var icons=[blueIcon,redIcon];var iconIdx;function Setup()
{try
{if(!GBrowserIsCompatible())
{mapDiv.innerHTML='Sorry, your browser is not compatible with Google Maps.';return;}
xmlsrcs=[];xmlsrcs.push("/RSS/Experten.cms")
om=new OverlayMessage(mapDiv);map=new GMap2(mapDiv,{draggableCursor:'default'});	map.setCenter(new GLatLng(51.374840,9.730763), 6);map.addControl(new GOverviewMapControl());map.addControl(new GLargeMapControl());map.enableDoubleClickZoom();map.enableContinuousZoom();;map.addControl(new GScaleControl());map.setMapType(G_NORMAL_MAP);markers=[];clusterer=new Clusterer(map);iconIdx=0;channels=[];xi=0;FetchNextXmlSrc();}
catch(e)
{GLog.write('Setup:\n'+Props(e));}}
function FetchNextXmlSrc()
{if(xi>=xmlsrcs.length)
{om.Clear();return;}
om.Set('Lade Daten... ');HttpGet(xmlsrcs[xi],RequestChecker)}//+(xi+1)+' / '+xmlsrcs.length);;}
function RequestChecker(request)
{try
{if(request.responseXML==null)
alert('XML parse failed!');else
{TraverseDocument(request.responseXML.documentElement);Display();}
++xi;FetchNextXmlSrc();}
catch(e)
{GLog.write('RequestChecker:\n'+Props(e));}}
function TraverseDocument(element)
{var child=element.firstChild;while(child)
{if(child.nodeName=='channel')
TraverseChannel(child);child=child.nextSibling;}}
function TraverseChannel(element)
{var channel=new Object();channel.groups=[];channel.groupIdxLookup=[]
channel.items=[];var child=element.firstChild;while(child)
{if(child.nodeName=='link')
TraverseChannelLink(child,channel);else if(child.nodeName=='title')
TraverseChannelTitle(child,channel);else if(child.nodeName=='description')
TraverseChannelDescription(child,channel);else if(child.nodeName=='managingEditor')
TraverseChannelManagingEditor(child,channel);else if(child.nodeName=='webMaster')
TraverseChannelWebMaster(child,channel);else if(child.nodeName=='image')
TraverseChannelImage(child,channel);else if(child.nodeName=='geo:lat'||child.nodeName=='lat')
TraverseChannelGeoLat(child,channel);else if(child.nodeName=='geo:long'||child.nodeName=='geo:lon'||child.nodeName=='geo:lng'||child.nodeName=='long'||child.nodeName=='lon'||child.nodeName=='lng')
TraverseChannelGeoLong(child,channel);else if(child.nodeName=='georss:point'||child.nodeName=='point')
TraverseChannelGeorssPoint(child,channel);else if(child.nodeName=='ymaps:ZoomLevel'||child.nodeName=='ZoomLevel')
TraverseChannelYmapsZoomLevel(child,channel);else if(child.nodeName=='ymaps:Groups'||child.nodeName=='Groups')
TraverseYmapsGroups(child,channel);else if(child.nodeName=='item')
TraverseItem(child,channel);child=child.nextSibling;}
if(channel.yZoom!=null)
channel.gZoom=17-Math.round(channel.yZoom*3/2);channels.push(channel);}
function TraverseChannelLink(element,channel)
{channel.link=GetXmlText(element);}
function TraverseChannelTitle(element,channel)
{channel.title=GetXmlText(element);}
function TraverseChannelDescription(element,channel)
{channel.description=GetXmlText(element);}
function TraverseChannelManagingEditor(element,channel)
{channel.managingEditor=GetXmlText(element);}
function TraverseChannelWebMaster(element,channel)
{channel.webMaster=GetXmlText(element);}
function TraverseChannelImage(element,channel)
{var child=element.firstChild;while(child)
{if(child.nodeName=='url')
TraverseChannelImageUrl(child,channel);else if(child.nodeName=='title')
TraverseChannelImageTitle(child,channel);else if(child.nodeName=='description')
TraverseChannelImageDescription(child,channel);else if(child.nodeName=='link')
TraverseChannelImageLink(child,channel);else if(child.nodeName=='width')
TraverseChannelImageWidth(child,channel);else if(child.nodeName=='height')
TraverseChannelImageHeight(child,channel);child=child.nextSibling;}}
function TraverseChannelImageUrl(element,channel)
{channel.imageUrl=GetXmlText(element);}
function TraverseChannelImageTitle(element,channel)
{channel.imageTitle=GetXmlText(element);}
function TraverseChannelImageDescription(element,channel)
{channel.imageDescription=GetXmlText(element);}
function TraverseChannelImageLink(element,channel)
{channel.imageLink=GetXmlText(element);}
function TraverseChannelImageWidth(element,channel)
{channel.imageWidth=parseInt(GetXmlText(element));}
function TraverseChannelImageHeight(element,channel)
{channel.imageHeight=parseInt(GetXmlText(element));}
function TraverseChannelGeoLat(element,channel)
{channel.lat=parseFloat(GetXmlText(element));}
function TraverseChannelGeoLong(element,channel)
{channel.lng=parseFloat(GetXmlText(element));}
function TraverseChannelGeoPoint(element,channel)
{var vals=GetXmlText(element).split(' ');if(vals.length==2)
{channel.lat=parseFloat(vals[0]);channel.lng=parseFloat(vals[1]);}}
function TraverseChannelYmapsZoomLevel(element,channel)
{channel.yZoom=parseInt(GetXmlText(element));}
function TraverseYmapsGroups(element,channel)
{var child=element.firstChild;while(child)
{if(child.nodeName=='group'||child.nodeName=='Group')
TraverseGroup(child,channel);child=child.nextSibling;}}
function TraverseGroup(element,channel)
{var group=new Object();var child=element.firstChild;while(child)
{if(child.nodeName=='title'||child.nodeName=='Title')
TraverseGroupTitle(child,group);else if(child.nodeName=='id'||child.nodeName=='Id')
TraverseGroupId(child,group);else if(child.nodeName=='ymaps:BaseIcon'||child.nodeName=='BaseIcon')
TraverseGroupBaseIcon(child,group);else if(child.nodeName=='ymaps:HoverIcon'||child.nodeName=='HoverIcon')
TraverseGroupHoverIcon(child,group);else if(child.nodeName=='ymaps:PopupIcon'||child.nodeName=='PopupIcon')
TraverseGroupPopupIcon(child,group);child=child.nextSibling;}
if(group.id)
channel.groupIdxLookup[group.id]=channel.groups.length
if(group.icon==null)
{group.icon=icons[iconIdx];iconIdx=(iconIdx+1)%icons.length;}
channel.groups.push(group);}
function TraverseGroupTitle(element,group)
{group.title=GetXmlText(element);}
function TraverseGroupId(element,group)
{group.id=GetXmlText(element);}
function TraverseGroupBaseIcon(element,group)
{group.baseIcon=GetXmlText(element);group.icon=new GIcon(icon);group.icon.image=group.baseIcon;group.icon.smallImage=null;group.icon.shadow=null;LookupIconSize(group.icon);}
function TraverseGroupHoverIcon(element,group)
{group.hoverIcon=GetXmlText(element);}
function TraverseGroupPopupIcon(element,group)
{group.popupIcon=GetXmlText(element);}
function TraverseItem(element,channel)
{var item=new Object();item.groupIdx=-1;item.extraLinks=[];item.extraImages=[];var child=element.firstChild;while(child)
{if(child.nodeName=='title')
TraverseItemTitle(child,item);else if(child.nodeName=='link')
TraverseItemLink(child,item);else if(child.nodeName=='description')
TraverseItemDescription(child,item);else if(child.nodeName=='author')
TraverseItemAuthor(child,item);else if(child.nodeName=='geo:lat'||child.nodeName=='lat')
TraverseItemGeoLat(child,item);else if(child.nodeName=='geo:long'||child.nodeName=='geo:lon'||child.nodeName=='geo:lng'||child.nodeName=='long'||child.nodeName=='lon'||child.nodeName=='lng')
TraverseItemGeoLong(child,item);else if(child.nodeName=='georss:point'||child.nodeName=='point')
TraverseItemGeorssPoint(child,item);else if(child.nodeName=='ymaps:Address'||child.nodeName=='Address')
TraverseItemYmapsAddress(child,item);else if(child.nodeName=='ymaps:CityState'||child.nodeName=='CityState')
TraverseItemYmapsCityState(child,item);else if(child.nodeName=='ymaps:Zip'||child.nodeName=='Zip')
TraverseItemYmapsZip(child,item);else if(child.nodeName=='ymaps:Country'||child.nodeName=='Country')
TraverseItemYmapsCountry(child,item);else if(child.nodeName=='ymaps:PhoneNumber'||child.nodeName=='PhoneNumber')
TraverseItemYmapsPhoneNumber(child,item);else if(child.nodeName=='ymaps:GroupId'||child.nodeName=='GroupId')
TraverseItemYmapsGroupId(child,item);else if(child.nodeName=='ymaps:BaseIcon'||child.nodeName=='BaseIcon')
TraverseItemYmapsBaseIcon(child,item);else if(child.nodeName=='ymaps:HoverIcon'||child.nodeName=='HoverIcon')
TraverseItemYmapsHoverIcon(child,item);else if(child.nodeName=='ymaps:PopupIcon'||child.nodeName=='PopupIcon')
TraverseItemYmapsPopupIcon(child,item);else if(child.nodeName=='ymaps:ExtraLink'||child.nodeName=='ExtraLink')
TraverseItemYmapsExtraLink(child,item);else if(child.nodeName=='ymaps:ExtraImage'||child.nodeName=='ExtraImage')
TraverseItemYmapsExtraImage(child,item);else if(child.nodeName=='ymaps:ItemUrl'||child.nodeName=='ItemUrl')
TraverseItemYmapsItemUrl(child,item);child=child.nextSibling;}
if(item.groupId!=null)
item.groupIdx=channel.groupIdxLookup[item.groupId];channel.items.push(item);}
function TraverseItemTitle(element,item)
{item.title=GetXmlText(element);}
function TraverseItemLink(element,item)
{item.link=GetXmlText(element);}
function TraverseItemDescription(element,item)
{item.description=GetXmlText(element);}
function TraverseItemAuthor(element,item)
{item.author=GetXmlText(element);}
function TraverseItemGeoLat(element,item)
{item.lat=parseFloat(GetXmlText(element));}
function TraverseItemGeoLong(element,item)
{item.lng=parseFloat(GetXmlText(element));}
function TraverseItemGeorssPoint(element,item)
{var vals=GetXmlText(element).split(' ');if(vals.length==2)
{item.lat=parseFloat(vals[0]);item.lng=parseFloat(vals[1]);}}
function TraverseItemYmapsAddress(element,item)
{item.address=GetXmlText(element);}
function TraverseItemYmapsCityState(element,item)
{item.cityState=GetXmlText(element);}
function TraverseItemYmapsZip(element,item)
{item.zip=GetXmlText(element);}
function TraverseItemYmapsCountry(element,item)
{item.country=GetXmlText(element);}
function TraverseItemYmapsPhoneNumber(element,item)
{item.phoneNumber=GetXmlText(element);}
function TraverseItemYmapsGroupId(element,item)
{item.groupId=GetXmlText(element);if(item.groupIdx==null)
item.groupIdx=-1;}
function TraverseItemYmapsBaseIcon(element,item)
{item.baseIcon=GetXmlText(element);item.icon=new GIcon(icon);item.icon.image=item.baseIcon;item.icon.smallImage=null;item.icon.shadow=null;LookupIconSize(item.icon);}
function TraverseItemYmapsHoverIcon(element,item)
{item.hoverIcon=GetXmlText(element);}
function TraverseItemYmapsPopupIcon(element,item)
{item.popupIcon=GetXmlText(element);}
function TraverseItemYmapsExtraLink(element,item)
{var extraLink=new Object();extraLink.text=GetXmlText(element);extraLink.href=element.getAttribute('href');item.extraLinks.push(extraLink);}
function TraverseItemYmapsExtraImage(element,item)
{var extraImage=new Object();var child=element.firstChild;while(child)
{if(child.nodeName=='url')
TraverseExtraImageUrl(child,extraImage);else if(child.nodeName=='title')
TraverseExtraImageTitle(child,extraImage);else if(child.nodeName=='link')
TraverseExtraImageLink(child,extraImage);else if(child.nodeName=='width')
TraverseExtraImageWidth(child,extraImage);else if(child.nodeName=='height')
TraverseExtraImageHeight(child,extraImage);child=child.nextSibling;}
item.extraImages.push(extraImage);}
function TraverseExtraImageUrl(element,extraImage)
{extraImage.url=GetXmlText(element);}
function TraverseExtraImageTitle(element,extraImage)
{extraImage.title=GetXmlText(element);}
function TraverseExtraImageLink(element,extraImage)
{extraImage.link=GetXmlText(element);}
function TraverseExtraImageWidth(element,extraImage)
{extraImage.imageWidth=parseInt(GetXmlText(element));}
function TraverseExtraImageHeight(element,extraImage)
{extraImage.imageHeight=parseInt(GetXmlText(element));}
function TraverseItemYmapsItemUrl(element,item)
{item.itemUrl=GetXmlText(element);}
function GetGroupIcon(channel,groupIdx)
{if(groupIdx==-1||channel.groups[groupIdx]==null)
{if(channel.defaultIcon==null)
{channel.defaultIcon=icons[iconIdx];iconIdx=(iconIdx+1)%icons.length;}
return channel.defaultIcon;}
var groupIcon=channel.groups[groupIdx].icon;if(groupIcon==null)
return icons[0];return groupIcon;}
function GetItemIcon(channel,item)
{if(item.icon)
return item.icon;return GetGroupIcon(channel,item.groupIdx);}
function GetGroupImage(channel,groupIdx)
{var groupIcon=GetGroupIcon(channel,groupIdx);var groupImage=groupIcon.image;return groupImage;}
function GetItemImage(channel,item)
{var itemIcon=GetItemIcon(channel,item);var itemImage=itemIcon.image;return itemImage;}
function GetGroupSmallImage(channel,groupIdx)
{var groupIcon=GetGroupIcon(channel,groupIdx);var groupSmallImage=groupIcon.smallImage;if(groupSmallImage==null)
groupSmallImage=groupIcon.image;return groupSmallImage;}
function GetItemSmallImage(channel,item)
{var itemIcon=GetItemIcon(channel,item);var itemSmallImage=itemIcon.smallImage;if(itemSmallImage==null)
itemSmallImage=itemIcon.image;return itemSmallImage;}
function Display()
{var i,j,channel,item,same,html,address,title;var imageHtml='';var titleHtml='';var descriptionHtml='';var groupsHtml='';var panelHtml='';var yahooMapHtml='';var googleMapHtml='';for(i=0;i<channels.length;++i)
{channel=channels[i];
for(j=0;j<channel.items.length;++j)
{item=channel.items[j];if(!item.markerized&&item.lat!=null&&item.lng!=null)
{var marker=new GMarker(new GLatLng(item.lat,item.lng),{icon:GetItemIcon(channel,item),title:item.title});marker.channelIdx=i;marker.itemIdx=j;item.markerIdx=markers.length;GEvent.addListener(marker,'click',MakeCaller(PopUp,item.markerIdx));clusterer.AddMarker(marker,item.title);markers.push(marker);item.markerized=true;}
if(item.title)
{html='';if(item.markerIdx!=null)
{var link='<a href="javascript:PopUp( '+item.markerIdx+' )">';html+=link+'<img border="0" src="'+GetItemSmallImage(channel,item)+'" /></a> '+link+item.title+'</a>';}
else if(item.link)
html+='<a target="_top" href="'+item.link+'">'+item.title+'</a>';else
html+=item.title;html+='<br />';panelHtml+=html;}}
}
/**if(channels.length==1&&channels[0].lat!=null&&channels[0].lng!=null&&channels[0].gZoom!=null)
map.setCenter(new GLatLng(channels[0].lat,channels[0].lng),channels[0].gZoom);else
ZoomToMarkers(map,markers);panelItem.innerHTML=panelHtml;**/}
function PopUp(m)
{try
{var i;var marker=markers[m];if(marker.channelIdx==null||marker.itemIdx==null)
return;var item=channels[marker.channelIdx].items[marker.itemIdx];var html='';if(item.link)
html+='<a target="_top" href="'+item.link+'">';if(item.title)
html+='<b>'+item.title+'</b>';if(item.link)
html+='</a>';html+='</div><br />';if(item.address)
html+=item.address+'<br />';if(item.cityState||item.zip||item.country)
{if(item.cityState)
html+=item.cityState+' ';if(item.zip)
html+=item.zip+' ';if(item.country)
html+=item.country+' ';html+='<br />';}
if(item.phoneNumber)
html+=item.phoneNumber+'<br />';if(item.description)
html+='<p>'+item.description+'</p>';if(item.author)
html+='<p><a target="_top" href="mailto:'+item.author+'">'+item.author+'</a></p>';for(i=0;i<item.extraLinks.length;++i)
html+='<a target="_top" href="'+item.extraLinks[i].href+'">'+item.extraLinks[i].text+'</a><br />';for(i=0;i<item.extraImages.length;++i)
{if(item.extraImages[i].link)
html+='<a target="_top" href="'+item.extraImages[i].link+'">';if(item.extraImages[i].url)
{html+='<img ';if(item.extraImages[i].title)
html+='alt="'+item.extraImages[i].title+'" ';if(item.extraImages[i].imageWidth!=null)
html+='width="'+item.extraImages[i].imageWidth+'" ';if(item.extraImages[i].imageHeight!=null)
html+='height="'+item.extraImages[i].imageHeight+'" ';html+='src="'+item.extraImages[i].url+'" style="max-width: 200px; max-height: 200px;" />';}
if(item.extraImages[i].link)
html+='</a>';}
if(item.itemUrl)
html+='<p><iframe src="'+item.itemUrl+'"></iframe></p>';marker.openInfoWindowHtml(html,{maxWidth:300});}
catch(e)
{GLog.write('PopUp:\n'+Props(e));}}
var iconSizeHelper=[];iconSizeHelper['']=new GSize(28,30);function LookupIconSize(icon)
{var size=iconSizeHelper[icon.image];if(size)
icon.iconSize=size;}