jQuery.parseTracks = jQuery.fn.parseTracks = function () {
	
	var tracklist_contents = $('#tracklist_entry').val();
	
	tracklist_contents = tracklist_contents.replace(/[\u00A0-\u2666]/g, function(c) {
	  if(c.charCodeAt(0) == 8211){
	   	return "-";
	  }
	  if(c.charCodeAt(0) == 8212){
	   	return "-";
	  }
	  if(c.charCodeAt(0) == 8217){
	   	return "'";
	  }
	  return c;
	});
	
	$('#tracklist_entry').val($.trim(tracklist_contents));
	
    var regexp = /(([\w\?#@.-�\$\*\+]+)+\s*-\s*([\w\?#@.-�\$\*\+]+)+(\([\w\?#@.-�\$\*\+]+\))?)/i;
      	  	
	$('#tracklist').empty();

	var tracks = $('#tracklist_entry').val().split("\n");
	
	var j = 0;
	
	for(var i=0; i < tracks.length; i++){
		
		if(tracks[i].match(regexp)){
			
			var trackElements = tracks[i].split("-");
			
			var trackName = tracks[i].substring(trackElements[0].length + 1);
			
			var remixElements = trackName.split("(");
			
			var remixHTML = "";
			
			if(remixElements.length > 1)
			{
				trackName = $.trim(remixElements[0]);
				
				var remixName = remixElements[1];
			
				remixName = remixName.replace(/\)/g, "");
				
				remixHTML = "<span class='remixid'>(" + $.trim(remixName) + ")</span>" ;
			}
			
			trackName = $.trim(trackName);
			
			trackElements[0] = $.trim(trackElements[0]);
						
			$('#tracklist').append("<li id='" + i + "'><span class='artistid'>" + trackElements[0] + "</span> - <strong><span class='trackid'>" + trackName + "</span></strong> " + remixHTML + "<img src='http://www.mixbooth.com/images/icons/arrow.png' alt='move' width='16' height='16' class='handle' /></li>");
			
		}
		else
		{
			if($('#tracklist').text()!="")
			{
				$('#tracklist').append("<li class=\"message\">Sorry, this track isn't in the correct format, try re-entering it</li>");
			}
			else
			{
				$('#tracklist').append("<li class=\"message\">Your tracklisting is currently empty. That's ok, but it might be nice to add some track details for everyone else.</li>");
			}
		}
	}
};

jQuery.checkOwner = jQuery.fn.checkOwner = function(){
	var value = $("#form_container input[name=artist_ownership][checked]").val();
    	
    if(value==1)
    {
    	$("div#mix_artist").show();
    }
    else
    {
    	$("div#mix_artist").hide();
    }
};

$(function() {		
  $("#update").click(function(){
	  $.parseTracks();
	});
});

function removeTag(tagNumber){
	$('ul#mix_tags li:eq(' + tagNumber + ')').remove();
	
	$('ul#mix_tags li:gt(' + (tagNumber-1) + ') input.remove_tag').each(function(){
		$(this).attr('onClick',"removeTag(" + (tagNumber++) + ");");
	});
};

$(function() {
	$("#add_mix_tag").click(function(){
		
		var tag = $('input#mix_tag_entry').val();
			
		if(tag != "")
		{
			var listSize = $('ul#mix_tags li').size();
			
			if(listSize==0)
			{
				$('ul#mix_tags').show();
			}		
			$('ul#mix_tags').append("<li><input id=\"mix_tags[]\" name=\"mix_tags[]\" type=\"text\" value=\"" + tag + "\"> <input class=\"remove_tag\" type=\"button\" value=\"X\" onClick=\"removeTag(" + (listSize) + ");\" /></li>");
			
			$('input#mix_tag_entry').val("");
		}
	});
});

$(function() {	
    $("#form_container input[name=artist_ownership]").click(function () {
    	$.checkOwner();
    });
	
	$("#form_container").ready(function(){
		$.checkOwner();
	});
});


$(function() {
	$("#mix_add_form").keypress(function (e) {
		if(e.which==13||e.which==8||e.which==0)
		{
	  		$.parseTracks();
		}
	});
});

$(function() {
	$('ol#tracklist').sortable({handle : '.handle', update: function(event, ui){
			
			$('#tracklist_entry').val("");
			
			var size = $('#tracklist li').length;
			
			var count = 1;
			
			$('#tracklist li').each(function(){
				var li = this;
				var current = $('#tracklist_entry').val();
				
				if(count <= (size-1))
				{					
					var artist = $(li).find('span.artistid').text();
					var trackname = $(li).find('span.trackid').text();
					var remixname = $(li).find('span.remixid').text();
					
					var remix = "";
					
					if(remixname!="")
					{
						remix = remixname;
					}
					
					$('#tracklist_entry').val(current + artist + " - " + trackname + remix + "\n");
					count++;
				}
			});
			
		}
	});
});
