/* SOLUTIONS SECTION */
function initShowHides() {
	var showHides = YAHOO.util.Dom.getElementsByClassName("showhide", "a");
	YAHOO.util.Event.addListener(showHides, "click", switchShowHide);
}
YAHOO.util.Event.onDOMReady(initShowHides);
function switchShowHide() {
	if(this.getAttribute('hidetext')!="") {
		showBlock(this);
	} else {
		hideBlock(this);
	}
}
function showBlock(elm) {
	var toShow = document.getElementById(elm.getAttribute('references'));
	YAHOO.util.Dom.setStyle(toShow, "display", "block");
	elm.setAttribute("showtext", elm.innerHTML);
	elm.innerHTML = elm.getAttribute('hidetext');
	elm.setAttribute("hidetext", "");
	YAHOO.util.Dom.replaceClass(elm, "showhide_plus", "showhide_minus");
}
function hideBlock(elm) {
	var toHide = document.getElementById(elm.getAttribute('references'));
	YAHOO.util.Dom.setStyle(toHide, "display", "none");
	elm.setAttribute("hidetext", elm.innerHTML);
	elm.innerHTML = elm.getAttribute('showtext');
	elm.setAttribute("showtext", "");
	YAHOO.util.Dom.replaceClass(elm, "showhide_minus", "showhide_plus");
}

/* CLIENTS SECTION */
function initCapsules() {
	var capsules = YAHOO.util.Dom.getElementsByClassName("clientcapsule", "div");
	if(capsules.length==0) return false;
	for(var i=0; i<capsules.length; i++) {
		var paragraphs = capsules[i].getElementsByTagName('p');
		var numParagraphs = paragraphs.length;
		var contentP = paragraphs[0];
		var newP = truncate(contentP);
		if(newP===false) {
			//do nothing
		} else {
			newP.id = "capsule_"+i+"_p_short"
			contentP.parentNode.insertBefore(newP, contentP);
			var newA = document.createElement("a");
			newA.href="javascript:;";
			YAHOO.util.Dom.addClass(newA, "viewlink");
			YAHOO.util.Dom.addClass(newA, "showhide_plus");
			newA.setAttribute("hidetext", "Hide Capsule");
			contentP.id = "capsule_"+i+"_p_long";
			newA.setAttribute("references", "capsule_"+i+"_p");
			YAHOO.util.Event.addListener(newA, "click", switchViewLink);
			newA.innerHTML = "Show Capsule";
			if(numParagraphs==1) { //we had no Case Study link
				//innerParagraphs = capsules[i].getElementsByTagName('p');
				contentP.parentNode.appendChild(newA);
			} else { //we HAD a case study link
				innerParagraphs = capsules[i].getElementsByTagName('p');
				contentP.parentNode.insertBefore(newA, innerParagraphs[2]);
			}
			YAHOO.util.Dom.setStyle(contentP, "display", "none");
		}
	}
}
//YAHOO.util.Event.onDOMReady(initCapsules);
function switchViewLink() {
	if(this.getAttribute('hidetext')!="") {
		showCapsule(this);
	} else {
		hideCapsule(this);
	}
}
function showCapsule(elm) {
	var toHide = document.getElementById(elm.getAttribute('references')+"_short");
	YAHOO.util.Dom.setStyle(toHide, "display", "none");
	var toShow = document.getElementById(elm.getAttribute('references')+"_long");
	YAHOO.util.Dom.setStyle(toShow, "display", "block");
	elm.setAttribute("showtext", elm.innerHTML);
	elm.innerHTML = elm.getAttribute('hidetext');
	elm.setAttribute("hidetext", "");
	YAHOO.util.Dom.replaceClass(elm, "showhide_plus", "showhide_minus");
}
function hideCapsule(elm) {
	var toHide = document.getElementById(elm.getAttribute('references')+"_long");
	YAHOO.util.Dom.setStyle(toHide, "display", "none");
	var toShow = document.getElementById(elm.getAttribute('references')+"_short");
	YAHOO.util.Dom.setStyle(toShow, "display", "block");
	elm.setAttribute("hidetext", elm.innerHTML);
	elm.innerHTML = elm.getAttribute('showtext');
	elm.setAttribute("showtext", "");
	YAHOO.util.Dom.replaceClass(elm, "showhide_minus", "showhide_plus");
}

function truncate(elm) {
	var len = 120;
	if(!elm) return;
	var trunc = elm.innerHTML;
	if (trunc.length > len) {
		var newP = document.createElement('p');
		/* Truncate the content of the P, then go back to the end of the
		previous word to ensure that we don't truncate in the middle of
		a word */
		trunc = trunc.substring(0, len);
		trunc = trunc.replace(/\w+$/, '');
		
		/* Add an ellipses to the end and make it a link that expands
		the paragraph back to its original size */
		trunc += '...';
		newP.innerHTML = trunc;
		return newP;
	}
	return false;
}


/* NAVIGATION SECTION */
var originalMenu;
var originalMenuClassName;
var currentHoverMenu;
function initNavItems() {
	var navMain = document.getElementById('nav-main');
	var navULArr = navMain.getElementsByTagName('ul');
	navUL = navULArr[0];
	navLIs = Array();
	var tick = 0;
	for(var i=0; i<navUL.childNodes.length; i++) {
		if(navUL.childNodes[i].nodeName=="LI") {
			if(YAHOO.util.Dom.hasClass(navUL.childNodes[i], "current")) {
				originalMenu = navUL.childNodes[i];
				originalMenuClassName = navUL.childNodes[i].className;
			}
			navLIs[tick] = navUL.childNodes[i];
			tick++;
		}
	}
	YAHOO.util.Event.addListener(navLIs, "mouseover", showChildMenu);
	YAHOO.util.Event.addListener(navLIs, "mouseout", hideChildMenu);
}
YAHOO.util.Event.onDOMReady(initNavItems);
function showChildMenu() {
	//YAHOO.util.Dom.removeClass(originalMenu, "current");
	if(originalMenu) {
		if(YAHOO.util.Dom.hasClass(originalMenu, "first"))
			originalMenu.className = "first";
		else
			originalMenu.className = "";
	}
	if(originalMenu && this==originalMenu)
		originalMenu.className = originalMenuClassName;
	else
		YAHOO.util.Dom.addClass(this, "current");
	
	//currentHoverMenu = this;
}
function hideChildMenu() {
	YAHOO.util.Dom.removeClass(this, "current");
	//currentHoverMenu = false;
	//YAHOO.util.Dom.addClass(originalMenu, "current");
	if(originalMenu)
		originalMenu.className = originalMenuClassName;
}