songcentral.songWizard=Class.create
(
	s3core.wizard,
	{
		button_next: s3core.wizard.prototype.button_next.wrap
		(
			function(button_next)
			{
				this.valid=true;
				switch(this.config.pages[this.page.current].identify())
				{
					case 'fpage_1':
					{
						break;
					}
					case 'fpage_2':
					{
						var currentStatus=false;
						if(!Object.isUndefined(this.config.currentStatus)) currentStatus=this.config.currentStatus;
						if (!$('song_title').disabled && !$('song_title').readOnly)
						{
							if($F('song_title').empty()) this.setError('song_title','This is a required field.');
							else if($F('song_title').length > 40) this.setError('song_title','Exceeds Max. 40 chars.');
						}
						if (!$('song_subject').disabled && !$('song_subject').readOnly && $F('song_subject').empty())this.setError('song_subject','This is a required field.');
						if (!$('song_description').disabled && !$('song_description').readOnly && $F('song_description').empty())this.setError('song_description','This is a required field.');
						if ($F('genre_0')==0)this.setError('genre_0','This is a required field.');
						if (!$('version_length').disabled && !$('version_length').readOnly && $F('version_length').length)
						{
							if (/^\d+:\d+$/.test($F('version_length'))) $('version_length').value = '0:'+$F('version_length');
							else if (!/^\d+:\d+:\d+$/.test($F('version_length')))
							this.setError('version_length','Format must be either "min:sec" or "hr:min:sec" (eg 4:20 or 0:4:20).');
						}
						if (!$('version_lyrics').disabled && !$('version_lyrics').readOnly && $F('version_lyrics').empty())
						{
							if(currentStatus.version_haslyrics && currentStatus.showcase_type==2)
							{
								this.setError('version_lyrics','Lyrics content cannot be deleted whilst being showcased');
							}
						}
						break;
					}
					case 'fpage_3':
					{
						if ($F('v_isCopyrightOwner_0')+$F('v_isCopyrightOwner_1')==0) this.setError('v_isCopyrightOwner_1','This is a required field.');
						else if (!$F('v_isCopyrightOwner_1')) this.setError('v_isCopyrightOwner_1','You must be in control of copyright to submit songs to Song Central.');
						if ($F('v_isContributors_0')+$F('v_isContributors_1')==0) this.setError('v_isContributors_1','This is a required field.');
						if (!$F('v_isAccurate_1')) this.setError('v_isAccurate_1','This is a required field.');
						break;
					}
				}
				if (this.valid)
				{
					if (!this.isLastPage())
					{
						if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current+2);
					}
					button_next();
				}
				else
				{
					this.config.form.down('.error').next().focus();
				}
				return;
			}
		),
		button_back: s3core.wizard.prototype.button_back.wrap
		(
			function(button_back)
			{
				if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current);
				button_back();
				return;
			}
		),
		form_submit: s3core.wizard.prototype.form_submit.wrap
		(
			function(form_submit)
			{
				form_submit();
				return;
			}
		)
	}
);
songcentral.subscriptionWizard=Class.create
(
	s3core.wizard,
	{
		button_submit: s3core.wizard.prototype.button_submit.wrap
		(
			function(button_submit)
			{
				this.valid=true;
				switch(this.config.pages[this.page.current].identify())
				{
					case 'fPage_3':
					{
						if (!this.config.form.getSelected('scptnLvl_id').length) this.setError('scptnLvl_id_1','required field'); //PETER FIXED
						break;
					}
				}
				if (this.valid)
				{
					button_submit();
				}
				else
				{
					this.config.form.down('.error').next().focus();
				}
				return;
			}
		),
		button_back: s3core.wizard.prototype.button_back.wrap
		(
			function(button_back)
			{
				if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current);
				button_back();
				return;
			}
		),
		form_submit: s3core.wizard.prototype.form_submit.wrap
		(
			function(form_submit)
			{
				if (!this.config.form.getSelected('scptnLvl_id').length) 
				{
					this.setError('scptnLvl_id_1','required field');
					return false;
				}
				else return (form_submit());
			}
		)
	}
);
songcentral.composerWizard=Class.create
(
	s3core.wizard,
	{
		button_next: s3core.wizard.prototype.button_next.wrap
		(
			function(button_next)
			{
				this.valid=true;
				switch(this.config.pages[this.page.current].identify())
				{
					case 'fPage_1':
					{
						if (!$F(this.config.form['membership_agreed']))
						{
							this.setError(this.config.form['membership_agreed'],'You must agree to the Song Central membership terms and conditions before continuing.');
						}
						if (($F('isUnder18_0')+$F('isUnder18_1'))==0) this.setError('isUnder18_0','This is a required field.');//\"Are you under 18?\"
						break;
					}
					case 'fPage_2':
					{
						if (($F('cat_id_10_11')+$F('cat_id_10_12'))==0) this.setError('cat_id_10_11','\"Occupational Status\" is a required field.');
						break;
					}
				}
				if (this.valid)
				{
					if (!this.isLastPage())
					{
						if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current+2);
					}
					button_next();
				}
				else
				{
					this.config.form.down('.error').next().focus();
				}
				return;
			}
		),
		button_back: s3core.wizard.prototype.button_back.wrap
		(
			function(button_back)
			{
				if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current);
				button_back();
				return;
			}
		),
		form_submit: s3core.wizard.prototype.form_submit.wrap
		(
			function(form_submit)
			{
				form_submit();
				return;
			}
		)
	}
);
songcentral.industryWizard=Class.create
(
	s3core.wizard,
	{
		button_next: s3core.wizard.prototype.button_next.wrap
		(
			function(button_next)
			{
				this.valid=true;
				switch(this.config.pages[this.page.current].identify())
				{
					case 'fPage_1':
					{
						if (!$F(this.config.form['membership_agreed']))
						{
							this.setError(this.config.form['membership_agreed'],'You must agree to the Song Central membership terms and conditions before continuing.');
						}
						break;
					}
					case 'fPage_2':
					{
						if (!$('prof_title').disabled && !$('prof_title').readOnly && $F('prof_title').empty()) this.setError('prof_title','This is a required field.');
						if (!$('prof_description').disabled && !$('prof_description').readOnly && $F('prof_description').empty()) this.setError('prof_description','This is a required field.');
						if (!$('biznum').disabled && !$('biznum').readOnly && !$F('biznum').empty())
						{
							var $biznum=$F('biznum').match(/\d+/g).join('');
							if ($biznum.length!=11 || $biznum!==$F('biznum').replace(/ /g,''))
							{
								this.setError('biznum','11 digits required.');
							}
							else
							{
								//$biznum=$biznum.slice(0,3)+' '+$biznum.slice(3,6)+' '+$biznum.slice(6,9);
								if ($biznum!==$F('biznum'))
								{
									$('biznum').value=$biznum;
								}
							}
						}
						break;
					}
				}
				if (this.valid)
				{
					if (!this.isLastPage())
					{
						if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current+2);
					}
					button_next();
				}
				else
				{
					this.config.form.down('.error').next().focus();
				}
				return;
			}
		),
		button_back: s3core.wizard.prototype.button_back.wrap
		(
			function(button_back)
			{
				if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current);
				button_back();
				return;
			}
		),
		form_submit: s3core.wizard.prototype.form_submit.wrap
		(
			function(form_submit)
			{
				form_submit();
				return;
			}
		)
	}
);
songcentral.reviewerWizard=Class.create
(
	s3core.wizard,
	{
		button_next: s3core.wizard.prototype.button_next.wrap
		(
			function(button_next)
			{
				this.valid=true;
				switch(this.config.pages[this.page.current].identify())
				{
					case 'fPage_1':
					{
						if (!$F(this.config.form['membership_agreed']))
						{
							this.setError(this.config.form['membership_agreed'],'You must agree to the Song Central membership terms and conditions before continuing.');
						}
						break;
					}
					case 'fPage_2':
					{
						break;
					}
				}
				if (this.valid)
				{
					if (!this.isLastPage())
					{
						if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current+2);
					}
					button_next();
				}
				else
				{
					this.config.form.down('.error').next().focus();
				}
				return;
			}
		),
		button_back: s3core.wizard.prototype.button_back.wrap
		(
			function(button_back)
			{
				if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current);
				button_back();
				return;
			}
		),
		form_submit: s3core.wizard.prototype.form_submit.wrap
		(
			function(form_submit)
			{
				form_submit();
				return;
			}
		)
	}
);
songcentral.servicePurchaseWizard=Class.create
(
	s3core.wizard,
	{
		button_next: s3core.wizard.prototype.button_next.wrap
		(
			function(button_next)
			{
				this.valid=true;
				switch(this.config.pages[this.page.current].identify())
				{
					case 'fPage_1':
					{
						if (!this.config.form.getSelected('service_id').length)  this.setError('service_id_1','You must choose a service option before continuing.');
						break;
					}
				}
				if (this.valid)
				{
					if (!this.isLastPage())
					{
						if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current+2);
					}
					button_next();
				}
				else
				{
					this.config.form.down('.error').next().focus();
				}
				return;
			}
		),
		button_back: s3core.wizard.prototype.button_back.wrap
		(
			function(button_back)
			{
				if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current);
				button_back();
				return;
			}
		),
		form_submit: s3core.wizard.prototype.form_submit.wrap
		(
			function(form_submit)
			{
				form_submit();
				return;
			}
		)
	}
);
songcentral.contactUsWizard=Class.create
(
	s3core.wizard,
	{
		button_next: s3core.wizard.prototype.button_next.wrap
		(
			function(button_next)
			{
				this.valid=true;
				switch(this.config.pages[this.page.current].identify())
				{
					case 'fPage_1':
					{
						if ($('email_from_person') && !$('email_from_person').disabled && !$('email_from_person').readOnly)
						{
							if (!($F('email_from_person'))) this.setError('email_from_person','this is a required field.');
						}
						if ($('email_from_address') && !$('email_from_address').disabled && !$('email_from_address').readOnly)
						{
							if (!($F('email_from_address'))) this.setError('email_from_address','this is a required field.');
							else if (!(/^\w+([\.-]?\w+)*@(\w+([\.-]?\w+)*(\.\w{2,4})+)$/i.test($F('email_from_address'))))
							{ 
								this.setError('email_from_address','You must use the name@domain standard.');
							}
						}
						if ($('email_subject') && !$('email_subject').disabled && !$('email_subject').readOnly)
						{
							if (!($F('email_subject'))) this.setError('email_subject','this is a required field.');
						}
						if (!($F('email_message'))) this.setError('email_message','this is a required field.');
						break;
					}
				}
				if (this.valid)
				{
					if (!this.isLastPage())
					{
						if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current+2);
					}
					button_next();
				}
				else
				{
					this.config.form.down('.error').next().focus();
				}
				return;
			}
		),
		button_back: s3core.wizard.prototype.button_back.wrap
		(
			function(button_back)
			{
				if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current);
				button_back();
				return;
			}
		),
		form_submit: s3core.wizard.prototype.form_submit.wrap
		(
			function(form_submit)
			{
				form_submit();
				return;
			}
		)
	}
);
songcentral.changeLoginWizard=Class.create
(
	s3core.wizard,
	{
		button_next: s3core.wizard.prototype.button_next.wrap
		(
			function(button_next)
			{
				this.valid=true;
				switch(this.config.pages[this.page.current].identify())
				{
					case 'fPage_1':
					{
						if ($('change_email_1') && $F('change_email_1')==1)
						{
							if (!($F('account_email')))
							{
								this.setError('account_email','\"Email Address\" is a required field.');
							}
//							else if (!(/^\w+([\.-]?\w+)*@(\w+([\.-]?\w+)*(\.\w{2,4})+)$/i.test($F('account_email'))))
//							{ 
//								this.setError('account_email','Invalid email address.');
//							}
							else if (!($F('account_email_confirm')))
							{
								this.setError('account_email_confirm','\"account_email\" is a required field.');
							}
							else if ($F('account_email') != $F('account_email_confirm'))
							{
								this.setError('account_email_confirm','\"Email Address\" values are not the same.');
							}
						}
						if ($('change_password_1') && $F('change_password_1')==1)
						{
							if (!($F('account_password'))) this.setError('account_password','\"Password\" is a required field.');
							else if ($F('account_password') != $F('account_password_confirm')) this.setError('account_password_confirm','\"Password\" values are not the same.');
						}
						break;
					}
				}
				if (this.valid)
				{
					if (!this.isLastPage())
					{
						if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current+2);
					}
					button_next();
				}
				else
				{
					this.config.form.down('.error').next().focus();
				}
				return;
			}
		),
		button_back: s3core.wizard.prototype.button_back.wrap
		(
			function(button_back)
			{
				if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current);
				button_back();
				return;
			}
		),
		form_submit: s3core.wizard.prototype.form_submit.wrap
		(
			function(form_submit)
			{
				form_submit();
				return;
			}
		)
	}
);
songcentral.registrationWizard=Class.create
(
	s3core.wizard,
	{
		button_next: s3core.wizard.prototype.button_next.wrap
		(
			function(button_next)
			{
				this.valid=true;
				switch(this.config.pages[this.page.current].identify())
				{
					case 'fPage_1':
					{
						if (!($F('account_email'))) this.setError('account_email','\"Email Address\" is a required field.');
//						else if (!(/^\w+([\.-]?\w+)*@(\w+([\.-]?\w+)*(\.\w{2,4})+)$/i.test($F('account_email'))))
//						{ 
//							this.setError('account_email','Invalid email address. You must use the name@domain standard.');
//						}
						else if (!($F('account_email_confirm'))) this.setError('account_email_confirm','this is a required field.');
						else if ($F('account_email') != $F('account_email_confirm')) this.setError('account_email_confirm','\"Email Address\" values are not the same.');
						if (!($F('account_password'))) this.setError('account_password','\"Password\" is a required field.');
						else if ($F('account_password').length<6) this.setError('account_password','\"Password\" min. length is 6.');
						else if ($F('account_password').length>64) this.setError('account_password','\"Password\" max. length is 64.');
						else if ($F('account_password') != $F('account_password_confirm')) this.setError('account_password_confirm','\"Password\" values are not the same.');
						break;
					}
					case 'fPage_2':
					{
						if (!($F('title_id'))) this.setError('title_id','this is a required field.');
						if (!($F('firstname'))) this.setError('firstname','this is a required field.');
						if (!($F('surname'))) this.setError('surname','this is a required field.');
						if (!($F('state_id'))) this.setError('state_id','this is a required field.');
//						if (!($F('postcode'))) this.setError('postcode','this is a required field.');
						if (!($F('country_id'))) this.setError('country_id','this is a required field.');
						break;
					}
					case 'fPage_3':
					{
						if ($('terms_agreed') && !$('terms_agreed').disabled && !$('terms_agreed').readOnly && !$F(this.config.form['terms_agreed']))
						{
							this.setError(this.config.form['terms_agreed'],'You must agree to the Song Central membership terms and conditions before continuing.');
						}
						break;
					}
				}
				if (this.valid)
				{
					if (!this.isLastPage())
					{
						if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current+2);
					}
					button_next();
				}
				else
				{
					this.config.form.down('.error').next().focus();
				}
				return;
			}
		),
		button_back: s3core.wizard.prototype.button_back.wrap
		(
			function(button_back)
			{
				if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current);
				button_back();
				return;
			}
		),
		form_submit: s3core.wizard.prototype.form_submit.wrap
		(
			function(form_submit)
			{
				form_submit();
				return;
			}
		)
	}
);
songcentral.registerUserWizard=Class.create
(
	s3core.wizard,
	{
		button_next: s3core.wizard.prototype.button_next.wrap
		(
			function(button_next)
			{
				this.valid=true;
				switch(this.config.pages[this.page.current].identify())
				{
					case 'fPage_1':
					{
						if (!($F('account_email'))) this.setError('account_email','\"Email Address\" is a required field.');
//						else if (!(/^\w+([\.-]?\w+)*@(\w+([\.-]?\w+)*(\.\w{2,4})+)$/i.test($F('account_email'))))
						{
							this.setError('account_email','Invalid email address.');
						}
						if (!($F('title_id'))) this.setError('title_id','this is a required field.');
						if (!($F('firstname'))) this.setError('firstname','this is a required field.');
						if (!($F('surname'))) this.setError('surname','this is a required field.');
						if (!($F('state_id'))) this.setError('state_id','this is a required field.');
//						if (!($F('postcode'))) this.setError('postcode','this is a required field.');
						if (!($F('country_id'))) this.setError('country_id','this is a required field.');
						break;
					}
				}
				if (this.valid)
				{
					if (!this.isLastPage())
					{
						if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current+2);
					}
					button_next();
				}
				else
				{
					this.config.form.down('.error').next().focus();
				}
				return;
			}
		),
		button_back: s3core.wizard.prototype.button_back.wrap
		(
			function(button_back)
			{
				if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current);
				button_back();
				return;
			}
		),
		form_submit: s3core.wizard.prototype.form_submit.wrap
		(
			function(form_submit)
			{
				form_submit();
				return;
			}
		)
	}
);
songcentral.tenderWizard=Class.create
(
	s3core.wizard,
	{
		button_next: s3core.wizard.prototype.button_next.wrap
		(
			function(button_next)
			{
				this.valid=true;
				switch(this.config.pages[this.page.current].identify())
				{
					case 'fPage_1':
					{
						if (!$F(this.config.form['tender_agreed']))
						{
							this.setError(this.config.form['tender_agreed'],'You must agree to the Song Central Tender-Submittion terms and conditions before continuing.');
						}
						break;
					}
					case 'fPage_2':
					{
						if (!$('tender_title').disabled && !$('tender_title').readOnly && $F('tender_title').empty()) this.setError('tender_title','This is a required field.');
						if (!$('tender_deadline').disabled && !$('tender_deadline').readOnly && $F('tender_deadline').empty()) this.setError('tender_deadline','This is a required field.');
						if (!$('tender_desc').disabled && !$('tender_desc').readOnly && $F('tender_desc').empty()) this.setError('tender_desc','This is a required field.');
						break;
					}
				}
				if (this.valid)
				{
					if (!this.isLastPage())
					{
						if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current+2);
					}
					button_next();
				}
				else
				{
					this.config.form.down('.error').next().focus();
				}
				return;
			}
		),
		button_back: s3core.wizard.prototype.button_back.wrap
		(
			function(button_back)
			{
				if ($('wizPgeNum')) $('wizPgeNum').update(this.page.current);
				button_back();
				return;
			}
		),
		form_submit: s3core.wizard.prototype.form_submit.wrap
		(
			function(form_submit)
			{
				form_submit();
				return;
			}
		)
	}
);
songcentral.basicWizard=Class.create
(
	s3core.wizard,
	{
		button_next: s3core.wizard.prototype.button_next.wrap
		(
			function(button_next)
			{
				button_next();
				return;
			}
		),
		button_back: s3core.wizard.prototype.button_back.wrap
		(
			function(button_back)
			{
				button_back();
				return;
			}
		),
		form_submit: s3core.wizard.prototype.form_submit.wrap
		(
			function(form_submit)
			{
				form_submit();
				return;
			}
		)
	}
);
