Event.observe(window, 'load', init, false);

function init() {
	EventSelectors.start(Rules);
}

Event.onDOMReady(function() {
	$('contactwrapper').style.display = 'none';
	$('contact').style.display = 'none';
	$$('.description').each(function(element) {element.style.display = 'none';});
	$('contactresults').style.display = 'none';
});

var Rules = {

	'#folio li a.pull:click': function(element, event) {
		var description = $(element).previousSibling;
		
		if(description.nodeName == '#text') {
			var description = description.previousSibling;
		}
			if(description.style.display == 'none') {
				element.addClassName('pullopen');
			}
			else { element.removeClassName('pullopen'); }
		Effect.toggle(description, 'blind', {duration: .5});
		
		Event.stop(event);
		element.onclick = function() { return false; }
	},
	'#opencontact:click': function(element, event) {
		Effect.BlindDown('contactwrapper', {duration: 1, queue: {position: 'front', scope: 'contactopen'}});
		new Effect.ScrollTo('contactwrapper', {duration: .5, offset: -150, queue: {position: 'end', scope: 'contactopen'}});
		
		Effect.Appear('contact', {duration: .7, queue: {position: 'end', scope: 'contactopen'}});
	
		Event.stop(event);
	},
	'#closecontact:click': function(element, event) {
		Effect.Fade('contact', {duration: .7});
		Effect.BlindUp('contactwrapper', {duration: 1});
	
		Event.stop(event);
	},
	'#because:change': function(element, event) {
		if (element.selectedIndex != '1' && $('hire').style.display != 'none') {
			Effect.SwitchOff('hire');
		}
		if (element.selectedIndex == '1' && $('hire').style.display != 'block') {
			Effect.Appear('hire');
		}
	},
	'#contact:submit': function(element, event) {
		Email.process();

		Event.stop(event);
	}
}


// Email Me

var	Email	=	{

	// the following preventDefault function is from the YUI Event Utility and is Copyright (c) 2006, Yahoo! Inc. All rights reserved.
	stop		:	function(ev)	{
					if (ev.preventDefault) {
					ev.preventDefault();
					} else {
						ev.returnValue = false;
					}
					},
	indicator	:	function()	 {
					if($('loading')) {$('loading').parentNode.removeChild($('loading'));}
	
					var indicator = document.createElement('img');
					indicator.src = 'images/loading.gif';
					indicator.id = 'loading';
					$('indicatorwrapper').appendChild(indicator);
					Effect.Appear('indicatorwrapper', {duration: .5});
					},
	// send the email and return results
	process		:	function(event)	{
					this.indicator();
					var url = 'process.php';
					var pars = 'name='+escape($F('name'))+'&'+'email='+escape($F('email'))+'&'+'because='+escape($F('because'))+'&'+'budget='+escape($F('budget'))+'&'+'timeline='+escape($F('timeline'))+'&'+'who='+escape($F('who'))+'&'+'message='+escape($F('message'));
					var target = 'contactresults';
					var myAjax = new Ajax.Updater(target, url, {method: 'post', parameters: pars, onComplete: this.complete});
					},
	
	//do the fade stuff after it's sent
	complete	:	function() {
						new Effect.ScrollTo('contactresults', {duration: .5, offset: -150, queue: {position: 'front', scope: 'results'}});
					//	Effect.Appear('contactresults',{duration:0.5, queue: {position: 'end', scope: 'results'}});
						$('contactresults').show();
						new Effect.Highlight('contactresults', {duration: 2, endcolor: '#FFFFBF', queue: {position: 'end', scope: 'results'}})
						Effect.Fade('indicatorwrapper');
					}
}

