var request = null;

try {
	request = new XMLHttpRequest();
} catch (trymicrosoft) {
	try {
		request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (tryothermicrosoft) {
		try {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (failed) {
			request = null;
		}
	}
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

function initExtLinks() {
	var extLinks = getElementsByClassName(document,"a","extLink");
	for(i=0;i<extLinks.length;i++) {
		extLinks[i].setAttribute("target","_blank");
	}
}

/*************************************************
 Beginning of GalleryCode
**************************************************/

function initGallery() {
	if(document.getElementById("gallery")) {
		if(document.getElementById("gallery").tagName == "TABLE") {
			var albumTable = document.getElementById("gallery");
			var links = albumTable.getElementsByTagName("a");
			for (var i=0;i<links.length; i++) {
				links[i].onclick = function() {
					getPic(this.getAttribute("href"));
					return false;
				}
			}
		}
	}
}

function getPic(link) {
	var imageId = link.substr(link.lastIndexOf("=")+1,link.length);
	var url = "/getImage.php?imageId=" + imageId;
	request.open("GET",url,true);
	request.onreadystatechange = showPic;
	request.send(null);
}

function showPic() {
	if (request.readyState == 4) {
		if (request.status == 200) {
			var imageData = eval('(' + request.responseText + ')');
			var imageDiv = document.createElement("div");
			imageDiv.setAttribute("id","image");
			imageDiv.style.marginLeft = imageData.width;
			var closeLink = document.createElement("a");
			closeLink.setAttribute("href","");
			var imageSrc = document.createElement("img");
			imageSrc.setAttribute("src",imageData.path);
			imageSrc.setAttribute("id","gallery_img");
			imageSrc.setAttribute("alt",imageData.comment);
			closeLink.appendChild(imageSrc);
			closeLink.onclick = function() {
				closePic();
				return false;
			}
			var imageTxt = document.createTextNode("Klicka på bilden för att stänga den.");
			var Br = document.createElement("br");
			imageDiv.appendChild(imageTxt);
			imageDiv.appendChild(Br);
			imageDiv.appendChild(closeLink);
			if(imageData.comment.length>0) {
				var pComment = document.createElement("p");
				pComment.setAttribute("id","image_comment");
				var commentText = document.createTextNode(imageData.comment);
				pComment.appendChild(commentText);
				imageDiv.appendChild(pComment);
			}
			
			var bodyDiv = getElementsByClassName(document.getElementById("content"),"div","content_body_gradient");
			bodyDiv[0].appendChild(imageDiv);

			albumTable = document.getElementById("gallery");
			var links = albumTable.getElementsByTagName("a");
			for (var i=0;i<links.length; i++) {
				links[i].onclick = function() {
					return false;
				}
			}
		} else {
			alert("Request Status is "+request.status);
		}
	}
}

function closePic() {
	document.getElementById("image").parentNode.removeChild(document.getElementById("image"));
	initGallery();
}

if(request != null) {
	addLoadEvent(initGallery);
	addLoadEvent(initExtLinks);
}
