// Check for Flash plugin and identify version
flash = new FlashConfig();

function FlashConfig() {
	this.forcehide = false;
	this.movies = new Array();
	this.embedMode = (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) ? true : false; // netscape plugin architecture (NS3+, Mozilla, Opera3+, IE5+ Mac)
	this.version = 0;
	this.minor = 0;
	this.rev = 0;

	this.setFlashVer = function(verArray) {
		this.version = parseInt(verArray[0]) || 0;
		this.minor = parseInt(verArray[1]) || 0;
		this.rev = parseInt(verArray[2]) || 0;
	}
	
	if(this.embedMode) {
		var sf = navigator.plugins["Shockwave Flash"];
		if(sf && sf.description) {
			this.setFlashVer(sf.description.replace(/([a-z]|[A-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
		}
	}
	else if(window.ActiveXObject) { // IE4+ Win32
		try {
			var aObj = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			this.setFlashVer(aObj.GetVariable("$version").split(" ")[1].split(","));
		} catch (e) {}
	}
}

function FlashObj(src,width,height) {
	flash.movies[flash.movies.length] = this;
	this.num = flash.movies.length-1;
	this.id = "flashobj_" + this.num;
	this.src = src;
	this.width = width;
	this.height = height;
	this.wmode = "transparent";
	this.params = new Array();

	this.addParam = function(name,value) {
		this.params[this.params.length] = { key:name, val:value };
	}
	
	this.setOpaque = function(wmode) {
		this.wmode = "opaque";
	}
	
	this.setForceHide = function() {
		flash.forcehide = true;
		this.wmode = "window";
	}

	// set unchangable params
	this.addParam("quality","high")
	this.addParam("menu","false")
	this.addParam("allowScriptAccess","sameDomain")
	
	this.getHTML = function() {
		// set wmode
		this.addParam("wmode",this.wmode);
		
		// create html
		var flashHTML = '<div id="flash_'+this.num+'" class="flashobj" style="width:'+this.width + ((this.width.toString().indexOf("%") > -1) ? "" : "px") + ';height:'+this.height+((this.height.toString().indexOf("%") > -1) ? "" : "px")+'; overflow:hidden;">';
    	if(flash.embedMode) {
	        flashHTML += '<embed type="application/x-shockwave-flash" pluginspace="'+location.protocol+'//www.macromedia.com/go/getflashplayer" src="'+ this.src +'" width="'+ ((this.width.toString().indexOf("%") > -1) ? "100%" : this.width) +'" height="'+ ((this.height.toString().indexOf("%") > -1) ? "100%" : this.height) +'" id="'+ this.id + '" name="'+ this.id +'"';
	        for(var i = this.params.length-1; i > -1; i--) {
				flashHTML += ' ' + this.params[i].key + '="' + this.params[i].val + '"'
			}
	        flashHTML += '></embed>';
		}
		else {
	        flashHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="'+location.protocol+'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ ((this.width.toString().indexOf("%") > -1) ? "100%" : this.width) +'" height="'+ ((this.height.toString().indexOf("%") > -1) ? "100%" : this.height) +'" id="'+ this.id +'">';
	        flashHTML += '<param name="movie" value="' + this.src + '" />';
	        for(var i = this.params.length-1; i > -1; i--) {
				flashHTML += '<param name="' + this.params[i].key + '" value="' + this.params[i].val + '" />'
			}
	        flashHTML += '</object>';
		}
		return flashHTML += "</div>";
	}
	
	this.write = function(targetID) {
		if(flash.version >= 6) document.getElementById(targetID).innerHTML = this.getHTML(); // version 6 is min for Novell site
	}
	
}



// -------------------------------------------------------------------
// Image Thumbnail Viewer II- By Dynamic Drive, available at: http://www.dynamicdrive.com
// Last updated: Feb 5th, 2007
// -------------------------------------------------------------------

var thumbnailviewer2={
enableTitle: true, //Should "title" attribute of link be used as description?
enableTransition: true, //Enable fading transition in IE?
hideimgmouseout: false, //Hide enlarged image when mouse moves out of anchor link? (if enlarged image is hyperlinked, always set to false!)

/////////////No need to edit beyond here/////////////////////////

iefilterstring: 'progid:DXImageTransform.Microsoft.GradientWipe(GradientSize=1.0 Duration=0.7)', //IE specific multimedia filter string
iefiltercapable: document.compatMode && window.createPopup? true : false, //Detect browser support for IE filters
preloadedimages:[], //array to preload enlarged images (ones set to display "onmouseover"
targetlinks:[], //array to hold participating links (those with rel="enlargeimage:initType")
alreadyrunflag: false, //flag to indicate whether init() function has been run already come window.onload

loadimage:function(linkobj){
var imagepath=linkobj.getAttribute("href") //Get URL to enlarged image
var showcontainer=document.getElementById(linkobj.getAttribute("rev").split("::")[0]) //Reference container on page to show enlarged image in
var dest=linkobj.getAttribute("rev").split("::")[1] //Get URL enlarged image should be linked to, if any
var description=(thumbnailviewer2.enableTitle && linkobj.getAttribute("title"))? linkobj.getAttribute("title") : "" //Get title attr
var imageHTML='<img src="'+imagepath+'" style="border-width: 0" />' //Construct HTML for enlarged image
if (typeof dest!="undefined") //Hyperlink the enlarged image?
imageHTML='<a href="'+dest+'">'+imageHTML+'</a>'
if (description!="") //Use title attr of the link as description?
imageHTML+='<br />'+description
if (this.iefiltercapable){ //Is this an IE browser that supports filters?
showcontainer.style.filter=this.iefilterstring
showcontainer.filters[0].Apply()
}
showcontainer.innerHTML=imageHTML
this.featureImage=showcontainer.getElementsByTagName("img")[0] //Reference enlarged image itself
this.featureImage.onload=function(){ //When enlarged image has completely loaded
if (thumbnailviewer2.iefiltercapable) //Is this an IE browser that supports filters?
showcontainer.filters[0].Play()
}
this.featureImage.onerror=function(){ //If an error has occurred while loading the image to show
if (thumbnailviewer2.iefiltercapable) //Is this an IE browser that supports filters?
showcontainer.filters[0].Stop()
}
},

hideimage:function(linkobj){
var showcontainer=document.getElementById(linkobj.getAttribute("rev").split("::")[0]) //Reference container on page to show enlarged image in
showcontainer.innerHTML=""
},


cleanup:function(){ //Clean up routine on page unload
if (this.featureImage){this.featureImage.onload=null; this.featureImage.onerror=null; this.featureImage=null}
this.showcontainer=null
for (var i=0; i<this.targetlinks.length; i++){
this.targetlinks[i].onclick=null
this.targetlinks[i].onmouseover=null
this.targetlinks[i].onmouseout=null
}
},

addEvent:function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)
var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
if (target.addEventListener)
target.addEventListener(tasktype, functionref, false)
else if (target.attachEvent)
target.attachEvent(tasktype, functionref)
},

init:function(){ //Initialize thumbnail viewer script
this.iefiltercapable=(this.iefiltercapable && this.enableTransition) //True or false: IE filters supported and is enabled by user
var pagelinks=document.getElementsByTagName("a")
for (var i=0; i<pagelinks.length; i++){ //BEGIN FOR LOOP
if (pagelinks[i].getAttribute("rel") && /enlargeimage:/i.test(pagelinks[i].getAttribute("rel"))){ //Begin if statement: Test for rel="enlargeimage"
var initType=pagelinks[i].getAttribute("rel").split("::")[1] //Get display type of enlarged image ("click" or "mouseover")
if (initType=="mouseover"){ //If type is "mouseover", preload the enlarged image for quicker display
this.preloadedimages[this.preloadedimages.length]=new Image()
this.preloadedimages[this.preloadedimages.length-1].src=pagelinks[i].href
pagelinks[i]["onclick"]=function(){ //Cancel default click action
return false
}
}
pagelinks[i]["on"+initType]=function(){ //Load enlarged image based on the specified display type (event)
thumbnailviewer2.loadimage(this) //Load image
return false
}
if (this.hideimgmouseout)
pagelinks[i]["onmouseout"]=function(){
thumbnailviewer2.hideimage(this)
}
this.targetlinks[this.targetlinks.length]=pagelinks[i] //store reference to target link
} //end if statement
} //END FOR LOOP


} //END init() function

}


if (document.addEventListener) //Take advantage of "DOMContentLoaded" event in select Mozilla/ Opera browsers for faster init
thumbnailviewer2.addEvent(document, function(){thumbnailviewer2.alreadyrunflag=1; thumbnailviewer2.init()}, "DOMContentLoaded") //Initialize script on page load
else if (document.all && document.getElementsByTagName("a").length>0){ //Take advantage of "defer" attr inside SCRIPT tag in IE for instant init
thumbnailviewer2.alreadyrunflag=1
thumbnailviewer2.init()
}
thumbnailviewer2.addEvent(window, function(){if (!thumbnailviewer2.alreadyrunflag) thumbnailviewer2.init()}, "load") //Default init method: window.onload
thumbnailviewer2.addEvent(window, function(){thumbnailviewer2.cleanup()}, "unload")