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

	// Set services accordion
	$$('.accordion').each(function(accordion) {
		accordion.getElements('h5').each(function(toggler) {
			toggler.addEvent('click', function(e) {
				var container 	= toggler.getParent();
				var content 	= container.getElement('.content');
				var mychain 	= new Chain();
				
				if (container.hasClass('active')) {
					mychain.chain(function () {
						content.dissolve();
					}.bind(this));
					mychain.chain(function () {
						container.removeClass('active');
					}.bind(this));							
					mychain.callChain();
					mychain.callChain.delay(500,mychain);
										
				} else {
					container.addClass('active');
					content.setStyle('display','none');
					content.reveal();
				}
			}.bind(this));
		});
	});
	
	// Add Get Started ajax event handler
	if ($('get-started-form')) {
		var start_form = $('get-started-form');
		
		start_form.set('send', {
			url:				'/debt/get_started/1',
			method:				'post',
			onRequest:			function() {
				//alert('sending');
				removeErrors();
				toggleLoader();
			},
			onException:		function() {
				toggleLoader();
				alert('We could not contact the server.');
			},
			onFailure:			function(xhr) {
				toggleLoader();
				alert('We could not contact the server.');
			},			
			onSuccess:			function (text, xml) {
				//alert(text);
				toggleLoader();
				
				response = JSON.decode(text);
				
				if (response.email) {
					showError('email');
				}
				if (response.name) {
					showError('name');
				}				
				if (response.agreement) {
					showError('agreement');
				}
				
				if (response.success == 'true') {
					window.location = '/debt/create';	
				}
				
			}
		});
		
		start_form.addEvent('submit', function(e) {
			e.stop();
			this.send();
		});
	}
	
	if ($('submit-debt-form')) {
		
		// Display Required where appropriate
		$$('label.required').each(function(label) {

			var element = new Element('span', {
				'text'		: 'REQUIRED',
				'class'		: 'required-text'
			}).inject(label);
		});	
		
		// Display error notices
		$$('fieldset .error').each(function(label) {
			var image = new Element('img', {
				'src'		: '/assets/images/template/form_error.png',
				'class'		: 'form-error',
				'width'		: '90',
				'height'	: '28'
			}).inject(label);			
		});
		
		// Add express post event handler
		$('express_post').addEvent('click', function(e) {
			tallyServices();
		});
		
		// Add services checkbox functions
		$$('.services input[type=checkbox]').each(function(checkbox) {
			var letters = ['letter_1','letter_2','letter_3'];
			
			if (letters.contains(checkbox.id)) {
				var save_10 = new Element('div', {
					'class'		: 'save_10'						  
				}).inject($(checkbox.id + '_email').getParent());
				
				checkbox.addEvent('click', function(e) {
					repriceEmailServices();
					tallyServices();
				});
			} else {
				checkbox.addEvent('click', function(e) {
					tallyServices();
				});				
			}
		}.bind(this));			
		
		repriceEmailServices();
		tallyServices();
	}
	
});

function showError(id) {
	var container = $(id + '-container');
	
	var image = new Element('img', {
		'src'		: '/assets/images/template/form_error.png',
		'class'		: 'form-error',
		'width'		: '90',
		'height'	: '28'
	}).inject(container);
}

function removeErrors() {
	$$('.form-error').each(function(element) {
		element.destroy();
	});
}

function toggleLoader() {
	$$('.ajax-loader').each(function(loader) {
		if (loader.hasClass('active')) {
			loader.removeClass('active');
		} else {
			loader.addClass('active');
		}
	});
}

function repriceEmailServices() {
	var letters = ['letter_1','letter_2','letter_3'];
	
	$$('.services p input[type=checkbox]').each(function(checkbox) {
		if (letters.contains(checkbox.id)) {
			//alert("checkbox " + checkbox.id +": " + (checkbox.checked ? "checked" : "not checked"));
			
			var email_checkbox 	= $(checkbox.id + '_email');
			var email_price		= $(checkbox.id + '_email_price');
			
			if (checkbox.checked == true) {
				email_checkbox.set('price','9.95');
				email_price.innerHTML = '$9.95';
				email_checkbox.getParent().getElement('.save_10').reveal();
			} else {
				email_checkbox.set('price','19.95');
				email_price.innerHTML = '$19.95';
				email_checkbox.getParent().getElement('.save_10').dissolve();
			}
		}
	}.bind(this));	
}

function tallyServices() {
	var letters = ['letter_1','letter_2','letter_3','final_demand'];
	
	$('total-price').set('text', '$0.00');
	
	$$('.services input[type=checkbox]').each(function(checkbox) {
		if (checkbox.checked == true) {
			var total 	= $('total-price').get('text').replace('$','') * 1;
			total 		+= checkbox.get('price') * 1;
			
			if (letters.contains(checkbox.id) && $('express_post').checked == true) {
				total 	+= 6.95;	
			}
			
			$('total-price').set('text', '$' + total.toFixed(2));
		}
	});
}

function getStarted() {
	var scroll = new Fx.Scroll(window).toElement('get-started');
	
	var image = new Element('img', {
		'src'		: '/assets/images/template/form-start.png',
		'class'		: 'form-error',
		'width'		: '90',
		'height'	: '28',
		'z-index'	: '200'
	}).inject('name-container');	
}
