$(document).ready(function() 
{
	// Hide cake flash message after x seconds
	setTimeout ( "hideFlash()", 10000 );
	
	// Playlist
	$('a#addPlaylist').click(function()
	{
		var el = $('ul.addPlaylist');

		if (el.hasClass('expand'))
		{
			el.slideDown();
			el.removeClass('expand').addClass('contract');
		}
		else
		{
			el.slideUp();
			el.removeClass('contract').addClass('expand');
		}
	});	
	
	if ($('#createNewPlaylist').length > 0)
	{
		$('.createNewPlaylist').click(function()
		{
			var playlistName = $('#PlaylistName').val();
			
			if (playlistName == '')
			{
				alert('Please enter a name for your playlist');
				
				return false;
			}
			else
			{
				return true;
			}
		});
	}						 	

	$('.playlist span').click(function()
	{
		playlistId = $(this).attr('id');
		
		if ($(this).hasClass('expand'))
		{
			$('li[title='+playlistId+']').slideUp();
			$(this).removeClass('expand').addClass('contract');
		}
		else
		{
			$('li[title='+playlistId+']').slideDown();
			$(this).removeClass('contract').addClass('expand');			
		}
	});

	$("a.share").colorbox();

	// Uploaded Songs
	$('.songsUploaded span').click(function()
	{
		artistId = $(this).attr('id');

		if ($(this).hasClass('expand'))
		{
			$('li[title='+artistId+']').slideUp();
			$(this).removeClass('expand').addClass('contract');
		}
		else
		{
			$('li[title='+artistId+']').slideDown();
			$(this).removeClass('contract').addClass('expand');
		}
	});
	
	// Signin
	$('a#signInItem').toggle(
		function()
		{
			$(this).addClass('signinActive');
			$('#signin').show();
		},
		function()
		{
			$(this).removeClass('signinActive');
			$('#signin').hide();
		}
	);
	
	// Search	
	if ($('fieldset.search').length > 0)
	{
		$('.subgenre').attr('disabled', 'disabled');
		
		$('.genre').removeAttr('checked');
		
		$('.genre').click(function()
		{
			var id = $(this).attr('id');
			
			if ($('.subgenre[title='+id+']').attr('disabled'))
			{
				$('.subgenre[title='+id+']').removeAttr('disabled');
			}
			else
			{
				$('.subgenre[title='+id+']').attr('disabled', 'disabled');
			}		
		});
	}
		
	// Licensing	
	if ($('fieldset.licensing').length > 0)
	{
		$('.radioOptions input[type=radio]').click(function()
		{
			var id = $(this).attr('id');
			var subUsageType = '';
			var format = '';
			var organisationType = '';
			var term = '';
			var productionBudget = '';
			var songUse = '';
			var songUseDuration = '';
			
			$.ajax({
			    type: "POST",
			    url: "/licenses/getData/"+id,
			    dataType: "json",
				success: function(msg)
				{					
					/* Subusage types */
					for(i = 0; i < msg.SubUsageType.length; ++i) 
					{
	   					subUsageType += '<option value="' + msg.SubUsageType[i].id + '">' + msg.SubUsageType[i].name + '</option>';
					}
					
					$('.selection select[name=data[SubUsageType]]').children().remove();
					
					if (msg.SubUsageType.length > 0) 
					{
						$('.selection select[name=data[SubUsageType]]').append(subUsageType); 
					} 
					else 
					{
						$('.selection select[name=data[SubUsageType]]').append('<option>No Subusage Types</option>');
					}					
					
					/* Formats */
					for(i = 0; i < msg.Format.length; ++i) 
					{
	   					format += '<option value="' + msg.Format[i].id + '">' + msg.Format[i].name + '</option>';
					}
					
					$('.selection select[name=data[Format]]').children().remove();
					
					if (msg.Format.length > 0) 
					{
						$('.selection select[name=data[Format]]').append(format);	
					}
					else
					{
						$('.selection select[name=data[Format]]').append('<option>No Formats</option>');
					}
					
					/* Organisation Types */
					for(i = 0; i < msg.OrganisationType.length; ++i) 
					{
	   					organisationType += '<option value="' + msg.OrganisationType[i].id + '">' + msg.OrganisationType[i].name + '</option>';
					}
					
					$('.selection select[name=data[OrganisationType]]').children().remove();
					
					if (msg.OrganisationType.length > 0) 
					{
						$('.selection select[name=data[OrganisationType]]').append(organisationType);
					}
					else
					{
						$('.selection select[name=data[OrganisationType]]').append('<option>No Organisations</option>');
					}
					
					/* Term */
					for(i = 0; i < msg.Term.length; ++i) 
					{
	   					term += '<option value="' + msg.Term[i].id + '">' + msg.Term[i].name + '</option>';
					}
					
					$('.selection select[name=data[Term]]').children().remove();
					
					if (msg.Term.length > 0)
					{
						$('.selection select[name=data[Term]]').append(term);	
					} 
					else
					{
						$('.selection select[name=data[Term]]').append('<option>No Terms</option>');
					}
					
					
					/* Production Budget */
					for(i = 0; i < msg.ProductionBudget.length; ++i) 
					{
	   					productionBudget += '<option value="' + msg.ProductionBudget[i].id + '">' + msg.ProductionBudget[i].name + '</option>';
					}
					
					$('.selection select[name=data[ProductionBudget]]').children().remove();
					
					if (msg.ProductionBudget.length > 0)
					{
						$('.selection select[name=data[ProductionBudget]]').append(productionBudget);
					}
					else
					{
						$('.selection select[name=data[ProductionBudget]]').append('<option>No Production Budgets</option>');
					}
					
					/* Song uses */
					for(i = 0; i < msg.SongUse.length; ++i) 
					{
	   					songUse += '<option value="' + msg.SongUse[i].id + '">' + msg.SongUse[i].name + '</option>';
					}
					
					$('.selection select[name=data[SongUse]]').children().remove();
					
					if (msg.SongUse.length > 0)
					{
						$('.selection select[name=data[SongUse]]').append(songUse);
					}
					else
					{
						$('.selection select[name=data[SongUse]]').append('<option>No Song Uses</option>');
					}
					
					/* Song use durations */
					for(i = 0; i < msg.SongUseDuration.length; ++i) 
					{
	   					songUseDuration += '<option value="' + msg.SongUseDuration[i].id + '">' + msg.SongUseDuration[i].name + '</option>';
					}
					
					$('.selection select[name=data[SongUseDuration]]').children().remove();
					
					if (msg.SongUseDuration.length > 0)
					{
						$('.selection select[name=data[SongUseDuration]]').append(songUseDuration);
					}
					else
					{
						$('.selection select[name=data[SongUseDuration]]').append('<option>No Song Use Durations</option>');
					}
			    }
			});
	
		});
		
		$('#addLicensePlaylist').click(function(e){
			e.preventDefault();
			
			var el = $('ol.cartToPlaylist');

			if (el.hasClass('expand'))
			{
				el.slideDown();
				el.removeClass('expand').addClass('contract');
			}
			else
			{
				el.slideUp();
				el.removeClass('contract').addClass('expand');
			}
	
		});
		
		$('#addCartToPlaylistForm').validate(
		{
			rules: 
			{
				"data[Playlist][name]": "required"
			}
		});
	}

	// Validate the licensee signup form
	if ($('fieldset.register').length > 0)
	{
		$('#licenseeSignup').validate(
		{
			rules: 
			{
				"data[User][password]": "required",
				"data[User][confirm_password]": 
				{
					equalTo: "#userpassword"
				},
				"data[User][telephone]": 
				{
					minlength: 7	
				}
			  }
		  });
	}

	// Validate the licenser signup form
	if ($('fieldset.musicRegister').length > 0)
	{
		$('#licenserSignup').validate(
		{
			rules: 
			{
				"data[User][email]": "required email",
				"data[User][confirm_email]": 
				{
					equalTo: "#useremail"
				},
				"data[User][password]": {
					"required": function() {return ($('#userpassword').val().length > 0 && $('#UserConfirmPassword').val().length > 0)}
				},
				"data[User][confirm_password]": 
				{
					equalTo: "#userpassword"
				},
				"data[User][telephone]": 
				{
					minlength: 7	
				}
			  }
		  });
	}
	
	// Validate music submit page + add new song page
	if ($('fieldset.musicSubmit').length > 0)
	{
		$('#licenserEdit').validate(
		{
			rules: 
			{
				"data[User][email]": "required email",
				"data[User][confirm_email]": 
				{
					equalTo: "#useremail"
				},
				"data[User][telephone]": 
				{
					minlength: 7	
				}
			  }
		});	
		
		$('#uploadSong').validate();
	}
	
	// Validate edit account page
	if ($('fieldset.musicSubmit').length > 0)
	{
		$('#licenseeEdit').validate(
		{
			rules: 
			{
				"data[User][email]": "required email",
				"data[User][confirm_email]": 
				{
					equalTo: "#useremail"
				},
				"data[User][password]": {
					"required": function() {return ($('#userpassword').val().length > 0 && $('#UserConfirmPassword').val().length > 0)}
				},
				"data[User][confirm_password]": 
				{
					equalTo: "#userpassword"
				},
				"data[User][telephone]": 
				{
					minlength: 7	
				}
			  }
		});	
	}
	
	// Validate contact us page
	if ($('fieldset.contactUsForm').length > 0)
	{
		$('#EnquiryAddForm').validate(
		{
			rules: 
			{
				"data[Enquiry][number]": 
				{
					minlength: 7	
				}
			}	
		});	
	}
	
	// When creating a new playlist, dont allow blanks
	if ($('#PlaylistName').length > 0)
	{
		
	}
});

function hideFlash()
{
	$('#flashMessage').slideUp();
}
