
// image browser v0.1 by Michal Luberda
colorImageShadow            = "#244964";
colorImageCloseShadow       = "#244964";
colorImageBorder            = "#000";
colorImageCloseShadowBorder = "#000";
colorImageCloseBorder       = "#000";
colorImageBackground        = "#D5DCE1";
colorImageBackgroundBorder  = "#000";
colorImageCloseBackground   = "#D5DCE1";
imageClose                  = "images/content/chiudi.gif";
imageLoading                = "images/content/loading.gif";

imgX = 0;
imgY = 0;
imgFile = "";

function imageBrowser(x, y, file) {
	if (!isW3C) {
		var image = window.open("popup.html", "", "width=" + x + ",height=" + y + ",toolbar=no,fullscreen=no,menubar=no");
		image.document.write("<html><head></head><body onBlur=\"self.close();\" onclick=\"javascript: self.close();\" style=\"margin: 0; padding 0;\"><img width=\"" + x + "\" height=\"" + y + "\" src=\"" + file + "\"></body></html>");
		return;
	}
    
    window.onscroll		= mouseScroll;
    window.onkeydown	= mouseScroll;
    
	imgX = x;
	imgY = y;
	imgFile = file;
	
	closeImageBrowser();
	winx = (isNN6)? window.innerWidth : (isIE4)? document.body.clientWidth : 800;
	winy = (isNN6)? window.innerHeight : (isIE4)? document.body.clientHeight : 600;
	
	posx = ((x + 20) > winx)? 0 : ((winx - x - 6) / 2) & 65535; //  - 20
	posy = ((y + 20) > winy)? 0 : ((winy - y - 6) / 2) & 65535; //  - 20
	
	xscr = (isNN6)? window.pageXOffset : document.body.scrollLeft;
	yscr = (isNN6)? window.pageYOffset : document.body.scrollTop;
	
	posx += xscr;
	posy += yscr;
	
	off = (isIE4)? 2 : 0;
	
	// shadow image
	var s = document.createElement("div");
	getRawObject(s).id		= "imageShadow";
	getObject(s).position	= "absolute";
	getObject(s).width		= x + 6 + off + "px";
	getObject(s).height		= y + 6 + off + "px";
	getObject(s).left		= posx + 3 + "px";
	getObject(s).top		= posy + 3 + "px";
	getObject(s).border		= "1px solid " + colorImageBorder;
	getObject(s).zIndex		= 1;
	setBGColor(s, colorImageShadow);
	
	// shadow close
	var s2 = document.createElement("div");
	getRawObject(s2).id		= "imageCloseShadow";
	getObject(s2).position	= "absolute";
	getObject(s2).width		= x + 6 + off + "px";
	getObject(s2).height	= 26 + off + "px";
	getObject(s2).left		= posx + 3 + "px";
	getObject(s2).top		= posy + y + 21 + "px";
	getObject(s2).border	= "1px solid " + colorImageCloseShadowBorder;
	getObject(s2).zIndex	= 2;
	setBGColor(s2, colorImageCloseShadow);
	
	// close button
	var c = document.createElement("div");
	getRawObject(c).id		= "imageClose";
	getObject(c).position	= "absolute";
	getObject(c).width		= x + 6 + off + "px";
	getObject(c).height		= 26 + off + "px";
	getObject(c).left		= posx + "px";
	getObject(c).top		= posy + y + 18 + "px";
	getObject(c).border		= "1px solid " + colorImageCloseBorder;
	posxclose = x / 2 - 28;
	getObject(c).background 	= "url('" + imageClose + "') no-repeat " + posxclose + "px 5px";
	getObject(c).zIndex		= 3;
	setBGColor(c, colorImageCloseBackground);
	
	// loading button
	var l = document.createElement("div");
	getRawObject(l).id		= "imageLoading";
	getObject(l).position	= "absolute";
	getObject(l).width		= x + 6 + off + "px";
	getObject(l).height		= 26 + off + "px";
	getObject(l).left		= 20 + posx + "px";
	getObject(l).top		= posy + y / 2 + off + "px";
	posxclose = x / 2 - 40;
	getObject(l).background 	= "url('" + imageLoading + "') no-repeat " + posxclose + "px 0";
	getObject(l).zIndex		= 5;
	
	// image background
	var d = document.createElement("div");
	getRawObject(d).id		= "imageBackground";
	getObject(d).position	= "absolute";
	getObject(d).width		= x + 6 + off + "px";
	getObject(d).height		= y + 6 + off + "px";
	getObject(d).left		= posx + "px";
	getObject(d).top		= posy + "px";
	getObject(d).border		= "1px solid " + colorImageBackgroundBorder;
	getObject(d).zIndex		= 4;
	setBGColor(d, colorImageBackground);
	
	// image
	var i = document.createElement("div");
	getRawObject(i).id		= "imageBrowser";
	getObject(i).position	= "absolute";
	getObject(i).width		= x + "px";
	getObject(i).height		= y + "px";
	getObject(i).left		= posx + 2 + "px";
	getObject(i).top		= posy + 2 + "px";
	getObject(i).background = "url('" + file + "') no-repeat 3px 3px";
	getObject(i).zIndex		= 6;
	
	// append objects
	document.body.appendChild(s);
	document.body.appendChild(s2);
	document.body.appendChild(d);
	document.body.appendChild(c);
	document.body.appendChild(l);
	document.body.appendChild(i);
	
	// add handlers to close button
	if (isNN6) {
		getRawObject("imageClose").addEventListener("mouseover", omo1, false);
		getRawObject("imageClose").addEventListener("click", closeImageBrowser, false);
	}
	else {
		getRawObject("imageClose").attachEvent("onmouseover", omo1);
		getRawObject("imageClose").attachEvent("onclick", closeImageBrowser);
	}
	
	if (document.body.addEventListener) {
	    getRawObject(d).addEventListener('DOMMouseScroll', mouseScroll, false);
	}
}

// close browser
function closeImageBrowser() {
	if (getRawObject("imageShadow")) document.body.removeChild(getRawObject("imageShadow"));
	if (getRawObject("imageCloseShadow")) document.body.removeChild(getRawObject("imageCloseShadow"));
	if (getRawObject("imageClose")) document.body.removeChild(getRawObject("imageClose"));
	if (getRawObject("imageBrowser")) document.body.removeChild(getRawObject("imageBrowser"));
	if (getRawObject("imageBackground")) document.body.removeChild(getRawObject("imageBackground"));
	if (getRawObject("imageLoading")) document.body.removeChild(getRawObject("imageLoading"));
}

function omo1() {
	cursorStyle(getRawObject("imageClose"));
}
function mouseScroll() {
	if (!isW3C)
		return;
	if (document.getElementById("imageBrowser")) {
        closeImageBrowser();
        imageBrowser(imgX, imgY, imgFile);
	}
}

