var unimplemented_exception="unimplemented";var dollar=$;var $values=function(C){var A=[];for(var B in C){if(C.hasOwnProperty(B)){A.push(C[B])}}return A};var DetailDisplay=new Class({options:{showSelect:false,onSelect:Class.empty,header:"About this location:"},setHeaderText:function(A){this.headerComponent.setText(A)},initialize:function(B,A){B=B||[];this.label2elt={};this.locationHint=null;this.headerComponent=null;this.container=this.createComponent();this.wrapper=this.wrapComponent(this.container);this.wrapper.injectInside($("scroller"));this.fx=new Fx.Styles(this.wrapper,{wait:false})},wrapComponent:function(A){var C=new Element("div",{"styles":{"display":"none","position":"absolute","zIndex":1001}});var B=new Element("img",{"src":"/static_cbi/i/triangle_top.png","styles":{"position":"absolute","left":"7px","top":"0px","zIndex":"1"}});A.setStyles({"display":"block","zIndex":"0","left":"0px","top":"8px","overflow":"auto","padding-right":"20px"});B.injectInside(C);A.injectInside(C);return C},createComponent:function(){var E=new Element("div",{"styles":{"position":"absolute","padding":"0px","display":"none","zIndex":"20000","width":"270px","left":"0px","top":"16px"},"id":"viewcomment"});var F=new Element("div",{"styles":{"position":"relative","lineHeight":"14px","textAlign":"left","padding":"7px"}});var D=new Element("div",{"styles":{"background":"url(/static_cbi/i/icon-info_Vsml.png)","background-repeat":"no-repeat","height":"24px","width":"24px","float":"left"}});var A=new Element("div",{"events":{"click":function(){this.clearAllContent()}.bind(this)},"styles":{"position":"absolute","left":254,"top":4,"height":18,"width":18,"background":"url(/static_cbi/i/btn_close.png)","cursor":"pointer"}});if(window.ie){A.setStyle("cursor","hand")}else{A.setStyle("cursor","pointer")}var B=new Element("div",{"styles":{"float":"left","width":200}}).setText(this.options.header);this.headerComponent=B;D.injectInside(F);B.injectInside(F);A.injectInside(F);F.injectInside(E);var C=new Element("div",{"styles":{"height":26,"lineHeight":26,"textAlign":"left","clear":"left"}}).setHTML('<span style="margin-left:30px;font-weight:bold;">Lat</span>: <span id="detail-lat">xxxx</span> <span style="margin-left:5px;font-weight:bold;">Lon</span>: <span id="detail-lng">yyyy</span>');C.injectInside(E);return E},addLabel:function(B){if(B in this.label2elt){return }console.log("adding label:",B);var A=new Element("div",{"styles":{}});A.injectInside(this.container);this.label2elt[B]=A},setContent:function(C,B,A){A=A||true;if(!this.knowsLabel(C)){console.error("lable not in label2elt");throw DetailDisplay.INVALID_LABEL_EXCEPTION}console.log("setting content:",C);B=B.trim();this.label2elt[C].setHTML(B);this.updateVisibility()},clearContent:function(A){this.setContent(A,"")},clearAllContent:function(){for(var A in this.label2elt){if(this.label2elt.hasOwnProperty(A)){this.setContent(A,"",false)}}this.updateVisibility()},knowsLabel:function(A){return(A in this.label2elt)},setLocationHint:function(A,B){A=A||{x:0,y:0};this.locationHint=A;if(typeof B!=="undefined"){this.latlng=B;dollar("detail-lat").setText(B.lat().round(5));dollar("detail-lng").setText(B.lng().round(5))}else{this.latlng=null}},updateLocation:function(){throw DetailDisplay.UNIMPLEMENTED_EXCEPTION},updateVisibility:function(){var A=$values(this.label2elt).some(function(C){var D=C.getText().trim();var B=(D!=="");if(B){console.log("has content")}return B});if(!A){console.log("has no content");this.wrapper.setStyle("display","none")}else{if(this.locationHint===null){this.wrapper.setStyle("display","block")}else{console.log("using location hint:",this.locationHint);this.wrapper.setStyles({"display":"block"});this.fx.set({"left":this.locationHint.x-15,"top":this.locationHint.y})}}if(this.wrapper.getStyle("display")==="none"){this.fireEvent("onVisibilityChanged",false)}else{if(this.wrapper.getStyle("display")==="block"){this.fireEvent("onVisibilityChanged",true)}}}});DetailDisplay.UNIMPLEMENTED_EXCEPTION="unimplemented";DetailDisplay.INVALID_LABEL_EXCEPTION="invalid label";var DETAIL_DISPLAY_INSTANCE=null;var getDetailDisplayInstance=function(){if(DETAIL_DISPLAY_INSTANCE===null){DETAIL_DISPLAY_INSTANCE=new DetailDisplay()}return DETAIL_DISPLAY_INSTANCE};DetailDisplay.implement(new Options(),new Events())
