var browserName = navigator.appName; 

/*
 * Delegate function
 */
function delegate(instance, method)
{
  return function()
  {
    return method.apply(instance, arguments);
  }
}

// method fires on mouse over on the emailadress button
function imageButtonShowArrow(sender)
{
	var aoImages = sender.parentNode.getElementsByTagName("img");
	for (var i=0; i<aoImages.length; i++)
		if (aoImages[i].src.toLowerCase().indexOf("arrow") != -1)
		{
			// set transparency to 0
			setTransparency(aoImages[i], 0);
			
			// display the image
			aoImages[i].style.display = "inline";
			
			// fade to a transparancy of 100
			fadeTransparencyUp(aoImages[i], 100, 30);
		}
}

// method fires on mouse out on the emailadress button
function imageButtonHideArrow(sender)
{
	var aoImages = sender.parentNode.getElementsByTagName("img");
	for (var i=0; i<aoImages.length; i++)
		if (aoImages[i].src.toLowerCase().indexOf("arrow") != -1)
		{			
			// fade to a transparancy of 100
			fadeTransparencyDown(aoImages[i], 0, 30);
			
			aoImages[i].style.display = "none";
		}
}

function showMouseOverButton(sender)
{	
	// get all child images
	var aoImages = sender.getElementsByTagName("img");
	
	// find the image with '_true' in name
	for (var iImageIndex = 0; iImageIndex < aoImages.length; iImageIndex++)
	{
		if (aoImages[iImageIndex].src.toLowerCase().indexOf("_true") != -1)
		{
			// set transparency to 0
			setTransparency(aoImages[iImageIndex], 0);
			
			// display the image
			aoImages[iImageIndex].style.display = "block";
			
			// fade to a transparancy of 100
			fadeTransparencyUp(aoImages[iImageIndex], 100, 30);
		}
	}
}

function hideMouseOverButton(sender)
{
	// get all child images
	var aoImages = sender.getElementsByTagName("img");
	
	// find the image with '_true' in name
	for (var iImageIndex = 0; iImageIndex < aoImages.length; iImageIndex++)
	{
		if (aoImages[iImageIndex].src.toLowerCase().indexOf("_true") != -1)
		{
			// fade to a transparancy of 100
			fadeTransparencyDown(aoImages[iImageIndex], 0, 30);
			
			aoImages[iImageIndex].style.display = "none";
		}
	}
}

function fadeTransparencyUp(object, transparency, speed)
{	
	// if transparency is not set.. set it to '0'
	//if (object.style.filter == "")
	//	setTransparency(object, 0);
		
	var iOpacity = getTransparency(object);
	
	iOpacity = iOpacity + 10;
	
	// set new tranparency
	setTransparency(object, iOpacity);
	
	if (iOpacity < transparency && iOpacity < 100)
	{
		window.setTimeout(function() { fadeTransparencyUp(object, transparency, speed) }, speed);
	}
}

function fadeTransparencyDown(object, transparency, speed)
{	
	// if transparency is not set.. set it to '0'
	//if (object.style.filter == "")
	//	setTransparency(object, 100);
	
	var iOpacity = getTransparency(object);
	
	iOpacity = iOpacity - 10;
	
	// set new tranparency
	setTransparency(object, iOpacity);
	
	if (iOpacity > transparency && iOpacity > 0)
	{
		window.setTimeout(function() { fadeTransparencyDown(object, transparency, speed) }, speed);
	}
}

function getTransparency(object)
{
	var iTransparency = 0;
	
	if (browserName == "Netscape")
	{
		if (object.style.opacity != "")
		{
			iTransparency = parseInt(object.style.opacity * 100, 10);
		}	
	}
	else if (browserName == "Microsoft Internet Explorer")
	{
		var regExp = new RegExp("alpha\\(opacity=([0-9]+)\\)");
		var m = regExp.exec(object.style.filter);
		if (m != null)
			iTransparency = parseInt(m[1], 10);	
	}
	
	return iTransparency;
}

function setTransparency(object, transparency)
{
	if (browserName == "Netscape")
	{
		var opacity = (transparency/100);
		//alert(opacity);
		object.style.opacity = opacity; //parseInt(transparency,10)/10).toString();
	}
	else if (browserName == "Microsoft Internet Explorer")
	{
		//alert(transparency);
		object.style.filter = "alpha(opacity=" + transparency + ")";
	}
	
	
	//filter:alpha(opacity=40);
//-moz-opacity:.40;
//opacity:.40;}
}

// ImageOverlay OuterImagePanel object (for delegates)
function OuterImagePanel(id) {
  this.controlId = id;
  
  this.onmouseover = function()
  {
	customImageButton_onMouseOver(document.getElementById(this.controlId));
  }
  
  this.onmouseout = function()
  {
	customImageButton_onMouseOut(document.getElementById(this.controlId));
  }
}

function SetImageOverlayStyles()
{
	var aoImages = document.getElementsByTagName("img");
	var aoImagesLength = aoImages.length;
	for (var iImageIndex = 0; iImageIndex < aoImagesLength; iImageIndex++)
	{
		if (typeof(aoImages[iImageIndex].getAttribute("CustomOverlay")) != "undefined" && aoImages[iImageIndex].getAttribute("CustomOverlay") != null && aoImages[iImageIndex].getAttribute("CustomOverlay").toLowerCase() == "true")
		{
			// the image to overlay
			var oImage = aoImages[iImageIndex];
			
			// the parent div
			var oParentDiv = oImage.parentNode;
			
			// create border
			var oBorder = document.createElement("div");
			oBorder.className = "divImageBorder";			
			oBorder.style.height = "90px";
			oBorder.style.width = "259px";
			
			// add the border BEFORE the image
			oParentDiv.insertBefore(oBorder, oImage);
						
			// if title is set
			if (typeof(oImage.getAttribute("OverlayTitle")) != "undefined" && oImage.getAttribute("OverlayTitle") != null)
			{
				var oTitleOverlay = document.createElement("div");
				oTitleOverlay.className = "divImageOverlayTitle";
				oTitleOverlay.innerHTML = oImage.getAttribute("OverlayTitle");				
				// add the border BEFORE the border div
				oParentDiv.insertBefore(oTitleOverlay, oBorder);
			}
			
			if (typeof(aoImages[iImageIndex].getAttribute("HoverEvent")) != "undefined" && aoImages[iImageIndex].getAttribute("HoverEvent") != null && aoImages[iImageIndex].getAttribute("HoverEvent").toLowerCase() == "true")
			{			
				var oOverlayForMouseOver = document.createElement("div");
				oOverlayForMouseOver.id = "customImageBtn_" + iImageIndex;
				oOverlayForMouseOver.className = "divImageMouseOverOverlay";			
				oOverlayForMouseOver.style.height = "90px";
				oOverlayForMouseOver.style.width = "259px";
				oOverlayForMouseOver.style.cursor = "pointer";
				// add BEFORE border
				oParentDiv.insertBefore(oOverlayForMouseOver, oBorder);
				
				// outer panel object needed to delegate the event functions
				var outerImagePanel = new OuterImagePanel("customImageBtn_" + iImageIndex);
				
				// attach the mouse-events (delegate them) for showing the transparent div
				if (oParentDiv.addEventListener)
				{
					oParentDiv.addEventListener("mouseover", new delegate(outerImagePanel, outerImagePanel.onmouseover), false);
					oParentDiv.addEventListener("mouseout", new delegate(outerImagePanel, outerImagePanel.onmouseout), false);
				}
				else if (oParentDiv.attachEvent)
				{
					oParentDiv.attachEvent("onmouseover", new delegate(outerImagePanel, outerImagePanel.onmouseover) );
					oParentDiv.attachEvent("onmouseout", new delegate(outerImagePanel, outerImagePanel.onmouseout) );
				}
				else
				{
					oParentDiv.onmouseover = delegate(outerImagePanel, outerImagePanel.onmouseover);
					oParentDiv.onmouseout = delegate(outerImagePanel, outerImagePanel.onmouseout);
				}
			}
			
			
		}
	}
}

function customImageButton_onMouseOver(divToShow)
{
	setTransparency(divToShow, 0);
	divToShow.style.display = "block";
	fadeTransparencyUp(divToShow, 40, 30);	
}

function customImageButton_onMouseOut(divToHide)
{
	fadeTransparencyDown(divToHide, 0, 30);
	divToHide.style.display = "none";
	//window.setTimeout(function() { hideElement(divToHide) }, 5000);
}

function galleryIndexItemClick(sender)
{
	var oParentDiv = sender.parentNode;
	var aoHrefs = oParentDiv.getElementsByTagName("A");
	var iHrefIndex = aoHrefs.length;
	while(iHrefIndex--)
	{
		aoHrefs[iHrefIndex].style.fontSize = "12px";
		aoHrefs[iHrefIndex].style.color = "";
	}
	
	sender.style.fontSize = "15px";
	sender.style.color = "#000000";
}