document.observe('dom:loaded',function () {
	$$('form').invoke('observe','submit',formValidate);						
	$$('a').each(function(el) { if (el.href.match(/\?trial$/)) el.observe('click',showForm); });
	$('closeForm').observe('click',hideForm);
	
	if ($('name'))
		$('name').activate();
});

Event.observe(window,'load',function () {
	laptopScreens = $$('.screen');
    laptopScreenIndex = -1;
    nextScreen.delay(2);
});

function showForm (ev) {
	Event.stop(ev);
	if (!$('form').visible()) 
		new Effect.Parallel([
				new Effect.Appear($('formOverlay'),{to:0.8}),
				new Effect.Appear($('form'),{afterFinish:formFocus})
				]);
	//var top = $('form').cumulativeOffset().top;
	new Effect.ScrollTo('master');
}
function formFocus () {
	$('name').activate();
}

function hideForm (ev) {
	Event.stop(ev);
	
	if ($('form').visible()) 
		new Effect.Parallel([
				new Effect.Fade($('formOverlay'),{from:0.8}),
				new Effect.Fade($('form'))
				]);
}


function nextScreen () {
	if (laptopScreenIndex!=-1) {
    	new Effect.Fade(laptopScreens[laptopScreenIndex],{duration:2});
    }
    laptopScreenIndex++;
    if (!laptopScreens[laptopScreenIndex]) {
    	laptopScreenIndex=-1;
    } else {
    	new Effect.Appear(laptopScreens[laptopScreenIndex],{duration:2});
    }
    
    nextScreen.delay(4);
}

function formValidate (ev) {
	if ($F('name')=='') return validateError(ev,'name','your name');
	if (!$F('phone').match(/[0-9 +-]{5,}/)) return validateError(ev,'phone','your telephone number');
	if (!$F('email').match(/.+?@.+?\..+/)) return validateError(ev,'email','a valid email address');
}

function validateError (ev,el,str) {
	Event.stop(ev);
	alert('Please enter '+str);
	$(el).activate();
	return false;
}