	
	FV.studioStepOne = new Object();
				
	FV.InfoSuffix = 'Info';
	FV.ColorSuffix = 'Color';
				
	FV.studioStepOne.Name = function() {	
	
		var sNameBase = 'Name';
		var sInfoName = sNameBase+FV.InfoSuffix;
		var sInfoColor = sNameBase+FV.ColorSuffix;
	
		if(!FV.Validation.Required($(sNameBase), 'Studio name is required', sInfoName, sInfoColor)) return false;
		if(!FV.Validation.HasLengthBetween($(sNameBase), 1, 51, 'Studio name must be between 2 and 50 characters lon', sInfoName, sInfoColor)) return false;
		
		FV.Restore(sInfoName,sInfoColor);
		return true;
	}
	
	FV.studioStepOne.ContactName = function() {
	
		var sNameBase = 'ContactName';
		var sInfoName = sNameBase+FV.InfoSuffix;
		var sInfoColor = sNameBase+FV.ColorSuffix;
	
		if(!FV.Validation.Required($(sNameBase), 'Contact name is required', sInfoName, sInfoColor)) return false;
		if(!FV.Validation.HasLengthBetween($(sNameBase), 1, 51, 'Contact name must be between 2 and 50 characters long', sInfoName, sInfoColor)) return false;
		if(!FV.Validation.MatchRegexp($(sNameBase), /^[\sa-z'_`-]*$/i , 'Contact name can not contain special characters', sInfoName, sInfoColor)) return false;
		FV.Restore(sInfoName,sInfoColor);
		return true;
	}
	
	FV.studioStepOne.Position = function() {
		var sNameBase = 'Position';
		var sInfoName = sNameBase+FV.InfoSuffix;
		var sInfoColor = sNameBase+FV.ColorSuffix;
	
		if(!FV.Validation.Required($(sNameBase), 'Position required', sInfoName, sInfoColor)) return false;
		if(!FV.Validation.HasLengthBetween($(sNameBase), 1, 51, 'Position must be between 2 and 50 characters long', sInfoName, sInfoColor)) return false;
		if(!FV.Validation.MatchRegexp($(sNameBase), /^[\sa-z'_`-]*$/i , 'Position can not contain special characters', sInfoName, sInfoColor)) return false;
		FV.Restore(sInfoName,sInfoColor);
		return true;
	}
	
	FV.studioStepOne.Email = function() {
	
		var sNameBase = 'Email';
		var sInfoName = sNameBase+FV.InfoSuffix;
		var sInfoColor = sNameBase+FV.ColorSuffix;
		
		if(!FV.Validation.Required($(sNameBase), 'Email is required', sInfoName, sInfoColor)) return false;
		if(!FV.Validation.Email($(sNameBase), 'Email format not supported', sInfoName, sInfoColor)) return false;
		FV.Restore(sInfoName,sInfoColor);
		return true;
	}
	
	FV.studioStepOne.PhoneNumber = function() {
		
		var sNameBase = 'PhoneNumber';
		var sInfoName = sNameBase+FV.InfoSuffix;
		var sInfoColor = sNameBase+FV.ColorSuffix;
		
		if(!FV.Validation.Required($(sNameBase), 'Phone number is required', sInfoName, sInfoColor)) return false;
		if(!FV.Validation.MatchRegexp($(sNameBase), /^[\s0-9-+]*$/i , 'Phone number can not contain special characters', sInfoName, sInfoColor)) return false;
		if(!FV.Validation.HasLengthBetween($(sNameBase), 8, 17, 'Phone number must be between 9 and 16 digits long', sInfoName, sInfoColor)) return false;
		
		FV.Restore(sInfoName,sInfoColor);
		return true;
	}
	
	FV.studioStepOne.AddressLineOne = function() {
		
		var sNameBase = 'AddressLine1';
		var sInfoName = sNameBase+FV.InfoSuffix;
		var sInfoColor = sNameBase+FV.ColorSuffix;
		
		if(!FV.Validation.Required($(sNameBase), 'Address is required', sInfoName, sInfoColor)) return false;
		if(!FV.Validation.HasLengthBetween($(sNameBase), 2, 75, 'Address must be between 2 and 75 characters long', sInfoName, sInfoColor)) return false;
		FV.Restore(sInfoName,sInfoColor);
		return true;	
	}
	
	FV.studioStepOne.AddressLineTwo = function() {
		
		var sNameBase = 'AddressLine2';
		var sInfoName = sNameBase+FV.InfoSuffix;
		var sInfoColor = sNameBase+FV.ColorSuffix;
				
		if(!FV.Validation.IsShorterThan($(sNameBase),76, 'Address must be less than 75 characters', sInfoName, sInfoColor)) return false;
		FV.Restore(sInfoName,sInfoColor);
		return true;	
	}
	
	FV.studioStepOne.AddressLineThree = function() {
		
		var sNameBase = 'AddressLine3';
		var sInfoName = sNameBase+FV.InfoSuffix;
		var sInfoColor = sNameBase+FV.ColorSuffix;
				
		if(!FV.Validation.IsShorterThan($(sNameBase),76, 'Address must be less than 75 characters', sInfoName, sInfoColor)) return false;
		FV.Restore(sInfoName,sInfoColor);
		return true;	
	}
	
	FV.studioStepOne.City = function() {
		
		var sNameBase = 'City';
		var sInfoName = sNameBase+FV.InfoSuffix;
		var sInfoColor = sNameBase+FV.ColorSuffix;
		
		if(!FV.Validation.IsShorterThan($(sNameBase), 21, 'City must be less than 20 characters', sInfoName, sInfoColor)) return false;
		FV.Restore(sInfoName,sInfoColor);
		return true;
	}
	
	FV.studioStepOne.County = function() {
		
		var sNameBase = 'County';
		var sInfoName = sNameBase+FV.InfoSuffix;
		var sInfoColor = sNameBase+FV.ColorSuffix;
		
		if(!FV.Validation.IsShorterThan($(sNameBase),51, 'County must be less than 50 characters', sInfoName, sInfoColor)) return false;
		FV.Restore(sInfoName,sInfoColor);
		return true;
	}
	
	FV.studioStepOne.PostCode = function() {
		
		var sNameBase = 'PostCode';
		var sInfoName = sNameBase+FV.InfoSuffix;
		var sInfoColor = sNameBase+FV.ColorSuffix;
		
		if(!FV.Validation.Required($(sNameBase), 'ZIP/Postcode is required', sInfoName, sInfoColor)) return false;
		if(!FV.Validation.HasLengthBetween($(sNameBase), 2, 12, 'ZIP/Postcode must be between 2 and 12 characters long', sInfoName, sInfoColor)) return false;
		FV.Restore(sInfoName,sInfoColor);
		return true;
	}
	
	FV.studioStepOne.Country = function() {
		return true;
	}
	
	FV.studioStepOne.Submit = function() {

		var iErrors = 0;
	
		if(!FV.studioStepOne.Name()) iErrors++;
		if(!FV.studioStepOne.ContactName()) iErrors++;
		if(!FV.studioStepOne.Position()) iErrors++;
		if(!FV.studioStepOne.Email()) iErrors++;
		if(!FV.studioStepOne.PhoneNumber()) iErrors++;
		if(!FV.studioStepOne.AddressLineTwo()) iErrors++;
		if(!FV.studioStepOne.AddressLineThree()) iErrors++;
		if(!FV.studioStepOne.AddressLineOne()) iErrors++;
		if(!FV.studioStepOne.City()) iErrors++;
		if(!FV.studioStepOne.County()) iErrors++;
		if(!FV.studioStepOne.PostCode()) iErrors++;
		if(!FV.studioStepOne.Country()) iErrors++;
		
		if(!iErrors) return true;
			
		if(iErrors > 1) {
			$('studioStepOne_error').show();
		} else {
			$('studioStepOne_error').show();
		}
		
		return false;
	}
	