function GmapsInfobox(sourceElementId,marker,openInside){this.marker=marker;this.openInside=openInside;this.marker.infobox=this;this.showLargeTimeouts=new Array();this.mediaTimeouts=new Array();this.animations=new Array();this.sourceElement=document.getElementById(sourceElementId).cloneNode(true);this.hasMedia=false;if(this.openInside){try{if(vid_getData(this.sourceElement.id.replace(/.*[^\d](\d*)[^\d]*/,"$1")).length>0){this.hasMedia=true}}catch(e){}}else{}this.setLayoutVariables();this.setBehaviorVariables();this.sourceElement.id=null;this.buildInfoboxElement();this.shadowElement=document.getElementById("gmapInfoboxShadow").cloneNode(true);this.shadowElement.id=null}GmapsInfobox.prototype=new GOverlay();GmapsInfobox.prototype.initialize=function(map){this.infoboxElement.style.position="absolute";if(this.openInside){map.getPane(G_MAP_FLOAT_SHADOW_PANE).appendChild(this.infoboxElement);map.getPane(G_MAP_MARKER_SHADOW_PANE).appendChild(this.shadowElement)}else{this.infoboxPane=this.marker.markerManager.targetElement.parentNode;this.infoboxPane.appendChild(this.infoboxElement)}this.map_=map;this.resetMouseEvents()};GmapsInfobox.prototype.remove=function(){this.infoboxElement.parentNode.removeChild(this.infoboxElement);this.mediaElement.parentNode.removeChild(this.mediaElement);this.detailsElement.parentNode.removeChild(this.detailsElement)};GmapsInfobox.prototype.copy=function(){return new GmapsInfobox(this.infoboxElement,this.marker)};GmapsInfobox.prototype.resetMouseEvents=function(){YAHOO.util.Event.removeListener(this.infoboxElement,"click");YAHOO.util.Event.addListener(this.infoboxElement,"click",function(e){if(e.stopPropagation){e.stopPropagation()}else{e.cancelBubble=true}},this,true)};GmapsInfobox.prototype.minimize=function(){this.clearTimeouts();this.stopAnimations();this.destroyMediaElement();this.hideLargeInfoboxShadow();this.dontRedraw=true;YAHOO.util.Event.removeListener(document.getElementById("pageContainer"),"click",this.marker.hideInfobox);this.calculatePositioning();clearInterval(this.dontDragDaemon);var minimizeInfobox=new YAHOO.util.Anim(this.infoboxElement,{width:{to:this.minimizedWidth},left:{to:this.minimizedLeft},height:{to:this.minimizedHeight},top:{to:this.minimizedTop}},this.transitionDuration);var minimizeInfoboxHeight=new YAHOO.util.Anim(this.heightControlElement,{height:{to:this.minimizedInsideHeight}},this.transitionDuration);var minimizeInfoboxWidth=new YAHOO.util.Anim(this.widthControlElement,{width:{to:this.minimizedInsideWidth}},this.transitionDuration);this.animations.push(minimizeInfobox);this.animations.push(minimizeInfoboxHeight);this.animations.push(minimizeInfoboxWidth);minimizeInfobox.animate();minimizeInfoboxHeight.animate();minimizeInfoboxWidth.animate();var timeoutObject=this;setTimeout(function(){timeoutObject.map_.enableDragging();timeoutObject.size="zero"},this.transitionTimeout);if(this.openInside&&this.hasMedia){this.mediaTimeouts.push(setTimeout(function(){timeoutObject.thumbnail.style.display="none"},this.transitionTimeout))}setTimeout(function(){timeoutObject.dontRedraw=false},timeoutObject.transitionTimeout)};GmapsInfobox.prototype.deactivate=function(){clearInterval(this.dontDragDaemon);this.clearTimeouts();this.stopAnimations();this.destroyMediaElement();this.hideLargeInfoboxShadow();YAHOO.util.Event.removeListener(document.getElementById("pageContainer"),"click",this.marker.hideInfobox);this.calculatePositioning();this.infoboxElement.style.width=this.minimizedWidth+"px";this.infoboxElement.style.left=this.minimizedLeft+"px";this.infoboxElement.style.height=this.minimizedHeight+"px";this.infoboxElement.style.top=this.minimizedTop+"px";this.heightControlElement.style.height=this.minimizedInsideHeight+"px";this.widthControlElement.style.width=this.minimizedInsideWidth+"px";var timeoutObject=this;setTimeout(function(){timeoutObject.size="zero"},this.transitionTimeout);if(this.openInside&&this.hasMedia){this.thumbnail.style.display="none"}this.dontRedraw=false};GmapsInfobox.prototype.showSmall=function(){this.clearTimeouts();this.stopAnimations();if(this.thumbnail!=null){if(!this.openInside&&(this.size!="small")){this.calculatePositioning();this.infoboxElement.style.left=this.minimizedLeft+"px";this.infoboxElement.style.top=this.minimizedTop+"px"}this.dontRedraw=true;clearInterval(this.dontDragDaemon);this.map_.enableDragging();if(this.openInside){this.thumbnail.style.display="block";var showSmallInfobox=new YAHOO.util.Anim(this.infoboxElement,{width:{to:this.smallWidth},left:{to:this.left},height:{to:this.smallHeight},top:{to:this.smallTop}},this.transitionDuration)}else{var showSmallInfobox=new YAHOO.util.Anim(this.infoboxElement,{width:{to:this.smallWidth},left:{to:this.left-this.smallWidth},height:{to:this.smallHeight},top:{to:this.smallTop}},this.transitionDuration)}var showSmallInfoboxHeight=new YAHOO.util.Anim(this.heightControlElement,{height:{to:this.smallInsideHeight}},this.transitionDuration);var showSmallInfoboxWidth=new YAHOO.util.Anim(this.widthControlElement,{width:{to:this.smallInsideWidth}},this.transitionDuration);this.animations.push(showSmallInfobox);this.animations.push(showSmallInfoboxHeight);this.animations.push(showSmallInfoboxWidth);showSmallInfobox.animate();showSmallInfoboxHeight.animate();showSmallInfoboxWidth.animate();if((this.thumbnail!=null)&&this.openInside){this.thumbnail.style.display="block";this.thumbnail.style.opacity=1}var timeoutObject=this;setTimeout(function(){timeoutObject.dontRedraw=false},timeoutObject.transitionTimeout);setTimeout(function(){timeoutObject.size="small"},timeoutObject.transitionTimeout)}};GmapsInfobox.prototype.showLarge=function(){this.size="large";this.resetMouseEvents();this.clearTimeouts();this.stopAnimations();this.dontRedraw=true;YAHOO.util.Event.addListener(document.getElementById("pageContainer"),"click",this.marker.hideInfobox,this.marker,true);var timeoutObject=this;if(this.hasMedia){this.createMediaElement()}this.dontDragDaemon=setInterval(function(){timeoutObject.map_.disableDragging()},100);if(this.openInside){var showLargeInfobox=new YAHOO.util.Anim(this.infoboxElement,{width:{to:this.largeWidth},left:{to:this.left},height:{to:this.largeHeight},top:{to:this.largeTop}},this.transitionDuration)}else{var showLargeInfobox=new YAHOO.util.Anim(this.infoboxElement,{width:{to:this.largeWidth},left:{to:this.left-this.largeWidth},height:{to:this.largeHeight},top:{to:this.largeTop}},this.transitionDuration)}var showLargeInfoboxHeight=new YAHOO.util.Anim(this.heightControlElement,{height:{to:this.largeInsideHeight}},this.transitionDuration);var showLargeInfoboxWidth=new YAHOO.util.Anim(this.widthControlElement,{width:{to:this.largeInsideWidth}},this.transitionDuration);if(this.hasMedia){showLargeInfobox.onComplete.subscribe(this.marker.showLargeInfoboxShadow,this.marker,true)}this.animations.push(showLargeInfobox);this.animations.push(showLargeInfoboxHeight);this.animations.push(showLargeInfoboxWidth);showLargeInfobox.animate();showLargeInfoboxHeight.animate();showLargeInfoboxWidth.animate();if((this.thumbnail!=null)&&this.openInside){if(typeof (attachEvent)!="undefined"){this.thumbnail.style.display="none"}else{var fadeOutThumbnail=new YAHOO.util.Anim(this.thumbnail,{opacity:{to:0}},this.transitionDuration);this.animations.push(fadeOutThumbnail);fadeOutThumbnail.animate();this.showLargeTimeouts.push(setTimeout(function(){if(timeoutObject.thumbnail!=null){timeoutObject.thumbnail.style.display="none"}},timeoutObject.transitionTimeout))}}this.showLargeTimeouts.push(setTimeout(function(){timeoutObject.size="large"},timeoutObject.transitionTimeout));this.showLargeTimeouts.push(setTimeout(function(){timeoutObject.dontRedraw=false},timeoutObject.transitionTimeout))};GmapsInfobox.prototype.showLargeInfoboxShadow=function(){this.shadowElement.style.height=this.largeShadowHeight+"px";this.shadowElement.style.width=this.largeShadowWidth+"px";this.shadowElement.style.top=this.largeShadowTop+"px";this.shadowElement.style.left=this.largeShadowLeft+"px";this.shadowElement.style.display="block"};GmapsInfobox.prototype.hideLargeInfoboxShadow=function(){this.shadowElement.style.display="none";this.shadowElement.style.height="0px";this.shadowElement.style.width="0px";this.shadowElement.style.top="0px";this.shadowElement.style.left="0px"};GmapsInfobox.prototype.stopShowLargeTimeouts=function(){for(var i=0;i<this.showLargeTimeouts.length;i++){clearTimeout(this.showLargeTimeouts[i])}for(var i=0;i<this.mediaTimeouts.length;i++){clearTimeout(this.mediaTimeouts[i])}this.showLargeTimeouts=new Array();this.mediaTimeouts=new Array()};GmapsInfobox.prototype.clearTimeouts=function(){this.stopShowLargeTimeouts()};GmapsInfobox.prototype.stopAnimations=function(){for(var i=0;i<this.animations.length;i++){this.animations[i].onComplete.unsubscribe();this.animations[i].stop(false)}};GmapsInfobox.prototype.redraw=function(force){this.calculatePositioning();if(this.dontRedraw){return }switch(this.size){case"zero":this.infoboxElement.style.left=this.left+"px";this.infoboxElement.style.top=this.minimizedTop+"px";this.shadowElement.style.left=this.minimizedShadowLeft+"px";this.shadowElement.style.top=this.minimizedShadowTop+"px";break;case"small":this.infoboxElement.style.left=this.left+"px";this.infoboxElement.style.top=this.smallTop+"px";this.shadowElement.style.left=this.smallShadowLeft+"px";this.shadowElement.style.top=this.smallShadowTop+"px";break;case"large":this.infoboxElement.style.left=this.largeLeft+"px";this.infoboxElement.style.top=this.largeTop+"px";this.shadowElement.style.left=this.largeShadowLeft+"px";this.shadowElement.style.top=this.largeShadowTop+"px";break}};GmapsInfobox.prototype.calculatePositioning=function(){var markerLocation=this.marker.markerLocation;if(this.openInside){var paneXOffset=0;var paneYOffset=0}else{var mapPositioner=this.marker.markerManager.mapPositionElement;var paneYOffset=mapPositioner.style.top.replace(/px/,"")-0;var paneXOffset=mapPositioner.style.left.replace(/px/,"")-0}var xCorrection=this.xCorrection+paneXOffset;var yCorrection=this.yCorrection-paneYOffset;this.minimizedLeft=(markerLocation.x+xCorrection);this.smallLeft=this.minimizedLeft;this.largeLeft=this.minimizedLeft;this.minimizedTop=((markerLocation.y-yCorrection)-this.minimizedHeight);this.minimizedShadowTop=this.minimizedTop-this.minimizedShadowYCorrection;this.minimizedShadowLeft=this.minimizedLeft+this.minimizedShadowXCorrection;this.smallTop=((markerLocation.y-yCorrection)-this.smallHeight);this.smallShadowTop=this.smallTop-this.smallShadowYCorrection;this.smallShadowLeft=this.smallLeft+this.smallShadowXCorrection;this.largeTop=((markerLocation.y-yCorrection)-this.largeHeight);this.largeShadowTop=this.largeTop-this.largeShadowYCorrection;this.largeShadowLeft=this.largeLeft+this.largeShadowXCorrection;this.left=(markerLocation.x+xCorrection)};GmapsInfobox.prototype.toggleDetails=function(){if(this.detailsElement.style.display=="block"){this.detailsElement.style.display="none";this.detailsToggle.innerHTML='<a href="javascript:void(0);">Show Details  <img src="http://family.go.com/images/travel/map/showdetails.gif"></a>'}else{this.detailsElement=this.detailsElement.cloneNode(true);document.body.appendChild(this.detailsElement);var posX=YAHOO.util.Dom.getX(this.infoboxElement)+8;var posY=YAHOO.util.Dom.getY(this.infoboxElement)+111;YAHOO.util.Dom.addClass(this.detailsElement,"POIdetailsMedia");this.detailsElement.style.left=posX+"px";this.detailsElement.style.top=posY+"px";this.detailsElement.style.zIndex="16";this.detailsElement.style.display="block";this.detailsToggle.innerHTML='<a href="javascript:void(0);">Hide Details  <img src="http://family.go.com/images/travel/map/hidedetails.gif"></a>'}};GmapsInfobox.prototype.buildInfoboxElement=function(){this.infoboxElement=document.getElementById("gmapInfoboxTemplate").cloneNode(true);this.infoboxElement.id=null;YAHOO.util.Dom.addClass(this.infoboxElement,"infobox");this.heightControlElement=YAHOO.util.Dom.getElementsByClassName("heightControl",null,this.infoboxElement)[0];this.widthControlElement=YAHOO.util.Dom.getElementsByClassName("widthControl",null,this.infoboxElement)[0];this.infoboxContentElement=YAHOO.util.Dom.getElementsByClassName("innerContent",null,this.infoboxElement)[0];this.infoboxContentElement.innerHTML=this.sourceElement.innerHTML;if(YAHOO.util.Dom.hasClass(this.sourceElement,"placesToEat")){YAHOO.util.Dom.addClass(this.infoboxElement,"placesToEat")}else{if(YAHOO.util.Dom.hasClass(this.sourceElement,"placesToStay")){YAHOO.util.Dom.addClass(this.infoboxElement,"placesToStay")}else{YAHOO.util.Dom.addClass(this.infoboxElement,"thingToDo")}}if(!this.hasMedia){YAHOO.util.Dom.addClass(this.infoboxElement,"noMedia")}if(this.openInside&&this.hasMedia){this.mediaElement=YAHOO.util.Dom.getElementsByClassName("poiMedia",null,this.infoboxElement)[0];this.mediaElement.style.display="none"}var thumbnail=YAHOO.util.Dom.getElementsByClassName("poiThumbnail",null,this.infoboxContentElement)[0];if(this.openInside){try{var poiID=YAHOO.util.Dom.getElementsByClassName("poiID",null,this.infoboxElement)[0].innerHTML;thumbnail.src=vid_getData(poiID)[0][0];YAHOO.util.Dom.addClass(thumbnail,"transparency")}catch(e){try{thumbnail.src=""}catch(f){}}}if((thumbnail!=null)&&(thumbnail.src.search(/\.gif|\.jpg|\.png/)>-1)&&this.openInside){this.infoboxElement.appendChild(thumbnail);this.thumbnail=thumbnail;this.poiThumbnailCorner=YAHOO.util.Dom.getElementsByClassName("poiThumbnailCorner",null,this.infoboxContentElement)[0];this.infoboxElement.appendChild(this.poiThumbnailCorner)}else{if(thumbnail!=null){thumbnail.style.display="none"}this.thumbnail=null}var closebtn=YAHOO.util.Dom.getElementsByClassName("POIclose",null,this.infoboxElement)[0];YAHOO.util.Event.addListener(closebtn,"click",this.marker.hideInfobox,this.marker,true);this.detailsToggle=YAHOO.util.Dom.getElementsByClassName("poiDetailsToggle",null,this.infoboxElement)[0];YAHOO.util.Event.addListener(this.detailsToggle,"click",this.toggleDetails,this,true);this.detailsToggle.innerHTML='<a href="javascript:void(0);">Show Details  <img src="http://family.go.com/images/travel/map/showdetails.gif"></a>';this.detailsElement=YAHOO.util.Dom.getElementsByClassName("POIdetails",null,this.infoboxElement)[0]};GmapsInfobox.prototype.destroyMediaElement=function(){if(this.openInside){if(this.hasMedia){this.mediaElement.innerHTML="";this.mediaElement.style.display="none";try{document.body.removeChild(this.detailsElement);this.detailsElement=YAHOO.util.Dom.getElementsByClassName("POIdetails",null,this.infoboxElement)[0];this.detailsToggle.innerHTML='<a href="javascript:void(0);">Show Details  <img src="http://family.go.com/images/travel/map/showdetails.gif"></a>'}catch(e){}}}};GmapsInfobox.prototype.createMediaElement=function(){var timeoutObject=this;this.mediaTimeouts.push(setTimeout(function(){var mediaId=timeoutObject.mediaElement.id;var xCoord=YAHOO.util.Dom.getX(timeoutObject.infoboxElement)+8;var yCoord=YAHOO.util.Dom.getY(timeoutObject.infoboxElement)+25;timeoutObject.mediaElement=document.createElement("div");timeoutObject.mediaElement.className="poiMedia";timeoutObject.mediaElement.style.left=xCoord+"px";timeoutObject.mediaElement.style.top=yCoord+"px";timeoutObject.mediaElement.style.zIndex=4;YAHOO.util.Dom.addClass(timeoutObject.mediaElement,"activeMapMedia");document.body.appendChild(timeoutObject.mediaElement);timeoutObject.mediaElement.style.display="block";var poiID=YAHOO.util.Dom.getElementsByClassName("poiID",null,timeoutObject.infoboxElement)[0].innerHTML;var flash=new SWFObject("http://family.go.com/swf/travel/carousel/POI.swf","swf","356","290","8");flash.addVariable("poiID",poiID);flash.addParam("scale","noscale");flash.addParam("id",poiID);flash.addParam("name",poiID);flash.addParam("allowScriptAccess","always");flash.addParam("wmode","transparent");try{clearInterval(gmapsMediaInfoboxInterval)}catch(e){}flash.write(timeoutObject.mediaElement)},this.transitionTimeout*2))};GmapsInfobox.prototype.setBehaviorVariables=function(){this.transitionDuration=0.15;this.transitionTimeout=this.transitionDuration*1000};GmapsInfobox.prototype.setLayoutVariables=function(){if(this.openInside){this.xCorrection=this.marker.xCorrection+10}else{this.xCorrection=this.marker.xCorrection+15}this.yCorrection=this.marker.yCorrection+this.marker.maximizedHeight-22;this.minimizedHeight=0;this.minimizedWidth=0;this.minimizedInsideHeight=0;this.minimizedInsideWidth=0;this.smallHeight=70;this.smallWidth=99;this.smallInsideHeight=47;this.smallInsideWidth=85;if(this.openInside){if(this.hasMedia){this.largeHeight=264;this.largeWidth=375}else{this.largeHeight=150;this.largeWidth=225}}else{this.largeHeight=130;this.largeWidth=219}this.largeInsideHeight=this.largeHeight-20;this.largeInsideWidth=this.largeWidth-9;this.minimizedShadowHeight=0;this.minimizedShadowWidth=0;this.smallShadowHeight=74;this.smallShadowWidth=98;if(this.hasMedia){this.largeShadowHeight=298;this.largeShadowWidth=407}else{this.largeShadowHeight=165;this.largeShadowWidth=240}this.minimizedShadowXCorrection=5;this.minimizedShadowYCorrection=0;this.smallShadowXCorrection=-2;this.smallShadowYCorrection=3;if(this.hasMedia){this.largeShadowXCorrection=-17;this.largeShadowYCorrection=15}else{this.largeShadowXCorrection=-8;this.largeShadowYCorrection=7}this.size="zero"};function stopEvent(theEvent){if(theEvent.preventDefault){theEvent.preventDefault()}else{theEvent.returnValue=false}return false}