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 +
"
" +
"
" +
"
";
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;
}