var TabPNames = new Array(); // tabs on hitlist TabPNames = ["Overview", "Photos", "Description", "Facilities", "Reviews"]; //hitlist related variables var map = ""; var mapLoaded = 0; var HotelInfo = new Array(); var arrLetters = new Array(); arrLetters = ["a", "b", "c", "d", "e","f", "g", "h", "i", "j","k", "l", "m", "n", "o","p", "q", "r", "s", "t","u", "v", "w", "x", "y","z"]; var MarkerArray = new Array(); var MarkerID = 0; var ClassIcons = new Array(); ClassIcons[0] = "/images/0star.gif"; ClassIcons[1] = "/images/1star.gif"; ClassIcons[2] = "/images/2star.gif"; ClassIcons[3] = "/images/3star.gif"; ClassIcons[4] = "/images/4star.gif"; ClassIcons[5] = "/images/5star.gif"; ClassIcons[6] = "/images/apartment.gif"; ClassIcons[7] = "/images/1starbnb.gif"; ClassIcons[8] = "/images/2starbnb.gif"; ClassIcons[9] = "/images/3starbnb.gif"; function pause (millSec){ var StartDate = new Date(); var CurrDate = null; do { CurrDate = new Date(); } while (CurrDate - StartDate < millSec) } //function finPosX and findPosY are from http://blog.firetree.net/2005/07/04/javascript-find-position/ by Peter-Paul Koch & Alex Tingle function findPosX(obj){ var curleft = 0; if (obj.offsetParent){ while (1){ curleft += obj.offsetLeft; if (!obj.offsetParent){ break; } obj = obj.offsetParent; } } else if (obj.x){ curleft += obj.x; } return curleft; } function findPosY(obj){ var curtop = 0; if(obj.offsetParent){ while (1){ curtop += obj.offsetTop; if (!obj.offsetParent){ break; } obj = obj.offsetParent; } } else if (obj.y){ curtop += obj.y; } return curtop; } function isIE6(){ if (navigator.appName == 'Microsoft Internet Explorer'){ var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); if (re.exec(ua) != null){ var ver = parseFloat( RegExp.$1 ); return ver == 6; } } return false; } function showLegenda(objIMG){ var objDIV = document.getElementById("legenda"); objDIV.style.left = (findPosX(objIMG) + 20) + "px"; objDIV.style.top = (findPosY(objIMG) - 140) + "px"; objDIV.style.display = "block"; } function hideLegenda(){ document.getElementById("legenda").style.display = "none"; } function showHotelMap(HotelID){ var xmlHttp=GetXmlHttpObject(); if (xmlHttp == null){ alert ("Browser does not support HTTP Request"); return false; } var tagID = "divHotelMap"; var strInnerHTML = "" + " " + " " + " " + "
please wait ...
"; var objMap = document.getElementById(tagID); objMap.innerHTML = strInnerHTML; var objText = document.getElementById("divHotelText" + HotelID); objMap.style.left = (findPosX(objText) + 150) + "px"; objMap.style.top = (findPosY(objText)) + "px"; objMap.style.display = "block"; xmlHttp = GetXmlHttpObject() var url = "/Advs/ajaxGetHotelGeoCodes.asp"; url = url + "?sid=" + Math.random(); url = url + "&hotelID=" + HotelID; xmlHttp.onreadystatechange = function(){ if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ var json_data = xmlHttp.responseText; var result = eval("(" + json_data + ")" ); var jHotelID = result.hotelid; var jMapURL = result.mapurl; var jIconURL = result.iconurl; var strInnerHTML = "" + " " + " " + " " + "
" + " " + "
" objMap.innerHTML = strInnerHTML; } } xmlHttp.open("GET",url,true); xmlHttp.send(null); } function hideHotelMap(){ document.getElementById("divHotelMap").style.display = "none"; } function showSpecialPane(boolOn, SpecialPaneID, objTag){ if (boolOn){ document.getElementById(SpecialPaneID).style.display = "block"; document.getElementById(SpecialPaneID).style.left = (findPosX(objTag) + 20) + "px"; document.getElementById(SpecialPaneID).style.top = (findPosY(objTag) + 20) + "px"; } else { document.getElementById(SpecialPaneID).style.display = "none"; } return true; } /* last visited hotels */ function removeVisitedHotel(HotelID){ var xmlHttp=GetXmlHttpObject(); if (xmlHttp == null){ alert ("Browser does not support HTTP Request"); return false; } xmlHttp = GetXmlHttpObject() var url = "/ajaxRemoveVisitedHotel.asp"; url = url + "?sid=" + Math.random(); url = url + "&HotelID=" + HotelID; xmlHttp.onreadystatechange = function(){ if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ var el = document.getElementById("lvh" + HotelID); var par = el.parentNode; par.removeChild(el); if (par.innerHTML.indexOf("lvh") == -1){ el = par; par = el.parentNode; par.removeChild(el); } } } xmlHttp.open("GET",url,true); xmlHttp.send(null); } /* hitlist functions */ function hlResizeMap(){ //var mapObj = document.getElementById("map"); //var listObj = document.getElementById("hlHotelNameList"); //mapObj.style.height = listObj.clientHeight + "px"; } function hlZoomToMarkers(){ var count = 0; var x, y, minX, maxX, minY, maxY; var center = map.getCenter(); minX = map.getBounds().getSouthWest().lat(); maxX = map.getBounds().getNorthEast().lat(); minY = map.getBounds().getSouthWest().lng(); maxY = map.getBounds().getNorthEast().lng(); for (var i = 0; i < HotelInfo.length; i++){ x = HotelInfo[i].Lat; y = HotelInfo[i].Lng; if (x < minX){ minX = x; } if (x > maxX){ maxX = x; } if (y < minY){ minY = y; } if (y > maxY){ maxY = y; } } //minX = minX - 0.02; //maxX = maxX + 0.02; //minY = minY - 0.02; //maxY = maxY + 0.02; var newBounds = new GLatLngBounds(new GLatLng(minX, minY), new GLatLng(maxX, maxY)); var newZoom = map.getBoundsZoomLevel(newBounds); map.setCenter(center, newZoom); } function hlGetMarkerByID(MarkerID){ var i = 0; while (i < MarkerArray.length && MarkerArray[i].id != MarkerID){ i++; } return MarkerArray[i]; } function hlHighLightMarker(BoolOn, HotelID, IconFile){ var marker = hlGetMarkerByID("marker" + HotelID); if (BoolOn){ //highlight on var IconFile2 = IconFile.replace("blue", "orange") marker.setImage(IconFile2); marker.topMarkerZIndex(); marker.showTooltip(); document.getElementById("imgMarker" + HotelID).src = IconFile2; } else { //highlight off marker.setImage(IconFile); marker.restoreMarkerZIndex(); marker.hideTooltip(); document.getElementById("imgMarker" + HotelID).src = IconFile; } } function hlCreateMarker(HotelID, Lat, Lng, IconFile, strInfo, linkHREF){ var iconH = new GIcon(); iconH.iconAnchor = new GPoint(6, 20); iconH.infoWindowAnchor = new GPoint(5, 1); iconH.iconSize = new GSize(16,27); iconH.image = IconFile; var point = new GLatLng(Lat, Lng); var marker = new PdMarker(point,{icon: iconH, clickable: true}); //marker.id = MarkerID; marker.id = "marker" + HotelID; marker.setTooltip(strInfo); //marker.setOpacity(100); // not transparent GEvent.addListener(marker, "click", function(){ window.location= linkHREF;}); GEvent.addListener(marker, "mouseover", function(){ var IconFile2 = IconFile.replace("blue", "orange") marker.setImage(IconFile2); marker.topMarkerZIndex(); var IMGMarker = document.getElementById("imgMarker" + HotelID); IMGMarker.src = IMGMarker.src.replace("blue", "orange"); document.getElementById("aMarker" + HotelID).style.color = "#FF7F00"; }); GEvent.addListener(marker, "mouseout", function(){ //marker.restoreImage(); marker.setImage(IconFile); marker.restoreMarkerZIndex(); var IMGMarker = document.getElementById("imgMarker" + HotelID); IMGMarker.src = IMGMarker.src.replace("orange", "blue"); document.getElementById("aMarker" + HotelID).style.color = "#3E82C8"; }); MarkerArray[MarkerID] = marker; MarkerID++; return marker; } function hlMapLoaded(){ map = new google.maps.Map2(document.getElementById("map")); map.setCenter(new google.maps.LatLng(DefaultLocationLat, DefaultLocationLng), DefaultLocationZoom); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); map.addControl(new GScaleControl()); map.enableContinuousZoom(); map.enableScrollWheelZoom(); for (var i = 0; i < HotelInfo.length; i++){ var HotelID = HotelInfo[i].HotelID; var Lat = HotelInfo[i].Lat; var Lng = HotelInfo[i].Lng; var MarkerStyle = "background-color: #3E82C8; border-color: #333333; color: #FFFFFF;"; var MarkerClass = "markerTooltipDefault"; var MarkerIconFile = HotelInfo[i].MarkerIconFile; var LinkHREF = HotelInfo[i].HrefURL; var ClassIcon = ClassIcons[HotelInfo[i].Classification]; if (HotelInfo[i].Classification >= 7){ MarkerStyle = "background-color: #CCCCCC; border-color: #333333; color: #333333;"; MarkerClass = "markerTooltipBNB"; } else if (HotelInfo[i].Classification == 6){ MarkerStyle = "background-color: #D87F26; border-color: #333333; color: #FFFFFF;"; MarkerClass = "markerTooltipApartment"; } if (HotelInfo[i].HotelIconFile != ""){ var IconText = ""; } else { var IconText = ""; } var strInfo = " " + " " + " " + " " + " " + " " + " " + "
" + " " + HotelInfo[i].HotelName + "   " + "
" + IconText + HotelInfo[i].Description + "
"; var marker = hlCreateMarker(HotelID, Lat, Lng, MarkerIconFile, strInfo, LinkHREF); map.addOverlay(marker); } map.zoomToMarkers(5); //hlZoomToMarkers(); } function hlLoadPDMarker(){ var scriptLoaded = 0; var script = document.createElement("script"); script.src = "https://www.tobook.com/Geo/pdmarker.js"; script.type = "text/javascript"; if (navigator.appName == "Microsoft Internet Explorer"){ script.onreadystatechange= function () { if (scriptLoaded == 0 && (this.readyState == "loaded" || this.readyState == "complete")){ scriptLoaded = 1; hlMapLoaded(); } } } else { script.onload = hlMapLoaded; } document.getElementsByTagName("head")[0].appendChild(script); } function hlLoadMap(){ google.load("maps", "2", {"language" : MapLang, "callback" : hlLoadPDMarker}); } function hlInitMap(){ hlInitHotelInfo(); document.getElementById("aShowMap").style.display = "none"; document.getElementById("aHideMap").style.display = "block"; document.getElementById("ContainerMap").style.display = "block"; document.getElementById("ShowMap").checked = true; hlResizeMap(); if (mapLoaded == 0){ mapLoaded = 1; var script = document.createElement("script"); script.src = "https://www.google.com/jsapi?key=" + GoogleKey + "&callback=hlLoadMap"; script.type = "text/javascript"; document.getElementsByTagName("head")[0].appendChild(script); window.onresize = function (){ hlResizeMap(); } } else { //map.clearOverlays(); hlMapLoaded(); } } function hlInitHotelInfo(){ var i = 0; //clear MarkerArray MarkerID = 0; MarkerArray.length = 0; //clear HotelInfo array HotelInfo.length = 0; while (document.getElementById("HotelMarker" + i)){ var arrItem = document.getElementById("HotelMarker" + i).value.split(":::"); //HotelID:::HotelName:::HotelPName:::LAT:::LNG:::Classification:::HREFURL:::IconFileName:::Descripton HotelInfo[i] = new Object(); HotelInfo[i].HotelID = arrItem[0]; HotelInfo[i].HotelName = arrItem[1]; HotelInfo[i].Lat = arrItem[3]; HotelInfo[i].Lng = arrItem[4]; HotelInfo[i].MarkerIconFile = "/images/googleMarkers/blue" + arrLetters[i] + ".png"; HotelInfo[i].Classification = arrItem[5]; HotelInfo[i].HrefURL = arrItem[6]; HotelInfo[i].HotelIconFile = arrItem[7]; HotelInfo[i].Description = arrItem[8]; i++; } } function hlHideMap(){ document.getElementById("aShowMap").style.display = "block"; document.getElementById("aHideMap").style.display = "none"; document.getElementById("ContainerMap").style.display = "none"; document.getElementById("ShowMap").checked = false; } function hlShowLargePhoto(HotelID, strFileName, strTitle){ document.getElementById("hlLargePhoto" + HotelID).src = strFileName; } function refreshHotelInfo(HotelID, InfoType, Arr, Dep, CurrencyID, SpecialOfferID, LangID){ // exit if active tab have been clicked if (document.getElementById("li" + HotelID + InfoType).className == "selected"){ return false; } var xmlHttp=GetXmlHttpObject(); if (xmlHttp == null){ alert ("Browser does not support HTTP Request"); return false; } var tagID = "HotelInfoPane" + HotelID; document.getElementById(tagID).innerHTML = "
" + "
" + PleaseWait + "
" + PleaseWait +" " + "
" + "
"; xmlHttp = GetXmlHttpObject() var url = "/ajaxRefreshHitlistHotelInfo.asp"; url = url + "?sid=" + Math.random(); url = url + "&HotelID=" + HotelID; url = url + "&InfoType=" + InfoType; url = url + "&Arr=" + Arr; url = url + "&Dep=" + Dep; url = url + "&SpecialOfferID=" + SpecialOfferID; url = url + "&LangID=" + LangID; xmlHttp.onreadystatechange = function(){ if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ for (var i = 0; i < TabPNames.length; i++){ var liID = "li" + HotelID + TabPNames[i]; if (document.getElementById(liID)){ document.getElementById(liID).className = TabPNames[i] == InfoType ? "selected" : ""; } } document.getElementById(tagID).innerHTML = xmlHttp.responseText; } } xmlHttp.open("GET",url,true); xmlHttp.send(null); } function uvRefreshCities(CountryID){ var xmlHttp=GetXmlHttpObject(); if (xmlHttp == null){ alert ("Browser does not support HTTP Request"); return false; } document.getElementById("FormLocationGeoCodeID").options.length = 1; document.getElementById("FormLocationGeoCodeID").options[0].text = PleaseWait; xmlHttp = GetXmlHttpObject() var url="/ajaxRefreshLocations.asp"; url = url + "?sid=" + Math.random(); url = url + "&CountryID=" + CountryID; url = url + "&LangID=" + LangID; xmlHttp.onreadystatechange = function(){ if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ var json_data = xmlHttp.responseText; var result = eval("(" + json_data + ")" ); var jI = Number(result.i); var jSelectedLGCID = Number(result.selectedlgcid); var jLocationGeoCodeIDs = result.locationgeocodeids; var jLocationNames = result.locationnames; var jJ = Number(result.j); var jTopLocationGeoCodeIDs = result.toplocationgeocodeids; var jTopLocationNames = result.toplocationnames; var objLocationGeoCodeID = document.getElementById("FormLocationGeoCodeID"); objLocationGeoCodeID.innerHTML = ""; // create optgroups var objTOP = document.createElement("optgroup"); objTOP.label = "Top locations:"; var objALL = document.createElement("optgroup"); objALL.label = "All locations:"; // create options and attach to optgroups isTopLocationSelected = 0; for (var i = 0; i < jJ; i++){ var newOption = document.createElement("option"); newOption.appendChild(document.createTextNode(jTopLocationNames[i])); newOption.value = jTopLocationGeoCodeIDs[i]; if (jSelectedLGCID == jTopLocationGeoCodeIDs[i]){ isTopLocationSelected = 1; newOption.selected = "selected"; } objTOP.appendChild(newOption); } for (var i = 0; i < jI; i++){ var newOption = document.createElement("option"); newOption.appendChild(document.createTextNode(jLocationNames[i])); newOption.value = jLocationGeoCodeIDs[i]; objALL.appendChild(newOption); } // clear select menu and append optgroups while (objLocationGeoCodeID.hasChildNodes()){ objLocationGeoCodeID.removeChild(objLocationGeoCodeID.firstChild); } objLocationGeoCodeID.appendChild(objTOP); objLocationGeoCodeID.appendChild(objALL); uvRefreshHotels(jSelectedLGCID); } } xmlHttp.open("GET",url,true); xmlHttp.send(null); } function uvRefreshHotels(LocationGeoCodeID){ var xmlHttp=GetXmlHttpObject(); if (xmlHttp == null){ alert ("Browser does not support HTTP Request"); return false; } document.getElementById("FormHotelID").options.length = 1; document.getElementById("FormHotelID").options[0].text = PleaseWait; xmlHttp = GetXmlHttpObject() var url="/ajaxRefreshHotels.asp"; url = url + "?sid=" + Math.random(); url = url + "&LocationGeoCodeID=" + LocationGeoCodeID; url = url + "&LangID=" + LangID; xmlHttp.onreadystatechange = function(){ if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ var json_data = xmlHttp.responseText; var result = eval("(" + json_data + ")" ); var jI = Number(result.i); var jHotelNames = result.hotelnames; var jHotelIDs = result.hotelids; document.getElementById("FormHotelID").options.length = jI; for (var i = 0; i < jI; i++){ document.getElementById("FormHotelID").options[i].value = jHotelIDs[i]; document.getElementById("FormHotelID").options[i].text = jHotelNames[i]; } } } xmlHttp.open("GET",url,true); xmlHttp.send(null); } function checkUVForm(){ var objHotelID = document.getElementById("FormHotelID"); var HotelID = objHotelID.options[objHotelID.selectedIndex].value; var objVideoCategoryID = document.getElementById("VideoCategoryID"); var VideoCategoryID = objVideoCategoryID.options[objVideoCategoryID.selectedIndex].value; if (document.getElementById("UploaderName").value == ""){ alert("Uploader name must be filled in"); return 0; } if (document.getElementById("UploaderEmail").value == ""){ alert("Uploader email must be filled in"); return 0; } if (HotelID == 0){ alert("Hotel must be selected"); return 0; } if (document.getElementById("VideoFile").value == ""){ alert("Videofile must be selected"); return 0; } else { var VideoFile = document.getElementById("VideoFile").value; var VideoFileExtension = VideoFile.substr(VideoFile.lastIndexOf(".") + 1).toLowerCase(); if ( VideoFileExtension != "avi" && VideoFileExtension != "mpeg" && VideoFileExtension != "mpg" && VideoFileExtension != "mp4" && VideoFileExtension != "wmv" && VideoFileExtension != "3gp" ){ alert("The extension '" + VideoFileExtension + "' is not allowed!"); return 0; } } if (VideoCategoryID == 0){ alert("Video category must be selected"); return 0; } return 1; } function GetXmlHttpObject(){ var xmlHttp=null; try{ // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e){ // Internet Explorer try{ xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e){ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; }