var tabNames = new Array();
var currPage = 1;
var sortFunc = "";
var areaMapOpen = false;
var numRooms;
var areaMapInfoWindow = false;
var areaMap = null;
var areaMapBounds = false;
var htmlOptions = new Array();
var lowestRoomCost=0;
var highestRoomCost=0;

function showTab(name) {
	var fbox = document.getElementById('filterbox');
	for (var tabName in tabNames) {
		var tab = document.getElementById('tab_'+tabNames[tabName]);
		var box = document.getElementById(tabNames[tabName]);
		if (name == tabNames[tabName]) {
			if (tab.className == 'filtertab') {
				tab.className = 'filtertabOpen';
				box.style.display = 'block';
				fbox.style.display = 'none';
			} else {
				tab.className = 'filtertab';
				box.style.display = 'none';
				fbox.style.display = 'block';
			}
		} else {
			tab.className = 'filtertab';
			box.style.display = 'none';
		}
	}
	if (name == "") {
		fbox.style.display = 'block';
	}
}

function selectOption(hotelcode, roomid, currroom, roomdata) {
	var hotel = hotels[hotelcode];
	var rooms = hotel.rooms
	var newPrice = 0;
	var newOrigPrice = rooms[roomid].origprice;
	var newOrigPrice = 0;
	var selectedOption = "";
	for (var roomnum=1;roomnum<=numRooms;roomnum++) {
		var currPrice=0;
		for (var i in rooms) {
			var priceRadio = document.getElementById('radiobox-'+hotel.id+'-'+i+'-'+roomnum);
			if (priceRadio && priceRadio.checked) {
				currPrice = parseFloat(rooms[i].price);
				selectedOption = 'radiobox-'+hotel.id+'-'+i+'-'+roomnum;
			}
		}
		for (var i in rooms) {
			var diff = currPrice - rooms[i].price;
			var priceRadio = document.getElementById('radiobox-'+hotel.id+'-'+i+'-'+roomnum);
			if (priceRadio && priceRadio.checked) {
				newPrice += parseFloat(rooms[i].price);
				newOrigPrice += parseFloat(rooms[i].origprice);
			}
			var priceBox = document.getElementById('option-'+hotel.id+'-'+i+'-'+roomnum);
			if (priceBox && roomnum==currroom) {
				if (i == roomid) {
					priceBox.className = 'left r_fli_time hotel_option';
					// priceBox.innerHTML = '<img src=\'img/icons/tick.png\' /> Selected';
					priceBox.innerHTML = '<img src=\'img/icons/tick.png\' /> '+trjs_selected;
				} else {
					priceBox.className = 'left hotel_option';
					// if (diff == 0) priceBox.innerHTML = 'Same Price';
					if (diff == 0) priceBox.innerHTML = trjs_samePrice;
					// if (diff > 0) priceBox.innerHTML = currPre+diff.toFixed(2)+currPost+' cheaper';
					if (diff > 0) priceBox.innerHTML = currPre+diff.toFixed(2)+currPost+' '+trjs_cheaper;
					// 	if (diff < 0) priceBox.innerHTML = currPre+(0-diff).toFixed(2)+currPost+' extra';
					if (diff < 0) priceBox.innerHTML = currPre+(0-diff).toFixed(2)+currPost+' '+trjs_more;
				}
			}
		}
	}
	var discounted = document.getElementById('discounted-'+hotel.id);
	if (discounted) {
		newOrigPrice = parseFloat(newOrigPrice)+parseFloat(hotel.cheapest)*numRooms;
		discounted.innerHTML = currPre+newOrigPrice.toFixed(2)+currPost;
		//newPrice = parseFloat(newPrice)+parseFloat(hotel.cheapest)*numRooms;
	}

	var totalPrice = document.getElementById('totalcost-'+hotel.id);
	newPrice = parseFloat(newPrice)+parseFloat(hotel.cheapest)*numRooms;
	newPrice = newPrice;
	totalPrice.innerHTML = currPre+newPrice.toFixed(2)+currPost;
	dynamicSelectOption(hotel, currroom, roomid, roomdata, newPrice);
}

function selectOptionDD(hotelcode, numRooms) {
	var hotel = hotels[hotelcode];
	var rooms = hotel.rooms;

	var currPrice=0;
	var sum = 0;
	for (var i in rooms) {
		var priceSelect = document.getElementById('select-'+hotelcode+'-'+i);
		if (priceSelect) {
			var numSel = priceSelect.options[priceSelect.selectedIndex].value;
			if (numSel > 0)	{
				var price = (parseFloat(hotel.cheapest) + parseFloat(rooms[i].price)) * parseFloat(numSel);
				currPrice += price;
				sum += parseFloat(numSel);
			}
		}
	}
	var totalPrice = document.getElementById('totalcost-'+hotel.id);	
	if (sum > numRooms)	{
		alert("Please note, you have selected " + sum + " rooms; your current booking selection requires that you pick " + numRooms);
		totalPrice.innerHTML = "--.--";
	} else {
		totalPrice.innerHTML = currPre+currPrice.toFixed(2)+currPost;
	}

}

function getHotelTab(hotelcode, tabnum, hotelid) {
	var opening=true;
	for(var i=1;i<=5;i++) {
		var tab = document.getElementById('tab_'+i+'_'+hotelcode);
		if (!tab) continue;
		if (i==tabnum) {
			if (tab.className == 'trow_tab') {
				tab.className = 'trow_tabopen';
			} else {
				tab.className = 'trow_tab';
				opening=false;
			}
		} else {
			tab.className = 'trow_tab';
		}
	}
	for(var i=0;i<=5;i++) {
		var win = document.getElementById('tabwin_'+i+'_'+hotelcode);
		if (i==tabnum) {
			agent.call("","ajaxGetHotelData","hotelDataFetched",hotelcode,tabnum,hotelid);
			win.style.display = (opening?'block':'none');
		} else {
			win.style.display = 'none';
		}
	}
	if (!opening) {
		document.getElementById('tabwin_0_'+hotelcode).style.display='block';
	}
}

var areaMapBoundsCount=0;
function c() {
	areaMap.clearMarkers();
	areaMapBounds = new google.maps.LatLngBounds();
	areaMapBoundsCount=0
}
function h(hotelcode) {
	//alert(hotelcode);
	for (var i in hotels) {
		var hotel = hotels[i];
		if (hotel.id == hotelcode && (hotel.lat != 0 || hotel.lon != 0) && hotel.areamarker) {
			createMarker(areaMap, hotel);
		}
	}
}
function p(i) {
	//alert(hotelcode);
	var poi = pois[i];
	createPOI(areaMap, poi);
	areaMapBounds.extend(new google.maps.LatLng(poi.lat, poi.lon));
	areaMapBoundsCount++;
}

function b() {
	if (areaMapBoundsCount > 1) {
		//areaMap.setZoom(10);
		areaMap.fitBounds(areaMapBounds);
	}
}

function openAreaMap() {
	if (areaMapOpen) return;

	google.maps.Map.prototype.markers = new Array();
	google.maps.Map.prototype.getMarkers = function() { return this.markers };
	google.maps.Map.prototype.clearMarkers = function() { for(var i=0; i<this.markers.length; i++) { this.markers[i].setMap(null); } this.markers = new Array(); };
	google.maps.Marker.prototype._setMap = google.maps.Marker.prototype.setMap;
	google.maps.Marker.prototype.setMap = function(map) { if (map) { map.markers[map.markers.length] = this; } this._setMap(map); }

	var latlng = new google.maps.LatLng(-34.397, 150.644);
	var myOptions = {
		zoom: 8,
		center: latlng,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	areaMap = new google.maps.Map(document.getElementById("area-map"), myOptions);

	areaMapBounds = new google.maps.LatLngBounds();
	for (var i in hotels) {
		var hotel = hotels[i];
		if (hotel.lat != 0 || hotel.lon != 0) {
			areaMapBounds.extend(new google.maps.LatLng(hotel.lat, hotel.lon));
			areaMapBoundsCount++;
		}
	}
	areaMap.setZoom(10);
	areaMap.fitBounds(areaMapBounds);

	var marker = false;
	for (var i in hotels) {
		var hotel=hotels[i];
		if ((hotel.lat != 0 || hotel.lon != 0) && hotel.areamarker) {
			h(hotel.id);
		}
	}

	areaMapOpen = true;
}

function specHot(hotelid) {
	if (hotelid) {
		hotel = hotels[hotelid];
		if (document.getElementById('filt_lat').value == hotel.lat && document.getElementById('filt_lon').value == hotel.lon) return;
		document.getElementById('filt_lat').value = hotel.lat;
		document.getElementById('filt_lon').value = hotel.lon;
		$('html,body').animate({scrollTop: $('#pagecontent').offset().top}, 1000);
	} else {
		document.getElementById('filt_lat').value = 0;
		document.getElementById('filt_lon').value = 0;
		document.getElementById('filt_spec').value = '';
	}
	getPage();
}

function openInfoWindow (map, hotel) {
	var text = "<div style='text-align:left;'>";
	if (hotel.image) text += "<img style='float:left;margin-right:5px;' src=\""+hotel.image+"\" />";
	text += "<span style='font-size:1.1em;'><a href=\"javascript:void(0);\" onclick=\"specHot('"+hotel.id+"');\">"+hotel.name+"</a></span><br />";
	text += "<b>Our Rating:</b> ";
	for (var i=1;i<=hotel.rating;i++) text += "<img src='img/icons/star.png' />";
	text += "<br />";
	text += hotel.location;
	text += "<div class=\"r_fli_time\">from <span class=\"bigger\">£"+hotel.cheapest+"</div>";
	text += "</div>";

	areaMapInfoWindow.setContent(text);
	areaMapInfoWindow.open(map);
	areaMapInfoWindow.setPosition(new google.maps.LatLng(hotel.lat, hotel.lon));
	//specHot(hotel);
}

function openInfoWindowPOI(map, poi) {
	var text = "<div style='text-align:left;'>";
	text += "<span style='font-size:1.1em;'>"+poi.name+"</span><br />";
	text += "</div>";

	areaMapInfoWindow.setContent(text);
	areaMapInfoWindow.open(map);
	areaMapInfoWindow.setPosition(new google.maps.LatLng(poi.lat, poi.lon));
	//specHot(hotel);
}

function createMarker(map, hotel) {

	areaMapInfoWindow = new google.maps.InfoWindow({ content: '' });

	if (hotel.rating > 0) {
		var newicon = new google.maps.MarkerImage('/img/mapmarkers/star_'+hotel.rating+'.png?6', new google.maps.Size(22, 35), new google.maps.Point(0,0), new google.maps.Point(11,35));
	} else {
		var newicon = new google.maps.MarkerImage({url:'/img/markerred.png'});
	}

	var shadow = new google.maps.MarkerImage('/img/mapmarkers/star_shadow.png', new google.maps.Size(26, 20), new google.maps.Point(0,0), new google.maps.Point(2,20));

	var marker = new google.maps.Marker({
		position: new google.maps.LatLng(hotel.lat, hotel.lon),
		map: map,
		icon: newicon,
		shadow: shadow,
		title: 'Hotel'
	});

	google.maps.event.addListener(marker, 'click', function() { openInfoWindow(map, hotel); } );
	return marker;
}

function createPOI(map, poi) {

	areaMapInfoWindow = new google.maps.InfoWindow({ content: '' });

	var newicon = new google.maps.MarkerImage('/img/mapmarkers/markerblue.png', new google.maps.Size(22, 35), new google.maps.Point(0,0), new google.maps.Point(11,35));
	var shadow = new google.maps.MarkerImage('/img/mapmarkers/star_shadow.png', new google.maps.Size(26, 20), new google.maps.Point(0,0), new google.maps.Point(2,20));
	var marker = new google.maps.Marker({
		position: new google.maps.LatLng(poi.lat, poi.lon),
		map: map,
		icon: newicon,
		title: poi.name
	});

	google.maps.event.addListener(marker, 'click', function() { openInfoWindowPOI(map, poi); } );
	return marker;
}


function hotelDataFetched(text) {
	hotelcode = text[0];
	tabnum = text[1];
	text = text[2];
//	alert('tabwin_'+tabnum+'_'+hotelcode);
	if (!document.getElementById('tabwin_'+tabnum+'_'+hotelcode)) return;
	document.getElementById('tabwin_'+tabnum+'_'+hotelcode).innerHTML = text;

	/* Initialise the GMap */
	if (tabnum == 3) {
		var lat = document.getElementById(hotelcode+"-lat").value;
		var lon = document.getElementById(hotelcode+"-lon").value;
		var txt = document.getElementById(hotelcode+"-txt").value;
		var latlng = new google.maps.LatLng(lat, lon);
		var myOptions = {
			zoom: 8,
			center: latlng,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		};
		var map = new google.maps.Map(document.getElementById(hotelcode+"-map"), myOptions);
		map.setZoom(13);
		if (txt.value != "") {
			var marker = new google.maps.Marker({
				position: latlng,
				map: map,
				title: 'Hotel'
			});

			var infowindow = new google.maps.InfoWindow({
				content: txt
			});
			google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); } );
		}
	}
}

function showPartHotel() {
	if (document.getElementById('parthotel').checked == true) {
		var tags = document.getElementsByName('hoteldates');
		for (var i in tags) {
			tags[i].style.display='';
		}
		document.getElementById('hotelinD').selectedIndex = document.getElementById('outboundDay').selectedIndex;
		document.getElementById('hotelinM').selectedIndex = document.getElementById('outboundMonth').selectedIndex;
		document.getElementById('hoteloutD').selectedIndex = document.getElementById('returnDay').selectedIndex;
		document.getElementById('hoteloutM').selectedIndex = document.getElementById('returnMonth').selectedIndex;
	} else {
		var tags = document.getElementsByName('hoteldates');
		for (var i in tags) {
			tags[i].style.display='none';
		}
	}
}

function updateRoomCount() {
	var r = document.getElementById('numRooms');
	var c = r.options[r.selectedIndex].value;
	for(var i=1; i<=3; i++) {
		document.getElementById('room'+i).style.display = (i<=c) ? '' : 'none' ;
	}
}

function gotoEnd() {
	currPage = maxPages;
	gotoPage(0);
}

function gotoStart() {
	currPage = 1;
	gotoPage(0);
}

function changePage(mod) {
	currPage += mod;
	var ele = document.getElementById('currpagetop');
	// ele.innerHTML = "Page "+currPage+" of "+(maxPages);
	ele.innerHTML = trjs_page+" "+currPage+" "+trjs_of+" "+(maxPages);
	ele.style.visibility = 'visible';
	var ele = document.getElementById('currpagebot');
	// // ele.innerHTML = "Page "+currPage+" of "+(maxPages);
	ele.innerHTML = trjs_page+" "+currPage+" "+trjs_of+" "+(maxPages);
	ele.style.visibility = 'visible';

	eles = document.getElementsByName('gotostart');
	if (currPage > 1) {
		for (i=0;i<eles.length;i++) {
			eles[i].style.visibility = 'visible';
		}
	} else {
		for (i=0;i<eles.length;i++) {
			eles[i].style.visibility = 'hidden';
		}
	}
	eles = document.getElementsByName('back2');
	if (currPage-2 > 0) {
		for (i=0;i<eles.length;i++) {
			eles[i].innerHTML = currPage-2;
			eles[i].style.visibility = 'visible';
		}
	} else {
		for (i=0;i<eles.length;i++) {
			eles[i].style.visibility = 'hidden';
		}
	}
	eles = document.getElementsByName('back1');
	if (currPage-1 > 0) {
		for (i=0;i<eles.length;i++) {
			eles[i].innerHTML = currPage-1;
			eles[i].style.visibility = 'visible';
		}
	} else {
		for (i=0;i<eles.length;i++) {
			eles[i].style.visibility = 'hidden';
		}
	}

	eles = document.getElementsByName('previous');
	if (currPage-1 > 0) {
		for (i=0;i<eles.length;i++) { eles[i].style.visibility = 'visible'; }
	} else {
		for (i=0;i<eles.length;i++) { eles[i].style.visibility = 'hidden'; }
	}

	eles = document.getElementsByName('forward1');
	if (currPage < maxPages) {
		for (i=0;i<eles.length;i++) {
			eles[i].innerHTML = currPage+1;
			eles[i].style.visibility = 'visible';
		}
	} else {
		for (i=0;i<eles.length;i++) {
			eles[i].style.visibility = 'hidden';
		}
	}

	eles = document.getElementsByName('next');
	if (currPage < maxPages) {
		for (i=0;i<eles.length;i++) { eles[i].style.visibility = 'visible'; }
	} else {
		for (i=0;i<eles.length;i++) { eles[i].style.visibility = 'hidden'; }
	}

	eles = document.getElementsByName('forward2');
	if (currPage+1 < maxPages) {
		for (i=0;i<eles.length;i++) {
			eles[i].innerHTML = currPage+2;
			eles[i].style.visibility = 'visible';
		}
	} else {
		for (i=0;i<eles.length;i++) {
			eles[i].style.visibility = 'hidden';
		}
	}
	eles = document.getElementsByName('gotoend');
	if (currPage < maxPages) {
		for (i=0;i<eles.length;i++) {
			eles[i].style.visibility = 'visible';
		}
	} else {
		for (i=0;i<eles.length;i++) {
			eles[i].style.visibility = 'hidden';
		}
	}
}

function gotoPage(mod) {
	changePage(mod);
	getPage();
}

function removeNameFilter() {
	document.getElementById('hotelnameinput').value = '';
	document.getElementById('removenamefilterbutton').style.display = 'none';
	doFilters();
}

function setStarFilter(val) {
	document.getElementById('filt_lat').value = 0;
	document.getElementById('filt_lon').value = 0;
	document.getElementById('filt_spec').value = '';
	var i=0;
	while(i>=0) {
		ele=document.getElementById('filt_star_'+i);
		if (!ele) { i=-1; continue; }
		ele.checked = val==ele.value ? true : false;
		i++;
	}
	getPage();
}

function getPage() {
	filterStar = new Array();
	filterLocation = new Array();
	filterBoard = new Array();
	filterSpec = document.getElementById('filt_spec').value;
	filterLat = document.getElementById('filt_lat').value;
	filterLon = document.getElementById('filt_lon').value;
	filterSupp = new Array();
	filterTag = new Array();
	filterDates = new Array();

	if (document.getElementById('hotelnameinput').value != "") {
		document.getElementById('removenamefilterbutton').style.display = '';
	}
	
	var i=0;
	var j=0;
	while(i>=0) {
		ele=document.getElementById('filt_star_'+i);
		if (!ele) { i=-1; continue; }
		if (ele.checked) filterStar[j++] = ele.value;
		i++;
	}

	var i=0;
	var j=0;
	while(i>=0) {
		ele=document.getElementById('filt_loca_'+i);
		if (!ele) { i=-1; continue; }
		if (ele.options[ele.selectedIndex].value) filterLocation[j++] = ele.options[ele.selectedIndex].value;
		i++;
	}

	var i=0;
	var j=0;
	while(i>=0) {
		ele=document.getElementById('filt_supp_'+i);
		if (!ele) { i=-1; continue; }
		if (ele.options[ele.selectedIndex].value) filterSupp[j++] = ele.options[ele.selectedIndex].value;
		i++;
	}

	var i=0;
	var j=0;
	while(i>=0) {
		ele=document.getElementById('filt_boar_'+i);
		if (!ele) { i=-1; continue; }
		if (ele.checked) filterBoard[j++] = ele.value;
		i++;
	}

	var i=0;
	var j=0;
	while(i>=0) {
		ele=document.getElementById('filt_tag_'+i);
		if (!ele) { i=-1; continue; }
		if (ele.checked) filterTag[j++] = ele.value;
		i++;
	}

	hideBoardCode('RO');
	hideBoardCode('SC');
	hideBoardCode('BB');
	hideBoardCode('HB');
	hideBoardCode('FB');
	hideBoardCode('AI');
	
	document.getElementById('pagecontent').style.display = 'none';
	document.getElementById('loadingpage').style.display = 'block';

	var ele = document.getElementById('sortFunc');
	if (ele.options[ele.selectedIndex].value) sortFunc = ele.options[ele.selectedIndex].value;

	pageArgs = new Array();
	pageArgs[pageArgs.length] = "currPage";
	pageArgs[pageArgs.length] = "perPage";
	pageArgs[pageArgs.length] = "sortFunc";
	pageArgs[pageArgs.length] = "filterStar";
	pageArgs[pageArgs.length] = "filterLocation";
	pageArgs[pageArgs.length] = "filterSupp";
	pageArgs[pageArgs.length] = "filterBoard";
	pageArgs[pageArgs.length] = "filterName";
	pageArgs[pageArgs.length] = "filterSpec";
	pageArgs[pageArgs.length] = "filterTag";
	pageArgs[pageArgs.length] = "filterDepDates";
	pageArgs[pageArgs.length] = "filterLat";
	pageArgs[pageArgs.length] = "filterLon";
	pageArgs[pageArgs.length] = "htmlOptions";
	pageArgs[pageArgs.length] = "lowestRoomCost";
	pageArgs[pageArgs.length] = "highestRoomCost";

	argVals = new Array();
	argVals[argVals.length] = currPage;
	argVals[argVals.length] = perPage;
	argVals[argVals.length] = sortFunc;
	argVals[argVals.length] = filterStar;
	argVals[argVals.length] = filterLocation;
	argVals[argVals.length] = filterSupp;
	argVals[argVals.length] = filterBoard;
	argVals[argVals.length] = document.getElementById('hotelnameinput').value;
	argVals[argVals.length] = filterSpec;
	argVals[argVals.length] = filterTag;
	argVals[argVals.length] = filterDates;
	argVals[argVals.length] = filterLat;
	argVals[argVals.length] = filterLon;
	argVals[argVals.length] = htmlOptions;
	argVals[argVals.length] = lowestRoomCost;
	argVals[argVals.length] = highestRoomCost;

	agent.call('','getHotelPage','pageRetreived', requestID, pageArgs, argVals);
}

function doFilters() {
//	showTab("");
	currPage = 1;
	getPage();
}

function hideMap() {
		document.getElementById('mapView').style.display = 'none';
		document.getElementById('mapViewLink').style.display = 'block';
}

function showMap() {
	if (document.getElementById('area-map')) { 
		document.getElementById('mapView').style.display = 'block';
		document.getElementById('mapViewLink').style.display = 'none';
		openAreaMap();
	}
}

function pageRetreived(result) {

	//if (document.getElementById('area-map')) { openAreaMap(); }

	var hotelCount = parseInt(result.substring(0,6));
	var text = result.substring(6);

	maxPages = Math.ceil(hotelCount / perPage);
	changePage(0);
	document.getElementById('pagecontent').innerHTML = text;
	document.getElementById('loadingpage').style.display = 'none';
	document.getElementById('pagecontent').style.display = 'block';
	document.getElementById('numHotelsTop').innerHTML = hotelCount;
	//document.getElementById('numHotelsBot').innerHTML = hotelCount;
	if (hotelCount != 1) {
		// document.getElementById('hotelPluralTop').innerHTML = 'Hotels';
		document.getElementById('hotelPluralTop').innerHTML = trjs_hotels;
		// document.getElementById('hotelPluralBot').innerHTML = 'Hotels';
		//document.getElementById('hotelPluralBot').innerHTML = trjs_hotels;
	} else {
		// document.getElementById('hotelPluralTop').innerHTML = 'Hotel';
		document.getElementById('hotelPluralTop').innerHTML = trjs_hotel;
		// document.getElementById('hotelPluralBot').innerHTML = 'Hotel';
		//document.getElementById('hotelPluralBot').innerHTML = trjs_hotel;
	}
	if (areaMapOpen) {
		c();
		zoomMarkers = document.getElementById('zoomMarkers').innerHTML.split(",");
		for (var i in zoomMarkers) {
			hotel = hotels[zoomMarkers[i]];
			if (hotel.lat != 0 || hotel.lon != 0) {
				areaMapBounds.extend(new google.maps.LatLng(hotel.lat, hotel.lon));
				areaMapBoundsCount++;
			}
		}
		hotelMarkers = document.getElementById('hotelMarkers').innerHTML.split(",");
		for (var i in hotelMarkers) {
				h(hotelMarkers[i]);
		}
		poiMarkers = document.getElementById('poiMarkers').innerHTML.split(",");
		if (poiMarkers[0].length > 0) {
			for (var i in poiMarkers) p(poiMarkers[i]);
		}
		b();
	}
}

function Hotel(id, location, rating, name, cheapest, lat, lon, imageurl, areamarker) {
	this.id = id;
	this.location = location;
	this.rating = rating;
	this.name = name;
	this.cheapest = cheapest;
	this.rooms = new Array();
	this.lat = lat;
	this.lon = lon;
	this.image = imageurl;
	this.areamarker = areamarker;
}

function Room(price, origprice, board) {
	this.price = price;
	this.origprice = origprice;
	this.board = board;
}

function unSpecifyHotel() {
	document.getElementById('filt_spec').value = '';
//	showTab("");
	currPage = 1;
	getPage();
}

function showBoardCode(clicked, code) {
	var ele = document.getElementById('hotel_boarddesc_'+code);
	pos = findPos(clicked);
	basepos = findPos(ele.parentNode);
	ele.style.position = 'absolute';
	ele.style.left = (pos[0]-basepos[0]-50)+'px';
	ele.style.top = (pos[1]-basepos[1]+120)+'px';
	ele.style.display = 'block';
}

function hideBoardCode(code) {
	var ele = document.getElementById('hotel_boarddesc_'+code);
	ele.style.display = 'none';
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function showPicture(hotelcode, id) {
	var ele = document.getElementById(hotelcode+'-fullimg');
	var ajax = document.getElementById(hotelcode+'-ajax');
	ele.style.display = "none";
	ajax.style.display = "block";
	ele.innerHTML = '<img style="border:1px solid #999;" src="hotelimg.php?size=full&id='+id+'" onload="makeVisible(\''+hotelcode+'\');" />';
}

function makeVisible(element) {
	var ele2 = document.getElementById(element+'-fullimg');
	var ajax2 = document.getElementById(element+'-ajax');
	ajax2.style.display = "none";
	ele2.style.display = "block";
}

function thumbVisible(element) {
	var ajax3 = document.getElementById(element+'-ajax');
	var ele3 = document.getElementById(element+'-img');
	var img3 = document.getElementById(element);
	ajax3.style.display='none';
	img3.style.border='1px solid #999';
	img3.style.display='inline';
	ele3.style.display='inline';
}

function showReSearch() {
	document.getElementById('researchform').style.display = 'block';
}

function sortBy(func) {
	sortFunc = func;
	getPage();
}

function sortBySelect() {
	currPage = 1;
	getPage();
}

function decode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
	  enc1 = keyStr.indexOf(input.charAt(i++));
	  enc2 = keyStr.indexOf(input.charAt(i++));
	  enc3 = keyStr.indexOf(input.charAt(i++));
	  enc4 = keyStr.indexOf(input.charAt(i++));

	  chr1 = (enc1 << 2) | (enc2 >> 4);
	  chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
	  chr3 = ((enc3 & 3) << 6) | enc4;

	  output = output + String.fromCharCode(chr1);

	  if (enc3 != 64) {
		 output = output + String.fromCharCode(chr2);
	  }
	  if (enc4 != 64) {
		 output = output + String.fromCharCode(chr3);
	  }
   } while (i < input.length);

   return output;
}

var hotels = new Array();


