var prep = function() {
	// form feedback fx and junk
	$('ohs-nos').store('fx', new Fx.Morph($('ohs-nos'), {
		transition: Fx.Transitions.Sine.easeOut,
		duration: 2121
	}));
	$('oh-yeah').store('fx', new Fx.Morph($('oh-yeah'), {
		transition: Fx.Transitions.Sine.easeOut,
		duration: 2121
	}));
	
	// randomize error messages
	var errseen = $random(0, $$('#ohs-nos strong ins').length - 1);
	$('ohs-nos').store('errseen', errseen);
};

var listen = function() {
	// form submission
	$$('a.form-button')[0].addEvent('click', function(e) {
		frak(e);
		var form = $$('ol')[0].loading();
		new Request({
			url: '../_req/contact.php',
			method: 'post',
			data: {
				action: 'contact',
				name: $('inp-name').get('value'),
				email: $('inp-email').get('value'),
				company: $('inp-company').get('value'),
				phone: $('inp-phone').get('value'),
				msg: $$('textarea')[0].get('value')
			},
			onComplete: function(r) {
				try {
					r = JSON.decode(r);
					if(r.error) {
						form.loaded();
						AhShit(r.error);
						return;
					}
					form.loaded();
					AhYeah('Thank you for contacting us! We will get back to you shortly.');
				}
				catch(err) {
					form.loaded();
					AhShit('An error occurred while submitting the form', err);
				}
			}
		}).send();
	});
	
	// social media icon roll-overs
	$$('#contact-extended  ul li a').addEvent('mouseenter', function(e) {
		$$('#contact-extended ins')[0]
			.set('text', Event(e)
				.target
				.get('text'))
			.removeClass('noshow');
	});
	$$('#contact-extended ul')[0].addEvent('mouseleave', function() {
		$$('#contact-extended ins')[0].addClass('noshow');
	});
};

// where this shit explodes
var AhShit = function(shit, err) {
	$$('#ohs-nos span')[0].set('text', shit);
	var errseen = $('ohs-nos').retrieve('errseen');
	errseen = ++errseen >= $$('#ohs-nos strong ins').length ? 0 : errseen;
	$('ohs-nos').store('errseen', errseen);
	$$('#ohs-nos strong ins')
		.addClass('noshow')[errseen]
		.removeClass('noshow');
	$('oh-yeah').addClass('noshow');
	$('ohs-nos')
		.setStyle('color', '#f00')
		.removeClass('noshow')
		.retrieve('fx')
		.start({
			color: ['#f00', '#111']
		});
	if(arguments.length > 1)
		try {
			console.warn(err);
		} catch(err) { }
};

// good things
var AhYeah = function(yeah) {
	$$('#oh-yeah span')[0].set('text', yeah);
	// get rid of errors and stop any further form submissions
	$('ohs-nos').addClass('noshow');
	$$('input', 'textarea').set('disabled', true);
	$$('a.form-button')[0]
		.removeEvents('click')
		.addEvent('click', function(e) {
			frak(e);
		})
		.setStyles({
			'opacity': .36,
			'cursor': 'default'
		})
		.blur();
	// trick to stop a:hover
	new Element('span')
		.setStyles($$('a.form-button')[0].getCoordinates())
		.setStyles({
			position: 'absolute',
			backgroundColor: 'transparent',
			zIndex: 5,
			padding: '6px',
			margin: '-6px 0 0 -6px'
		})
		.inject(document.body);
	// and success
	$('oh-yeah')
		.setStyle('color', '#0f0')
		.removeClass('noshow')
		.retrieve('fx')
		.start({
			color: ['#0f0', '#111']
		});
};

window.addEvent('domready', function() {
	prep();
	listen();
});
