

var magiczoom=function(){
	var _searchrel			= false;		/* only include image links with rel="[something]" */

	var _enablepreloadanimation	= true;			/* show preloader gif on thumbnail */
	var _preloadanimation		= 'loader.gif';
	var _preloadanimationpacity	= 20;

	var _imagetopmargin		= -100;			/* you might want to move zoomed image up a little from center */
	var _imageminmargin		= 100;			/* min margin from browser edges, image will be resized accordingly */

	var _enablezoom			= true;			/* enable zoom animation */
	var _enablezoomfade		= false;		/* enable fading while zooming */
	var _zoomsteps			= 15;			/* number of zoom animation frames */
	var _zoomtime			= 5;			/* milliseconds between frames */

	var _keepthumbnail		= false;		/* hide or keep thumbnail while zoomed */
	var _enablethumbfade		= true;			/* fade thumbnail while zoomed */
	var _thumbfadeopacity		= 30;

	var _enablebackgroundfade	= true;			/* fade background while zoomed */
	var _backgroundfadeopacity	= 50;

	var _enableshadow		= true;			/* enable shadow around zoomed image */
	var _enableshadowfade		= true;			/* enable fading */
	var _shadowopacity		= 100;			/* warning! some browser mess with png transparency! */
	var _shadowpadding		= 2;

	var _enablecaption		= true;			/* enable caption, which will be pulled from image alt, link title or image filename */
	var _enablecaptionfade		= true;
	var _captionopacity		= 90;

	var _enablecontrols		= true;			/* enable controls: previous, next, close */
	var _enablecontrolsfade		= true;
	var _controlsopacity		= 90;

	var _enablehelp			= false;		/* enable help button, _enablecontrols needs to be turned on for this */
	var _enablehelpfade		= true;
	var _helpopacity		= 90;

	var _enablesettings		= false;			/* enable settings button, _enablecontrols needs to be turned on for this */
	var _enablehelpsettings		= true;
	var _settingsopacity		= 90;

	var _enableabout		= false;			/* enable about button, _enablecontrols needs to be turned on for this */
	var _enableaboutfade		= true;
	var _aboutsopacity		= 90;

	var _imagesdir			= 'images/zoom/';

	var _gtimer			= 100;




	var _enablefade			= true;


	/* don't edit anything below unless you know what you're doing */

	/* define global variables */
	/* body */
	var _bodywidth=0;
	var _bodyheight=0;
	var _bodyscroll=0;
	var _bodyscrollwidth=0;
	var _bodyscrollheight=0;

	/* thumnbnail */
	var _thumbEl=false;
	var _thumbX=0;
	var _thumbY=0;
	var _thumbW=0;
	var _thumbH=0;

	var _loaderX=0;
	var _loaderY=0;
	var _loaderW=0;
	var _loaderH=0;

	/* image */
	/*  _images=Array(0=>zoomid1, 1=>zoomid2, 3=>zoomid3...); */
	/* _current=array index current image */
	/* _next=array index of next image */
	var _thumbs=new Array();
	var _current=false;
	var _next=false;
	var _called=false;

	var _imageEl=false;
	var _imageX=0;
	var _imageY=0;
	var _imageW=0;
	var _imageH=0;

	var _images=new Array();
	var _loading=false;
	var _preloadtimer=false;
	var _origW=new Array();
	var _origH=new Array();
	var _origX=new Array();
	var _origY=new Array();

	/* zoom */
	var _zoomed=false;
	var _zoomactive=false;
	var _zoomtimer=false;
	var _zoomEl=false;

	var _busy=false;

	var _browserversion='';



	init=function(){
		params();
		if (!document.getElementsByTagName){
			return;
		};
		getbrowserversion();
		var links=document.getElementsByTagName('a');
		var j=0;
		for(var i=0;i<links.length;i++) {
			if(links[i].getAttribute('href')&&links[i].childNodes[0]&&links[i].childNodes[0].src) {
				if(_searchrel==false||(links[i].rel&&links[i].rel==_searchrel)){
					if (links[i].getAttribute('href').search(/(.*)\.(jpg|jpeg|gif|png|bmp|tif|tiff)/gi)!=-1) {
						if(!links[i].childNodes[0].getAttribute('id')) {
							links[i].childNodes[0].setAttribute('id','zoomimage_'+j);
						};
						_thumbs[j]=links[i].childNodes[0].getAttribute('id');
						links[i].onclick=this.clicked;
						j++;
					};
				};
			};
		};
		/*setInterval('params()',100);*/
	};

	clicked=function(_e){
		if(false!==_busy){
			return false;
		};
		var _clicked=false;
		if(!_e){
			_e=window.event;
		};
		if(_e){
			if(_e.target&&_e.target.id){
				_clicked=_e.target.id;
			}
			else if(_e.srcElement&&_e.srcElement.id){
				_clicked=_e.srcElement.id;
			};
		};
		if(_clicked){
			for(i in _thumbs){
				if(_clicked==_thumbs[i]){
					_called=i;
				};
			};
		};
		if(false!==_called){
			called(_called);
		}
		return false;
	};

	params=function(){
		echo("called="+_called+"<br>loading="+_loading + "<br>zoomed=" + (_zoomed?_images[_zoomed].src:_zoomed));
	};

	called=function(_c){
		_called=parseInt(_c);
		_next=false;
		if(false!==_busy){
			return false;
		};
		if(false!==_zoomed){
			if(_called!==_zoomed){
				_next=_called;
			};
			zoom();
			return false;
		};
		if(false!==_loading){
			if(_called!==_loading){
				_next=_called;
			};
			_loading=false;
			preloadanimation();
			return false;
		};
		prepare();
		return false;
	};

	prepare=function(){
		if(false===_imageEl){
			htmlelements(_called);
			return false;
		};
		if(false!==_loading&&_called!==_loading){
			called(_loading);
			return false;
		};
		if(false===_loading){
			_loading=_called;
			preparethumb(_called);
			preloadanimation();
		};
		if(_images[_called]==null){
			preload();
			return false;
		};
		if(_current!==_called){
			_imageEl.src=_images[_called].src;
			_imageW=_images[_called].width;
			_imageH=_images[_called].height;
		};
		if(_imageW&&_imageH){
			if(_current!==_called){
				_current=_called;
				setTimeout('zoom()',_gtimer);
			}
			else{
				_current=_called;
				zoom();
			};
		};
		return false;
	};

	preload=function(){
		_images[_called]=new Image();
		_images[_called].onload=function(){
			if(false!==_loading){
				prepare(_loading);
			};
		};
		_images[_called].src=document.getElementById(_thumbs[_called]).parentNode.href;
		return false;
	};



	preloadanimation=function(){
		thumbfade(_loading);
		imagepreload(_loading);
		if(false!==_next){
			called(_next);
		}
	};


	echo=function(a){
		/*document.getElementById("print_r_html").innerHTML=a;*/
	};

	next=function(i,t){
		var _call=0;
		if(false!==_called){
			_call=_called;
		};
		_call=_call+parseInt(i);
		if(_call<0){
			_call=_thumbs.length-1;
		}
		else if(_call>=_thumbs.length){
			_call=0;
		};
		if(_thumbs[_call]){
			called(_call);
		}
		else{
			i++;t++;
			if(t<_thumbs.length){
				next(i,t);
			}
		}
	};






	zoom=function(){
		if(false!==_busy){
			return false;
		}
		_busy=true;


		/* zoom out */
		if(false!==_zoomed){
			if(_enablezoom) {
				startX=parseInt(_imageEl.style.left);
				startY=parseInt(_imageEl.style.top);
				startW=_imageEl.width;
				startH=_imageEl.height;
				changeX=_thumbX-startX;
				changeY=_thumbY-startY;
				changeW=_thumbW-startW;
				changeH=_thumbH-startH;
				zoomcurrent=0;
				if (_enablezoomfade){
					fadecurrent=0;
					fadeamount=(100-0)/_zoomsteps;
				}
				else {
					fadeamount=0;
				};
				shadow();
				caption();
				controls();
				zoomsteps=_zoomsteps;
				enablefade=_enablefade;
				_zoomtimer=setInterval('zooming()',_zoomtime);
				/*
				_zoomtimer=setInterval('zooming('+zoomcurrent+','+startW+','+changeW+','+startH+','+changeH+','+startX+','+changeX+','+startY+','+changeY+','+_zoomsteps+','+_enablefade+','+fadeamount+',"zoomdone()")',_zoomtime);
				*/
				_zoomactive=true;
			}
			else{
				shadow();
				caption();
				controls();
				zoomdone();
			}
		}
		/* zoom in */
		else {
			_loading=false;
			preloadanimation();
			getbodydimensions();
			if(_enablezoom){
				endW=_imageW;
				endH=_imageH;
				sizeRatio=endW/endH;
				if(endW>_bodywidth-_imageminmargin) {
					endW=_bodywidth-_imageminmargin;
					endH=endW/sizeRatio;
				};
				if (endH>_bodyheight-_imageminmargin) {
					endH=_bodyheight-_imageminmargin;
					endW=endH*sizeRatio;
				};
				changeX=((_bodywidth/2)-(endW/2)-_thumbX);
				changeY=(((_bodyheight/2)-(endH/2)-_thumbY)+_bodyscroll);
				changeW=(endW-_thumbW);
				changeH=(endH-_thumbH);
				zoomcurrent=0;
				_imageEl.style.left=_thumbX+'px';
				_imageEl.style.top=_thumbY+'px';
				_imageEl.style.width=_thumbW+'px';
				_imageEl.style.height=_thumbH+'px';
				if(_enablezoomfade) {
					setopacity(_imageEl,0);
					fadecurrent=0;
					fadeamount=(0-100)/_zoomsteps;
				}
				else {
					fadeamount=0;
					setopacity(_imageEl,100);
				};
				_zoomEl=_imageEl;
				backgroundfade();
				_imageEl.style.visibility='visible';

				/*
				_zoomtimer=setInterval('zooming('+zoomcurrent+','+_thumbW+','+changeW+','+_thumbH+','+changeH+','+_thumbX+','+changeX+','+_thumbY+','+changeY+','+_zoomsteps+','+_enablezoomfade+','+fadeamount+',"zoomdone()")',_zoomtime);
				*/

				startW=_thumbW;
				startH=_thumbH;
				startX=_thumbX;
				startY=_thumbY;
				zoomsteps=_zoomsteps;
				enablefade=_enablezoomfade;
				_zoomtimer=setInterval('zooming()',_zoomtime);
				_zoomactive=true;
				if(!_keepthumbnail){
					_thumbEl.style.visibility='hidden';
				}
			}
			else{;
				_imageEl.style.left=Math.floor((_bodywidth/2)-(_imageW/2))+'px';
				_imageEl.style.top=Math.floor((_bodyheight/2)-(_imageH/2)+_bodyscroll+_imagetopmargin)+'px';
				_imageEl.style.width=_imageW+'px';
				_imageEl.style.height=_imageH+'px';
				_imageEl.style.visibility='visible';
				zoomdone();
			};
		};
		return false;
	};



/*
	zooming=function(zoomcurrent,startW,changeW,startH,changeH,startX,changeX,startY,changeY,zoomsteps,enablefade,fadeamount,execwhendone){
*/
	zooming=function(){
		if (zoomcurrent==(zoomsteps+1)){
			_zoomactive=false;
			clearInterval(_zoomtimer);
			zoomdone();
			/*
			if(execwhendone!='') {
				eval(execwhendone);
			}
			*/
		}
		else {
			if(_enablezoomfade) {
				if(fadeamount<0){
					setopacity(_zoomEl,Math.abs(zoomcurrent*fadeamount));
				}
				else {
					setopacity(_zoomEl,100-(zoomcurrent*fadeamount));
				}
			}
			moveW=cubic(zoomcurrent,startW,changeW,zoomsteps);
			moveH=cubic(zoomcurrent,startH,changeH,zoomsteps);
			moveX=cubic(zoomcurrent,startX,changeX,zoomsteps);
			moveY=cubic(zoomcurrent,startY,changeY,zoomsteps);
			_zoomEl.style.left=moveX+'px';
			_zoomEl.style.top=moveY+'px';
			_zoomEl.style.width=moveW+'px';
			_zoomEl.style.height=moveH+'px';
			zoomcurrent++;
			/*clearTimeout(_zoomtimer);*/
			/*
			_zoomtimer=setTimeout('zooming('+zoomcurrent+','+startW+','+changeW+','+startH+','+changeH+','+startX+','+changeX+','+startY+','+changeY+','+zoomsteps+','+enablefade+','+fadeamount+',"'+execwhendone+'")',_zoomtime);
			*/
		}
	};

	zoomdone=function(){
		if(false!==_zoomed) {
			if(!_keepthumbnail){
				_thumbEl.style.visibility='visible';
			}
			setopacity(_zoomEl,0);
			_imageEl.style.visibility='hidden';
			backgroundfade();
			_zoomed=false;
		}
		else{
			shadow();
			caption();
			controls();
			_zoomed=_current;
		}
		_busy=false;
		if(false!==_next){
			called(_next);
		};
	};

	backgroundfade=function(){
		if(_enablebackgroundfade){
			if(false!==_zoomed){
				_backgroundfadeEl.style.visibility='hidden';
			}
			else{
				_backgroundfadeEl.style.width=_bodyscrollwidth+'px';
				_backgroundfadeEl.style.height=_bodyscrollheight+'px';
				_backgroundfadeEl.style.visibility='visible';
				setopacity(_backgroundfadeEl,_backgroundfadeopacity);
			};
		};
	};


	controls=function(){
		if(_enablecontrols){
			if(false!==_zoomed){
				_controlsEl.style.visibility='hidden';
			}
			else{
				_controlsEl.style.visibility='visible';
				_controlsEl.style.left=(_imageEl.offsetLeft-13-_shadowpadding)+'px';
				_controlsEl.style.top=(_imageEl.offsetTop-10-_shadowpadding)+'px';
				_controlsEl.style.width=(_imageEl.offsetWidth+26+(_shadowpadding*2))+'px';
				_controlsEl.style.height=(_imageEl.offsetHeight+50+(_shadowpadding*2))+'px';
				_controlsEl.style.visibility='visible';
			};
		};
	};

	shadow=function(){
		if(_enableshadow){
			if(false!==_zoomed){
				_shadowEl.style.visibility='hidden';
			}
			else{
				_shadowEl.style.left=(_imageEl.offsetLeft-13-_shadowpadding)+'px';
				_shadowEl.style.top=(_imageEl.offsetTop-10-_shadowpadding)+'px';
				_shadowEl.style.width=(_imageEl.offsetWidth+26+(_shadowpadding*2))+'px';
				_shadowEl.style.height=(_imageEl.offsetHeight+29+(_shadowpadding*2))+'px';
				_shadowEl.style.visibility='visible';
			};
		};
	};


	caption=function(){
		if(_enablecaption){
			if(false!==_zoomed){
				_captionEl.style.visibility='hidden';
			}
			else{
				var captiontext='';
				if(_thumbEl.getAttribute('alt')&&_thumbEl.getAttribute('alt')!=''){
					captiontext=_thumbEl.getAttribute('alt');
				}
				else if(_thumbEl.parentNode.getAttribute('title')&&_thumbEl.parentNode.getAttribute('title')!=''){
					captiontext=_thumbEl.parentNode.getAttribute('title');
				}
				else{
					var imagepathparts=_imageEl.src.split('/');
					captiontext=imagepathparts[imagepathparts.length-1];
					captiontext=captiontext.replace(/.jpg/i,'');
					captiontext=captiontext.replace(/.jpeg/i,'');
					captiontext=captiontext.replace(/.gif/i,'');
					captiontext=captiontext.replace(/.png/i,'');
					captiontext=captiontext.replace(/_/g,' ');
				};
				captiontext=captiontext.replace(/\n/g,' ');
				captiontext=captiontext.replace(/\r/g,' ');
				_captiontextEl.innerHTML=captiontext;
				_captionEl.style.left=Math.floor((_bodywidth/2)-(_captionEl.offsetWidth/2))+'px';
				_captionEl.style.top=(_imageEl.offsetTop+_imageEl.offsetHeight)+'px';
				_captionEl.style.visibility='visible';
			};
		};
	};










	cubic=function(t,b,c,d){
		if ((t/=d/2)<1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t+2)+b;
	};






	function preparethumb(_called){
		_thumbEl=false;
		if(_enablezoom||_enablethumbfade||_enablepreloadanimation){
			if(false!==(_thumbEl=getelement(_thumbs[_called]))){
				var thumbpos=getelementpos(_thumbEl);
				_thumbX=thumbpos[0];
				_thumbY=thumbpos[1];
				_thumbW=_thumbEl.offsetWidth;
				_thumbH=_thumbEl.offsetHeight;
				if(!_thumbW||!_thumbH){
					_thumbEl=false;
				};
			};
			if(!_thumbEl){
				_enablezoom=false;
				_enablethumbfade=false;
				_enablepreloadanimation=false;

			};
		};
		return false;
	};

	imagepreload=function(a){
		if(_enablepreloadanimation){
			if(false!==a){
				if(!_loaderW){
					_loaderW=_preloadanimationEl.offsetWidth;
					if(!_loaderW){
						_loaderW=32;
					};
				};
				if(!_loaderH){
					_loaderH=_preloadanimationEl.offsetHeight;
					if(!_loaderH){
						_loaderH=32;
					};
				};
				_preloadanimationEl.style.left=Math.floor(_thumbX+(_thumbW/2)-(_loaderW/2))+'px';
				_preloadanimationEl.style.top=Math.floor(_thumbY+(_thumbH/2)-(_loaderH/2))+'px';
				setopacity(_preloadanimationEl,_preloadanimationpacity);
				_preloadanimationEl.style.visibility='visible';
			}
			else{
				_preloadanimationEl.style.visibility='hidden';
			};
		};
	};

	thumbfade=function(a){
		if(_enablethumbfade){
			if(false!==a){
				setopacity(_thumbEl,_thumbfadeopacity);
				/*
				_thumbfadeEl.style.left=_thumbX+'px';
				_thumbfadeEl.style.top=_thumbY+'px';
				_thumbfadeEl.style.width=_thumbW+'px';
				_thumbfadeEl.style.height=_thumbH+'px';
				setopacity(_thumbfadeEl,_thumbfadeopacity);
				_thumbfadeEl.style.visibility='visible';
				*/
			}
			else{
				setopacity(_thumbEl,100);
				/*
				_thumbfadeEl.style.visibility='hidden';
				*/
			};
		};
	};

	function htmlelements(_called) {
		var imagestoload=new Array();
		var z_index=500;
		if(_enablethumbfade){
			var obj=document.createElement('div');
				obj.setAttribute('id','thumbfadeEl');
				obj.onclick=this.clicked;
				obj.style.zIndex=z_index;
				z_index++;
				document.body.appendChild(obj);
			if(false===(_thumbfadeEl=getelement('thumbfadeEl'))){
				_enablethumbfade=false;
			}
		}
		if(_enablepreloadanimation){
			var obj=document.createElement('img');
				obj.setAttribute('id','preloadanimationEl');
				obj.setAttribute('src',_imagesdir+_preloadanimation);
				obj.onclick=this.clicked;
				obj.style.zIndex=z_index;
				z_index++;
				document.body.appendChild(obj);
			if(false===(_preloadanimationEl=getelement('preloadanimationEl'))){
				_enablepreloadanimation=false;
			}
			else{
				imagestoload[imagestoload.length]=_preloadanimation;
			}
		}
		if(_enablebackgroundfade){
			var obj=document.createElement('div');
				obj.onclick=this.close;
				obj.setAttribute('id','backgroundfadeEl');
				obj.style.zIndex=z_index;
				z_index++;
				document.body.appendChild(obj);
			if(false===(_backgroundfadeEl=getelement('backgroundfadeEl'))){
				_enablebackgroundfade=false;
			}
		}
		var obj=document.createElement('img');
			obj.setAttribute('id','imageEl');
			obj.setAttribute('src',_imagesdir+'pixel.gif');
			obj.setAttribute('alt','');
			obj.style.zIndex=z_index;
			z_index++;
			document.body.appendChild(obj);
		if(false===(_imageEl=getelement('imageEl'))){
			return false;
		}
		imagestoload[imagestoload.length]='pixel.gif';
		if(_enableshadow){
			var tbl=document.createElement('table');
				tbl.setAttribute('id','shadowEl');
				tbl.setAttribute('border','0');
				tbl.setAttribute('cellPadding','0');
				tbl.setAttribute('cellSpacing','0');
				tbl.style.zIndex=z_index;
				z_index++;
				document.body.appendChild(tbl);
				var tblbody=document.createElement('tbody');
					tbl.appendChild(tblbody);
					var row=document.createElement('tr');
						row.style.height='27px';
						tblbody.appendChild(row);
						var col=document.createElement('td');
							col.style.width='27px';
							col.style.background='transparent url('+_imagesdir+'shadow-left-top.png) 0 0 no-repeat';
							row.appendChild(col);
							var obj=document.createElement('img');
								obj.setAttribute('src',_imagesdir+'pixel.gif');
								col.appendChild(obj);
						var col=document.createElement('td');
							col.style.background='transparent url('+_imagesdir+'shadow-top.png) 0 0 repeat-x';
							row.appendChild(col);
							var obj=document.createElement('img');
								obj.setAttribute('src',_imagesdir+'pixel.gif');
								col.appendChild(obj);
						var col=document.createElement('td');
							col.style.width='27px';
							col.style.background='transparent url('+_imagesdir+'shadow-right-top.png) 0 0 no-repeat';
							row.appendChild(col);
							var obj=document.createElement('img');
								obj.setAttribute('src',_imagesdir+'pixel.gif');
								col.appendChild(obj);
					var row=document.createElement('tr');
						tblbody.appendChild(row);
						var col=document.createElement('td');
							col.style.background='transparent url('+_imagesdir+'shadow-left.png) 0 0 repeat-y';
							row.appendChild(col);
							var obj=document.createElement('img');
								obj.setAttribute('src',_imagesdir+'pixel.gif');
								col.appendChild(obj);
						var col=document.createElement('td');
							row.appendChild(col);
							var obj=document.createElement('img');
								obj.setAttribute('src',_imagesdir+'pixel.gif');
								col.appendChild(obj);
						var col=document.createElement('td');
							col.style.background='transparent url('+_imagesdir+'shadow-right.png) 0 0 repeat-y';
							row.appendChild(col);
							var obj=document.createElement('img');
								obj.setAttribute('src',_imagesdir+'pixel.gif');
								col.appendChild(obj);
					var row=document.createElement('tr');
						row.style.height='27px';
						tblbody.appendChild(row);
						var col=document.createElement('td');
							col.style.background='transparent url('+_imagesdir+'shadow-left-bottom.png) left top no-repeat';
							row.appendChild(col);
							var obj=document.createElement('img');
								obj.setAttribute('src',_imagesdir+'pixel.gif');
								col.appendChild(obj);
						var col=document.createElement('td');
							col.style.background='transparent url('+_imagesdir+'shadow-bottom.png) 0 bottom repeat-x';
							row.appendChild(col);
							var obj=document.createElement('img');
								obj.setAttribute('src', _imagesdir+'pixel.gif');
								col.appendChild(obj);
						var col=document.createElement('td');
							col.style.background='transparent url('+_imagesdir+'shadow-right-bottom.png) 0 bottom no-repeat';
							row.appendChild(col);
							var obj=document.createElement('img');
								obj.setAttribute('src', _imagesdir+'pixel.gif');
								col.appendChild(obj);
			if(false===(_shadowEl=getelement('shadowEl'))){
				_enableshadow=false;
			}
			else{
				imagestoload[imagestoload.length]='shadow-bottom.png';
				imagestoload[imagestoload.length]='shadow-left.png';
				imagestoload[imagestoload.length]='shadow-left-bottom.png';
				imagestoload[imagestoload.length]='shadow-left-top.png';
				imagestoload[imagestoload.length]='shadow-right.png';
				imagestoload[imagestoload.length]='shadow-right-bottom.png';
				imagestoload[imagestoload.length]='shadow-right-top.png';
				imagestoload[imagestoload.length]='shadow-top.png';
			}
		}
		if(_enablecaption){
			var tbl=document.createElement('table');
				tbl.setAttribute('id','captionEl');
				tbl.setAttribute('border','0');
				tbl.setAttribute('cellPadding','0');
				tbl.setAttribute('cellSpacing','0');
				tbl.style.zIndex=z_index;
				z_index++;
				document.body.appendChild(tbl);
				var tblbody=document.createElement('tbody');
					tbl.appendChild(tblbody);
					var row=document.createElement('tr');
						row.style.height='34px';
						tblbody.appendChild(row);
						var col=document.createElement('td');
							col.style.width='24px';
							col.style.background='transparent url('+_imagesdir+'caption-left.png) right 0 no-repeat';
							row.appendChild(col);
							var obj=document.createElement('img');
								obj.setAttribute('src',_imagesdir+'pixel.gif');
								col.appendChild(obj);
						var col=document.createElement('td');
							col.setAttribute('id','captiontextEl');
							col.setAttribute('align','center');
							col.setAttribute('valign','middle');
							col.style.background='transparent url('+_imagesdir+'caption-fill.png) 0 0 repeat-x';
							row.appendChild(col);
						var col=document.createElement('td');
							col.style.width='24px';
							col.style.background='transparent url('+_imagesdir+'caption-right.png) left 0 no-repeat';
							row.appendChild(col);
							var obj=document.createElement('img');
								obj.setAttribute('src',_imagesdir+'pixel.gif');
								col.appendChild(obj);
			if(false===(_captionEl=getelement('captionEl'))||false===(_captiontextEl=getelement('captiontextEl'))){
				_enablecaption=false;
			}
			else{
				imagestoload[imagestoload.length]='caption-fill.png';
				imagestoload[imagestoload.length]='caption-left.png';
				imagestoload[imagestoload.length]='caption-right.png';
			}
		}
		if(_enablecontrols){
			var obj=document.createElement('div');
				obj.setAttribute('id','controlsEl');
				obj.style.zIndex=z_index;
				z_index++;
				document.body.appendChild(obj);
			if(false===(_controlsEl=getelement('controlsEl'))){
				_enablecontrols=false;
			}
		}
		if(_enablecontrols){
			var obj=document.createElement('img');
				obj.setAttribute('src',_imagesdir+'previous.png');
				obj.setAttribute('id','previousEl');
				obj.onclick=function(){next(-1)};
				_controlsEl.appendChild(obj);
			var obj=document.createElement('img');
				obj.setAttribute('src',_imagesdir+'next.png');
				obj.setAttribute('id','nextEl');
				obj.onclick=function(){next(1)};
				_controlsEl.appendChild(obj);
			var obj=document.createElement('img');
				obj.setAttribute('src',_imagesdir+'close.png');
				obj.setAttribute('id','closeEl');
				obj.onclick=this.zoom;
				_controlsEl.appendChild(obj);
			if(false===(_previousEl=getelement('previousEl'))||false===(_nextEl=getelement('nextEl'))||false===(_closeEl=getelement('closeEl'))){
				_enablecontrols=false;
			}
			else {
				imagestoload[imagestoload.length]='close.png';
				imagestoload[imagestoload.length]='previous.png';
				imagestoload[imagestoload.length]='next.png';
			}
		}
		if(_enablecontrols){
			if(_enablehelp){
				var obj=document.createElement('img');
					obj.setAttribute('id','helpEl');
					obj.setAttribute('src',_imagesdir+'help.png');
					_controlsEl.appendChild(obj);
				var obj=document.createElement('div');
					obj.setAttribute('id','helptextEl');
					obj.style.zIndex=z_index;
					z_index++;
					_controlsEl.appendChild(obj);
				if(false===(_helpEl=getelement('helpEl'))||false===(_helptextEl=getelement('helptextEl'))){
					_enablehelp=false;
				}
				else{
					imagestoload[imagestoload.length]='help.png';
				}
			}
			if(_enablesettings){
				var obj=document.createElement('img');
					obj.setAttribute('id','settingsEl');
					obj.setAttribute('src',_imagesdir+'settings.png');
					_controlsEl.appendChild(obj);
				var obj=document.createElement('div');
					obj.setAttribute('id','settingstextEl');
					obj.style.zIndex=z_index;
					z_index++;
					_controlsEl.appendChild(obj);
				if(false===(_helpEl=getelement('settingsEl'))||false===(_helptextEl=getelement('settingstextEl'))){
					_enablesettings=false;
				}
				else{
					imagestoload[imagestoload.length]='settings.png';
				}
			}
			if(_enableabout){
				var obj=document.createElement('img');
					obj.setAttribute('id','aboutEl');
					obj.setAttribute('src',_imagesdir+'about.png');
					_controlsEl.appendChild(obj);
				var obj=document.createElement('div');
					obj.setAttribute('id','abouttextEl');
					obj.style.zIndex=z_index;
					z_index++;
					_controlsEl.appendChild(obj);
				if(false===(_helpEl=getelement('aboutEl'))||false===(_helptextEl=getelement('abouttextEl'))){
					_enablesettings=false;
				}
				else{
					imagestoload[imagestoload.length]='about.png';
				}
			}
		}
		var loadimage=new Image();
		loaded=0;
		for(var i=0;i<imagestoload.length;i++) {
			loadimage.onLoad=imagesloaded();
			loadimage.src=_imagesdir+imagestoload[i];
		}
		function imagesloaded() {
			loaded++;
			if(loaded==imagestoload.length){
				called(_called);
			};
		}
		return false;
	};

	getbrowserversion=function(){
		var ua=navigator.userAgent.toLowerCase();
		if(ua.indexOf('msie')!=-1){
			_browserversion='msie';
			_enablezoomfade=false;
			/*
			_zoomsteps=10;
			_zoomtime=5;
			_enablefade=false;
			_enablezoom=false;
			*/
		}
		else if(ua.indexOf('firefox')!=-1){
			_browserversion='firefox';
		}
		else if(ua.indexOf('opera')!=-1){
			_browserversion='opera';
		}
		else if(ua.indexOf('chrome')!=-1){
			_browserversion='chrome';
			_enablezoomfade=false;
			/*_enablezoom=false;*/
		}
		else {
			_browserversion		='unidentified';
			_enablezoom		= true;
			_enablebackgroundfade	= false;
			_enablefade		= false;
			_enableshadow		= true;
			_keepthumbnail		= false;
			_enablethumbfade	= false;
			_enablezoomfade=false;
		}
	};

	getelement=function(el){
		if(document.getElementById(el)){
			return document.getElementById(el);
		}
		else {
			return false;
		}
	};

	getbodydimensions=function() {
		if (self.innerHeight){
			_bodywidth=window.innerWidth;
			_bodyheight=window.innerHeight;
			_bodyscroll=window.pageYOffset;
		}
		else if(document.documentElement&&document.documentElement.clientHeight){
			_bodywidth=document.documentElement.clientWidth;
			_bodyheight=document.documentElement.clientHeight;
			_bodyscroll=document.documentElement.scrollTop;
		}
		else if(document.body){
			_bodywidth=document.body.clientWidth;
			_bodyheight=document.body.clientHeight;
			_bodyscroll=document.body.scrollTop;
		}
		if(window.innerHeight&&window.scrollMaxY){
			_bodyscrollwidth=document.body.scrollWidth;
			_bodyscrollheight=window.innerHeight+window.scrollMaxY;
		}
		else if(document.body.scrollHeight>document.body.offsetHeight){
			_bodyscrollwidth=document.body.scrollWidth;
			_bodyscrollheight=document.body.scrollHeight;
		}
		else{
			_bodyscrollwidth=document.body.offsetWidth;
			_bodyscrollheight=document.body.offsetHeight;
		}
	};

	setopacity=function(el,opacity){
		opacity=parseInt(opacity);
		if(opacity>100) {
			opacity=100;
		}
		else if(opacity<0){
			opacity=0;
		}
		if(_browserversion=='msie'){
			el.style.filter='alpha(opacity='+opacity+')';
		}
		else {
			if (_browserversion=='firefox'&&opacity==100){
				opacity=99.9999;
			}
			el.style.opacity=(opacity/100);
		}
	};

	getelementpos=function(el){
		var elX=0;
		var elY=0;
		var d="r=";
		if(_browserversion!='firefox'&&el.offsetParent) {
			while(1) {
				elX+=el.offsetLeft;
				elY+=el.offsetTop;
				if(!el.offsetParent) {
					break;
				}
				el=el.offsetParent;
			}
		}
		else if(el.x) {
			elX+=el.x;
			elY+=el.y;
		}
		return Array(elX,elY);
	};
	init();
};

