var DEFAULT_MAP_COLOR="dddddd";var options={};options.month=["Anytime","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];options.tag=["(none)","Beaches","Camping","Churches & Cathedrals","Cycling","Monuments","Mountaineering","Museums","Nightlife","Parks","Restaurants","Ruins","Scuba diving","Shopping","Skiing","Surfing","Temples","Wildlife"];var myMap;var regionSelector;var lastSelector;var lastGeoSelected=[];var infoPopupActive,infoPopupInactive;var flashMap;var topGuides;var colorCodes=[];var bestTimes={};var query={};query.month=1+(new Date().getMonth()+3)%12;var slideshow,newsRenderer;var lastPos=new Array(100,100);var overInfo=false;var demoMode=true;var demoIndex=-1;var MapProjection=new Object();MapProjection.ZOOM=1;MapProjection.TILE_SIZE=256;MapProjection.tiles=Math.pow(2,MapProjection.ZOOM);MapProjection.radius=MapProjection.TILE_SIZE*MapProjection.tiles/(2*Math.PI);MapProjection.gps2pix=function(C,B){C=(C*Math.PI)/180;B=(B*Math.PI)/180;var A=MapProjection.radius*B;var D=MapProjection.radius/2*Math.log((1+Math.sin(C))/(1-Math.sin(C)))*-1;A=Math.round(A);D=Math.round(D);return[A,D]};YAHOO.util.Event.onAvailable("slideshowArea",function(){var A="/services/Listings?event=getInterests&mostPopular=true&mode=bigPic";slideshow=new Slideshow(A,$("slideshowArea"),{showName:true,showLocation:true,randomize:true})});YAHOO.util.Event.onAvailable("countrySelector",function(){var A=$("flashMap");var B=YAHOO.util.Dom.getXY("flashMap");B[0]+=300;B[1]+=A.offsetHeight-60;YAHOO.util.Dom.setXY("countrySelector",B);YAHOO.util.Event.addListener(document.form.countryName,"change",goGuide)});YAHOO.util.Event.onDOMReady(initHome);function initHome(){try{var A=1+Math.round(Math.random()*(options.tag.length-2));query.tag1=options.tag[A];document.getElementById("tag1").firstChild.innerHTML=query.tag1;regionSelector=new MapRegionSelector(document.form.countryName,null,null);infoPopupActive=document.getElementById("infoPopup1");infoPopupInactive=document.getElementById("infoPopup2");flashMap=YAHOO.util.Dom.get("flashMap");if(!flashMap){return }disableSelection(flashMap);YAHOO.util.Event.addListener(document.body,"mousemove",function(D){lastPos=YAHOO.util.Event.getXY(D);mapPos=YAHOO.util.Dom.getXY(flashMap)});YAHOO.util.Event.addListener(document.body,"click",function(D){var E=YAHOO.util.Event.getXY(D);pos=YAHOO.util.Dom.getXY(lastSelector);elem=YAHOO.util.Dom.get("selector");if(!(E[0]>pos[0]&&E[0]<pos[0]+elem.offsetWidth&&E[1]>pos[1]&&E[1]<pos[1]+elem.offsetHeight)&&document.getElementById("selector").style.display==""){document.getElementById("selector").style.display="none"}});YAHOO.util.Event.addListener(flashMap,"mouseleave",function(D){setTimeout(function(){if(!overInfo){closePopup()}},500)});YAHOO.util.Event.addListener(infoPopupActive,"mouseleave",function(D){closePopup()});YAHOO.util.Event.addListener(infoPopupActive,"mouseenter",function(D){overInfo=true});YAHOO.util.Event.addListener("tag1","click",function(D){openSelector("tag1",D)});YAHOO.util.Event.addListener("month","click",function(D){openSelector("month",D)});var C=query.month;document.getElementById("month").firstChild.innerHTML=options.month[C];myMap=new VectorMap("flashMap","#d3d3d3");refreshMap()}catch(B){alert(B)}}function selectItem(E){var B=lastSelector.replace(/\d+/,"");var A=options[B];var C=A[E];document.getElementById(lastSelector).firstChild.innerHTML=C;if(lastSelector=="month"){query.month=E}else{if(C=="(none)"){C=null}query[lastSelector]=C}var D=document.getElementById("selector");D.style.display="none";lastSelector=null;demoMode=false;refreshMap()}function closePopup(){infoPopupActive.style.display="none";overInfo=false}function interestControlClicked(){demoMode=false;demoIndex=-1;closePopup()}var mapLoadTime;function openSelector(E,A){if(E==lastSelector&&document.getElementById("selector").style.display=="block"){document.getElementById("selector").style.display="none";return }lastSelector=E;var C=lastSelector.replace(/\d+/,"");var B=options[C];var F="";for(var D=0;D<B.length;D++){F+="<div class='selectItem' onclick='selectItem("+D+")'>"+B[D]+"</div>"}var G=document.getElementById("selector");G.innerHTML=F;G.style.display="block";var H=YAHOO.util.Dom.getXY(lastSelector);H[0]+=2;H[1]+=33;YAHOO.util.Dom.setXY(G,H);YAHOO.util.Event.stopEvent(A)}function showMapLoading(){var D=YAHOO.util.Dom.get("mapLoading");D.style.display="";var A=630;var B=344;var C=YAHOO.util.Dom.getXY(flashMap);C[0]+=A/2-D.offsetWidth/2;C[1]+=20;YAHOO.util.Dom.setXY(D,C);setTimeout(function(){YAHOO.util.Dom.setStyle("mapLoading","display","none")},3000)}function mapReadyHandler(){showMapLoading();var A="/ui/map/alpha.gvd";myMap.init(A,colorCodes,"","updateViewHandler");myMap.enableMouseover("mouseoverCountry","ffcc00");myMap.enableSelection("selectMapRegionHandler");myMap.enableExploring("exploreHandler",20,1)}function exploreHandler(){}function zoomIn(){myMap.zoomIn()}function zoomOut(){myMap.zoomOut()}function mouseoverCountry(A){demoMode=false;lastCountry=A;displayCountryInfo()}var mapContents={};function getPopupContents(D){if(mapContents[D]){return mapContents[D]}var K=D.toLowerCase();if(K=="us011"){K="us"}else{if(K=="us002"){K="us"}}var E="<div class='score-header'><div class='flag imgflags_"+K+"'></div> "+MapRegionSelector.getNameUsingCode(D)+"</div>";var M=bestTimes[D];if(M!=null){var B="";for(var J=0;J<M.scores.length;J++){var G=M.scores[J];var L=Math.round(G.value);var A=G.name;if(A=="Time of year"){A="Traveling in "+options.month[query.month];label=getLabel(L,BEST_SCORE_MONTH)}else{if(SUMMER_TAGS.indexOf(A)>=0||WINTER_TAGS.indexOf(A)>=0){A=A+" in "+options.month[query.month]}label=getLabel(L,BEST_SCORE_ACTIVITY)}B+="<div class='score-info'><div class='score-name'>"+A+": "+label+"</div><div class='score-frame'><div class='score-scale' style='width:"+L*1.5+"px'></div></div></div>"}var H="<div class='score-photo-strip'>";for(var J=0;J<M.attractions.length;J++){var F=M.attractions[J];H+="<a href='"+F.url+"'><img src='"+F.photoUrl+"' title='"+escapeQuote(F.name)+"'></a>"}H+="</div>";E+=H;E+="<div class='score-info-scores'>";E+="<div class='score-top-label'><span>"+getLabel(M.rating,BEST_SCORE_OVERALL)+"</span> destination overall</div>";E+=B;var C="";for(var J=0;J<M.cities.length;J++){var I=M.cities[J];C+="<div><a href='"+I.url+"'>"+escapeQuote(I.name)+"</a></div>"}E+="</div>";if(C){E+="<div class='score-info-cities'><div class='score-city-label'>Top Cities</div>"+C+"</div>"}}mapContents[D]=E;return E}function displayCountryInfo(E,C){if(!E){E=lastPos}var D=lastCountry;var B=getPopupContents(D);infoPopupInactive.innerHTML=B;var A=(demoMode)?DEMO_DELAY:300;setTimeout(function(){if(overInfo){return }infoPopupActive.innerHTML=infoPopupInactive.innerHTML;infoPopupActive.style.display="block";YAHOO.util.Dom.setXY(infoPopupActive,[E[0]+20,E[1]+20]);if(C){myMap.updateColors(C)}if(demoMode){setTimeout(showCountryInfoDemo,1000)}},A)}function updateViewHandler(){mapLoadTime=new Date().getTime();var B="";B+="<div class='pair'><div class='color-block' style='background-color:#"+getColorByRating(100)+"'></div>Great Time</div>";B+="<div class='pair'><div class='color-block' style='background-color:#"+getColorByRating(52)+"'></div>OK Time</div>";B+="<div class='pair'><div class='color-block' style='background-color:#"+getColorByRating(33)+"'></div>Not Ideal</div>";var C=YAHOO.util.Dom.get("legend");C.innerHTML="<div id='legendHolder'>"+B+"</div>";YAHOO.util.Dom.setStyle(C,"display","");var A=YAHOO.util.Dom.get("exploreControls");A.style.display=""}function selectMapRegionHandler(B){logAction("hcl","nav-click",true);var A=MapRegionSelector.getIdUsingCode(B);if(A){window.location="/Guides?guide="+A}}function refreshMap(){showMapLoading();var C="month="+query.month;var B=[];if(query.tag1){B.push(query.tag1)}if(B.length>0){C+="&tagNames="+encode(B.join(","))}var A="/Home/?event=getBestTimeForTags&"+C;YAHOO.util.Connect.asyncRequest("GET",A,{success:function(F){var D=JSON.parse(F.responseText);topGuides=[];var I=0;for(var H=0;H<D.length;H++){var E=D[H];var J=0;var I=0;var O=null;E.scores.sort(function(R,Q){if(R.name=="Time of year"){return 1}else{if(Q.name=="Time of year"){return -1}else{if(R<Q){return -1}else{if(R>Q){return 1}else{return 0}}}}});for(var G=0;G<E.scores.length;G++){if(E.scores[G].name=="Time of year"){O=E.scores[G]}}var K=(O)?O.value:null;var P=scoreToSeason(E.scores[0],K);var N=scoreToSeason(E.scores[1],K);if(E.scores.length==3){var M=P*N/100;var L=P*N*K/10000;E.rating=0.3*P+0.3*N+0.1*K+0.2*M+0.1*L}else{if(E.scores.length==2&&O){var L=P*K/100;E.rating=0.6*P+0.1*K+0.3*L}else{if(E.scores.length==2){var M=P*N/100;E.rating=0.3*P+0.3*N+0.4*M}else{if(E.scores.length==1&&O){E.rating=K}else{E.rating=P}}}}E.rating=Math.round(E.rating);if(E.rating>=66){topGuides.push(E.country)}}renderBestTimes(D);if(topGuides.length>0){showCountryInfoDemo()}else{}},failure:function(D){}});logAction("hcl",firstTime);firstTime=false}var firstTime=true;function scoreToSeason(B,A){if(B==null){return 0}if(A==null){return B.value}if(WINTER_TAGS.indexOf(B.name)>=0){B.value=B.value*(100-A)/100}else{if(SUMMER_TAGS.indexOf(B.name)>=0){B.value=B.value*A/100}}return B.value}var SUMMER_TAGS=["Beaches","Camping","Cycling","Mountaineering","Parks","Scuba diving","Surfing"];var WINTER_TAGS=["Skiing"];function renderBestTimes(F){for(var C=0;C<colorCodes.length;C++){colorCodes[C][1]=DEFAULT_MAP_COLOR}for(var C=0;C<F.length;C++){var D=F[C];var E=D.country;bestTimes[E]=D;var B=getColorByRating(D.rating);colorCodes.push(new Array(E,B))}mapContents={};if(myMap){if(mapLoadTime){var A=new Date().getTime()-mapLoadTime;mapLoadTime=null;if(A<1000){setTimeout(renderColors,(1000-A))}else{renderColors()}}else{renderColors()}}}var DEMO_DELAY=3000;function showCountryInfoDemo(){var A=[];if(demoIndex>=0){var B=topGuides[demoIndex];var D=DEFAULT_MAP_COLOR;for(var E=0;E<colorCodes.length;E++){if(colorCodes[E][0]==B){D=colorCodes[E][1];break}}A.push([B,D])}demoIndex++;if(demoIndex>=Math.min(5,topGuides.length)){demoMode=false;setTimeout(function(){closePopup()},DEMO_DELAY)}if(!demoMode){myMap.updateColors(A);return }var B=topGuides[demoIndex];A.push([B,"ffcc00"]);lastCountry=B;try{var C=MapRegionSelector.lookupInfo(B);var H=C[1];var J=C[2];var F=MapProjection.gps2pix(H,J);var I=YAHOO.util.Dom.getXY(flashMap);I[0]+=flashMap.offsetWidth/2;I[1]+=flashMap.offsetHeight/2;I[0]+=F[0];I[1]+=F[1];displayCountryInfo(I,A)}catch(G){alert(G)}}function renderColors(){myMap.updateColors(colorCodes);YAHOO.util.Dom.setStyle("mapLoading","display","none")}function goGuide(){logAction("hcl","nav-GO",true);var A=document.form.countryName.value;if(A){window.location="/Guides?guide="+MapRegionSelector.getIdUsingCode(A)}}function offMap(){if(myMap){myMap.mouseCallback("out")}}function getLabel(C,B){for(var A=0;A<B.length;A++){if(C>=B[A].score){return B[A].label}}return""}function getColorByRating(C){var B=BEST_SCORE_OVERALL;for(var A=0;A<B.length;A++){if(C>=B[A].score){return B[A].color}}return B[B.length-1].color}var BEST_SCORE_OVERALL=[{score:100,label:"Perfect",color:"62aa00"},{score:81,label:"Excellent",color:"77bb00"},{score:66,label:"Great",color:"8ac620"},{score:56,label:"Pretty good",color:"9dd140"},{score:51,label:"Ok",color:"b0dc60"},{score:41,label:"So-so",color:"c3e780"},{score:0,label:"Not ideal",color:"d3d3d3"}];var BEST_SCORE_MONTH=[{score:100,label:"Great"},{score:50,label:"Ok"},{score:0,label:"Not ideal"},];var BEST_SCORE_ACTIVITY=[{score:100,label:"Phenomenal"},{score:75,label:"Great"},{score:50,label:"Alright"},{score:25,label:"So-so"},{score:0,label:"Not ideal"}];
