// JavaScript Document
var t;
var httpObject;
var fname;
var docID;
var label;
var next_image;
var imageCount;
var fade;
var w;
var h;
var vs;
var hs;
// Get the HTTP Object
function getHTTPObject(){
	if (window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP"); 
	}
	else if (window.XMLHttpRequest) {
		return new XMLHttpRequest(); 
	}
	else {
//		alert("Your browser does not support AJAX.");
		return null;
	}
}

function LoadWindow() {
	imageCount = 0;
	requestImage();
	window.onBlur = "clearTimeout(t)";
	window.onFocus = "window.setTimeout('requestImage()',2000)";
}

// Code to detect Internet Explorer
var is_ie/*@cc_on = {
  // quirksmode : (document.compatMode=="BackCompat"),
  version : parseFloat(navigator.appVersion.match(/MSIE (.+?);/)[1])
}@*/;

// Request data from server
function requestImage(){
//	alert("requestImage");
	if (imageCount > 99) {
		var slideCaption = document.getElementById("slideCaption");
		var slideLink = document.getElementById("slideLink");
		slideLink.href= "javascript:requestImage();";
		slideLink.target="_self"
		slideLink.title = "Click for more photos";
		slideCaption.innerHTML = "Click image to see more pictures";
		imageCount = 1;
	} else {
		httpObject = getHTTPObject();
		if (httpObject != null) {
			if (is_ie) {
				var url = "/archivesdb/random_image.php?time=" + new Date().getTime();
				httpObject.open("GET", url, true);
				httpObject.onreadystatechange = downloadImage;
				httpObject.send(null);
			}
			else {
				httpObject.open("GET", "/archivesdb/random_image.php", true);
				httpObject.onreadystatechange = downloadImage;
				httpObject.send(null);
			}
		}
	//	else alert("No object at requestImage");
		clearTimeout(t);
//		t = window.setTimeout('requestImage()',10000);
	}
}

// Refresh the page with data returned from the server
function downloadImage(){
	if(httpObject.readyState == 4){
		var xmlReply = httpObject.responseXML;
//		alert("reply");
		try {
			fname = xmlReply.getElementsByTagName("filename")[0].childNodes[0].nodeValue;
		}
		catch(err) {
			t = window.setTimeout('requestImage()',5000);
			return;
		}
		if (fname.length > 0) {
			try {
				w = xmlReply.getElementsByTagName("width")[0].childNodes[0].nodeValue;
				h = xmlReply.getElementsByTagName("height")[0].childNodes[0].nodeValue;
			}
			catch(err) {
				t = window.setTimeout('requestImage()',5000);
				return;
			}
			try {
				docId = xmlReply.getElementsByTagName("docId")[0].childNodes[0].nodeValue;
				label = xmlReply.getElementsByTagName("label")[0].childNodes[0].nodeValue;
			}
			catch(err) {
				docId = "";
				label = "";
			}
			if (is_ie) {
				var imageWidth = document.documentElement.clientWidth - 320;
				if (imageWidth > 750) {
					imageWidth = 750;
				}
//				var imageHeight = document.documentElement.clientHeight - 270;
				var imageHeight = 350;
			} else {
				var imageWidth = window.innerWidth - 300;
				if (imageWidth > 725) {
					imageWidth = 725;
				}
//				var imageHeight = window.innerHeight - 270; 
				var imageHeight = 350;
			}
			if (imageHeight < 350) {
				imageHeight = 350;
			}
			if (w > imageWidth) {
				h = h * (imageWidth / w);
				w = imageWidth;
			}
			if (h > imageHeight) {
				w = w * (imageHeight / h);
				h = imageHeight;
			}
			vs = (imageHeight - h) / 2;
			hs = (imageWidth - w) / 2;
			var newSlide = document.getElementById("newSlide");
			newSlide.src = fname;
			newSlide.width = w;
			newSlide.height = h;
			newSlide.vspace = vs;
			newSlide.hspace = hs;
			fade = 0;
			if (imageCount <= 0) {
				var oldSlide = document.getElementById("oldSlide");
				oldSlide.src = fname;
				oldSlide.width = w;
				oldSlide.height = h;
				oldSlide.vspace = vs;
				oldSlide.hspace = hs;
				fade = 100;
			}
			imageCount = imageCount + 1;
		} 
		else {
			clearTimeout(t);
			t = window.setTimeout('doFade()',10);
		}
	}
}

function doFade() {
	var oldSlide = document.getElementById("oldSlide");
	var newSlide = document.getElementById("newSlide");
	fade = fade + 2;
	if(is_ie) {
		newSlide.filters.alpha.opacity = fade;
		oldSlide.filters.alpha.opacity = 100 - newSlide.filters.alpha.opacity;
	} else {
		newSlide.style.opacity = fade/100;
		oldSlide.style.opacity = 1.0 - newSlide.style.opacity;
	}
	if (fade < 100) {
		clearTimeout(t);
		t = window.setTimeout('doFade()',1);

		var slideCaption = document.getElementById("slideCaption");
		var slideLink = document.getElementById("slideLink");
		slideCaption.innerHTML = ".";
		slideLink.href= "";
		slideLink.title = "";

	} else {
		clearTimeout(t);
		t = window.setTimeout('requestImage()',5000);
		oldSlide.src = newSlide.src;
		oldSlide.width = newSlide.width;
		oldSlide.height = newSlide.height;
		oldSlide.vspace = newSlide.vspace;
 		oldSlide.hspace = newSlide.hspace;
		if(is_ie) {
			oldSlide.filters.alpha.opacity = 100;
			newSlide.filters.alpha.opacity = 0;
		} else {
			oldSlide.style.opacity = 1.0;
			newSlide.style.opacity = 0.0;
		}
		var slideCaption = document.getElementById("slideCaption");
		var slideLink = document.getElementById("slideLink");
		if (label.length > 0) {
			try {
//				slideCaption.innerHTML = label + ' w=' + w + ' h=' + h + ' vs=' + vs + ' hs=' + hs;
				slideCaption.innerHTML = label;
			}
			catch(err) {
				slideCaption.innerHTML = ".";
//				slideCaption.innerHTML = label;
			}
			slideLink.href= "/archivesdb/detail.php?ID=" + docId;
			slideLink.target="_blank"
			slideLink.title = "Click for more info";
		}
		else {
			slideCaption.innerHTML = "No info";
			slideLink.href= "javascript:requestImage();";
			slideLink.target="_self"
			slideLink.title = "No info";
		}
	}
}
function closeImage() {
	var oldSlide = document.getElementById("oldSlide");
	var newSlide = document.getElementById("newSlide");
	oldSlide.src = "";
	newSlide.src = "";
	requestImage();
}
