

	function detectMacXFF() {
	  var userAgent = navigator.userAgent.toLowerCase();
	  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
		return true;
	  }
	}

	function initViewer(contentUrl, baseUrl, contentType, contentWidth, contentHeight, topDist, parentID, closeImage, backGround) {
		//var viewer_backdrop = Builder.node('div', {id: "viewer_backdrop", style: "display: none;"});
		//var viewer_window = Builder.node('div', {id: "viewer_window", style: "display: none;"});
		//var viewer_content = Builder.node('div', {id: "viewer_content", style: "display: none;"});

		if (!topDist || topDist == '') {
			topDist = 75;
		}

		if (!baseUrl) {
			baseUrl = "";
		}


		////////////////////
		// set up viewer window and background
		////////////////////

		var viewer_backdrop = document.createElement("div");
		viewer_backdrop.setAttribute("id", "viewer_backdrop");

		if (!backGround || backGround == '') {
			viewer_backdrop.style.display = "none";
		} else if (backGround.indexOf('.') > 0) {
			viewer_backdrop.style.backgroundImage = "url("+baseUrl+backGround+")";
			viewer_backdrop.style.backgroundRepeat = "repeat";
		} else {
			viewer_backdrop.style.display = "none";
			viewer_backdrop.style.backgroundColor = backGround;
		}

		var viewer_window = document.createElement("div");
		viewer_window.setAttribute("id", "viewer_window");
		viewer_window.style.display = "none";

		var viewer_content = document.createElement("div");
		viewer_content.setAttribute("id", "viewer_content");


		////////////////////
		// figure out what the parent is
		////////////////////

		if (!parentID || parentID == '') {
			var objPar = document.getElementsByTagName("body").item(0);
		} else {
			var objPar = document.getElementById(parentID);
			if (!objPar) {
				objPar = document.getElementsByTagName("body").item(0);
			}
		}


		var objSib = objPar.firstChild;
		objPar.insertBefore(viewer_backdrop, objPar.firstChild);
		objPar.insertBefore(viewer_window, viewer_backdrop.nextSibling);
		viewer_window.appendChild(viewer_content);


		////////////////////
		// set up the close button
		////////////////////

		if (!closeImage || closeImage == '') {
			//closeImage = "images/layouts/_video_close.jpg";
			closeImage = "includes/galleryviewer/_video_close.jpg";
		}

		var viewer_close = document.createElement("img");
		viewer_close.setAttribute("id", "viewer_close");
		viewer_close.setAttribute("src", closeImage);
		viewer_close.onclick = hideViewer;

		viewer_window.appendChild(viewer_close);


		//////////////////// 
		// if we don't have a background image or color, make the background translucent
		////////////////////

		if (!backGround || backGround == '') {
			var d = detectMacXFF();
			if (d) {
				//osx ff css opacity + flash wmode transparent doesn't work
				viewer_backdrop.style.backgroundColor = "";
				viewer_backdrop.style.backgroundImage= "url("+baseUrl+"includes/login/trans.png)";
				viewer_backdrop.style.backgroundRepeat="repeat";
			} else {
				viewer_backdrop.style.backgroundColor = "#000";
				viewer_backdrop.style.MozOpacity = ".7";
				viewer_backdrop.style.opacity = ".7";
				viewer_backdrop.style.filter = "alpha(opacity=80)";
			}
		}


		////////////////////
		// set up the content to display
		////////////////////

		if (!contentType || contentType == '') {
			contentType = "swf";
		}

		if(!contentUrl) {
			contentUrl = "";
		}

		if (contentType == "swf" && contentUrl != "") {
			
			var objs = document.getElementsByTagName('object');
			for (var i = 0; i < objs.length; i++){                      
				objs[i].style.display = "none";
			}
			
			
			var params = {quality: "high"};
			
			if (!(!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1))) {
				params.wmode = "transparent";
			}
			
			swfobject.embedSWF(baseUrl+contentUrl, "viewer_content", contentWidth, contentHeight, "9.0.0", baseUrl+"/includes/flashdetect2/expressInstall.swf", {}, params);
		} else if (contentType == "img") {
			viewer_content.innerHTML = "<img src='"+baseUrl+contentUrl+"' width='"+contentWidth+"' height='"+contentHeight+"' border='0'>";
		} else if (contentType == "fuseaction") {
			viewer_content.innerHTML = "<iframe src='"+baseUrl+'index.cfm/fuseaction/'+contentUrl+"/index.html' width='"+contentWidth+"' height='"+contentHeight+"' frameborder='0'>";
		}

		viewer_window.style.top = moveWindow() + topDist + 'px';

		viewer_backdrop.style.display = "";
		viewer_window.style.display = "";
		document.getElementById("flashDiv").style.display = "none";


	}

	function hideViewer(t) {
		var viewer_backdrop = document.getElementById("viewer_backdrop");
		var viewer_window = document.getElementById("viewer_window");
		var viewer_content = document.getElementById("viewer_content");

		viewer_window.parentNode.removeChild(viewer_window);
		viewer_backdrop.parentNode.removeChild(viewer_backdrop);
		viewer_content.parentNode.removeChild(viewer_content);

		
		var objs = document.getElementsByTagName('object');
		for (var i = 0; i < objs.length; i++){                      
			objs[i].style.display = "";
		}
		

/*
		viewer_window.style.display = "none";
		viewer_backdrop.style.display = "none";
		viewer_content.innerHTML = "";
*/
	}

	function moveWindow() {
		if (window.innerHeight) {
			pos = window.pageYOffset;
		} else if (document.documentElement && document.documentElement.scrollTop) {
			pos = document.documentElement.scrollTop;
		} else if (document.body) {
			pos = document.body.scrollTop;
		}

		return pos;
	}
