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;
var gallery = null;
var tipelem = null;

//Event.observe(window, 'load', function() { 
document.observe("dom:loaded", function() {   
	Shadowbox.init({skipSetup:true})
	Shadowbox.setup(); 
	
	if (Prototype.Browser.IE) { gallery = window.gallery_flash; }
	else { gallery = window.document.gallery_flash; }
}); 

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 getPeriods(housecode,ad,elem) {
	tipelem = elem;
	showCalLoader(elem,'on');
	params = "housecode="+housecode+"&ad="+ad;
	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: returnGetPeriods, method: "post", parameters: params });
}

function returnGetPeriods(data) {
	var obj = data.responseJSON;
	if (!Object.isUndefined(obj.error)) {
		alert(obj.error);
	}
	else {
		if (!Object.isUndefined(obj)) {
			setPeriodsTip(obj);
		}
	}
	showCalLoader(tipelem,'off');
}

function showCalLoader(elem,dir) {
	if (dir == "on") {
		daysel_num = $(elem).innerHTML;
		$(elem).innerHTML = "<img src='/img/loading/caldate.gif' border='0' alt='' />";
	}
	else {
		$(elem).innerHTML = daysel_num;
	}
}


function setPeriodsTip(obj) {
	//get title from basicparams
	calendaroffset_l = $("hb8_calendars").positionedOffset().left;
	dayoffset_l = $(tipelem).positionedOffset().left;
	diffoffset = dayoffset_l-calendaroffset_l;
	if (diffoffset < 400) {
		tippos = "leftMiddle";
		targetpos = "rightMiddle";
	}
	else {
		tippos = "rightMiddle";
		targetpos = "leftMiddle";
	}
	showCalLoader(tipelem);
	new Tip(tipelem, obj.avail, {
		title: obj.title,
		style: 'protogrey',
		stem: tippos,
		showOn: 'click',
		width:'410px',
		hideOthers: true,
		viewport: true,
		hideOn: { element: 'closeButton', event: 'click' },
		hook: { target: targetpos, tip: tippos }
	});
	$(tipelem).prototip.show();
}

function bookPeriod(url,option) {
	if (option == true)  { url += "&option=true"; }
	redirQPage(url); 
}

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) { //CCC Request Warning
		if (type != 'b') { elem.hide(); }
		else { elem.show(); }
	});
	$$('.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) {
	//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 (checkSc()) 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 showTravelAgencySelect(hc,title) {
	Shadowbox.open({
		title: 		title,
		player:     "iframe",
		content:    "/agency?mode=select&hc="+hc,
		height:     500,
		width:      800
	});
}

function getTravelAgencies(hc) {	
	new Ajax.Request("/content/aj_windows/agency/aj_select.php", { 
		parameters: 'pcode='+$('ta_pcode').value+"&huiscode="+hc,
		onSuccess: function(data) {
			res = data.responseJSON;
			if (!Object.isUndefined(res.result)) $('agencylist_box').update(res.result);
		}
	});
}

function doTravelAgencyContact(id,huiscode) {
	ta_naam = encodeMyHtml($("ta_txtnaam_"+id).value);
	ta_email = encodeMyHtml($("ta_txtemail_"+id).value);
	ta_tel = encodeMyHtml($("ta_txttel_"+id).value);
	ta_opm = encodeMyHtml($("ta_txtopm_"+id).value);
	new Ajax.Request("/content/aj_windows/agency/aj_select_mail.php", {
		parameters: 'code='+id+"&huiscode="+huiscode+"&ta_naam="+ta_naam+"&ta_email="+ta_email+"&ta_tel="+ta_tel+"&ta_opm="+ta_opm,
		onSuccess: function(data) {
			res = data.responseJSON;
			if (!Object.isUndefined(res.error)) $('agencycontacterror_'+id).update(res.error).show();
			else if (!Object.isUndefined(res.result)) $('agencylist_box').update(res.result);
		}
	});
}

function showTravelAgency(id) {
	$$('.agencyinfo_cnt').invoke('hide');
	$('agencyinfo_'+id).show();
}

/*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;
	}
}

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 });
	}
}

function showBigImage(housecode, picid, mnd, type){
	//alert(housecode);
	//alert(picid);
	/*Shadowbox.open({
		title: 		imageTitle,
		player:     "html",
		content:    "<img style='padding:0px 10px 10px 10px;' src='"+imageURL+"' width='"+imageWidth+"px' height='"+imageHeight+"px' />",
		height:     parseInt(imageHeight)+10,
		width:      parseInt(imageWidth)+20
	});*/
	
	var options = {
		continuous: true,
		counterType: 'skip'
	};
	
	var aPreview = new Array();
	
	if(type != 'z' && type != 'w'){
		var params = {
			'housecode':housecode,
			'mnd':mnd,
			'output':'json'
		};
	}else{
		var params = {
			'housecode':housecode,
			'type':type,
			'output':'json'
		};
	}
	
	
	new Ajax.Request("/content/xml/housepics/housepics.php",{
		method: 'post',
		parameters: params,
		onSuccess: function(transport){
			
			//console.log(transport.responseJSON);
			var json_output = transport.responseJSON;
			var images = json_output.settings;
			for(set in images){
				if(images[set].thumb != undefined){
					var preview = {
						player:     'img',
						title:      images[set].title,
						content:    images[set].big,
						width: 		images[set].bigwidth,
						height: 	images[set].bigheight,
						options: 	options
					};
					//aPreview.push(preview);
					aPreview[parseFloat(images[set].id)] = preview;
				}
			}
			//console.log(aPreview);
			Shadowbox.open(aPreview, {}); 
			Shadowbox.change(parseFloat(picid));
		}
	}); 
	
	//alert(parseFloat(picid));
}
