	// TOGGLE ELEMENT VISIBLITY
	var elementTransFlag = 0;

	function toggleElement(elementNumber,transistionSpeed) {

		// ONLY START A NEW TRANSISTION IF THE PREVIOUS ONE HAS COMPLETED
		if (elementTransFlag == 0) {
			
			var currentElement = jQuery('div.toggle_elements_container .toggle_element').eq(elementNumber);

			// TOGGLE ELEMENT VISIBILITY STATE
			if (currentElement.is(':hidden')) {
				currentElement.slideDown(transistionSpeed);
				addLink(elementNumber,1);
				saveMenuState(elementNumber,1)
			} else {
				currentElement.slideUp(transistionSpeed);
				addLink(elementNumber,0);
				saveMenuState(elementNumber,0)
			};

			// SET FLAG TO IGNORE CLICKS UNTIL TRANSISTION IS COMPLETE
			elementTransFlag = 1;
			var elementTransTimer = setTimeout(function() { elementTransFlag = 0; }, transistionSpeed);
		};
	};

	// COLLAPSE ELEMENTS - BY DEFAULT ALL ARE LEFT OPEN FOR BROWSERS WITH NO JAVASCRIPT
	function collapseElements(anyOpenFlag,leaveOpen) {

		if (anyOpenFlag == 0) {
			jQuery('div.toggle_elements_container .toggle_element').each(function(i) { jQuery(this).hide(); addLink(i,0); });
		} else {
			var currentElement;
			jQuery('div.toggle_elements_container .toggle_element').each(function(i) {
				currentElement = jQuery(this);
				if (!(leaveOpen == i)) { currentElement.hide(); addLink(i,0); }
				else { addLink(i,1); };
			});
		}
	};

	// ADD EXPAND/CLOSE LINKS
	function addLink(clickedLink,toggleState) {

		var toggleLinkExpand = "<a class='toggle_link_image' href='javascript:toggleElement(" + clickedLink + ",500)'><img src='http://www.jbu.edu/images/icon_expand.png' style='padding: 0px 3px 1px 0px; border: 0; vertical-align: middle; ' alt='' title='EXPAND'></a>";
		var toggleLinkCollapse = "<a class='toggle_link_image' href='javascript:toggleElement(" + clickedLink + ",500)'><img class='toggle_link_image' src='http://www.jbu.edu/images/icon_collapse.png' style='padding: 0px 3px 1px 0px; border: 0; vertical-align: middle; ' alt='' title='COLLAPSE'></a>";

		jQuery('a.toggle_link_image').eq(clickedLink).remove();

		if (toggleState == 0) { jQuery('p.toggle_link').eq(clickedLink).prepend(toggleLinkExpand); }
		else { jQuery('p.toggle_link').eq(clickedLink).prepend(toggleLinkCollapse); }
		
	};

	// COLLAPSE INDIVIDUAL ELEMENTS - ELEMENT STATES ARE REPRESENTED BY PAIRS (STATE,ELEMENTNUMBER,STATE,ELEMENTNUMBER...)
	function collapseIndividualElements(elementString) {
		// MAKE TEXT BEHAVE LIKE A LINK
		jQuery('p.toggle_link').css("cursor","pointer");
		jQuery('p.toggle_link').hover(
      			function () { jQuery(this).addClass("toggle_link_hover"); }, 
      			function () { jQuery(this).removeClass("toggle_link_hover"); }
    		);

		// CLOSE ALL ELEMENTS AND ADD EXPAND IMAGES
		jQuery('div.toggle_elements_container .toggle_element').each(function(i) { jQuery(this).hide(); addLink(i,0); });

		// ITERATE THROUGH ELEMENT PAIRS
		var elementArray = new Array();
		elementArray = elementString.split(',');
  		for(var i = 0; i < elementArray.length; i++) {
			if(elementArray[i] != 0) { jQuery('div.toggle_elements_container .toggle_element').eq(elementArray[i + 1]).show(); addLink(elementArray[i + 1],1); } else { addLink(elementArray[i + 1],0); };
			i++;
  		}
	};

	// SAVE MENU STATE IN SESSION VARS
	function saveMenuState(elementNumber,elementState) {
		var keySeperator = "__";
		jQuery.get("/includes/animation/toggle_elements/menu_state_save.aspx?toggleElement" + toggleElementSection + keySeperator + elementNumber + "=" + elementState);
	};


