﻿YAHOO.util.Event.onDOMReady(initPage);

function initPage(){
	// set up 'resources' tabs:
	//var tabView = new YAHOO.widget.TabView('resourcesTabbedContentContainer');

	contentAccordion = new accordionWidget("32px", "accordion_main_5", 0, "accordionContainerMainContent");
	
	// gather accordion components
	var sidebarButtonsXeon = YAHOO.util.Dom.getElementsByClassName('accordion_sidebar','div','accordionContainerXeon');
	var sidebarButtonsVpro = YAHOO.util.Dom.getElementsByClassName('accordion_sidebar','div','accordionContainerVpro');
	var contentButtons = YAHOO.util.Dom.getElementsByClassName('accordion_main','div','accordionContainerMainContent');
	var sidebarButtons;
	if(sidebarButtonsXeon[0]) {
		sidebarAccordion = new accordionWidget("49px", "accordion_content_5", 0, "accordionContainerXeon");
		sidebarButtons = sidebarButtonsXeon;
	} else {
		sidebarAccordion = new accordionWidget("49px", "accordion_content_2", 0, "accordionContainerVpro");
		sidebarButtons = sidebarButtonsVpro;
	}
	
	// build configuration arrays for accordions for use in init function
	function getBtnId(contentId) {
		var btns = document.getElementById(contentId).getElementsByTagName('h2');
		var btnId = btns[0].id;
		return btnId;
	}
	
	function makeSectionsObjArray(buttonArray) {
		var sectionIdArray = [];
		for(i = 0; i < buttonArray.length; i++) {
			var sectionObj = {};
			var contentId = buttonArray[i].id;
			var btnId = getBtnId(contentId);
			sectionObj.btnId = btnId;
			sectionObj.contentId = contentId;
			sectionIdArray.push(sectionObj);
		}
		return sectionIdArray;
	}
	
	var sidebarSectionsDataObjArray = makeSectionsObjArray(sidebarButtons);
	var contentSectionsDataObjArray = makeSectionsObjArray(contentButtons);

	// set up accordion:
	sidebarAccordion.init(
		{activateOnHover:true}, // if this is false, accordion sections will change 'onclick'
		sidebarSectionsDataObjArray
	);

	contentAccordion.init(
		{activateOnHover:false}, // if this is false, accordion sections will change 'onclick'
		contentSectionsDataObjArray
	);
	
	// Suckerfish start
	suckerfish();

}

var accordionWidget = function(hiddenHeight,videoDiv,activeIndex,id) {
	this.id = id;
	this.hiddenHeight = hiddenHeight;
	this.hiddenHeightNoPx = parseInt(this.hiddenHeight);
	this.videoDiv = videoDiv;
	this.activeIndex = activeIndex;
	return this;
};

accordionWidget.prototype = {
	init:function(configObj,sectionsDataObjArray){
		this.activateOnHover = configObj.activateOnHover;
		for(var i = 0; i < sectionsDataObjArray.length; i++){
			if(i == 0) {
				this.sections = [];  // clear out array in case multiple accordions
			}
			this.sections.push(this.makeSection(sectionsDataObjArray[i].btnId,sectionsDataObjArray[i].contentId,this,i,this.activeIndex));
		}
		this.hideAll(this.hiddenHeight);
		// expand first section:
		//this.sections[0].expandContent(this.sections[0],this);
		this.initOpen(this.sections[0]);
	},
	sections:[],
	initOpen:function(_this){
		_this.content.style.height = _this.contentHeight + "px";
		_this.expanded = true;
	},
	makeSection:function(triggerIdStr,contentIdStr,widget,index,activeIndex){
		var s = document.getElementById(triggerIdStr);
		s.expanded = false;
		s.content = document.getElementById(contentIdStr);
		s.contentHeight = this.getElementHeight(contentIdStr);
		s.widget = widget;
		s.index = index;
		s.widget.activeIndex = activeIndex;
		s.collapseContent = function(){
			if(this.expanded){
				this.expanded = false;
				YAHOO.util.Dom.removeClass(this.content,"current");
				// youtube video?
				if(this.content.id == this.widget.videoDiv){
					if(this.widget.id == "accordionContainerMainContent") {
						pauseCenterVideo();
					} else {
						// get player state:
						var vidPlayerObj = document.getElementById("youtubeVideoFlash");
						try{
							var vidPlayerState = vidPlayerObj.getPlayerState();
							if(vidPlayerState >= 1 && vidPlayerState != 2 && vidPlayerState < 5){ // playing
								vidPlayerObj.pauseVideo();
								this.playVideoOnExpand = true;
							}else{
								this.playVideoOnExpand = false;
							}
						}
						catch(e){
							// Flash not loaded yet, or doesn't exist
						}
					}
				}
				var anim = new YAHOO.util.Anim(this.content,{height:{to:s.widget.hiddenHeightNoPx}},.5);
				anim.animate();
			}
		}
		s.expandContent = function(_this){
			if(_this.expanded){ return false; }
			// hide item that is open:
			function hideOpen() {
				_this.widget.sections[_this.widget.activeIndex].collapseContent();
			}
			hideOpen();

			// show this item:
			_this.expanded = true;
			
			function setActive(index) {
				_this.widget.activeIndex = index;
			}
			setActive(_this.index);
			YAHOO.util.Dom.addClass(this.content,"current");
			
			var anim = new YAHOO.util.Anim(_this.content,{height:{to:_this.contentHeight}},.5);
			anim.animate();
			if(_this.playVideoOnExpand === true){
				var vidPlayerObj = document.getElementById("youtubeVideoFlash");
				vidPlayerObj.playVideo();
			}

			return false;
		}
		
		function executeExpandContent(t) {
			return t.expandContent(t);
		}
		
		if(this.activateOnHover){
			s.onmouseover = function(){
				executeExpandContent(this);
				//return this.expandContent(this);
				//return false;
			}
		}else{
			s.onclick = function(){
				executeExpandContent(this);
				//return this.expandContent(this);
				//return false;
			}
			s.style.cursor = "pointer";
		}
		return s;
	},
	hideAll:function(hiddenHeight){
		for(var i = 0; i < this.sections.length; i++){
			this.sections[i].content.style.height = hiddenHeight;
		}
	},
	getElementHeight:function(elIdStr){
		var region = YAHOO.util.Dom.getRegion(elIdStr);
		return region.bottom - region.top;
	}
}

var contentAccordion;
var sidebarAccordion;

/* Suckerfish for YUI */

function suckerfish(foo) {
	var menuSec = document.getElementById('navbarClientsSec');
	var menuRem = document.getElementById('navbarClientsRem');
	var menuPerf = document.getElementById('navbarClientsPerf');
	YAHOO.util.Event.addListener(menuSec, 'mouseover', SFadd, foo);
	YAHOO.util.Event.addListener(menuSec, 'mouseout', SFremove, foo);
	YAHOO.util.Event.addListener(menuRem, 'mouseover', SFadd, foo);
	YAHOO.util.Event.addListener(menuRem, 'mouseout', SFremove, foo);
	YAHOO.util.Event.addListener(menuPerf, 'mouseover', SFadd, foo);
	YAHOO.util.Event.addListener(menuPerf, 'mouseout', SFremove, foo);
}
function SFadd() {
	YAHOO.util.Dom.addClass(this,'hover');
}
function SFremove() {
	YAHOO.util.Dom.removeClass(this,'hover');
}

function pauseYouTube() {
	var vidPlayerObj = document.getElementById("youtubeVideoFlash");
	try{
		vidPlayerObj.pauseVideo();
	}
	catch(e){
		// Flash not loaded yet, or doesn't exist
	}
}

function pauseCenterVideo() {
	var videoPlayer = document.getElementById("mymovie");
	try{
		videoPlayer.pauseVideo();
	}
	catch(e){
		// Flash not loaded yet, or doesn't exist
	}
}

