window.addEvent('domready', function() {
	var textarea = $('query'), log = $('log');
	
	// We define the highlight morph we're going to
	// use when firing an event
	var highlight = new Fx.Morph(log, {
		duration: 5500,
		link: 'cancel',
		transition: 'quad:out'
	});
	 
	// Here we start adding events to textarea.
	// Note that 'focus' and 'keyup' are native events, while 'burn'
	// is a custom one we've made
	textarea.addEvents({
		focus: function() {
			// When focusing, if the textarea contains value "Type here", we
			// simply clear it.
			if (textarea.value.contains('Type here')) textarea.value = '';
		},
		
		keyup: function() {
			// When user keyups we check if there are any of the magic words.
			// If yes, we fire our custom event burn with a different text for each one.
			if 	(textarea.value.contains('хуй')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('pussy')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('porn')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('sex')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('fuck')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('penis')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('anal')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('tit')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('breast')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('blowjob')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('close-ups')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('dildo')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('fetish')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('gay')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('gangbangs')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('housewifes')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('lesbian')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('masturbation')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('nipples')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('oral')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('гандон')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('презерватив')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('жопа')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('ебат')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('ебал')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('сперм')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('ебу')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('пидо')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('пизд')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('хуес')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('эякуляция')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('анал')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('клитор')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('говно')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('дрочит')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('анан')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('анус')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('педрил')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('бля')) textarea.fireEvent('burn', 'Bad word!');
			else if (textarea.value.contains('голые')) textarea.fireEvent('burn', 'Bad word!');			
			// note that in case of 'delayed', we are firing the event 1 second late.
			else if (textarea.value.contains('delayed')) textarea.fireEvent('burn', "Bad word!", 1000);
		},
		burn: function(text) {
			// When the textarea contains one of the magic words
			// we reset textarea value and set the log with text
			textarea.value = ''; log.set('html', text);
			
			// then we start the highlight morphing
			highlight.start({
				backgroundColor: ['#fff36f', '#fff'],
				opacity: [1, 0]
			});
		}
	});
});