var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

var downgrade= false;	
if(BrowserDetect.browser=="Explorer"){
	downgrade= true;	
};

var bufferx = 80;
var buffery = 40;//afstand van link
var mousex = 0;
var mousey = 0;
var posx = 0;
var posy = 0;
var winW = 0;
var winH = 0;
var openbubble = "";
var closeTimeout;
var openTimeout;
var tbub ;
var tobj;
var tpar;


function bubble(par,bub){
	notgone();
	if(openbubble != bub){
		if(openbubble != ""){
			if(downgrade){
				document.getElementById(openbubble).style.display = 'none'; 
			}
			else{
				new Effect.Fade(openbubble,{duration:1});
			}
			
			openbubble= "";
		}
		
		
		getWindow();
		
		posy = mousey-buffery;
		posx = mousex-bufferx;
		
		
		
		if(posx + 250 > winW){
			posx = posx - 250 ;
		} 
	
		if(posy + 120 > winH){
			posy = posy - 100;
			posyTo = posy - 0;
		}
		else{
			posyTo = posy + 20;
		}
		if(downgrade){
			posx = posx - document.documentElement.scrollLeft;
			posy = posy - document.documentElement.scrollTop;
			posyTo = posyTo - document.documentElement.scrollTop;
		}
		else{
			posx = posx - document.body.scrollLeft;
			posy = posy - document.body.scrollTop;
			posyTo = posyTo - document.body.scrollTop;
		}
		
		obj = document.getElementById(bub);		
		obj.style.left = posx+"px" ;
		obj.style.top = posy+"px" ;
		
		//temp objects for timeouts
		
		tbub = bub;
		tobj = obj;
		
		tpar = par;
		
		if(downgrade){
			openTimeout = setTimeout("document.getElementById(tbub).style.display = 'inline'; new Effect.Move(tobj, { x: posx, y: posyTo, mode: 'absolute',duration: 0.1 }); openbubble = tbub;", 500);
		}
		else{
			openTimeout = setTimeout("new Effect.Appear(tbub,{duration:0.3}); new Effect.Move(tobj, { x: posx, y: posyTo, mode: 'absolute',duration: 0.2 }); openbubble = tbub;", 500);
		}
	}
}


function parAct(){
	if(tpar){
			tpar.className = "hover";	
		}
}

function parVisit(){
	if(tpar){
			tpar.className = "hovered";	
		}
}

function notgone(){
	if(closeTimeout){
		clearTimeout (closeTimeout);
	}
}

function gone(){

	if(openTimeout){
			clearTimeout (openTimeout);
	}
	if(openbubble!=""){
		if(downgrade){
			closeTimeout = setTimeout("document.getElementById(openbubble).style.display = 'none'; openbubble='';",700);
		}
		else{
			closeTimeout = setTimeout("new Effect.Fade(openbubble,{duration:0.3}); openbubble='';",700);
		}
	}
}



function getWindow() {
	var myWidth = 0, myHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		myWidth = window.innerWidth;
		myHeight = window.innerHeight;
	}else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		myWidth = document.documentElement.clientWidth;
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		myWidth = document.body.clientWidth;
		myHeight = document.body.clientHeight;
	}
	winW = myWidth ;
	winH = myHeight ;
}


function getCoord(e) {
	if (!e) e = window.event;
	if (e.clientX || e.clientY) 	{
		mousex = e.clientX + document.body.scrollLeft ;
		mousey = e.clientY + document.body.scrollTop;
	}
	else if (e.pageX || e.pageY) 	{
		mousex = e.pageX;
		mousey = e.pageY;
	}
	
}

function closeFormOk(){
	if(downgrade){
		closeTimeout = setTimeout("document.getElementById('formOk').style.display = 'none'; openbubble='';",2000);
	}
	else{
		closeTimeout = setTimeout("new Effect.Fade('formOk',{duration:0.6}); openbubble='';",2000);
	}
}

function showMapFront(){
	if(closeTimeout){
		clearTimeout(closeTimeout);
	}
	if(map){
		if(downgrade){
			openTimeout = setTimeout("map = false; document.getElementById('map_front').style.display = 'block'; ",400);
		}
		else{
			openTimeout = setTimeout("map = false; new Effect.Appear('map_front',{duration:1}); ",400);
		}
	}
}

function showMapFrontTemp(){
	if(closeTimeout){
		clearTimeout(closeTimeout);
	}
}

map = false;

function hideMapFront(){
	if(openTimeout){
			clearTimeout(openTimeout);
	}
	if(!map){
		if(downgrade){
			closeTimeout = setTimeout("map = true; document.getElementById('map_front').style.display = 'none'; ",300);
		}
		else{
			closeTimeout = setTimeout("map = true; new Effect.Fade('map_front',{duration:0.3}); ",300);
		}
	}
}

function giveRoute(){
	document.getElementById('saddr').value = "";
	document.getElementById('saddr').className = "route";
	
}

function checkRoute(){
	
	if(document.getElementById('saddr').value == "" || document.getElementById('saddr').value == "Uw straatnaam en stad"){
		document.getElementById('saddr').value = "Uw straatnaam en stad";
		document.getElementById('saddr').className = "route dimmed";
		return false;
	}
	else{
		return true;	
	}
}



function submitRoute(){
	fld = document.getElementById('saddr');
	if(!checkRoute()){
		Effect.Shake(fld,{distance: 5 });
		return false;
	}
	else{
		return true;	
	}
}

function giveEmail(fieldName){
	fld = document.getElementById(fieldName);
	if(fld.value == "Uw e-mail"){
		fld.value = "";
		fld.className = "newsletter";
	}
	
}

function checkEmail(fldname){
	fld = document.getElementById(fldname);
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if(!filter.test(fld.value)){
		fld.value = "Uw e-mail";
		fld.className = "newsletter dimmed";
		return false;
	}
	else{
		return true;	
	}
}

function giveField(fname,fvalue,ftype){
	
	fld = document.getElementById(fname);
	val = fld.value;

	if(val==fvalue){
    	fld.value = "";
	    fld.className = "";	
		fld.value = "";

	}
}

function checkField(fname,fvalue,ftype){
	fld = document.getElementById(fname);
	
	val = fld.value;
	
	if(val=='' || val==fvalue){
		
		fld.value = fvalue;
		
		fld.className = "dimmed";
		return false;
	}
	else{
		return true;	
	}
}

function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Om deze site te bekijken heeft u een ajax-compatible browser nodig");
	}
}

function submitEmail(){
	fld = document.getElementById('saddr');
	if(!checkEmail('saddr')){
		Effect.Shake(fld,{distance: 5 });
		return false;
	}
	else{
		var searchReq = getXmlHttpRequestObject();
		//Gets the browser specific XmlHttpRequest Object
		
		if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		   	searchReq.open("GET", '/_ajax/mailinglist.php?email=' + fld.value, true);
           	searchReq.send(null);	
		  	document.getElementById('formOk').style.display = 'block' ;
			closeFormOk();
			fld.value = "Uw e-mail";
			fld.className = "newsletter dimmed";
			
        }
		return false;	
	}
}


function submitEmail(){
	fld = document.getElementById('saddr');
	if(!checkEmail('saddr')){
		Effect.Shake(fld,{distance: 5 });
		return false;
	}
	else{
		var searchReq = getXmlHttpRequestObject();
		//Gets the browser specific XmlHttpRequest Object

		if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		   	searchReq.open("GET", '/_ajax/mailinglist.php?email=' + fld.value, true);
           	searchReq.send(null);
		  	document.getElementById('formOk').style.display = 'block' ;
			closeFormOk();
			fld.value = "Uw e-mail";
			fld.className = "newsletter dimmed";

        }
		return false;
	}
}

function submitTools(){
	fld = document.getElementById('saddr');
	if(!checkEmail('saddr')){
		Effect.Shake(fld,{distance: 5 });
		return false;
	}
	else{
		return true;
	}
}


function submitComment(){
	email = document.getElementById('saddr');
	naam = document.getElementById('naam');
	comment = document.getElementById('commentaar');
	
	if(naam.value=="" || naam.value=="Uw naam"){
		Effect.Shake(naam,{distance: 5 });
		return false;
	}
	
	if(!checkEmail('saddr')){
		Effect.Shake(email,{distance: 5 });
		return false;
	}
	
	
	if(comment.value=="" || comment.value=="Uw bericht, bemerkingen of vragen"){
		Effect.Shake(comment,{distance: 5 });
		return false;
	}
      
	  document.getElementById('commentSubmit').value = "Even geduld...";
	  
		return true;	

}





var recAct = 1;

function scrollDown(){
		if(recAct > 4){
			recLeft = 4;
		}
		else{
			recLeft = recAct - 1;
		}
		recAct = recAct - recLeft;
		scrollInit();
		recY = (recAct-1)*90;
		new Effect.Move($('recContent'),{y: -recY, x: 0, duration: 0.5, mode:'absolute'})
		
}
	
function scrollUp(){
		recLeft = (recCount - recAct - 3);
		if(recLeft >=4){
			recLeft = 4 ;
		}
		recAct = recAct + recLeft;
		scrollInit();
		recY = (recAct-1)*90;
		new Effect.Move($('recContent'),{y: -recY, x: 0, duration: 0.5, mode:'absolute'})
		
}


function scrollInit(){
	if(recCount>4 && (recAct+4) <= recCount){
		$('recNext').style.display = "block";	
	}
	else{
		$('recNext').style.display = "none";	
	}
	if(recAct>1){
		$('recPrev').style.display = "block";	
	}
	else{
		$('recPrev').style.display = "none";		
	}
}

function imgOn(id){
	document.getElementById(id).className="recThumbHover" ;
}

function imgOff(id){
	document.getElementById(id).className="recThumb" ;
}
