
function ClassMediaCentre()
{
	//
	// PRIVATE PROPERTIES ONLY AVAILABLE FROM WITHIN THE CLASS
	// ...must have var prefix
	//
	var _INT_FLASH_VERSION = null;
	var _INT_REQUIRED_FLASH_VERSION = null;
	var _INT_CATE_ID = null;
	var _INT_CPNO_ID = null;
	var _STR_CPNO_H1_TAG = null;
	var _HSH_DATA = new Object();
	var _OBJ_BTN_TEXT = new Object();
	// var _STR_MAIN_CONTAINER_ID = "cydreMediaCentre";
	var _STR_MAIN_CONTAINER_ID = "mediaCentre";
	var _STR_WIZZ_NAME = "wz1";
	var _STR_WIZZ_PATH = "/images/wizz2.gif";
	var _INT_OVERALL_WIDTH = 602; // px
	var _INT_OVERALL_HEIGHT = 500; // px
	var _INT_LEFTBOX_WIDTH = 102; // px
	var _INT_RIGHTBOX_WIDTH = 500; // px
	var _INT_COVER_OPACITY = 100;
	var _INT_COVER_REDUCTION_AMOUNT = 1;
	var _ARR_COVERS_DONE = new Array();

	// THESE NAME NEED TO CORRESPOND TO STYLE SHEET ID'S
	var _STR_LEFT_BOX_ID = "leftContainer";
	var _STR_RIGHT_BOX_ID = "rightContainer";

	// PUBLIC SETTER ARG NEEDS TO BE A HASH
	this["SetProduct"] = _SetProduct;
	this["GetFlashVersion"] = _GetFlashVersion;
	this["SetRequiredFlashVersion"] = _SetRequiredFlashVersion;
	this["GetMainContainerName"] = _GetMainContainerName;
	this["SetPrimaryObjectName"] = _SetPrimaryObjectName;

	function _SetPrimaryObjectName(strNewObjectName)
	{
		_STR_MAIN_CONTAINER_ID = strNewObjectName;
	}

	// mediaCentre
	function _SetProduct(intCateId, intCpnoId, strCpnoH1Tag, hshBtnText)
	{
		// _ShowWizz(_STR_MAIN_CONTAINER_ID, _STR_WIZZ_NAME);

		_INT_CATE_ID = intCateId;
		_INT_CPNO_ID = intCpnoId;
		_STR_CPNO_H1_TAG = escape(strCpnoH1Tag);
		_INT_FLASH_VERSION = _GetFlashVersionArray().split(',').shift();

		// SET BUTTON TEXT
		if(typeof(hshBtnText) == "object") _OBJ_BTN_TEXT = hshBtnText;

		// alert(intCateId+":"+intCpnoId);
		var strKeyVal = "ajax=true&intCateId="+intCateId+"&intCpnoId="+intCpnoId;

		// Check for ajax lib and browser capability
		if (!Sarissa || !document.getElementById)
		{
			alert("Ajax functionality not present or you're using an older browser. Unable to continue");
			return false;
		}

		// Set up the request
		var xmlhttp =  new XMLHttpRequest();

		// Arg3: true = asynchronous | false = synchronous
		// synchronous means the browser will be locked down and unable to function while waiting for response
		xmlhttp.open("POST", "/mediacentre.html", true);

		// The callback function
		xmlhttp.onreadystatechange = function()
		{
			if (xmlhttp.readyState == 4)
			{
				if (xmlhttp.status == 200) objResponse = _AjaxResponse(xmlhttp.responseXML);
				// alert(Dump(objResponse, 3));
				_BuildMedia(objResponse);
			}
		}

		// Send the POST request
		xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xmlhttp.send(strKeyVal);

		// Add temporary feedback that the request has been sent
		var objTmp = document.getElementById("strResult");
		if (objTmp)
		{
			// Empty first
			objTmp["innerHTML"] = "One moment please ... ";
			var objImg = document.createElement("img");
			objImg["src"] = "/local/common/images/loadbar.gif";
			objImg["style"]["display"] = "block";
			objImg["style"]["margin"] = "0 auto";
			objTmp.appendChild(objImg);
			// loadingImg.parentNode.replaceChild(feedbackSpan, loadingImg);
		}
	}

	function _GetFlashVersion()
	{
		if (_INT_FLASH_VERSION == null) _INT_FLASH_VERSION = _GetFlashVersionArray().split(',').shift();
		return _INT_FLASH_VERSION;
	}

	function _SetRequiredFlashVersion(intRequiredFlashVersion)
	{
		_INT_REQUIRED_FLASH_VERSION = intRequiredFlashVersion;
	}

	function _GetMainContainerName()
	{
		return _STR_MAIN_CONTAINER_ID;
	}

	function _AjaxResponse(responseXML)
	{
		// INITIALISE RETURNS
		var objKeyValCollection = new Object();
		objKeyValCollection["DATA"] = new Object();

		// IF THERE'S NO REPONSE END NOW
		if(!responseXML)
		{
			objKeyValCollection["STR_VALUE"] = 0;
			objKeyValCollection["STR_KEY"] = "Sorry. Unexpected NULL response from server. Please try again.";
			return objKeyValCollection;
		}

		// BASIC SETTER RESPONSE
		if (responseXML.getElementsByTagName("intResult")[0] != null)
			objKeyValCollection["STR_VALUE"] = responseXML.getElementsByTagName("intResult")[0].firstChild.data;

		if (responseXML.getElementsByTagName("strResult")[0] != null)
			objKeyValCollection["STR_KEY"] = responseXML.getElementsByTagName("strResult")[0].firstChild.data;

		// DATA ELEMENT RESPONSE - PARSE
		if (responseXML.getElementsByTagName("item")[0] != null)
		{
			var arrItems = responseXML.getElementsByTagName("item")

			for(var i = 0; i < arrItems.length; i++)
			{
				var objTmpCollection = new Object;

				// alert(arrItems[i].getAttribute("id"));
				var strTmpItemId = arrItems[i].getAttribute("id");

				for(var j = 0; j < arrItems[i].childNodes.length; j++)
				{
					// EXTRACT THE KEY/VALUE
					// alert(strNodeName = arrItems[i].childNodes[j].nodeName+":"+arrItems[i].childNodes[j].firstChild.nodeValue);
					var strNodeName = arrItems[i].childNodes[j].nodeName;
					var strNodeValue = "";
					if (arrItems[i].childNodes[j].firstChild != undefined) strNodeValue = arrItems[i].childNodes[j].firstChild.data;
					objTmpCollection[strNodeName] = strNodeValue;
				}
				// ADD TO MAIN ARRAY
				objKeyValCollection["DATA"][strTmpItemId] = objTmpCollection;
				// objKeyValCollection["DATA"].push(objTmpCollection);
				// alert(Dump(objTmpCollection, 2));
			}
		}

		//SetSubmitHelper(strResponse);
		//DisableDiv("frmCover");
		//setTimeout("SetSubmitHelper()", 3000); // Calling this without an arg sets it to empty string
		// loadingImg.parentNode.replaceChild(feedbackSpan, loadingImg);
		// _StopWizz(_STR_WIZZ_NAME);
		return objKeyValCollection;
	}

	function _BuildMedia(objResponse)
	{
		_HSH_DATA = objResponse["DATA"];
		var objDiv = document.getElementById(_STR_MAIN_CONTAINER_ID);

		if (!objDiv)
		{
			alert("Unable to locate html element for media centre.");
			return;
		}

		// CREATE THE 2 MAIN CONTAINERS - LEFT AND RIGHT
		var objLeft = document.getElementById(_STR_LEFT_BOX_ID);
		if(!objLeft)
		{
			objLeft = document.createElement("div");
			objLeft.setAttribute("id", _STR_LEFT_BOX_ID);
			objDiv.appendChild(objLeft);
		}

		var objRight = document.getElementById(_STR_RIGHT_BOX_ID);
		if(!objRight)
		{
			objRight = document.createElement("div");
			objRight.setAttribute("id", _STR_RIGHT_BOX_ID);
			objDiv.appendChild(objRight);
		}

		// Empty the 2 containers
		objLeft["innerHTML"] = "";
		objRight["innerHTML"] = "";

		//
		// BUTTON DISPLAY
		//
		var int = 0;
		for (var key1 in _HSH_DATA)
		{
			/* key1:
				views
				3dhand
				video
				magnify
				dimensions
				packaging
				sample
			*/

			var strId = (_STR_LEFT_BOX_ID+"_"+int).toString();
			var objTmp = _CreateButton(strId, _OBJ_BTN_TEXT[key1], key1);
			objLeft.appendChild(objTmp);

			// This is the default - load first item
			if (int == 0)
			{
				var objTmp = document.getElementById(strId);
				_OnClickLoadMediaItem(objTmp, key1);
				if (typeof objCYDRE == "object") objCYDRE.ClickOnCssHandler(objTmp, _OBJ_BTN_TEXT[key1]);

			}
			int++;
		}
	}

	function _CreateButton(intItemId, strBtnTitle, strActionKey)
	{
		var objDivWrapper = document.createElement("div");

		// CREATE TEXT ELEMENT
		/*
		var intPos = strBtnTitle.indexOf(" ");
		if (intPos != -1) // MORE THAN ONE WORD
		{

			var newStrBtnTitle = "";
			var arrWords = strBtnTitle.split(" ");

			for(var i = 0; i < arrWords.length; i++)
			{
				var objTxtNode = document.createTextNode(arrWords[i]);
				objDivWrapper.appendChild(objTxtNode);

				if (i < (arrWords.length - 1)) // NO BR AFTER LAST ITEM TO GO THROUGH
				{
					var objBr = document.createElement("br");
					objDivWrapper.appendChild(objBr);
				}
			}
		}

		else // A SINGLE WORD
		{
		*/
			var objTxtNode = document.createTextNode(strBtnTitle);
			objDivWrapper.appendChild(objTxtNode);
		/*
		}
		*/

		// CREATE THE ACTION
		try // IE
		{
			objDivWrapper.onclick = function() { return _OnClickLoadMediaItem(this, strActionKey) };
		}
		catch (err)
		{
			objDivWrapper.setAttribute("onclick", "return _OnClickLoadMediaItem(this, strActionKey);");
		}

		// objDivWrapper.appendChild(objDivWrapper);
		objDivWrapper.setAttribute("id", intItemId);
		objDivWrapper.setAttribute("class", "leftContainerItem"); // For Most Browsers
		objDivWrapper.setAttribute("className", "leftContainerItem"); // For IE; harmless to other browsers

		return objDivWrapper;
	}

	function _OnClickLoadMediaItem(objRequesting, strActionKey)
	{
		if(typeof(strActionKey) == "object") strActionKey = strActionKey["alt"].toString();
		// var objTmp = objRequest.parentNode.getElementsByTagName("a");

		var hshData = _HSH_DATA[strActionKey];
		var objRight = document.getElementById(_STR_RIGHT_BOX_ID);
		var objMedia = null;

		// _ShowWizz(_STR_MAIN_CONTAINER_ID, _STR_WIZZ_NAME);

		// EXTRACT DATA
		var objMediaElements = new Object();
		for (var key in hshData)
		{
			// alert(key+":"+hshData[key]);
			var arrItems = hshData[key].split(",");
			objMediaElements[key] = arrItems;
		}

		// TAKE EACH MEDIA IN TURN
		/* these are the keys sent out from php
			views
			3dhand
			video
			magnify
			dimensions
			packaging
			sample
		*/

		// Check for flash version
		if (strActionKey == "video" || strActionKey == "3dhand" || strActionKey == "flvVideo" || strActionKey == "packaging")
		{
			// alert(_INT_FLASH_VERSION + ": "+ _INT_REQUIRED_FLASH_VERSION);
			if (_INT_FLASH_VERSION < _INT_REQUIRED_FLASH_VERSION) strActionKey = "noflash";
		}

		switch(strActionKey)
		{
			case "noflash":

				var objDiv = document.getElementById("noFlash");
				if (objDiv)
				{
					objTmp = document.createElement("div");
					objTmp["innerHTML"] = objDiv["innerHTML"];
					objTmp["innerHTML"] = objTmp["innerHTML"].replace(/CURR_VERSION/i, _INT_FLASH_VERSION);
					objTmp["innerHTML"] = objTmp["innerHTML"].replace(/REQUIRED_VERSION/i, _INT_REQUIRED_FLASH_VERSION);
					objMedia = objTmp;
				}
				break;

			case "video": objMedia = _GetSwf(objMediaElements); break;
			case "3dhand": objMedia = _GetSwf(objMediaElements); break;
			case "flvVideo": objMedia = _GetFlvVideo(objMediaElements); break;
			case "magnify": objMedia = _GetSwf(objMediaElements); break;
			case "dimensions": objMedia = _GetDimensions(objMediaElements); break;
			case "diamondDimensions": objMedia = _GetHtmlIframePage(objMediaElements); break;
			case "description": objMedia = _GetHtmlIframePage(objMediaElements); break;
			case "views": objMedia = _GetViews(objMediaElements); break;
			case "staticImage": objMedia = _GetImage(objMediaElements); break;
			case "sizeComparison": objMedia = _GetImage(objMediaElements); break;
			case "packaging":
				// THIS MAY BE ANY ONE OF JPG FLV SWF
				// THEREFORE LOOK AT THE FILE EXTENSION FIRST
				if (_GetFileExtension(objMediaElements["path"]) == "swf") objMedia = _GetSwf(objMediaElements);
				else if (_GetFileExtension(objMediaElements["path"]) == "jpg") objMedia = _GetImage(objMediaElements);
				else if (_GetFileExtension(objMediaElements["path"]) == "flv") objMedia = _GetFlvVideo(objMediaElements);

				// HARD-CODED FOR PACKAGING ONLY!
				var objDivMaster = document.createElement("div");
				objDivMaster["style"]["width"] = "500";
				objDivMaster["style"]["height"] = "500";
				objDivMaster["style"]["display"] = "block";

				// CONTAINER FOR FLASH
				objDivSwf = document.createElement("div");
				objDivSwf["style"]["width"] = "500";
				objDivSwf["style"]["height"] = "500";
				objDivSwf["style"]["display"] = "block";
				objDivSwf["style"]["position"] = "absolute";
				objDivSwf.appendChild(objMedia);
				objDivMaster.appendChild(objDivSwf);

				// CONTAINER FOR TEXT
				var objDivTmp = document.createElement("div");
				var objTxt = document.createTextNode("Typical Packaging");
				objDivTmp.appendChild(objTxt);
				objDivTmp["style"]["zIndex"] = "15";
				objDivTmp["style"]["position"] = "absolute";
				objDivTmp["style"]["float"] = "left";
				objDivTmp["style"]["color"] = "#aaa";
				objDivTmp["style"]["fontSize"] = "125%";
				objDivTmp["style"]["margin"] = "5px";
				// alert(objDivTmp.outerHTML);
				objDivMaster.appendChild(objDivTmp);

				// TRANSFER BACK FOR RETURN VALUE
				objMedia = objDivMaster;

				break;
			case "sample": objMedia = _GetHtmlIframePage(objMediaElements); break;
			default:
		} // End switch

		// APPEND THE NEW ITEM
		objRight["innerHTML"] = "";
		if (objMedia) objRight.appendChild(objMedia);

		// COVER
		if (!InArray(strActionKey, _ARR_COVERS_DONE))
		{
			_ARR_COVERS_DONE.push(strActionKey);
			var objTmp = document.createElement("div");
			objTmp.setAttribute("id", "cover");
			objRight.insertBefore(objTmp, objRight.firstChild);
			var timeoutID = setTimeout(RevealMedia, 9);
			// _StopWizz(_STR_WIZZ_NAME);
		}

		// "On" button position
		// objRequesting
		if (typeof objCYDRE == "object") objCYDRE.ClickOnCssHandler(objRequesting);

		// _StopWizz(_STR_WIZZ_NAME);
		var timeoutID = setTimeout(RevealMedia, 100);

		return false;
	}

	function _GetFileExtension(strTestFile)
	{
		var strExt = "";
		strTestFile = escape(strTestFile);
		var intPos = strTestFile.lastIndexOf(".");
		if(intPos != -1)
		{
			strExt = strTestFile.substr(intPos+1, strTestFile.length);
			strExt = strExt.toLowerCase();
		}
		return strExt;
	}

	function RevealMedia()
	{
		var objDiv = document.getElementById("cover");
		// alert(_INT_COVER_OPACITY);

		if (objDiv)
		{
			if (_INT_COVER_OPACITY >= 1)
			{
				// THIS BLOCK TO ACCELERATE REVEAL
				if (_INT_COVER_OPACITY > 75) _INT_COVER_REDUCTION_AMOUNT = 3;
				else if (_INT_COVER_OPACITY > 55) _INT_COVER_REDUCTION_AMOUNT = 8;
				else if (_INT_COVER_OPACITY > 45) _INT_COVER_REDUCTION_AMOUNT = 12;
				else if (_INT_COVER_OPACITY > 35) _INT_COVER_REDUCTION_AMOUNT = 15;
				else if (_INT_COVER_OPACITY > 25) _INT_COVER_REDUCTION_AMOUNT = 19;
				else if (_INT_COVER_OPACITY > 20) _INT_COVER_REDUCTION_AMOUNT = 28;
				else if (_INT_COVER_OPACITY > 15) _INT_COVER_REDUCTION_AMOUNT = 37;
				else if (_INT_COVER_OPACITY > 10) _INT_COVER_REDUCTION_AMOUNT = 41;
				// if (navigator.userAgent.indexOf("MSIE") != -1) _INT_COVER_REDUCTION_AMOUNT = _INT_COVER_REDUCTION_AMOUNT + 5;

				_INT_COVER_OPACITY = _INT_COVER_OPACITY - _INT_COVER_REDUCTION_AMOUNT;

				// FOR ALL BROWSERS
				objDiv["style"]["filter"] = "alpha(opacity="+_INT_COVER_OPACITY+") Shadow(Color=#00FF00, Direction=225)";
				objDiv["style"]["-moz-opacity"] = "."+_INT_COVER_OPACITY;
				objDiv["style"]["opacity"] = "."+ _INT_COVER_OPACITY;
				objDiv["style"]["-khtml-opacity"] = "0."+_INT_COVER_OPACITY;

				var intMilliSecond = 20;
				// if (navigator.userAgent.indexOf("MSIE") != -1) intMilliSecond = 9;
				var timeoutID = setTimeout(RevealMedia, intMilliSecond);
			}
			else
			{
				objDiv.parentNode.removeChild(objDiv);
				_INT_COVER_OPACITY = 100;
				_INT_COVER_REDUCTION_AMOUNT = 1;
			}
		}
	}

	function _GetDimensions(hshMedia)
	{
		var objContainer = document.createElement("div");
		var arrImgPath = hshMedia["paths"];

		// CREATE THE FRAMEWORK
		// 2 DIVS LEFT AND AND RIGHT
		objLeft = document.createElement("div");
		objLeft.setAttribute("id", "dimensionsLeft");
		objContainer.appendChild(objLeft);

		objRight = document.createElement("div");
		objRight.setAttribute("id", "dimensionsRight");
		objContainer.appendChild(objRight);

		// LOAD THE VERY FIRST DIMENSION IMAGE
		for(var i = 0; i < arrImgPath.length; i++)
		{
			if (i == 0)
			{
				var objImg = document.createElement("img");
				objImg["src"] = arrImgPath[i];
				objImg.setAttribute("name", "dimension");
				objImg.setAttribute("id", "dimension");
				// objImg.setAttribute("onload", alert(1));
				objLeft.appendChild(objImg);
			}

			else // PRELOAD OTHER IMAGES
			{
				var objImg = NewImage(arrImgPath[i]);
			}
		}

		// RADIO BUTTONS
		// ... BUT ONLY IF THERE'RE MORE THAN ONE
		if (arrImgPath.length > 1)
		{
			var objTxtNode = document.createTextNode("Select your diamond size:");
			objRight.appendChild(objTxtNode);

			for(var i = 0; i < arrImgPath.length; i++)
			{
				// <input name="dm" type="radio" id="radio" value="radio" checked="checked" />
				var objRadio = document.createElement("input");
				objRadio.setAttribute("type", "radio");
				objRadio.setAttribute("id", "dm");
				objRadio.setAttribute("name", "dm");
				objRadio.setAttribute("value", arrImgPath[i]);
				if (i == 0) objRadio.setAttribute("checked", "checked");

				// CREATE THE ACTION
				// if (navigator.userAgent.indexOf("MSIE") != -1) objRadio.onclick = function() { return ChangeImage('dimension', this.value); };
				// else if (navigator.userAgent.indexOf("Firefox") != -1) objRadio.setAttribute("onclick", "ChangeImage('main', this.value);");
				// else objRadio.setAttribute("onclick", "return ChangeImage('main', this.value);"); // For other browsers
				try // IE
				{
					objRadio.onclick = function() { return ChangeImage('dimension', this.value); };
				}
				catch (err) // For other browsers
				{
					objRadio.setAttribute("onclick", "ChangeImage('main', this.value); return false;");
				}

				// TEXT AND LABEL TAG
				var objTxt = document.createTextNode(arrImgPath[i].substring(arrImgPath[i].length-8 , arrImgPath[i].length-4)+" ct");
				var objLabel = document.createElement("label");
				objLabel.appendChild(objRadio);
				objLabel.appendChild(objTxt);
				objRight.appendChild(objLabel);
			}
		}

		// alert(objContainer.innerHTML);
		return objContainer;
	}

	function _GetHtmlIframePage(hshMedia)
	{
		var objIframe = document.createElement("iframe");
		objIframe["src"] = hshMedia["path"];
		// objIframe.setAttribute("src", hshMedia["path"]);
		objIframe.setAttribute("width", "500px");
		objIframe.setAttribute("height", "500px");
		objIframe.setAttribute("noResize", true);
		objIframe.setAttribute("scrolling", "auto");
		objIframe.setAttribute("framespacing", 0);
		objIframe.setAttribute("frameborder", 0);
		// objIframe.setAttribute("bordercolor", _FRAMESET_BORDERCOLOUR);
		// objIframe.setAttribute("border", _FRAME_BORDER);

		// alert(objContainer.innerHTML);
		return objIframe;
	}

	function _GetImage(hshMedia)
	{
		var objContainer = document.createElement("div");

		// CREATE THE IMAGE
		var objImg = document.createElement("img");
		objImg["src"] = hshMedia["path"];
		if (hshMedia["width"] != "" ) objImg["style"]["width"] = hshMedia["width"]+"px";
		if (hshMedia["height"] != "" ) objImg["style"]["height"] = hshMedia["height"]+"px";
		// objImg.setAttribute("onload", alert(1));
		objContainer.appendChild(objImg);

		// alert(objContainer.innerHTML);
		return objContainer;
	}

	function _GetViews(hshMedia)
	{
		var objContainer = document.createElement("div");

		// CREATE THE FRAMEWORK
		// 2 DIVS LEFT AND AND RIGHT
		objLeft = document.createElement("div");
		objLeft.setAttribute("id", "viewsLeft");
		objContainer.appendChild(objLeft);

		objRight = document.createElement("div");
		objRight.setAttribute("id", "viewsRight");
		objContainer.appendChild(objRight);

		// MAIN IMAGE
		for(var i = 0; i < hshMedia["main"].length; i++)
		{
			if (i == 0)
			{
				var objImg = document.createElement("img");
				objImg["src"] = "/"+hshMedia["main"][i];
				objImg.setAttribute("name", "main");
				objImg.setAttribute("id", "main");
				objLeft.appendChild(objImg);
			}

			else // PRELOAD OTHER IMAGES
			{
				var objImg = NewImage("/"+hshMedia["main"][i]);
			}
		}

		// FLIX
		for(var i = 0; i < hshMedia["flix"].length; i++)
		{
			if (hshMedia["flix"][i] == "") continue;
			var objImg = document.createElement("img");
			objImg["src"] = "/"+hshMedia["flix"][i];
			objImg.setAttribute("id", "flix"+i);
			objImg.setAttribute("alt", "/"+hshMedia['main'][i]);

			// CREATE THE ACTION
			if (navigator.userAgent.indexOf("MSIE") != -1) objImg.onmouseover = function() { ChangeImage('main', this.alt); };
			// else if (navigator.userAgent.indexOf("Firefox") != -1) objImg.setAttribute("onmouseover", "ChangeImage('main', this.alt);");
			else objImg.setAttribute("onmouseover", "ChangeImage('main', this.alt);"); // For other browsers

			var strImgSrc2 = "/"+hshMedia['main'][0]; // ORIGINAL IMAGES
			if (navigator.userAgent.indexOf("MSIE") != -1) objImg.onmouseout = function() { ChangeImage('main', strImgSrc2); };
			// else if (navigator.userAgent.indexOf("Firefox") != -1) objImg.setAttribute("onmouseout", "ChangeImage('main', strImgSrc2);");
			else objImg.setAttribute("onmouseout", "ChangeImage('main', strImgSrc2);"); // For other browsers

			objRight.appendChild(objImg);
		}
		// alert(objContainer.innerHTML);
		return objContainer;
	}

	function _GetSwf(hshMedia)
	{
		if (hshMedia["path"] == undefined) return "";

		// CREATE THE SWF OBJECT
		var objSwf = document.createElement("object");
		objSwf.setAttribute("type", "application/x-shockwave-flash");
		objSwf.setAttribute("data", hshMedia["path"].toString());
		objSwf.setAttribute("width", hshMedia["width"].toString());
		objSwf.setAttribute("height", hshMedia["height"].toString());
		objSwf.setAttribute("loop", "false");

		var objParam = document.createElement("param");
		objParam.setAttribute("name", "movie");
		objParam.setAttribute("value", hshMedia["path"].toString());
		objSwf.appendChild(objParam);

		var objParam = document.createElement("param");
		objParam.setAttribute("name", "loop");
		objParam.setAttribute("value", "false");
		objSwf.appendChild(objParam);

		var objParam = document.createElement("param");
		objParam.setAttribute("name", "wmode");
		objParam.setAttribute("value", "transparent");
		objSwf.appendChild(objParam);

		// alert(objSwf.outerHTML);
		return objSwf;
	}

	//
	// THIS IS CURRENTLY HARDCODED TO 320 x 240
	// THE FLV PLAYING REQUIRES "_flvpath" IN THE QUERY STRING
	//
	function _GetFlvVideo(hshMedia)
	{
		// CREATE THE SWF OBJECT
		var objSwf = document.createElement("object");
		objSwf.setAttribute("type", "application/x-shockwave-flash");
		objSwf.setAttribute("data", "/site/3.1.4.2/flash/play-flv-480x360.swf?_flvpath="+escape(hshMedia["path"]));
		objSwf.setAttribute("width", hshMedia["width"].toString());
		objSwf.setAttribute("height", hshMedia["height"].toString());
		objSwf.setAttribute("id", "flv480x360");
		objSwf.setAttribute("loop", "false");

		var objParam = document.createElement("param");
		objParam.setAttribute("name", "movie");
		objParam.setAttribute("value", "/site/3.1.4.2/flash/play-flv-320x240.swf?_flvpath="+escape(hshMedia["path"]));
		objSwf.appendChild(objParam);

		var objParam = document.createElement("param");
		objParam.setAttribute("name", "wmode");
		objParam.setAttribute("value", "transparent");
		objSwf.appendChild(objParam);

		var objParam = document.createElement("param");
		objParam.setAttribute("name", "loop");
		objParam.setAttribute("value", "false");
		objSwf.appendChild(objParam);

		// alert(objSwf.outerHTML);
		return objSwf;
	}

	// GET THE DIMENSIONS OF AN IMAGE
	function iLoad(isrc)
	{
		var oImg = new Image();
		oImg.src = isrc;
		if (oImg.complete)
		{
			window.alert(oImg.src + ' ' + oImg.width + ' x ' + oImg.height);
		}
		else
		{
			window.setTimeout('iLoad(imgsrc)', 1000);
		}
	}

	//
	// THE CONTAINER INTO WHICH TO PLACE THE WIZZ: strObjId
	// THE ID OF THE NEW WIZZ: strNameId
	//
	function _ShowWizz(strObjId, strNameId)
	{
		// alert("Creating wizz: "+strObjId+":"+strNameId);
		_StopWizz(strNameId);
		var objTmp = document.getElementById(strObjId);
		if (objTmp)
		{
			// Empty first
			// if (strText != undefined && strText != "") objTmp["innerHTML"] = strText;
			var objImg = document.createElement("img");
			objImg["src"] = _STR_WIZZ_PATH;
			if (objImg != undefined)
			{
				objImg.setAttribute("id", strNameId);
				objImg.setAttribute("class", "wizz");
				objTmp.appendChild(objImg);
				// objTmp.insertBefore(objImg, objTmp.firstChild);
			}
		}
		return;
	}

	function _StopWizz(strNameId)
	{
		var objTmp = document.getElementById(strNameId);
		if (objTmp)
		{
			objTmp.parentNode.removeChild(objTmp);
		}
		// else alert("Can't locate wizz: "+strObjId);
		return;
	}

	/**
	 * Function : dump()
	 * Arguments: The data - array,hash(associative array),object
	 *    The level - OPTIONAL
	 * Returns  : The textual representation of the array.
	 * This function was inspired by the print_r function of PHP.
	 * This will accept some data as the argument and return a
	 * text that will be a more readable version of the
	 * array/hash/object that is given.
	 * Docs: http://www.openjs.com/scripts/others/dump_function_php_print_r.php
	 */
	function Dump(arr, level)
	{
		var dumped_text = "";
		if(!level) level = 0;

		//The padding given at the beginning of the line.
		var level_padding = "";
		for(var j=0;j<level+1;j++) level_padding += "    ";

		if(typeof(arr) == 'object')
		{
			//Array/Hashes/Objects
			for(var item in arr)
			{
				var value = arr[item];

				if(typeof(value) == 'object')
				{
					//If it is an array,
					dumped_text += level_padding + "'" + item + "' ...\n";
					dumped_text += Dump(value, level+1);
				}
				else
				{
					dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
				}
			}
		}
		else
		{ //Stings/Chars/Numbers etc.
			dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
		}
		return dumped_text;
	}

	function _GetFlashVersionArray()
	{
		// ie
		try
		{
			try
			{
				// avoid fp6 minor version lookup issues
				// see: http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
				var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
				try { axo.AllowScriptAccess = 'always'; }
				catch(e) { return '6,0,0'; }
			}
			catch(e) {}
			return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
		}

		// other browsers
		catch(e)
		{
				try
				{
					if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)
					{
						return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
					}
				}
				catch(e) {}
		}
		return '0,0,0';
	}


}

