var lastJump = null;

function JumpTo(aObj, aParentId, aChildId)
{
	if (aObj.value == "")
	{
		if (aObj != lastJump || lastJump == null)
		{
			lastJump = aObj;
			return;
		}
		lastJump = aObj;
		try
		{
			var aChild =document.getElementById(aChildId).focus();
		}
		catch(e)
		{
			return;
		}
	}
	else
	{
		lastJump = aObj;
		try
		{
			var aParent = document.getElementById(aParentId);
			if (aObj.value.length == aObj.maxLength)
			{
				aParent.focus();
			}
		}
		catch(e)
		{
			return;
		}
	}
}

function isDigit( ch )
{
	if ( ch >= '0' && ch <= '9' )
		return true;
	return false;}

function isAlpha( ch )
{
	if ( ch >= 'a' && ch <= 'z' )
		return true;
	if ( ch >= 'A' && ch <= 'Z' )
		return true;
	return false;
}

function validatePostalCode( input1, input2 )
{
	var value = input1.value + input2.value.toUpperCase();
	var valid = true;

	if( input1.value.length != 4 || input2.value.length != 2 )
		valid = false;
	for( i = 0; i < 4 ; i++ )
		if( !isDigit( value.charAt( i ) ) )
			valid = false;
	for( j = 4; j < 6 ; j++ )
		if( !isAlpha( value.charAt( j ) ) )
			valid = false;
	if( !valid )
	{
		alert( "Sorry, uw invoer is geen geldige postcode. De postcode moet uit 4 cijfers en 2 letters bestaan." );
	}
	input2.value = input2.value.toUpperCase();
	return valid;
}

function validateAccessCode( input )
{
	var value = input.value;
	var valid = true;
	if( input.value.length != 4 )
		valid = false;
	for( i = 0; i < 4 ; i++ )
		if( !isDigit( value.charAt( i ) ) )
			valid = false;
	if( !valid )
	{
		alert( "Sorry, uw invoer is geen geldige toegangscode. De toegangscode moet uit 4 cijfers bestaan." );
	}
	input.value = value;
	return valid;
}

function validateUsage(input)
{
	var valid = true;
	var usage = input.value;
	var reg = new RegExp("^\\d+$","i");

  	if (!usage.match(reg))
	{
		valid = false;
		//alert ("Sorry, u heeft een ongeldige waarde voor de waterstand ingevoerd.");
	}
	// If length of usage value < 5, then add one or more leading zero's
	else
	{
		var needed_zeros = 5 - input.value.length;
		for (i = 0; i < needed_zeros; i++)
		{
			usage = "0" + usage;
		}
		input.value = usage;
	}
	return valid;
}

function validateDate(input_day, input_month, input_year)
{
	var valid = true;
	var day = input_day.value;
	var month = input_month.value;
	var year = input_year.value;

	var reg1 = new RegExp("^\\d{1,2}$");
	var reg2 = new RegExp("^\\d{1,2}$");
	var reg3 = new RegExp("^\\d{4}$");

  	if (!day.match(reg1) || !month.match(reg2) || !year.match(reg3))
  	{
		valid = false;
		//alert ("Sorry, u heeft een ongeldige datum ingevoerd");
	}
	else {
		if (day.length == 1)
		{
			day = "0" + day;
			input_day.value = day;
		}
		if (month.length == 1)
		{
			month = "0" + month;
			input_month.value = month;
		}
	}
	return valid;
}

function validateEmail(input_email)
{
	var valid = true;
	var email = input_email.value;
	var reg = new RegExp("^([a-zA-Z0-9._%+-=]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9]{2,})?$");

	if (!email.match(reg))
	{
		valid = false;
		//alert ("Sorry, u heeft een ongeldig emailadres ingevoerd");
	}
	return valid;
}

function validatePhone(input_phone)
{
	var valid = true;
	var phone = input_phone.value;
	var reg = new RegExp("^(0\\d{9})?$");

	if (!phone.match(reg))
	{
		valid = false;
		//alert ("Sorry, u heeft een ongeldig telefoonnummer ingevoerd.");
	}
	return valid;
}

function disableBirthDate(elem) {
	var DISABLED = ' disabled';
	var birthDateField =
		document.getElementById('invoiceAddress.birthDate');
	
	var disable = document.getElementById('customer-type-business').checked;
	birthDateField.disabled = disable;

	var className = birthDateField.className;
	var i = className.indexOf(DISABLED);

	if (disable) {
		if (i >= 0) return;
		birthDateField.className += DISABLED;
	} else {
		if (i == -1) return;
		birthDateField.className =
			className.slice(0, i) +
			className.slice(i + DISABLED.length);
	}
	
	requireBirthDate(elem);
}

function requireBirthDate(elem) {
	var REQUIRED = 'required';
	var birthDate =
		document.getElementById('birthDateRequired');
	var birthDateExtra =
		document.getElementById('birthDateRequiredExtra');

	var require = ! document.getElementById('customer-type-business').checked;

	var className = birthDate.className;
	var i = className.indexOf(REQUIRED);

	if (require) {
		if (i >= 0) return;
		birthDate.className += REQUIRED;
		birthDateExtra.style.display = 'inline';
	} else {
		if (i == -1) return;
		birthDate.className =
			className.slice(0, i) +
			className.slice(i + REQUIRED.length);
		birthDateExtra.style.display = 'none';
	}

}

function requiredBankAccount(elem) {
	var REQUIRED = 'required';
	var bankAccount =
		document.getElementById('bankRequired');
	var bankAccountExtra =
		document.getElementById('bankRequiredExtra');

	var j = document.getElementById('rbl_Verhuis_Step_7_BetalingVia').selectedValue;

	var className = bankAccount.className;
	var i = className.indexOf(REQUIRED);

	if (j<3) {
		if (i >= 0) return;
		bankAccount.className += REQUIRED;
		bankAccountExtra.style.display = 'inline';
	} else {
		if (i == -1) return;
		bankAccount.className =
			className.slice(0, i) +
			className.slice(i + REQUIRED.length);
		bankAccountExtra.style.display = 'none';
	}
}

