window.addEvent('domready', function(e) {
			var key_down = false, registration_form = $('registration-form');
			registration_form.addEvent('submit', function(e) {
						var event = new Event(e);
						if (key_down) {
							event.stop();
						}
					});

			// track instruments
			var track_instruments = $('track-instruments');
			var instruments_auto = new Autocompleter.Request.JSON(
					track_instruments, '/gettag/', {
						'minLength' : 0,
						'indicatorClass' : 'ajaxed',
						'multiple' : true,
						'separator' : '  ',
						'excludeExisting' : true,
						'postData' : {
							'group' : 1
						}
					});
			track_instruments.addEvents({
						'keydown' : function(e) {
							var event = new Event(e);
							key_down = true;
							if (event.key === 'enter') {
								event.stop();
								instruments_auto.prefetch();
							}
						},
						'keyup' : function() {
							key_down = false;
						}
					});

			// track associations
			var track_associations = $('track-associations')
			var associations_auto = new Autocompleter.Request.JSON(
					track_associations, '/gettag/', {
						'minLength' : 0,
						'indicatorClass' : 'ajaxed',
						'multiple' : true,
						'separator' : '  ',
						'excludeExisting' : true,
						'postData' : {
							'group' : 2
						}
					});
			track_associations.addEvents({
						'keydown' : function(e) {
							var event = new Event(e);
							key_down = true;
							if (event.key === 'enter') {
								event.stop();
								associations_auto.prefetch();
							}
						},
						'keyup' : function() {
							key_down = false;
						}
					});

			// track use
			var track_use = $('track-use');
			var use_auto = new Autocompleter.Request.JSON(track_use,
					'/gettag/', {
						'minLength' : 0,
						'indicatorClass' : 'ajaxed',
						'multiple' : true,
						'separator' : '  ',
						'excludeExisting' : true,
						'postData' : {
							'group' : 3
						}
					});
			track_use.addEvents({
						'keydown' : function(e) {
							var event = new Event(e);
							key_down = true;
							if (event.key === 'enter') {
								event.stop();
								use_auto.prefetch();
							}
						},
						'keyup' : function() {
							key_down = false;
						}
					});

			// track feelings
			var track_feelings = $('track-feelings');
			var feelings_auto = new Autocompleter.Request.JSON(track_feelings,
					'/gettag/', {
						'minLength' : 0,
						'indicatorClass' : 'ajaxed',
						'multiple' : true,
						'separator' : '  ',
						'excludeExisting' : true,
						'postData' : {
							'group' : 4
						}
					});
			track_feelings.addEvents({
						'keydown' : function(e) {
							var event = new Event(e);
							key_down = true;
							if (event.key === 'enter') {
								event.stop();
								feelings_auto.prefetch();
							}
						},
						'keyup' : function() {
							key_down = false;
						}
					});

			// track text
			var track_text = $('track-text');
			var text_auto = new Autocompleter.Request.JSON(track_text,
					'/gettag/', {
						'minLength' : 0,
						'indicatorClass' : 'ajaxed',
						'multiple' : true,
						'separator' : '  ',
						'excludeExisting' : true,
						'postData' : {
							'group' : 5
						}
					});
			track_text.addEvents({
						'keydown' : function(e) {
							var event = new Event(e);
							key_down = true;
							if (event.key === 'enter') {
								event.stop();
								text_auto.prefetch();
							}
						},
						'keyup' : function() {
							key_down = false;
						}
					});

			// genres
			var genre = $('genre');
			var genre_auto = new Autocompleter.Request.JSON(genre, '/gettag/',
					{
						'minLength' : 0,
						'indicatorClass' : 'ajaxed',
						'multiple' : true,
						'separator' : '  ',
						'excludeExisting' : true,
						'postData' : {
							'group' : 6
						}
					});
			genre.addEvents({
						'keydown' : function(e) {
							var event = new Event(e);
							key_down = true;
							if (event.key === 'enter') {
								event.stop();
								genre_auto.prefetch();
							}
						},
						'keyup' : function() {
							key_down = false;
						}
					});

			// tips
			new Tips($$('.st'), {
						showDelay : 0,
						hideDelay : 0
					});
		});
