var divhideTextboxes = new Array();
var divhideLinkTexts = new Array();
var divhideVisible = new Array();


//FIXME: from http://textsnippets.com/posts/show/686
function getElementsByClassName(oElm, strTagName, strClassName){
	    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
	    var arrReturnElements = new Array();
	    strClassName = strClassName.replace(/\-/g, "\\-");
	    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	    var oElement;
	    for(var i=0; i<arrElements.length; i++){
	        oElement = arrElements[i];
	        if(oRegExp.test(oElement.className)){
	            arrReturnElements.push(oElement);
	        }
	    }
	    return (arrReturnElements)
	}


function divhideShow(moreLinks, linktext) {
  moreLinks.style.display = "block";
  linktext.nodeValue = "Hide Links";
}

function divhideShowArticles(moreArticles, linktext) {
  moreArticles.style.display = "block";
  linktext.nodeValue = "Hide Links";
}

function divhideHide(moreLinks, linktext) {
  moreLinks.style.display = "none";
  linktext.nodeValue = "More Fellowships";
}

function divhideHideArticles(moreArticles, linktext) {
  moreArticles.style.display = "none";
  linktext.nodeValue = "More Articles";
}

function divhideShowHide(moreLinkses, linktexts, visible) {
  var moreLinks;
  var linktext;
  var isVisible;
  for(var i = 0; i < visible.length; i++) {
    moreLinks = moreLinkses[i];
    linktext = linktexts[i];
    isVisible = visible[i];
    if(isVisible)
      divhideShow(moreLinks, linktext);
    else
      divhideHide(moreLinks, linktext);
  }
}

function divhideShowHideArticles(moreArticleses, linktexts, visible) {
  var moreArticles;
  var linktext;
  var isVisible;
  for(var i = 0; i < visible.length; i++) {
    moreArticles = moreArticleses[i];
    linktext = linktexts[i];
    isVisible = visible[i];
    if(isVisible)
      divhideShowArticles(moreArticles, linktext);
    else
      divhideHideArticles(moreArticles, linktext);
  }
}

function divhideToggle(i) {
  if(i >= 0 && i < divhideTextboxes.length) {
    if(divhideVisible[i]) {
      divhideVisible[i] = 0;
      divhideHide(divhideTextboxes[i], divhideLinkTexts[i]);
    }
    else {
      divhideVisible[i] = 1;
      divhideShow(divhideTextboxes[i], divhideLinkTexts[i]);
    }
  }
}

function divhideToggleArticles(i) {
  if(i >= 0 && i < divhideTextboxesArticles.length) {
    if(divhideVisibleArticles[i]) {
      divhideVisibleArticles[i] = 0;
      divhideHideArticles(divhideTextboxesArticles[i], divhideLinkTextsArticles[i]);
    }
    else {
      divhideVisibleArticles[i] = 1;
      divhideShowArticles(divhideTextboxesArticles[i], divhideLinkTextsArticles[i]);
    }
  }
}


function divhideInit() {
  var toggleTag;
  var tmpTag;
  divhideTextboxes = getElementsByClassName(document, "div", "moreLinks");
  divhideLinkTexts = new Array(divhideTextboxes.length);
  divhideVisible = new Array(divhideTextboxes.length);
  for(var i = 0; i < divhideVisible.length; i++) {
    divhideVisible[i] = (i == 0) ? 0 : 1;
    toggleTag = document.createElement("p");
    toggleTag.className = "moreLinkstoggle";
    tmpTag = document.createElement("a");
    tmpTag.setAttribute("href", "javascript:divhideToggle(" + i + ")");
    divhideLinkTexts[i] = document.createTextNode(divhideVisible[i] ? "Hide Links" : "More Fellowships");
    tmpTag.appendChild(divhideLinkTexts[i]);
    toggleTag.appendChild(tmpTag);
    divhideTextboxes[i].parentNode.insertBefore(toggleTag, divhideTextboxes[i]);
  }
  divhideShowHide(divhideTextboxes, divhideLinkTexts, divhideVisible);
}
//both of these last 2 are run in header.php
function divhideInitArticles() { 
  var toggleTagArticles;
  var tmpTagArticles;
  divhideTextboxesArticles = getElementsByClassName(document, "div", "moreArticles");
  divhideLinkTextsArticles = new Array(divhideTextboxesArticles.length);
  divhideVisibleArticles = new Array(divhideTextboxesArticles.length);
  for(var i = 0; i < divhideVisibleArticles.length; i++) {
    divhideVisibleArticles[i] = (i == 0) ? 0 : 1;
    toggleTagArticles = document.createElement("p");
    toggleTagArticles.className = "moreArticlestoggle";
    tmpTagArticles = document.createElement("a");
    tmpTagArticles.setAttribute("href", "javascript:divhideToggleArticles(" + i + ")");
    divhideLinkTextsArticles[i] = document.createTextNode(divhideVisibleArticles[i] ? "Hide Links" : "More Articles");
    tmpTagArticles.appendChild(divhideLinkTextsArticles[i]);
    toggleTagArticles.appendChild(tmpTagArticles);
    divhideTextboxesArticles[i].parentNode.insertBefore(toggleTagArticles, divhideTextboxesArticles[i]);
  }
  divhideShowHideArticles(divhideTextboxesArticles, divhideLinkTextsArticles, divhideVisibleArticles);
}
