gallery = {
	loadImage:'images/loading.gif',
	boxId:'gallery',
	appendToId:'imagebox',
	maxHeight:545,
	minHeight:0,
	maxWidth:260,
	minWidth:0,
	varPic:false,
    ajax : null,
	set:function(src) {
			if(!this.varPic){
				this.varPic = new Image();
				var gkClosure = this.varPic;
				this.varPic.onload = function() {
						var pic = document.createElement('img');
						pic.setAttribute('src', gkClosure.src);
						
						var replacePic = gallery.pic();
						var parent = replacePic.parentNode;
						parent.replaceChild(pic, replacePic);
					};
			} else if(this.varPic.src == src) return false;
			
			var pic = document.createElement('img');
			pic.setAttribute('src', this.loadImage);
			var replacePic = this.pic();
			replacePic.parentNode.replaceChild(pic, replacePic);

			this.varPic.src = src;
            this.sendAJAX('http://' + location.host + '/?page=image&image=' + encodeURIComponent(decodeURIComponent(src)));
		},
	pic:function() {
			var pic = document.getElementById(this.boxId);
			if (pic && (pic = pic.getElementsByTagName('img')[0])) return pic;
			
			var box = document.createElement('div');
			pic = document.createElement('img');

			pic.setAttribute('src', this.loadImage);
			box.setAttribute('id',this.boxId);

			box.appendChild(pic);
			document.getElementById(this.appendToId).appendChild(box);
			return pic;
		},
	close:function() {
			var box = document.getElementById(this.boxId);
			if (box) box.parentNode.removeChild(box);
		},
	addLinks:function() {
			var pic = document.getElementsByTagName('a');
			for (var i = 0; i < pic.length; i++) {
				if(pic[i].getAttribute('rev') != 'gallery') continue;

				var tmp = pic[i].getAttribute('href');
				tmp = tmp.substr(tmp.length - 4, 4);
				if(tmp == '.jpg' || tmp == '.png' || tmp == '.gif') {
					pic[i].onclick = function() {
							gallery.set(this.href);
							return false;
						};
				}
			}		
		},
    add : function(theContent){
            var div = document.getElementById('highresLink');
            if (div) {
                div.parentNode.removeChild(div);
            }
            if (theContent != '') {
                var parent = this.pic().parentNode;
                var div = parent.appendChild(document.createElement('div'));
                div.id = 'highresLink';
                div.innerHTML = theContent;
            }
        },
    sendAJAX : function(url) {
            var div = document.getElementById('highresLink');
            if (div) {
                div.parentNode.removeChild(div);
            }
            if(window.XMLHttpRequest) this.ajax = new XMLHttpRequest();
            else if (window.ActiveXObject) {
                try {
                    this.ajax = new ActiveXObject('Msxml2.XMLHTTP');
                } catch(err) {
                    this.ajax = new ActiveXObject('Microsoft.XMLHTTP');
                }
            }
            if (!this.ajax) return false;
            try {
                var svar = this;
                this.ajax.onreadystatechange=function() {
                        svar.loaded();
                    };
                this.ajax.open('GET', url, true);
                this.ajax.send(null);
            } catch(err) {
                this.error(1);
            }
        },
    loaded : function(){
            var ajax = this.ajax;
            var status = this.ajax.readyState;
            if (status == 4) {
                var http = ajax.status;
                if (http == 200 || http == 0) {
                    this.add(ajax.responseText);
                } else {
                    this.error(2);
                }
            }
        },
    error : function(nr){
            alert('Error number ' + nr);
        }};