	document.documentElement.className += " js";
	
		
	(function() {
		
		var dom = glow.dom,
		$ = glow.dom.get,
		events = glow.events,
		anim = glow.anim;
		
		function getFullHeight(myNodeList) {
			var currentHeight = myNodeList[0].style.height;
			
			var fullHeight = myNodeList.css("visibility", "hidden").
					css("position", "absolute").
					css("height", "auto")[0].offsetHeight;
			
			myNodeList.css("visibility", "").
					css("position", "").
					css("height", currentHeight);
			
			return fullHeight;
		}
		
		function slideOpenContent(accordionContent) {
			accordionContent.parent().get(".accordionContent").each(function() {
				if (this.__isOpen) {
					slideCloseContent($(this));
				}
				var accordionTitle = $(this).prev();
				$(accordionTitle).removeClass("titleOpen");
				$(accordionTitle).addClass("titleClosed");
			})
			
			if (accordionContent[0].__anim) {
				accordionContent[0].__anim.stop();
			}
			var openAnim = accordionContent[0].__anim = anim.css(accordionContent, 0.5, {
				height: {to: getFullHeight(accordionContent)}
			}, {tween: glow.tweens.easeBoth()});
			
			accordionContent[0].__completeListener = events.addListener(openAnim, "complete", function() {
				accordionContent.css("height", "auto");
			});
			
			openAnim.start();
			
			accordionContent[0].__isOpen = true;
		}
		
		function slideCloseContent(accordionContent) {
			if (accordionContent[0].__anim) {
				accordionContent[0].__completeListener && (events.removeListener(accordionContent[0].__completeListener));
				accordionContent[0].__anim.stop();
			}
			accordionContent[0].__anim = anim.css(accordionContent, 0.5, {
				height: {to: 0}
			}, {tween: glow.tweens.easeBoth()}).start();
			accordionContent[0].__isOpen = false;
		}
		
		function accordionTitleClick() {
			var accordionContent = $(this).parent().next();
			var accordionTitle = $(this).parent();
			
			if (!accordionContent[0].__isOpen) {
				slideOpenContent(accordionContent);
				$(accordionTitle).removeClass("titleClosed");
				$(accordionTitle).addClass("titleOpen");
			} else {
				slideCloseContent(accordionContent);
				$(accordionTitle).removeClass("titleOpen");
				$(accordionTitle).addClass("titleClosed");
			}
			
			//prevent default
			return false;
		}
		
		function initAccordion(accordionNode) {
			
			//set the javascript state to open for any accordions which have a class of .startOpen on the content div
			$(accordionNode).get(".startOpen").each(function() { this.__isOpen = true; });
		
			$(accordionNode).get(" > .accordionTitle").each(function() {
				this.innerHTML = '<a href="#">' + this.innerHTML + '</a>';
				
				//add open/closed classes to the title and content areas
				var accordionContent = $(this).next();
				if(accordionContent[0].__isOpen){
					$(this).removeClass("titleClosed");
					$(this).addClass("titleOpen");
					accordionContent.removeClass("contentClosed");
					accordionContent.addClass("contentOpen");
				} else {
					$(this).removeClass("titleOpen");
					$(this).addClass("titleClosed");
					accordionContent.removeClass("contentOpen");
					accordionContent.addClass("contentClosed");
				}
			
			}).each(function() {
				events.addListener($(this).get("a"), "click", accordionTitleClick);
			});
		}
		
		glow.ready(function() {
			$(".accordion").each(function() {
				initAccordion(this);
			});
		});
		
	}());