function preloadctrl(im){
	if (typeof im == 'string'){
		var imo = new Image();
		imo.src = im;
	}
}

if(document.images && typeof preload_ctrl_images != 'undefined' && preload_ctrl_images){
	var ctrlimgs = [previmg, stopimg, playimg, nextimg]
	for (var i_tem = 0; i_tem < ctrlimgs.length; i_tem++)
	if (ctrlimgs[i_tem])
		preloadctrl(ctrlimgs[i_tem])
}

var iss = [];

function inter_slide(){
	if(! document.images || arguments.length == 0)
		return;

	var imgs = arguments[0];
	var width = null, height = null, delay = null;
	if(arguments.length == 2)
		delay = arguments[1];
	else if(arguments.length == 3 || arguments.length == 4)
		width = arguments[1], height = arguments[2], delay = arguments[3] ? arguments[3] : null;

	this.dom = (document.getElementById) //modern dom browsers
	this.da = document.all
	this.delay = imgs.delay ? imgs.delay : delay ? delay : 5000 + iss.length * 150; // hier pas je de wachttijd aan
	this.nextimgidx = 0;
	iss[this.issid = iss.length] = this;
	this.imgs = imgs;
	if (imgs.random)
		this.imgs.sort(function() {return 0.5 - Math.random();})

	this.imgborder = imgs.border? parseInt(imgs.border) : 0;
	if (! this.dom){
		this.postimgs = new Array()
		for (p = 0; p < imgs.length; p++){
			this.postimgs[p] = new Image()
			this.postimgs[p].src = this.imgs[p][0]
		}
	}

	if (this.dom){ //if modern browsers (ie: Firefox, IE5+)
		this.faded			= 0;
		this.loadimgidx		= [];
		this.fade			= ! imgs.nofade;
		if(this.fade)
			this.degree		= 10 //initial opacity degree (10%)
		this.pausecheck		= imgs.pause;
		this.mouseovercheck	= 0
		this.canvasbase		= "canvas" + this.issid
		this.curcanvas		= this.canvasbase + "_0"
		this.descriptions	= ! imgs.no_descriptions;
		this.man_start		= imgs.manual_start;
		this.addbr			= ! imgs.no_added_linebreaks;
		this.no_auto		= imgs.no_auto;
		this.onclick		= imgs.onclick;
		this.specs			= imgs.specs;
		this.counter		= imgs.counter;
		this.ics			= imgs.image_controls;
		this.jumpto			= imgs.jumpto;
		this.no_c			= imgs.no_controls;
		this.target			= imgs.target;
		this.ualt			= imgs.use_alt;
		this.utit			= imgs.use_title;
		this.fadecolor		= imgs.fadecolor;
		this.ibut_hc		= imgs.button_highlight;
		this.dp				= imgs.desc_prefix ? imgs.desc_prefix : ' ';
		this.imbcolor		= imgs.border_color;
		this.imbstyle		= imgs.border_style;
		this.width			= imgs.width ? imgs.width : width? width : null
		this.width			= this.width ? this.width + this.imgborder * 2 : null;
		this.height			= imgs.height ? imgs.height : height? height : null
		this.height			= this.height ? this.height + this.imgborder * 2 : null;
		var ief = '', dims = '';

		if(this.width || this.height)
			dims = this.width && this.height ? 'width:' + this.width + 'px;height:' + this.height + 'px;' : this.width ? 'width:' + this.width + 'px;' : 'height:' + this.height + 'px;';

		if(this.fade && document.body && document.body.style)
			ief = document.body.filters ? 'filter:progid:DXImageTransform.Microsoft.alpha(opacity=0);' : typeof document.body.style.opacity=='string'? 'opacity:0;' : 'opacity:0.10;-moz-opacity:0.10;-khtml-opacity:0.10;';

		var brs = this.addbr ? '<br>' : '';

		if (imgs.controls_top){
			this.controls();
			document.write(brs)
		}

		document.write(
			'<div align="center" style="background-color:#292929;">' +
				'<div id="master' + this.issid + '" style="position:relative;' + dims + 'margin:0 auto;">' +
					'<div id="' + this.canvasbase + '_0" style="position:absolute;' + dims + 'top:0;left:0;' + ief + 'background-color:' + (imgs.fadecolor? imgs.fadecolor : 'white') + '">' +
					'<\/div>' +
					'<div id="' + this.canvasbase + '_1" style="position:absolute;' + dims + 'top:0;left:0;' + ief + 'background-color:' + (imgs.fadecolor? imgs.fadecolor : 'white') + '">' +
					'<\/div>' +
				'<\/div>' +
			'<\/div>'
		)

		if(this.descriptions)
			document.write(
				brs +
				'<div align="center" style="height: 40px;">' +
					this.dp +
					'<span id="imgdsc' + this.issid + '">&nbsp;<\/span>' +
				'</div>\n'
			);

		if(this.counter && ! this.descriptions)
			document.write(brs);

		if(this.counter)
			this.cntrl()

		if (! imgs.controls_top){
			document.write(this.ics ? '' : brs);
			this.controls();
		}
	}
	else
		document.write('<div align="center"><img name="defaultslide'+this.issid+'" src="'+this.postimgs[0].src+'"><\/div>')


	if (this.dom) //if modern browsers such as Firefox, IE5+
		this.startit()
	else{
		this.nextimgidx++
		setInterval("iss["+this.issid+"].rotateimg()", this.delay)
	}
}

inter_slide.prototype.cntrl = function(){
	this.cpad=this.imgs.length.toString().length;
	document.write('<div align="center">Viewing Image: <b><span id="thecnt'+this.issid+'"><\/span><\/b> of<span style="font-size:1ex;">&nbsp;</span>&nbsp;<b>'+this.imgs.length+'<\/b><\/div>');
}

inter_slide.prototype.controls = function(){
	var brs=this.addbr? '<br>' : ' &nbsp;';
	if(! this.ics && ! this.no_c)
		document.write('<div align="center"><input id="prev'+this.issid+'" style="display:none;"  >\n'+
		(this.no_auto? '&nbsp;&nbsp;&nbsp;' : ' <input id="gostp'+this.issid+'" type="button" value=" Pauze " onclick="iss['+this.issid+'].gostop(this);">\n')+
		' <input id="next'+this.issid+'" disabled type="button" value=" >> " onclick="iss['+this.issid+'].changeimg(true, \'nav\');" style="display:none;">'+(this.jumpto? brs+'Jump to: <input disabled type="text" size="'+this.imgs.length.toString().length+'" id="goto'+this.issid+'" onkeydown="iss['+this.issid+'].jumper(event);"><input id="go'+this.issid+'" disabled type="button" onclick="iss['+this.issid+'].jumper();" value="GO">' : '')+'<\/div>')
	else if(this.ics && ! this.no_c){
		var op = document.body.filters? ' style="filter:alpha(opacity=100);"' : ' style="opacity:'+(this.man_start? 0.99 : 0.45)+';"';
		document.write(
			'<table align="center" cellpadding="0" cellspacing="10">' +
				'<tr>' +
					'<td valign="middle" align="center" style="padding:2px 2px 1px 2px;">' +
						'<input' + op + ' onmouseover="iss[' + this.issid + '].ibute(this,1);" onmouseout="iss[' + this.issid + '].ibute(this,2);" onmousedown="iss[' + this.issid + '].ibute(this,3);" onmouseup="iss[' + this.issid + '].ibute(this,4);" type="image" title="Previous" id="prev' + this.issid + '" src="' + previmg + '" onclick="iss[' + this.issid + '].changeimg(false, \'nav\');">' +
					'<\/td>' +
					(this.no_auto ? '<td>&nbsp;<\/td>' : '<td valign="middle" align="center" style="padding:2px 2px 1px 2px;"><input onmouseover="iss[' + this.issid + '].ibute(this,1);" onmouseout="iss[' + this.issid + '].ibute(this,2);" onmousedown="iss[' + this.issid + '].ibute(this,3);" onmouseup="iss[' + this.issid + '].ibute(this,4);" title="Stop" type="image" id="gostp' + this.issid + '" src="'+(this.g_fPlayMode? playimg : stopimg)+'" onclick="iss['+this.issid+'].gostop(this); this.blur();"><\/td>')+'<td valign="middle" align="center" style="padding:2px 2px 1px 2px;"><input'+op+' onmouseover="iss['+this.issid+'].ibute(this,1);" onmouseout="iss['+this.issid+'].ibute(this,2);" onmousedown="iss['+this.issid+'].ibute(this,3);" onmouseup="iss['+this.issid+'].ibute(this,4);" type="image" title="Next" id="next'+this.issid+'" src="'+nextimg+'" onclick="iss['+this.issid+'].changeimg(true, \'nav\');"><\/td><\/tr><\/table>\n'
		);
	}
	else
		this.no_c=1;
}

inter_slide.prototype.jumper = function(e){
	var key;
	if(typeof e=='object')
		key=e.keyCode? e.keyCode : e.which? e.which : 1;
	if(key&&key!==13)
		return;
	var num=typeof e=='number'? e : parseInt(this.go('goto'+this.issid).value);
	if(num<=this.imgs.length&&num>0){
		this.nextimgidx=num-2;
		this.changeimg(true, 'jump');
	}
}

inter_slide.prototype.ibute = function(obj, i){
	if(!obj.parentNode)
		return;
	if(i==1)
		obj.parentNode.style.backgroundColor=this.ibut_hc? this.ibut_hc : 'yellow';
	else if(i==2)
		obj.parentNode.style.backgroundColor='transparent';
	else if(i==3){
		obj.parentNode.style.borderTop=obj.parentNode.style.borderLeft='1px solid gray';
		obj.parentNode.style.paddingRight='1px';obj.parentNode.style.paddingBottom=0;
	}
	if (i==2||i==4){
		obj.parentNode.style.borderTop=obj.parentNode.style.borderLeft='none';
		obj.parentNode.style.paddingRight='2px';obj.parentNode.style.paddingBottom='1px';
	}
}

inter_slide.prototype.fadepic = function(){
	if (this.fade&&this.degree<100){
		this.faded=0
		this.degree+=10
		if (this.tempobj.filters&&this.tempobj.filters[0]){
			if (typeof this.tempobj.filters[0].opacity=="number") //if IE6+
			this.tempobj.filters[0].opacity=this.degree
			else //else if IE5.5-
			this.tempobj.style.filter="alpha(opacity="+this.degree+")"
		}
		else if (this.tempobj.style.MozOpacity)
			this.tempobj.style.MozOpacity=this.degree/101
		else if (this.tempobj.style.KhtmlOpacity)
			this.tempobj.style.KhtmlOpacity=this.degree/100
		else if (this.tempobj.style.opacity&&!this.tempobj.filters)
			this.tempobj.style.opacity=this.degree/101
	}
	else{
		this.faded=1
		clearInterval(this.fadeclear)
		this.nextcanvas=(this.curcanvas==this.canvasbase+"_0")? this.canvasbase+"_0" : this.canvasbase+"_1"
		this.tempobj=this.go(this.nextcanvas)
		if(this.playing)
			this.changeimg()
	}
}

inter_slide.prototype.populateslide = function(picobj, picidx){
	if(document.getElementsByTagName){
		if(picobj.getElementsByTagName('a')[0]&&picobj.getElementsByTagName('a')[0].onclick)
			picobj.getElementsByTagName('a')[0].onclick=null;
		if(picobj.getElementsByTagName('img')[0]&&picobj.getElementsByTagName('img')[0].onload)
			picobj.getElementsByTagName('img')[0].onload=null;
	}
	picobj.style.backgroundColor=this.imgs[picidx].fadecolor? this.imgs[picidx].fadecolor : this.fadecolor? this.fadecolor : '';
	var slideHTML='<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%"><tr><td width="100%" height="100%" align="center" valign="middle" style="background:transparent none;">'
	if (this.imgs[picidx][2]){ //if associated link exists for img
		var specs=this.imgs[picidx][4]? ", '"+this.imgs[picidx][4]+"'" : this.specs? ", '"+this.specs+"'" : '';
		slideHTML+='<a href="'+this.imgs[picidx][2]+'"'+(this.imgs[picidx][3]? ' target="'+this.imgs[picidx][3]+'"' : this.target? ' target="'+this.target+'"' : '')+' onclick="'+(this.onclick? this.onclick : 'window.open(this.href, (this.target? this.target : \'_self\')'+specs+');return false;')+'">'
	}
	slideHTML+='<img width="166" id="theimg'+picidx+'_'+this.issid+'" src="'+(this.loadimgidx[picidx]&&typeof this.loadimgidx[picidx].complete=='boolean'&&this.loadimgidx[picidx].complete? this.loadimgidx[picidx].src : this.imgs[picidx][0])+'" alt="'+(this.ualt? this.imgs[picidx][1] : 'Slide Show Image')+'" title="'+(this.utit? this.imgs[picidx][1] : '')+'" '+(this.imbcolor&&!this.imgs[picidx].noborder? 'style="border:'+this.imgborder+'px '+(this.imbstyle? this.imbstyle : 'solid')+' '+this.imbcolor+';"' : 'border="'+(this.imgs[picidx].noborder? '0' : this.imgborder)+'"')+(!this.width||!this.height? ' onload="iss['+this.issid+'].imgload(this);"' : '')+'>'
	if (this.imgs[picidx][2]) //if associated link exists for img
		slideHTML+='<\/a>'
	slideHTML+='<\/td><\/tr><\/table>'
	picobj.innerHTML=slideHTML
}

inter_slide.prototype.buttons = function(bool){
	if(this.no_c)
		return;
	var next=this.go('next'+this.issid), prev=this.go('prev'+this.issid);
	next.disabled=prev.disabled=!bool;
	next.title=bool? 'next' : '';
	prev.title=bool? 'previous' : '';
	if(this.jumpto&&!this.ics)
		this.go('go'+this.issid).disabled=this.go('goto'+this.issid).disabled=!bool;
	if(this.ics){
		if(!this.no_auto){
			var go=this.go('gostp'+this.issid)
			go.title=bool? 'Play' : 'Pauze';
			go.src=bool? playimg : stopimg;
		}
		if(prev.filters&&prev.parentNode)
			prev.parentNode.style.filter=next.parentNode.style.filter='alpha(opacity='+(bool? 100 : 45)+')';
		else if(prev.style.opacity&&!prev.filters)
			prev.style.opacity=next.style.opacity=bool? 0.99 : 0.45;
	}
}

inter_slide.prototype.imgload = function(el){
	if(!el&&!this.imgel)
		return;
	var el=el? el : this.imgel;
	if(el.width==0||el.height==0){
		this.imgel=el;
		var cacheobj=this;
		clearTimeout(this.getdim)
		this.getdim=setTimeout(function(){cacheobj.imgload()}, 300)
		return;
	}
	var m=this.go('master'+this.issid).style, c0=this.go(this.canvasbase+'_0').style, c1=this.go(this.canvasbase+'_1').style;
	if(!this.width){
		this.width=el.width+this.imgborder*2;
		m.width = c0.width = c1.width = this.width+'px';
		//m.width = c0.width = c1.width = '166px';
	}
	if(!this.height){
		this.height=el.height+this.imgborder*2;
		m.height = c0.height = c1.height = this.height+'px';
		//m.height = c0.height = c1.height = '180px';
	}
}

inter_slide.prototype.changeimg = function(bool,nav){
	if(this.playing){
		this.buttons(false)
		this.nextimgidx=(this.keeptrack()<this.imgs.length-1)? this.keeptrack()+1 : 0
		this.populateslide(this.tempobj, this.nextimgidx)
		if(bool)
			this.rotateimg()
		else{
			clearTimeout(this.inprocess)
			this.inprocess=setTimeout("iss["+this.issid+"].rotateimg()", this.delay)
		}
	}
	else {
		if(!this.faded){
			if(nav&&nav=='nav')
				return;
			this.nextimgidx=this.keeptrack()+(bool? 1 : -1)
			this.nextimgidx=(this.nextimgidx<this.imgs.length)? this.nextimgidx : this.nextimgidx-this.imgs.length
			this.nextimgidx=(this.nextimgidx>-1)? this.nextimgidx : this.imgs.length+this.nextimgidx
			return;
		}
		if(this.fadeclear)
			clearInterval(this.fadeclear);
		if(bool){
			var loadidx=this.nextimgidx+2
			loadidx=(loadidx<this.imgs.length)? loadidx : loadidx-this.imgs.length;
			loadidx=(loadidx>-1)? loadidx : this.imgs.length+loadidx;
			this.loadimgidx[loadidx]=new Image();
			this.loadimgidx[loadidx].src=this.imgs[loadidx][0];
		}
		else{
			var loadidx=this.nextimgidx-2
			loadidx=(loadidx<this.imgs.length)? loadidx : loadidx-this.imgs.length
			loadidx=(loadidx>-1)? loadidx : this.imgs.length+loadidx
			this.loadimgidx[loadidx]=new Image();
			this.loadimgidx[loadidx].src=this.imgs[loadidx][0];
		}
		if(nav&&nav=='jump')
			this.nextimgidx++;
		else
			this.nextimgidx=this.keeptrack()+(bool? 1 : -1)
		this.nextimgidx=(this.nextimgidx<this.imgs.length)? this.nextimgidx : this.nextimgidx-this.imgs.length
		this.nextimgidx=(this.nextimgidx>-1)? this.nextimgidx : this.imgs.length+this.nextimgidx
		this.populateslide(this.tempobj, this.nextimgidx)
		this.rotateimg()
	}
}

inter_slide.prototype.go = function(id){
	return this.da? this.da[id] : document.getElementById(id);
}

inter_slide.prototype.rotateimg = function(){
	if(this.dom){
		var cimg=this.go('theimg'+this.nextimgidx+'_'+this.issid)? this.go('theimg'+this.nextimgidx+'_'+this.issid) : null;
		if(cimg && typeof cimg.complete == 'boolean' && ! cimg.complete){
			var cacheobj = this
			clearTimeout(this.loading)
			this.loading = setTimeout(function(){cacheobj.rotateimg()}, 300)
			return;
		}
		if (this.mouseovercheck == 1){
			var cacheobj = this
			clearTimeout(this.mousep)
			this.mousep = setTimeout(function(){cacheobj.rotateimg()}, 100)
			return;
		}
		if(this.fade)
			this.resetit()
		var crossobj=this.tempobj=this.go(this.curcanvas)
		crossobj.style.backgroundColor = '#292929' // Hack om er voor te zorgen dat grotere plaatjes dan het huidige al in de achtergrond zichtbaar zijn
		crossobj.style.zIndex++
		var othercanvas=this.curcanvas==this.canvasbase+"_0"? this.go(this.canvasbase+"_1") : this.go(this.canvasbase+"_0");
		othercanvas.style.zIndex=0;
		if(this.descriptions)
			this.go('imgdsc'+this.issid).innerHTML = this.imgs[this.keeptrack()][1];
		if(this.counter){
			var padit='';
			for (var p=0; p<this.cpad-(this.nextimgidx+1).toString().length; p++)
			padit+='<span style="visibility:hidden;">0</span>';
			this.go('thecnt'+this.issid).innerHTML = padit+(this.keeptrack()<this.imgs.length? this.keeptrack()+1 : 1);
		}
		if (this.jumpto)
			this.go('goto'+this.issid).value=this.keeptrack()<this.imgs.length? this.keeptrack()+1 : 1;
		this.jumperidx=this.keeptrack()<this.imgs.length? this.keeptrack()+1 : 1;
		var fadeobj=this
		clearInterval(this.fadeclear)
		this.fadeclear=setInterval(function(){fadeobj.fadepic()},50)
		this.curcanvas=(this.curcanvas==this.canvasbase+"_0")? this.canvasbase+"_1" : this.canvasbase+"_0"
	}
	else{
		var v4imgobj=document.images['defaultslide'+this.issid]
		v4imgobj.src=this.postimgs[this.nextimgidx].src
		this.nextimgidx=(this.nextimgidx<this.imgs.length-1)? this.nextimgidx+1 : 0
	}
}

inter_slide.prototype.resetit = function(){
	this.degree=10
	var crossobj=this.go(this.curcanvas)
	if (crossobj.filters&&crossobj.filters[0]){
		if (typeof crossobj.filters[0].opacity=="number") //if IE6+
			crossobj.filters(0).opacity=this.degree
		else //else if IE5.5-
			crossobj.style.filter="alpha(opacity="+this.degree+")"
	}
	else if (crossobj.style.MozOpacity)
		crossobj.style.MozOpacity=this.degree/101
	else if (crossobj.style.KhtmlOpacity)
		crossobj.style.KhtmlOpacity=this.degree/100
	else if (crossobj.style.opacity&&!crossobj.filters)
		crossobj.style.opacity=this.degree/101
}

inter_slide.prototype.startit = function(){
	this.playing = 1
	var crossobj = this.go(this.curcanvas)
	this.populateslide(crossobj, this.nextimgidx)
	if (this.pausecheck == 1){ //if slideshow should pause onmouseover
		var cacheobj = this
		var crossobjcontainer = this.go("master" + this.issid)
		crossobjcontainer.onmouseover = function(){cacheobj.mouseovercheck=1}
		crossobjcontainer.onmouseout = function(){cacheobj.mouseovercheck=0}
	}
	this.rotateimg()
	if(this.no_auto)
		this.gostop();
	else if(this.man_start)
		this.gostop(this.go('gostp'+this.issid));
	else if(this.ics&&document.body.filters){ //kludge for IE5.5 bug
		this.buttons(false);
	}
}

inter_slide.prototype.gostop = function(el){
	if(el)
		el.value=el.value==' Pauze '? ' Play ' : ' Pauze ';
	if(this.inprocess&&this.playing){
		clearTimeout(this.inprocess);
		this.nextimgidx-=this.faded;
	}
	this.playing=!this.playing;
	if(this.playing){
		clearInterval(this.fadeclear)
		this.faded=1
		this.changeimg(true);
	}
	else{
		var loadidx=(this.keeptrack()<this.imgs.length-1)? this.keeptrack()+1 : 0
		this.loadimgidx[loadidx]=new Image();
		this.loadimgidx[loadidx].src=this.imgs[loadidx][0];
		this.jumper(this.jumperidx? this.jumperidx : 0)
		this.buttons(true);
	}
}

inter_slide.prototype.keeptrack = function(){
	if(!document.getElementsByTagName)
		return this.nextimgidx;
	var canvases=[this.go('canvas'+this.issid+'_0'), this.go('canvas'+this.issid+'_1')]
	if(canvases[0].style.zIndex>canvases[1].style.zIndex&&canvases[0].getElementsByTagName("img")[0])
		return parseInt(canvases[0].getElementsByTagName('img')[0].id.replace(/theimg/, ''))
	else if(canvases[1].getElementsByTagName("img")[0])
		return parseInt(canvases[1].getElementsByTagName('img')[0].id.replace(/theimg/, ''))
	else
		return this.nextimgidx;
}

