var textChanged = false;

function resizeTextarea(oldText) {
	oldText = oldText.replace(/^(.*)$/gm, "<span>$1</span>");
	textBg = $('#text_bg');
	if(textBg[0].outerHTML) { // IE innerHTML normalization bug workaround
	    textBg[0].outerHTML = "<DIV id='text_bg'>"+oldText+"</DIV>";
	    setTimeout("$('#text').css('height', $('#text_bg').height()+25);", 1 );
	} else {
	    textBg.html(oldText);
	    height = $("#text_bg").height()+50;
	    height = Math.max(height, 146);
	    $('#text').css('height',  height);
	    $('#text').css('min-height', height);
	}
}

function ajaxTranslate() {
	txt = $('#text').val();
	if(txt.replace(/(<.*?>)|(&nbsp;)/g, '').replace(/^(\s*)$/, '') == '') return false;
	$('#textHelper').val( txt );
	params = $('#translateForm').serialize();
	params = params + '&translate=1&ajax=1';
	$(document).ajaxError(function(event, request, settings) {
		alert('Error');
	});
	textChanged = false;
	$.post('index.php', params, function(text) {
			if(textChanged) return false;
			data = eval('(' + text + ')');
			$('#interface_right').html(data.right);
//			$('#text_bg').html(data.left);
			document.title = data.title;
//			prepareSentences();
		}, 'text');
}

var mySound;
function loadSound(sound) {
	if(mySound) mySound.destruct();
	mySound = soundManager.createSound({
		id: 'aSound',
		url: sound,
		autoLoad: true,
		useHTML5Audio: iOS,
	});


	$("#speak, #speak_text").click(function () {
		mySound.play();
	});
}

function prepareSentences() {
	count = 1;
	$('#text_bg span.sentence').each(function () { /* Нумеруем все абзацы в исх. тексте */
		this.id = this.id+'_src';
		count++;
	});
	
	count = 1;
	if($('#text_translation').length>0) {
		$('#text_translation span.sentence').each(function () { /* Нумеруем абзацы и в переводе */
		}).add('#text_bg span.sentence').hover(function () {
			id = this.id.replace('_src', '');
			$('#'+id+'_src').addClass('hover');
			$('#'+id).addClass('hover');
		}, function () {
			id = this.id.replace('_src', '');
			$('#'+id+'_src').removeClass('hover');
			$('#'+id).removeClass('hover');
		});
	}
}

// добавляет к body класс narrow если ширина экрана < 1280px
function adjustStyle(width) {
    width = parseInt(width);
    if (width < 1276) {
        $("body").addClass('narrow');
    } else {
        $("body").removeClass('narrow');
    }
}

// определение iPhone & iPad
var iOS = (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)); 

var recentUsedDefault = [['en', 'ru','английский', 'русский'], ['ru', 'en', 'русский', 'английский'], ['uk', 'en', 'украинский', 'английский']];
var recentUsed = recentUsedDefault;
$(function () {
	cuSel({
		changedEl: "select",
		perRow: 12,
		recentUsed: recentUsed,
	});
	
	// обработка выбора из списка недавно использованных направлений
	$('.cuselRecent').live('click', function() { 
		langs = $(this).attr("value").split('/');
		cuSelRefresh({ 
			refreshEl: "#langFrom", 
			value: langs[0],
		} );
		cuSelRefresh({ 
			refreshEl: "#langTo", 
			value: langs[1],
		} );
		$('.cusel').change();
	});
	
	$('#cuselFrame-langFrom').change(function () {
		if($.inArray($('#langFrom').val(), rtl) == -1) { 
			$('#text').css('text-align', 'left');
		} else {
			$('#text').css('text-align', 'right');
		}
	});
	
	// обработка кнопки смены языков
	$('#exchange_language').click(function(event) {
		langFrom = $('#langFrom').val();
		langTo = $('#langTo').val();
		event.preventDefault();
		if(langFrom == 'auto') return;
		cuSelRefresh({ 
			refreshEl: "#langFrom", 
			value: langTo,
		} );
		cuSelRefresh({ 
			refreshEl: "#langTo", 
			value: langFrom,
		} );
		$('.cusel').change();
	});
	
	// при смене языка - доавление в список недавно использованных
	$('.cusel').change(function(e) {
		ajaxTranslate(); // запускаем перевод при смене языка
		langFrom = $('#langFrom').val();
		langFromName = $('#langFrom').parents(".cusel").find('span.cuselActive').text();
		langTo = $('#langTo').val();
		langToName = $('#langTo').parents(".cusel").find('span.cuselActive').text();
		recentUsed.pop(); // удаляем последнюю запись из списка недавно использованных направлений перевода
		recentUsed.unshift([langFrom, langTo, langFromName, langToName]); // добавляем новое направление в начало
		cuSelRefresh({ 
			refreshEl: "#langFrom,#langTo", 
			recentUsed: recentUsed,
		} );
	});
	
	$("html").mouseup(function () {
		$(".button").removeClass("down").blur().mouseout();
	});
	$(".button").hover(function () {
		$(this).addClass("hover");
	}, function() {
		$(this).removeClass("hover");
	}).mousedown(function(event) {
		$(event.currentTarget).addClass("down");
		event.preventDefault();
	});


	$('#translate').click(function(event) {
		ajaxTranslate();
		event.preventDefault();
	});

	var oldText = '';
	var translateTimeout;
	var text = $('#text');
	resizeTextarea(text.val());
	text.bind('keyup paste change input', function () { // перехватываем вставку 
		if(oldText != text.val()) { // если текст изменился
			textChanged = true;
			clearTimeout(translateTimeout);
			translateTimeout = setTimeout('ajaxTranslate()', 1000);
			oldText =  text.val();
			resizeTextarea(oldText);
		}
	});
	
	$('#translateForm').submit(function () {
		$('#textHelper').val( $('#text').html() );
	});
	
	
	// обработка изменения размера окна (эмуляция CSS3 media query для IE)
	if($.browser.msie) {
		setInterval("$('#text').change()", 100);
	    adjustStyle($('body').width());
	    $(window).resize(function() {
	        adjustStyle($(this).width());
	    });	
	}
});
