function CreateBookmarkLink(url, title) {
	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	}
	else if( window.external ) { // IE Favorite
		window.external.AddFavorite( url, title);
	}
	else if(window.opera && window.print) { // Opera Hotlist
		return true;
	}
}
function makeUrl(urlName) {
	if(urlName.startsWith('http://')) {
		return urlName;
	} else if(urlName.startsWith('/')) {
		return urlName;
	} else if(urlName.startsWith('#')) {
		return urlName; 
	} else if(urlName.startsWith('mailto:')) {
		return urlName; 
	} else {
		return '/texelcatering/3/nl/'+urlName+'/'; 
	}
}
function goToPage(urlName) {
	document.location = makeUrl(urlName); 
}
var _locationHistory = new Array();
function addToLocationBar(name, url, _mark) {
	if(_mark == undefined) _mark = '·';
	_locationHistory[_locationHistory.length] = new Array(name,url,_mark);
	repaintLocationBar();
}
function removeLast() {
	_locationHistory = new Array();
	
	repaintLocationBar();
}
function repaintLocationBar() {
	if($('locationAddDiv') == null) return undefined;	// this is a bug, still have to fix.
	
	$('locationAddDiv').innerHTML = '&nbsp;';
	document.title = _origDocTitle;
	
	for(var i = 0; i < _locationHistory.length; i++) {
		name = _locationHistory[i][0];
		url = _locationHistory[i][1];
		_mark = _locationHistory[i][2];
		$('locationAddDiv').innerHTML += '&nbsp;&nbsp;<b>'+_mark+'</b>&nbsp;&nbsp; <a href="'+makeUrl(url)+'">'+name+'</a>';
		document.title += '  '+_mark+'  '+name;
	}
}
function hideFolderOverlay() {
	if($CSS('overlay_folder').display == 'block') {
		document.location = '#';
		
		animateExit('overlay_black');
		animateExit('overlay_folder');
	}
}

function hideBuynowOverlay() {
	if($CSS('overlay_buynow').display == 'block') {
		document.location = '#';
		
		animateExit('overlay_black');
		animateExit('overlay_buynow');
	}
}
var currGallery = false;
function showGalleryOverlay(galId, imgId) {
	if(currGallery == false || currGallery.id != galId) {
		animateEnter('overlay_black', 7);
		animateEnter('overlay_gallery', 10);
		
		addToLocationBar('Foto albums', 'foto_album', '>');
			
		new Ajax.Request('/texelcatering/extern/json.gallery.php?galId='+galId, {
			method:'get',
			requestHeaders: {Accept: 'application/json'},
			onSuccess: function(transport){
				var json = transport.responseText.evalJSON(true);
				
				addToLocationBar(json.name, '#images/'+json.id+'/'+imgId);
				currGallery = json;
				paintGallery(json, imgId);
			},
			onFailure: function() {
				$('overlay_gallery').innerHTML = "Er is een fout opgetreden. Onze excuses voor het ongemak. Druk op vernieuwen om de pagina opnieuw te laden. ";
				//pageTracker._trackPageview(windlow.location+"/error/viewFolder");
			}
		});
	} else paintGalleryImg(currGallery, imgId);
}
function paintGallery(json, imgId) {
	var img = json.images[imgId];
	
	$('overlay_gallery').innerHTML = '<div id="overlay_gal_thumbs"></div><div id="overlay_gal_img"><div id="closeImages" onClick="hideGalleryOverlay();" title="Sluit foto album">X</div><img src="'+img.img+'" width="640" /></div><div id="overlay_gal_desc"></div>';
	
	var txt = '';
	for(var i = 0; i < json.total; i++) {
		txt += '<td><img src="'+json.images[i].img+'" onClick="goToPage(\'#images/'+json.id+'/'+i+'\');"/></td>';
	}
	$('overlay_gal_thumbs').onClick=function() {
		alert('hidi');
	}
	$('overlay_gal_thumbs').innerHTML = '<div id="overlay_gal_thumbs_div"><table cellpadding=0 cellspacing=0><tr>'+txt+'<td><img src="/texelcatering/extern/images/spacer.gif" style="visibility: hidden" width=305></td></tr></table></div>';
	paintGalleryImg(json, imgId);
}
function paintGalleryImg(json, imgId) {
	var img = json.images[imgId];
	
	var images = $('overlay_gal_thumbs_div').getElementsBySelector('img');
	for(var i = 0; i < images.length; i++) {
		if(i != imgId) images[i].className = '';
		else images[i].className = 'selected';
	}
	
	var sum = 0;
	for(var i = 0; i < imgId; i++)
		sum += images[i].width+4+4;
	sum += images[i].width*.5;
	
	var _current = $('overlay_gal_thumbs').scrollLeft;
	var _to = Math.round(sum);
	for(var i = 1; i < Math.round(Math.abs(_current-_to)/10); i++) {
		if(_current-_to > 0) setTimeout("$('overlay_gal_thumbs').scrollLeft = "+(_current-10*i)+";", 30*i);
		else setTimeout("$('overlay_gal_thumbs').scrollLeft = "+(_current+10*i)+";", 30*i);
	}
	setTimeout("$('overlay_gal_thumbs').scrollLeft = "+_to+";", 30*i);
	
	$CSS('overlay_gal_img').overflow = 'hidden';
	
	$('overlay_gal_img').getElementsBySelector('img')[0].src = img.img
	$('overlay_gal_desc').innerHTML = '<h1>'+json.name+': '+img.name+'</h1><p>'+img.desc+'</p>';
}
function hideGalleryOverlay() {
	if($CSS('overlay_gallery').display == 'block') {
		document.location = '#';
		
		animateExit('overlay_black');
		animateExit('overlay_gallery');
		currGallery = false;
	}
}
var currFolder = false;
function showFolderOverlay(folderId, pageId, _isNewsLetter) {
	animateEnter('overlay_black', 7);
	animateEnter('overlay_folder', 10);
	
	if(!currFolder || currFolder.id != folderId) {
		$('overlay_folder').innerHTML = "Bezig met het laden van de folder";
		
		if(_isNewsLetter) {
			addToLocationBar('Alle Nieuwsbrieven', 'nieuwsbrief', '>');
		} else {
			addToLocationBar('Alle folders', 'folders', '>');
		}
		
		//pageTracker._trackPageview(window.location);
	
	 	/*new Ajax.Request('/texelcatering/extern/json.folder.php?folderId='+folderId, {
			method:'get',
			requestHeaders: {Accept: 'application/json'},
			onSuccess: function(transport){
				var json = transport.responseText.evalJSON(true);
				
				addToLocationBar(json.name, '#folder/'+json.id);
				
				currFolder = json;
				paintFolder(pageId);
			},
			onFailure: function() {
				$('overlay_folder').innerHTML = "Er is een fout opgetreden. Onze excuses voor het ongemak. Druk op vernieuwen om de pagina opnieuw te laden. ";
				//pageTracker._trackPageview(windlow.location+"/error/viewFolder");
			}
		});*/
	 	$('overlay_folder').innerHTML = '<div id="closeFolder" onClick="hideFolderOverlay();" title="Sluit folder">X</div>'+"<iframe src='/texelcatering/extern/folder.php?folderId="+folderId+"' style='position: relative; top: 25px; width: 100%; height: 90%;' />"
	} else {
		//pageTracker._trackPageview(window.location+"/changedPage");
		
	 	//paintFolder(pageId);
	 	// ignore
	}
	
}
function paintFolder(pageId) {
	if(pageId == undefined) pageId = 1;
	json = currFolder;
	
	var smalls = '';
	var fcount = 0;
			
	var imgs = '';
	if(json.f1 != "") {
		imgs += "<a name='folder/"+json.id+"/1'><hr style='visibility: hidden'></a><img src='/texelcatering/extern"+json.f1+"' alt='Pagina 1' />"
		smalls += "<img src='/texelcatering/extern"+json.f1+"' alt='Bekijk pagina 1' "+(pageId==1?"class='selected'":"")+" onClick='javascript:window.location=\"#folder/"+json.id+"/1\"' />"
		fcount++;
	}
	if(json.f2 != "") {
		imgs += "<a name='folder/"+json.id+"/2'><hr style='visibility: hidden'></a><img src='/texelcatering/extern"+json.f2+"' alt='Pagina 2' />"
		smalls += "<img src='/texelcatering/extern"+json.f2+"' alt='Bekijk pagina 2' "+(pageId==2?"class='selected'":"")+" onClick='javascript:window.location=\"#folder/"+json.id+"/2\"' />"
		fcount++;
	}
	if(json.f3 != "") {
		imgs += "<a name='folder/"+json.id+"/3'><hr style='visibility: hidden'></a><img src='/texelcatering/extern"+json.f3+"' alt='Pagina 3' />"
		smalls += "<img src='/texelcatering/extern"+json.f3+"' alt='Bekijk pagina 3' "+(pageId==3?"class='selected'":"")+" onClick='javascript:window.location=\"#folder/"+json.id+"/3\"' />"
		fcount++;
	}
	if(json.f4 != "") {
		imgs += "<a name='folder/"+json.id+"/4'><hr style='visibility: hidden'></a><img src='/texelcatering/extern"+json.f4+"' alt='Pagina 4' />"
		smalls += "<img src='/texelcatering/extern"+json.f4+"' alt='Bekijk pagina 4' "+(pageId==4?"class='selected'":"")+" onClick='javascript:window.location=\"#folder/"+json.id+"/4\"' />"
		fcount++;
	}
	
	
	var txt = '';
	txt += '<div id="closeFolder" onClick="hideFolderOverlay();" title="Sluit folder">X</div><h1>'+json.name+'</h1><div id="overlay_folder_youSee">&nbsp;</div><div id="overlay_folder_smalls"><b>Pagina\'s:</b><br />'+smalls+'</div>'+imgs;
	
	$('overlay_folder').innerHTML = txt;
	
	// viewport
	var screenHeight = document.viewport.getHeight();
	var thumbRatio = (942/214);
	$CSS('overlay_folder_youSee').height = Math.round(screenHeight/thumbRatio)+'px';
	$CSS('overlay_folder_smalls').height = (250*fcount)+'px';
}

var _origDocTitle = 'Texel Catering Service Ruud Boom | Lekker eten op Texel';
Position.GetWindowSize = function(w) {
	w = w ? w : window;
	var width = w.innerWidth || (w.document.documentElement.clientWidth || w.document.body.clientWidth);
	var height = w.innerHeight || (w.document.documentElement.clientHeight || w.document.body.clientHeight);
	return [width, height]
}
window.onload = function() {
	window.onhashchange;
}


window.onscroll = function() {
	if(currFolder) {
		// put overlay
		var thumbRatio = (942/214);
		
		var startOffset = 80; 
		
		var verticalOffset = Math.round(document.viewport.getScrollOffsets()['top']/thumbRatio);
		var scrollOffset = document.viewport.getScrollOffsets()['top'];
		
		if (navigator.appName == 'Microsoft Internet Explorer') {
			$CSS('overlay_folder_smalls').top = startOffset+scrollOffset+'px';
			$CSS('overlay_folder_youSee').top = startOffset+verticalOffset+scrollOffset+'px';
		} else {
			$CSS('overlay_folder_youSee').top = startOffset+verticalOffset+'px';
		}
	}
}

function animateEnter(elmId, maxOpac) {
	if(Prototype.Browser.IE) {
		if($CSS(elmId) == undefined) return undefined;	// IE 8 bug, DOM should allready be loaded
		
		setOpacity($CSS(elmId), maxOpac);
		$CSS(elmId).display='block';
	} else {
		setOpacity($CSS(elmId), 0);
		$CSS(elmId).display='block';
		
		for(var i = 0; i <= maxOpac*4; i++) {
			setTimeout("setOpacity($CSS('"+elmId+"'), "+(i/4)+");", 25*i);
		}
	}
}
function animateExit(elmId) {
	if(Prototype.Browser.IE) {
		$CSS(elmId).opacity = 0;
		$CSS(elmId).display = 'none';
	} else {
		var current = $CSS(elmId).opacity*10;
		maxOpac = current;
		
		for(var i = maxOpac*4; i >= 0; i--)
			setTimeout("setOpacity($CSS('"+elmId+"'), "+(i/4)+");", 10*(maxOpac-i));
			
		setTimeout("$CSS('"+elmId+"').display='none';",maxOpac*10);
	}
}
function setOpacity(cssElm, value) {
	cssElm.opacity = value/10;
	cssElm.filter = 'alpha(opacity=' + value*10 + ')';
}
function transmitOrder() {
	var elms = document.body.getElementsBySelector('input');
	document.body.getElementsBySelector('select').each(function (elm) {
			elms[elms.length] = elm;
		});
	document.body.getElementsBySelector('textarea').each(function (elm) {
			elms[elms.length] = elm;
		});
	var sendElms = new Array();
	for(var i = 0; i < elms.length; i++) {
		if(elms[i].name != undefined && elms[i].name.startsWith('bestel')) {
			sendElms[sendElms.length] = elms[i];
		}
	}
	var parms='order=now';
	sendElms.each(function(item) {
		parms += '&'+item.name+'='+item.value;
	});
			
	new Ajax.Request('/texelcatering/extern/json.placeOrder.php?hi='+escape(window.location.hash), {
		method:'post',
		parameters: parms,
		requestHeaders: {Accept: 'application/json'},
		onSuccess: function(transport){
			//hideBuynowOverlay();
			$('overlay_buyed').innerHTML = '<div id="closeFolder" onClick="hideBuynowOverlay();$CSS(\'overlay_buyed\').display=\'none\';" title="Sluit speciale aanbieding">X</div>'+transport.responseText+"<hr>Dit bericht is tevens naar uw e-mail adres verzonden.";
			animateEnter('overlay_buyed', 10);
		},
		onFailure: function() {
			hideBuynowOverlay();
			$('overlay_buyed').innerHTML = 'Er is een fout opgetreden bij uw bestelling. Bel 0222 313791 om uw bestelling te controleren.';
		}
	});
}
function selectPageChange(selector) {
	selector.options[selector.selectedIndex].onclick();
	//selector.options[selector.selectedIndex].onClick();
}



/** OnHashChange **/
window.myonhashchange = function() { // uses an alias to make sure that it doesn't go double.
	removeLast();
	if(typeof pagetrack == 'function') {
		pagetrack();
	} 
	
	// IE8 bug?
	var array = (document.location.hash).split("/");
	var isFolder = false;
	for(var i = 0; i < array.length; i++) {
		if(array[i] == '#folder') {
			showFolderOverlay(array[i+1],array[i+2],false);
			isFolder = true;
		}
		else if(array[i] == '#brief') {
			showFolderOverlay(array[i+1],array[i+2],true);
			isFolder = true;
		}
		else if(array[i] == '#special') {
			animateEnter('overlay_black', 7);
			animateEnter('overlay_special', 10);
			
			// this code is temporary
			addToLocationBar('Specials', '#special', '>');
			
			$('overlay_special').innerHTML = '<div id="closeFolder" onClick="animateExit(\'overlay_black\');$CSS(\'overlay_special\').display=\'none\';window.location=\'#\';" title="Sluit speciale aanbieding">X</div><h1>Texel Catering winter 2009 - 2010 Courant</h1><iframe src="http://www.mijnbladerboek.nl/bladerboek.php?pID=6" frameborder=0 width=950 height=700></iframe>';
		}
		else if(array[i] == '#bestel') {
			animateEnter('overlay_black', 7);
			animateEnter('overlay_buynow', 10);
			
			// this code is temporary
			addToLocationBar('Bestellen via e-mail', 'mailto:info@texelcatering.nl', '>');
			addToLocationBar('Artikel: '+array[i+2], window.location.hash);
			
			$('overlay_buynow_orderField').innerHTML = '<table><th>'+array[i+2]+' a '+array[i+1]+' euro:</th><td><input type="text" value="1" style="width: 50px; text-align: right;" name="bestel[aantal]" /> stuks</td></tr>';
			
			$('buynow_name').innerHTML = array[i+2];
		}
		else if(array[i] == '#images') {
			showGalleryOverlay(array[i+1], array[i+2]);
		} 
		else if(array[i] == '#closeImages') {
			currFolder = false;
			hideGalleryOverlay();
			removeLast();
		}
		else if(array[i] == '') {
			removeLast();
		}
	}
	// track
}

var _prevHash;
if ("onhashchange" in window) {
     // The browser supports the hashchange event!
     window.onhashchange = window.myonhashchange
} else {
	// create own listener
	setInterval(function() {
	 		if(window.location.hash != _prevHash) {
	 			window.myonhashchange();
	 			_prevHash = window.location.hash
	 		}
		}, 100);
}

/** OnLoad code: thus should be ondombuild **/

// for Internet Explorer (using conditional comments)
/*@cc_on @*/
/*@if (@_win32)
document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function() {
  if (this.readyState == "complete") {
    init(); // call the onload handler
  }
};
/*@end @*/

// Safari
if (/WebKit/i.test(navigator.userAgent)) { // sniff
  var _timer = setInterval(function() {
    if (/loaded|complete/.test(document.readyState)) {
      clearInterval(_timer);
      init(); // call the onload handler
    }
  }, 10);
}
function init() {
  // quit if this function has already been called
  if (arguments.callee.done) return;

  // flag this function so we don't do the same thing twice
  arguments.callee.done = true;

	
	window.myonhashchange();
}
