var currentform = 1;
var maxform = 1;
var TITLE_DEFAULT = "#ADA5A2";
var TITLE_ACTIVE = "#860000";
var elementopen = 0;

function initForm()
{
	setForm(1);
	document.getElementById("fDifferentPostalAddress").checked = false;
}

function submitForm()
{
	if (validateForm(3))
		document[cwformname].submit();
}

function gotoForm(nr)
{
	if(nr <= maxform && nr != currentform)
	{
		currentform = nr;
		setForm(nr);
	}
}

function nextForm(nr)
{
	if (maxform < nr)
	{
		maxform = nr;
	}
	if (validateForm(currentform))
	{
		currentform = nr;
		setForm(nr);
	}
}

function validateForm(nr)
{
	var passed = true;
	var i = 0;
	var j = 0;
	var drdFldMnd = new Array("fSalutation","fProfession","fYearOfBirth","fResidentialCountry");
	var drdNamMnd = new Array("salutation","profession","year of birth","country");
	var drdFldOpt = new Array("fPostalCountry");
	var drdNamOpt = new Array("postal country");
	var radFldMnd = new Array("fGender","fMedia","fTravel");
	var radNamMnd = new Array("a gender","if you are available to do international media","if you are prepared to travel internationally");
	var txtFldMnd = new Array("fFirstName","fLastName","fResidentialAddress1","fResidentialCity","fResidentialZip","fEmailAddress","fPhone");
	var txtNamMnd = new Array("first name","last name","street","city","zip code","valid e-mail address","phone number");
	var txtFldOpt = new Array("fPostalAddress1","fPostalCity","fPostalZip");
	var txtNamOpt = new Array("postal street","postal city","postal zip code");

	if(document.getElementById("fDifferentPostalAddress").checked == true)
	{
		txtFldMnd = txtFldMnd.concat(txtFldOpt);
		txtNamMnd = txtNamMnd.concat(txtNamOpt);
		drdFldMnd = drdFldMnd.concat(drdFldOpt);
		drdNamMnd = drdNamMnd.concat(drdNamOpt);
	}

	// Form with story field
	if(nr == 1)
	{
		if(passed && document.getElementById("fStory").value.length < 1)
		{
			alert("Please enter a story!");
			document.getElementById("fStory").focus();
			passed = false;
		}
	}
	// Form with observed changes (no validation needed)
	else if (nr == 2)
	{
	}
	// Form with personal details
	else if (nr == 3)
	{
		if(passed)
		{
			// Check all text fields
			for(i = 0; i<txtFldMnd.length; i++)
			{
				// exception for checking e-mail address; other text fields are tested on string length only
				if(txtFldMnd[i] == "fEmailAddress") passed = testEmail(document.getElementById(txtFldMnd[i]).value);
				else passed = testString(document.getElementById(txtFldMnd[i]).value);
				if(!passed)
				{
					alert("Please enter a " + txtNamMnd[i] + "!");
					document.getElementById(txtFldMnd[i]).focus();
					passed = false;
					break;
				}
			}
		}
		if(passed)
		{
			// Check all dropdown fields
			for(i = 0; i<drdFldMnd.length; i++)
			{
				if(document.getElementById(drdFldMnd[i]).selectedIndex == 0)
				{
					alert("Please choose a " + drdNamMnd[i] + "!");
					document.getElementById(drdFldMnd[i]).focus();
					passed = false;
					break;
				}
			}
		}
		if(passed)
		{
			// Check all radio buttons
			for(i = 0; i<radFldMnd.length; i++)
			{
				current = document[cwformname][radFldMnd[i]]; 
				passed = false;
				// Loop through radio buttons with same name
				for(j = 0; j<current.length; j++)
				{
					if(current[j].checked == true)
					{
						passed = true;
						break;
					}
				}
				if(!passed)
				{
					alert("Please choose " + radNamMnd[i] + "!");
					document.getElementById(radFldMnd[i]).focus();
					break;
				}
			}
		}
	}
	
	return passed;
}

function setForm(nr)
{
	for(var i=1; i<=3; i++)
	{
		// set current title as active, others inactive
		if(i == nr) document.getElementById("title" + i).style.color = TITLE_ACTIVE;
		else document.getElementById("title" + i).style.color = TITLE_DEFAULT;
		// show current form, hide others
		if(i == nr) document.getElementById("form" + i).style.display = "block";
		else document.getElementById("form" + i).style.display = "none";
	}
}

function swapPostalAddress(element)
{
	if(element.checked)
		document.getElementById("postalAddress").style.display  = "block";
	else
		document.getElementById("postalAddress").style.display  = "none";
}
