// This script requires Prototype JavaScript Framework, i.e. prototype.js

function addEvent( obj, type, fn )
{
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}

function removeEvent( obj, type, fn )
{
	if (obj.removeEventListener)
		obj.removeEventListener( type, fn, false );
	else if (obj.detachEvent)
	{
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}

addEvent(window, 'load', listStripe);
addEvent(window, 'load', tableStripe);
addEvent(window, 'load', loadTabs);
addEvent(window, 'load', expandableProfiles);
addEvent(window, 'load', hideProfileFull);
addEvent(window, 'load', loadExpandableNav);


//Stripe alternate rows of lists
function listStripe() {
	if(document.getElementById("secondary")) {
		var lists = document.getElementById("secondary").getElementsByTagName("ul");
		for (var t = 0; t < lists.length; t++) {
		  var listitems = lists[t].getElementsByTagName("li");
		  for (var i = 1; i < listitems.length; i += 2)
			listitems[i].className = "odd";
		}
	}
}

//Stripe alternate rows of tables
function tableStripe() {
	var tables = document.getElementsByTagName("table");
	for ( var t = 0; t < tables.length; t++ ) {
	  var rows = tables[t].getElementsByTagName("tr");
	  for ( var i = 1; i < rows.length; i += 2 )
		if ( !/(^|s)odd(s|$)/.test( rows[i].className ) )
		  rows[i].className = "odd";
	}
}

// Home page tabs
function loadTabs() {
	if ($('home_tabs')) {
		var tabs = $('home_tabs').getElementsByTagName('a');
		for (var i = 0; i < tabs.length; i++) {
			tabs[i].onclick = toggleTabs;
		}
	}
}

function toggleTabs() {
	var tabs = $('home_tabs').getElementsByTagName('li');
	for (var i = 0; i < tabs.length; i++) {
		tabs[i].className = "";
	}

	this.parentNode.className = "active";
					
	var panes = document.getElementsByClassName('pane');
	for (var i = 0; i < panes.length; i++) {
		panes[i].style.display = "none";
	}

	$("pane_"+this.id).style.display = "block";
	return false;
}

//Expandable profiles for the profile page
function hideProfileFull() {
	if (document.getElementById('profilepage')) {
		fullText = document.getElementsByClassName('full');
		for (i = 0; i < fullText.length; i++) {
			fullText[i].style.display = "none";
		}
	}
}

function expandableProfiles() {
	if (document.getElementById('profilepage')) {
		links = document.getElementsByTagName('a');
		for (i = 0; i < links.length; i++) {
			if(links[i].className == "viewmore")
				links[i].onclick = toggleProfile;
			else if(links[i].className == "expandall")
				links[i].onclick = expandAllProfiles;
			else if(links[i].className == "collapseall")
				links[i].onclick = collapseAllProfiles;
		}
	}
}

function toggleProfile() {
	var listItem = this.parentNode.parentNode;
	var textItems = listItem.getElementsByTagName('span');
	var links = listItem.getElementsByTagName('a');

	var excerpt;
	var full;
	
	for(i = 0; i < textItems.length; i++) {
		if(textItems[i].className == "excerpt")
			excerpt = textItems[i];
		else if(textItems[i].className == "full")
			full = textItems[i];
	}

	if(excerpt.style.display == "none") {
		excerpt.style.display = "block";
		full.style.display = "none";
		this.innerHTML = "View More &raquo;";
	}
	else {
		excerpt.style.display = "none";
		full.style.display = "block";
		this.innerHTML = "View Less &laquo;";
	}
	return false;
}

function expandAllProfiles() {
	var excerpts = document.getElementsByClassName('excerpt');
	var fulls = document.getElementsByClassName('full');
	var links = document.getElementsByClassName('viewmore');
	for(i = 0; i < excerpts.length;i++)
		excerpts[i].style.display = "none";
	for(i = 0; i < fulls.length;i++)
		fulls[i].style.display = "block";
	for(i = 0; i < links.length;i++)
		links[i].innerHTML = "View Less &laquo;";
}

function collapseAllProfiles() {
	var excerpts = document.getElementsByClassName('excerpt');
	var fulls = document.getElementsByClassName('full');
	var links = document.getElementsByClassName('viewmore');
	for(i = 0; i < excerpts.length;i++)
		excerpts[i].style.display = "block";
	for(i = 0; i < fulls.length;i++)
		fulls[i].style.display = "none";
	for(i = 0; i < links.length;i++)
		links[i].innerHTML = "View More &raquo;";
}

//Expandable sidebar navigation
function loadExpandableNav() {
	if(document.getElementById('archives')) 
	{
		var subLists = document.getElementById('archives').getElementsByTagName('ul');
		for(i = 0; i < subLists.length; i++)
			subLists[i].style.display = "none";
		
		var expandLinks = document.getElementsByClassName('expandable');
		for(i = 0; i < expandLinks.length; i++) {
			expandLinks[i].onclick = toggleExpandableNav;
			expandLinks[i].className = "expandable collapsed";
			
			if(expandLinks[i].attributes['AutoExpand']){
			    if(expandLinks[i].attributes['AutoExpand'].value == "true"){
			        //expandLinks[i].click();
			        autoToggleExpandableNav(expandLinks[i]);
			    }
			}
		}
	}
}

function toggleExpandableNav() {
    var listNode = this.parentNode;
	var subLists = listNode.getElementsByTagName('ul');

	for(count = 0; count < subLists.length; count++) {
		if(subLists[count].style.display == "none") {
			this.className = "expandable expanded";
			subLists[count].style.display = "block";
		} else {
			this.className = "expandable collapsed";
			subLists[count].style.display = "none";
		}
	}
	return false;
}

function autoToggleExpandableNav(element) {
    var listNode = element.parentNode;
	var subLists = listNode.getElementsByTagName('ul');

	for(count = 0; count < subLists.length; count++) {
		if(subLists[count].style.display == "none") {
			element.className = "expandable expanded";
			subLists[count].style.display = "block";
		} else {
			element.className = "expandable collapsed";
			subLists[count].style.display = "none";
		}
	}
}

//FAQ Page
function viewAnswer(e) {
	list = e.parentNode.parentNode;
	listElements = list.getElementsByTagName('dd');
	for(i = 0; i < listElements.length; i++) {
		if(listElements[i].style.display == "none")
			listElements[i].style.display = "block";
		else
			listElements[i].style.display = "none";
	}
	if(e.className.match("view"))
		e.className = "question close";
	else if(e.className.match("close"))
		e.className = "question view";
}


function getFaq() {
	if (document.getElementById('faq')) {
		var links = document.getElementById('faq').getElementsByTagName('a');
		for (var i = 0; i < links.length; i++) {
    		if (links[i].className.match("question")) {
				// Attach function to onclick event
				links[i].className = "question view";
				links[i].onclick = function() {
		        	viewAnswer(this);
					return false;
      			}
			}
		}
		var answers = document.getElementById('faq').getElementsByTagName('dd');
		for(i=0; i<answers.length; i++) {
			answers[i].style.display = "none";
		}
	}
}

addEvent(window, 'load', getFaq);

function collapseAllFaq() {
	if (document.getElementById) {
		var links = document.getElementsByTagName('a');
		for (var i = 0; i < links.length; i++) {
    		if (links[i].className.match("question")) {
				links[i].className = "question view";
				list = links[i].parentNode.parentNode;
				listElements = list.getElementsByTagName('dd');
				for(j = 0; j < listElements.length; j++)
					listElements[j].style.display = "none";
			}
		}
	}
}

function expandAllFaq() {
	if (document.getElementById) {
		var links = document.getElementsByTagName('a');
		for (var i = 0; i < links.length; i++) {
    		if (links[i].className.match("question")) {
				links[i].className = "question close";
				list = links[i].parentNode.parentNode;
				listElements = list.getElementsByTagName('dd');
				for(j = 0; j < listElements.length; j++)
					listElements[j].style.display = "block";
			}
		}
	}
}

//for navigation
sfHover = function() {     
	var sfEls = document.getElementById("navigation").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";         
		}
		sfEls[i].onmouseout=function() {             
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}     
	} 
} 
if (window.attachEvent) window.attachEvent("onload", sfHover); 