// uit masterpage

function MasterBeginRequestHandler(sender, args) {
  hideTooltip(sender);
  $("img").lazyload({
    effect: "fadeIn"
  });
}

function MasterPageLoaded(sender, args) {
  var panels = args.get_panelsUpdated();
  var update = false;
  if (panels.length > 0) {
    for (indexPanelMasterPage = 0; indexPanelMasterPage < panels.length; indexPanelMasterPage++) {
      //enableTooltips(panels[indexPanelMasterPage]);
    }
  }
  else {
    //enableTooltips(document);
    $("img").lazyload({
      effect: "fadeIn"
    });
  }
}

if ((typeof Sys != 'undefined') && Sys != null) {
  var prmMasterPage = Sys.WebForms.PageRequestManager.getInstance();
  if (prmMasterPage != null) {
    prmMasterPage.add_pageLoaded(MasterPageLoaded);
    prmMasterPage.add_beginRequest(MasterBeginRequestHandler);
  }
}
else {
  //enableTooltips(document); GEEFT ERROR ICM GOOGLE MAPS
}

// deel 2 uit masterpage

function SetDelayedIFrames(container) {
  if (ajmirrorId === undefined) { var ajmirrorId1 = (new Date().getTime()) % 100000000; var ajmirrorId2 = Math.round(Math.random() * 100000000.0); var ajmirrorId = "" + ajmirrorId1 + "" + ajmirrorId2; }
  var iframes;
  if (container != 'undefined' && container != null) {
    iframes = container.getElementsByTagName("iframe");
  }
  else {
    iframes = document.getElementsByTagName("iframe");
  }
  for (indexIFrame = 0; indexIFrame < iframes.length; indexIFrame++) {
    var iframeItem = iframes[indexIFrame];
    if (iframeItem.getAttribute("delayUrl")) {
      iframeItem.src = iframeItem.getAttribute("delayUrl") + "&Pv=" + ajmirrorId;
      iframeItem.removeAttribute("delayUrl");
    }
  }
}

function DelayedIFramesPageLoaded(sender, args) {
  var panels = args.get_panelsUpdated();
  var update = false;
  if (panels.length > 0) {
    for (indexPanelMasterPage = 0; indexPanelMasterPage < panels.length; indexPanelMasterPage++) {
      SetDelayedIFrames(panels[indexPanelMasterPage]);
    }
  }
  else {
    SetDelayedIFrames(document);
  }
}

if ((typeof Sys != 'undefined') && Sys != null) {
  var prmDelayedIFrames = Sys.WebForms.PageRequestManager.getInstance();
  if (prmDelayedIFrames != null) {
    prmDelayedIFrames.add_pageLoaded(DelayedIFramesPageLoaded);
  }
  else {
    window.setTimeout("SetDelayedIFrames()", 0);
  }
}
else {
  window.setTimeout("SetDelayedIFrames()", 0);
}

// voor het includen van css/js
function include(file) {
  String.prototype.endsWith = function (str) { return (this.match(str + "$") == str) };
  if (file.endsWith("js")) {
    var script = document.createElement("script");
    script.setAttribute("type", "text/javascript");
    script.setAttribute("src", file);
    document.getElementsByTagName("head")[0].appendChild(script);
  }
  if (file.endsWith("css")) {
    var css = document.createElement("link");
    css.setAttribute("rel", "stylesheet");
    css.setAttribute("type", "text/css");
    css.setAttribute("media", "screen");
    css.setAttribute("href", file);
    document.getElementsByTagName("head")[0].appendChild(css);
  }
}

// browser-fixes javascript/css
try {
  var browser = navigator.userAgent;

  if (browser.toLowerCase().indexOf('msie 6.0') > 0) {
    include("/css/ie6/style.css");
    include("/js/ie6-png-fix.js");
  }
  else if (browser.toLowerCase().indexOf('msie 7.0') > 0) {
    //include("/css/ie7/style.css");
  }
  else if (browser.toLowerCase().indexOf('msie 8.0') > 0) {
    //include("/css/ie8/style.css");
  }
  else if (browser.toLowerCase().indexOf('firefox') > 0 || browser.toLowerCase().indexOf('safari') > 0 || browser.toLowerCase().indexOf('presto') > 0) {
    include("/css/firefox/style.css");
  }
} catch (err) { }

// geen geflikker van achtergrond in ie6
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch (err) { }

// nieuwsbrief layer
$(document).ready(function () {

  $("#nieuwsbriefAangemeld").hide();
  $("#nieuwsbriefNietAangemeld").hide();
  $("#nieuwsbriefLayerSluiten").hide();

  $("#nieuwsbriefLink").fancybox({
    'titleShow': 'false',
    'centerOnScroll': 'true',
    'onClosed': function () {
      $("#nieuwsbriefAangemeld").hide();
      $("#nieuwsbriefNietAangemeld").hide();
      $("#nieuwsbriefLayerSluiten").hide();
      $("#nieuwsbriefInfo").show();
      $("#nieuwsbriefForm").show();
      $("#nieuwsbriefNaam").val('');
      $("#nieuwsbriefEmail").val('');
    }
  });

  $("#nieuwsbriefLayerSluiten").click(function () {
    $.fancybox.close();
  });

  $("#nieuwsbriefButton").click(function () {
    $("#nieuwsbriefInfo").hide();
    $("#nieuwsbriefForm").hide();

    $.get('/nieuwsbrief-aanmelden.aspx?naam=' + $("#nieuwsbriefNaam").val() + '&email=' + $("#nieuwsbriefEmail").val(), function (result) {
      if (result.indexOf("true") != -1) {
        $("#nieuwsbriefAangemeld").show();
        $("#nieuwsbriefNietAangemeld").hide();
        $("#nieuwsbriefLayerSluiten").show();
      }
      else {
        $("#nieuwsbriefAangemeld").hide();
        $("#nieuwsbriefNietAangemeld").show();
        $("#nieuwsbriefForm").show();
      }
    });
  });
});

/************************************************************************************************/

// verberg/toon zoeken op datum
function zoekenOpDatum(zoekenOpDatum) {
  if (zoekenOpDatum == 'true') {
    document.getElementById("divButtonZoekenOnbekend").style.display='none';
    document.getElementById("divButtonZoekenBekend").style.display='block';
    document.getElementById("selectDatum").style.display='block';
    document.getElementById("txtGeenDatum").style.display='none';    
  } else {
    document.getElementById("divButtonZoekenOnbekend").style.display='block';
    document.getElementById("divButtonZoekenBekend").style.display='none';
    document.getElementById("selectDatum").style.display='none';
    document.getElementById("txtGeenDatum").style.display='block';
  }
}

// verberg/toon zoeken uitgebreid (wordt mogelijk niet meer gebruikt)
function zoekenUitgebreid(zoekenUitgebreid) {
  if (zoekenUitgebreid == 'true') {
    document.getElementById('homeUitgebreid').style.display = 'block';
    document.getElementById("divUitgebreidZoekenFooter").style.display = 'block';
    document.getElementById("divEenvoudigZoekenFooter").style.display = 'none';
    document.getElementById("divZoekenUitgebreid").style.display = 'none';
    document.getElementById("divButtonZoekenBekend").style.display = 'none';
    document.getElementById("divButtonZoekenOnbekend").style.display = 'none';
    document.getElementById("divLtrUitgebreidZoeken").style.display = 'block';
  }
  else {
    document.getElementById('homeUitgebreid').style.display = 'none';
    document.getElementById("divUitgebreidZoekenFooter").style.display = 'none';
    document.getElementById("divEenvoudigZoekenFooter").style.display = 'block';
    document.getElementById("divZoekenUitgebreid").style.display = 'block';
    document.getElementById("divButtonZoekenBekend").style.display = 'block';
    document.getElementById("divButtonZoekenOnbekend").style.display = 'block';
    document.getElementById("divLtrUitgebreidZoeken").style.display = 'none';
  }

  if (document.getElementById("selectDatum").style.display == 'block') {
    zoekenOpDatum('true');
  }
  else {
    zoekenOpDatum('false');
  }
}

// alles aan/afvinken
SetCheckBoxes = function (containerId, value) {
  var divContainer = document.getElementById(containerId);
  if (divContainer != null && divContainer != undefined) {
    //exist
    var inputCollection = divContainer.getElementsByTagName("input");
    for (var indexInputCollection = 0; indexInputCollection < inputCollection.length; indexInputCollection++) {
      if (inputCollection[indexInputCollection].type == "checkbox") {
        if (inputCollection[indexInputCollection].disabled == false) {
          if (value == true) { inputCollection[indexInputCollection].checked = "checked"; }
          else { inputCollection[indexInputCollection].checked = ""; }
        }
      }
    }
  }
  return false;
}

// alles aan/afvinken in tabbladen filters
function SetFiltersMainDetails(a_showAll, a_containerMain, a_containerDetails, a_checked) {
  if (a_showAll) {
    SetCheckBoxes(a_containerMain, a_checked);
    SetCheckBoxes(a_containerDetails, a_checked);
  }
  else {
    SetCheckBoxes(a_containerMain, a_checked);
  }
  return true;
}

// switchen van tabbladden filters (zoekresultaten)
function switchFilterTab(idNum) {
  for (i = 0; i < 10; i++) {
    if (document.getElementById("filtertab" + i) !== null) {
      document.getElementById("filtertabje" + i).className = "tabColoredOff";
      document.getElementById("filtertab" + i).style.display = "none";
    }
  }
  document.getElementById("filtertabje" + idNum).className = "tabColoredOn";
  document.getElementById("filtertab" + idNum).style.display = "block";
}

// switchen naar tabblad resultaatlijst (zoekresultaten)
function switchGridOn() {
  // document.getElementById("lijstopties").style.display = "block";
  document.getElementById("searchResultList").style.display = "block";
  document.getElementById("searchResultMap").style.display = "none";
  document.getElementById("tabGrid").className = "tabOnColor";
  document.getElementById("tabMap").className = "tabOff";
}

// switchen naar tabblad map (zoekresultaten)
//function switchMapOn()
// staat in ZoekenNew.aspx, roept load2() aan...

// switchen van tabblad in hoteldetails (wordt mogelijk niet meer gebruikt)
function switchTab(idNum) {
  for (i = 0; i < 10; i++) {
    if (document.getElementById("ctl00_ContentPlaceHolder1_tabItem" + i) !== null) {
      document.getElementById("ctl00_ContentPlaceHolder1_tabItem" + i).className = "tabOff";
      if (document.getElementById("detailsPhotos" + i) !== null) {
        document.getElementById("detailsPhotos" + i).style.display = "none";
      }
      document.getElementById("hotelTab" + i).style.display = "none";
    }
  }

  document.getElementById("ctl00_ContentPlaceHolder1_tabItem" + idNum).className = "tabOn";
  document.getElementById("hotelTab" + idNum).style.display = "block";

  if (idNum == 4) {
    gload();
  }
}

// switchen van subtabblad in reviews (wordt mogelijk niet meer gebruikt)
function switchsubTab(idNum) {
  for (i = 0; i < 10; i++) {
    if (document.getElementById("subtabItem" + i) !== null) {
      document.getElementById("subtabItem" + i).className = "subtabitem";
      document.getElementById("subTab" + i).style.display = "none";
    }
  }
  document.getElementById("subtabItem" + idNum).className = "subtabitemOn";
  document.getElementById("subTab" + idNum).style.display = "block";
}

// tbv sterren bij reviews
selectStar = function(pStar, hiddenContainerId, labelContainerId, starId) {
	var starBase = pStar.id.substring(0,pStar.id.length-1);
	if (starBase.endsWith("1")) {
	  starBase = starBase.substring(0, starBase.length-1);
	} 

	if (hiddenContainerId != null) {
	  document.getElementById(hiddenContainerId).value = starId; 
	}
  if (labelContainerId != null) {
	  document.getElementById(labelContainerId).innerHTML = starId; 
	}
	//window.stars[starBase] = starId; 
};

hoverStar = function(pStar, labelContainerId, starId) {
	var starBase = pStar.id.substring(0,pStar.id.length-1);
	if (starBase.endsWith("1")) {
	  starBase = starBase.substring(0, starBase.length-1);
	} 
	for (var i = 1; i <= 10; i++) {
		document.getElementById(starBase + i).className = document.getElementById(starBase + i).className.replace("-selected", "");
	}
	for (var i = 1; i <= starId; i++) {
		document.getElementById(starBase + i).className = document.getElementById(starBase + i).className + '-selected';
	}

	if (labelContainerId != null) {
	  document.getElementById(labelContainerId).innerHTML = starId; 
	}
};

clearStars = function(pStar, hiddenContainerId, labelContainerId) {
	var starBase = pStar.id.substring(0,pStar.id.length-1);
	if (starBase.endsWith("1")) {
	  starBase = starBase.substring(0, starBase.length-1);
	} 
	var number = 0;
	if (hiddenContainerId != null) {
	  number = document.getElementById(hiddenContainerId).value; 
	}
		
	for (var i = 1; i <= 10; i++) {
		document.getElementById(starBase + i).className = document.getElementById(starBase + i).className.replace("-selected", "");
	}
	for (var i = 1; i <= number; i++) {
		document.getElementById(starBase + i).className = document.getElementById(starBase + i).className + '-selected';
	}
	if (labelContainerId != null) {
	  if (number == 0) {
	    document.getElementById(labelContainerId).innerHTML = ''; 
	  }
	  else {
	    document.getElementById(labelContainerId).innerHTML = number; 
	  }
	}
};

// voormalig calendar.js
function getMonthCombo(calendarField) {
  if (calendarField != null) {
    return document.getElementById(calendarField.id + 'MonthCombo');
  }
  else {
    return null;
  }
}

function getDayCombo(calendarField) {
  if (calendarField != null) {
    return document.getElementById(calendarField.id + 'DayCombo');
  }
  else {
    return null;
  }
}

function getDateMode(calendarField) {
  var dateModeField = null;
  if (calendarField != null) {
    dateModeField = document.getElementById(calendarField.id + 'DateMode');
  }

  if (dateModeField != null) {
    return dateModeField.value;
  }
  else {
    return null;
  }
}

function getCalendar(dayOrMonthCombo) {
  if (dayOrMonthCombo != null) {
    if (dayOrMonthCombo.id.endsWith('DayCombo')) {
      return this.getElementById(dayOrMonthCombo.id.replace('DayCombo', ''));
    }
    if (dayOrMonthCombo.id.endsWith('MonthCombo')) {
      return this.getElementById(dayOrMonthCombo.id.replace('MonthCombo', ''));
    }
    else {
      return null;
    }
  }
  else {
    return null;
  }
}

function updateFromCalendar(sender, date) {
  if (sender != null) {
    date = sender.selectedDate;
  }
  if (date != null) {
    updateMonths(getMonthCombo(sender), date.getFullYear(), date.getMonth() + 1);
    updateDays(getDayCombo(sender), date.getFullYear(), date.getMonth() + 1, date.getDate(), getDateMode(sender));
  }
}

function updateFromDayCombo(calendarField) {
  var dayField = getDayCombo(calendarField);
  var monthField = getMonthCombo(calendarField);
  var comboVal = (monthField.options[monthField.selectedIndex].value).split("-");

  var selectedDay = (dayField.childNodes.length == 0) ? 1 : dayField.options[dayField.selectedIndex].value;
  var selectedMonth = comboVal[0];
  var selectedYear = comboVal[1];
  updateCalendar(calendarField, selectedYear, selectedMonth, selectedDay);
}

function updateFromMonthCombo(calendarField) {
  //var calendarField = getCalendar(monthCombo);
  var monthField = getMonthCombo(calendarField);
  var dayField = getDayCombo(calendarField);
  var comboVal = (monthField.options[monthField.selectedIndex].value).split("-");
  var selectedDay = (dayField.childNodes.length == 0) ? 1 : dayField.options[dayField.selectedIndex].value;
  var selectedMonth = comboVal[0];
  var selectedYear = comboVal[1];
  updateDays(dayField, selectedYear, selectedMonth, selectedDay, getDateMode(calendarField));

  updateCalendar(calendarField, selectedYear, selectedMonth, selectedDay);
}

function updateMonths(monthCombo, selectedYear, selectedMonth) {
  var val = selectedMonth + "-" + selectedYear;
  for (var i = 0; i <= 12; i++) {
    if (monthCombo.options[i].value == val) {
      monthCombo.selectedIndex = i;
      return;
    }
  }
}

function updateDays(dayCombo, selectedYear, selectedMonth, selectedDay, currentDateMode) {
  var days;
  var startCnt = 0;
  var todayDate = new Date();
  if (currentDateMode == 'Past') {
    if (todayDate.getMonth() == selectedMonth - 1) { days = todayDate.getDate(); }
    else { days = getNumberOfDays(selectedMonth, selectedYear); }
    dayCombo.length = days;
    for (var i = days; i >= 1; i--) {
      var tmpDate = new Date(selectedYear, selectedMonth - 1, i);
      dayCombo.options[days - i] = null;
      dayCombo.options[days - i] = new Option(dayarr[tmpDate.getDay()] + " " + i, i);
    }
    if (selectedDay >= days) {
      dayCombo.selectedIndex = 0;
    }
    else {
      dayCombo.selectedIndex = days - selectedDay;
    }
  }
  else {
    days = getNumberOfDays(selectedMonth, selectedYear);
    if (currentDateMode == 'Future') {
      if (todayDate.getMonth() == selectedMonth - 1) {
        if (todayDate.getYear() == selectedYear || todayDate.getYear() + 1900 == selectedYear) { // firefox + 1900
          startCnt = todayDate.getDate() - 1;
        }
      }
    }
    dayCombo.length = days - startCnt;
    for (var i = startCnt + 1; i <= days; i++) {
      var tmpDate = new Date(selectedYear, selectedMonth - 1, i);
      dayCombo.options[i - 1 - startCnt] = null;
      dayCombo.options[i - 1 - startCnt] = new Option(dayarr[tmpDate.getDay()] + " " + i, i);
    }
    if (selectedDay <= startCnt) {
      dayCombo.selectedIndex = 0;
    }
    else if (selectedDay > (dayCombo.options.length + startCnt)) {
      dayCombo.selectedIndex = dayCombo.options.length - 1;
    }
    else {
      dayCombo.selectedIndex = selectedDay - startCnt - 1;
    }
  }
}

function updateCalendar(calendarField, selectedYear, selectedMonth, selectedDay) {
  var d = new Date(selectedYear, selectedMonth - 1, selectedDay);
  calendarField.setDate(d, d);
}

function getNumberOfDays(month, year) {
  if (month == 2) {
    var feb = new Date(year, 1, 29);
    return (feb.getMonth() == 1) ? 29 : 28;
  }
  else return (month == 4 || month == 6 || month == 9 || month == 11) ? 30 : 31;
}

// voormalig tooltips.js
function enableTooltips(enableTooltipsContainer){
  var links,classes,i,j,h,btciframe;
  if(!document.getElementById || !document.getElementsByTagName) return;
  classes=getElementsWithTitleOrAlt(enableTooltipsContainer);
  if (classes.length > 0) {
    for (j = 0; j < classes.length; j++) {
	    Prepare(classes[j]);
    }
  }
}

function getElementsWithTitleOrAlt(node) {
	if(!node) node = document.getElementsByTagName("body")[0];
	var a = [];
	var els = node.getElementsByTagName("*");
	for(var i=0,j=els.length; i<j; i++) {
	  var elementForTitle = els[i];
		if(elementForTitle.title.length > 0) { 
		  a.push(elementForTitle);
		}
		else if (elementForTitle.getAttribute("alt") != null && elementForTitle.getAttribute("alt").length > 0) {
		  a.push(elementForTitle);
		}
  }
	return a;
};

/**
 * Attaches a <strong class="highlight">event</strong> listener
 * @author sos
 * @param el {HTMLElement} The element to which you would attach this listener
 * @param ev {String} The <strong class="highlight">event</strong> name (eg. click)
 * @param fn {Function} The <strong class="highlight">event</strong> listener function
 */
function addEvent(el, ev, fn) {
    if(el.addEventListener) {
      el.addEventListener(ev, fn, false);
    }
    else {
      el.attachEvent('on' + ev, fn);
    }
}

function Prepare(el){
  var tooltip,t;
  t=el.getAttribute("title");
  if (t == null || t.length == 0) {
    t = el.getAttribute("alt");
  }
  if(t!=null && t.length>0 && el.className.indexOf('noToolTip') == -1) {
	  el.removeAttribute("title");
	  el.removeAttribute("alt");
	  tooltip=CreateEl("span","tooltip");
    tooltip.innerHTML = t;
	  el.tooltip=tooltip;
	  addEvent(el, 'mouseover', showTooltipEvent);
    addEvent(el, 'mouseout', hideTooltip);
    //el.onmouseover= showTooltip;  //delayTooltip;
	  //el.onmouseout=hideTooltip;
  }
}

function GetTarget(e) {
	var target;
	if (!e) var e = window.event;
	if (e.target) target = e.target;
	else if (e.srcElement) target = e.srcElement;
	if (target.nodeType == 3) // defeat Safari bug
		target = target.parentNode;
	return target;
}

function GetCurrentTarget(e) {
	var target;
	if (!e) var e = window.event;
	    //alert(e.currentTarget + ' ' + this.id);
	if (e.currentTarget) {
	  target = e.currentTarget;
	  if (target == this) {
	  }
	}
  return target;
}

function GetParent(el)
{
  if (el != null) {
	  return(el.parentNode || el.parentElement || el.offsetParent);
	}
	else { return null; }
}

function showTooltipEvent(e){
  var currentTarget = GetCurrentTarget(e);
  var target = GetTarget(e);
  if (target != null && target.tooltip != null) {
    if (currentTarget != null) {
      //CurrentTarget is supported, so make sure tip is only set once
      if (currentTarget == target) {
        Tip(target.tooltip.innerHTML);
      }
    }
    else {
      //CurrentTarget isnt supported, so set ToolTip multiple times while bubbling
      Tip(target.tooltip.innerHTML);
    }
  }
  else {
    //First check two types of parents before showing currentTargets tooltip, 
    //because of possible lvls of titles where showing the child's title is preferred
    var targetParent = GetParent(target);
    if (targetParent != null && targetParent.tooltip != null) {
      Tip(targetParent.tooltip.innerHTML);
    }
    else {
      //Check for 2nd lvl of parent
      targetParent = GetParent(targetParent);
      if (targetParent != null && targetParent.tooltip != null) {
        Tip(targetParent.tooltip.innerHTML);
      }
      else if (currentTarget != null && currentTarget.tooltip != null) {
        //target en target.parentElement dont have a tooltip, so current Tooltip can be shown
        Tip(currentTarget.tooltip.innerHTML);
      }
    }
  }
}

function showTooltip(e){
  Tip(this.tooltip.innerHTML);
}

function hideTooltip(e){
  UnTip();
}

function CreateEl(t,c){
var x=document.createElement(t);
x.className=c;
x.style.display="block";
return(x);
}
