function checkField(jQField)
{
	$(jQField).removeClass('notchecked');
	var dom = $('input,select', jQField);
	var valid = true;
	dom.each(function(){
		switch($(this).attr('name'))
		{
			// make sure an item is selected in a select box
			case 'Mortgage type':
			case 'Title':
			case 'Years at address':
			case 'Months at address':
			{
				if(this.value == '')
				{
					valid = false;
				}
				break;
			}
			// make sure there's a number > 6 chars
			case 'Mortgage amount':
			case 'Property value':
			{
				if(!$(this).attr('value').match(/[0-9,\.]{6}/))
				{
					valid = false;
				}
				break;
			}
			// telephone number
			case 'Number':
			case 'Work phone':
			case 'Home phone':
			case 'Mobile':
			{
				if(!$(this).attr('value').match(/^0.*[0-9,\.]{6}/))
				{
					valid = false;
				}
				break;
			}
			case 'Email':
			{
				if(!$(this).attr('value').match(/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/))
				{
					valid = false;
				}
				break;
			}
			// make sure that the field is filled in
			default:
			{
				if($(this).attr('value') == '')
				{
					valid = false;
				}
				break;
			}
		}
	});
	if(valid)
	{
		$(jQField).removeClass('invalid');
		$(jQField).addClass('valid');
	}
	else
	{
		$(jQField).removeClass('valid');
		$(jQField).addClass('invalid');
	}
	return valid;
}




function checkFieldset(jQFieldset)
{
	var doms = $('div.field', jQFieldset);
	var fieldsetvalid = true;
	doms.each(function(){
		var dom = $('input,select', this);
		var valid = checkField(this);
		if(!valid)
		{
			fieldsetvalid = false;
		}
	});
	if(!fieldsetvalid)
	{
		$(jQFieldset).addClass('notvalid');
		$(jQFieldset).removeClass('valid');
	}
	else
	{
		$(jQFieldset).addClass('valid');
		$(jQFieldset).removeClass('notvalid');
	}
	return fieldsetvalid;
}

function checkForm(autojump)
{
	var formvalid = true;
	var doms = $('form.shortform  fieldset');
	doms.each(function(){
		// hide subsequent fieldsets if the current one is invalid
		var valid = checkFieldset(this);
		if(!valid)
		{
			if(formvalid)
			{
				if(autojump)
				{
					toggleFieldset(this.id);
				}
			}
			formvalid = false;
		}
	});
	if(formvalid)
	{
		$('form.shortform input.submit').addClass('submitvalid');
		$('form.shortform input.submit').removeAttr('disabled');
	}
	else
	{
		$('form.shortform input.submit').removeClass('submitvalid');
		$('form.shortform input.submit').attr('disabled','disabled');
	}
}


function toggleFieldset(fieldsetID)
{
	var doms = $('form.shortform  fieldset');
	var next = false;
	doms.each(function(){
		if(this.id == fieldsetID)
		{
			next = true;
			$(this).addClass('visible');
			$(this).removeClass('hidden');
			$('a.backlink', this).hide();
		}
		else
		{
			$(this).addClass('hidden');
			$(this).removeClass('visible');
			if(next)
			{
				$('a.backlink', this).hide();
			}
			else
			{
				$('a.backlink', this).show();
			}
		}
	});
}
checkForm(true);

function capturePartial()
{
	// build the data to submit
	var doms = $('form.shortform input, form.shorform select');
	var data = new Object();
	doms.each(function(){
		if(($(this).attr('type') != 'radio' || ($(this).attr('type') == 'radio' && $(this).attr('checked') == true)) && $(this).attr('name') != 'submitted')
		{
			data[$(this).attr('name')] = $(this).attr('value');
		}
	});
	var url = '/submit.php?applicationID='+$('#applicationID').attr('value');
	var callback = function(data, textStatus)
	{
		$('#applicationID').attr('value', data);
	};
	$.post(url, data, callback, "text");
	setTimeout(capturePartial, 30000);
}
setTimeout(capturePartial, 45000);
