addLoadListener(init);

function init()
{
    if (document.getElementById("suggested_topics") != null) {
    	document.getElementById("suggested_topics").onchange = showRightItems;
    	var selectedtopics  = document.getElementById("suggested_topics").value;
    	var targetName      = 'new_' + selectedtopics.replace(/s$/, "");
    	var targetDiv       = document.getElementById(targetName);
    	var submission      = document.getElementById("submission");
    	submission.value    = selectedtopics.replace(/s$/, "");
    	targetDiv.className = '';
    	
    }
    else {
    	if (document.getElementById("new_book") != null) {
            document.getElementById("suggest_book").onclick = showItems;
            document.getElementById("close_book").onclick = hideItems;
        }
        else if (document.getElementById("new_link") != null) {
            document.getElementById("suggest_link").onclick = showItems;
            document.getElementById("close_link").onclick = hideItems;
        } 
        else if (document.getElementById("new_database") != null) {
            document.getElementById("suggest_database").onclick = showItems;
            document.getElementById("close_database").onclick = hideItems;
        }
        else if (document.getElementById("new_article") != null) {
            document.getElementById("suggest_article").onclick = showItems;
            document.getElementById("close_article").onclick = hideItems;
        }
        else if (document.getElementById("new_software") != null) {
            document.getElementById("suggest_software").onclick = showItems;
            document.getElementById("close_software").onclick = hideItems;
        }
        else if (document.getElementById("new_webserver") != null) {
            document.getElementById("suggest_webserver").onclick = showItems;
            document.getElementById("close_webserver").onclick = hideItems;
        }
        else if (document.getElementById("new_publication") != null) {
            document.getElementById("suggest_publication").onclick = showItems;
            document.getElementById("close_publication").onclick = hideItems;
        }
    }

    return true;
}



function showItems() {
	var targetName        = this.getAttribute("id").replace(/suggest_/, "new_");
	var closeName         = this.getAttribute("id").replace(/suggest_/, "close_");
	var targetDiv         = document.getElementById(targetName);
	var closeButton       = document.getElementById(closeName);
	targetDiv.className   = "";
	closeButton.className = "";
	this.className        = "hidden";
}

function hideItems() {
	var targetName          = this.getAttribute("id").replace(/close_/, "new_");
	var suggestName         = this.getAttribute("id").replace(/close_/, "suggest_");
	var targetDiv           = document.getElementById(targetName);
	var suggestButton       = document.getElementById(suggestName);
	targetDiv.className     = "hidden";
	suggestButton.className = "";
	this.className          = "hidden";
}

function showRightItems () {
	var submission      = document.getElementById("submission");
	var listItems      = document.getElementById("suggested_topics");
    var positionNewItems  = listItems.selectedIndex;
    for(var i=0; i < listItems.length; i++) {
        if (i == positionNewItems) {
    	    document.getElementById('new_' + listItems[i].value.replace(/s$/, "")).className = "";
            submission.value    = listItems[i].value.replace(/s$/, "");
        }
        else {
            document.getElementById('new_' + listItems[i].value.replace(/s$/, "")).className = "hidden";
        }
    }
}


function addLoadListener(fn)
{
  if (typeof window.addEventListener != 'undefined')
  {
    window.addEventListener('load', fn, false);
  }
  else if (typeof document.addEventListener != 'undefined')
  {
    document.addEventListener('load', fn, false);
  }
  else if (typeof window.attachEvent != 'undefined')
  {
    window.attachEvent('onload', fn);
  }
  else
  {
    var oldfn = window.onload;
    if (typeof window.onload != 'function')
    {
      window.onload = fn;
    }
    else
    {
      window.onload = function()
      {
        oldfn();
        fn();
      };
    }
  }
}
