
function compareByText(arg1, arg2)
{
  if(arg1.text > arg2.text)	
  	return 1;
  if(arg1.text < arg2.text)
	return -1;	
  return 0;	
}

function fillList(name, arr)
{
	arr.sort(compareByText);
	var ctrl = document.f[name];
	ctrl.length = 0;
	for(var i = 0; i < arr.length; i++) {
		ctrl.options[i] = arr[i];

	}
}

function selListItem(name, value)
{
	if(!value)
		return;
	var ctrl = document.f[name];
	for (var i = 0; i<ctrl.length; i++ ) {
		if(ctrl[i].value == value) {
			ctrl[i].selected = 1;
			return;
		}
	}
}

function fillSrcList(src, tgt, srv)
{
	var srcList = new Array();
	for (var i=0; i<srcLang.length; i++) {
		if(srcLang[i].pairs != "") {
			srcList[srcList.length] = new Option(srcLang[i].name, i);
		}
	}
	fillList('srclang', srcList);
	src = (src) ? src : getCookie('src');
	selListItem('srclang', src);
	tgt = (tgt) ? tgt : getCookie('tgt');
	srv = (srv) ? srv : getCookie('srv');
    onSrcChange(tgt, srv);
}

function onSrcChange(tgt, srv)
{       
	var sPairs=srcLang[document.f.srclang.options[document.f.srclang.selectedIndex].value].pairs;

for (i=0; i<tgtLang.length; i++)
		tgtLang[i].selected=false;
	var tgtList = new Array();  
	for (i=0; i<sPairs.length/2;i++) {
		tgtLangPair=sPairs.charCodeAt(i*2)-48; 
//alert(tgtLangPair);	

		if (!tgtLang[tgtLangPair].selected) {
    		tgtList[tgtList.length] = new Option(tgtLang[tgtLangPair].name, tgtLangPair);

	    	tgtLang[tgtLangPair].selected=true;
        	}
	}
	 fillList('tgtlang', tgtList);
	 selListItem('tgtlang', tgt);
	onTgtChange(srv);



//if(	srcLang[document.f.srclang.options[document.f.srclang.selectedIndex].value].name != "English" && 
//	srcLang[document.f.srclang.options[document.f.srclang.selectedIndex].value].name != "Russian" && 
//	srcLang[document.f.srclang.options[document.f.srclang.selectedIndex].value].name != "French" && 
//	srcLang[document.f.srclang.options[document.f.srclang.selectedIndex].value].name != "Portuguese" &&
//	srcLang[document.f.srclang.options[document.f.srclang.selectedIndex].value].name != "German" && 
//	srcLang[document.f.srclang.options[document.f.srclang.selectedIndex].value].name != "Italian" &&
//	srcLang[document.f.srclang.options[document.f.srclang.selectedIndex].value].name != "Spanish" &&
///	srcLang[document.f.srclang.options[document.f.srclang.selectedIndex].value].name != "Ukranian"		 )
//		{
  //              document.f.autospell.disabled=true;                
//		}
//	else 
//		document.f.autospell.disabled=false;


    //setToolbarParams(0);
}

function onTgtChange(srv)
{
var sPairs=srcLang[document.f.srclang.options[document.f.srclang.selectedIndex].value].pairs;
var tgtLangSelected=document.f.tgtlang.options[document.f.tgtlang.selectedIndex].value;
//alert (aaa);
var srvList = new Array();  
//for (i=0; i<1; i++) //Server.length; i++)
  //Server[i].selected=false;
for (i=0; i<sPairs.length/2;i++)
  {
  tgtLangPair=sPairs.charCodeAt(i*2)-48;
  if (tgtLangPair==tgtLangSelected)
    {
    nServer=sPairs.charCodeAt(i*2+1)-48;
    if (!Server[nServer].selected) 
      {
      srvList[srvList.length] = new Option(Server[nServer].name, nServer);
      ServerSelection=nServer;
     // alert(Server[nServer].name);
      //Server[nServer].selected=true;
      }
    }
  }
	//fillList('server', srvList);
	//selListItem('server', srv);
	//onSrvChange();
}

function onSrvChange()
{
var srequestfFile = Server[
document.f.server.options[document.f.server.selectedIndex].value].f;
setFrameSource("requester", "transsrv/"+srequestfFile);

//var frmRequester=document.getElementById("requester");
//frmRequester.src="transsrv/"+srequestfFile;
}

function onReverse()
{
	var src = document.f.srclang.options[document.f.srclang.selectedIndex].value;
	var tgt = document.f.tgtlang.options[document.f.tgtlang.selectedIndex].value;
	//var srv = document.f.server.options[document.f.server.selectedIndex].value;
	var sPairs=srcLang[tgt].pairs;
	
	for (i=0; i<sPairs.length/2;i++) {
	  tgtLangPair=sPairs.charCodeAt(i*2)-48;
	  curSrv = sPairs.charCodeAt(i*2 + 1)-48;
	  if(tgtLangPair == src /* && curSrv == srv*/) {
	  fillSrcList(tgt, src);//fillSrcList(tgt, src, srv);
	  //	setSelValues(tgt, src, srv);
	  	return;
	  }
   }
}

function setSelValues(src, tgt, srv)
{
	var from = document.f.srclang;
	for (var i = 0; i<from.length; i++ ) {
		if(from[i].value == src) {
			from[i].selected = 1;
			onSrcChange();
			break;
		}
	}
	var to = document.f.tgtlang;
	for (i = 0; i<to.length; i++ ) {
		if(to[i].value == tgt) {
			to[i].selected = 1;
			onTgtChange();
			break;
		}
	}

	var server = document.f.server;
	for (i = 0; i<server.length; i++ ) {
		if(server[i].value == srv) {
			server[i].selected = 1;
			break;
		}
	}
	onSrvChange();
}

