

/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Miscellaneous script file, Kingdom Harvest Ministries

Copyright (c) 2004-2010 Codewise Systems Inc. & Twisted Lime Media Inc. 
All rights reserved.

Created: 2008-07-04

Revision History:
 0.01	- Initial version. TB, 2008-07-04, 23:21

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */


/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Base URL / path */

var pathOffset = '\/';
	// pathOffset = '';
	// pathOffset = 'http:\/\/ibew.codewise.ca\/';


/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Browser detection */

var agent = '';
if (navigator.userAgent) { 
	agent = navigator.userAgent.toLowerCase();
} else { 
	agent = navigator.appVersion.toLowerCase();
};

var is_ie = (agent.indexOf('msie') != -1);

var is_ipad = (agent.indexOf('ipad') != -1);
var is_iphone = (agent.indexOf('iphone') != -1);
var is_ipod = (agent.indexOf('ipod') != -1);
	if (is_ipod || is_ipad) {
		is_iphone = 0;
	};


/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Image preloading */

var video_play_icon = new Image();

if (document.images) {
	video_play_icon.src = pathOffset + 'media\/images\/icons\/video_play_icon_off.png';
};


/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Flash Player detection variables */

var flashinstalled = 0;
var flashversion = 0;
var FlashPlayerVersionMinor = 0;
var FlashPlayerVersionRevision = 0;

var FlashPlayerVersionRequired = 8;
var FlashPlayerPluginObject = '';
// var FlashMSDetect = "false";


/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
QuickTime Player detection variables */

var QuickTimePlayerInstalled = 0;
var QuickTimePlayerVersion = 0;
// var QuickTimePlayerVersionMinor = 0;
// var QuickTimePlayerVersionRevision = 0;

var QuickTimePlayerVersionRequired = 6;
var QuickTimePlayerPluginObject = '';
// var QuickTimePlayerMSDetect = "false";


/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Flash and QuickTime Player detection */

// Internet Explorer
if (window.ActiveXObject) {
	// Flash detection
	try {
		FlashPlayerObject = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');

		if (FlashPlayerObject) {
			flashinstalled = 2;

			FlashPlayerVersionTemp = FlashPlayerObject.GetVariable('$version');
			FlashPlayerVersionTempArray = FlashPlayerVersionTemp.split(' ')[1].split(','); // .toLowerCase().split('win ');

			flashversion = parseInt(FlashPlayerVersionTempArray[0], 10);
			FlashPlayerVersionMinor = parseInt(FlashPlayerVersionTempArray[1], 10);
			FlashPlayerVersionRevision = parseInt(FlashPlayerVersionTempArray[2], 10);
		};
	} catch(err) {
			flashinstalled = 1;
	};

	// QuickTime Detection
	try {
		QuickTimePlayerObject = new ActiveXObject('QuickTimeCheckObject.QuickTimeCheck.1');

		if (QuickTimePlayerObject) {
			if (QuickTimePlayerObject.IsQuickTimeAvailable(0)) {
				QuickTimePlayerInstalled = 1;
				QuickTimePlayerVersion = Math.round((QuickTimePlayerObject.QuickTimeVersion.toString(16, 10) / 1000000) * 10) / 10;
			};
		};
	} catch(err) {
			
	};

// Else if the plugins array exists
} else if (navigator.plugins && (navigator.plugins.length > 0)) {
	FlashPlayerPluginObject = navigator.plugins['Shockwave Flash'];

	// Flash detection
	if (FlashPlayerPluginObject) {
		flashinstalled = 2;

		if (FlashPlayerPluginObject.description) {
			var pluginDescription = FlashPlayerPluginObject.description;

			flashversion = pluginDescription.split('.')[0].split('Shockwave Flash ')[1];

			FlashVersionSplitBy = '  r';
			if (pluginDescription.indexOf(' d') != -1) {
				FlashVersionSplitBy = ' d';
			};

			FlashPlayerVersionMinor = pluginDescription.split('.')[1].split(FlashVersionSplitBy)[0];
			FlashPlayerVersionRevision = pluginDescription.split('.')[1].split(FlashVersionSplitBy)[1];
		};

	} else {
		flashinstalled = 1;
		if (navigator.plugins['Shockwave Flash 2.0']) {
			flashinstalled = 2;
			flashversion = 2;
		};
	};

	// QuickTime Detection
	for (loop00 = 0; loop00 < navigator.plugins.length; loop00++) {
		if (navigator.plugins[loop00].name.indexOf('QuickTime') != -1) { 
			QuickTimePlayerInstalled = 1;
			QuickTimePlayerVersion = parseFloat(navigator.plugins[loop00].name.substring(18));
		};
	};

// Else
} else if ((navigator.mimeTypes) && (navigator.mimeTypes.length)) {
	FlashPlayerPluginObject = navigator.mimeTypes['application/FlashPlayerPluginObject-shockwave-flash'];

	if ((FlashPlayerPluginObject) && (FlashPlayerPluginObject.enabledPlugin)) {
		flashinstalled = 2;
	} else {
		flashinstalled = 1;
	};
};


/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Flash and QuickTime object embedding */

var eFM_ObjectTagHTML = ''; // embeddedFlashMovie_ObjectTagHML
var eFM_EmbedTagHTML = ''; // embeddedFlashMovie_EmbedTagHTML

function embedFlashMovie(eFM_Filename, eFM_Container, eFM_PlayerVersion, eFM_Width, eFM_Height, eFM_OptionalParameters) {
	eFM_ObjectTagHTML = '';
	eFM_EmbedTagHTML = '';

	if (document.getElementById(eFM_Container)) {
		var e_FlashContainer = document.getElementById(eFM_Container); // FlashContainerElement

		var eFM_IdAttribute01HTML = '';
		var eFM_IdAttribute02HTML = '';

		if (eFM_OptionalParameters) {
			var eFM_Temp01 = eFM_OptionalParameters.split(',');

			for (loop00 = 0; loop00 < eFM_Temp01.length; loop00++) {
				eFM_Temp02 = eFM_Temp01[loop00].split('=');

				if (eFM_Temp02[0] == 'id') {
					eFM_IdAttribute01HTML += 'id="' + eFM_Temp02[1] + '" ';
					eFM_IdAttribute02HTML += 'name="' + eFM_Temp02[1] + '" ';
				};
			};
		};

		// if (eFM_Filename.indexOf('http:\/\/') == -1) {
		if (eFM_Filename.indexOf('\/') == -1) {
			eFM_Filename = pathOffset + 'media\/flash\/' + eFM_Filename;
		};

		eFM_ObjectTagHTML += '<object ' + eFM_IdAttribute01HTML + 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http:\/\/download.macromedia.com\/pub\/shockwave\/cabs\/flash\/swflash.cab#version=' + eFM_PlayerVersion + ',0,0,0" width="' + eFM_Width + '" height="' + eFM_Height + '">';
		eFM_ObjectTagHTML += '<param name="movie" value="' + eFM_Filename + '" \/>';

		eFM_EmbedTagHTML += '<embed ' + eFM_IdAttribute02HTML + 'pluginspage="http:\/\/www.macromedia.com\/go\/getflashplayer" type="application\/x-shockwave-flash" src="' + eFM_Filename + '" width="' + eFM_Width + '" height="' + eFM_Height + '"';

		if (eFM_OptionalParameters) {
			for (loop00 = 0; loop00 < eFM_Temp01.length; loop00++) {
				eFM_Temp02 = eFM_Temp01[loop00].split('=');

				if (eFM_Temp02[0] != 'id') {
					eFM_ObjectTagHTML += '<param name="' + eFM_Temp02[0] + '" value="' + eFM_Temp02[1] + '" />';

					eFM_EmbedTagHTML += ' ' + eFM_Temp02[0] + '="' + eFM_Temp02[1] + '"';
				};
			};
		};

		eFM_EmbedTagHTML += '><\/embed>';
		eFM_ObjectTagHTML += eFM_EmbedTagHTML + '<\/object>';

		if ((flashinstalled == 2) && (flashversion >= eFM_PlayerVersion)) {
			e_FlashContainer.innerHTML = eFM_ObjectTagHTML;
		};
	} else {
		// alert('The necessary container element does NOT exist...');
	};
};

var eQTM_ObjectTagHTML = ''; // embeddedQuickTimeMovie_ObjectTagHML
var eQTM_EmbedTagHTML = ''; // embeddedQuickTimeMovie_EmbedTagHTML

function embedQuickTimeMovie(eQTM_Filename, eQTM_Container, eQTM_PlayerVersion, eQTM_Width, eQTM_Height, eQTM_OptionalParameters) {
	eQTM_ObjectTagHTML = '';
	eQTM_EmbedTagHTML = '';

	if (document.getElementById(eQTM_Container)) {
		var e_QuickTimeContainer = document.getElementById(eQTM_Container); // QuickTimeContainerElement

		var eQTM_IdAttribute01HTML = '';
		var eQTM_IdAttribute02HTML = '';

		if (eQTM_OptionalParameters) {
			var eQTM_Temp01 = eQTM_OptionalParameters.split(',');

			for (loop00 = 0; loop00 < eQTM_Temp01.length; loop00++) {
				eQTM_Temp02 = eQTM_Temp01[loop00].split('=');

				if (eQTM_Temp02[0] == 'id') {
					eQTM_IdAttribute01HTML += 'id="' + eQTM_Temp02[1] + '" ';
					eQTM_IdAttribute02HTML += 'name="' + eQTM_Temp02[1] + '" ';
				} else if ((eQTM_Temp02[0] == 'controller') && (eQTM_Temp02[1] == 'true')) {
					eQTM_Height += 16;
				};
			};
		};

		// if (eQTM_Filename.indexOf('http:\/\/') == -1) {
		if (eQTM_Filename.indexOf('\/') == -1) {
			eQTM_Filename = pathOffset + 'media\/quicktime\/' + eQTM_Filename;
		};

		eQTM_ObjectTagHTML += '<object ' + eQTM_IdAttribute01HTML + 'classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http:\/\/www.apple.com\/qtactivex\/qtplugin.cab" width="' + eQTM_Width + '" height="' + eQTM_Height + '">';
		eQTM_ObjectTagHTML += '<param name="type" value="video\/quicktime" \/>';
		eQTM_ObjectTagHTML += '<param name="src" value="' + eQTM_Filename + '" \/>';

		eQTM_EmbedTagHTML += '<embed ' + eQTM_IdAttribute02HTML + 'pluginspage="http:\/\/www.apple.com\/quicktime\/download\/" type="video\/quicktime" src="' + eQTM_Filename + '" width="' + eQTM_Width + '" height="' + eQTM_Height + '"';

		if (eQTM_OptionalParameters) {
			for (loop00 = 0; loop00 < eQTM_Temp01.length; loop00++) {
				eQTM_Temp02 = eQTM_Temp01[loop00].split('=');

				if (eQTM_Temp02[0] != 'id') {
					eQTM_ObjectTagHTML += '<param name="' + eQTM_Temp02[0] + '" value="' + eQTM_Temp02[1] + '" />';

					eQTM_EmbedTagHTML += ' ' + eQTM_Temp02[0] + '="' + eQTM_Temp02[1] + '"';
				};
			};
		};

		eQTM_EmbedTagHTML += '><\/embed>';
		eQTM_ObjectTagHTML += eQTM_EmbedTagHTML + '<\/object>';

		if (QuickTimePlayerInstalled && (QuickTimePlayerVersion >= eQTM_PlayerVersion)) {
			e_QuickTimeContainer.innerHTML = eQTM_ObjectTagHTML;
		};
	} else {
		// alert('The necessary container element does NOT exist...');
	};
};


/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DOM functions */

document.getElementsByClassName = function(classNameReference) {
	var allElementsByClassName = new Array();

	var allElements = document.getElementsByTagName('*');

	for (var loop00 = 0; loop00 < allElements.length; loop00++) {
		// if (allElements[loop00].className.indexOf(classNameReference) != -1) {
		if (hasClass(allElements[loop00], classNameReference)) {
			allElementsByClassName[allElementsByClassName.length] = allElements[loop00];
		};
	};

	return allElementsByClassName;
};

document.getElementsByTagNameAndClassName = function(tagNameReference, classNameReference) {
	var allElementsByTagNameAndClassName = new Array();

	var allElements = document.getElementsByTagName('*');

	for (var loop00 = 0; loop00 < allElements.length; loop00++) {
		// if ((allElements[loop00].tagName.toLowerCase() == tagNameReference.toLowerCase()) && (allElements[loop00].className.indexOf(classNameReference) != -1)) {
		// if ((allElements[loop00].tagName.toLowerCase() == tagNameReference.toLowerCase()) && ((allElements[loop00].className == classNameReference)) || ((allElements[loop00].className.indexOf(classNameReference + ' ') != -1) || (allElements[loop00].className.indexOf(' ' + classNameReference) != -1))) {
		if ((allElements[loop00].tagName.toLowerCase() == tagNameReference.toLowerCase()) && (hasClass(allElements[loop00], classNameReference))) {
			allElementsByTagNameAndClassName[allElementsByTagNameAndClassName.length] = allElements[loop00];
		};
	};

	return allElementsByTagNameAndClassName;
};

function insertAfter(newNode, referenceNode) {
	// if (typeof newNode == 'string') {
	//	newNode = document.getElementById(newNode);
	// };

	referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
};

function replaceNode(newNode, oldNode, newAsClone) {
	if (typeof oldNode == 'string') {
		oldNode = document.getElementById(oldNode);
	};

	if (typeof newNode == 'string') {
		newNode = document.getElementById(newNode);
	};

	if (!oldNode || !newNode) {
		return null;
	};

	newNode = (newAsClone) ? newNode.cloneNode(true) : newNode;
	return oldNode.parentNode.replaceChild(newNode, oldNode);
};

function hasClass(cE, cN) { // currentElement, className
	if (cE && (cE.nodeType == 1)) {
		var classNameRegExp = new RegExp('(\\s|^)' + cN + '(\\s|$)');

		return cE.className.match(classNameRegExp);
	};
};

function addClass(cE, cN) { // currentElement, className
	if (cE && (cE.nodeType == 1)) {
		if (!this.hasClass(cE, cN)) {
			if (cE.className == '') {
				cE.className = cN;
			} else {
				cE.className += ' ' + cN;
			};
		};
	};
};

function addClasses(cE, cN) { // currentElement, classNames
	for (loop00 = 1; loop00 < arguments.length; loop00++) {
		addClass(cE, arguments[loop00]);
	};
};

function removeClass(cE, cN) { // currentElement, className
	if (cE && (cE.nodeType == 1)) {
		if (hasClass(cE, cN)) {
			var classNameRegExp = new RegExp('(\\s|^)' + cN + '(\\s|$)');
			cE.className = cE.className.replace(classNameRegExp, ' ');
		};
	};
};

function getStyle(cE, strCssRule){
	var strValue = '';

	if (document.defaultView && document.defaultView.getComputedStyle) {
		strValue = document.defaultView.getComputedStyle(cE, '').getPropertyValue(strCssRule);

	} else if (cE.currentStyle) {
		try {
			strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1) {
				return p1.toUpperCase();
			});

			strValue = cE.currentStyle[strCssRule];

		} catch(e) {
			// Used to prevent an error in IE 5.0
		};
	};

	return strValue;
};


/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Highslide functionality */

// Load Highslide library
function pI_loadHighslide() {
	// Why does THIS method cause Webkit to barf?!?
	/*
	if (document.getElementsByTagName) {
		e_head = document.getElementsByTagName('head').item(0);

		// if (e_head) {
			highslideScript = document.createElement('script');
				highslideScript.src = pathOffset + '_highslide\/highslide.js';
				highslideScript.type = 'text\/javascript';

			highslideStyles = document.createElement('link');
				highslideStyles.href = pathOffset + '_highslide\/highslide.css';
				highslideStyles.type = 'text\/css';
				highslideStyles.rel = 'stylesheet';

			e_head.appendChild(highslideStyles);
			e_head.appendChild(highslideScript);
		// };
	};
	*/

	if (document.write) {
		document.write('<s' + 'cr' + 'ipt s' + 'rc="' + pathOffset + '_highslide\/highslide' + '.j' + 's" ty' + 'pe="te' + 'xt\/ja' + 'vas' + 'cr' + 'ip' + 't"><\/s' + 'cr' + 'ip' + 't>');
		document.write('<li' + 'nk type="te' + 'xt\/css" rel="style' + 'sheet" me' + 'dia="scr' + 'een" href="' + pathOffset + '_highslide\/highslide.css" \/>');
	};
};
pI_loadHighslide();

// Initialize Highslide
function pI_initializeHighslide() {
	hs.registerOverlay({
		// overlayId: 'highslideControlbar',
		className: 'highslideControlbar',
		// html: '<div class="closebutton" onclick="return hs.close(this);" title=" Close "><\/div>',
		html: '<div class="closebutton" onclick="closeHighslideContent(this);" title=" Close "><\/div>',
		position: 'top right',
		useOnHtml: true,
		fade: 2 // fading the semi-transparent overlay looks bad in IE
	});

	hs.fadeInOut = true;
	hs.graphicsDir = pathOffset + '_highslide\/graphics\/';
	hs.minWidth = 300;
	hs.padToMinWidth = true;
	hs.showCredits = false;
	hs.transitions = ['expand', 'crossfade'];
	// hs.wrapperClassName = 'controls-in-heading draggable-heading';
};

// Highslide close function
function closeHighslideContent(objectHandler) {
	return hs.close(objectHandler);
};

// Initialize highslide HTML content
function pI_initializeHighslideHTMLContent() {
	e_highSlideVideoContainers = document.getElementsByTagNameAndClassName('div', 'highslideVideo');
	for (var loop00 = 0; loop00 < e_highSlideVideoContainers.length; loop00++) {
		addClass(e_highSlideVideoContainers[loop00], 'highslide-html-content');
	};
};

// Initialize Highslide image galleries
var hideHighslideControlsOnMouseOut = true;
	if (is_iphone || is_ipod || is_ipad) {
		hideHighslideControlsOnMouseOut = false;
	};

function pI_initializeHighslideImageGalleries() {
	e_highSlideImageGalleries = document.getElementsByTagNameAndClassName('div', 'highslideImageGallery');

	for (var loop00 = 0; loop00 < e_highSlideImageGalleries.length; loop00++) {
		hs.addSlideshow({
			slideshowGroup: e_highSlideImageGalleries[loop00].id,
			interval: 5000,
			repeat: false,
			useControls: true,
			// fixedControls: 'fit',
			overlayOptions: {
				className: 'highslideImageGalleryOverlay',
				opacity: 0.75,
				position: 'bottom center',
				// offsetY: -3,
				hideOnMouseOut: hideHighslideControlsOnMouseOut
			}
		});
	};
};


/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Page initialization and finalization */

// Rewrite highslide links
function pI_rewriteHighslideLinks() {
	e_currentLink = '';

	for (loop00 = 0; loop00 < e_allLinks.length; loop00++) {
		e_currentLink = e_allLinks[loop00];

		// Highslide single image and gallery links
		if ((hasClass(e_currentLink, 'highslideImage')) || (hasClass(e_currentLink, 'highslideImageGallery'))) {

			if (e_currentLink.hasChildNodes()) {
				targetXCode = '';
				targetYCode = '';

				if (e_currentLink.childNodes[0].nodeType == 1) {
					if (e_currentLink.childNodes[0].tagName.toLowerCase() == 'img') {
						if (e_currentLink.title) {

						} else {
							if (!e_currentLink.childNodes[0].alt) {
								if (is_ie) {
									e_currentLink.childNodes[0].removeAttribute('alt');
								};

								e_currentLink.title = ' View a larger image... ';
							} else {
								e_currentLink.title = e_currentLink.childNodes[0].alt;
							};
						};
					};

					e_currentLink.onclick = function() {
						this.style.outline = 'none';

						captionCode = '';
						if (this.childNodes[0].alt != '') {
							captionCode = this.childNodes[0].alt;
						};

						if ((hasClass(this.parentNode, 'highslideImageGallery')) || (hasClass(this.parentNode.parentNode, 'highslideImageGallery'))) {
							if (this.parentNode.id) {
								return hs.expand(this, { slideshowGroup: this.parentNode.id, align: 'center', captionText: captionCode, targetX: targetXCode, targetY: targetYCode });
							} else {
								return hs.expand(this, { slideshowGroup: this.parentNode.parentNode.id, thumbnailId: ('galleryGroupLink' + this.parentNode.parentNode.id.split('Container')[1]), align: 'center', captionText: captionCode, targetX: targetXCode, targetY: targetYCode });
							};
						} else {
							return hs.expand(this, { slideshowGroup: this.parentNode.id, align: 'center', captionText: captionCode, targetX: targetXCode, targetY: targetYCode }); // 'this.thumb.alt'
						};
					};

				// Otherwise it's a text link
				} else if (e_currentLink.childNodes[0].nodeType == 3) {
					e_currentLink.onclick = function() {
						this.style.outline = 'none';

						captionCode = '';
						if (this.title != '') {
							captionCode = this.title;
						};

						return hs.expand(this, { align: 'center', captionText: captionCode, targetX: targetXCode, targetY: targetYCode });
					};
				};
			};
		};

		// Single highslide HTML links, highslide HTML gallery links, and highslide audio links
		if ((hasClass(e_currentLink, 'highslideHTML')) || (hasClass(e_currentLink, 'highslideHTMLGallery')) || (hasClass(e_currentLink, 'highslideAudio'))) {
			targetXCode = '';
			targetYCode = '';

			if (!e_currentLink.getAttribute('popupId')) {
				if ((e_currentLink.href.indexOf('#') != -1) && (e_currentLink.href.indexOf('Anchor') != -1)) {
					e_currentLink.setAttribute('popupId', (e_currentLink.href.split('#')[1].split('Anchor')[0]));
				};
			};

			e_currentLink.onclick = function() {
				this.style.outline = 'none';

				// if (hasClass(this, 'highslideVideo') || (hasClass(this, 'highslideAudio')) {
					if (is_ie) {
						window.onerror = function() {
							return true;
						};
					};
				// };

				if (hasClass(this, 'highslideAudio')) {
					stopAutoPlayer();
				};

				captionCode = '';
				if (this.title != '') {
					captionCode = this.title;
				};

				return hs.htmlExpand(this, { slideshowGroup: null, contentId: this.getAttribute('popupId'), align: 'center', useControls: true, targetX: targetXCode, targetY: targetYCode }); // captionText: captionCode
			};
		};
	};
};

// Embed movie containers
var nodeTypeElementIndex = 0;

var movieWrapperFileName = 'media\/flash\/flash_movie_player_01.swf';
var movieWrapperHeightOffset = 20;

var movieClips = new Array;
var movieClipsArrayIndex = 0;

function movieClipsObject(movieClipFile, movieClipId, movieClipPlayerVersion, movieClipWidth, movieClipHeight, movieClipParameters) {
	this.movieClipFile = movieClipFile;
	this.movieClipId = movieClipId;
	this.movieClipPlayerVersion = movieClipPlayerVersion;
	this.movieClipWidth = movieClipWidth;
	this.movieClipHeight = movieClipHeight;
	this.movieClipParameters = movieClipParameters;
};

function pI_embedMovieContainers() {
	// if (e_content) {
		e_movieContainerForms = new Array;
			e_movieF4Vs = new Array;
			e_movieFLVs = new Array;
			e_movieMOVs = new Array;
			e_movieMP4s = new Array;
			e_movie3GPs = new Array;

			e_movieIMGs = new Array; // Poster frame image
			var e_movieFileWidth = 0;
			var e_movieFileHeight = 0;

			e_movieThumbnailImages = new Array;

		e_movieTitles = new Array;
		e_movieDescriptions = new Array;
		e_movieHighslideLinkContainers = new Array;
		e_movieHighslideLinks = new Array;

		e_movieContainerOuterContainers = new Array;
			// e_movieContainerTopCaps = new Array;
			e_movieContainerInnerContainers = new Array;
				e_movieWrappers = new Array;
				e_movieWrappersForegroundImages = new Array;

		// Get the collection of movie containers
		e_movieContainers = document.getElementsByTagNameAndClassName('div', 'movieContainer');
		if (e_movieContainers) {
			// For each movie container
			for (var loop00 = 0; loop00 < e_movieContainers.length; loop00++) {
				// Ensure that the childNode is of type "element" (i.e. not white space, Firefox!)
				while (e_movieContainers[loop00].childNodes[nodeTypeElementIndex].nodeType != 1) {
					nodeTypeElementIndex++;
				};

				// If the movie container includes the required form
				if (e_movieContainers[loop00].childNodes[nodeTypeElementIndex].tagName.toLowerCase() == 'form') {
					// Grab the from
					e_movieContainerForms[loop00] = e_movieContainers[loop00].childNodes[nodeTypeElementIndex];
						e_movieContainerFormInputs = e_movieContainerForms[loop00].getElementsByTagName('input');

						e_movieF4Vs[loop00] = '';
						e_movieFLVs[loop00] = '';
						e_movieMOVs[loop00] = '';
						e_movieIMGs[loop00] = '';

						for (var loop01 = 0; loop01 < e_movieContainerFormInputs.length; loop01++) {
							if (e_movieContainerFormInputs[loop01].name == 'typeSIZE') {
								e_movieFileWidth = e_movieContainerFormInputs[loop01].value.split('x')[0] * 1;
								e_movieFileHeight = e_movieContainerFormInputs[loop01].value.split('x')[1] * 1;

								if (e_movieFileWidth == 640) {
									addClass(e_movieContainers[loop00], ' movieContainerLarge');
								};
							} else if (e_movieContainerFormInputs[loop01].name == 'typeMOV') {
								e_movieMOVs[loop00] = e_movieContainerFormInputs[loop01].value;

							} else if (e_movieContainerFormInputs[loop01].name == 'typeFLV') {
								e_movieFLVs[loop00] = e_movieContainerFormInputs[loop01].value;

							} else if (e_movieContainerFormInputs[loop01].name == 'typeF4V') {
								e_movieF4Vs[loop00] = e_movieContainerFormInputs[loop01].value;

							} else if (e_movieContainerFormInputs[loop01].name == 'typeIMG') {
								e_movieIMGs[loop00] = e_movieContainerFormInputs[loop01].value;
							};
						};

						// Create a default posterframe image if necessary
						if (!e_movieIMGs[loop00]) {
							e_movieIMGs[loop00] = pathOffset + 'media\/videos\/_default_movie_posterframe_' + e_movieFileWidth + 'x' + e_movieFileHeight + '.gif'; // Include image size in the file name
						};

					// Create all of the necessary elements to cap, contain, and wrap the movie
					e_movieContainerOuterContainers[loop00] = document.createElement('div');
						// addClasses(e_movieContainerOuterContainers[loop00], 'movieContainerOuterContainer', 'styledBox', 'paleGrey', 'styledBoxWide');
						e_movieContainerOuterContainers[loop00].id = 'movieContainerOuterContainer' + loop00;
						addClass(e_movieContainerOuterContainers[loop00], 'movieContainerOuterContainer');

					// e_movieContainerTopCaps[loop00] = document.createElement('div');
						// addClass(e_movieContainerTopCaps[loop00], 'movieContainerCapTop');

					e_movieContainerInnerContainers[loop00] = document.createElement('div');
						addClass(e_movieContainerInnerContainers[loop00], 'movieContainerInnerContainer');

					e_movieWrappers[loop00] = document.createElement('div');
						e_movieWrappers[loop00].id = 'movieWrapper' + (loop00 + 1);
						addClass(e_movieWrappers[loop00], 'movieWrapper');

					// Add the cap, container, and wrapper elements to the outer container
					// e_movieContainerOuterContainers[loop00].appendChild(e_movieContainerTopCaps[loop00]);
					e_movieContainerInnerContainers[loop00].appendChild(e_movieWrappers[loop00]);
					e_movieContainerOuterContainers[loop00].appendChild(e_movieContainerInnerContainers[loop00]);

					if (((e_movieFLVs[loop00] != '') && (flashinstalled == 2) && (flashversion >= FlashPlayerVersionRequired)) || ((e_movieMOVs[loop00] != '') && QuickTimePlayerInstalled)) {
						// Replace the form (all thus all of its contents) with the new outer container
						e_movieContainers[loop00].replaceChild(e_movieContainerOuterContainers[loop00], e_movieContainerForms[loop00]);
						// e_movieContainers[loop00].style.visibility = 'visible'; // Wait and do this later, when the movie is actually embedded

						// Now embed the actual movie
						if (((e_movieF4Vs[loop00] != '') || (e_movieFLVs[loop00] != '')) && (flashinstalled == 2) && (flashversion >= FlashPlayerVersionRequired)) {
							e_movieFileHeight += movieWrapperHeightOffset;

							if ((e_movieF4Vs[loop00] != '') && ((flashversion >= 10) || ((flashversion == 9) && (FlashPlayerVersionRevision >= 115)))) {
								FlashMovieClip = e_movieF4Vs[loop00];
							} else {
								FlashMovieClip = e_movieFLVs[loop00];
							};

							// Add the movie to the collection of movie clips
							movieClips[movieClipsArrayIndex] = new movieClipsObject(pathOffset + movieWrapperFileName + '?file=' + FlashMovieClip + '&image=' + e_movieIMGs[loop00] + '&autoStart=true', e_movieWrappers[loop00].id, FlashPlayerVersionRequired, e_movieFileWidth, e_movieFileHeight, 'menu=false,quality=best,wmode=transparent,allowFullScreen=true,allowScriptAccess=sameDomain,bgcolor=#ffffff,volume=50,id=movieClipObject' + (movieClipsArrayIndex + 1));
							movieClipsArrayIndex++;

						} else if ((e_movieMOVs[loop00] != '') && QuickTimePlayerInstalled) {
							// if ((e_movieMOVs[loop00].substring(0,7) != 'http:\/\/') && (e_movieMOVs[loop00].substring(0,1) != '\/')) {
							if (e_movieMOVs[loop00].indexOf('\/') == -1) { // .substring(0,7) != 'http:\/\/') && (e_movieMOVs[loop00].substring(0,1) != '\/')) {
								// e_movieMOVs[loop00] = '\/' + e_movieMOVs[loop00];
								// e_movieMOVs[loop00] = pathOffset + e_movieMOVs[loop00];
							};

							// Add the movie to the collection of movie clips
							movieClips[movieClipsArrayIndex] = new movieClipsObject(e_movieMOVs[loop00], e_movieWrappers[loop00].id, QuickTimePlayerVersionRequired, e_movieFileWidth, e_movieFileHeight, 'autoplay=true,controller=true,showlogo=false,volume=50,autohref=true,bgcolor=ffffff');
							movieClipsArrayIndex++;

							e_movieWrappers[loop00].style.height = (e_movieFileHeight + 0) + 'px';
							e_movieWrappers[loop00].style.cursor = 'pointer';
							e_movieWrappers[loop00].style.backgroundColor = '#ffffff';
							e_movieWrappers[loop00].style.backgroundPosition = 'top left';
							e_movieWrappers[loop00].style.backgroundRepeat = 'no-repeat';
							e_movieWrappers[loop00].style.backgroundImage = 'url(' + e_movieIMGs[loop00] + ')';

							e_movieWrappersForegroundImages[loop00] = document.createElement('img');
							 	e_movieWrappersForegroundImages[loop00].alt = ' Click to start playing this video... ';
							 	e_movieWrappersForegroundImages[loop00].title = e_movieWrappersForegroundImages[loop00].alt;
							 	e_movieWrappersForegroundImages[loop00].src = video_play_icon.src;
							 	e_movieWrappersForegroundImages[loop00].style.marginTop = ((e_movieFileHeight + 10 - e_movieWrappersForegroundImages[loop00].height) / 2) + 'px';
							 	e_movieWrappersForegroundImages[loop00].style.marginLeft = ((e_movieFileWidth - e_movieWrappersForegroundImages[loop00].width) / 2) + 'px';

							e_movieWrappers[loop00].appendChild(e_movieWrappersForegroundImages[loop00]);
						};
					};
				};

				// If the movie container includes a heading
				e_movieTitles[loop00] = '';
				// Ensure that the next childNode is of type "element" (i.e. not white space, Firefox!)
				nodeTypeElementIndex++;
				// if (nodeTypeElementIndex < (e_movieContainers[loop00].childNodes.length - 1)) {
				if (e_movieContainers[loop00].childNodes[nodeTypeElementIndex]) {
					while (e_movieContainers[loop00].childNodes[nodeTypeElementIndex].nodeType != 1) {
						nodeTypeElementIndex++;
					};
					if ((e_movieContainers[loop00].childNodes[nodeTypeElementIndex].tagName.toLowerCase() == 'h2') || (e_movieContainers[loop00].childNodes[nodeTypeElementIndex].tagName.toLowerCase() == 'h3') || (e_movieContainers[loop00].childNodes[nodeTypeElementIndex].tagName.toLowerCase() == 'h4')) {
						e_movieTitles[loop00] = e_movieContainers[loop00].childNodes[nodeTypeElementIndex].innerHTML;
					};
				};

				// If the movie container includes a description paragraph
				e_movieDescriptions[loop00] = '';
				// Ensure that the next childNode is of type "element" (i.e. not white space, Firefox!)
				nodeTypeElementIndex++;
				// if (nodeTypeElementIndex < (e_movieContainers[loop00].childNodes.length - 1)) {
				if (e_movieContainers[loop00].childNodes[nodeTypeElementIndex]) {
					while (e_movieContainers[loop00].childNodes[nodeTypeElementIndex].nodeType != 1) {
						nodeTypeElementIndex++;
					};
					if (e_movieContainers[loop00].childNodes[nodeTypeElementIndex].tagName.toLowerCase() == 'p') {
						e_movieDescriptions[loop00] = e_movieContainers[loop00].childNodes[nodeTypeElementIndex].innerHTML;
					};
				};

				// Reset the nodeTypeElementIndex for next time
				nodeTypeElementIndex = 0;

				// Is this a highslide type video?
				if (hasClass(e_movieContainers[loop00].parentNode, 'highslideVideo')) {
					// Ensure that the movie container's parent has an id attribute
					if (!e_movieContainers[loop00].parentNode.id) {
						e_movieContainers[loop00].parentNode.id = 'highslideMovieContainer' + (loop00 + 1);
					};

					// Create a "highslideHTML" type link to the video
					e_movieHighslideLinks[loop00] = document.createElement('a');
						// addClasses(e_movieHighslideLinks[loop00], 'highslideHTML', 'highslideVideoLink');
						addClass(e_movieHighslideLinks[loop00], 'highslideHTML');

						e_movieHighslideLinks[loop00].href = location.href;
						e_movieHighslideLinks[loop00].setAttribute('popupId', e_movieContainers[loop00].parentNode.id);

						e_movieHighslideLinks[loop00].onclick = function() {
							return false;
						};

					// Create a container for the link
					e_movieHighslideLinkContainers[loop00] = document.createElement('div');
						// addClass(e_movieHighslideLinks[loop00], 'highslideVideoLinkContainer');

					// Is there a posterframe image?
					if (e_movieContainerForms[loop00].getElementsByTagName('IMG')[0]) {
						e_movieThumbnailImages[loop00] = e_movieContainerForms[loop00].getElementsByTagName('IMG')[0];
						addClass(e_movieThumbnailImages[loop00], 'highslideVideoThumbnail');
						e_movieHighslideLinks[loop00].appendChild(e_movieThumbnailImages[loop00]);

						if (e_movieTitles[loop00]) {
							e_movieThumbnailImages[loop00].alt = e_movieTitles[loop00];

							e_movieHighslideLinks[loop00].title = e_movieTitles[loop00];
						};

						if (e_movieDescriptions[loop00]) {
							e_movieThumbnailImages[loop00].alt += ' - ' + e_movieDescriptions[loop00];
						};

						e_movieThumbnailImages[loop00].title = e_movieThumbnailImages[loop00].alt;

					// Else is there a title for the movie?
					} else if (e_movieTitles[loop00]) {
						e_movieHighslideLinkContainerStrongTag = document.createElement('strong');
							e_movieHighslideLinkContainerStrongTag.appendChild(document.createTextNode('View video: '));

						e_movieHighslideLinkContainers[loop00].appendChild(e_movieHighslideLinkContainerStrongTag);

						e_movieHighslideLinks[loop00].appendChild(document.createTextNode(e_movieTitles[loop00]));
						e_movieHighslideLinks[loop00].title = e_movieTitles[loop00];

						// if (e_movieDescriptions[loop00]) {
							// e_movieHighslideLinks[loop00].appendChild(document.createTextNode(' - ' + e_movieDescriptions[loop00]));
							// e_movieHighslideLinks[loop00].title += ' - ' + e_movieDescriptions[loop00]; // Would cause the description to be added to the highslide heading...
						// };

					// Else is there a description for the movie?
					} else if (e_movieDescriptions[loop00]) {
						e_movieHighslideLinkContainerStrongTag = document.createElement('strong');
							e_movieHighslideLinkContainerStrongTag.appendChild(document.createTextNode('View video: '));

						e_movieHighslideLinkContainers[loop00].appendChild(e_movieHighslideLinkContainerStrongTag);

						e_movieHighslideLinks[loop00].appendChild(document.createTextNode(e_movieDescriptions[loop00]));
						// e_movieHighslideLinks[loop00].title = e_movieDescriptions[loop00];

					// Otherwise, use some default link text
					} else {
						e_movieHighslideLinks[loop00].appendChild(document.createTextNode('View video'));
						// e_movieHighslideLinks[loop00].title = ' Click to open video... '; // Would cause the description to be added to the highslide heading...
					};

					// Add the link to the document
					e_movieHighslideLinkContainers[loop00].appendChild(e_movieHighslideLinks[loop00]);
					insertAfter(e_movieHighslideLinkContainers[loop00], e_movieContainers[loop00].parentNode);
				};
			};
		};
	// };
};

// Embed movies
function pI_embedMovies() {
	for (var loop00 = 0; loop00 < movieClips.length; loop00++) {
		e_movieClip = document.getElementById(movieClips[loop00].movieClipId);

		if (e_movieClip) {
			if (movieClips[loop00].movieClipFile.toLowerCase().indexOf('.mov') != -1) {
				if (is_ipod || is_iphone || is_ipad) {
					e_movieClip.innerHTML = '<embed src="' + e_movieThumbnailImages[loop00] + '" href="' + movieClips[loop00].movieClipFile + '" target="myself" controller="false" autoplay="false" scale="1" cache="true" type="video\/quicktime" width="' + movieClips[loop00].movieClipWidth + '" height="' + movieClips[loop00].movieClipHeight + '" pluginspage="http:\/\/www.apple.com\/quicktime\/download\/" \/>';

				} else {
					currentMovieClip = document.getElementById(movieClips[loop00].movieClipId);

					currentMovieClip.setAttribute('movieClipIndex', loop00);

					currentMovieClip.onclick = function() {
						currentMovieClipIndex = this.getAttribute('movieClipIndex');

						this.style.backgroundImage = 'none';
						this.style.cursor = 'default';

						embedQuickTimeMovie(movieClips[currentMovieClipIndex].movieClipFile, movieClips[currentMovieClipIndex].movieClipId, movieClips[currentMovieClipIndex].movieClipPlayerVersion, movieClips[currentMovieClipIndex].movieClipWidth, movieClips[currentMovieClipIndex].movieClipHeight, movieClips[currentMovieClipIndex].movieClipParameters);	

						movieContainerHeight = (getStyle(this, 'height').split('px')[0] * 1);
						this.parentNode.style.height = (movieContainerHeight + 16) + 'px';

						addClass(this.parentNode, 'QuickTime');

						this.onclick = function() {};
					};
				};

			} else if ((movieClips[loop00].movieClipFile.toLowerCase().indexOf('.f4v') != -1) || (movieClips[loop00].movieClipFile.toLowerCase().indexOf('.flv') != -1)) {
				e_movieClip.style.backgroundImage = 'none';

				embedFlashMovie(movieClips[loop00].movieClipFile, movieClips[loop00].movieClipId, movieClips[loop00].movieClipPlayerVersion, movieClips[loop00].movieClipWidth, movieClips[loop00].movieClipHeight, movieClips[loop00].movieClipParameters);
			};

			if ((e_movieClip.parentNode.parentNode.parentNode.parentNode.tagName.toLowerCase() == 'div') && (hasClass(e_movieClip.parentNode.parentNode.parentNode.parentNode, 'highslideVideo'))) {
				addClass(e_movieClip.parentNode.parentNode.parentNode.parentNode, ('highslide-html-content-' + movieClips[loop00].movieClipWidth));
			};
		};
	};
};

// Page initialization
function pI() {
	if (document.getElementById && document.getElementsByTagName) {
		// Collect all links
		e_allLinks = document.getElementsByTagName('a');

		// Embed movie containers
		pI_embedMovieContainers();

		// Rewrite highslide links
		pI_rewriteHighslideLinks();

		// Initialize highslide
		pI_initializeHighslide();

		// Initialize highslide HTML content
		pI_initializeHighslideHTMLContent();

		// Initialize highslide images and galleries
		pI_initializeHighslideImageGalleries();

		// Embed movies
		// pI_embedMovies();
		setTimeout('pI_embedMovies();', 500);
	};
};


/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Window/document level events */

window.onload = function() {
	pI(); 	// pageInitialization
};


