var holidayCriteria;var calendarSlots=[];function Criteria(l,i,e,j,g,a,b,f,h,d,c,k){this.People=l;this.Duration=i;this.Cottages=e;this.Boats=j;this.Parks=g;this.StartDate=a;this.EndDate=b;this.Search=h;this.QuickSearch=f;this.HolidayGroup=d;this.Campaign=c;this.MaxPrice=k;}function Slot(e,c,a,d,b){this.startDate=(new Date(Date.parse(e))).getNoFrills();this.endDate=this.startDate.dateAdd("d",c);this.duration=c;this.type=a;this.basePrice=d;this.finalPrice=b;}function InitialRequest(o,k,f,l,h,a,b,g,i,j,e,c,n,d,m){holidayCriteria=new Criteria(o,k,f,l,h,a,b,g,i,n,d,m);if(a!=null&&b!=null){document.forms[0].elements.DatesSelected.value="true";}document.getElementById("contents-tab").style.marginLeft="1px";document.getElementById("features-tab").style.marginLeft="0px";GetXmlDocument(j,e,c);if(document.getElementById("info-title").innerHTML!="UK Holidays"){showGeneralInfo();}TabOver(document.getElementById("popout-key"),"left",-285,-40);setTimeout("TabOut(document.getElementById('popout-key'), 'left', -285, -40);",7000);}function GetXmlDocument(c,a,b){showBusy();SetupCalendar(holidayCriteria.StartDate,holidayCriteria.EndDate,30);var f=[];var d=[];if(a==undefined||b==undefined){for(var e=0;e<features.length;e++){if(features[e].value==1){f.push(features[e].id);}else{if(features[e].value==2){d.push(features[e].id);}}}}else{switchFeatures(a,b);f=a;d=b;}CallGetXmlData(holidayCriteria.People,holidayCriteria.Duration,holidayCriteria.Cottages,holidayCriteria.Boats,holidayCriteria.Parks,f,d,holidayCriteria.StartDate,holidayCriteria.EndDate,holidayCriteria.Search,holidayCriteria.HolidayGroup,holidayCriteria.Campaign,holidayCriteria.MaxPrice);if(c==undefined||c){CallWhatsOn(holidayCriteria.StartDate,holidayCriteria.EndDate,holidayCriteria.Search);}}function CallGetXmlData(m,j,c,b,g,e,l,a,i,h,f,d,k){document.getElementById("map-busy").style.visibility="visible";var n=Sys.WebForms.PageRequestManager.getInstance();if(n.get_isInAsyncPostBack()){n.abortPostBack();}MapService.MapData.GetXmlData(c,b,g,m,j,e,l,(a!=null?a.toDateString():null),(i!=null?i.toDateString():null),h,true,f,d,(k==0?null:k),XmlRequestSucceeded,FailedCallback,"XmlDocument");}function HandleException(a){if(a.documentElement.nodeName=="Exception"){var b=Sys.WebForms.PageRequestManager.getInstance();if(b.get_isInAsyncPostBack()){b.abortPostBack();}MapService.MapData.HandleError("Service Error: "+a.documentElement.firstChild.nodeValue,null,null,0,false);if(isDebugOn==undefined||isDebugOn==false){window.location.href="/problem.aspx";}return true;}return false;}function XmlRequestSucceeded(b,a,c){if(!HandleException(b)){document.getElementById("map-busy").style.visibility="visible";placeMarkers(b);showContents();}}function noResultsMessage(){var a=[];if(!holidayCriteria.QuickSearch){a.push("At the moment we don't have any available");if(holidayCriteria.Cottages&&holidayCriteria.Boats&&holidayCriteria.Parks){a.push(" cottages, boats or parks &amp; lodges");}else{if(holidayCriteria.Cottages&&holidayCriteria.Boats){a.push(" cottages or boats");}else{if(holidayCriteria.Cottages&&holidayCriteria.Parks){a.push(" cottages or parks &amp; lodges");}else{if(holidayCriteria.Boats&&holidayCriteria.Parks){a.push(" boats or parks &amp; lodges");}else{if(holidayCriteria.Cottages){a.push(" cottages");}else{if(holidayCriteria.Boats){a.push(" boats");}else{if(holidayCriteria.Parks){a.push(" parks &amp; lodges");}else{a.push(" holidays");}}}}}}}if(holidayCriteria.People>0){a.push(" for ");a.push(holidayCriteria.People);a.push(" people");if(holidayCriteria.Duration.length>0){a.push(" staying");}}if(holidayCriteria.Duration.length>0){a.push(" for ");for(var b=0;b<holidayCriteria.Duration.length;b++){a.push(holidayCriteria.Duration[b]);if(b!=holidayCriteria.Duration.length-1){a.push(" or ");}}a.push(" nights");}if(holidayCriteria.MaxPrice!=null&&holidayCriteria.MaxPrice!=0){a.push(" at or less than &pound;");a.push(holidayCriteria.MaxPrice);}if(holidayCriteria.StartDate!=null&&holidayCriteria.EndDate!=null){a.push(" between ");a.push(holidayCriteria.StartDate.getDateString());a.push(" and ");a.push(holidayCriteria.EndDate.getDateString());}if(holidayCriteria.Search!=null&&holidayCriteria.Search!=""){a.push(" matching &quot;");a.push(holidayCriteria.Search);a.push("&quot;");}}else{a.push("We were unable to find any holidays containing &quot;");a.push(holidayCriteria.Search);a.push("&quot;");}var c=false;for(var b=0;b<features.length;b++){if(features[b].value>0){c=true;break;}}if(c){a.push(" with the features you have selected");}a.push(".");return a.join("");}function GetHolidayInfo(e,h,f,b,d,c,a){resetCalendar();var g=[e];aid=e;MapService.MapData.GetBasicInfoXml(g,e,(h.length>0?h[0]:7),(f!=undefined?f:null),(b!=undefined?b:null),(d!=undefined?d:null),(c!=undefined&&c!=0?c:null),InfoResultWithoutBubble,FailedCallback,"XmlDocument");}function GetHolidayInfoWithBubble(f,k,h,c,e,d,b){if(b){resetCalendar();}aid=f;for(var a=0;a<accs.length;a++){if(f==accs[a].id){var g=accs[a].marker;break;}}var j=g.ids;MapService.MapData.GetBasicInfoXml(j,f,(k.length>0?k[0]:7),(h!=undefined?h:null),(c!=undefined?c:null),(e!=undefined?e:null),(d!=undefined&&d!=0?d:null),InfoResultWithBubble,FailedCallback,"XmlDocument");}function InfoResultWithBubble(b,a,c){InterpretInfoResult(b,a,c,true);}function InfoResultWithoutBubble(b,a,c){InterpretInfoResult(b,a,c,false);}function InterpretInfoResult(q,h,p,e){var c=q.documentElement;var j=c.getElementsByTagName("Location")[0];var g=j.getElementsByTagName("Site");var d;for(var m=0;m<g.length;m++){var k=g[m].getElementsByTagName("Accommodation");for(var o=0;o<k.length;o++){if(k[o].getElementsByTagName("PrimaryAccommodation").length>0){primary=k[o].getElementsByTagName("PrimaryAccommodation")[0];mapInfo(j,g[m],k[o],primary);d=k[o].getAttribute("accommodationId");showMoreInfo(d);var b=primary.getElementsByTagName("Availability")[0];var f=b.getElementsByTagName("slot");showAccommodation();calendarSlots=[];for(var r=0;r<f.length;r++){calendarSlots.push(new Slot(f[r].getAttribute("start"),f[r].getAttribute("duration"),f[r].getAttribute("type"),f[r].getAttribute("base-price"),f[r].getAttribute("final-price")));}break;}}}if(e){OpenInfoWindow(j);}var n=document.getElementById("bubble-container");if(n){var l=n.childNodes;if(l.length>4){for(var r=0;r<l.length;r++){l[r].style.background="#FFFFFF";}document.getElementById("bubble-"+d).style.background="#E2EEFA";}}showCalendar();showCount();}function OpenInfoWindow(f){var d=[];d.push('<div id="bubble-scroller"><div id="bubble-container">');var c=f.getElementsByTagName("Site");for(var h=0;h<c.length;h++){d.push("<h2>");var e=[];e=c[h].getElementsByTagName("Accommodation");if(e[0].getAttribute("type")!="UKCottage"||c[h].getAttribute("accommodationsAtSite")>1){var g="<a href='/site.aspx?sid="+c[h].getAttribute("code");g+="' onclick='return hs.htmlExpand(this, { objectType: ";g+='"iframe", width: 900} )';g+="' title='View more details for this holiday'>"+c[h].getAttribute("name")+"</a>";d.push(g);}else{d.push(c[h].getAttribute("name"));}d.push("</h2>");d.push('<div id="map-location">');d.push(f.getElementsByTagName("Address")[0].firstChild.nodeValue);d.push("</div>");for(var b=0;b<e.length;b++){d.push(accommodationDetails(e[b],true));}d.push("</p>");}d.push("</div></div>");var j=map.getInfoWindow();oldGLatLng=map.getCenter();map.openInfoWindowHtml(accs[currentAcc].marker.getLatLng(),d.join(""));}function accommodationDetails(c,b){var a=[];a.push('<div class="map-accommodation" id="bubble-');a.push(c.getAttribute("accommodationId"));a.push('">');var b='Javascript: indexLink("'+c.getAttribute("accommodationId")+'")';a.push("<div class='");a.push(c.getAttribute("type"));a.push("-icon'></div>");if(b){a.push("<a href='"+b+"'>");}a.push(c.getAttribute("name"));if(b){a.push("</a>");}a.push('<div class="map-sleeps">');a.push("Sleeps ");a.push('<span class="map-sleeps-no">');a.push(c.getAttribute("sleeps"));a.push("</span></div>");a.push('<div class="map-price">');a.push('<span class="map-price-no">');a.push(c.getElementsByTagName("Price")[0].firstChild.nodeValue);a.push("</span>&nbsp;");a.push(c.getElementsByTagName("Price")[0].getAttribute("period"));a.push("</div></div>");return a.join("");}function mapInfo(f,d,a,j){var g=d.getElementsByTagName("Description")[0].firstChild.nodeValue.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">");while(g.substring(g.length-5)=="<br/>"){g=g.substring(0,g.length-5);}var c=[];c.push("<div id='infoHeader");c.push(a.getAttribute("type"));c.push("' class='infoHeader");c.push(a.getAttribute("type"));c.push("'><div class='");c.push(a.getAttribute("type"));c.push("-icon'></div><p>");if(a.getAttribute("name")!=d.getAttribute("name")){c.push("<span id='site-name'>");c.push(d.getAttribute("name"));c.push("</span>");c.push(" - ");c.push("<span id='acc-name'>");}else{c.push("<span id='site-name'>");}c.push(a.getAttribute("name"));c.push("</span>");c.push("</p></div><div id='infoContainer'><div id='infoImageContainer'><a id='mainPhoto' class='highslide' onclick='return hs.expand(this)' title='");c.push(j.getElementsByTagName("Photo")[0].getAttribute("title"));c.push("' href='");c.push(j.getElementsByTagName("Photo")[0].firstChild.nodeValue);c.push("'><img id='infoImage' src='");c.push(j.getElementsByTagName("Photo")[0].firstChild.nodeValue);c.push("' /></a>");c.push("<div class='highslide-caption'>");c.push(j.getElementsByTagName("Photo")[0].getAttribute("title"));c.push("</div></div><div id='infoFeatures'>");c.push(getFeatureIcons(j.getElementsByTagName("Features")[0].getElementsByTagName("Feature")));c.push("</div>");c.push("<p>");c.push(g);c.push("</p>");if(g.length<600){c.push("<p>");try{var i=j.getElementsByTagName("Description")[0].firstChild.nodeValue.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">");while(i.substring(i.length-5)=="<br/>"){i=i.substring(0,i.length-5);}c.push(i);}catch(h){}c.push("</p>");}var b=document.getElementById("map-info");b.innerHTML=c.join("");}function getFeatureIcons(e){var a=[];for(var d=0;d<e.length;d++){var c=e[d].firstChild.nodeValue;var b=e[d].getAttribute("id");switch(b){case"pool":a.push("<img src='/images/icon-pool.gif' width='26' height='9' title='"+c+"'>");break;case"gym":a.push("<img src='/images/icon-gym.gif' width='15' height='17' title='"+c+"'>");break;case"entertain":a.push("<img src='/images/icon-entertain.gif' width='24' height='22' title='"+c+"'>");break;case"shop":a.push("<img src='/images/icon-shop.gif' width='26' height='20' title='"+c+"'>");break;case"satellite":a.push("<img src='/images/icon-satellite.gif' width='23' height='17' title='"+c+"'>");break;case"tv":a.push("<img src='/images/icon-tv.gif' width='14' height='13' title='"+c+"'>");break;case"baby":a.push("<img src='/images/icon-baby.gif' width='16' height='18' title='"+c+"'>");break;case"beach":a.push("<img src='/images/icon-beach.gif' width='19' height='17' title='"+c+"'>");break;case"golf":a.push("<img src='/images/icon-golf.gif' width='11' height='20' title='"+c+"'>");break;case"access":a.push("<img src='/images/icon-accessible.gif' width='15' height='20' title='"+c+"'>");break;case"nosmoke":a.push("<img src='/images/icon-no-smoking.gif' width='18' height='17' title='"+c+"'>");break;case"pets":a.push("<img src='/images/icon-pets.gif' width='16' height='14' title='"+c+"'>");break;}}return a.join("");}function FailedCallback(b){document.getElementById("map-busy").style.visibility="hidden";var a=Sys.WebForms.PageRequestManager.getInstance();if(a.get_isInAsyncPostBack()){a.abortPostBack();}MapService.MapData.HandleError("Service Error: "+b._message,b._stackTrace,b._exceptionType,b._statusCode,b._timedOut);if(isDebugOn==undefined||isDebugOn==false){window.location.href="/problem.aspx";}}function CallWhatsOn(c,d,a){document.getElementById("content-busy").style.display="block";var b=Sys.WebForms.PageRequestManager.getInstance();if(b.get_isInAsyncPostBack()){b.abortPostBack();}MapService.MapData.WhatsOnByDate(a,(c!=null?c.toDateString():null),(d!=null?d.toDateString():null),window.location.href,WhatsOnRequestSucceeded,FailedWhatsOnCallback,"XmlDocument");}function WhatsOnRequestSucceeded(b,a,c){document.getElementById("content-busy").style.display="block";formatWhatsOn(b);document.getElementById("content-busy").style.display="none";}function FailedWhatsOnCallback(b){document.getElementById("content-busy").style.display="none";var a=Sys.WebForms.PageRequestManager.getInstance();if(a.get_isInAsyncPostBack()){a.abortPostBack();}MapService.MapData.HandleError("WhatsOn Service Error: "+b._message,b._stackTrace,b._exceptionType,b._statusCode,b._timedOut);}function GetAvailability(e,h,f,b,d,c,a){var g=[e];aid=e;MapService.MapData.GetAvailability(e,h,(f!=undefined?f:null),(b!=undefined?b:null),(d!=undefined?d:null),((c==undefined||c==0)?null:c),InterpretAvailabilityResult,FailedAvailabilityCallback,"XmlDocument");}function InterpretAvailabilityResult(b,a,c){var e=b.documentElement;var f=e;var d=f.getElementsByTagName("slot");calendarSlots=[];for(var g=0;g<d.length;g++){calendarSlots.push(new Slot(d[g].getAttribute("start"),d[g].getAttribute("duration"),d[g].getAttribute("type"),d[g].getAttribute("base-price"),d[g].getAttribute("final-price")));}showCalendar();}function FailedAvailabilityCallback(b){document.getElementById("content-busy").style.display="none";var a=Sys.WebForms.PageRequestManager.getInstance();if(a.get_isInAsyncPostBack()){a.abortPostBack();}MapService.MapData.HandleError("GetAvailability Service Error: "+b._message,b._stackTrace,b._exceptionType,b._statusCode,b._timedOut);}if(typeof(Sys)!=="undefined"){Sys.Application.notifyScriptLoaded();}
