function changeDisplay(el,d)
{	
	try {
		document.getElementById(el).style.display = d;
		return true;
	} catch(e) {
		return false;
	}
}

function showDesc(a)
{
	removeSelected();
	changeDisplay('dept_desc','block');
	changeDisplay('dept_faculty','none');
	changeDisplay('coursestab','none');
	a.className = 'bulletin-selected';
}

function showCourses(a)
{
	removeSelected();
	changeDisplay('coursestab','block');
	changeDisplay('dept_faculty','none');
	changeDisplay('dept_desc','none');
	a.className = 'bulletin-selected';
}

function showFaculty(a)
{
	removeSelected();
	changeDisplay('dept_desc','none');
	changeDisplay('dept_faculty','block');
	changeDisplay('coursestab','none');
	a.className = 'bulletin-selected';
}

function removeSelected()
{
	try {
		var n = document.getElementById('bulletin-nav');
		var l = n.getElementsByTagName('a');
		for(var i=0; i<l.length; i++) {
			l[i].className = '';
		}
	} catch(e) {}
}

function toggleCourseView(display, elm)
{
    try {
		var maincontent = document.getElementById(elm);
		toggleClassHideShow(display, maincontent);
		toggleClassDisplay('description', maincontent, display);
		toggleClassDisplay('prereqs', maincontent, display);
	} catch(e) {}
}

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function toggleClassDisplay(classname, elm, display)
{
    try {
		var els = getElementsByClassName(classname, '*', elm);
		for (var i=0; i<els.length; i++) {
			els[i].style.display = display;
		}
	} catch(e) {}
}

function toggleClassHideShow(display, elm)
{
	var next;
	var className;
	var newClass;
	if (display == 'none') {
		className = 'hideButton'
		newClass = 'showButton';
		next = 'block';
	} else {
		className = 'showButton'
		newClass = 'hideButton';
		next = 'none';
	}
	var els = getElementsByClassName(className, 'a', elm);
	for (var i=0; i<els.length; i++) {
		els[i].className = newClass;
		els[i].onclick = function (){toggleCourseView(next, elm.id); return false;}
	}
}

if ( typeof(unl) === 'undefined' ) {
    var unl = {};
}
/*
Create tab menu
*/

unl.tabMenu = {
    
    init: function(){
        var arr = [];
        var el = document.getElementById('maincontent');
        var targetUL = document.getElementById('bulletin-nav-nojs');
        var targetA = targetUL.getElementsByTagName('a');
        targetUL.id = 'bulletin-nav';       
        
        for(var i=0, j = arguments.length; i<j; i++) {
             arr[i] = document.getElementById(arguments[i]);
             targetA[i].id = 'bulletinLINK-'+arguments[i];
             targetA[i].onclick = unl.tabMenu.hideShow;     
             if(i === 0){
                arr[0].style.display = 'block';
                targetA[0].className = 'bulletin-selected';
             } else {
                arr[i].style.display = 'none';
             }  
        }       
    },
    
    //This function handles the onclick event of the tab. 
    //Show current selection, Hide others.
    hideShow: function(){
        try {
	        var ulID = document.getElementById('bulletin-nav');
	        var currentDivID = document.getElementById(this.id.substring(13));
	        var resetSel = getElementsByClassName("bulletin-selected","a",ulID);
	        
	        for(var c=0, k=resetSel.length; c<k; c++){
	            var otherDivID = document.getElementById(resetSel[0].id.substring(13));
	            otherDivID.style.display='none';    
	            resetSel[c].className = 'bulletin-non';
	        }
	        
	        this.className = 'bulletin-selected';
	        currentDivID.style.display = 'block';
	    } catch(e) {}       
        return false;
    }
    
}

wraphandler.addEvent(window,"load", function(){
    if (this.window.location.hash) {
        switch(this.window.location.hash) {
            case '#courses':
                showCourses(document.getElementById('showCourses'));
                break;
            case '#faculty':
                showFaculty(document.getElementById('showFaculty'));
                break;
            case '#description':
                showDesc(document.getElementById('showDesc'));
                break;
        }
    }
});

