var map=null;var markers=new Array();var marker=null;var overlay;var currentMarker;var sOverlay=null;var pOverlay=null;var intervalID;var swfParams={bgcolor:"ffffff",quality:"high"}
var swfVars={SWF_PATH:"/viewer/",LIB_PATH:"/library/",PANO_PATH:"/pano/"}
var swfAttrs={id:"flashObject"}
function objById(id){return fromArrayById(markers,id);}
function objByMarker(m){return fromArrayByMarker(markers,m);}
function pmById(id){return fromArrayById(point_markers,id);}
function pmByMarker(m){return fromArrayByMarker(point_markers,m);}
function pointIndexById(id){return indexFromArrayById(points,id);}
function pmIndexByMarker(m){return indexFromArrayByMarker(point_markers,m);}
function fromArrayById(arr,id){var i;for(i=0;i<arr.length;i++){if(arr[i].id==id){return arr[i];}}
return null;}
function fromArrayByMarker(arr,m){var i;for(i=0;i<arr.length;i++){if(arr[i].marker==m){return arr[i];}}
return null;}
function indexFromArrayById(arr,id){var i;for(i=0;i<arr.length;i++){if(arr[i].id==id){return i;}}
return null;}
function indexFromArrayByMarker(arr,m){var i;for(i=0;i<arr.length;i++){if(arr[i].marker==m){return i;}}
return null;}
function showMarkerInfoHtml(){if(map.getInfoWindow().isHidden()||(currentMarker!=this)){currentMarker=this;marker_obj=objByMarker(this);if(marker_obj.infoHtml){currentMarker.openInfoWindowHtml(marker_obj.infoHtml);}}
removeTimeout();}
function setInfoHtmlHideTimeout(){intervalID=setInterval(hideMarkerInfoHtml,500);}
function hideMarkerInfoHtml(){currentMarker.closeInfoWindow();removeTimeout();}
function showMarkerSmallOverlay(){if((sOverlay==null)||(currentMarker!=this)){if(sOverlay!=null){map.removeOverlay(sOverlay);}
currentMarker=this;var marker_obj=objByMarker(this);if(marker_obj.infoHtml){sOverlay=new SmallOverlay(this,marker_obj.infoHtml,marker_obj.id,marker_obj.url);map.addOverlay(sOverlay);}}
removeTimeout();}
function showMarkerSmallOverlayTitle(m_id){var marker_obj=objById(m_id);if(((sOverlay==null)||(currentMarker!=marker_obj.marker))&&((pOverlay==null)||!pOverlay.isOpen)){if(sOverlay!=null){map.removeOverlay(sOverlay);}
currentMarker=marker_obj.marker;if(marker_obj.infoHtml){sOverlay=new SmallOverlay(currentMarker,marker_obj.infoHtml,m_id,marker_obj.url);map.addOverlay(sOverlay);}}
removeTimeout();}
function setSmallOverlayHideTimeout(){intervalID=setInterval(hideMarkerSmallOverlay,500);}
function hideMarkerSmallOverlay(){if(sOverlay){map.removeOverlay(sOverlay);sOverlay=null;currentMarker=null;}
removeTimeout();}
function showMarkerPanoOverlay(){if(pOverlay!=null){map.removeOverlay(pOverlay);}
currentMarker=this;var marker_obj=objByMarker(this);if(marker_obj.pano&&marker_obj.infoHtml){pOverlay=new PanoOverlay(this,marker_obj.pano,marker_obj.infoHtml,marker_obj.id,marker_obj.url);map.addOverlay(pOverlay);}}
function showMarkerPanoOverlayTitle(m_id){var marker_obj=objById(m_id);if(pOverlay!=null){map.removeOverlay(pOverlay);}
currentMarker=marker_obj.marker;if(marker_obj.pano&&marker_obj.infoHtml){pOverlay=new PanoOverlay(currentMarker,marker_obj.pano,marker_obj.infoHtml,m_id,marker_obj.url);map.addOverlay(pOverlay);}}
function hideMarkerPanoOverlay(){if(pOverlay){map.panTo(pOverlay.marker.getLatLng());setTimeout("doHideMarkerPanoOverlay();",1);}}
function doHideMarkerPanoOverlay(){map.removeOverlay(pOverlay);pOverlay=null;currentMarker=null;}
function removeTimeout(){clearInterval(intervalID);}
function createMarker(point,color,icon,dragbl){var f=new GIcon(G_DEFAULT_ICON);var s="/images/icons/";if(icon=="small"){f.image=s+"mm_20_"+color+".png";f.shadow=s+"mm_20_shadow.png";f.iconSize=new GSize(12,20);f.shadowSize=new GSize(22,20);f.iconAnchor=new GPoint(6,20);f.infoWindowAnchor=new GPoint(6,1);f.infoShadowAnchor=new GPoint(13,13);}else if(icon=="man"){f=new GIcon();f.image=s+"man.png";f.shadow=s+"man-shadow.png";f.transparent=s+"man-transparent.png";f.printImage=s+"man.png";f.mozPrintImage=s+"man.png";f.printShadow=s+"man-shadow.png";f.iconSize=new GSize(19,25);f.shadowSize=new GSize(35,25);f.iconAnchor=new GPoint(10,25);f.infoWindowAnchor=new GPoint(10,10);f.infoShadowAnchor=new GPoint(10,10);f.imageMap=[0,0,19,0,19,35,0,35];}else if(color!="default"){f.image=s+color+".png";}
newMarker=new GMarker(point,{icon:f,draggable:dragbl});return newMarker;}
function clearMarkers(arr){if(map!=null){for(i=0;i<arr.length;i++){map.removeOverlay(arr[i].marker);}}}
function clearRoute(){if((document.overlay)&&(map!=null)){map.removeOverlay(document.overlay);}}
function rotatePanoramaTo(dir){var fo=$(swfAttrs.id);if(fo){fo.panoramaRotateTo(dir);}}
function panoramaMouseOut(){var fo=$(swfAttrs.id);if(fo){fo.panoramaMouseOut();}}
function doOnLoaded(func_name)
{if(document.addEventListener){document.addEventListener("DOMContentLoaded",eval(func_name),false);}
else document.onload=eval(func_name)();}
function getId(n)
{return(document.getElementById(n));}
function getName(n)
{return(document.getElementsByTagName(n));}
function doFocus(f_name,i_name)
{if(document.forms[f_name][i_name])return(document.forms[f_name][i_name].focus());}
function absCoords(obj)
{var x=y=0;while(obj)
{x+=obj.offsetLeft;y+=obj.offsetTop;obj=obj.offsetParent;}
return{x:x,y:y};}
function menuComment()
{var div=getId("c_menu");if(div)
{div.onmouseover=div.onmouseout=function(e)
{if(!e)e=window.event;var elem=e.target||e.srcElement;while(!elem.tagName||!elem.tagName.match(/div|td/i))elem=elem.parentNode;if(elem.parentNode.tagName=='TD')getId("comm").className=(e.type=="mouseover")?" ":"hidden";};}}
doOnLoaded("menuComment");var on_resize_func=new Array();function runResizeFunc()
{for(var i=0;i<on_resize_func.length;i++)
{if(on_resize_func[i].indexOf("(")>-1)eval(on_resize_func[i]);else eval(on_resize_func[i])();}}
window.onresize=runResizeFunc;var lr_d=new Date();var lr_time;var lr_perm=0;var f_name="";var lr_duration=1;var lr_active="";var lr_next="";function setNewTime()
{var lr_d=new Date();lr_time=10000*lr_d.getHours()+100*lr_d.getMinutes()+lr_d.getSeconds();}
setNewTime();function loginForm(el)
{lr_perm=0;f_name=el.getAttribute("f");var lr={l:"r",r:"l"};el.parentNode.className=(el.parentNode.className)?"":"b";getId("p"+lr[f_name]).className="";setNewTime();if(!lr_active)
{var login_form=getId("login_form");var h_now=login_form.style.height.replace("px","")*1;var h=document.forms[f_name].offsetHeight;if(h_now>1&&h_now==h)lr_active=f_name;else if(h_now>1)
{lr_active=lr[f_name]
lr_next=f_name;}
else
{document.forms["l"].style.display=document.forms["r"].style.display="none";document.forms[f_name].style.display="";lr_active=f_name;}}
else if(lr_active==f_name)
{lr_duration=(lr_duration+1)%2;lr_next="";}
else
{lr_next=f_name;lr_duration=0;}
return false;}
if(typeof HTMLElement!="undefined"&&!HTMLElement.prototype.insertAdjacentElement)
{HTMLElement.prototype.insertAdjacentHTML=function(where,htmlStr)
{var r=this.ownerDocument.createRange();r.setStartBefore(this);var parsedHTML=r.createContextualFragment(htmlStr);this.parentNode.insertBefore(parsedHTML,this)}}
var inputs=new Array();var vals=new Array();var lable='<div class="lable_container"><div id="lable" class="lable"></div></div>';function fInput(e)
{lr_perm=0;var n=addNewInput(e);if(e.value==vals[n]&&e.className=="passive")
{e.value="";e.className="active";}
e.insertAdjacentHTML("beforeBegin",lable);getId('lable').innerHTML=vals[n];return true;}
function bInput(e)
{lr_perm=1;setNewTime();var n=addNewInput(e);if(e.value==""&&e.className=="active")
{e.className="passive";e.value=vals[n];}
if(getId('lable'))
{getId('lable').parentNode.removeChild(getId('lable'));}
return true;}
function addNewInput(e)
{var lng=inputs.length;var flag=0;for(var i=0;i<lng;i++)
{if(e===inputs[i])
{flag=1;return(i);}}
inputs[lng]=e;vals[lng]=e.value;return(lng);}
function resizeLoginForm()
{var login_form=getId("login_form");if(lr_active)
{var h_now=login_form.style.height.replace("px","")*1;if(!h_now)h_now=1;var h_end=document.forms[lr_active].offsetHeight*lr_duration;if(!h_end)h_end=1;if(h_now!=h_end)
{login_form.className="closed";var sign=-1+2*lr_duration;var h_new=h_now+10*sign;if(sign*h_new>h_end)h_new=h_end;if(!h_new)h_new=1;login_form.style.height=h_new;if(h_new==h_end)
{var f_name=lr_active;lr_duration=(lr_duration+1)%2;lr_active="";lr_perm=1;setNewTime();var new_names={l_name:"l_name",r_name:"user[login]"};if(h_new>1)
{login_form.className="opened";doFocus(f_name,new_names[f_name+"_name"]);}
else
{document.forms["l"].style.display=document.forms["r"].style.display="none";lr_perm=0;if(lr_next)
{lr_active=lr_next;lr_next="";document.forms[lr_active].style.display="";}}}}}
setTimeout("resizeLoginForm()",5);}
resizeLoginForm();function closeLR()
{var lr_d=new Date();var h=lr_d.getHours();var m=lr_d.getMinutes();var s=lr_d.getSeconds()-5;var new_time=10000*h+100*m+s;if(new_time>lr_time&&lr_perm)
{if(getId("pl"))
{getId("pl").className="";getId("pr").className="";}
lr_active=f_name;}
setTimeout("closeLR()",100);}
closeLR();function closeMe(sceneId){closePanoOverlay();return("we are closing pano "+panoId);}
function flyMe(sceneId){var flash=GetFlashObject();flash.flyTo("/pano/"+sceneId);new Ajax.Updater('text','/locations/fly/'+sceneId,{asynchronous:true,evalScripts:true});return("we are flying to "+sceneId);}
function maximizeMe(sceneId){alert('maximizeMe panoId - '+sceneId);return("we are maximizing pano  "+sceneId);}
function minimizeMe(sceneId){alert('minimizeMe panoId - '+sceneId);return("we are minimizing pano  "+sceneId);}
function getTilesUrl(sceneId){return sceneId+"/map.jpg";}
function resizeHeight()
{var resized=getId("resized");var coords=absCoords(resized);var h=document.body.clientHeight-coords.y-20;if(h<650)h=650;resized.style.height=h;}
doOnLoaded("resizeHeight");on_resize_func[on_resize_func.length]="resizeHeight";