// imagehandling functions
var ensImageArray ;
var ensImageIndex = 0;
function setupImageArray(strBasedir,strImageArray)
{
	ensImageArray = strImageArray.split(";");
	var i;
	for (i = 0;i < ensImageArray.length;i++)
	{
		ensImageArray[i] = strBasedir + "" + ensImageArray[i];
	}
	ensImageIndex = 0;
}

function nextImage()
{

	if (ensImageArray.length > 0 )
	{
		ensImageIndex += 1;		
		ensImageIndex %= ensImageArray.length;
	} else {
		ensImageIndex = 0;
	}
	setEnsImage();
}
function previousImage()
{
	if (ensImageArray.length > 0 )
	{
		ensImageIndex -= 1;		
		ensImageIndex += ensImageArray.length;
		ensImageIndex %= ensImageArray.length;
	} else {
		ensImageIndex = 0;
	}
	setEnsImage();
}

function setEnsImage()
{
	var e = document.getElementById("eimage");
	if(e != null)
	{
		e.src = ensImageArray[ensImageIndex];
	}
	
}



function alignFooter()
{

	var f = getToolAnchorPosition("footer").y;	
	var h = wHeight();
	if ( ( h-21 ) > f && (h - 147) > 0 && document.getElementById("contentdiv") != null)
	{
		var el = document.getElementById("contentdiv");
		el.style.height = (h - 84 - 26 - 21 - 4 - 6 -6 ) +'px';
	}
	
	
	// align searchbox if necessary
	el = document.getElementById("searchresultcontainer");
	if(el != null )
	{
		el.style.height = h - 147 - 220 + 'px';
	}
	el = document.getElementById("searchresultcontainer2");
	if(el != null )
	{
		var corr = 28;
		if(document.all)
		{
			corr = 38;
		}
		el.style.height = h - 147 - corr  + 'px';//- 220;
	}
	// align guestbook if necessary
	el = document.getElementById("guestbookcontainer");
	if(el != null )
	{
		var corr = 28;
		if(document.all)
		{
			corr = 38;
		}
		el.style.height = h - 292 - corr  + 'px';//- 220;
	}
		
	// align locations if necessary
	el = document.getElementById("locationscontainer");
	if(el != null )
	{
		var corr = 28;
		if(document.all)
		{
			corr = 38;
		}
		el.style.height = h - 170 - corr  + 'px';//- 220;
	}
	
	el = document.getElementById("leftcontent");
	if(el != null && false)
	{
		
		el.style.height = h - 147 + 'px';
		alert ( el.style.height ) ;
	}
	
}


function getToolAnchorPosition(anchorname)
 {
 var useWindow=false;var coordinates=new Object();
 var x=0,y=0;
 var use_gebi=false, use_css=false, use_layers=false;
 if (document.getElementById) { use_gebi=true; } 
 else if (document.all) { use_css=true; } 
 else if (document.layers) { use_layers=true; } 
 
 if (use_gebi && document.all) 
 {
  x=_AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
  y=_AnchorPosition_getPageOffsetTop(document.all[anchorname]);
  } 
 else if (use_gebi) {
  var o=document.getElementById(anchorname);
  x=_AnchorPosition_getPageOffsetLeft(o);
  y=_AnchorPosition_getPageOffsetTop(o);
 } 
 else if (use_css) {
  x=_AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
  y=_AnchorPosition_getPageOffsetTop(document.all[anchorname]);
 } 
 else if (use_layers) {
	var found=0;
	for (var i=0; i<document.anchors.length; i++) {
		if (document.anchors[i].name==anchorname) { found=1; break; }	
	} 
	if (found==0) {
		coordinates.x=0; coordinates.y=0; 
		return coordinates;	
	}		
	x=document.anchors[i].x;
	y=document.anchors[i].y;
 }else {
 		coordinates.x=0; 
 		coordinates.y=0; 
 		return coordinates;	
 }	
 coordinates.x=x;	
 coordinates.y=y;	
 return coordinates;
}
function _AnchorPosition_getPageOffsetLeft (el) {ol = 0;if(el != null){	var ol=el.offsetLeft;while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }}return ol;}
function _AnchorPosition_getWindowOffsetLeft (el) {return _AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;}	
function _AnchorPosition_getPageOffsetTop (el) {ot = 0;if(el != null){var ot=el.offsetTop;while((el=el.offsetParent) != null) { ot += el.offsetTop; }}return ot;}
function _AnchorPosition_getWindowOffsetTop (el) {return _AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;}
function wHeight(){	var windowHeight=0;	if (typeof(window.innerHeight)=='number') 	{		windowHeight=window.innerHeight;	} else {		if (document.documentElement && document.documentElement.clientHeight) 		{	windowHeight=document.documentElement.clientHeight;	}else {if (document.body&&document.body.clientHeight) {windowHeight=document.body.clientHeight;}}}return windowHeight;}
function wWidth(){var windowWidth=0;	if (typeof(window.innerWidth)=='number') {	windowWidth=window.innerWidth;} else {if (document.documentElement && document.documentElement.clientWidth) {	windowWidth=document.documentElement.clientWidth;	}else {if (document.body && document.body.clientWidth) {windowWidth=document.body.clientWidth;}}}return windowWidth;}

function mysize()
{
	var f = getToolAnchorPosition("footer").y;	
	var h = wHeight();

	if ( ( h-21 ) > f && (h - 147) > 0 )
	{
		var el = document.getElementById("contentdiv")
		el.style.height = (h - 84 - 26 - 21 - 4 - 6 -6 ) +'px';
	}
	
}
//window.onresize=mysize;

var visibleitem = null;
var putimeout=null;

function show(item,e,offset)
{
	var x,src;
	clearTimeout(putimeout);
	putimeout = null;
	x = e.clientX;
	if(e.stopPropagation)
	{
		e.stopPropagation()
		
	}else{
		e.cancelBubble = true;
	}
	var el = document.getElementById(item);
	if (el == visibleitem)
		return;
	if(visibleitem != null)
		visibleitem.style.display = 'none';
	visibleitem = el;	
	if(el != null)
	{
		el.style.left = offset + 'px';
		el.style.zIndex = 999;
		el.style.display = 'block';
		
	}
}
function hide(e)
{
	clearTimeout(putimeout);
	if(e.stopPropagation)
		e.stopPropagation()
	else
		e.cancelBubble = true;
	putimeout = setTimeout("_hide()",250);

}

function _hide()
{
	if(visibleitem != null)
		visibleitem.style.display = 'none';
	visibleitem = null;

}

function validateDate(form)
{
	
	var day = parseInt(form.search_day.value);
	var month = parseInt(form.search_month.value);
	var year = parseInt(form.search_year.value);
	
	var res = true;
	var text = "";
	var now = new Date();
	// is the date valid ?
	if(isNaN(day) && isNaN(month) && isNaN(year))
	{
		form.submit();
	} else {
		if(isNaN(day)  || isNaN(month)|| isNaN(year))
		{
			res = false;
			text = 'De datum is onvolledig ingevuld';
		} else {
			switch (isDate(day,month,year,now.getFullYear(),now.getFullYear()+3))
			{
				case 1:
					text = "De datum is niet geldig";
					res = false;
					break;
				case 2:
					text="De datum ligt in het verleden";
					res = false;
					break;
				case 3:
					res = false;
					text="De datum ligt te ver in de toekomst";
					break;
				case 4: 
					res = false;
					text= "Voor een boeking voor vanavond neemt u contact op met 010-2733888\n";
				break;					
				default:
					// nop
				
			}
	

		}
	}
	
	if(res)
		form.submit();
	else
		doError(text);
	
}


function doError(text)
{
	var el = document.getElementById('errorcontainer');
	if (el == null)
	{
		
		el.style.display = 'block';
		el.innerHTML = text;
	} else {
		alert(text);
	}
	
}
function clearError()
{
	var el = document.getElementById('errorcontainer');
	if (el != null)
	{	
		el.style.display = 'none';
	} 
}



function NewWindow(mypage, myname, w, h, scroll) {
	
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable=no'
	win = window.open(mypage, myname, winprops);
	if (parseInt(navigator.appVersion) >= 4) { win.window.focus(); }
}


function genericLoader()
{
	this.functions = new Array();
	
	function _add(fn)
	{
		this.functions[this.functions.length] = fn;
	}
	this.add = _add;
	function _process()
	{
		var i;
		for (i=0;i<this.functions.length;i++)
			this.functions[i]();
	}
	this.go = _process;
}


function _Client()
{
		var tmp,i,j;
	this.isFlashNS=(navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"] && navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)?true:false;
	this.isMoz2=(navigator.userAgent.indexOf("Mozilla/2") != -1)?true:false;
	this.isIE=(navigator.appName == "Microsoft Internet Explorer")?true:false;
	this.isNetscape6 = (!document.all && !document.layers && navigator.appName == "Netscape" && parseInt(navigator.appVersion) >=5)?true:false;
	this.isDOM = (document.getElementById) ? true : false;
	this.isIE4 = (navigator.userAgent.indexOf("MSIE 4.0") != -1)?true:false;
	this.isIE45 = (navigator.userAgent.indexOf("MSIE 4.5") != -1)?true:false;
	this.isIE5 = (navigator.userAgent.indexOf("MSIE 5.0") != -1)?true:false;
	this.isIE55 = (navigator.userAgent.indexOf("MSIE 5.5") != -1)?true:false;
	this.isIE6 = (navigator.userAgent.indexOf("MSIE 6.0") != -1)?true:false;
	this.isMac = (navigator.userAgent.indexOf("Mac") != -1)?true:false;
	this.isMacIE4 = (this.isMac && this.isIE4) ? true : false;
	this.isMacIE45 = (this.isMac && this.isIE45) ? true : false;
	this.isMacIE5 = (this.isMac && this.isIE5) ? true : false;
	this.isOpera = (navigator.userAgent.indexOf("Opera") != -1)?true:false;
	this.isOpera3 = (navigator.userAgent.indexOf("Opera 3.")!= -1)?true:false;
	this.isOpera4 = (navigator.userAgent.indexOf("Opera 4.")!= -1)?true:false;
	this.isNetscape = (!this.isOpera && (navigator.appName.indexOf("Netscape") != -1 && navigator.userAgent.indexOf("4.") != -1))?true:false;
	this.isNS3 = (!this.isOpera && (navigator.userAgent.indexOf("Netscape") != -1 && navigator.userAgent.indexOf("3.") != -1)) ? true : false;
	this.isNSDIV = (!this.isOpera && (this.isNetscape && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("4.")+2)) > 5)) ? true : false;
	
}


function myresize()
{
	// to be filled in ...
}

var client = new _Client();
var gl = new genericLoader();
//gl.add(myresize);


function validateDate(form)
{
	
	var day = parseInt(form.search_day.value);
	var month = parseInt(form.search_month.value);
	var year = parseInt(form.search_year.value);
	
	var res = true;
	var text = "";
	var now = new Date();
	// is the date valid ?
	if(isNaN(day) && isNaN(month) && isNaN(year))
	{
		form.submit();
	} else {
		if(isNaN(day)  || isNaN(month)|| isNaN(year))
		{
			res = false;
			text = 'De datum is onvolledig ingevuld';
		} else {
			switch (isDate(day,month,year,now.getFullYear(),now.getFullYear()+3))
			{
				case 1:
					text = "De datum is niet geldig";
					res = false;
					break;
				case 2:
					text="De datum ligt in het verleden";
					res = false;
					break;
				case 3:
					res = false;
					text="De datum ligt te ver in de toekomst";
					break;
				case 4: 
					res = false;
					text= "Voor een boeking voor vanavond neemt u contact op met 010-2733888\n";
				break;					
				default:
					// nop
				
			}
	

		}
	}
	
	if(res)
		form.submit();
	else
		alert(text);
	
}




function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(day,month,year,minYear,maxYear){


	var Invalid = 1;
	var Good = 0;
	var Past = 2;
	var Future = 3;
	var Today = 4;
	var Now = new Date();
	var nowYear = Now.getYear();
	if(nowYear < 1900) nowYear += 1900;

	var nowDay = Now.getDate();
	var nowMonth = Now.getMonth() + 1;
	var nowDate = parseInt(nowYear + "" + (10 + nowMonth) + "" + (10 + nowDay) + "");
	var testday = parseInt(year + "" + (10 + month) + "" + (10 + day) + "");
	var daysInMonth = DaysArray(12)
	if (day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		return Invalid;
	}
	if (year==0 || year<minYear){
		return Past
	}
	if(year>maxYear)
		return Future;
	//alert(testday + ":" + nowDate);
	if(testday < nowDate)
	{
		return Past;
        }
	if(testday == nowDate)
	{
		return Today;
	}
		
	

return Good
}

function checkOptionForm(form)
{
	//form.submit();
	//return;
	var retval='';

	// date
	// valid and in the future !
	var day = parseInt(form.search_day.value);
	var month = parseInt(form.search_month.value);
	var year = parseInt(form.search_year.value);
	var countryid = form.countryid.value;
	var now = new Date();
	var t='';
	var t2;
	if(isNaN(day) || isNaN(month) || isNaN(year))
	{
		retval += "De datum is niet volledig ingevuld.\n";
	} else {
		switch (isDate(day,month,year,now.getFullYear(),now.getFullYear()+3))
		{
			case 1:
				retval += "De datum is niet geldig\n";
				break;
			case 2:
				retval += "De datum ligt in het verleden\n";
				break;
			case 3:
				retval += "De datum ligt te ver in de toekomst\n";
				break;
			case 4: retval += "Voor een boeking voor vanavond neemt u contact op met 010-2733888\n";
				break;
			default:
				// nop
			
		}
	
	}
	// firstname
	t = new String(form.firstname.value);
	if(t.length < 1){
		retval += "Voornaam is niet ingevuld\n";
	}
	if(t.length > 50){
		retval += "Voornaam is te lang\n";
	}
	if(t.match(/[\(\)\[\]\*\%#@<>]+/) ){
		retval += "Voornaam bevat ongeldige karakters\n";
	}

	// prename
	t = new String(form.prename.value);
	if(t.length > 50){
		retval += "Tussenvoegsel is te lang\n";
	}
	if(t.match(/[\(\)\[\]\*\%#@<>]+/) ){
		retval += "Tussenvoegsel bevat ongeldige karakters\n";
	}

	// lastname
	t = new String(form.lastname.value);
	if(t.length < 1){
		retval += "Achternaam is niet ingevuld\n";
	}
	if(t.length > 50){
		retval += "Achternaam is te lang\n";
	}
	if(t.match(/[\(\)\[\]\*\%#@<>\"]+/) ){
		retval += "Achternaam bevat ongeldige karakters\n";
	}
	if(form.eventtype.value == '')
		retval += "U heeft geen feestsoort gekozen\n";		
	// email
	t = new String(form.email.value);
	if(!t.match(/^\w+([-+.\'_]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/i))
	{
		retval += "Email is niet correct ingevuld\n";
	}
	// password/password2
	t = new String(form.password.value);
	t2 = new String(form.password2.value);
	if(t.length < 5)
			retval += "Wachtwoord moet minimaal 5 karakters bevatten\n";
	if(t.length > 20)
			retval += "Wachtwoord is te lang\n";
	if(t.match(/[\(\\)\'\"]+/))
			retval += "Wachtwoord bevat ongeldige karakters\n";
	if(t.length != t2.length)
			retval += "Wachtwoorden komen niet overeen\n";
	else
	{
		var testit = true;
		for(var i=0;i<t.length;i++)
		{
			if(t.charAt(i) != t2.charAt(i))
				testit = false;
		}
		if(!testit)
			retval += "Wachtwoorden komen niet overeen\n";
			
	}
	// zipcode
	// /^[0-9]{4,4}\s?[a-zA-Z]{2,2}$/i
	
    t = new String(form.zipcode.value);
	if(countryid == '528')
	{
	    if(!t.match(/^[0-9]{4,4}\s?[a-zA-Z]{2,2}$/i))
	    {
		    retval += "Postcode is niet correct ingevuld\n";
	    }
    } else {
    	if(t.length < 1){
	    	retval += "Postcode is niet ingevuld\n";
	    }
	}
	// city
	t = new String(form.city.value);
	if(t.length < 1){
		retval += "Plaatsnaam is niet ingevuld\n";
	}
	if(t.length > 100){
		retval += "Plaatsnaam is te lang\n";
	}
	if(t.match(/[\(\)\[\]\*\%#@<>]+/) ){
		retval += "Plaatsnaam bevat ongeldige karakters\n";
	}

	// street
	t = new String(form.street.value);
	if(t.length < 1){
		retval += "Straatnaam is niet ingevuld\n";
	}
	if(t.length > 100){
		retval += "Straatnaam is te lang\n";
	}
	if(t.match(/[\(\)\[\]\*\%#@<>]+/) ){
		retval += "Straatnaam bevat ongeldige karakters\n";
	}

	// streetnumber
	t = new String(form.streetnumber.value);
	if(t.length < 1){
		retval += "Huisnummer is niet ingevuld\n";
	}
	if(t.length > 10){
		retval += "Huisnummer is te lang\n";
	}
	if(t.match(/[\[\]\*\%#@<>]+/) ){
		retval += "Huisnummer bevat ongeldige karakters\n";
	}

	// phone
	t = new String(form.phone.value);
	if(t.length < 1){
		retval += "Telefoon is niet ingevuld\n";
	}
	if(t.length > 20){
		retval += "Telefoon is te lang\n";
	}

	if(retval.length > 0 )
	{
		alert(retval);
		return false;
	}
	else{
		form.submit();
	}
}
function printWindow(id) {
    try {
        window.print();
    }
    catch(ex) {
        alert("Kies \"print\" uit het menu van uw browser.");
    }
}

var frmsubmitted = 0;
function submitform(formname) {
	var frm;
	if((frmsubmitted == 0) && (frm = document.getElementById(formname))) {
		frmsubmitted++;
		frm.submit();
	}
}
function checkRegisterForm(form)
{
	//form.submit();
	//return;
	var retval='';

	// date
	// valid and in the future !
	var t='';
	var t2;

	// firstname
	t = new String(form.firstname.value);
	if(t.length < 1){
		retval += "Voornaam is niet ingevuld\n";
	}
	if(t.length > 50){
		retval += "Voornaam is te lang\n";
	}
	if(t.match(/[\(\)\[\]\*\%#@<>]+/) ){
		retval += "Voornaam bevat ongeldige karakters\n";
	}

	// prename
	t = new String(form.prename.value);
	if(t.length > 50){
		retval += "Tussenvoegsel is te lang\n";
	}
	if(t.match(/[\(\)\[\]\*\%#@<>]+/) ){
		retval += "Tussenvoegsel bevat ongeldige karakters\n";
	}

	// lastname
	t = new String(form.lastname.value);
	if(t.length < 1){
		retval += "Achternaam is niet ingevuld\n";
	}
	if(t.length > 50){
		retval += "Achternaam is te lang\n";
	}
	if(t.match(/[\(\)\[\]\*\%#@<>\"]+/) ){
		retval += "Achternaam bevat ongeldige karakters\n";
	}
	if(form.eventtype.value == '')
		retval += "U heeft geen feestsoort gekozen\n";		
	// email
	t = new String(form.email.value);
	if(!t.match(/^\w+([-+.\'_]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/i))
	{
		retval += "Email is niet correct ingevuld\n";
	}
	// password/password2
	t = new String(form.password.value);
	t2 = new String(form.password2.value);
	if(t.length < 5)
			retval += "Wachtwoord moet minimaal 5 karakters bevatten\n";
	if(t.length > 20)
			retval += "Wachtwoord is te lang\n";
	if(t.match(/[\(\\)\'\"]+/))
			retval += "Wachtwoord bevat ongeldige karakters\n";
	if(t.length != t2.length)
			retval += "Wachtwoorden komen niet overeen\n";
	else
	{
		var testit = true;
		for(var i=0;i<t.length;i++)
		{
			if(t.charAt(i) != t2.charAt(i))
				testit = false;
		}
		if(!testit)
			retval += "Wachtwoorden komen niet overeen\n";
			
	}
	// zipcode
	// /^[0-9]{4,4}\s?[a-zA-Z]{2,2}$/i
	t = new String(form.zipcode.value);
	if(!t.match(/^[0-9]{4,4}\s?[a-zA-Z]{2,2}$/i))
	{
		retval += "Postcode is niet correct ingevuld\n";
	}
	// city
	t = new String(form.city.value);
	if(t.length < 1){
		retval += "Plaatsnaam is niet ingevuld\n";
	}
	if(t.length > 100){
		retval += "Plaatsnaam is te lang\n";
	}
	if(t.match(/[\(\)\[\]\*\%#@<>]+/) ){
		retval += "Plaatsnaam bevat ongeldige karakters\n";
	}

	// street
	t = new String(form.street.value);
	if(t.length < 1){
		retval += "Straatnaam is niet ingevuld\n";
	}
	if(t.length > 100){
		retval += "Straatnaam is te lang\n";
	}
	if(t.match(/[\(\)\[\]\*\%#@<>]+/) ){
		retval += "Straatnaam bevat ongeldige karakters\n";
	}

	// streetnumber
	t = new String(form.streetnumber.value);
	if(t.length < 1){
		retval += "Huisnummer is niet ingevuld\n";
	}
	if(t.length > 10){
		retval += "Huisnummer is te lang\n";
	}
	if(t.match(/[\[\]\*\%#@<>]+/) ){
		retval += "Huisnummer bevat ongeldige karakters\n";
	}

	// phone
	t = new String(form.phone.value);
	if(t.length < 1){
		retval += "Telefoon is niet ingevuld\n";
	}
	if(t.length > 20){
		retval += "Telefoon is te lang\n";
	}

	if(retval.length > 0 )
	{
		alert(retval);
		return false;
	}
	else{
		form.submit();
	}
}

function highlight(name)
{
    eval("imgsrc = " + name + "_selected");
    img = document.getElementById(name);
    img.src = imgsrc.src;
}

function unhighlight(name)
{
    eval("imgsrc = " + name);
    img = document.getElementById(name);
    img.src = imgsrc.src;
}