/* 
================================================================================================================================ CREDITS
Copyright 	: Copyright 2010. All Rights Reserved.
Author(s) 	: Larry Daughenbaugh - ldaughenbaugh@jplcreative.com
Date      	: 07/21/2010
Notes     	: JavaScript file for handling various events ... onLoad, onClick, etc
================================================================================================================================ CHANGE LOG
Date		Name			Desc
---			---				---
================================================================================================================================ BEGIN JAVASCRIPT
*/

/* ============================================================================================================================= MULTIPLE ONLOAD HANDLER */

var onLoadFunctions = new Array();
var iloadFunction = 0;

// Pass each function that needs to load
function add_on_load(func) {
    onLoadFunctions[iloadFunction] = func;
    iloadFunction++;
}
// Loops through all of the functions that were added
function loadAllFunctions() {
    for (var i = 0; i < onLoadFunctions.length; i++) {
        eval(onLoadFunctions[i]+"()");
    }
}
// Load all of the functions that you've set
window.onload = loadAllFunctions;

/* ============================================================================================================================= COMMON VARIABLES */

var slideAnimate = '';
var arrSlides = new Array();
var arrButtons = new Array();
var arrVideoLinks = new Array('<img src="lib/img/slideshow/home_photo_03.jpg"/>','<img src="lib/img/slideshow/home_photo_04.jpg"/>');
var arrSlideTypes = new Array('img','img');
var ytplayer = '';

/* ============================================================================================================================= FLASH FUNCTIONS */

function onytplayerStateChange(newState) {
	if (newState == 3) clearInterval(slideAnimate);
}

function onYouTubePlayerReady(playerId) {
	//ytplayer = document.getElementById(playerId);
	//ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
}

function thisMovie(movieName) {
	if (window.document[movieName]) return window.document[movieName];
	if (navigator.appName.indexOf("Microsoft Internet") == -1) {
		if (document.embeds && document.embeds[movieName]) return document.embeds[movieName]; 
	} else {
		return document.getElementById(movieName);
	} 
}

/* ============================================================================================================================= CALL FUNCTIONS TO BE LOADED */

add_on_load("load_slideshow");
//add_on_load("load_flash");
add_on_load("adjust_callouts");

/* ============================================================================================================================= SLIDESHOW */

/* SHOW THE PREVIOUS OR NEXT SLIDE */
function change_slide(pos,num1,num2) {
	clearInterval(slideAnimate);

	for (var i = 0; i < arrButtons.length; i++) { 
		if ( document.getElementById(arrButtons[i]).className == 'active' ) {
			document.getElementById(arrButtons[i]).className = '';
			document.getElementById(arrSlides[i]).className = 'hidden';
			
			if (i == num1) {
				if (arrSlideTypes[num2] == 'img') {
					document.getElementById('img-holder').innerHTML = arrVideoLinks[num2];
					//document.getElementById('yt').style.marginTop = '-289px';
					if (typeof ytplayer.stopVideo == "function") {
						ytplayer.stopVideo();
					}
					document.getElementById('img-holder').className = '';
		
					document.getElementById(arrButtons[num2]).className = 'active';
					document.getElementById(arrSlides[num2]).className = 'slide-container-active';
				} else {
					document.getElementById('img-holder').className = 'hidden';
					document.getElementById(arrButtons[num2]).className = 'active';
					document.getElementById(arrSlides[num2]).className = 'slide-container-active';

					ytplayer.cueVideoById(arrVideoLinks[num2]);
					document.getElementById('yt').style.marginTop = '0px';
				}
			} else {
				
				if (pos == 0) {
					var j = i-1;
				} else {
					var j = i+1;
				}

				if (arrSlideTypes[j] == 'img') {
					document.getElementById('img-holder').innerHTML = arrVideoLinks[j];
					//document.getElementById('yt').style.marginTop = '-289px';
					if (typeof ytplayer.stopVideo == "function") {
						ytplayer.stopVideo();
					}
					document.getElementById('img-holder').className = '';
		
					document.getElementById(arrButtons[j]).className = 'active';
					document.getElementById(arrSlides[j]).className = 'slide-container-active';
				} else {
					document.getElementById(arrButtons[j]).className = 'active';
					document.getElementById(arrSlides[j]).className = 'slide-container-active';
					ytplayer.cueVideoById(arrVideoLinks[j]);
					document.getElementById('yt').style.marginTop = '0px';
				}
			}
			break;
		}
	}
}

/* SHOW SLIDE THAT USER CLICKED ON */
function show_slide() {
	clearInterval(slideAnimate);
	var i = 0;
	while (document.getElementById(arrButtons[i])) {
		if (this.id == arrButtons[i]) {
			if (arrSlideTypes[i] == 'img') {
				document.getElementById('img-holder').innerHTML = arrVideoLinks[i];
				//document.getElementById('yt').style.marginTop = '-289px';
				
				if (typeof ytplayer.stopVideo == "function") {
					ytplayer.stopVideo();
				}
				document.getElementById('img-holder').className = '';

				document.getElementById(arrButtons[i]).className = 'active';
				document.getElementById(arrSlides[i]).className = 'slide-container-active';
			} else {
				document.getElementById('img-holder').className = 'hidden';
				document.getElementById(arrButtons[i]).className = 'active';
				document.getElementById(arrSlides[i]).className = 'slide-container-active';

				ytplayer.cueVideoById(arrVideoLinks[i])
				//document.getElementById('yt').style.marginTop = '0px';
			}
		} else {
			document.getElementById(arrButtons[i]).className = '';
			document.getElementById(arrSlides[i]).className = 'hidden';
		}
		i++;
	}
	return false;
}

/* SLIDESHOW ANIMATION, STARTS AUTOMATICALLY, STOPPED WHEN A USER MANUALLY CLICKS ON A SLIDE OPTION */
function moveSlide() {
	for (var i = 0; i < arrButtons.length; i++) { 
		if ( document.getElementById(arrButtons[i]).className == 'active' ) {
			document.getElementById(arrButtons[i]).className = '';
			document.getElementById(arrSlides[i]).className = 'hidden';
			if (i == 1) {
				document.getElementById(arrButtons[0]).className = 'active';
				document.getElementById(arrSlides[0]).className = 'slide-container-active';
				if (arrSlideTypes[i] == 'img') {
					document.getElementById('img-holder').innerHTML = arrVideoLinks[0];
					//document.getElementById('yt').style.marginTop = '-289px';
					if (typeof ytplayer.stopVideo == "function") {
						ytplayer.stopVideo();
					}
					document.getElementById('img-holder').className = '';
				} else {
					document.getElementById('img-holder').className = 'hidden';
					ytplayer.cueVideoById(arrVideoLinks[0]);
					//document.getElementById('yt').style.marginTop = '0px';
				}
			} else {
				var j = i+1;
				document.getElementById(arrButtons[j]).className = 'active';
				document.getElementById(arrSlides[j]).className = 'slide-container-active';
				if (arrSlideTypes[j] == 'img') {
					document.getElementById('img-holder').innerHTML = arrVideoLinks[j];
					//document.getElementById('yt').style.marginTop = '-289px';
					if (typeof ytplayer.stopVideo == "function") {
						ytplayer.stopVideo();
					}
					document.getElementById('img-holder').className = '';
				} else {
					document.getElementById('img-holder').className = 'hidden';
					ytplayer.cueVideoById(arrVideoLinks[j]);
					//document.getElementById('yt').style.marginTop = '0px';
				}
			}
			break;
		}
	}
}

function load_slideshow() {
	if (document.getElementById('slideshow') != null) {
		// POPULATE ARRAYS WITH SLIDES, SLIDE VIDEOS, SLIDE BUTTONS
		arrSlides = new Array('s0','s1');
		arrButtons = new Array('sbtn0','sbtn1');

		// SET UP PREVIOUS AND NEXT BUTTON EVENT HANDLERS
		document.getElementById('slide-previous').onclick = function() {
			change_slide(0,0,1);
			return false;
		}
		document.getElementById('slide-next').onclick = function() {
			change_slide(1,1,0);
			return false;
		}
		for (var i = 0; i < arrButtons.length; i++) { 
			document.getElementById(arrButtons[i]).onclick = function() {
				show_slide(arrButtons[i]);
			}
		}
		
		// SET UP INDIVIDUAL SLIDE SHOW BUTTON EVENT HANDLERS
		var i = 0;
		while (document.getElementById(arrButtons[i])) {
			document.getElementById(arrButtons[i]).onclick = show_slide;
			i++;
		}
		
		// START SLIDESHOW
		slideAnimate = setInterval('moveSlide();',4000);
	}
}

/* ================================================================================================================================ LOAD FLASH FILES */

function load_flash() {
	if ( document.getElementById('yt') != null ) {
		var alt = document.getElementById('yt-alt');
		var flashvars = {};
		var params = { allowscriptaccess: "always" };
		var attributes = {};
	
		swfobject.embedSWF(
			"http://www.youtube.com/v/" + arrVideoLinks[0] + "?enablejsapi=1&playerapiid=yt", 
			"yt", "468", "289", "9.0.0", "lib/swf/expressInstall.swf", 
			flashvars, params, attributes
		);
		if (alt != null) alt.style.visibility = "visible";
	}
}

/* ================================================================================================================================ ADJUST CALLOUTS */

function adjust_callouts() {	
	var arrAllLinks = document.getElementsByTagName("a")

	var arrP1 = new Array();
	var arrP2 = new Array();
	var arrCol1 = new Array();
	var arrCol2 = new Array();
	var col1set = false;
		
	var i = 0;
	var tallest = '';
	while (i < arrAllLinks.length) { 
		if (arrAllLinks[i].rel == "learnmore") {
			p = arrAllLinks[i].parentNode;
			div = p.parentNode;
			
			if (col1set) {
				arrCol2.push(div);
				arrP2.push(p);
				col1set = false;
			} else {
				arrCol1.push(div);
				arrP1.push(p);
				col1set = true;
			}
		}
		i++;
	}
	for (var i=0; i < arrCol1.length; i++) {
		if (arrCol2[i] != null) {
			if (arrCol1[i].offsetHeight > arrCol2[i].offsetHeight) {
				adjust = arrCol1[i].offsetHeight - arrCol2[i].offsetHeight;
				arrP2[i].style.paddingTop = (adjust) + 'px';
			} else {
				adjust = arrCol2[i].offsetHeight - arrCol1[i].offsetHeight;
				arrP1[i].style.paddingTop = (adjust) + 'px';
			}
		}
	}
}

