//---------------------------------------------------------------
// Opacity Displayer, Version 1.0
// Copyright Michael Lovitt, 6/2002.
// Distribute freely, but please leave this notice intact.
//---------------------------------------------------------------

//---------------------------------------------------------------
// OPACITY OBJECT
//
// Instantiates the object, defines the properties and methods.
function OpacityObject(divId, strPath, tag, Path, width, height, align, widthalign) {
	this.id 		= divId;
	this.mainpath 	= Path;
	this.path 		= Path + strPath;
	this.width 		= width;
	this.height		= height;
	if (ns){
		if (browserVersion>=5) {
		
			divs = document.getElementsByTagName(tag);
			for (var i = 0; i < divs.length; i++) 
			{
				if (divs[i].className == divId) 
				{
					this.layerObject 		= document.getElementById(divs[i].id);
					this.layerStyleObject 	= this.layerObject.style;
					this.setBackground 		= od_object_setBackground(this.width, this.height, align, this.layerObject, this.layerStyleObject, this.path, widthalign);
				}

			}
		} else { 
			divs = document.getElementsByTagName(tag);
			for (var i = 0; i < divs.length; i++) 
			{
				if (divs[i].className == divId) 
				{
					this.layerObject = eval(divs[i].id);
					this.layerStyleObject = eval(divs[i].id + ".style");
					this.setBackground = od_object_setBackground(this.width, this.height, align, this.layerObject, this.layerStyleObject, this.path, widthalign);
				}
			}
		}
	} else {
			
		divs = document.getElementsByTagName(tag);
		for (var i = 0; i < divs.length; i++) 
		{
			if (divs[i].className == divId) 
			{
				this.layerObject = eval(divs[i].id);
				this.layerStyleObject = eval(divs[i].id + ".style");
				this.setBackground = od_object_setBackground(this.width, this.height, align, this.layerObject, this.layerStyleObject, this.path, widthalign);
			}
		}
	}
}

function OpacityTag(divId, strPath, tag, Path, width, height, align, widthalign) {
	this.mainpath 	= Path;
	this.path 		= Path + strPath;
	this.width 		= width;
	this.height		= height;
	if (ns){
		if (browserVersion>=5) {
		
			divs = document.getElementsByTagName(tag);
			for (var i = 0; i < divs.length; i++) 
			{
				this.layerObject 		= divs[i].style;
				this.layerStyleObject	= this.layerObject;
				this.setBackground 		= od_object_setTag(this.width, this.height, align, this.layerObject, this.layerStyleObject, this.path, tag, widthalign);
			}
		} else { 
			divs = document.getElementsByTagName(tag);
			for (var i = 0; i < divs.length; i++) 
			{
				this.layerObject 		= eval(divs[i]);
				this.layerStyleObject	= this.layerObject;
				this.setBackground 		= od_object_setTag(this.width, this.height, align, this.layerObject, this.layerStyleObject, this.path, tag, widthalign);
			}
		}
	} else {
			
		divs = document.getElementsByTagName(tag);
		for (var i = 0; i < divs.length; i++) 
		{
			this.layerObject 		= divs[i];
			this.layerStyleObject 	= divs[i].style;
			this.setBackground 		= od_object_setTag(this.width, this.height, align, this.layerObject, this.layerStyleObject, this.path, tag, widthalign);
		}
	}

}

// Uses AlphaImageLoader filter, or the css background property,
// as appropriate, to apply a PNG or GIF as the background of the layerObject.
function od_object_setTag(intWidth, intHeight, align, layerObject, layerStyleObject, path, tag, widthalign) {	
	var top	= intWidth / 2;
	if (pngAlpha) {
		layerStyleObject.backgroundImage = 'none';
		layerObject.innerHTML	= '<div style="text-align: '+ align +';position:relative;" padding-top: 15px;"><div style="position: absolute; margin-bottom: + ' + top + 'px;'+align+':'+widthalign+'px;">'+ layerObject.innerHTML + '</div><div style="position: absolute; margin-bottom: + ' + top + 'px;top:-15px; '+align+':0px;height:'+intHeight+'px;width:'+intWidth+'px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+path+'.png\', sizingMethod=\'crop\')"></div></div>';
		layerStyleObject.marginBottom		= top + 'px';	
	} else if (pngNormal) {
		layerObject.backgroundImage 	= 'url('+path+'.png)';
		layerObject.backgroundPosition 	= 'top ' + align;
		layerObject.paddingBottom		= top + 'px';			
		layerObject.backgroundRepeat	= 'no-repeat';
	} else {
		layerStyleObject.backgroundImage = 'url('+path+'.gif)';
	}
}


// Uses AlphaImageLoader filter, or the css background property,
// as appropriate, to apply a PNG or GIF as the background of the layerObject.
function od_object_setBackground(intWidth, intHeight, align, layerObject, layerStyleObject, path, widthalign) {	
	var top		= (intWidth / 2) + 20;
	var subtop	= (intWidth / 2) - 10;
	if (pngAlpha) {
		layerStyleObject.backgroundImage = 'none';
		layerObject.innerHTML	= layerObject.innerHTML + '<div style="margin-top:' + subtop + 'px;text-align: '+ align +';position:relative;"><div style="position: absolute; margin-bottom:' + top + 'px;top:-100px; '+align+':'+widthalign+'px;height:'+intHeight+'px;width:'+intWidth+'px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+path+'.png\', sizingMethod=\'crop\')"></div><span style="padding-top:1px;">&nbsp;</span></div>';
		layerStyleObject.marginBottom		= top + 'px';	
	} else if (pngNormal) {
		layerObject.backgroundImage 	= 'url('+path+'.png)';
		layerObject.backgroundPosition 	= 'top ' + align;
		layerObject.paddingBottom		= top + 'px';			
		layerObject.backgroundRepeat	= 'no-repeat';
	} else {
		layerObject.backgroundImage = 'url('+path+'.gif)';
	}
}
//---------------------------------------------------------------

//---------------------------------------------------------------
// OPACITY DISPLAY FUNCTION
// Outputs the image as a div with the AlphaImageLoader, or with
// a standard image tag.
function od_displayImage(strId, strPath, intWidth, intHeight, strClass, strAlt) {	
	if (pngAlpha) {
		document.write('<div style="height:'+intHeight+'px;width:'+intWidth+'px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+strPath+'.png\', sizingMethod=\'scale\')" id="'+strId+'" class="'+strClass+'"></div>');
	} else if (pngNormal) {
		document.write('<img src="'+strPath+'.png" width="'+intWidth+'" height="'+intHeight+'" name="'+strId+'" border="0" class="'+strClass+'" alt="'+strAlt+'" />');
	} else {
		document.write('<img src="'+strPath+'.gif" width="'+intWidth+'" height="'+intHeight+'" name="'+strId+'" border="0" class="'+strClass+'" alt="'+strAlt+'" />');
	}
}
//---------------------------------------------------------------

//---------------------------------------------------------------
// OPACITY ROLL-OVER FUNCTIONS
function od_rollOver(strId, strColor) {	
	if (pngAlpha) {
		document.getElementById(strId).style.backgroundColor = strColor;
	} else {
	    if (document.images && (flag == true)) {
	        document[strId].src = eval(strId + "on.src");
	    }
	}
}
function od_rollOut(strId, strColor) {	
	if (pngAlpha) {
		document.getElementById(strId).style.backgroundColor = strColor;
	} else {
	    if (document.images) {
	        document[strId].src = eval(strId + "off.src");
	    }
	}
}
//---------------------------------------------------------------

//---------------------------------------------------------------
// global variables

// if IE5.5+ on win32, then display PNGs with AlphaImageLoader
if ((browser.isIE55 || browser.isIE6up) && browser.isWin32) {
	var pngAlpha = true;
	var strExt = ".png";
// else, if the browser can display PNGs normally, then do that. that list includes:
	//     -Gecko Engine: Netscape 6 or Mozilla, Mac or PC
	//     -IE5+ Mac (OpacityObject applies the background image at 100% opacity)
	//     -Opera 6+ PC
	//     -Opera 5+ Mac (Doesn't support dynamically-set background images)
	//     -Opera 6+ Linux 
	//     -Omniweb 3.1+ 
	//     -Icab 1.9+ 
	//     -WebTV 
	//     -Sega Dreamcast
}

var ns = (document.all)?false:true;
var browserVersion = parseFloat(navigator.appVersion );
//---------------------------------------------------------------