document.observe('dom:loaded', function() 
{								
	centerSiShell();
	
	$('siForm').observe('submit', validate);
	$('siClose').observe('click', closeSiShell);
	
	Event.observe(window, 'resize', centerSiShell);
	Event.observe(window, 'scroll', centerSiShell);							
	
	if ($('siOpen')) {
		$('siOpen').observe('click', openSiShell);
	};
});

function validate(e) 
{
	var error     = false;
	var message   = $('siMessage');
	var firstName = $('siFirstName').value;
	var lastName  = $('siLastName').value;
	var email     = $('siEmail').value;
	var state     = $('siState').value;
	var country   = $('siCountry').value;
	var crm       = $('siCrm').value;
					
	if (firstName == '') {
		error = true;
		$($('siFirstName').parentNode).addClassName('backRed');
	} else {
		$($('siFirstName').parentNode).removeClassName('backRed');
	};
	
	if (lastName == '') {
		error = true;
		$($('siLastName').parentNode).addClassName('backRed');
	} else {
		$($('siLastName').parentNode).removeClassName('backRed');
	};
	
	if (state == '') {
		error = true;
		$($('siState').parentNode).addClassName('backRed');
	} else {
		$($('siState').parentNode).removeClassName('backRed');
	};
	
	if (country == '') {
		error = true;
		$($('siCountry').parentNode).addClassName('backRed');
	} else {
		$($('siCountry').parentNode).removeClassName('backRed');
	};
	
	if (isEmailAddress(email) == false) {
		error = true;
		$($('siEmail').parentNode).addClassName('backRed');
	} else {
		$($('siEmail').parentNode).removeClassName('backRed');
	};
	
	if (crm == '') {
		error = true;
		$($('siCrm').parentNode).addClassName('backRed');
	} else {
		$($('siCrm').parentNode).removeClassName('backRed');
	};
	
	if (error) {
		e.stop();
		if (message.visible() == false) {
			message.blindDown({duration: 0.5});
		};
		message.firstDescendant().update('Please fill out all fields in red.');
	} else {
		var postHash = $('siForm').serialize();
		$('siSubmit').value = 'Sending...';
		var url = $('siForm').action;
		
		// This is a silent secondary call to email Jaduka
		var jadukaCall = new Ajax.Request('/services/forward', {
			method: 'post',
			parameters: postHash			
		});				
	};
};			

function isEmailAddress(string) 
{
	var addressPattern = /^%?\w+%?((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
	return addressPattern.test(string);
};

function openSiShell(e)
{
	e.stop();
	$('siShell').appear({duration: 0.5, afterFinish: function() { 
		$('siFirstName').focus(); 
	}});	
};

function closeSiShell()
{
	$('siShell').fade({duration: 0.5, afterFinish: function() {
		$('siForm').reset();
		$('siSubmit').value = 'Submit to StrikeIron';		
	}});
};

function centerSiShell() 
{
	var wd = document.viewport.getDimensions();
	var wo = document.viewport.getScrollOffsets();
	var cd = $('siShell').getDimensions();				
	var left = 0;
	var top  = 0;				
	
	if (wd.width < cd.width) {
		left = '8px';
	} else {
		left = ((wd.width - cd.width) / 2 + wo.left) + 'px';
	};
	
	if (wd.height < cd.height) {
		top = '8px';
	} else {
		top = ((wd.height - cd.height) / 2 + wo.top) + 'px';
	};
									
	$('siShell').setStyle({
		left: left,
		top: top});
};