var hb_ad = null;
var map = null;
var hbbounds = null;
var smallmap = true;
var markers_generated = false;
var bookbyphone_generated = false;
var largemapcontrol = null;
var scalecontrol = null;
var maptypec = null;
var hbbookscrolled = false;
var loghbestrans = true;
function getCalendarBlock(housecode,blocknum) {
	params = "housecode="+housecode+"&blocknum="+blocknum;
	val = $('selverb').value;
	if (val != "0") {
		hb_currblock = blocknum;
		if (val.startsWith('verb_')) { params += "&verb="+val.substring(5); }
		else if (val.startsWith('nig_')) { params += "&nig="+val.substring(4); }
		new Ajax.Request("/zoeken/pres7/aj_getcalendars.php", { onSuccess: returnGetCalendarBlock, method: "post", parameters: params });
	}
}

function returnGetCalendarBlock(data) {
	var obj = data.responseJSON;
	
	if (!Object.isUndefined(obj.error)) {
		alert(obj.error);
	}
	else {
		if (!Object.isUndefined(obj.caldata)) {
			$('hb7_calcontainer').update(obj.caldata);
			//$('hb7_prices_container').hide();
			//$('hb7_seldate').show();
			Effect.Pulsate('hb8_calendars', { pulses: 1, duration: 0.5 });
			if (!Object.isUndefined(obj.deprecated)) {
				$('hb7_periods').update(obj.deprecated);
			}
		}
	}
}

function getPeriodsV7(housecode,ad) {
	params = "housecode="+housecode+"&ad="+ad+"&ad_diff=2";
	val = $('selverb').value;
	if (val != "0") {
		if (val.startsWith('verb_')) { params += "&verb="+val.substring(5); }
		else if (val.startsWith('nig_')) { params += "&nig="+val.substring(4); }
	}
	selectCalendarDay(ad);
	new Ajax.Request("/zoeken/pres7/aj_gethousebbpr.php", { onSuccess: returnGetPeriodsV7, method: "post", parameters: params });
}

function returnGetPeriodsV7(data) {
	var obj = data.responseJSON;
	
	if (!Object.isUndefined(obj.error)) {
		alert(obj.error);
	}
	else {
		if (!Object.isUndefined(obj.avail)) {
			offtop = document.viewport.getScrollOffsets().top;
			vpheight = document.viewport.getHeight();
			priceoff = $("hb7_prices").cumulativeOffset().top;
			if ((offtop + vpheight - 50) < priceoff) { Effect.ScrollTo('hb7_book'); }
			
			$('hb7_periods').update(obj.avail);
			//$('hb7_prices_container').show();
			//$('hb7_seldate').hide();
			Effect.Pulsate('hb7_periods', { pulses: 1, duration: 0.5 });
		}
	}
}

function changeVerbNig(housecode) {
	getCalendarBlock(housecode,hb_currblock)
}

function selectCalendarDay(ad) {
		if (hb_ad != null) {
			curr_elem = "ad__"+hb_ad;
			if ($(curr_elem)) {
				if ($(curr_elem).hasClassName('selected')) { $(curr_elem).removeClassName('selected'); }
			}
		}
		new_elem = "ad__"+ad;
		if ($(new_elem)) {
			if (!$(new_elem).hasClassName('selected')) { $(new_elem).addClassName('selected'); }
		}
		hb_ad = ad;
}

function changeBbprMethod(type) {
	//hiden bij boeking
	/*$$('.bbpr_request').each(function(elem) {
		if (type != 'b') { elem.show(); }
		else { elem.hide(); }
	});*/
	$$('.blocked').each(function(elem) {
		if (type != 'b') { elem.show(); }
		else { elem.hide(); }
	});
	//hiden bij optie
	$$('.normal_noopt').each(function(elem) {
		if (type == 'b') { elem.show(); }
		else { elem.hide(); }
	});
	$$('.cntrst_noopt').each(function(elem) {
		if (type == 'b') { elem.show(); }
		else { elem.hide(); }
	});
	if ($$('.selcs_noopt')) {
		$$('.selcs_noopt').each(function(elem) {
			if (type == 'b') { elem.show(); }
			else { elem.hide(); }
		});
	}
}

function changeBbprMethod_Old(type) {
	$$('.bbpr_request').each(function(elem) {
		if (type == 'o') {
			elem.show();
		}
		else {
			elem.hide();
		}
	});
}

function switchHbTab(tabsection,elem,dosc) {
	//if ($("a_"+elem).hasClassName("disabled")) { alert(gentrans['wd_nbs']); }
	//else {
	if (!$("a_"+elem).hasClassName("disabled")) { 
		toggleHbBigMap(true);
		if (!$('li_'+elem).hasClassName('current')) {
			$$('#'+tabsection+' ul li').each(function(listitm) {
				if ($(listitm.id).hasClassName('current')) { $(listitm.id).removeClassName('current'); }
				else if (listitm.id == "li_"+elem) { 
					$(listitm.id).addClassName('current');
					showHbTabContent(tabsection,elem);
				}
			});
			if (dosc) setSiteCatalystPageName(elem);
		}
	}
}

function showHbTabContent(tabsection,itm) {	
	$$('#content_'+tabsection+' div.csection').each(function(citm) {
		if (citm.id == itm) {
 			citm.show();
			if (citm.id == "book_phone" && bookbyphone_generated == false) {
				doPhoneV8(); 
			}
		}
		else if (citm.style.display != "none") {
			citm.hide();
		}
	});
}

function setSiteCatalystPageName(newtab) {
	//var s=s_gi(s_account);
	current = s.pageName;
	elem = current.split(':');
	elem[1] = newtab;
	s.pageName = elem.join(':');
	if (newtab=='book_phone') {
		s.linkTrackEvents = s.events+',event11';
		s.events+=',event11';
	}
	else {
		newevents = (s.events).replace(',event11',''); 
		s.linkTrackEvents = newevents;
		s.events = newevents;
	}
	//s.tl(this,'o','home_tabs');
	s.t();
}

function doPhoneV7(housecode) {
	new Ajax.Request("/zoeken/pres7/aj_contactphone.php", { onSuccess: returnDoPhoneV7, method: "post", parameters: 'housecode='+housecode });
}

function doPhoneV8() {
	uri = (document.location.href).replace('http://'+document.domain,"");
	new Ajax.Request("/zoeken/pres7/aj_contactphone.php", { onSuccess: returnDoPhoneV7, method: "post", parameters: 'uri='+uri });
}

function returnDoPhoneV7(data) {
	var obj = data.responseJSON;
	$("book_phone").update(obj.output);
	$("book_phone").show();
	bookbyphone_generated = true;
}

function toggleGuestbook(id) {
	if (!$("gstb"+id).hasClassName('open')) $("gstb"+id).addClassName('open');
	else { $("gstb"+id).removeClassName('open') };
}

function doKMLMapV7(housecode,lat,long,poitypes) {
	if (GBrowserIsCompatible()) {
		//initialize map
		map = new GMap2($('hb7_map'));
		map.addMapType(G_PHYSICAL_MAP);
		map.removeMapType(G_HYBRID_MAP);
		var mt = map.getMapTypes();
		// Overwrite the getMinimumResolution() and getMaximumResolution() methods
		for (i=0; i < mt.length; i++) {
			mt[i].getMinimumResolution = function() {return 3;}
			mt[i].getMaximumResolution = function() {return 16;}
		}
		//customize controls
		largemapcontrol = new GLargeMapControl3D();
		scalecontrol = new GScaleControl();
		maptypec = new GMapTypeControl();
		
		map.setMapType(G_PHYSICAL_MAP);
		//add POIs to map
		GEvent.addListener(map, "click", function() {  
			if (smallmap) { toggleHbBigMap(false); }
		});
		map.addControl(new HtmlControl('<div id="btn_hbmap_big"><a href="javascript:;" onclick="toggleHbBigMap(false)"><img src="/img/zoeken/hb7/map/showmap_'+taal+'.png" border="0" /></a></div>'), new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(32,65)));
		map.addControl(new HtmlControl('<div id="btn_hbmap_small" style="display:none;"><a href="javascript:;" onclick="toggleHbBigMap(false)"><img src="/img/zoeken/hb7/map/hidemap_'+taal+'.png" border="0" /></a></div>'), new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,50)));
		map.addControl(new HtmlControl('<div id="hb7_mapinfo" style="display:none;"></div>'), new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,120)));
		map.disableDragging();
		map.disableInfoWindow();
		addHbMarkers(housecode,poitypes);
	}
}

function addHbMarkers(housecode,poitypes) {
	params = "huiscode="+housecode+"&types="+poitypes;
	new Ajax.Request("/zoeken/pres7/aj_housepoi.php", { onSuccess: returnAddHbMarkers, method: "post", parameters: params });
}

function returnAddHbMarkers(data) {
	var obj = data.responseJSON;
	hbbounds = new GLatLngBounds;
	if (!Object.isUndefined(obj.huis)) {
		if (!Object.isUndefined(obj.poi)) {
			obj.poi.each(function(itm) {
				var latlng = new GLatLng(itm.poi_latitude,itm.poi_longitude);
				hbbounds.extend(latlng); 
				map.addOverlay(new MarkerLight(latlng,  {markertype: "hbpoi", poi_num: itm.id, image:  itm.poi_icon, width: 18, height:20, poi_info: itm.poi_info}));
			});
		}
		var latlng = new GLatLng(obj.huis.poi_latitude,obj.huis.poi_longitude);
		hbbounds.extend(latlng);
		map.addOverlay(new MarkerLight(latlng,  {markertype: "hbpoi", poi_num: obj.huis.id, image: obj.huis.poi_icon, width: 28, height:31, poi_info: obj.huis.poi_info}));
	}
	
	calculateHbBounds();
	
}

function calculateHbBounds() {
	zoomlevel = map.getBoundsZoomLevel(hbbounds);
	if (zoomlevel > 11) { zoomlevel = 11; }
	map.setCenter(hbbounds.getCenter(), zoomlevel);
	map.setZoom(zoomlevel);
}

function showHbPoiInfo(info) {
	$('hb7_mapinfo').update(info);
	Effect.SlideDown('hb7_mapinfo', {duration:0.2});
}

function hideHbPoiInfo() {
	Effect.SlideUp('hb7_mapinfo', {duration:0.2});
}


function toggleHbBigMap(tabcheck) {
	if ($('hb7_map').hasClassName('bighbmap')) {
		$('hb7_map').removeClassName('bighbmap');
		$('content_tabs_general').show();
		$('btn_hbmap_small').hide();
		$('btn_hbmap_big').show();
		$('hb7_map_pois').hide();
		map.disableScrollWheelZoom();
		map.disableDragging();
		map.disableInfoWindow();
		map.removeControl(largemapcontrol);
		map.removeControl(scalecontrol);
		map.removeControl(maptypec);
		$('hb7_mapinfo').hide();
		smallmap = true;
	}
	else if (!tabcheck){
		$('content_tabs_general').hide();
		$('hb7_map').addClassName('bighbmap');
		$('btn_hbmap_big').hide();
		$('btn_hbmap_small').show();
		$('hb7_map_pois').show();
		map.enableScrollWheelZoom();
		map.enableDragging();
		map.enableInfoWindow();
		map.addControl(largemapcontrol, new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(20,20)));
		map.addControl(scalecontrol);
		map.addControl(maptypec, new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10)));
		smallmap = false;
	}
	map.checkResize();
	calculateHbBounds();
}

function bookPeriodV7(url) {
	if ($('takeopt')) {
		if ($('takeopt').checked) { url += "&option=true"; }
		else if ($('takeltopt').checked) { url += "&option=true&ltoption=true"; }
	}
	redirQPage(url);
}

function searchTravelAgency(housecode) {
	pcode = document.getElementById("ta_pcode").value;
	postDataReturnXml('/zoeken/engine6/aj_searchtravelagencies.php', 'pcode='+pcode+"&huiscode="+housecode, returnSearchTravelAgency);
}
			
function returnSearchTravelAgency(xml) {
	var error = xml.getElementsByTagName("error");
	if (error.length > 0) {
		//alert(error[0].firstChild.data);
		document.getElementById("list_ta").innerHTML = error[0].firstChild.data;
	}
	
	var ta = xml.getElementsByTagName("travelagency");
	if (ta.length > 0) {
		txt = ta[0].firstChild.data;
		document.getElementById("list_ta").innerHTML = txt;
	}
}

var openTaInfo = null;
function showTravelAgency(id) {
	currid = "tainfo_"+id;
	if (openTaInfo != null && openTaInfo != currid) {
		$(openTaInfo).hide();
	}
	
	if (openTaInfo != currid) {
		$(currid).show();
		openTaInfo = currid;
	}
}

function TaContact(code,huiscode) {
	ta_naam = encodeMyHtml($("ta_txtnaam_"+code).value);
	ta_email = encodeMyHtml($("ta_txtemail_"+code).value);
	ta_tel = encodeMyHtml($("ta_txttel_"+code).value);
	ta_opm = encodeMyHtml($("ta_txtopm_"+code).value);
	postDataReturnXml('/zoeken/engine6/aj_searchtravelagencies_mail.php', 'code='+code+"&huiscode="+huiscode+"&ta_naam="+ta_naam+"&ta_email="+ta_email+"&ta_tel="+ta_tel+"&ta_opm="+ta_opm, returnTaContact);
}

function returnTaContact(xml) {
	var error = xml.getElementsByTagName("error");
	if (error.length > 0) {
		alert(error[0].firstChild.data);
	}
	
	var message = xml.getElementsByTagName("message");
	if (message.length > 0) {
		txt = message[0].firstChild.data;
		document.getElementById("list_ta").innerHTML = txt;
	}
}

function translateEntry(fromlang,tolang,guestid) {
	loadingelem = "loading_trans_"+guestid;
	$(loadingelem).show();
	elem = "txt_gstb_"+guestid;
	text = $(elem).innerHTML;
	origelem = "orig_txt_gstb_"+guestid;
	$(origelem).update(text);
	google.language.translate(text, fromlang, tolang, function(result) {
		if (!result.error) {
			$(elem).update(result.translation);  
			$(loadingelem).hide();
			new Effect.Highlight(elem,{startcolor: "#8cc401", endcolor: "#FFFFFF", restorecolor:"#FFFFFF"});
			origlnk = "gbst_trans_orig_"+guestid;
			lnk = "gbst_trans_"+guestid;
			$(origlnk).show();
			$(lnk).hide();
		}
	});
}

function showOrigEntry(guestid) {
	origelem = "orig_txt_gstb_"+guestid;
	orgtxt = $(origelem).innerHTML;
	gelem = "txt_gstb_"+guestid;
    $(gelem).update(orgtxt);
	new Effect.Highlight(gelem,{startcolor: "#8cc401", endcolor: "#FFFFFF"});
	origlnk = "gbst_trans_orig_"+guestid;
	lnk = "gbst_trans_"+guestid;
	$(origlnk).hide();
	$(lnk).show();
}

function translateHbes(fromlang,tolang) {
	loadingelem = "loading_trans";
	$(loadingelem).show();
	elem = "hb7_hbes_text";
	text = $(elem).innerHTML;
	$("orig_hbes_trans").update(text);
	google.language.translate(text, fromlang, tolang, function(result) {
		if (!result.error) {
			$(elem).update(result.translation);  
			$(loadingelem).hide();
			new Effect.Highlight(elem,{startcolor: "#8cc401", endcolor: "#FFFFFF", restorecolor:"#FFFFFF"});
			$("hb7_transmssg").show();
			$("hbes_trans").hide();
		}
		else {
			alert(result.error);
		}
	});
}

function showOrigHbes() {
	origelem = "orig_hbes_trans";
	orgtxt = $(origelem).innerHTML;
	gelem = "hb7_hbes_text";
    $(gelem).update(orgtxt);
	new Effect.Highlight(gelem,{startcolor: "#8cc401", endcolor: "#FFFFFF"});
	$("hb7_transmssg").hide();
	$("hbes_trans").show();
}

function logHbTrans(housecode,fromlang,tolang,type) {
	if (loghbestrans == false && type == "hbes") { return; }
	else {
		if (type == "hbes") { loghbestrans = false; } //1 time per request
		params = "housecode="+housecode+"&fromlang="+fromlang+"&tolang="+tolang+"&type="+type;
		new Ajax.Request("/zoeken/pres7/aj_loghbtrans.php", { method: "post", parameters: params });
	}
}