﻿function debug(jQueryobj) {
	if (window.console && window.console.log) { 
		console.log(jQueryobj); 
		}
	}
	
		
function trim(str, chars) {  
	return str.replace(/^\s*/, '').replace(/\s*$/, '');
}

function nlbr(str) {
	if(!str)
		return ''; 
	return str.replace(/[\n\r]/g, '<br />');
	}

function clearIntervalTimer() {
	if($intervalCleared == false) {
		clearInterval(jQuerytimer); 
		$intervalCleared = true;
	 	if($elementsarray != []) {
			for(i = 0; i < $elementsarray.length; i ++) { 
				el = $elementsarray[i]; 
				el.el.html(nlbr(el.str)); 
				}
	 		}
		}
	} 
 
function prepare_text(text) {   
	text = trim(text.replace(/ +/g, ' ')); 
	return text;
	}
	
	
function live_mini_update() {
	var 
		box = jQuery('#etelegram #etelegram_live_mini'),
		inputs = new Array('from_name', 'from_city', 'greeting', 'to_name', 'to_address');
		 
		for(i = 0; i < inputs.length; i++) {
			form_el = jQuery('#etelegram form #etelegram_'+inputs[i]);
			update_mini_el = jQuery('#etelegram #etelegram_live_mini .'+inputs[i]); 
			update_big_el = jQuery('#etelegram #etelegram_preview .'+inputs[i]);
			text = prepare_text(nlbr(form_el.val())); 
			update_mini_el.html(text);  
		}
	
	var
		allstringstocount = ""
			+ jQuery('#etelegram form #etelegram_greeting').val()
			+ " "
			+ jQuery('#etelegram form #etelegram_from_city').val()
			+ " "
			+ "Til"
			+ " "
			+ jQuery('#etelegram form #etelegram_to_name').val()
			+ " hilsen "
			+ jQuery('#etelegram form #etelegram_from_name').val(); 
	
	allstringstocount = trim(allstringstocount.replace(/\s+/g, ' '));
	var words = allstringstocount.split(' ');  
	var count = words.length; 
	
	jQuery('#etelegram #etelegram_live_mini div.word_count.field').text(count);
	
}

// create closure
(function(jQuery) {
	
 
	jQuery.fn.typewrite_telegram = function(options) {
 
	 	var opts = jQuery.extend({}, jQuery.fn.typewrite_telegram.defaults, options);
		
		this.each(function() {
			
			var wrapper = jQuery(this); 
			var elementsarray = new Array(); 
			wrapper.find('.field, .label').each(function(i) {  
				var el = jQuery(this); 
				var str = prepare_text(el.text()); 

				var  elclasses = el.attr('class').split(' '); 
				$elementsarray[i] = {
					el: el,
					str: str,
					elclass: elclasses[0]
					}; 
				el.text('');
				});
			
			var progress = 0, i = 0, field = $elementsarray[i], lastel = field, defaultpause = 8, pause = 0, laststring = '';
			jQuerytimer = setInterval(function() {  
				
				if(pause < 0) {
					progress++;
					showstring = nlbr(field.str.substring(0, progress));  
					
					if(showstring != laststring) {  
						field.el.html(showstring); 
						if(showstring != '') {
							play_sound_now();
							}
						}
					
					if(progress >= field.str.length) { // go to next element 
						pause = defaultpause;
						i ++;
						if($elementsarray.length == i) {
							clearIntervalTimer(); 
							}
						else {
							field = $elementsarray[i]; 
							progress = 0;
							if(field.el.position().top != lastel.el.position().top) { 
								play_sound_now('pling');
								}
							}
						}
					lastel = field;
					laststring = showstring;
					}
					pause--;
					
			}, opts.speed); 
		});
		return this;
	};
	 
  
	// plugin defaults
	jQuery.fn.typewrite_telegram.defaults = {
		speed: 120,
		loop: false,
		children: false, 
		input: null // 'form'
		};

// end of closure
})(jQuery);


play_sound_now = function(soundid) {   
	if($muteSound)
		return;
	
	try {
	
		var play = false;
		if(soundid) {    
			play = true;
			var sound = soundManager.getSoundById(soundid);
			}
		else {
			var i = 1;
			soundid = '';
			while(i <= 6) {
				soundid = 's'+i;
				var sound = soundManager.getSoundById(soundid); 
				if(typeof(sound.playState) != "undefined") {
					if(sound.playState == 0) {
						play = true; 
						i = 20;
						}
					else { 
						i++;
						}
					}
				else {
					i++;
					}
				}
			}
		if(!play) {
			soundid = 's6';
			var sound = soundManager.getSoundById(soundid);
			sound.setPosition(0);
			play = true;
			} 
		if(play) { 
			sound.play();
			}
		
		}
	catch(error) {
		return false;
		}
	}

function loadSoundStuff() {

	soundManager.url = '/etelegram/scripts/soundmanager2/swf/';
	soundManager.debugMode = false;  
	soundManager.useFastPolling = true;
	soundManager.defaultOptions.volume = 50; 
 	 
 	soundManager.onready(function(){ 
		soundManager.createSound({  
			id: 's1',
		  url: '/etelegram/sounds/typewriter/skrivemaskin1.mp3'
			});
		soundManager.createSound({
			id: 's2',
		  url: '/etelegram/sounds/typewriter/skrivemaskin2.mp3'
			}); 
		soundManager.createSound({
			id: 's3',
		  url: '/etelegram/sounds/typewriter/skrivemaskin4.mp3'
			}); 
		soundManager.createSound({
			id: 's4',
		  url: '/etelegram/sounds/typewriter/skrivemaskin2.mp3'
			}); 
		soundManager.createSound({
			id: 's5',
		  url: '/etelegram/sounds/typewriter/skrivemaskin2.mp3'
			}); 						
		soundManager.createSound({
			id: 's6',
		  url: '/etelegram/sounds/typewriter/skrivemaskin3.mp3'
			}); 
		soundManager.createSound({
			id: 'pling',
		  url: '/etelegram/sounds/typewriter/skrivemaskin5.mp3'
			});  
	});
 	
	}

jQuery(document).ready(function(){  
	 
  $elementsarray = new Array(); 
  $intervalCleared = false;
  jQuerytimer = null;
  $muteSound = true;
  runMini = true; 
 
  jQuery('#etelegram #etelegram_create :input').keyup(function() {    
  	$muteSound = false;
		clearIntervalTimer(); 
		live_mini_update();  
		}); 

	jQuery('.etelegram_view:visible').not('#etelegram_live_mini').each(function() {  
  	$muteSound = false;
		jQuery(this).typewrite_telegram();  
		loadSoundStuff();
		runMini = false;
		});
 	
 	if(runMini) { 
		jQuery('.etelegram_view#etelegram_live_mini').each(function() {  
			live_mini_update(); 
			jQuery(this).show();
			jQuery(this).typewrite_telegram();   
			});
		}
  
}); 
