var lasttext;
var selecteditem;
var templ=new Array();
var transmode=0;
var trans_arr=Array();
var timerefresh;
var cache;
var hist=0;
var translated=0;

bgico=new Image;
bgico.src="images/bgico.png";

function savecookie(name, value, expire){
	if(expire==undefined){
		expire="";	
	}
	Ajax("/savecookie.php?name="+name+"&expire="+expire,value);
}


function gete(id){
	return document.getElementById(id);
}

function getkey(e){
	if(window.event) // IE
	{
		return e.keyCode
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		return e.keyCode
	}
}




function gettranslate(){
	translated=1;
	fldtext=document.getElementById("text");
	//alert(fldtext.value);
	document.getElementById("dicinfo").style.display="none";
	fldlist=document.getElementById("list");
	fldlist.style.display="block";
	fldlist.innerHTML="<img src='/images/pb.gif' width='108' height='5' >";

	fldtrans=document.getElementById("trans");
	fldtrans.style.display="block";
	//fldtrans.innerHTML="processing...";

	transmode=1;

	Ajax("/dictionary.php?dic="+dic+"&translate=1",fldtext.value, translate);
}

function textpress(fldtext,e){

  if(getkey(e)==40){
	if(!transmode){
		filllist(templ);
		if(selecteditem<templ.length-1){
			selecteditem=selecteditem+1;
		}
		selectitem(selecteditem);
	}
	return;
  }

  if(getkey(e)==37 || getkey(e)==39){
  	if(transmode){
		return;
	}
  }

  if(getkey(e)==38){
	if(!transmode){
		filllist(templ);

		if(selecteditem>0){
			selecteditem=selecteditem-1;
			selectitem(selecteditem);
		}else{
			selecteditem=-1;
			fldtext.value=lasttext;
			document.getElementById("list").style.display="none";
		}
	}
	return;
  }
 
  if(getkey(e)==13){
  	//if(!transmode){
		selecteditem=0;
		gettranslate();
  	//}
	return;
  }

	selecteditem=-1;
	filllist(templ);
	lasttext=fldtext.value;

}

function backtranslate(){
	if(http_request.readyState==4){
		//alert(http_request.responseText);
		if(http_request.responseText){
			stat=http_request.responseText.split("\r");
			for(i in stat){

				//alert(stat[i]);

				wt=stat[i].split("\t");
				word=wt[0];
				trans=wt[1];

				if(span=gete("_trans_"+word)){
					span.title=trans;
				}
			}
			//
		}
	}
}

function showhist(hstlnk){
	shwhst=!shwhst;
	if(shwhst){
		document.getElementById("hist_"+(hist-1)).style.display="block";
		hstlnk.innerHTML="-";
		savecookie("showhistory",1);
	}else{
		document.getElementById("hist_"+(hist-1)).style.display="none";
		hstlnk.innerHTML="+";
		savecookie("showhistory",0);
	}
	document.getElementById("text").select();
}


function icoclick(event,td,eng){
	H=parseInt(document.body.clientHeight);
	W=parseInt(document.body.clientWidth);

	//alert(event.clientY+" "+H);
	
	if((event.clientY >(H-50)) && (event.clientX >(W-40))){
		if(eng){
			window.parent.location="http://pereslov.ru/inter.php";	
		}else{
			window.parent.location="http://pereslov.ru";	
		}
	}
}

function offsetPosition(element) {
  var offsetLeft = 0, offsetTop = 0;
  do {
    offsetLeft += element.offsetLeft;
    offsetTop  += element.offsetTop;
  } while (element = element.offsetParent);
  return [offsetLeft, offsetTop];
}

function translate(){

	if(http_request.readyState==4){

		decor="onmousemove='this.style.backgroundColor=\"#ffffbb\"'  onmouseout='this.style.backgroundColor=\"\"'";

		transmode=1;
		document.getElementById("dicinfo").style.display="none";
		fldtext=document.getElementById("text");
		fldlist=document.getElementById("list");

		fldlist.style.display="none";
		fldtrans=document.getElementById("trans");
		fldtrans.style.display="block";
		fldlist.innerHTML="";
		
		fldtext.select();
		
		if(hist>0){
			if(shwhst) document.getElementById("hist_"+hist).style.display="block";
			else document.getElementById("hist_"+hist).style.display="none";
			if(hist>1){
				document.getElementById("hist_"+(hist-1)).style.display="block";
				document.getElementById("histlink_"+(hist)).innerHTML="";
				document.getElementById("histlink_"+(hist)).style.display="none";
			}
		}
		hist++;
		
		t="<div style='display:block' id='hist_"+hist+"'>";

		if(http_request.responseText){

			n=0;
			trans_arr=Array();
			arr=http_request.responseText.split("\r");
			
			for(i in arr){

				stat=arr[i].split("\t");

				trans=stat[1].split(",");

				t=t+"<div style='padding-top:14'><b>"+stat[0]+"</b><br>";
				pr=-1;
				wrds=new Array();
				for(j in trans){
					r=trans[j].split(";");

					if(r[1]!=pr && j!=0){
						t=t+"<div style='padding-top:4'><font color='#999999'>&#8226;</font> ";
						for(k in wrds){

							if(k>0) t=t+", ";
							t=t+"<span " + decor + " style=' cursor:default' id='_trans_" + wrds[k] + "'>" + wrds[k] + "</span>";
							trans_arr[n]= wrds[k];
							n++;
						}
						wrds=new Array();
						t=t+"</div>";

					}

					wrds[wrds.length]=r[0];
					pr=r[1];
				}

				t=t+"<div style='padding-top:4'>";
				if(arr.length>1) t=t+"<font color='#999999'>&#8226;</font> ";
				for(k in wrds){
					if(k>0) t=t+", ";
					t=t+"<span " + decor + " style=' cursor:default' id='_trans_" + wrds[k] + "'>" + wrds[k] + "</span>";
					trans_arr[n]= wrds[k];
					n++;
				}
				t=t+"</div></div>";
				//t=t+"<br>";
			}

				if(shwhst) p="-";
				else p="+";
				if(hist>1) t=t+"<div title='история переводов' align='right' style='border-bottom:#CCCCCC solid 1px; margin-right:4; height:12; cursor:pointer' id='histlink_"+hist+"' class='cmmnt' onclick='showhist(this)'>"+p+"</div>";

			//t=t+"<div style='padding-top:4; font-size=10px' align='right'><a target='_blank' href='http://gettranslite.com'>www.gettranslite.com</a></div>";
			
			v=trans_arr.join(",");
			Ajax("/dictionary.php?dic="+dic+"&bt=1",v, backtranslate);

			//dv=gete("_trans_1");
			//dv.title='test, best, next, good, well, fuck, next, bad';

		}else{
			t="<b>"+fldtext.value+"</b><br>[нет перевода]";
		}
		fldtrans.innerHTML=t+fldtrans.innerHTML+"</div>";;
		
	}
	
}

function textkeyup(){
	//alert(timerefresh);
	//clearTimeout(timerefresh);
	fldtext=document.getElementById("text");
	if(selecteditem==-1) {
		if(lasttext!=fldtext.value && fldtext.value.length>0){
			lasttext=fldtext.value;
			Ajax("/dictionary.php?dic="+dic+"&word=1",fldtext.value, autocomplete);
			fldlist=document.getElementById("list");
			fldlist.innerHTML="<img src='/images/pb.gif' width='108' height='5' >";

		}
	}
}

function autocomplete(v){
	//alert(http_request.responseText);
	if(http_request.readyState==4){
		templ=http_request.responseText.split("\r")
		//alert(http_request.responseText);
		filllist(templ);
	}
}

function filllist(lst,sel){

  transmode=0;

  fldlist=document.getElementById("list");
  fldtext=document.getElementById("text");

  fldtext.focus();
  document.getElementById("dicinfo").style.display="none";
  fldtrans=document.getElementById("trans");
  //fldtrans.style.display="none";

  t=fldtext.value;


  	fldlist.style.display="block";
	t="";
	for(i in lst){
		t=t+"<div id='listitem"+i+"' ondblclick='gettranslate()' onmousedown='filllist(templ,"+i+")' style='padding-left:2'>"+templ[i]+"</div>";
	}
	fldlist.innerHTML=t;

	if(sel!=null) selectitem(sel);
	//.innerHTML=111;
//	}
}

function showinfo(){
	
	if(document.getElementById("dicinfo").style.display=="block"){
		document.getElementById("dicinfo").style.display="none";
		document.getElementById('text').focus();
		document.getElementById('text').select();
		document.getElementById("trans").style.display="block";
		document.getElementById("trans").innerHTML=cache;
	}else{
		document.getElementById("list").innerHTML="";
		document.getElementById("list").style.display="none";
		cache=document.getElementById("trans").innerHTML;
		document.getElementById("trans").innerHTML="";
		document.getElementById("trans").style.display="none";
		document.getElementById("dicinfo").style.display="block";
		
	}
	
}

function selectitem(i){

	if(l=document.getElementById("listitem"+i)){
		fldtext=document.getElementById("text");

		selecteditem=i;
		l.style.backgroundColor="#316AC5";
		l.style.color="#ffffff";

		fldtext.value=l.innerHTML;

	}
}

function trans(e){

	keynum=getkey(e);


	if(focusid=="text"){
		if(keynum==13){
			alert("textok");
		}

	}

	if(focusid=="list"){
		if(keynum==13){
			alert("listok");
		}



	}
	//alert(keynum);

}