function MM_findObj(n, d) { //v4.01
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

var formError = false;
function savePreregister() {
	new Ajax.Request('ajax.php?store',
	{
								parameters:	$('f_preregister').serialize(),
								method:		'post',
								onSuccess:	function(transport) {
												location.href = transport.responseText;
								}
	});
}

function closePreregister(clear) {
	if (clear)
		clearPreregister();

	new Ajax.Request('ajax.php?close',
	{
								method:		'get',
								onSuccess:	function(transport) {
												showPreregister(1);
								}
	});
}

function clearPreregister() {
	$('f_sex_f').checked = true;
	$('f_email').value = "";
	$('f_firstname').value = "";
	$('f_lastname').value = "";
	$('f_zipcode').value = "";
	$('f_country').options.selectedIndex = 0;
	$('f_age').value = "";
	$('f_promo_id').value = "";

	if (!formError)
		$('hint').show();
}

function showPreregister(step) {
	switch (step) {
		case 1:
			$('step_1').show();
			$('step_2').hide();
			$('step_3').hide();
			break;
		case 2:
			$('step_1').hide();
			$('step_2').show();
			$('step_3').hide();

			if (!formError)
				$('hint').show();

			$('f_email').focus();
			break;
		case 3:
			$('step_1').hide();
			$('step_2').hide();
			$('step_3').show();
			break;
	}
}

function showPreregisterError(code, data) {
	$('hint').hide();
	$('error_'+code).show();
	Object.keys(data).each(function(name, index) {
		markField($(name), true);
	});
}

function markField(field, mark) {
	if (mark)
		field.style.backgroundColor = "#FF3300";
	else
		field.style.backgroundColor = "#FFFFFF";
}

function submitPreregister() {
	$('error_incomplete').hide();
	$('error_email_in_use').hide();
	$('error_already_registered').hide();
	$('error_already_invited').hide();

	markField($('f_email'), false);
	markField($('f_firstname'), false);
	markField($('f_lastname'), false);
	markField($('f_zipcode'), false);
	markField($('f_age'), false);

	new Ajax.Request('ajax.php',
	{
				parameters:	$('f_preregister').serialize(),
				method:		'post',
				onSuccess:	function(transport) {
								var json = transport.responseText.evalJSON();
												if (json.code != null) {
													formError = true;
													showPreregisterError(json.code, json.data);
												} else {
													formError = false;
													showPreregister(3);
												}
								}
	});
}
