var http_request = new Array;
var ajaxresponsefunc = new Array;
var ajaxcomplete = new Array;
var ajaxurls = new Array;


function translate() {
	var maxlen=340;
	var translated = document.getElementById("translation");
	var button = document.getElementById("btn");
	var prg = document.getElementById("progress");
	//button.disabled="disabled";
	translated.innerHTML = "";
	prg.style.display="block";
  	var intext=document.getElementById("text");
	var text = intext.value;
	var sample="";  
	text=text.substr(0,32768);
	sample=text.substr(0,256);
	intext.value=text;
	text=text.replace(/\r\n/g,"<br>");

	if(document.getElementById("selto").value=="auto" || document.getElementById("selfrom").value=="auto"){
	google.language.detect(sample, function(result){
			if (!result.error && result.language) {
			var dest="";

			if(document.getElementById("selto").value=="auto"){
				if(result.language==dic1){
					dest=dic2;
				}else{
					if(result.language==dic2){
						dest=dic1;
					}else{
						dest=dic2;
					}
				}	
			}else{
				dest=document.getElementById("selto").value;
			}

			
			if(text.length>maxlen){
				  translated.innerHTML ="Translation of a large texts is available in a new version. Download new version from www.translateclient.com.";
				  prg.style.display="none";
			}else{
				google.language.translate(text, result.language, dest,  function(result) {
				if (result.translation) {
				  translated.innerHTML = result.translation;
				  prg.style.display="none";
				}
				});
			}	
		}
	});

		}else{

			dest=document.getElementById("selto").value;
			src=document.getElementById("selfrom").value;
			if(text.length>maxlen){
				  translated.innerHTML ="Translation of a large texts is available in Client for Google Translate. <a href='/download.php'>Download Now!</a>";
				  prg.style.display="none";
			}else{
				google.language.translate(text, src, dest,  function(result) {
				if (result.translation) {
				  translated.innerHTML = result.translation;
				  prg.style.display="none";
				}
		 		});
			}
	}	  

}


function ajaxresponse(){
try {
	var i;
	for(i=0;i<http_request.length;i++){
		if(!ajaxcomplete[i]){
			
			if(http_request[i].readyState==4){
				
				ajaxcomplete[i]=true;
				func=ajaxresponsefunc[i];
				func(http_request[i].responseText);
				return;
			}
		}
	}
}catch(e){}
}


function nullfunc(){return;}

function Ajax(url,val,func) {
	assinc=!(func==null);
	sid=-1;
	for(i=0;i<http_request.length;i++){
		if(ajaxurls[i]==url){
			sid=i;
			http_request[sid].abort();
			break;
		}
	}
	
	if(sid=-1){
		sid=http_request.length;
	}

	ajaxcomplete[sid]=false;
	ajaxurls[sid]=url;
	http_request[sid] = false;
	ajaxresponsefunc[sid]=func;
//	alert(sid+" | "+url);
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request[sid] = new XMLHttpRequest();
		if (http_request[sid].overrideMimeType) {
			http_request[sid].overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request[sid] = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request[sid] = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	
	if (!http_request[sid]) {
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}


	if(assinc)	http_request[sid].onreadystatechange = ajaxresponse;
	http_request[sid].open('POST', url, assinc);

	http_request[sid].send(""+val+"");

	
	
	if(!assinc){
		return http_request[sid].responseText;
	}
}


function finde(id){
	for(i=document.forms.length-1;i>=0;i=i-1){
		frm=document.forms[i];
		for(j=frm.elements.length-1;j>=0;j=j-1){
			if(frm.elements[j]){
				e=frm.elements[j];
				if(e.name){
					if(e.name==id){
						return e;
					}else{
						if(e.id){
							if(e.id==id){
								return e;
							}
						}							
					}
				}else{
					if(e.id){
						if(e.id==id){
							return e;
						}
					}				
				}
				
			}
		}
	}
}

function gete(id){
	try	{
		return document.getElementById(id); 
		}
	  catch(ex){
		return false;
		}	
	
}



function trim(str)
{
     s = str.replace(/^(\s)*/, '');
     s = s.replace(/(\s)*$/, '');
     return s;
}



//google.setOnLoadCallback(initialize);

	function Paste()
	{ 
document.getElementById("text").focus();
PastedText = document.getElementById("text").createTextRange();
PastedText.execCommand("Paste");
	}


	function setlist(id,val){
		var s=document.getElementById(id);
		for (i=0;i<s.length;i++){
			if(s.options[i].value==val){
s.selectedIndex=i;
return;
			} 
		}
	}

	function seldir(s){

		if(s==1){
			var s1=document.getElementById("selfrom");
			var s2=document.getElementById("selto");

			if(s1.value=="auto") setCookie("googletranslatedic1","",365);
			else setCookie("googletranslatedic1",s1.value,365);
		}else{
			var s2=document.getElementById("selfrom");
			var s1=document.getElementById("selto");

			if(s1.value=="auto")	setCookie("googletranslatedic2","",365);
			else setCookie("googletranslatedic2",s1.value,365);
		}

		if(s1.value==dic1 && s2.value=="auto"){
for (i=0;i<s2.length;i++){
if(s2.options[i].value==dic2){
	s2.selectedIndex=i;
	return;
} 
			}
		}

		if(s1.value==dic2 && s2.value=="auto"){
for (i=0;i<s2.length;i++){
if(s2.options[i].value==dic1){
	s2.selectedIndex=i;
	return;
} 
			}
		}



	}

	function swap(){
		var s1=document.getElementById("selfrom");
		var s2=document.getElementById("selto");

		v1=s1.value;
		v2=s2.value;

		for (i=0;i<s1.length;i++){
			if(s1.options[i].value==v2){
s1.selectedIndex=i;
break;
			} 
		}

		for (i=0;i<s2.length;i++){
			if(s2.options[i].value==v1){
s2.selectedIndex=i;
break;
			} 
		}		

	}

	function setCookie(c_name,value,expiredays)
	{
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+
	((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
	}

	function getCookie(c_name)
	{
	if (document.cookie.length>0)
	  {
	  c_start=document.cookie.indexOf(c_name + "=");
	  if (c_start!=-1)
		{
		c_start=c_start + c_name.length+1;
		c_end=document.cookie.indexOf(";",c_start);
		if (c_end==-1) c_end=document.cookie.length;
		return unescape(document.cookie.substring(c_start,c_end));
		}
	  }
	return "";
}
