/* ------------------------------------
- initiate
-------------------------------------*/

function init(){

	// create buttons
	$$('.btn').each(function(e){
		addSpan(e, '');
	})	
	
	// add corners to sidebar
	if($$('.threeCols .wide')[0]){
		addSpan($$('.threeCols .wide')[0], 'topRight');
		addSpan($$('.threeCols .wide')[0], 'bottomRight');
	}
	
	if($$('#homeContent .wide')[0]){
		addSpan($$('.wide')[0], 'topRight');
		addSpan($$('.wide')[0], 'bottomRight');
	}
	
	// set form focus class
	if(Prototype.Browser.IE){
		$$('.form input, .form textarea, #srch_fld').invoke('observe', 'focus', setFocusClass)
		$$('.form input, .form textarea, #srch_fld').invoke('observe', 'blur', setFocusClass)
	}
	// find form
	if($('id_gender_0')){
	$	('id_gender_0').up('ul').addClassName('horizontal');
		$('id_gender_1').up('li').addClassName('secondOption');
	}
	
	$('srch_fld').observe('focus', selectField)
	
	// make the dropdown
	$$('.dropButton').invoke('observe', 'click', dropDown);
	
	// rollovers
	$$('.rollover').invoke('observe', 'mouseover', showHoverImg);
	$$('.rollover').invoke('observe', 'mouseout', resetImg);
	
	// faq
	$$('.faqQuestion').invoke('observe', 'click', toggleFaqQuestion)
	
	
	// all things that need a hide()
	$$('.dropList', '.faqAnswer').invoke('hide');
	
	if($('faqList'))
		toggleFaqQuestion();
	
	
	// Safari css fix
	if($('homeContent')){
		if(navigator.userAgent.include(' AppleWebKit/')){
			$('visual').setStyle({
				position: 'absolute',
				right: '0',
				top: '-162px'
			});
		}	
	}
	
	$$('.new_window').each(function(e){
		fixNewWindow(e);
	});
	
	// Medical question list toggle
	if($$('.showList').length!=0){
		$$('#fullList').invoke('hide')
		$$('.showFullList').invoke('observe', 'click', showFullList);
		$$('.showFeaturedList').invoke('observe', 'click', showFeaturedList);
	}
}

/* ------------------------------------
- set the focus class
-------------------------------------*/

function setFocusClass(evt){
	if(evt.target.hasClassName){
		if(evt.target.hasClassName('focus'))
			evt.target.removeClassName('focus')
		else
			evt.target.addClassName('focus')
	}
}

function clearField(evt){
	$(evt.target).value = '';
}

function selectField(evt){
	$(evt.target).select();
}

/* ------------------------------------
- fix external links
-------------------------------------*/

function fixNewWindow(e){
	e.setAttribute('target', 'blank');
}


/* ------------------------------------
- add spans to...whatever
-------------------------------------*/

function addSpan(el, className){
	span = document.createElement('span');
	$(span).addClassName(className);
	span.appendChild(document.createTextNode(""))
	el.appendChild(span);
}

/* ------------------------------------
- make the dropdown
-------------------------------------*/

function dropDown(evt){
	evt.stop();
	
	$$('dropList').invoke('hide')
	
	// if the link was clicked
	if(evt.target.next())
		var drop = evt.target.next();
	// or if the span in the link was clicked
	else
		var drop = evt.target.up().next();
	if(drop.hasClassName('dropList'))
		if(drop.style.display == 'none')
			new Effect.BlindDown($(drop), { duration: 0.3})
		else
			new Effect.BlindUp($(drop), { duration: 0.3})
}


/* ------------------------------------
- swap images
-------------------------------------*/

function showHoverImg(evt){
	target = evt.element();
	if(evt.element().hasAttribute('href'))
		target = evt.element().down();
	if(!target.up().hasClassName('active')){
		var src = target.src;
		if(src){
			var newSrc = src.substr(0, src.length-4) + '_hover'+ src.substr(src.length-4, src.length);
			target.src = newSrc;
			target.rel = src;
		}
	}

}

function resetImg(evt){
	target = evt.element();
	if(evt.element().hasAttribute('href'))
		target = evt.target.down();
	if(target.rel)
		target.src = target.rel;
}

/* ------------------------------------
- make the dropdown
-------------------------------------*/

function toggleFaqQuestion(evt){
	
	if(!evt){
		if($(document.location.href.split('#')[1])){
			var evt = {};
			evt.target = $(document.location.href.split('#')[1]).up();
		}
	}
	if(evt){
		// Used to be:
		// var answer = Event.element(evt).next();
		// But IE does not work with Event.element(evt)
		// evt.target seems to work always...
		var answer = evt.target.next();
	}
	
	$$('.faqQuestion').each(function(e){
		if(answer){
			if(e != answer.previous()){
				e.removeClassName('active');
				e.next().hide();
			}
		}
	});
	
	
	
	if(answer){
		if(answer.previous().hasClassName('active')){
			new Effect.Fade($(answer), { duration: 0.3});
			$(evt.target).removeClassName('active');
		}else{
			new Effect.Appear($(answer), { duration: 0.3});
			$(evt.target).addClassName('active');
		}
	}

}
function showFullList(evt){
	Event.stop(evt)
	$$('#featuredList').invoke('hide');
	$$('#fullList').invoke('toggle');
}
function showFeaturedList(evt){
	Event.stop(evt)
	$$('#fullList').invoke('hide');
	$$('#featuredList').invoke('toggle');
}
/* ------------------------------------
- dom:reloaded
-------------------------------------*/

document.observe('dom:loaded', init);
