if(typeof (Dairiki)=="undefined"){Dairiki={}}if(typeof (Dairiki.Tides)=="undefined"){Dairiki.Tides={}}Dairiki.Tides.NAME="Dairiki.Tides";Dairiki.Tides.setCookie=function(B,E,D){var C=B+"="+E;if(D){var A=new Date();A.setTime(A.getTime()+1000*D);C=C+"; expires="+A.toGMTString()}C=C+"; path=/";document.cookie=C};Dairiki.Tides.getCookie=function(A){var D=document.cookie.split(";");for(var C=0;C<D.length;C++){var B=D[C];while(B.charAt(0)==" "){B=B.substring(1)}if(B.substring(0,A.length+1)==A+"="){return B.substring(A.length+1)}}return null};Dairiki.Tides.Disclaimer=function(C,B,A){this.disclaimer=document.getElementById(C);this.hash=B;this.expires=A;var D=Dairiki.Tides.getCookie("tideHideDisclaimer")||"";if((D+":").indexOf(":"+this.hash+":")>=0){this._hide()}};Dairiki.Tides.Disclaimer.prototype={"hide":function(){if(!this.disclaimer){return }this._hide();var A=Dairiki.Tides.getCookie("tideHideDisclaimer")||"";A+=":"+this.hash;Dairiki.Tides.setCookie("tideHideDisclaimer",A,this.expires)},"_hide":function(){if(this.disclaimer){this.disclaimer.style.display="none";this.disclaimer=null}}};Dairiki.Tides.hilightImage=function(C,E){var A=document.getElementById(C);if(!A){return }var B=new Image();B.src=E;var D=A.src;A.onmouseover=function(){A.src=B.src};A.onmouseout=function(){A.src=D}};Dairiki.Tides.gotoStation=function(A,B,D){var E=A.options[A.selectedIndex].value;if(E.charAt(0)=="-"){A.selectedIndex=0;return }var C=B+"/"+E;if(D){C=C+"/"+D}window.location=C};Dairiki.Tides.printMe=function(){if(window.print){window.print();window.alert("The tide table has been printed (I think).");history.back()}else{window.alert("I don't know how to make your browser print this page --- you'll have to do it manually.\n\nHit 'control-P', or select 'Print' from the 'File' pull-down menu.\n(Then, use your browser's 'back' button to get back to the regular tide pages.)")}};Dairiki.Tides.showCursorOnPlot=function(G){var B=MochiKit.DOM;var A=MochiKit.Signal;var F=MochiKit.Style;var H=B.getElement(G||"tide_plot");var C=F.getElementDimensions(H);var D=F.getElementPosition(H);var E;A.connect(H,"onmousemove",function(I){if(typeof (E)=="undefined"){try{E=B.DIV({style:"width: 0px;height: "+C.h+"px;z-index: 100;position: absolute;display: none;border-right: 1px solid #ff0;"});F.setOpacity(E,0.5);B.appendChildNodes(H.parentNode,E);A.connect(H.parentNode,"onmouseleave",function(J){F.hideElement(E)})}catch(I){E=false;return }}if(E===false){return }D=F.getElementPosition(H);F.setElementPosition(E,{x:I.mouse().page.x,y:D.y});F.showElement(E)})};Dairiki.Tides.wait_for_mouse_move=function(D,A,F){var I=MochiKit.Async;var G=MochiKit.Signal;var B;var J=function(){if(B){G.disconnect(B);B=null}};var H=new I.Deferred(J);if(F>0){H.addCallback(function(){return I.wait(F)})}var C=0;var E;B=G.connect(D,"onmousemove",function(K){var L=K.mouse().client;if(E){C+=Math.max(Math.abs(L.x-E.x),Math.abs(L.y-E.y))}E=L;if(C>A){J();H.callback()}});return H};Dairiki.Tides.MapFlipper=function(E,G){var A=MochiKit.Base;var C=MochiKit.DOM;var B=MochiKit.Signal;this.img=C.getElement(E);this.img_base=this.img.src;this.img_ext="";this.station=null;var F=this.img_base.lastIndexOf(".");if(F>=0){this.img_ext=this.img_base.substring(F);this.img_base=this.img_base.substring(0,F)}F=this.img_base.lastIndexOf("-");if(F>=0&&F>this.img_base.lastIndexOf("/")){this.station=this.img_base.substring(F+1);this.img_base=this.img_base.substring(0,F)}this.default_station=this.station;var D=this;A.map(function(H){B.connect(H,"onmouseover",D,"mouseover_handler");B.connect(H,"onmouseout",D,"mouseout_handler")},C.getElement(G).getElementsByTagName("area"));B.connect(this.img,"onmouseout",D,"mouseout_handler");this.arm_wait=Dairiki.Tides.wait_for_mouse_move(this.img,15,0.5);this.arm_wait.addCallback(A.bind("arm",this))};Dairiki.Tides.MapFlipper.prototype={"arm":function(){delete this.arm_wait;if(this.deferred_mouseover){this.mouseover_handler(this.deferred_mouseover)}},"mouseover_handler":function(C){if(this.arm_wait){this.deferred_mouseover=C;return }var B=C.src();var A=B.id.substring(B.id.lastIndexOf(":")+1);B.removeAttribute("title");this.hilight(A)},"mouseout_handler":function(A){delete this.deferred_mouseover;this.hilight(false)},"hilight":function(B){if(B==this.station||(!B&&this.station==this.default_station)){return }this.station=B;if(this.default_wait){this.default_wait.cancel();delete this.default_wait}if(B){this.img.src=this.img_base+"-"+B+this.img_ext}else{this.img.src=this.img_base+this.img_ext;if(this.default_station){var A=MochiKit.Base;var C=MochiKit.Async;this.default_wait=C.callLater(4,A.bind("hilight",this,this.default_station))}}}}