var zoompu = {
	allImages: null,
	lastActive: null,

	init: function() {
		// controleer cooliris
		try
		{
			PicLensLite.start();
		}
		catch (err)
		{
			alert("Het is helaas niet gelukt de zoomfunctie te starten.");
		}
		return;
		if (typeof(PicLensLite) != "undefined" && PicLensLite.hasClient())
			PicLensLite.start();
		else
		{
			var img = this.getBig();
			if (img != null)
			{
				var link = this.getXmlLink();
				if (link == null)
					return null;
				this.addOverlay();
				this.addKader(img);
				this.requestXml(link);
			}
		}
	},

	done: function() {
		var b = document.getElementsByTagName("body");
		var k = document.getElementById("picszoomKader");
		b[0].removeChild(k);
		var k = document.getElementById("picszoomOverlay");
		b[0].removeChild(k);
	},

	requestXml: function(url) {
		ims.web.sendRequest(url, null, this.didXml)
	},

	didXml: function(oResult)
	{
		if (oResult == undefined || oResult.documentElement == undefined ) return false;
		if (oResult.documentElement.nodeName != "rss") return false;
		this.doc = oResult;
		zoompu.fillThumbs(oResult);
		this.doc = 1;
	},

	getXmlLink: function() {
		var l = document.location.href.indexOf(document.location.pathname);
		var s = document.location.href.substr(0, l);
		var ls = document.getElementsByTagName("link");
		if (ls != null)
		{
			for (var n = 0; n < ls.length; n++)
				if (ls[n].id.toLowerCase() == "gallery")
					return ls[n].href;
		}
		return null;
	},

	getBig: function()
	{
		var res = null;
		var img = document.getElementById("bigimage");
		var i = img.src.lastIndexOf("/");
		if (i >= 0)
		{
			var u = img.src.substr(0, i + 1);
			var f = "big-" + img.src.substr(i + 1);
			res = u + f;
		}
		return res;
	},

	fillThumbs: function( o )
	{
		var c = document.getElementById("picszoomThumbContainer");
		if (c == null)
		{
//			alert("geen c");
			return false;
		}
		var i = o.getElementsByTagName("item");
		if (i == null) return false;
		

		var thumbs;
		var content;
		var slinks;
		var url;
		var a;
		var img;
		var currImage;
		var currImageIndex = null;
		var contentImage;
		var elmBig = document.getElementById("picszoomBigImage");
		if (elmBig != null)
			currImage = elmBig.src.substr(elmBig.src.lastIndexOf("/"));
		for (var n = 0; n < i.length && n < 3000; n++)
		{
			try
			{
				slinks = i[n].getElementsByTagName("link");
				thumbs = i[n].getElementsByTagName("thumbnail");
				if (thumbs.length == 0)
					thumbs = i[n].getElementsByTagName("media:thumbnail");
				content = i[n].getElementsByTagName("content");
				if (content.length == 0)
					content = i[n].getElementsByTagName("media:content");

				if (thumbs.length > 0 && slinks.length > 0)
				{
					a = document.createElement("a");
					a.href = slinks[0].firstChild.nodeValue + "&port=zoom";
					a._index = n;
					a.style.margin = "0 3px";
					a.style.padding = "1px";
					//a.style.backgroundColor = "#ffffff";
					url = thumbs[0].getAttribute("url");
					img = document.createElement("img");
					img.src = url + "?port=zoom";
					if (content.length > 0)
					{
						contentImage = content[0].getAttribute("url");
						img._content = content[0].getAttribute("url");
					}
					if (contentImage.indexOf(currImage) > -1)
						currImageIndex = n;
					img.alt = content[0].getAttribute("url");//"Alweer een plaatje";
					img.style.border = "0 none";
					a.appendChild(img);
					c.appendChild(a);
				}
			}
			catch (err)
			{
				//alert("E: " + err.description);
			}
		}
		this.setImage(currImageIndex);
		ims.events.register( c, "click", this.clickImage );
		// title, link, thumbnail, content
	},
	
	clickImage: function ( e )
	{
		var targ;
		if (!e) var e = window.event;
		if (e.target) targ = e.target;
		else if (e.srcElement) targ = e.srcElement;
		if (targ.nodeType == 3)
			targ = targ.parentNode;
		var aTarg = null;
		if (targ.tagName.toLowerCase() == "img")
		{
			aTarg = targ;
			while (aTarg.nodeType == 1 && aTarg.tagName.toLowerCase() != "a")
			{
				if (aTarg.tagName.toLowerCase() == "a")
					break;
				else
					aTarg = aTarg.parentNode;
			}
		}
		else if (targ.tagName.toLowerCase() == "a")
			aTarg = targ;

		if (aTarg != null)
		{
			var k = document.getElementById("picszoomKader");
			if (k._ref.lastActive._index * 1 >= 0)
				k._ref.setImage(aTarg._index * 1);
		}
		ims.events.cancel(e);
		return false;
	},

	clickArrowL: function( e )
	{
		var k = document.getElementById("picszoomKader");
		if (k._ref.lastActive._index * 1 > 0)
			k._ref.setImage(k._ref.lastActive._index * 1 - 1);
	},

	clickArrowR: function( e )
	{
		var k = document.getElementById("picszoomKader");
			k._ref.setImage(k._ref.lastActive._index * 1 + 1);
	},

	setImage: function( index )
	{
		var c = document.getElementById("picszoomThumbContainer");
		var a = document.getElementsByTagName("a");
		var b = document.getElementById("picszoomBigImage");
		var ti = new Image();
		if (a != null && b != null && c != null)
		{
			for (var n = 0; n < a.length; n++)
			{
				if (a[n]._index == index + "")
				{
					var i = a[n].getElementsByTagName("img");
					if (i != null)
					{
						ti.src = i[0]._content;
						b.src = i[0]._content;

						// width of a
						var aw = a[n].offsetWidth;
						// width of c
						var ac = c.clientWidth;
						var sl = a[n].offsetLeft - (ac / 2) + (aw / 2);
						sl = (sl < 0)?0:sl;
						//alert(sl + "\r\noffs: " + aTarg.offsetTop + "\r\nac/2: " + (ac / 2) + "\r\naw/2: " + (aw / 2) + "\r\n:" + aTarg.offsetParent.tagName);
						//aTarg.offsetParent.style.border = "1px solid red";
						c.scrollLeft = sl;
						var k = document.getElementById("picszoomKader");
						k._ref.lastActive = a[n];


					}
					break;
				}
			}
		}
	},

	positionThumbs: function( o )
	{


	},

	addElm: function( data )
	{
		var arrData = data.split(",");
		var br = document.createElement(arrData[0]);
		for (var n = 1; n < arrData.length; n += 2)
			br.style[arrData[n]] = arrData[n + 1];
		return br;
	},

	addKader: function( img ) {
		var b = document.getElementsByTagName("body");
		var h = document.getElementsByTagName("html");
		if (h != null && b != null)
		{
			try
			{
				// create kader
				var width = (window.innerWidth)?window.innerWidth:h[0].offsetWidth;
				var height = (window.innerHeight)?window.innerHeight:h[0].offsetHeight;
				var ol = document.createElement("div");
				ol.style.width = "800px";
				ol.style.height = "600px";
				ol.style.position = "absolute";
				ol.style.left = ((width - 800) / 2) + "px";
				ol.style.top = ((height - 600) / 2) + "px";
				ol.style.zIndex = "100";
				ol.style.backgroundColor = "#101010";
				ol.style.border = "1px solid #303030";
				ol.style.textAlign = "center";
				ol.className = "picszoomKader";
				ol.id = "picszoomKader";
				ol._ref = this;
				// add top row
				var tr = document.createElement("div");
				tr.style.background = "url('/inc/js/picszoom/boven.gif') repeat-x center center";
				tr.style.height = "26px";
				tr.id = "picszoomKaderBoven"
				ol.appendChild(tr);
				// insert image
				var im = document.createElement("img");
				im.src = img;
				im.alt = "Klik om te sluiten";
				im.style.margin = "5px;"
				im.style.border = "1px solid #ffffff";
				im.id = "picszoomBigImage";
				ims.events.register( im, "click", this.done);
				if (im.height > 550)
					im.height = 550;
				ol.appendChild(im);
				// bottom row transparant
				var br = this.addElm("div,width,100%,height,70px,overflow,hidden,position,absolute,left,0,bottom,0,borderTop,1px solid #303030," +
					"backgroundColor,#000000,zIndex,110,filter,Alpha(opacity=40),opacity,0.4");
				ol.appendChild(br);

				// bottom row plaatjes
				br = this.addElm("div,width,100%,height,70px,overflow,hidden,position,absolute,left,0,bottom,0,zIndex,120");
				// knoppen l
				var bri = document.createElement("div");
				bri.style.width = "200px";
				bri.style.height = "70px";
				bri.style.position = "absolute";
				bri.style.left = "0";
				bri.style.top = "0";
				//bri.style.borderTop = "1px solid #303030";
				bri.style.overflow = "hidden";
				var imgar = this.addElm("img,margin,10px 5px,cursor,pointer");
				imgar.src = "/inc/js/picszoom/pijl-links.gif";
				ims.events.register( imgar, "click", this.clickArrowL);
				bri.appendChild(imgar);
				imgar = this.addElm("img,margin,10px 5px,cursor,pointer");
				imgar.src = "/inc/js/picszoom/pijl-rechts.gif";
				ims.events.register( imgar, "click", this.clickArrowR);
				bri.appendChild(imgar);
				br.appendChild(bri);
				var bri = document.createElement("div");
				bri.style.width = "600px";
				bri.style.height = "70px";
				bri.style.paddingTop = "3px";
				bri.style.position = "absolute";
				bri.style.left = "200px";
				bri.style.top = "0";
				bri.style.overflow = "hidden";
				bri.style.whiteSpace = "nowrap";
				bri.id = "picszoomThumbContainer";
				br.appendChild(bri);
				ol.appendChild(br);
				b[0].appendChild(ol);
			}
			catch (err)
			{
				alert(err.description);
			}
		}
	},

	addOverlay: function() {
		// get body
		// add div to end
		var b = document.getElementsByTagName("body");
		if (b != null)
		{
			try
			{
				var ol = document.createElement("div");
				ol.style.width = b[0].offsetWidth + "px";
				ol.style.height = b[0].offsetHeight + "px";
				ol.style.position = "absolute";
				ol.style.left = "0";
				ol.style.top = "0";
				ol.style.zIndex = "100";
				ol.style.backgroundColor = "#000000";
				ol.style.filter = "Alpha(opacity=40)";
				ol.style.opacity = "0.4";
				ol.className = "picszoomOverlay";
				ol.id = "picszoomOverlay";
				b[0].appendChild(ol);
			}
			catch (err)
			{
				alert(err.description);
			}
		}
	}

};

var ims = {

	// handle all events
	events: {
		register: function( e , t , f )
		{		
			if( document.all )
			{
				e.attachEvent( 'on' + t , f );
			}else
			{
				e.addEventListener( t , f , false );
			}
		},
	
		cancel: function( e )
		{
			if( e.stopPropagation ) e.stopPropagation();
			if( e.preventDefault ) e.preventDefault( );
			e.cancelBubble = true;
		}
	},

	web: {
		queu: [],
		ondone: null,
		
		__checkQueu: function( )
		{
			var buffer = null;
			var callback = null;
		
			for( var i = 0; i < ims.web.queu.length; i++ )
			{
				if( ims.web.queu[i][0].readyState == 4 )
				{
					//alert( ims.web.queu[i][0].status );
					buffer = ims.web.queu[i][0].responseXML;
					callback = ims.web.queu[i][1];
					ims.web.queu.splice( i , 1 ); 
					i--;
					if( callback ) callback( buffer );
				}
			}
		},
		
		__addQueu: function( socket , callback )
		{
			ims.web.queu.push( [ socket , callback ] );
		},
		
		sendRequest: function( url , postvars , callback )
		{
			if( !postvars ) var postvars = [];
			postvars = postvars.join( "&" );
		
			var httpSocket = new XMLHttpRequest( );
			if( !httpSocket ) return false;

			if( url.substr( 0 , 1 ) != "/" )
			{
				//url = "/" + url;
			}
			
			//url = ims.base_href + url;    

			httpSocket.open( "POST" , url , true ); // moet POST zijn.
			httpSocket.onreadystatechange = function(){ ims.web.__checkQueu( ); }
			httpSocket.setRequestHeader( "If-Modified-Since" , "Sat, 1 Jan 2000 00:00:00 GMT" );
			httpSocket.setRequestHeader( "Content-Type" , "application/x-www-form-urlencoded" );
			httpSocket.setRequestHeader( "Content-Length" , postvars.length );
			httpSocket.setRequestHeader( "Connection" , "close" );
			httpSocket.send( postvars );
		
			ims.web.__addQueu( httpSocket , callback );
		}
	}

};

if( !window.XMLHttpRequest )
{
	window.XMLHttpRequest = function( )
	{
		var Microsoft = new Array( );
		Microsoft.push( "MSXML2.XMLHTTP.6.0" );
		Microsoft.push( "MSXML2.XMLHTTP.3.0" );
		
		for( var i = 0; i < Microsoft.length; i++ )
		{
			try
			{
				return new ActiveXObject( Microsoft[i] );
			}catch( e ){ }
		}
	}
}

if (1==1 || document.all)
{
	ims.events.register(window, "load", function( e ) {
		var bZoom = document.getElementById("imagefunction_zoom");
		if (bZoom != null)
		{
			bZoom.style.cursor = "pointer";
			ims.events.register(bZoom, "click", function( e ) {
				zoompu.init();
			} );
		}
	} );

	ims.events.register(window, "unload", function( e ) {
		//alert("klaar");
	} );
}
else
		alert("yy");

