/*
IMPORTANT ADVISE
The following code is protected by copyright 
 *  (c) 2009 Davide Rolando
except for the functions that don't contain the notice:
	// Copyright © 2009 Davide Rolando//

Thus you can't use any of the copyright protected code 
without first obtaining written permission. 
Please email  webmaster@subsedit.com to obtain written consent.
*/
	function trans_now(text){
		google.language.translate(text, '', 'it', function(result) {
		//var translated = document.getElementById("translation");
		if (result.translation) {
			//translated.innerHTML = result.translation;
			$('destination').value = urldecode(result.translation);
			$('de').innerHTML = result.translation;
		}
		});
	}

	var jreq_aim = "resources_translate/translate+_f.php";
	var origlang = '';
	var destlang = 'en';
	var cursub = 1;
	/*
	function treq(req, what) {
		//alert(encodeURIComponent(req) +'\n'+ encodeURIComponent(what));
		new Ajax.Request("resources_tr/tr_f.php", {
				onComplete:showResponse, 
				parameters:"jreq=" + encodeURIComponent(req) + "&what=" + encodeURIComponent(what)
			} 
		);
	}
	*/

function transetup(or, to){
if(typeof(selable.length) != "number" || selable.length < 1){
	reportLog("Please Import first", false);
	alert("Please import first");
	return false;
}
var answer = confirm ("This is a sperimental feature\nCurrently only a maximum of 900 dialogs will be translated\nIt will take at least 15 seconds, so be patient...\nDo you want to proceed?\n\nPlease leave a feedback to this feature through the 'Contact' page,  \nthank you.")
if (!answer) return false;

	reportLog("Translating...", true);
		$.ajax({
			type: "POST",
			url: jreq_aim,
			data: ({
				action: 'translate',
				allofem: 'asis',	//$('#source').val()
				origin: or,
				lang: to
			}),
			success: function(data){
				var d = eval(data);
				if(d.length < 2){
					reportLog("Please Import first", false);
					alert("Please IMPORT");
					return false;
				}
				$('#dest').val(d[0]);
				$('#tempsub').val(d[0]);
				jslog.debug("After trans all : "+ d[1]);
				selable = d[1];
				reportLog("Subtitles Translated", false);
				return true;
			}
		});
	return false		
}

function transthis(txt,or,to){
if(txt.length < 2){
	return false;
}
	$.ajax({
	type: "POST",
	url: jreq_aim,
	data: ({
		action: 'translate',
		trytran: txt,	//$('#source').val()
		origin: or,
		lang: to
	}),
	success: function(data){
		$('#translated').val(data);
		return true;
	}
	});
}

$('#b_import').click(function(){
	if(!validateSRT($('#source').val())){return alert('Empty source\nor not valid srt format');}
	reportLog("Wait...", true);
	//upload subs
	var valsh = uploadsubs('source', 10000, 'translate');
	jslog.info("Fine Importazione translate:" + valsh);
	var rr = eval(valsh);
	selable = rr[2];
	cursub = 1; selsubl(cursub);
	reportLog("Ok !", false);
});

//to be improved..
function validateSRT(txt){
	jslog.info("source length:" + txt.length);
	var itsok = true;
	if(txt.length < 33) itsok = false;
	
	return itsok;
}

//dismissed
function selsub(num){
//	cursub = num;
	$('#subnum').val(num);
	
	var n = eval(num -1);
	jslog.info("SELABLE : " + selable[n][0] + " " + selable[n][1] + " " + selable[n][2]);
	
	$.ajax({
	type: "POST",
	url: jreq_aim,
	data: ({
		action: 'retrieve',
		num: num
	}),
	success: function(data){
		jslog.debug(data);
		var r = eval(data);
		$('#tc').val(r[0]);
		$('#original').val(r[1]);
		$('#translated').val(r[2]);
		return true;
	}
	});
}

var selable = Array();
function selsubl(num){
//	cursub = num;

	if(isNaN(num) || typeof(selable.length)!="number" || selable.length < 1){ 
		jslog.info("NaN");$('#subnum').val(cursub);
		return false;
	}
	if(num < 1) num = 1;
	if(num > selable.length) num = selable.length;	
	$('#subnum').val(num);

	var n = eval(num -1);
	jslog.info("SELABLE : " + selable[n][0] + " " + selable[n][1] + " " + selable[n][2]);

	$('#tc').val(selable[n][0]);
	$('#original').val(selable[n][1]);
	$('#translated').val(selable[n][2]);
	$('#translated').focus();
	cursub = num;
	return true;
}

$('#b_downtrans').click(function(){
	reportLog("Creating file...");
	//upload subs
	jslog.info("init transdown:" + $('#tempsub').val());
	var valsh = uploadsubs('tempsub', 10000, 'transdown');
	jslog.info("Fine transdown:" + valsh);
	var rr = eval(valsh);
	if(rr[1] == true){
		document.translatesubs.submit();
		reportLog("Downloading...");
	} else {
		reportLog("Some error occurred");
	}
	return true;
});

function update(){
	jslog.info("updating " + typeof(selable.length));
	if(!isNaN(cursub) && cursub > 0 && typeof(selable.length)=="number" && cursub < eval(selable.length + 1)){
		var tr = $('#translated').val();	
		var n = eval(cursub - 1);
		selable[n][2] = tr;
		var trbld = buildtrans(selable);
		$('#dest').val(trbld);
		return true;
	}
	return false;
}

function buildtrans(rawarr){
	if(typeof(rawarr.length)!="number") return false;

	jslog.info("building " + rawarr.length);
	
	var dest = '';
	var br = "\n";
	for(var i = 0; i < rawarr.length; i++ ){
		dest += eval(i+1) + br + rawarr[i][0] + br + rawarr[i][2] + br + br;		
	}
	$('#tempsub').val(dest);
	return dest;
}

function IsNumeric(sText)

{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }




	var diagtemp = '';
	
/*	
	
	var isCtrl = false; 
	document.onkeyup=function(e){
		if(e.which == 17) isCtrl=false; 
	} 
	document.onkeydown=function(e){ 
		if(e.which == 17 && $('hotkeys').checked == true) isCtrl=true; 
		if(e.which == 83 && isCtrl == true) { 
			d_update(); 
		return false; 
		} 
		if(e.which == 65 && isCtrl == true) { 
			pickup($('mget_L1').value, 'prev'); 
		return false; 
		} 
		if(e.which == 68 && isCtrl == true) { 
			pickup($('mget_L1').value, 'next'); 
		return false; 
		} 
		if(e.which == 40 && isCtrl == true) { 
			$('mdiagR1').value = ''; 
			$('mdiagR1').focus();
		return false; 
		} 
	} 
	
	
	*/
	

