//creating language list
var lan_tmp=new Array('en','es','pt','fr','de','it','ru','zh','ko','ja','ar');
var lan=new Array;
var transstatus=0;
x=0;
for(var i in lan_tmp){
	if(lan_tmp[i]!='zh'){
		lan[x]=lan_tmp[i];
		x++;
	}
}
//end of creating language list

function translateInput(inputStr,formName,targetIdPrefix,inputLang){
	if (inputStr == '') {
		return;
	}
	jQuery.ajax({
	url: 'ajax/translate_new.php',
		cache: false,
		data: {'inputStr':inputStr,
				'targetIdPrefix':targetIdPrefix,
				'inputLang':inputLang},
		type: 'POST',
		dataType: 'json',
		timeout: (60 * 1000),
		beforeSend: function(){
			trans_lock();
		},
		success: function(returnScript){
			if (returnScript.error) {
				alert(returnScript.error);
			} else {
				for ( var i in returnScript ) {
					var outputLang = returnScript[i].outputLang.toString();
					var outputStr = returnScript[i].outputStr.toString();
					var targetObj = eval('document.'+formName+'.'+targetIdPrefix+outputLang);
					if (targetObj)
						targetObj.value = outputStr;
				}
			}
		},
		error: function(XMLHttpRequest, textStatus){
			alert('Translation failed. Error: '+textStatus);
		},
		complete: function(){
			trans_force_unlock();
		}
	});
}

function translateForm(inputLang, namePrefixArray, formName) {
	if (!formName)
		var formName = 'form';
	var titleObj = eval('document.'+formName+'.'+namePrefixArray[0]+inputLang);
	for (var i in namePrefixArray) {
		var inputObj = eval('document.'+formName+'.'+namePrefixArray[i]+inputLang);
		if (inputObj.value != '') {
			var inputStr = inputObj.value;
			translateInput(inputStr, formName, namePrefixArray[i])
		}
	}
}

function backtranslateForm(inputLang, namePrefixArray, formName) {
	if (!formName)
		var formName = 'form';
	for (var i in namePrefixArray) {
		var inputStr = eval('document.'+formName+'.'+namePrefixArray[i]+inputLang+'.value');
		translateInput(inputStr, formName, namePrefixArray[i]+'backtrans_', inputLang); 
	}
}

function translate(original,id){
	jQuery('#'+id).ready(function(){
	trans_force_unlock();
	for(var x=0;x<lan.length;x++){
		if(original){
			trans(original,'zh',lan[x],id+lan[x],true);
		}
		else{
			jQuery('#'+id+lan[x]).val('');
		}
	}
	});
}

function trans(original,orglang,lang,id,swt){
	jQuery.noConflict();
	jQuery.ajaxSetup({cache:false});
	jQuery('#'+id).ready(function(){
		if(swt){
			trans_lock();
			transstatus++;
		}
		jQuery.post('ajax/translate.php',{from:orglang,to:lang,text:original},function(result){
			if(result){
				jQuery('#'+id).val(result);
				if(swt){
					transstatus--;
					if(transstatus==0){
						trans_unlock();
					}
				}
			}
			/*
			else{
				alert('Translation failed. Please click the translation button again.');
			}
			*/
		});
	});
}

function trans_lock(){
	openpopup('trans_lock');
}

function trans_unlock(){
	closepopup('trans_lock');
}

function trans_force_unlock(){
	closepopup('trans_lock');
	setTimeout(function(){
		trans_force_unlock();
	},10000);
}
