	var presenter = function MyzeleInterfaceObject() {
		var myClone;
		var charactersHeight = 0;
		var textArray = [];
		var sentences;
		var l = 0;
		var settings = {
			switchTime : 4500,
			alphabet : ' abcdefghijklmnopqrstuvwxyz01234567890,:!MYZEL'
		}

		return {
			init : function() {
				$(".characterstage").each(function(){
					var stageChar = $(this).attr('id')[5];
					for (i = 0; i < 25; i++) {
						myClone = $("#dummy").clone();
						myClone.attr('id',(stageChar + i));
						$("#stage" + stageChar).append(myClone);				
					}
				});
				charactersHeight = ($("#dummy").height() / $("#dummy > div").length);
				$(".content > div").each(function(){
					sentences = {};
					$("#" + $(this).attr("id") + " > div").each(function() {
						sentences[$(this).attr('class')[7]] = $(this).text();
					})
					textArray[textArray.length] = sentences;
				});
			},

			traceFunc : function() {
				if(l > textArray.length) l = 0;
				presenter.setString(textArray[l],charactersHeight);
				setTimeout('presenter.traceFunc()',settings.switchTime)
				l++;
			},
		
			resetAll : function() {
				$(".characters").animate( { top: "0" }, { queue:true, duration:(400) } );
			},

			setString : function(textStruct,charactersHeight) {
				var alphabet = settings.alphabet.split('');
				for (stageId in textStruct) {
					$("#stage" + stageId + " .characters").animate( { top: "0" }, { queue:true, duration:(400) } );
					text = textStruct[stageId];
					for (i in alphabet) {
						currentShift = (i * charactersHeight * -1);
						var pattern = new RegExp(alphabet[i], "g"); 
						var result;
						var current = [];
						while((result = pattern.exec(text)) != null) {
							$("#" + stageId + result.index).animate( { top: (currentShift) }, { queue:false, duration:(500 + ((50 * Math.random())*i)) } );
						} 

					}
				}
			}
		}
	}();
$(document).ready(function(){
	presenter.init();
	presenter.traceFunc();
});
