function prepareImages(){
	if(!document.getElementById) return false;
	if(!document.getElementsByTagName) return false;
	if(!document.getElementById("content")) return false;
	var imageArea = document.getElementById("content");
	var imageArray = imageArea.getElementsByTagName("IMG");
	var imageOverArray = new Object();
	for (i=0;i<imageArray.length;i++){
		imageArray[i].onmouseover = function(){
			showHover(this.src,this.title);
		}
		imageArray[i].onmouseout = function(){
			hideHover();
		}
		imageOverArray[i] = new Image(400,300);
		imageOverArray[i].src = imageArray[i].src.replace("thumbs","preview");
	}
	var hoverDiv = document.createElement("div");
	hoverDiv.setAttribute("id","hoverDiv");
	var hovImg = document.createElement("img");
	hovImg.setAttribute("width",400);
	hovImg.setAttribute("height",300);
	hovImg.setAttribute("src","");
	var hovTitle = document.createElement("h1");
	hovTitle.setAttribute("id","hoverTitle");
	var txt = document.createTextNode("Info");
	hovTitle.appendChild(txt);
	hoverDiv.appendChild(hovImg);
	hoverDiv.appendChild(hovTitle);
	document.getElementsByTagName("BODY")[0].appendChild(hoverDiv);
}
function initialise(){
	if(!document.getElementById) return false;
	if(!document.getElementsByTagName) return false;
	if(!document.getElementById("content")) return false;
	posx = 0;
	posy = 0;
	scrollTop = 0;
	docHeight = 0;
	imageArea = document.getElementById("content");
	preview = document.getElementById("hoverDiv");
	previewimage = preview.getElementsByTagName("IMG")[0];
	previewTitle = document.getElementById("hoverTitle");
	previewimage.setAttribute("src",'');
	previewimage.maxH = parseInt(previewimage.getAttribute("height"));
	previewimage.maxW = parseInt(previewimage.getAttribute("width"));
	previewimage.tmpSrc="";
	previewimage.dirX = "";
	previewimage.dirY = "";
	previewimage.style.height='0px';
	previewimage.style.width='0px';
	
}

function showHover(myImg,myTitle){
	document.onmousemove = track;
		if(!document.getElementById) return false;
		if(!document.getElementsByTagName) return false;
		if(previewimage.tmpSrc==""){
			var thisImg = myImg.replace("thumbs","preview");
			var thisHeight = 300;
			var thisWidth = 400;
			previewimage.maxW=thisWidth;
			previewimage.maxH=thisHeight;
			previewimage.setAttribute("src",thisImg);
			previewTitle.childNodes[0].nodeValue=myTitle;
			previewimage.tmpSrc="inUse";
		}
		if(parseInt(previewimage.style.width)<previewimage.maxW){
			var incW = Math.ceil((previewimage.maxW-parseInt(previewimage.style.width))/10);
			previewimage.style.width=parseInt(previewimage.style.width) + incW + 'px';
		}
		if(parseInt(previewimage.style.height)<previewimage.maxH){
			var incH = Math.ceil((previewimage.maxH-parseInt(previewimage.style.height))/10);
			previewimage.style.height=parseInt(previewimage.style.height)+ incH + 'px';
		}
		if(previewimage.dirX == ""){
			if((posx+previewimage.maxW)>=imageArea.offsetWidth){
			previewimage.dirX="left";
			}else{
			previewimage.dirX="right";
			}
		}
		if(previewimage.dirX=="right")preview.style.left=posx + 10 + 'px';
		if(previewimage.dirX=="left")preview.style.left=posx - parseInt(preview.clientWidth+10) + 'px';

		if(previewimage.dirY == ""){//alert("posy:"+posy+"maxH:"+previewimage.maxH+"docH:"+docHeight);
			if(((posy-scrollTop)+previewimage.maxH+50)>=(docHeight)){
				previewimage.dirY="up";
			}else{
				previewimage.dirY="down";
			}
		}
		if(previewimage.dirY=="down")preview.style.top=posy + 10 + 'px';
		if(previewimage.dirY=="up")preview.style.top=posy - parseInt(preview.clientHeight+10) + 'px';
		preview.style.visibility="visible";
		var repeat = "showHover('"+myImg+"')";
		previewimage.move=setTimeout(repeat,1);
}
function hideHover(){
document.onmousemove = "";
	if(!document.getElementById) return false;
	if(!document.getElementsByTagName) return false;
	clearTimeout(previewimage.move);
	preview.style.visibility="hidden";
	previewimage.setAttribute("src",'');
	previewimage.tmpSrc="";
	previewimage.style.height='0px';
	previewimage.style.width='0px';
	previewimage.dirX = "";
	previewimage.dirY = "";
	
}
function track(e){
if (!e) var e = window.event;
	if (e.pageX || e.pageY){ //firefox and opera
		posx = e.pageX;
		posy = e.pageY;
		scrollTop = window.pageYOffset;
		if(document.documentElement.clientHeight<document.body.clientHeight){
			docHeight = document.documentElement.clientHeight;	
		}else{
			docHeight = document.body.clientHeight;
		}
	}
	else if (e.clientX || e.clientY){ // ie
		if(document.documentElement.clientHeight){
			posx = e.clientX + document.documentElement.scrollLeft;
			posy = e.clientY + document.documentElement.scrollTop;
			scrollTop = document.documentElement.scrollTop;
			docHeight = document.documentElement.clientHeight;
		}
		else if(document.body){
			posx = e.clientX + document.body.scrollLeft;
			posy = e.clientY + document.body.scrollTop;
			scrollTop = document.body.scrollTop;
			docHeight = document.body.clientHeight;
		}
	}
}
//document.onmousemove = track;
addLoadEvent(prepareImages);
addLoadEvent(initialise);