var userAgent = navigator.userAgent.toLowerCase();
var isIE = ((userAgent.indexOf("msie") != -1) && (userAgent.indexOf("opera") == -1) && (userAgent.indexOf("webtv") == -1));
var popupImages = new Array();

var indicatorIcon = "./images/icons/indicator.gif";
var closeIcon = "./images/icons/close.gif";


function openImage(a, width, height)
{
	// when action is linked to element like <a href='/sample.jpg' title='sample' onclick='popupImage(this)'>view me</a>
	var image_href  = a.href;
	var image_title = a.title;
	
	// when action is linked to element like document.getElementById('sample').onmouseover = popupImage;
	if (!image_href) {
		var image_href  = this.href;
		var image_title = this.title;	
	}
	
	if (!image_href)
		return false;
		
	var scrollbars = "no";
	// add margins to image size
	if (width > 0 && height > 0) {
		width += 30; height += 30;
	}
	// check available sizes
	var availableHeight = window.screen.availHeight - 60;
	var availableWidth = window.screen.availWidth - 20;
	if (isNaN(availableHeight)) { availableHeight = 520; } 
	if (isNaN(availableWidth)) { availableWidth = 760; } 
	if (height > availableHeight || height == 0) { 
		height = availableHeight;
		scrollbars = "yes"; 
	}
	if (width > availableWidth || width == 0) {
		width = availableWidth;
		scrollbars = "yes";
	}
	var openImageWin = window.open (image_href, 'openImageWin', 'left=0,top=0,toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=' + scrollbars + ',resizable=yes,width=' + width + ',height=' + height);
	openImageWin.focus();
	return false;
}


function popupImage(a){
	// when action is linked to element like <a href='/sample.jpg' title='sample' onclick='popupImage(this)'>view me</a>
	var image_href  = a.href;
	var image_title = a.title;
	
	// when action is linked to element like document.getElementById('sample').onmouseover = popupImage;
	if (!image_href) {
		var image_href  = this.href;
		var image_title = this.title;	
	}
	
	if (!image_href)
		return false;
		
	var black_cloud_inner = document.getElementById("black_cloud_inner");
	if (!black_cloud_inner) {
		var black_cloud_inner            = document.createElement('div');			
		black_cloud_inner.id             = "black_cloud_inner";
		black_cloud_inner.style.position = "absolute";
		black_cloud_inner.style.zIndex   = "4000";
		black_cloud_inner.style.padding  = "10px";
		black_cloud_inner.style.backgroundColor = "white";
		document.body.appendChild(black_cloud_inner);		
	} else {
		black_cloud_inner.style.visibility = "visible";	
	}
	black_cloud_inner.style.border = "1px solid #CCCCCC";
	black_cloud_inner.innerHTML = "<img src='" + indicatorIcon + "' alt='loading' />";
	centerScreen(black_cloud_inner, 10, 10);
	
	if (popupImages[image_href]) {
		loadedImage(popupImages[image_href]);		
	} else {
		var img = document.createElement('img');
		img.alt    = image_title;
		img.onload = loadedImage;
		img.src    = image_href;
		popupImages[image_href] = img;		
	}
	
	return false;
}
function loadedImage(img){
	if (img) {
		var image_href   = img.src;
		var image_title  = img.alt;	
		var image_width  = img.width;
		var image_height = img.height;
	} 
	
	if (!image_href) {
		var image_href   = this.src;
		var image_title  = this.alt;	
		var image_width  = this.width;
		var image_height = this.height;
	}
	
	var black_cloud_inner = document.getElementById("black_cloud_inner");
	black_cloud_inner.innerHTML  = "";
	centerScreen(black_cloud_inner, image_width, image_height);
	black_cloud_inner.innerHTML  = "<div align='right'><a href='#' onClick='hideBlack(); return false;'><img style='border:none;' src='" + closeIcon +"' alt='close'></a></div>";
	black_cloud_inner.innerHTML += "<center><img style='margin: 10px 0px;' src='" + image_href + "' alt='" + image_title + "' /></center>";	
	black_cloud_inner.innerHTML += "<div align='center'>";
	black_cloud_inner.innerHTML += image_title + "</div>";	
}

function hideBlack(){
	var black_cloud_inner = document.getElementById("black_cloud_inner");
	document.body.removeChild(black_cloud_inner);
	return false;
}

function centerScreen(black_cloud_inner, width, height){
	
	var window_width = 0;
	if (document.body.clientWidth && (window_width==0 || window_width>document.body.clientWidth))
		window_width = document.body.clientWidth;
	if (window.innerWidth && (window_width==0 || window_width>window.innerWidth))
		window_width = window.innerWidth;
	
	if ((window_width-width)/2 > 0)
		black_cloud_inner.style.left = Math.round((window_width-width)/2) + "px";
	else
		black_cloud_inner.style.left = "0px";
		
	var window_height = 0;
	if (window.screen.height && (window_height==0 || window_height>window.screen.height))
		window_height = window.screen.height;
	
	if ((window_height-height)/3 > 0)
		black_cloud_inner.style.top = Math.round((window_height-height)/3) + "px";
	else
		black_cloud_inner.style.top = "0px";
}

function showSelectBoxes(objId) {
	if (isIE) {
		var obj = document.getElementById(objId);
		var selects = obj.overlapObjects;
		if (selects && selects.length > 0) {
			for (var i = 0; i < selects.length; i++) {
				selects[i].style.visibility = "visible";
			}
		}
		obj.overlapObjects = null;
	}
}

function hideSelectBoxes(objId, objExclude) {
	if (isIE) {
		var obj = document.getElementById(objId);

		var x = findPosX(obj, false);
		var y = findPosY(obj, false);
		var w = obj.offsetWidth;
		var h = obj.offsetHeight;

		if (!obj.overlapObjects) {
			obj.overlapObjects = new Array();
		}

		selects = document.getElementsByTagName("select");
		for (i = 0; i != selects.length; i++) {

			var selectObj = selects[i];
			var objName = selectObj.name;
			var isExclude = false;
			if (objExclude && objExclude.length) {
				for (var ex = 0; ex < objExclude.length; ex++) {
					if (objName == objExclude[ex]) {
						isExclude = true;
					}
				}
			}
			if (isExclude == true || selectObj.style.visibility == "hidden") {
				continue;
			}

			var ox = findPosX(selectObj, false);
			var oy = findPosY(selectObj, false);
			var ow = selectObj.offsetWidth;
			var oh = selectObj.offsetHeight;

			if (ox > (x + w) || (ox + ow) < x) {
				continue;
			}
			if (oy > (y + h) || (oy + oh) < y) {
				continue;
			}
			obj.overlapObjects[obj.overlapObjects.length] = selectObj;

			selects[i].style.visibility = "hidden";
		}
	}
}

var rolloverImages = new Array();

function rolloverImage(imageId, imageSrc, imageName)
{
	if (!rolloverImages[imageId]) {
		rolloverImages[imageId] = new Image();
		rolloverImages[imageId].src = imageSrc;
	}
	document.images[imageName].src = rolloverImages[imageId].src;
}
