var PATCH_LEFT=0;function ExtInfoWindow(a,b,c,d){this.html_=c;this.marker_=a;this.infoWindowId_=b;this.options_=d==null?{}:d;this.ajaxUrl_=this.options_.ajaxUrl==null?null:this.options_.ajaxUrl;this.callback_=this.options_.ajaxCallback==null?null:this.options_.ajaxCallback;this.borderSize_=this.options_.beakOffset==null?0:this.options_.beakOffset;this.paddingX_=this.options_.paddingX==null?0+this.borderSize_:this.options_.paddingX+this.borderSize_;this.paddingY_=this.options_.paddingY==null?0+this.borderSize_:this.options_.paddingY+this.borderSize_;this.offsetLeft_=this.options_.offsetLeft==null?0:this.options_.offsetLeft;this.offsetTop_=this.options_.offsetTop==null?0:this.options_.offsetTop;this.map_=null;this.container_=document.createElement('div');this.container_.style.position='relative';this.container_.style.display='none';this.contentDiv_=document.createElement('div');this.contentDiv_.id=this.infoWindowId_+'_contents';this.contentDiv_.innerHTML=this.html_;this.contentDiv_.style.display='block';this.contentDiv_.style.visibility='hidden';this.wrapperDiv_=document.createElement('div')};ExtInfoWindow.prototype=new GOverlay();ExtInfoWindow.prototype.initialize=function(a){this.map_=a;this.defaultStyles={containerWidth:this.map_.getSize().width/2,borderSize:1};this.wrapperParts={tl:{t:0,l:0,w:0,h:0,domElement:null},t:{t:0,l:0,w:0,h:0,domElement:null},tr:{t:0,l:0,w:0,h:0,domElement:null},l:{t:0,l:0,w:0,h:0,domElement:null},r:{t:0,l:0,w:0,h:0,domElement:null},bl:{t:0,l:0,w:0,h:0,domElement:null},b:{t:0,l:0,w:0,h:0,domElement:null},br:{t:0,l:0,w:0,h:0,domElement:null},beak:{t:0,l:0,w:0,h:0,domElement:null},close:{t:0,l:0,w:0,h:0,domElement:null}};for(var i in this.wrapperParts){var b=document.createElement('div');b.id=this.infoWindowId_+'_'+i;b.style.visibility='hidden';document.body.appendChild(b);b=document.getElementById(this.infoWindowId_+'_'+i);var c=eval('this.wrapperParts.'+i);c.w=parseInt(this.getStyle_(b,'width'));c.h=parseInt(this.getStyle_(b,'height'));document.body.removeChild(b)}for(var i in this.wrapperParts){if(i=='close'){this.wrapperDiv_.appendChild(this.contentDiv_)}var d=null;if(this.wrapperParts[i].domElement==null){d=document.createElement('div');this.wrapperDiv_.appendChild(d)}else{d=this.wrapperParts[i].domElement}d.id=this.infoWindowId_+'_'+i;d.style.position='absolute';d.style.width=this.wrapperParts[i].w+'px';d.style.height=this.wrapperParts[i].h+'px';d.style.top=this.wrapperParts[i].t+'px';d.style.left=this.wrapperParts[i].l+'px';this.wrapperParts[i].domElement=d}this.map_.getPane(G_MAP_FLOAT_PANE).appendChild(this.container_);this.container_.id=this.infoWindowId_;var e=this.getStyle_(document.getElementById(this.infoWindowId_),'width');this.container_.style.width=(e==null?this.defaultStyles.containerWidth:e);this.map_.getContainer().appendChild(this.contentDiv_);this.contentWidth=this.getDimensions_(this.container_).width;this.contentDiv_.style.width=this.contentWidth+'px';this.contentDiv_.style.position='absolute';this.container_.appendChild(this.wrapperDiv_);GEvent.bindDom(this.container_,'mousedown',this,this.onClick_);GEvent.bindDom(this.container_,'dblclick',this,this.onClick_);GEvent.bindDom(this.container_,'DOMMouseScroll',this,this.onClick_);GEvent.trigger(this.map_,'extinfowindowopen');if(this.ajaxUrl_!=null){this.ajaxRequest_(this.ajaxUrl_)}};ExtInfoWindow.prototype.onClick_=function(e){if(navigator.userAgent.toLowerCase().indexOf('msie')!=-1&&document.all){window.event.cancelBubble=true;window.event.returnValue=false}else{e.stopPropagation()}};ExtInfoWindow.prototype.remove=function(){if(this.map_.getExtInfoWindow()!=null){GEvent.trigger(this.map_,'extinfowindowbeforeclose');GEvent.clearInstanceListeners(this.container_);if(this.container_.outerHTML){this.container_.outerHTML=''}if(this.container_.parentNode){this.container_.parentNode.removeChild(this.container_)}this.container_=null;GEvent.trigger(this.map_,'extinfowindowclose');this.map_.setExtInfoWindow_(null)}};ExtInfoWindow.prototype.copy=function(){return new ExtInfoWindow(this.marker_,this.infoWindowId_,this.html_,this.options_)};ExtInfoWindow.prototype.redraw=function(a){if(!a||this.container_==null)return;var b=this.contentDiv_.offsetHeight;this.contentDiv_.style.height=b+'px';this.contentDiv_.style.left=this.wrapperParts.l.w+'px';this.contentDiv_.style.top=this.wrapperParts.tl.h+'px';this.contentDiv_.style.visibility='visible';this.wrapperParts.tl.t=0;this.wrapperParts.tl.l=0;this.wrapperParts.t.l=this.wrapperParts.tl.w;this.wrapperParts.t.w=(this.wrapperParts.l.w+this.contentWidth+this.wrapperParts.r.w)-this.wrapperParts.tl.w-this.wrapperParts.tr.w;this.wrapperParts.t.h=this.wrapperParts.tl.h;this.wrapperParts.tr.l=this.wrapperParts.t.w+this.wrapperParts.tl.w;this.wrapperParts.l.t=this.wrapperParts.tl.h;this.wrapperParts.l.h=b;this.wrapperParts.r.l=this.contentWidth+this.wrapperParts.l.w;this.wrapperParts.r.t=this.wrapperParts.tr.h;this.wrapperParts.r.h=b;this.wrapperParts.bl.t=b+this.wrapperParts.tl.h;this.wrapperParts.b.l=this.wrapperParts.bl.w;this.wrapperParts.b.t=b+this.wrapperParts.tl.h;this.wrapperParts.b.w=(this.wrapperParts.l.w+this.contentWidth+this.wrapperParts.r.w)-this.wrapperParts.bl.w-this.wrapperParts.br.w;this.wrapperParts.b.h=this.wrapperParts.bl.h;this.wrapperParts.br.l=this.wrapperParts.b.w+this.wrapperParts.bl.w;this.wrapperParts.br.t=b+this.wrapperParts.tr.h;this.wrapperParts.close.l=this.wrapperParts.tr.l+this.wrapperParts.tr.w-this.wrapperParts.close.w-this.borderSize_;this.wrapperParts.close.t=this.borderSize_;this.wrapperParts.beak.l=this.borderSize_+(this.contentWidth/2)-(this.wrapperParts.beak.w/2);this.wrapperParts.beak.t=this.wrapperParts.bl.t+this.wrapperParts.bl.h-this.borderSize_;for(var i in this.wrapperParts){if(i=='close'){this.wrapperDiv_.insertBefore(this.contentDiv_,this.wrapperParts[i].domElement)}var c=null;if(this.wrapperParts[i].domElement==null){c=document.createElement('div');this.wrapperDiv_.appendChild(c)}else{c=this.wrapperParts[i].domElement}c.id=this.infoWindowId_+'_'+i;c.style.position='absolute';c.style.width=this.wrapperParts[i].w+'px';c.style.height=this.wrapperParts[i].h+'px';c.style.top=this.wrapperParts[i].t+'px';c.style.left=this.wrapperParts[i].l+'px';this.wrapperParts[i].domElement=c}var d=this.marker_;var e=this.map_;GEvent.addDomListener(this.wrapperParts.close.domElement,'click',function(){e.closeExtInfoWindow()});var f=this.map_.fromLatLngToDivPixel(this.marker_.getPoint());this.container_.style.position='absolute';var g=this.marker_.getIcon();this.container_.style.left=this.offsetLeft_+(f.x-(this.contentWidth/2)-g.iconAnchor.x+g.infoWindowAnchor.x)+'px';this.container_.style.top=this.offsetTop_+(f.y-this.wrapperParts.bl.h-b-this.wrapperParts.tl.h-this.wrapperParts.beak.h-g.iconAnchor.y+g.infoWindowAnchor.y+this.borderSize_)+'px';this.container_.style.display='block';if(this.map_.getExtInfoWindow()!=null){this.repositionMap_()}};ExtInfoWindow.prototype.resize=function(){var a=this.contentDiv_.cloneNode(true);a.id=this.infoWindowId_+'_tempContents';a.style.visibility='hidden';a.style.height='auto';document.body.appendChild(a);a=document.getElementById(this.infoWindowId_+'_tempContents');var b=a.offsetHeight;document.body.removeChild(a);this.contentDiv_.style.height=b+'px';var c=this.contentDiv_.offsetWidth;var d=this.map_.fromLatLngToDivPixel(this.marker_.getPoint());var e=this.wrapperParts.t.domElement.offsetHeight+this.wrapperParts.l.domElement.offsetHeight+this.wrapperParts.b.domElement.offsetHeight;var f=this.wrapperParts.t.domElement.offsetTop;this.wrapperParts.l.domElement.style.height=b+'px';this.wrapperParts.r.domElement.style.height=b+'px';var g=this.wrapperParts.b.domElement.offsetTop-b;this.wrapperParts.l.domElement.style.top=g+'px';this.wrapperParts.r.domElement.style.top=g+'px';this.contentDiv_.style.top=g+'px';windowTHeight=parseInt(this.wrapperParts.t.domElement.style.height);g-=windowTHeight;this.wrapperParts.close.domElement.style.top=g+this.borderSize_+'px';this.wrapperParts.tl.domElement.style.top=g+'px';this.wrapperParts.t.domElement.style.top=g+'px';this.wrapperParts.tr.domElement.style.top=g+'px';this.repositionMap_()};ExtInfoWindow.prototype.repositionMap_=function(){var a=this.map_.fromLatLngToDivPixel(this.map_.getBounds().getNorthEast());var b=this.map_.fromLatLngToDivPixel(this.map_.getBounds().getSouthWest());var c=this.map_.fromLatLngToDivPixel(this.marker_.getPoint());var d=0;var e=0;var f=this.paddingX_;var g=this.paddingY_;var h=this.marker_.getIcon().infoWindowAnchor;var i=this.marker_.getIcon().iconAnchor;var j=this.wrapperParts.t.domElement;var k=this.wrapperParts.l.domElement;var l=this.wrapperParts.b.domElement;var m=this.wrapperParts.r.domElement;var n=this.wrapperParts.beak.domElement;var o=c.y-(-h.y+i.y+this.getDimensions_(n).height+this.getDimensions_(l).height+this.getDimensions_(k).height+this.getDimensions_(j).height+this.paddingY_);if(o<a.y){e=a.y-o}else{var p=c.y+this.paddingY_;if(p>=b.y){e=-(p-b.y)}}var q=Math.round(c.x+this.getDimensions_(this.container_).width/2+this.getDimensions_(m).width+this.paddingX_+h.x-i.x);if(q>a.x){d=-(q-a.x)}else{var r=-(Math.round((this.getDimensions_(this.container_).width/2-this.marker_.getIcon().iconSize.width/2)+this.getDimensions_(k).width+this.borderSize_+this.paddingX_)-c.x-h.x+i.x);if(r<b.x){d=b.x-r-this.paddingX_}}if(d!=0||e!=0&&this.map_.getExtInfoWindow()!=null){this.map_.panBy(new GSize(d,e))}};ExtInfoWindow.prototype.ajaxRequest_=function(d){var e=this.map_;var f=this.callback_;GDownloadUrl(d,function(a,b){var c=document.getElementById(e.getExtInfoWindow().infoWindowId_+'_contents');if(a==null||b==-1){c.innerHTML='<span class="error">ERROR: The Ajax request failed to get HTML content from "'+d+'"</span>'}else{c.innerHTML=a}if(f!=null){f()}e.getExtInfoWindow().resize();GEvent.trigger(e,'extinfowindowupdate')})};ExtInfoWindow.prototype.getDimensions_=function(a){var b=this.getStyle_(a,'display');if(b!='none'&&b!=null){return{width:a.offsetWidth,height:a.offsetHeight}}var c=a.style;var d=c.visibility;var e=c.position;var f=c.display;c.visibility='hidden';c.position='absolute';c.display='block';var g=a.clientWidth;var h=a.clientHeight;c.display=f;c.position=e;c.visibility=d;return{width:g,height:h}};ExtInfoWindow.prototype.getStyle_=function(a,b){var c=false;b=this.camelize_(b);var d=a.style[b];if(!d){if(document.defaultView&&document.defaultView.getComputedStyle){var e=document.defaultView.getComputedStyle(a,null);d=e?e[b]:null}else if(a.currentStyle){d=a.currentStyle[b]}}if((d=='auto')&&(b=='width'||b=='height')&&(this.getStyle_(a,'display')!='none')){if(b=='width'){d=a.offsetWidth}else{d=a.offsetHeight}}return(d=='auto')?null:d};ExtInfoWindow.prototype.camelize_=function(a){var b=a.split('-'),len=b.length;if(len==1)return b[0];var c=a.charAt(0)=='-'?b[0].charAt(0).toUpperCase()+b[0].substring(1):b[0];for(var i=1;i<len;i++){c+=b[i].charAt(0).toUpperCase()+b[i].substring(1)}return c};GMap.prototype.ExtInfoWindowInstance_=null;GMap.prototype.ClickListener_=null;GMap.prototype.InfoWindowListener_=null;GMarker.prototype.openExtInfoWindow=function(b,c,d,e){if(b==null){throw'Error in GMarker.openExtInfoWindow: map cannot be null';return false}if(c==null||c==''){throw'Error in GMarker.openExtInfoWindow: must specify a cssId';return false}b.closeInfoWindow();if(b.getExtInfoWindow()!=null){b.closeExtInfoWindow()}if(b.getExtInfoWindow()==null){b.setExtInfoWindow_(new ExtInfoWindow(this,c,d,e));if(b.ClickListener_==null){b.ClickListener_=GEvent.addListener(b,'click',function(a){if(!a&&b.getExtInfoWindow()!=null){b.closeExtInfoWindow()}})}if(b.InfoWindowListener_==null){b.InfoWindowListener_=GEvent.addListener(b,'infowindowopen',function(a){if(b.getExtInfoWindow()!=null){b.closeExtInfoWindow()}})}b.addOverlay(b.getExtInfoWindow())}};GMarker.prototype.closeExtInfoWindow=function(a){if(a.getExtInfWindow()!=null){a.closeExtInfoWindow()}};GMap2.prototype.getExtInfoWindow=function(){return this.ExtInfoWindowInstance_};GMap2.prototype.setExtInfoWindow_=function(a){this.ExtInfoWindowInstance_=a}
GMap2.prototype.closeExtInfoWindow=function(){if(this.getExtInfoWindow()!=null){this.ExtInfoWindowInstance_.remove()}};function LabeledMarker(a,b){this.latlng_=a;this.opts_=b;this.labelText_=b.labelText||"";this.labelClass_=b.labelClass||"LabeledMarker_markerLabel";this.labelOffset_=b.labelOffset||new GSize(0,0);this.clickable_=b.clickable||true;this.title_=b.title||"";this.labelVisibility_=true;if(b.draggable){b.draggable=false}GMarker.apply(this,arguments)}
LabeledMarker.prototype=new GMarker(new GLatLng(0,0));LabeledMarker.prototype.initialize=function(c){GMarker.prototype.initialize.apply(this,arguments);this.map_=c;this.div_=document.createElement("div");this.div_.className=this.labelClass_;this.div_.innerHTML=this.labelText_;this.div_.style.position="absolute";this.div_.style.cursor="pointer";this.div_.title=this.title_;c.getPane(G_MAP_MARKER_PANE).appendChild(this.div_);if(this.clickable_){function newEventPassthru(a,b){return function(){GEvent.trigger(a,b)}}var d=['click','dblclick','mousedown','mouseup','mouseover','mouseout'];for(var i=0;i<d.length;i++){var e=d[i];GEvent.addDomListener(this.div_,e,newEventPassthru(this,e))}}}
LabeledMarker.prototype.redraw=function(a){GMarker.prototype.redraw.apply(this,arguments);var p=this.map_.fromLatLngToDivPixel(this.latlng_);var z=GOverlay.getZIndex(this.latlng_.lat());this.div_.style.left=(p.x+this.labelOffset_.width)+"px";this.div_.style.top=(p.y+this.labelOffset_.height)+"px";this.div_.style.zIndex=z}
LabeledMarker.prototype.remove=function(){GEvent.clearInstanceListeners(this.div_);if(this.div_.outerHTML){this.div_.outerHTML=""}if(this.div_.parentNode){this.div_.parentNode.removeChild(this.div_);}this.div_=null;GMarker.prototype.remove.apply(this,arguments)}
LabeledMarker.prototype.copy=function(){return new LabeledMarker(this.latlng_,this.opt_opts_)}
LabeledMarker.prototype.show=function(){GMarker.prototype.show.apply(this,arguments);if(this.labelVisibility_){this.showLabel()}else{this.hideLabel()}}
LabeledMarker.prototype.hide=function(){GMarker.prototype.hide.apply(this,arguments);this.hideLabel()}
LabeledMarker.prototype.setLabelVisibility=function(a){this.labelVisibility_=a;if(!this.isHidden()){if(this.labelVisibility_){this.showLabel()}else{this.hideLabel()}}}
LabeledMarker.prototype.getLabelVisibility=function(){return this.labelVisibility_}
LabeledMarker.prototype.hideLabel=function(){this.div_.style.visibility='hidden'}
LabeledMarker.prototype.showLabel=function(){this.div_.style.visibility='visible'}
function ZoomInControl(){}
ZoomInControl.prototype=new GControl();ZoomInControl.prototype.initialize=function(map){var container=document.createElement('div');var zoomInDiv=document.createElement('img');zoomInDiv.id='zoomInControl';zoomInDiv.src='http://s1.c4tw.net/20100901165423P/css/images/travel/googlemaps/zoomInControl.png';container.appendChild(zoomInDiv);GEvent.addDomListener(zoomInDiv,"click",function(){map.zoomIn(null,null,true);});map.getContainer().appendChild(container);return container;}
ZoomInControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(42,260));}
var YSLIDERLENGTH=133-28;var MAXZOOM=20;function ZoomSliderControl(){}
ZoomSliderControl.prototype=new GControl();ZoomSliderControl.prototype.initialize=function(map){var that=this;this.map=map;var container=document.createElement('div');container.innerHTML='<div id="zoomSliderControl"></div>';this.knob=document.createElement('img');this.knob.id='knob';this.knob.src='http://s0.c4tw.net/20100901165423P/css/images/travel/googlemaps/knob.png';container.appendChild(this.knob);this.slide=new GDraggableObject(this.knob,{container:container});map.getContainer().appendChild(container);GEvent.addListener(this.slide,'dragend',function(){that.setZoom()});GEvent.addListener(map,'zoomend',function(a,b){that.setSlider(b)});return container;}
ZoomSliderControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(42,127));}
ZoomSliderControl.prototype.setSlider=function(zoom){var top=YSLIDERLENGTH-Math.round((YSLIDERLENGTH/MAXZOOM*zoom));this.slide.top=top;this.knob.style.top=top+'px';}
ZoomSliderControl.prototype.setZoom=function(){var z=MAXZOOM-Math.round(this.slide.top*MAXZOOM/YSLIDERLENGTH);if(z<0){z=0;}
if(z>MAXZOOM){z=MAXZOOM;}
this.map.setZoom(z);}
function ZoomOutControl(){}
ZoomOutControl.prototype=new GControl();ZoomOutControl.prototype.initialize=function(map){var container=document.createElement("div");var zoomOutDiv=document.createElement('img');zoomOutDiv.id='zoomOutControl';zoomOutDiv.src='http://s0.c4tw.net/20100901165423P/css/images/travel/googlemaps/zoomOutControl.png';container.appendChild(zoomOutDiv);GEvent.addDomListener(zoomOutDiv,"click",function(){map.zoomOut(null,true);});map.getContainer().appendChild(container);return container;}
ZoomOutControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(42,102));}
function PanControl(){}
PanControl.prototype=new GControl();PanControl.prototype.initialize=function(map){var container=document.createElement("div");var PanDiv=document.createElement('img');PanDiv.id='panControl';PanDiv.src='http://s1.c4tw.net/20100901165423P/css/images/travel/googlemaps/panControl.png';container.appendChild(PanDiv);map.getContainer().appendChild(container);return container;}
PanControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(10,4));}
function PanLeftControl(){}
PanLeftControl.prototype=new GControl();PanLeftControl.prototype.initialize=function(map){var container=document.createElement("div");var panLeftDiv=document.createElement('img');panLeftDiv.id='panLeftControl';panLeftDiv.src='http://s0.c4tw.net/20100901165423P/css/images/travel/googlemaps/panLeftControl.png';container.appendChild(panLeftDiv);GEvent.addDomListener(panLeftDiv,"click",function(){map.panDirection(1,0);});map.getContainer().appendChild(container);return container;}
PanLeftControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(76,45));}
function PanRightControl(){}
PanRightControl.prototype=new GControl();PanRightControl.prototype.initialize=function(map){var container=document.createElement("div");var panRightDiv=document.createElement('img');panRightDiv.id='panRightControl';panRightDiv.src='http://s0.c4tw.net/20100901165423P/css/images/travel/googlemaps/panRightControl.png';container.appendChild(panRightDiv);GEvent.addDomListener(panRightDiv,"click",function(){map.panDirection(-1,0);});map.getContainer().appendChild(container);return container;}
PanRightControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(21,45));}
function PanResetControl(){}
PanResetControl.prototype=new GControl();PanResetControl.prototype.initialize=function(map){var container=document.createElement("div");var panResetDiv=document.createElement('img');panResetDiv.id='panResetControl';panResetDiv.src='http://s0.c4tw.net/20100901165423P/css/images/travel/googlemaps/panResetControl.png';container.appendChild(panResetDiv);GEvent.addDomListener(panResetDiv,"click",function(){map.returnToSavedPosition()});map.getContainer().appendChild(container);return container;}
PanResetControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(49,45));}
function PanTopControl(){}
PanTopControl.prototype=new GControl();PanTopControl.prototype.initialize=function(map){var container=document.createElement("div");var panTopDiv=document.createElement('img');panTopDiv.id='panTopControl';panTopDiv.src='http://s1.c4tw.net/20100901165423P/css/images/travel/googlemaps/panTopControl.png';container.appendChild(panTopDiv);GEvent.addDomListener(panTopDiv,"click",function(){map.panDirection(0,1);});map.getContainer().appendChild(container);return container;}
PanTopControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(50,74));}
function PanTopLeftControl(){}
PanTopLeftControl.prototype=new GControl();PanTopLeftControl.prototype.initialize=function(map){var container=document.createElement("div");var panTopLeftDiv=document.createElement('img');panTopLeftDiv.id='panTopLeftControl';panTopLeftDiv.src='http://s0.c4tw.net/20100901165423P/css/images/travel/googlemaps/panTopLeftControl.png';container.appendChild(panTopLeftDiv);GEvent.addDomListener(panTopLeftDiv,"click",function(){map.panDirection(1,1);});map.getContainer().appendChild(container);return container;}
PanTopLeftControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(70,67));}
function PanTopRightControl(){}
PanTopRightControl.prototype=new GControl();PanTopRightControl.prototype.initialize=function(map){var container=document.createElement("div");var panTopRightDiv=document.createElement('img');panTopRightDiv.id='panTopRightControl';panTopRightDiv.src='http://s0.c4tw.net/20100901165423P/css/images/travel/googlemaps/panTopRightControl.png';container.appendChild(panTopRightDiv);GEvent.addDomListener(panTopRightDiv,"click",function(){map.panDirection(-1,1);});map.getContainer().appendChild(container);return container;}
PanTopRightControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(36,67));}
function PanBottomControl(){}
PanBottomControl.prototype=new GControl();PanBottomControl.prototype.initialize=function(map){var container=document.createElement("div");var panBottomDiv=document.createElement('img');panBottomDiv.id='panBottomControl';panBottomDiv.src='http://s0.c4tw.net/20100901165423P/css/images/travel/googlemaps/panBottomControl.png';container.appendChild(panBottomDiv);GEvent.addDomListener(panBottomDiv,"click",function(){map.panDirection(0,-1);});map.getContainer().appendChild(container);return container;}
PanBottomControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(50,16));}
function PanBottomLeftControl(){}
PanBottomLeftControl.prototype=new GControl();PanBottomLeftControl.prototype.initialize=function(map){var container=document.createElement("div");var panBottomLeftDiv=document.createElement('img');panBottomLeftDiv.id='panBottomLeftControl';panBottomLeftDiv.src='http://s1.c4tw.net/20100901165423P/css/images/travel/googlemaps/panBottomLeftControl.png';container.appendChild(panBottomLeftDiv);GEvent.addDomListener(panBottomLeftDiv,"click",function(){map.panDirection(1,-1);});map.getContainer().appendChild(container);return container;}
PanBottomLeftControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(70,30));}
function PanBottomRightControl(){}
PanBottomRightControl.prototype=new GControl();PanBottomRightControl.prototype.initialize=function(map){var container=document.createElement("div");var panBottomRightDiv=document.createElement('img');panBottomRightDiv.id='panBottomRightControl';panBottomRightDiv.src='http://s1.c4tw.net/20100901165423P/css/images/travel/googlemaps/panBottomRightControl.png';container.appendChild(panBottomRightDiv);GEvent.addDomListener(panBottomRightDiv,"click",function(){map.panDirection(-1,-1);});map.getContainer().appendChild(container);return container;}
PanBottomRightControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(36,30));}
function ViewControl(){}
ViewControl.prototype=new GControl();ViewControl.prototype.initialize=function(map){var container=document.createElement('div');var label='';var viewControlRight=document.createElement('img');viewControlRight.id='viewControlRight';viewControlRight.src='http://s1.c4tw.net/20100901165423P/css/images/travel/googlemaps/viewControlRight.png';container.appendChild(viewControlRight);var satellite=document.createElement('div');satellite.id='viewControlSatellite';label=document.getElementById(satellite.id+'Label').innerHTML;satellite.innerHTML=label;container.appendChild(satellite);GEvent.addDomListener(satellite,'click',function(){map.setMapType(G_SATELLITE_MAP);});var viewControlSpacer=document.createElement('img');viewControlSpacer.id='viewControlSpacer';viewControlSpacer.src='http://s0.c4tw.net/20100901165423P/css/images/travel/googlemaps/viewControlSpacer.png';container.appendChild(viewControlSpacer);var hybrid=document.createElement('div');hybrid.id='viewControlHybrid';label=document.getElementById(hybrid.id+'Label').innerHTML;hybrid.innerHTML=label;container.appendChild(hybrid);GEvent.addDomListener(hybrid,'click',function(){map.setMapType(G_HYBRID_MAP);});var viewControlSpacer=document.createElement('img');viewControlSpacer.id='viewControlSpacer';viewControlSpacer.src='http://s0.c4tw.net/20100901165423P/css/images/travel/googlemaps/viewControlSpacer.png';container.appendChild(viewControlSpacer);var plan=document.createElement('div');plan.id='viewControlPlan';label=document.getElementById(plan.id+'Label').innerHTML;plan.innerHTML=label;container.appendChild(plan);GEvent.addDomListener(plan,'click',function(){map.setMapType(G_NORMAL_MAP);});var viewControlLeft=document.createElement('img');viewControlLeft.id='viewControlLeft';viewControlLeft.src='http://s0.c4tw.net/20100901165423P/css/images/travel/googlemaps/viewControlLeft.png';container.appendChild(viewControlLeft);var clear=document.createElement('div');clear.id='viewControlClear';container.appendChild(clear);map.getContainer().appendChild(container);return container;}
ViewControl.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(106,37));}
function MapController(){var
_aDispo=null,aMap={},icon,customIcons;MapController.load=function(sIdMap,aPoints){_aDispo=aPoints;load(sIdMap);};MapController.closeExtInfoWindow=function(sIdMap){aMap[sIdMap].closeExtInfoWindow();};window.load=function(sIdMap){if(GBrowserIsCompatible()){$('#'+sIdMap+'.googlemaps').each(function(p){var
oMap=this,map;if(!isset(aMap[sIdMap])){aMap[sIdMap]=new GMap2(oMap);map=aMap[sIdMap];if(oMap.id!='resortSmall'){addControls(map);}else{aMap[sIdMap].disableDragging();}
aMap[sIdMap].setCenter(new GLatLng(0,0),0);icon=new GIcon();icon.image='http://s0.c4tw.net/20100901165423P/css/images/travel/googlemaps/marker.png';icon.iconSize=new GSize(31,53);icon.iconAnchor=new GPoint(4,50);icon.infoWindowAnchor=new GPoint(4,0);customIcons={orangeFlag:icon};}else{aMap[sIdMap].clearOverlays();}
map=aMap[sIdMap];var bounds=new GLatLngBounds();var _aPoints=_aDispo==null?$('li div.mid, .tr-info'):_aDispo;_aPoints.each(function(p){var e=$(this);var latitude=$('#hotel'+e.attr('id')+'-latitude').html();var longitude=$('#hotel'+e.attr('id')+'-longitude').html();var point=new GLatLng(latitude,longitude);bounds.extend(point);var hotelType=$('#hotel'+e.attr('id')+'-type');var hotelNumber=$('#hotel'+e.attr('id')+'-number');var number=hotelNumber.html();var offset_x,offset_y;if(number<10){offset_x=5;offset_y=-42;}else if(number<100){offset_x=2;offset_y=-42;}else{offset_x=0;offset_y=-42;}
opts={'icon':icon,'clickable':true,'labelText':number,'labelClass':'labeledmarker','labelOffset':new GSize(offset_x,offset_y)};var marker=new LabeledMarker(point,opts);if(oMap.id!='resortSmall'&&oMap.id!='resortLarge'){var hotelName=$('#hotel'+e.attr('id')+'-name');var hotelAddress=$('#hotel'+e.attr('id')+'-address');var hotelImageBig=$('#hotel'+e.attr('id')+'-image-big');var hotelPartner=$('#hotel'+e.attr('id')+'-partner');var hotelPrice=$('#hotel'+e.attr('id')+'-price');var hotelStars=$('#hotel'+e.attr('id')+'-stars');var hotelRooms=$('#hotel'+e.attr('id')+'-rooms');var hotelAvailability=$('#hotel'+e.attr('id')+'-available');var hotelDescription=$('#hotel'+e.attr('id')+'-description');var hotelButton=$('#hotel'+e.attr('id')+'-button');var hotelNumber=$('#hotel'+e.attr('id')+'-number');var smallHtml='<div id="content">'.concat('<h3>',truncateText(hotelName.html(),50,' ...'),'</h3>','<span class="',hotelStars.attr('class'),'"></span>','<div class="price hover-price">',hotelPrice.html(),'</div>','</div>');var largeHtml='<div id="content">';if(hotelAvailability&&hotelAvailability.html()){largeHtml=largeHtml.concat('<h3>',hotelNumber.html(),'. <a href="',hotelButton.children("a").attr('href'),'" onclick="return oDC.open(this.href);">',truncateText(hotelName.html(),40,' ...'),'</a></h3>')}
else{largeHtml=largeHtml.concat('<h3>',hotelNumber.html(),'. <a href="',hotelName.attr('href'),'" title="',hotelName.attr('title'),'">',truncateText(hotelName.html(),40,' ...'),'</a></h3>')}
largeHtml=largeHtml.concat('<span class="',hotelStars.attr('class'),'"></span>');if(hotelRooms&&hotelRooms.html()){largeHtml=largeHtml.concat('<div class="rooms">',hotelRooms.html(),'</div>');}
largeHtml=largeHtml.concat('<div class="address">',hotelAddress.html(),'</div>');if(hotelAvailability&&hotelAvailability.html()){largeHtml=largeHtml.concat(tmpl("map_with_rooms_tpl",oDC.getHotelById(e.attr('id').substr(1))));}
largeHtml=largeHtml.concat('<div style="clear:both"></div>','<div class="separator"></div>','<div class="left">','<div class="image">','<a href="',hotelImageBig.attr('href'),'" title="',hotelImageBig.attr('title'),'">',hotelImageBig.html(),'</a>','</div>','</div>','<div class="right">');if(!hotelAvailability||!hotelAvailability.html()){largeHtml=largeHtml.concat('<div class="merchant">','<div class="rate">'+hotelPrice.html()+'</div>',hotelPartner.html(),'<div class="separator"></div>','</div>');}
largeHtml=largeHtml.concat('<div class="description">',hotelDescription.html(),'</div>',hotelButton.html(),'</div>');var handler=createMarkerClickHandler(marker,map,'largeWindow',largeHtml,{beakOffset:0,offsetLeft:265,paddingX:280,offsetTop:65,paddingY:65},point);GEvent.addListener(marker,'click',handler);$('#h-map'+e.attr('id')).click(handler);$('#hotel'+e.attr('id')+'-number').click(handler);GEvent.addListener(marker,'mouseover',function(){infoWindow=map.getExtInfoWindow();if(infoWindow){infoWindowBeak=infoWindow.wrapperParts.beak.domElement;if(infoWindowBeak.id=='smallWindow_beak'){marker.openExtInfoWindow(map,'smallWindow',smallHtml,{beakOffset:0,offsetLeft:120,paddingX:120,offsetTop:71,paddingY:71});}}
else{marker.openExtInfoWindow(map,'smallWindow',smallHtml,{beakOffset:0,offsetLeft:162,paddingX:162,offsetTop:66,paddingY:66});}});GEvent.addListener(marker,'mouseout',function(){infoWindow=map.getExtInfoWindow();if(infoWindow){infoWindowBeak=infoWindow.wrapperParts.beak.domElement;if(infoWindowBeak.id=='smallWindow_beak'){map.closeExtInfoWindow();}}});}
else if(oMap.id=='resortSmall'){GEvent.addListener(marker,'click',function(){loadResortLarge();});}
map.addOverlay(marker);});var zoom=13;var oMapCenter;if(oMap.id=='searchLarge'&&typeof(aGeolocAirport)!='undefined')
{oPointAirport=new GLatLng(aGeolocAirport.lat,aGeolocAirport.lon);zoom=doDrawCircle(map,oPointAirport,aGeolocAirport.distance);oIconAirport=new GIcon();oIconAirport.image='http://s1.c4tw.net/20100901165423P/css/images/travel/googlemaps/airport-icon.png';oIconAirport.iconSize=new GSize(40,46);oIconAirport.iconAnchor=new GPoint(20,46);oMarkerAirport=new GMarker(oPointAirport,oIconAirport);map.addOverlay(oMarkerAirport);oMapCenter=oPointAirport;}
else
{if(_aPoints.length!=1)
zoom=map.getBoundsZoomLevel(bounds);oMapCenter=bounds.getCenter();}
map.setZoom(zoom);map.setCenter(oMapCenter);map.savePosition();});}};}
var circleColor="#18b0db";var circleBorder="2";var circleOpacity="1";var discColor="#16afdb";var discOpacity=".16";function doDrawCircle(map,center,radius)
{var latConv=center.distanceFrom(new GLatLng(center.lat()+0.1,center.lng()))/100;var lngConv=center.distanceFrom(new GLatLng(center.lat(),center.lng()+0.1))/100;var circlePoints=[];bounds=new GLatLngBounds();for(var i=0;i<=361;i++)
{var point=new GLatLng(center.lat()+(radius/latConv*Math.cos(i*Math.PI/180)),center.lng()+(radius/lngConv*Math.sin(i*Math.PI/180)));circlePoints.push(point);bounds.extend(point);}
circle=new GPolygon(circlePoints,circleColor,circleBorder,circleOpacity,discColor,discOpacity);map.addOverlay(circle);return map.getBoundsZoomLevel(bounds);}
new MapController();function addControls(map){map.enableContinuousZoom();map.addControl(new ZoomInControl());map.addControl(new ZoomSliderControl());map.addControl(new ZoomOutControl());map.addControl(new PanControl());map.addControl(new PanLeftControl());map.addControl(new PanRightControl());map.addControl(new PanResetControl());map.addControl(new PanTopControl());map.addControl(new PanBottomControl());map.addControl(new PanTopLeftControl());map.addControl(new PanTopRightControl());map.addControl(new PanBottomLeftControl());map.addControl(new PanBottomRightControl());map.addControl(new ViewControl());map.addControl(new ViewControl());map.addControl(new GScaleControl());}
function createMarkerClickHandler(marker,map,cssId,html,options,point){return function(){googleMapsSlideDown($('#results-map .animation'));marker.openExtInfoWindow(map,cssId,html,options);return true;};}
function truncateText(string,size,cesure){if(string&&size>0){if(string.length<=size){return string;}
var s=0;var words1=new Array();var words=string.split(' ');var wordsSize=words.length;for(w=0;w<wordsSize;++w){s+=words[w].length;if(s<size){words1[w]=words[w];}
else{break;}}
return words1.join(' ')+cesure;}
return'Javascript [map.js] : Wrong usage of the truncateText function !';}