window.addEvent('domready', function() {

	/************************************
		ADD ICON TO ALL EXTERNAL LINKS
	************************************/
	var links = $$('div#body a');
	var domain = "dev.servicelearningtexas.org|servicelearningtexas:8888|www.servicelearningtexas.org";
	var ishttp = /(http(.)*:\/\/)/;
	$$("a[href$=.pdf]").addClass('doc-pdf');
	$$("a[href$=.doc]").addClass('doc-word');
	$$("a[href$=.docx]").addClass('doc-word');
	$$("a[href$=.xls]").addClass('doc-excel');
	$$("a[href$=.zip]").addClass('doc-zip');
	$$("a[href$="+domain+"]").addClass('doc-zip');
	links.each(function(a, i){
		if ((a.href != null) && (a.href.match(domain) == null) && (a.href.match(ishttp)!=null)) {
			a.setProperty('target','_blank');
			a.addClass('externallink');
		}
	});


	/************************************
		TEMPORARY FUNCTION TO SHOW GRID
	************************************/
	$(document).addEvent('keydown', function(event){
//		if (event.key == '`' || event.key == 'g')
//			$('grid').toggleClass('show');
	});


	/************************************
		FIRST CHECK FOR CSS SUPPORT
	************************************/
	function checkCSS()
	{
		var newDiv = document.createElement('div');
		document.body.appendChild(newDiv);
		newDiv.style.visibility = 'hidden';
		newDiv.style.width = '20px';
		newDiv.style.padding = '10px';
		var divWidth = newDiv.offsetWidth;
		if (divWidth != 40) {
			document.body.removeChild(newDiv);
			return false;
		}
		else {
			document.body.removeChild(newDiv);
			return true;
		}
	}


	/************************************
		REPLACE TEXT
	************************************/
	if (checkCSS()) {
		Cufon.replace('div#mission p, blockquote, div#content h1', { fontFamily: 'InterstateLight' });
		Cufon.replace('div#slideshow ol li div.caption div.headline', { fontFamily: 'Interstate' });
		Cufon.replace('body#home div#header h1', { fontFamily: 'InterstateLight' });
	}


	/************************************
		GLOBAL SMOOTHSCROLL
	************************************/
	new SmoothScroll({ duration: 700, transition:Fx.Transitions.Cubic.easeInOut }, window);


	/************************************
		SEARCH FIELD
	************************************/
	if ($('searchbox')) {
		$('searchbox').addEvent('focus', function(event){
			if ($('searchbox').get('value') == 'Search') $('searchbox').set('value', '');
			$('searchbox').addClass('focused');
		});
		$('searchbox').addEvent('blur', function(event){
			if ($('searchbox').get('value') == '') $('searchbox').set('value', 'Search');
			if ($('searchbox').get('value') == 'Search') $('searchbox').removeClass('focused');
		});
	}


	/************************************
		SEARCH FIELD
	************************************/
	var navigationdelay = [];
	var navprevious;
	$$('ul#main-navigation li').each(function(li, i){
		li.addEvent('mouseenter', function(event){
			li.addClass('hovered');
		});
		li.addEvent('mouseleave', function(event){
			li.removeClass('hovered');
		});
	});


	/************************************
		METADATA SUCCESS STORIES NAV
	************************************/
	if ($('successstory-paging')) {
		var storyfade;
		var activestory = 0;
		var successstories = $$('ol#successstories li');
		var successstorycount = successstories.length;
		$('successstory-paging').addClass('enabled');
		function switchstory(li, direction, inout)
		{
			if (storyfade) storyfade.cancel();
			storyfade = new Fx.Morph(li, {
				duration: 300,
				transition:Fx.Transitions.Cubic.easeInOut,
				onStart: function(){
					if (inout == 'in') {
						li.removeClass('deactivated');
						storyfade.set({'opacity': 0});
					}
				},
				onComplete: function(){
					if (inout == 'out') {
						li.addClass('deactivated');
						if (direction == 'next')
							activestory = (activestory == (successstorycount - 1)) ? 0 : activestory + 1;
						else if (direction == 'prev')
							activestory = (activestory == 0) ? (successstorycount - 1) : activestory - 1;
						switchstory(successstories[activestory], direction, 'in');
					}
				}
			});
			if (inout == 'in')
				storyfade.start({ 'opacity': [0,1] });
			else if (inout == 'out')
				storyfade.start({ 'opacity': [1,0] });
		}
		successstories.each(function(li, i){
			if (i > 0) {
				li.addClass('deactivated');
			}
		});
		if ($('next-successstory')) {
			$('next-successstory').addEvent('click', function(event){
				switchstory(successstories[activestory], 'next', 'out');
			});
		}
		if ($('prev-successstory')) {
			$('prev-successstory').addEvent('click', function(event){
				switchstory(successstories[activestory], 'prev', 'out');
			});
		}
	}

	/************************************
		DISABLE FORM SUBMIT BUTTON
	************************************/
	var forms = $$('form');
	forms.each(function(form, i){
		form.addEvent('submit', function() {
			var submit = form.getElement('input[type=submit]');
			submit.set('value','One moment...');
			submit.setProperty('disabled','true');
			submit.setStyle('opacity', .6);
		});
	});

	/************************************
		DOCUMENT SIDEBAR TREE MENU
	************************************/
/*	var docaccordion = new Accordion($('metadata-subnav'), 'a.category', 'ol li ul', {
		opacity: false,
		display: -1,
		alwaysHide: true,
		transition:Fx.Transitions.Cubic.easeInOut,
		duration: 400,
		onActive: function(toggler, element){
			toggler.getParent().toggleClass('selected');
		},
		onBackground: function(toggler, element){
			toggler.getParent().removeClass('selected');
		}
	});*/
	if (window.ie6) var heightValue = '100%';
	else var heightValue = '';

	var togglerName = 'a.toggler_';
	var contentName = 'ul.content_';

	var counter = 1;	
	var toggler = $$(togglerName + counter);
	var content = $$(contentName + counter);

	while (toggler.length>0)
	{
		new Accordion (toggler, content, {
			opacity: false,
			display: -1,
			alwaysHide: true,
			transition:Fx.Transitions.Cubic.easeInOut,
			duration: 400,
			onComplete: function() {
				var element = $(this.elements[this.previous]);
				if (element && element.offsetHeight > 0) element.setStyle('height', heightValue);
			},
			onActive: function(toggler, content) {
				toggler.getParent().toggleClass('selected');
			},
			onBackground: function(toggler, content) {
				toggler.getParent().removeClass('selected');
			}
		});

		counter++;
		toggler = $$(togglerName + counter);
		content = $$(contentName + counter);
	}

});
