// (c) 2009 Hoteliers.com

(function($){var opts={},imgPreloader=new Image,imgTypes=['png','jpg','jpeg','gif'],loadingTimer,loadingFrame=1;var lastBounds="";var morebtn="",totalText="",indicationText="",ext="",reviewText="",noscoreText="",gLanguage="",numRooms="",smallestRoom="",biggestRoom="",maxNumGuests="",roomPrice="";var loadID;var selMarker;var globalsLoaded=false;var globallabels=[];var globalCount;var globalCurrent=0;var cityHotels=[];var cityCount;var cityCurrent=0;var WoHotels=[];var WoCount;var WoCurrent=0;var hotelPointsAll=[];$.fn.meetingbox=function(settings){opts.settings=$.extend({},$.fn.meetingbox.defaults,settings);$.fn.meetingbox.init();return this.each(function(){var $this=$(this);var o=$.metadata?$.extend({},opts.settings,$this.metadata()):opts.settings;$this.unbind('click').click(function(){$.fn.meetingbox.start(this,o);return false;});});};$.fn.meetingbox.start=function(el,o){globalsLoaded=false;globallabels=[];globalCount;globalCurrent=0;cityHotels=[];cityCount;cityCurrent=0;WoHotels=[];WoCount;WoCurrent=0;hotelPointsAll=[];if(opts.animating)return false;if(o.overlayShow){$("#fancy_wrap").prepend('<div id="fancy_overlay"></div>');$("#fancy_overlay").css({'width':$(window).width(),'height':$(document).height(),'opacity':o.overlayOpacity});if($.browser.msie){$("#fancy_wrap").prepend('<iframe id="fancy_bigIframe" scrolling="no" frameborder="0"></iframe>');$("#fancy_bigIframe").css({'width':$(window).width(),'height':$(document).height(),'opacity':0});}
$("#fancy_overlay").click($.fn.meetingbox.close);}
opts.itemArray=[];opts.itemNum=0;var item={url:el.href,title:el.title,o:o};if(o.zoomSpeedIn>0||o.zoomSpeedOut>0){var c=$(el).children("img:first").length?$(el).children("img:first"):$(el);item.orig={'width':c.width(),'height':c.height(),'pos':$.fn.meetingbox.getPosition(c)}}
opts.itemArray.push(item);$.fn.meetingbox.changeItem(opts.itemNum,el.rel);};$.fn.meetingbox.changeItem=function(n,rel){$.fn.meetingbox.showLoading();$("#fancy_nav").empty();$("#fancy_outer").stop();$("#fancy_title").hide();$(document).unbind("keydown");imgRegExp=imgTypes.join('|');imgRegExp=new RegExp('\.'+imgRegExp+'$','i');$.fn.meetingbox.showItem('<div id="fancy_div"><div id="map_pop" style="width: 600px; height: 400px;"></div></div>');$.fn.meetingbox.showMap(rel);};$.fn.meetingbox.showMap=function(rel){var arrOpts=rel.split(",");var zoom=parseInt(arrOpts[2])+2;$("#map_pop").jmap('init',{'mapType':'map','mapCenter':[arrOpts[0],arrOpts[1]],'mapZoom':parseInt(zoom),'language':arrOpts[4]},function(map,element,options){lastBounds=map.getBounds();GEvent.addListener(map,"dragend",function(){$.fn.meetingbox.getHotelsByBounds(map);});GEvent.addListener(map,"zoomend",function(oldZoom,newZoom){if(newZoom<13&&!globalsLoaded){globalsLoaded=true;$.fn.meetingbox.loadOverview(arrOpts[4]);}});});$("#map_pop").jmap('CreateMarkerManager',{'markerManager':'MarkerManager'});$.fn.meetingbox.getSettings(arrOpts[4]);if(arrOpts.length==6){$.fn.meetingbox.getHotelsById(arrOpts[4],arrOpts[5]);$.fn.meetingbox.loadHotelsByCityWoId(arrOpts[3],arrOpts[4],arrOpts[5]);}else{$.fn.meetingbox.loadHotelsByCity(arrOpts[3],arrOpts[4]);}};$.fn.meetingbox.getHotelsByBounds=function(map){if($.fn.meetingbox.checkUpdate(lastBounds,map.getBounds())){lastBounds=map.getBounds();$.fn.meetingbox.showLoading();$.fn.meetingbox.loadHotelsByLatLng($.fn.meetingbox.getLatLngForViewPort(map.getBounds()));}};$.fn.meetingbox.getLatLngForViewPort=function(bounds){var NElat=bounds.getNorthEast().lat();var NElng=bounds.getNorthEast().lng();var SWlat=bounds.getSouthWest().lat();var SWlng=bounds.getSouthWest().lng();var minNElat=NElat-(SWlat-NElat);var maxSWlat=SWlat+(SWlat-NElat);var minNElng=NElng-(SWlng-NElng);var maxSWlng=SWlng+(SWlng-NElng);return"NElat="+maxSWlat+"&NElng="+maxSWlng+"&SWlat="+minNElat+"&SWlng="+minNElng;};$.fn.meetingbox.getSettings=function(language){$.getJSON("/getmeetings.php?lng="+language+"&getSettings=1",function(json)
{ext=json.ext;morebtn=json.morebtn;gLanguage=language;numRooms=json.numRooms;smallestRoom=json.smallestRoom;biggestRoom=json.biggestRoom;maxNumGuests=json.maxNumGuests;roomPrice=json.roomPrice;});};$.fn.meetingbox.loadOverview=function(language){$.fn.meetingbox.showLoading();$.getJSON("/getmeetings.php?lng="+language,function(json)
{for(i=0;i<json.length;i++){globallabels.push(json[i]);}
globalCount=globallabels.length;setTimeout("$.fn.meetingbox.getGlobals()",10);});};$.fn.meetingbox.getGlobals=function(){globalCurrent=globalCurrent+5;marker=[];for(i=0;i<5;i++){marker[i]=globallabels.pop();}
for(i=0;i<marker.length;i++){var lat=marker[i].xcoord;var lng=marker[i].ycoord;$('#map_pop').jmap('AddMarker',{'pointLatLng':[lat,lng],'pointMinZoom':parseInt(marker[i].minZoom),'pointMaxZoom':parseInt(marker[i].maxZoom),'numHotels':parseInt(marker[i].numHotels)},function(marker,options){GEvent.addListener(marker,"click",function(){var lat=options.pointLatLng[0];var lng=options.pointLatLng[1];$('#map_pop').jmap('MoveTo',{'mapCenter':[lat,lng],'mapZoom':options.pointMaxZoom+1});});});}
if(globalCurrent<globalCount){setTimeout("$.fn.meetingbox.getGlobals()",10);}else{$("#fancy_loading").hide();}};$.fn.meetingbox.loadHotelsByCity=function(city,language){cityCurrent=0;cityCount=0;cityHotels=[];$.getJSON("/getmeetings.php?lng="+language+"&city="+city,function(json)
{if(json!=null){for(i=0;i<json.length;i++)
{if(!$.fn.meetingbox.array_key_exists(json[i].ID,hotelPointsAll)){hotelPointsAll[json[i].ID]=json[i];cityHotels.push(json[i]);}}
cityCount=cityHotels.length;setTimeout("$.fn.meetingbox.getHotelsByCity()",10);}});};$.fn.meetingbox.getHotelsByCity=function(){marker=[];if(cityCount-cityCurrent<5){var amount=cityCount-cityCurrent;for(i=0;i<amount;i++){marker[i]=cityHotels.pop();}}else{for(i=0;i<5;i++){marker[i]=cityHotels.pop();}}
cityCurrent=cityCurrent+5;for(i=0;i<marker.length;i++){var lat=marker[i].ycoord/100000;var lng=marker[i].xcoord/100000;var stars=marker[i].nrofStars;var sStars="";if(stars>0)
{if(stars>1)
{for(s=0;s<stars-1;s++)
{sStars+="<img src='/_mainimg/starHomeWhite.gif'/>";}
sStars+="<img src='/_mainimg/starHomeWhite.gif' style='margin-right: 10px;'/>";}
else
{sStars+="<img src='/_mainimg/starHomeWhite.gif' style='margin-right: 10px;'/>";}}
var hotelHTML="<span class='iwstyle'><strong><a href='http://www.hoteliers."+ext+marker[i].hoteluri+"meetings/'>"+marker[i].name+"</a> "+sStars+'</strong><br/>';hotelHTML+="<a href='http://www.hoteliers."+ext+marker[i].hoteluri+"meetings/'><img src='http://images.hoteliers.com/mfacclipped/"+marker[i].meetingImage+"' style='float: left; padding-right: 3px; display: block; border: none;'/></a>";hotelHTML+="<div style='width:190px; float: left; overflow:auto;'>"+marker[i].infotxt+"</div><br style='clear: both;'/>";hotelHTML+="<table width='250px'>";hotelHTML+="<tr><td style='font-weight: bold;'>"+numRooms+": </td><td>"+marker[i].nrofMeetingrooms+"</td></tr>";hotelHTML+="<tr><td style='font-weight: bold;'>"+smallestRoom+": </td><td>"+marker[i].smallestroom+"</td></tr>";hotelHTML+="<tr><td style='font-weight: bold;'>"+biggestRoom+": </td><td>"+marker[i].largestroom+"</td></tr>";hotelHTML+="<tr><td style='font-weight: bold;'>"+maxNumGuests+": </td><td>"+marker[i].maxguests+"</td></tr>";hotelHTML+="<tr><td align='right' style='padding-bottom: 5px;' colspan='2'><a href='http://www.hoteliers."+ext+marker[i].hoteluri+"meetings/'><img src='http://www.hoteliers.com/_mainimg/"+morebtn+"'/></a></td></tr>";hotelHTML+="</table></span>";$('#map_pop').jmap('AddMarker',{'pointLatLng':[lat,lng],'pointHTML':hotelHTML,'pointMinZoom':13,'pointMaxZoom':17});}
if(cityCurrent<cityCount){setTimeout("$.fn.meetingbox.getHotelsByCity()",10);}else{$("#fancy_loading").hide();}};$.fn.meetingbox.loadHotelsByCityWoId=function(city,language,id){WoCount=0;WoCurrent=0;WoHotels=[];$.getJSON("/getmeetings.php?lng="+language+"&city="+city+"&skipID="+id,function(json)
{if(json!=null){for(i=0;i<json.length;i++)
{if(!$.fn.meetingbox.array_key_exists(json[i].ID,hotelPointsAll)){hotelPointsAll[json[i].ID]=json[i];WoHotels.push(json[i]);}}
WoCount=WoHotels.length;setTimeout("$.fn.meetingbox.getHotelsByCityWoId()",10);}else{$("#fancy_loading").hide();}});};$.fn.meetingbox.loadHotelsByLatLng=function(url){WoCount=0;WoCurrent=0;WoHotels=[];$.getJSON("/getmeetings.php?lng="+gLanguage+"&"+url,function(json)
{if(json!=null){for(i=0;i<json.length;i++)
{if(!$.fn.meetingbox.array_key_exists(json[i].ID,hotelPointsAll)){hotelPointsAll[json[i].ID]=json[i];WoHotels.push(json[i]);}}
WoCount=WoHotels.length;setTimeout("$.fn.meetingbox.getHotelsByCityWoId()",10);}else{$("#fancy_loading").hide();}});};$.fn.meetingbox.getHotelsByCityWoId=function(){var amount;marker=[];if(WoCount-WoCurrent<5){amount=WoCount-WoCurrent;}else{amount=5;}
for(i=0;i<amount;i++){marker[i]=WoHotels.pop();}
WoCurrent=WoCurrent+5;for(i=0;i<marker.length;i++)
{var lat=marker[i].ycoord/100000;var lng=marker[i].xcoord/100000;var stars=marker[i].nrofStars;var sStars="";if(stars>0){if(stars>1){for(s=0;s<stars-1;s++){sStars+="<img src='/_mainimg/starHomeWhite.gif'/>";}
sStars+="<img src='/_mainimg/starHomeWhite.gif' style='margin-right: 10px;'/>";}else{sStars+="<img src='/_mainimg/starHomeWhite.gif' style='margin-right: 10px;'/>";}}
var hotelHTML="<span class='iwstyle'><strong><a href='http://www.hoteliers."+ext+marker[i].hoteluri+"meetings/'>"+marker[i].name+"</a> "+sStars+'</strong><br/>';hotelHTML+="<a href='http://www.hoteliers."+ext+marker[i].hoteluri+"meetings/'><img src='http://images.hoteliers.com/mfacclipped/"+marker[i].meetingImage+"' style='float: left; padding-right: 3px; display: block; border: none;'/></a>";hotelHTML+="<div style='width:190px; float: left; overflow:auto;'>"+marker[i].infotxt+"</div><br style='clear: both;'/>";hotelHTML+="<table width='250px'>";hotelHTML+="<tr><td style='font-weight: bold;'>"+numRooms+": </td><td>"+marker[i].nrofMeetingrooms+"</td></tr>";hotelHTML+="<tr><td style='font-weight: bold;'>"+smallestRoom+": </td><td>"+marker[i].smallestroom+"</td></tr>";hotelHTML+="<tr><td style='font-weight: bold;'>"+biggestRoom+": </td><td>"+marker[i].largestroom+"</td></tr>";hotelHTML+="<tr><td style='font-weight: bold;'>"+maxNumGuests+": </td><td>"+marker[i].maxguests+"</td></tr>";hotelHTML+="<tr><td align='right' style='padding-bottom: 5px;' colspan='2'><a href='http://www.hoteliers."+ext+marker[i].hoteluri+"meetings/'><img src='http://www.hoteliers.com/_mainimg/"+morebtn+"'/></a></td></tr>";hotelHTML+="</table></span>";$('#map_pop').jmap('AddMarker',{'pointLatLng':[lat,lng],'pointHTML':hotelHTML,'pointMinZoom':13,'pointMaxZoom':17});}
if(WoCurrent<WoCount){setTimeout("$.fn.meetingbox.getHotelsByCityWoId()",10);}else{$("#fancy_loading").hide();}};$.fn.meetingbox.getHotelsById=function(language,id){$.getJSON("/getmeetings.php?lng="+language+"&ID="+id,function(json)
{var Markers;var lat=json[0].ycoord/100000;var lng=json[0].xcoord/100000;var stars=json[0].nrofStars;var sStars="";if(stars>0)
{if(stars>1)
{for(s=0;s<stars-1;s++)
{sStars+="<img src='/_mainimg/starHomeWhite.gif'/>";}
sStars+="<img src='/_mainimg/starHomeWhite.gif' style='margin-right: 10px;'/>";}
else
{sStars+="<img src='/_mainimg/starHomeWhite.gif' style='margin-right: 10px;'/>";}}
var hotelHTML="<span class='iwstyle'><strong><a href='http://www.hoteliers."+ext+marker[0].hoteluri+"meetings/'>"+marker[0].name+"</a> "+sStars+'</strong><br/>';hotelHTML+="<a href='http://www.hoteliers."+ext+marker[0].hoteluri+"meetings/'><img src='http://images.hoteliers.com/mfacclipped/"+marker[0].meetingImage+"' style='float: left; padding-right: 3px; display: block; border: none;'/></a>";hotelHTML+="<div style='width:190px; float: left; overflow:auto;'>"+marker[0].infotxt+"</div><br style='clear: both;'/>";hotelHTML+="<table width='250px'>";hotelHTML+="<tr><td style='font-weight: bold;'>"+numRooms+": </td><td>"+marker[0].nrofMeetingrooms+"</td></tr>";hotelHTML+="<tr><td style='font-weight: bold;'>"+smallestRoom+": </td><td>"+marker[0].smallestroom+"</td></tr>";hotelHTML+="<tr><td style='font-weight: bold;'>"+biggestRoom+": </td><td>"+marker[0].largestroom+"</td></tr>";hotelHTML+="<tr><td style='font-weight: bold;'>"+maxNumGuests+": </td><td>"+marker[0].maxguests+"</td></tr>";hotelHTML+="<tr><td align='right' style='padding-bottom: 5px;' colspan='2'><a href='http://www.hoteliers."+ext+marker[0].hoteluri+"meetings/'><img src='http://www.hoteliers.com/_mainimg/"+morebtn+"'/></a></td></tr>";hotelHTML+="</table></span>";$('#map_pop').jmap('AddMarker',{'pointLatLng':[lat,lng],'pointHTML':hotelHTML,'pointMinZoom':13,'pointMaxZoom':17},function(marker,options){GEvent.trigger(marker,"click");});});};$.fn.meetingbox.showItem=function(val){$.fn.meetingbox.preloadNeighborImages();var viewportPos=$.fn.meetingbox.getViewport();var itemSize=$.fn.meetingbox.getMaxSize(viewportPos[0]-50,viewportPos[1]-100,opts.itemArray[opts.itemNum].o.frameWidth,opts.itemArray[opts.itemNum].o.frameHeight);var itemLeft=viewportPos[2]+Math.round((viewportPos[0]-itemSize[0])/2)-20;var itemTop=viewportPos[3]+Math.round((viewportPos[1]-itemSize[1])/2)-40;var itemOpts={'left':itemLeft,'top':itemTop,'width':itemSize[0]+'px','height':itemSize[1]+'px'}
if(opts.active){$('#fancy_content').fadeOut("normal",function(){$("#fancy_content").empty();$("#fancy_outer").animate(itemOpts,"normal",function(){$("#fancy_content").append($(val)).fadeIn("normal");$.fn.meetingbox.updateDetails();});});}else{opts.active=true;$("#fancy_content").empty();if($("#fancy_content").is(":animated")){console.info('animated!');}
$("#fancy_content").append($(val)).show();$("#fancy_outer").css(itemOpts).show();$.fn.meetingbox.updateDetails();}};$.fn.meetingbox.updateDetails=function(){$("#fancy_bg,#fancy_close").show();if(opts.itemArray[opts.itemNum].title!==undefined&&opts.itemArray[opts.itemNum].title!==''){$('#fancy_title div').html(opts.itemArray[opts.itemNum].title);$('#fancy_title').show();}
if(opts.itemArray[opts.itemNum].o.hideOnContentClick){$("#fancy_content").click($.fn.meetingbox.close);}else{$("#fancy_content").unbind('click');}
if(opts.itemNum!=0){$("#fancy_nav").append('<a id="fancy_left" href="javascript:;"></a>');$('#fancy_left').click(function(){$.fn.meetingbox.changeItem(opts.itemNum-1);return false;});}
if(opts.itemNum!=(opts.itemArray.length-1)){$("#fancy_nav").append('<a id="fancy_right" href="javascript:;"></a>');$('#fancy_right').click(function(){$.fn.meetingbox.changeItem(opts.itemNum+1);return false;});}
$(document).keydown(function(event){if(event.keyCode==27){$.fn.meetingbox.close();}else if(event.keyCode==37&&opts.itemNum!=0){$.fn.meetingbox.changeItem(opts.itemNum-1);}else if(event.keyCode==39&&opts.itemNum!=(opts.itemArray.length-1)){$.fn.meetingbox.changeItem(opts.itemNum+1);}});};$.fn.meetingbox.preloadNeighborImages=function(){if((opts.itemArray.length-1)>opts.itemNum){preloadNextImage=new Image();preloadNextImage.src=opts.itemArray[opts.itemNum+1].url;}
if(opts.itemNum>0){preloadPrevImage=new Image();preloadPrevImage.src=opts.itemArray[opts.itemNum-1].url;}};$.fn.meetingbox.close=function(){if(opts.animating)return false;$(imgPreloader).unbind('load');$(document).unbind("keydown");$("#fancy_loading,#fancy_title,#fancy_close,#fancy_bg").hide();$("#fancy_nav").empty();opts.active=false;$("#fancy_outer").hide();$("#fancy_content").hide().empty();$("#fancy_overlay,#fancy_bigIframe").fadeOut("fast").remove();};$.fn.meetingbox.showLoading=function(){clearInterval(loadingTimer);var pos=$.fn.meetingbox.getViewport();$("#fancy_loading").css({'left':((pos[0]-40)/2+pos[2]),'top':((pos[1]-40)/2+pos[3])}).show();$("#fancy_loading").bind('click',$.fn.meetingbox.close);loadingTimer=setInterval($.fn.meetingbox.animateLoading,66);};$.fn.meetingbox.animateLoading=function(el,o){if(!$("#fancy_loading").is(':visible')){clearInterval(loadingTimer);return;}
$("#fancy_loading > div").css('top',(loadingFrame*-40)+'px');loadingFrame=(loadingFrame+1)%12;};$.fn.meetingbox.init=function(){if(!$('#fancy_wrap').length){$('<div id="fancy_wrap"><div id="fancy_loading"><div></div></div><div id="fancy_outer"><div id="fancy_inner"><div id="fancy_nav"></div><div id="fancy_close"></div><div id="fancy_content"></div><div id="fancy_title"></div></div></div></div>').appendTo("body");$('<div id="fancy_bg"><div class="fancy_bg fancy_bg_n"></div><div class="fancy_bg fancy_bg_ne"></div><div class="fancy_bg fancy_bg_e"></div><div class="fancy_bg fancy_bg_se"></div><div class="fancy_bg fancy_bg_s"></div><div class="fancy_bg fancy_bg_sw"></div><div class="fancy_bg fancy_bg_w"></div><div class="fancy_bg fancy_bg_nw"></div></div>').prependTo("#fancy_inner");$('<table cellspacing="0" cellpadding="0" border="0"><tr><td id="fancy_title_left"></td><td id="fancy_title_main"><div></div></td><td id="fancy_title_right"></td></tr></table>').appendTo('#fancy_title');}
if($.browser.msie){$("#fancy_inner").prepend('<iframe id="fancy_freeIframe" scrolling="no" frameborder="0"></iframe>');}
if(jQuery.fn.pngFix)$(document).pngFix();$("#fancy_close").click($.fn.meetingbox.close);};$.fn.meetingbox.getPosition=function(el){var pos=el.offset();pos.top+=$.fn.meetingbox.num(el,'paddingTop');pos.top+=$.fn.meetingbox.num(el,'borderTopWidth');pos.left+=$.fn.meetingbox.num(el,'paddingLeft');pos.left+=$.fn.meetingbox.num(el,'borderLeftWidth');return pos;};$.fn.meetingbox.num=function(el,prop){return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0;};$.fn.meetingbox.getPageScroll=function(){var xScroll,yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;xScroll=self.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;xScroll=document.documentElement.scrollLeft;}else if(document.body){yScroll=document.body.scrollTop;xScroll=document.body.scrollLeft;}
return[xScroll,yScroll];};$.fn.meetingbox.getViewport=function(){var scroll=$.fn.meetingbox.getPageScroll();return[$(window).width(),$(window).height(),scroll[0],scroll[1]];};$.fn.meetingbox.getMaxSize=function(maxWidth,maxHeight,imageWidth,imageHeight){var r=Math.min(Math.min(maxWidth,imageWidth)/imageWidth,Math.min(maxHeight,imageHeight)/imageHeight);return[Math.round(r*imageWidth),Math.round(r*imageHeight)];};$.fn.meetingbox.defaults={hideOnContentClick:false,zoomSpeedIn:0,zoomSpeedOut:0,frameWidth:600,frameHeight:400,overlayShow:false,overlayOpacity:0.4,itemLoadCallback:null,language:'en'};$.fn.meetingbox.checkUpdate=function(oldBounds,newBounds){var oldNElat=oldBounds.getNorthEast().lat();var oldNElng=oldBounds.getNorthEast().lng();var oldSWlat=oldBounds.getSouthWest().lat();var oldSWlng=oldBounds.getSouthWest().lng();var oldMaxlat=oldNElat-(oldSWlat-oldNElat)/2;var oldMinlat=oldSWlat+(oldSWlat-oldNElat)/2;var oldMaxlng=oldNElng-(oldSWlng-oldNElng)/2;var oldMinlng=oldSWlng+(oldSWlng-oldNElng)/2;var newNElat=newBounds.getNorthEast().lat();var newSWlat=newBounds.getSouthWest().lat();var newNElng=newBounds.getNorthEast().lng();var newSWlng=newBounds.getSouthWest().lng();if(newNElat>oldMinlat&&newSWlat<oldMaxlat&&newNElng>oldMinlng&&newSWlng<oldMaxlng){return false;}else{return true;}};$.fn.meetingbox.array_key_exists=function(key,search){if(!search||(search.constructor!==Array&&search.constructor!==Object)){return false;}
return key in search;};})(jQuery);