/*
* Copyright (c) 2009 Sascha Hendel - http://www.archinform.net
*/
var mMap=null;
var osm=false;
var gMap;
var gOmap;
var navctrl;
var navctrlpos;
var typctrl;
var typctrlpos;
var gOview;
var gOviewTO;
var svov;
var pano;
var panPnt;
var panPntLst;
var panCtr;
var iniPanoCheck=true;
var gOvlLst=new Array();
var tabMapG;
var tabMapM;
var initCheckBV=true;
var dombuffer;
var icoMapSizeToggle;
var elemdummy=new Element('div');
var elembuffer;
var strvminzoom=14;
var strvavail=false;
var mapslide;
var mapslideVal=1;
var mapheight=350;
var status;
var tyStr=new Array;
tyStr[1]='arch';
tyStr[10]='projekte';
var newMrk=false;
var mrkLst=new Array;
var init_x=7;
var init_y=53;
var init_z=10;
var wx_min;
var wy_min;
var wx_max;
var wy_max;
var opos=new Array();
var ctrx=0;
var ctry=0;
var zlvl=0;
var gl_all=0;
var gl_max=30;
var gl_i=0;
var gl_plt=false;
var gl_req;
var gl_pro=new Array();
var notfound="keine Bauten in diesem Gebiet verzeichnet / no buildings found in this area";
var mloc="";
var opt_keyw="";
var opt_lvls="";
var menueTO;
var myLoc=false;
var dPoi;
var dDirect=false;
function finished(o){
if(!o){
alert("bad or NULL kml");
return}
gEarth.getFeatures().appendChild(o);}
var gEarth;
function getEarthInstanceCB(o){
gEarth=o;
if(gEarth==null){
}}
function bearing(from,to){
var lat1=from.latRadians();
var lon1=from.lngRadians();
var lat2=to.latRadians();
var lon2=to.lngRadians();
var angle=-Math.atan2(Math.sin(lon1-lon2)*Math.cos(lat2),Math.cos(lat1)*Math.sin(lat2)-Math.sin(lat1)*Math.cos(lat2)*Math.cos(lon1-lon2));
if(angle<0.0){angle+=Math.PI*2.0}
angle=angle*180.0/Math.PI;
return angle}
function handleErr(errCode){
switch(errCode){
case "603":
alert("Error: Flash doesn't appear to be supported by your browser");
break;
case "600":
alert("Error: Es wurden keine Panoramadaten gefunden.");
break;
default:
alert("Error: "+errCode)}}
function xmlExc(req,exception){
alert("The request had a fatal exception thrown.\n\n"+exception)}
function xmlErr(req,error){
alert("The request had a error thrown.\n\n"+error)}
function xmlCompl(res){
var xmlDoc=res.responseXML;
switch(res.status){
case 200:
if(mloc==""){
gl_max=parseInt(xmlDoc.childNodes[0].getElementsByTagName("size")[0].getAttribute("max"));
gl_all=parseInt(xmlDoc.childNodes[0].getElementsByTagName("size")[0].getAttribute("all"));
if(xmlDoc.childNodes[0].getElementsByTagName("ownpos")[0]){
opos[3]=parseInt(xmlDoc.childNodes[0].getElementsByTagName("ownpos")[0].getAttribute("acc"));
opos[0]=parseFloat(xmlDoc.childNodes[0].getElementsByTagName("ownpos")[0].getAttribute("lng"));
opos[1]=parseFloat(xmlDoc.childNodes[0].getElementsByTagName("ownpos")[0].getAttribute("lat"));
opos[5]="my position";
opos[6]=-1}
if(xmlDoc.childNodes[0].getElementsByTagName("zlvl")[0]){
var zlvl=parseInt(xmlDoc.childNodes[0].getElementsByTagName("zlvl")[0].getAttribute("ver"));
var ctrx=parseFloat(xmlDoc.childNodes[0].getElementsByTagName("cntr")[0].getAttribute("lng"));
var ctry=parseFloat(xmlDoc.childNodes[0].getElementsByTagName("cntr")[0].getAttribute("lat"));
if(ctrx&&ctry&&zlvl){
panCtr=new google.maps.LatLng(ctry,ctrx);
gMap.setCenter(panCtr,zlvl);
if(status==1){
if(!(newMrk)){initMapFinish();}
init_x=ctrx;init_y=ctry;init_z=zlvl;
status=0}}}
gl_pro=xmlDoc.childNodes[0].getElementsByTagName("loc");
gl_i=0;
if(newMrk){window.setTimeout("showMarkers()",1)}}
else{
mloc="";
var data=xmlDoc.documentElement.getElementsByTagName("data");
var num=data[0].getAttribute("num");
if(num==0){
showInfo("Either no records are listed in this location or the location was not understood.");
window.setTimeout("closeStatus()",4000)}
else{
var lat_ctr=data[0].getAttribute("lat");
var lon_ctr=data[0].getAttribute("lon");
gMap.setCenter(new google.maps.LatLng(lat_ctr,lon_ctr),6);
if(!(newMrk)){initMapFinish()}
getXML()}}}}function xmlLoad(res){
gl_plt=true;
gMap.disableDragging();
tglCrit("off");
showLoadStatus()}
function getXML(){
var url="";var pars="";
if(status==1){url="http://eng.archinform.net/service/mappro.php";
pars="status="+status+"&lvl="+opt_lvls+vID3}
else{
}
if(url!=""){
var ajx=new Ajax.Request(url,{method:"get",parameters:pars,onCreate:xmlLoad,onException:xmlExc,onFailure:xmlErr,onComplete:xmlCompl})}}
function updateMarkers(){
var bounds=gMap.getBounds();
var SW=bounds.getSouthWest();
var NE=bounds.getNorthEast();
url="http://eng.archinform.net/service/mappro.php";pars="status="+status+"&maxX="+NE.lng()+"&minX="+SW.lng()+"&maxY="+NE.lat()+"&minY="+SW.lat()+"&lvl="+opt_lvls+vID3;
if(osm){pars=pars+"&osm"}
var ajx=new Ajax.Request(url,{method:"get",parameters:pars,onCreate:xmlLoad,onException:xmlExc,onFailure:xmlErr,onComplete:xmlCompl})}
function createIcon(type){
var icon=new google.maps.Icon();
icon.iconSize=new google.maps.Size(24,24);
icon.shadowSize=new google.maps.Size(30,30);
icon.iconAnchor=new google.maps.Point(12,12);
icon.infoWindowAnchor=new google.maps.Point(14,14);
icon.infoShadowAnchor=new google.maps.Point(18,25);
switch(type){
case 1:
icon.image="http://media.archINFORM.net/icons/map/m_1.png";break;
case 0:
icon.image="http://media.archINFORM.net/icons/map/m_0.png"}
return icon}
function showLoadStatus(ix,ttl){
if(ttl>0){$("loading").childElements()[0].innerHTML=v032+" "+ix+" "+v033+" "+ttl+"…"}
else{showLoad(v034+"…")}}
function showLoad(str){
resetStatus();
$("loading").childElements()[0].addClassName("Msg");
$("loading").childElements()[0].addClassName("AIloadmsg");
$("loading").childElements()[0].innerHTML=str;
$("loading").show()}
function showAdvice(str){
resetStatus();
$("loading").childElements()[0].addClassName("Msg");
$("loading").childElements()[0].addClassName("AIadvmsg");
$("loading").childElements()[0].innerHTML=str;
$("loading").show()}
function showError(str){
resetStatus();
$("loading").childElements()[0].addClassName("Msg");
$("loading").childElements()[0].addClassName("AIerrmsg");
$("loading").childElements()[0].innerHTML=str;
$("loading").show()}
function showInfo(str){
resetStatus();
$("loading").childElements()[0].addClassName("Msg");
$("loading").childElements()[0].addClassName("AIinfmsg");
$("loading").childElements()[0].innerHTML=str;
$("loading").show()}
function resetStatus(){
$("loading").childElements()[0].removeClassName("Msg");
$("loading").childElements()[0].removeClassName("AIloadmsg");
$("loading").childElements()[0].removeClassName("AIadvmsg");
$("loading").childElements()[0].removeClassName("AIerrmsg");
$("loading").childElements()[0].removeClassName("AIinfmsg");
$("loading").childElements()[0].innerHTML=""}
function closeStatus(){
$("loading").hide();
resetStatus()}
function closeMenue(){
$("message").hide()}
function ent(key,val){
 this.key=key;
 this.val=val}
function cmpkey(in1,in2){
 return in1.key-in2.key}
function drawCrc(ctr,rad,nod,liCol,liW,liOp,fillCol,fillOp){
var latConv=ctr.distanceFrom(new google.maps.LatLng(ctr.lat()+0.1,ctr.lng()))*10;
var lngConv=ctr.distanceFrom(new google.maps.LatLng(ctr.lat(),ctr.lng()+0.1))*10;
var points=[];
var step=parseInt(360/nod)||10;
for(var i=0;i<=360;i+=step){
var pint=new google.maps.LatLng(ctr.lat()+(rad/latConv*Math.cos(i*Math.PI/180)),ctr.lng()+(rad/lngConv*Math.sin(i*Math.PI/180)));
points.push(pint)}
points.push(points[0]);
fillCol=fillCol||liCol||"#0055ff";
liW=liW||2;
var Crc=new google.maps.Polygon(points,liCol,liW,liOp,fillCol,fillOp);
gOvlLst.push(Crc);
gMap.addOverlay(Crc);
}
function spotMyLoc(ctr,rad){
myLoc=ctr;
var gTitle="my position (radius: "+rad+"m)";
var marker=newMarker(ctr.lat(),ctr.lng(),0,gTitle,0);
marker.acc=0;
gOvlLst.push(marker);gMap.addOverlay(marker);
drawCrc(ctr,rad,40,"#f33f00",2,1,"#ff0000",0.1);
}
function spot(d){
var acc;
var lvltxt;
switch(d[6]){
case -1:
spotMyLoc(new google.maps.LatLng(d[1],d[0]),d[3]);
break;
default:
switch(d[3]){
case 9: acc=1;lvltxt=v035;break;
case 1: acc=2;lvltxt=v036;break;
case 2: acc=3;lvltxt=v037;break;
case 3:
case 4:
case 5: acc=4;lvltxt=v038;break;
default: acc=0;lvltxt=v039}
var gTitle=d[5];
if((d[10]!=null)&&(d[10]!="")){gTitle+=" ("+d[10]+")"}
gTitle+=", "+lvltxt;
var marker=newMarker(d[1],d[0],d[6],gTitle,d[2]);
marker.acc=acc;
if(d[5]){marker.name=d[5]}
if(d[7]){marker.rlty=d[7];marker.rlna=d[8]}
if(!(isNaN(d[4]))){marker.ai_ord=d[4]}
gOvlLst.push(marker);
gMap.addOverlay(marker);
var shape=new VEShape(VEShapeType.Pushpin,new VELatLong(d[1],d[0]));
shape.SetCustomIcon("http://media.archINFORM.net/icons/map/m_01.png");
if(d[7]){shape.rlty=d[7];shape.rlna=d[8]}
shape.SetTitle(d[5]);
var dsctxt="";
if(d[9]>-1){dsctxt+=d[9];
while(dsctxt.length<8){dsctxt='0'+dsctxt}
dsctxt='<img style="float:left;margin:0 4px 4px 0" src="http://media.archINFORM.net/media/xs/'+dsctxt+'.jpg" />'}
dsctxt+=lvltxt;
shape.SetDescription(dsctxt);
mMap.AddShape(shape);
}
}
function getDirection(){
if(myLoc===false){
showError("no or unexact home location");
window.setTimeout("closeStatus()",4000)}
else{
if(dPoi.equals(myLoc)){showError("Start = End");
window.setTimeout("closeStatus()",4000)}
else{
var opt_travelMode=google.maps.TRAVEL_MODE_DRIVING;
var opt_avoidHighways=false;
if($('dirtrav')!=undefined){
var opt_dirtrav=$('dirtrav').options[$('dirtrav').selectedIndex].value;
switch(opt_dirtrav){
case "1":
opt_avoidHighways=true;break;
case "2":
opt_travelMode=google.maps.TRAVEL_MODE_WALKING}}
var array=[];
array.push(myLoc);
array.push(dPoi);
if($("navdirs")==undefined){T3infoBox('NAVD','<div id="navdirs" />')}
showLoad(v079);
if(dDirect===false){
dDirect=new google.maps.Directions(gMap,$('navdirs'))}
else{
dDirect.clear()}
dDirect.loadFromWaypoints(array,{"locale":vLA2,"preserveViewport":true,"travelMode":opt_travelMode,"avoidHighways":opt_avoidHighways});
google.maps.Event.addListener(dDirect,'addoverlay',function(){
closeStatus()});
google.maps.Event.addListener(dDirect,'error',function(){
var errObj=dDirect.getStatus();
switch(errObj.code){
case 604:
showError(v089);break;
default:
showError(v090)}
window.setTimeout("closeStatus()",4000)})}}
closeMenue()}
function showMarkers(){
var gOvl=new Object;
var mOvl=new Object;
var zoom=gMap.getZoom();
if(gl_i==0){
while(gOvlLst.length>0){
var tMarker=gOvlLst.shift();
gMap.removeOverlay(tMarker);
}}
if(gl_i<gl_max){
if(gl_i<gl_pro.length){
if(gl_pro.length>gl_max){var ml=gl_max}else{var ml=gl_pro.length}
showLoadStatus(gl_i,ml);
var tCtr=gMap.getCenter();
var max=Math.min(gl_i+10,gl_pro.length);
var page=Math.floor(tCtr.x/360)*360;
while(gl_i<max){
var j=0;
var listing=0;
var type=parseInt(gl_pro[gl_i].getElementsByTagName("type")[0].getAttribute("ver"));
var type=1;
if(type==1){var kf=0.5}else{var kf=1}
var name="";
if(gl_pro[gl_i].getElementsByTagName("name")[0].firstChild){
name=gl_pro[gl_i].getElementsByTagName("name")[0].firstChild.data}
if(gl_pro[gl_i].getElementsByTagName("rel")[0]){
var rlna=parseInt(gl_pro[gl_i].getElementsByTagName("rel")[0].getAttribute("name"));
var rlty=parseInt(gl_pro[gl_i].getElementsByTagName("rel")[0].getAttribute("type"))}
else{var proid=false}
var imgid=-1;
if(gl_pro[gl_i].getElementsByTagName("img")[0]){
var imgid=parseInt(gl_pro[gl_i].getElementsByTagName("img")[0].getAttribute("imgid"))}
var gl_coord=gl_pro[gl_i].getElementsByTagName("coord");
if(gl_coord.length>0){
var points=new Array();
for(var j=0;j<gl_coord.length;j++){
var dat=new Array();
dat[0]=parseFloat(gl_coord[j].getAttribute("lng"));
dat[1]=parseFloat(gl_coord[j].getAttribute("lat"));
if(Math.abs(tCtr.x)>90){
while(dat[0]<page){dat[0]+=360}
while(dat[0]>page+360){dat[0]-=360}}
dat[2]=gl_coord[j].getAttribute("id");
dat[3]=parseInt(gl_coord[j].getAttribute("lvl"));
dat[4]=parseInt(gl_coord[j].getAttribute("ord"));
dat[5]=name;
dat[6]=type;
dat[7]=rlty;
dat[8]=rlna;
dat[9]=imgid;
dat[10]=gl_coord[j].getAttribute("title");
if(dat[4]<0){spot(dat)}
else{points.push(new ent(dat[4],dat))}}
if(points.length>0){
points.sort(cmpkey);
var plne=false;
if(points[0].key>0){plne=true}
var gPco=new Array();
var mPco=new Array();
while(points.length>0){
var tpo=points.shift().val;
if((gl_coord.length==points.length)&&((tpo[4]==0)||((plne)&&(tpo[4]==1)))){spot(tpo)}
else{spotUse(tpo)}
gPco.push(new google.maps.LatLng(tpo[1],tpo[0]));
mPco.push(new VELatLong(tpo[1],tpo[0]));
}
if(plne){
gOvl=new google.maps.Polyline(gPco,"#0000ff",2,.8);
mOvl=new VEShape(VEShapeType.Polyline,mPco);
}
else{
gPco.push(gPco[0]);
gOvl=new google.maps.Polygon(gPco,"#00ff00",2,.8,"#00ff00",.4);
mPco.push(mPco[0]);
mOvl=new VEShape(VEShapeType.Polygon,mPco);
}
gOvlLst.push(gOvl);
gMap.addOverlay(gOvl);
mOvl.SetTitle(dat[5]);
mOvl.HideIcon();
mOvl.SetLineColor(new VEColor(153,204,0,1));
mOvl.SetFillColor(new VEColor(153,204,0,0.5));
mMap.AddShape(mOvl);
}}
gl_i++}}
else{gl_i=gl_max}
window.setTimeout("showMarkers()",400)}
else{
if(opos.length>0){spot(opos)}closeStatus();
gMap.enableDragging();
gl_plt=false;
tglCrit("on");
if(gl_all>gl_max){showAdvice(v022+" "+gl_max+" "+v023+" ("+gl_all+") "+v024)}
else if(gl_pro.length==0){
window.setTimeout("showInfo(notfound)",1);
window.setTimeout("closeStatus()",4000)}
else{
}}}
function closeMap(){if(gMap){google.maps.Unload()}}
function toggleMapSize(){
if($('master')){
show=false;
var y=$("MenueMAPIChild").parentNode;
elembuffer=y.parentNode.replaceChild(elemdummy,y);
dombuffer=$('master').parentNode.removeChild($('master'));
$$('body')[0].appendChild(elembuffer);
var nh=document.viewport.getHeight();
nh=nh-30;
$('map').setStyle({height:nh+'px'});
$('mmap').setStyle({height:nh+'px'});
$('view').setStyle({height:nh+'px'});
var stmp=$('mapBox').getDimensions();
mMap.Resize(stmp.width,stmp.height);
if($('view').visible()){
pano.checkResize();
nh=nh+$('mapslider').getHeight()}
$('mapBox').setStyle({height:nh+'px'});
icoMapSizeToggle.writeAttribute({'src':"http://media.archINFORM.net/icons/ms.gif"});
}else{
var nh=mapheight;$('map').setStyle({height:nh+'px'});
$('view').setStyle({height:nh+'px'});
gMap.checkResize();
mMap.Resize();
if($('view').visible()){
pano.checkResize();
nh=nh+15}
$('mapBox').setStyle({height:nh+'px'});
icoMapSizeToggle.writeAttribute({'src':"http://media.archINFORM.net/icons/ml.gif"});
elemdummy=elemdummy.parentNode.replaceChild(elembuffer,elemdummy);
$$('body')[0].appendChild(dombuffer);
umbruch()}
slideResize()}
function displayMap(){
google.load("maps","2.x",{"locale":vLA2,"other_params":"sensor=false","callback":displayMapLoaded})}
function displayMapLoaded(){
$$('#MenueMAPIParent div').invoke('remove');
closeMenue();
var x;
var y;
x=new Element('input',{"id":"refrMap","class":"button","type":"button","name":"refrMap",value:v030});
x.setStyle({width:"100%",visibility:"hidden"});
x.observe('click',updateMarkers);
$('panel').appendChild(x);
x=new Element('form',{"action":"","method":"post","id":"mapFC","name":"mapFC"});
$('panel').appendChild(x);
x=new Element('select',{"id":"lvls","name":"lvls","size":"1"});
x.setStyle({width:"100%"});
x.observe('change',optFilter);
y=new Element('option',{"value":"0"});
y.update(v025);
x.appendChild(y);
y=new Element('option',{"value":"1"});
y.update(v026);
x.appendChild(y);
$('mapFC').appendChild(x);
mapslide=new Control.Slider('mapsliderhandler','mapslider',{
sliderValue:1,
onChange:function(v){mapslideVal=v;
if($('view').visible){
$('view').setStyle({width:(Math.round((1-v)*100))+'%'});
pano.checkResize();
$('map').setStyle({width:(Math.round(v*100))+'%'});
gMap.checkResize()}},
onSlide:function(v){if($('view').visible){
mapslideVal=v;
$('view').setStyle({width:(Math.round((1-v)*100))+'%'});
pano.checkResize();
$('map').setStyle({width:(Math.round(v*100))+'%'});
gMap.checkResize()}}
});
icoMapSizeToggle=new Element('img',{'src':"http://media.archINFORM.net/icons/ml.gif",'title':v040});
icoMapSizeToggle.addClassName('icoMpdSpec');
var tnd=$('MenueMAPIStatusImg');
if(tnd.nextSibling==null){tnd.parentNode.appendChild(icoMapSizeToggle)}
else{tnd.parentNode.insertBefore(icoMapSizeToggle,tnd.nextSibling)}
icoMapSizeToggle.onclick=function(){toggleMapSize()};
tabMapM=new Element('div',{'title':v041});
tabMapM.addClassName('mpdsubmenu');
tabMapM.innerHTML=v041;
if(tnd.nextSibling==null){tnd.parentNode.appendChild(tabMapM)}
else{tnd.parentNode.insertBefore(tabMapM,tnd.nextSibling)}
tabMapM.onclick=function(){switchMapM()};
tabMapG=new Element('div',{'title':v042});
tabMapG.addClassName('mpdsubmenu');
tabMapG.innerHTML=v042;
if(tnd.nextSibling==null){tnd.parentNode.appendChild(tabMapG)}
else{tnd.parentNode.insertBefore(tabMapG,tnd.nextSibling)}
tabMapG.onclick=function(){switchMapG()};
gMap=new google.maps.Map2($('map'));
gMap.setMapType(google.maps.HYBRID_MAP);
$('mmap').setStyle({width:"100%",overflow:"hidden"});
mMap=new VEMap('mmap');
var LA=new VELatLong(34.0540,-118.2370);
mMap.LoadMap(LA,14,VEMapStyle.Road,false,VEMapMode.Mode2D,false,1);
mMap.AttachEvent('onchangeview',mMapBirdView);
mMap.AttachEvent('onobliqueenter',mMapBirdView);
mMap.AttachEvent('onobliqueleave',mMapBirdView);
Event.observe(document.onresize?document:window,'resize',slideResize);
$('mmap').setStyle({zIndex:0});
$('map').setStyle({zIndex:1});
getXML();
}
function slideResize(){
if(!Object.isUndefined(mMap)){
var stmp=$('mapBox').getDimensions();
mMap.Resize(stmp.width,stmp.height)}
if(!Object.isUndefined(mapslide)){
mapslide.trackLength=mapslide.maximumOffset()-mapslide.minimumOffset();
mapslide.setValue(mapslideVal)}}
function switchMapM(){
$('map').setStyle({zIndex:0});
$('mmap').setStyle({zIndex:1});
tabMapG.setStyle({fontWeight:'normal',backgroundColor:'#eee'});
tabMapM.setStyle({fontWeight:'bold',backgroundColor:'#fff'});
}
function switchMapG(){
$('mmap').setStyle({zIndex:0});
$('map').setStyle({zIndex:1});
tabMapM.setStyle({fontWeight:'normal',backgroundColor:'#eee'});
tabMapG.setStyle({fontWeight:'bold',backgroundColor:'#fff'});
}
function initMapFinish(){
newMrk=true;
gMap.disableDoubleClickZoom();
gMap.enableContinuousZoom();
gMap.addMapType(google.maps.SATELLITE_3D_MAP);
gMap.getEarthInstance(getEarthInstanceCB);
navctrl=new google.maps.LargeMapControl3D();
navctrlpos=new google.maps.ControlPosition(google.maps.ANCHOR_BOTTOM_LEFT,new google.maps.Size(vLYk+20,50));
gMap.addControl(navctrl,navctrlpos);
typctrl=new google.maps.MenuMapTypeControl();
typctrlpos=new google.maps.ControlPosition(google.maps.ANCHOR_TOP_RIGHT,new google.maps.Size(15,15));
gMap.addControl(typctrl,typctrlpos);
sclctrl=new google.maps.ScaleControl(200);
sclctrlpos=new google.maps.ControlPosition(google.maps.ANCHOR_BOTTOM_LEFT,new google.maps.Size(vLYk+20,15));
gMap.addControl(sclctrl,sclctrlpos);
var panOpts={latlng:new google.maps.LatLng(42.345573,-71.098326)};
pano=new google.maps.StreetviewPanorama($('view'),panOpts);
google.maps.Event.addListener(pano,'error',handleErr);
google.maps.Event.addListener(pano,'initialized',function(loc){
panPnt.setLatLng(loc.latlng);
gMap.addOverlay(new Polyline([panPntLst,loc.latlng]));
panPntLst=loc.latlng});
google.maps.Event.addListener(pano,"yawchanged",function(yaw){
var dir=Math.round(yaw/3)*3;
while(dir>=120){dir-=120}
panPnt.setImage("http://www.google.com/intl/en_ALL/mapfiles/dir_"+dir+".png")});
pano.checkResize();
gMap.hideControls();
$("refrMap").setStyle({visibility:"visible"});
var panIcon=new google.maps.Icon();
panIcon.iconSize=new google.maps.Size(24,24);
panIcon.shadowSize=new google.maps.Size(1,1);
panIcon.iconAnchor=new google.maps.Point(12,12);
panIcon.infoWindowAnchor=new google.maps.Point(0,0);
panIcon.image="http://www.google.com/intl/en_ALL/mapfiles/dir_0.png";
panPnt=new google.maps.Marker(new google.maps.LatLng(90,0),{icon:panIcon});
gMap.addOverlay(panPnt);
svov=new google.maps.StreetviewOverlay();
gMap.addOverlay(svov);
svov.hide();
google.maps.Event.addListener(svov,'changed',function(hasStreetviewData){
if(hasStreetviewData){strvavail=true}
else{strvavail=false}
panoCheck()});
var tx=gMap.getCenter();
var zx=gMap.getZoom();
gMap.setCenter(new google.maps.LatLng(90,0),17);
gMap.setCenter(tx,zx);
mMap.SetCenter(new VELatLong(tx.lat(),tx.lng()));
google.maps.Event.addListener(gMap,"mouseover",function(){
gMap.showControls();
svov.show();
});
google.maps.Event.addListener(gMap,"mouseout",function(){svov.hide();
if(gMap.getCurrentMapType()!=google.maps.SATELLITE_3D_MAP){gMap.hideControls()}});
google.maps.Event.addListener(gMap,"maptypechanged",function(){gMap.removeControl(navctrl);
if(gMap.getCurrentMapType()!=google.maps.SATELLITE_3D_MAP){gMap.addControl(navctrl,navctrlpos)}});
google.maps.Event.addListener(gMap,"movestart",function(){closeStatus();closeMenue()});
google.maps.Event.addListener(gMap,"moveend",function(){
var center=gMap.getCenter();
var zoom=gMap.getZoom();
if((zlvl!=zoom)||(ctrx!=center.lng())||(ctry!=center.lat())){
panoCheck();
ctrx=center.lng();ctry=center.lat();zlvl=zoom;
if(gl_plt==false){setTimeout("getXML()",2000)}}});
google.maps.Event.addListener(gMap,"singlerightclick",function(point,src,overlay){
if(overlay){
$("message").innerHTML='';
$("message").show();
$("message").setStyle({top:point.y+'px',left:point.x+'px'});ovpoi=overlay;
menueUse(overlay);
if(myLoc!==false){
dPoi=overlay.getLatLng();
if(!(dPoi.equals(myLoc))){;
var tmpo=new Element('input',{'type':"button",'class':"button",'value':v080});
tmpo.setStyle({"float":"left",margin:"5px"});
tmpo.observe('click',getDirection);
$('message').appendChild(tmpo);
var tmpo=new Element('select',{"id":"dirtrav","name":"dirtrav","size":"1"});
tmpo.setStyle({"float":"left",margin:"5px"});
var tmpp=new Element('option',{"value":"0"});
tmpp.update(v082);
tmpo.appendChild(tmpp);
tmpp=new Element('option',{"value":"1"});
tmpp.update(v083);
tmpo.appendChild(tmpp);
tmpp=new Element('option',{"value":"2"});
tmpp.update(v084);
tmpo.appendChild(tmpp);
$('message').appendChild(tmpo)}}
var tmpo=new Element('input',{'type':"button",'class':"button",'value':v045});
tmpo.setStyle({margin:"5px"});
tmpo.observe('click',garminload);
$("message").appendChild(tmpo);
$("message").observe('mouseout',function(){menueTO=window.setTimeout("closeMenue()",10000)});
$("message").observe('mouseover',function(){window.clearTimeout(menueTO)});
}});
mMap.AttachEvent("onendpan",function(e){
var ctr=mMap.GetCenter();
});
mMap.AttachEvent("onclick",function(e){
closeMenue();
closeStatus();
if(e.leftMouseButton){var msg="onclick (left mouse button) event"}
else if(e.rightMouseButton){var msg="onclick (right mouse button) event"}
else if(e.middleMouseButton){var msg="onclick (middle mouse button) event"}
else{var msg=e.eventName+" event!"}
if(e.elementID){
var s=mMap.GetShapeByID(e.elementID);
if(s.rlna&&s.rlty){
if(document.URL.search(new RegExp(tyStr[s.rlty]+'/'+s.rlna))==-1){
document.location.href='http://eng.archinform.net/'+tyStr[s.rlty]+'/'+s.rlna+'.htm'+vID}
}}});
google.maps.Event.addListener(gMap,"click",function(overlay,point){
closeMenue();
closeStatus();
if(overlay){
if(overlay.rlna&&overlay.rlty){
if(document.URL.search(new RegExp(tyStr[overlay.rlty]+'/'+overlay.rlna))==-1){
document.location.href='http://eng.archinform.net/'+tyStr[overlay.rlty]+'/'+overlay.rlna+'.htm'+vID;
}else{
gMap.setCenter(overlay.getLatLng());
gMap.zoomIn()}}}
else if(point){
var nostrv=true;
if((pano)&&(gMap.getZoom()>=strvminzoom)){
pano.remove();
var svc=new google.maps.StreetviewClient();
svc.getNearestPanoramaLatLng(point,function(pnt){
if(pnt){
if(mapslideVal==1){mapslide.setValue(.7)}
pano.setLocationAndPOV(pnt,{"yaw":bearing(pnt,panCtr)});
panPnt.setLatLng(pnt);
panPntLst=pnt;
nostrv=false}
})}}});
tglCrit("off")}
function uPan(lat,lon){
ctrx=lon;ctry=lat;
var gPnt=new google.maps.LatLng(lat,lon);
if(gPnt!=gMap.getCenter()){
gMap.setCenter(gPnt)}
}
function mMapBirdView(e){
if(mMap.IsBirdseyeAvailable()){
if(initCheckBV){
mMap.SetMapStyle(VEMapStyle.Birdseye);
initCheckBV=false}
tabMapM.innerHTML='<img style="float:right;width:16px;height:15px;margin-left:3px" src="http://media.archINFORM.net/icons/birdview.gif" title="'+v043+'" />'+v041}
else{tabMapM.innerHTML=v041}}
function panoCheck(){
var mctr=gMap.getCenter();
var LA=new VELatLong(mctr.lat(),mctr.lng());
mMap.SetCenter(LA);
if((strvavail)&&(gMap.getZoom()>=strvminzoom)){
if((!$('view').visible())||iniPanoCheck){
$('mapBox').setStyle({height:(mapheight+15)+'px'});
$('mapslider').show();
$('view').show();
$('map').setStyle({width:(Math.round(mapslideVal*100))+'%'});
gMap.checkResize()}}
else{
if($('view').visible()||iniPanoCheck){
$('map').setStyle({width:"100%"});
gMap.checkResize();
$('mapslider').hide();
$('mapBox').setStyle({height:mapheight+'px'});
$('view').hide()}}
iniPanoCheck=false}
function resetMap(){
opt_keyw="";
opt_lvls="";
mloc="";
$("mapFC").lvls.selectedIndex=0;
gMap.setCenter(new google.maps.LatLng(init_y,init_x),init_z);
}
function resetCriteria(input){
opt_keyw="";
opt_lvls="";
if(input!="lvls"){$("mapFC").lvls.selectedIndex=0}
}
function tglCrit(input,init){
if(input=="off"){
if(init==true){
for(x=0;x<$("mapFC").elements.length;x++){
if($("mapFC").elements[x].name!="loca" && $("mapFC").elements[x].name!="search" && $("mapFC").elements[x].name!="reset" && $("mapFC").elements[x].name!="spot"){
$("mapFC").elements[x].disabled=true;
}}}
else{
for(x=0;x<$("mapFC").elements.length;x++){
if($("mapFC").elements[x].name!="loca" && $("mapFC").elements[x].name!="search" && $("mapFC").elements[x].name!="reset" && $("mapFC").elements[x].name!="spot"){
$("mapFC").elements[x].disabled=true;
}}}}
else{
for(x=0;x<$("mapFC").elements.length;x++){
if($("mapFC").elements[x].name!="loca" && $("mapFC").elements[x].name!="search"){
$("mapFC").elements[x].disabled=false;
}}}
}
function getosm(){
osm=true;
updateMarkers()}
function optFilter(){
optLvls();
updateMarkers()}
function optLvls(){
var obj=$("lvls");
opt_lvls=obj.options[obj.selectedIndex].value;
if(opt_lvls==0){opt_lvls=""}}
function optSpot(){
var obj=$("mapFC").spot;
var arr=obj.options[obj.selectedIndex].value.split(",");
gMap.setCenter(new google.maps.LatLng(arr[1],arr[0]),6);
resetCriteria("spot");
setTimeout("getXML()",1)}
function optLoca(){
$("mapFC").spot.selectedIndex=0;
mloc=$("mapFC").loca.value;
if(mloc==""){
return}
 else{resetCriteria("loca")}
 getXML()}
function tomtomload(){
}
var garminLoaded=false;
var ovpoi=new Object;
function garminload(){
gMap.disableDragging();
tglCrit("off");
closeMenue();
if(!garminLoaded){
showLoad(v044);
if(PluginDetect.detectGarminCommunicatorPlugin()){
var con=new Element('div');
$$("body")[0].appendChild(con);
if(window.ActiveXObject){
var obj=new Element('object');
con.appendChild(obj);
obj.writeAttribute({'id':"GarminActiveXControl",'classid':"CLSID:099B5A62-DE20-48C6-BF9E-290A9D1D8CB5",'height':"0",'width':"0"})}
else{
var obj=new Element('object',{'id':"GarminNetscapePlugin",'type':"application/vnd-garmin.mygarmin",'height':"0",'width':"0"}).update('&#160');
con.appendChild(obj)}}
$$('head')[0].appendChild(new Element('script',({'type':'text/javascript','src':'/inc/garmin.js'})));
garminLoaded=true;
return}
closeStatus();
$("loading").show();
$("loading").childElements()[0].id="garminBox";
var display=new Garmin.DeviceDisplay('garminBox',{
pathKeyPairsArray: ["http://"+vLA3+".archinform.net",vCOg],
unlockOnPageLoad: false,
hideIfBrowserNotSupported: true,
showStatusElement: true,
showFindDevicesElement: true,
autoFindDevices: true,
showCancelFindDevicesButton: true,
autoSelectFirstDevice: true,
autoReadData: false,
autoWriteData: true,
showReadDataElement: false,
findDevicesButtonText: v050,
cancelFindDevicesButtonText: v051,
noDeviceDetectedStatusText: v052,
pluginNotUnlocked: v053,
writingToDevice: v054,
writtenToDevice: v055,
lookingForDevices: v056,
foundDevice: v057,
findCancelled: v058,
getWriteData: function(){
var title="P "+ovpoi.rlna+"-"+ovpoi.acc;
var waypoint=new Garmin.WayPoint(ovpoi.getPoint().y,ovpoi.getPoint().x,null,title,null,ovpoi.name,"building");
var factory=new Garmin.GpsDataFactory();
var gpx=factory.produceGpxString(null,[waypoint]);
return gpx},
afterFinishWriteToDevice: function(){
closeStatus();
tglCrit("on");
gMap.enableDragging();
}})}
