pyTra=0;pySel=-1;ns=1;pyQtt=10;pyLmt=0;pyLst=0;pyPgs=0;pyQry="";TXT=new Object;TXT.toClip="Cannot copy"
function initPy(){
	ns=navigator.appName=="Netscape"?1:0
	pyElm=document.getElementById("pyEdt");
	pyWdw=ns?pyElm.contentWindow:pyElm;
	pyDoc=pyElm.contentDocument?pyElm.contentDocument:pyElm.contentWindow.document
	pyVwElm=document.getElementById("pyVw");
	pyVwDoc=pyVwElm.contentDocument?pyVwElm.contentDocument:pyVwElm.contentWindow.document
	pyDoc.designMode="On"
	if(!ns){
		pyDoc.open()
		pyDoc.write("<html><head><link rel=\"stylesheet\" href=\"py.css\" type=\"text/css\"></head><body></body></html>")
		pyDoc.close()
	}
	addEvent(pyDoc,"keydown",pyKeyDwn)
	addEvent(pyDoc,"keyup",pyKeyUp)
	addEvent(document,"keydown",chkPy)
	with(document.getElementById("pyIpt")){
		onkeyup=keyUpPy
		focus()
	}
}
py="";function chkPy(ev){
	var key=(ns?ev.which:ev.keyCode);var kc=String.fromCharCode(key).toLowerCase();//if(ev.shiftKey&&key!=16)alert(key)
	if(key==13){pyGotIt((pySel>0?pySel:0));cancelEvt(ev)} // enter
	if(key==40||(key==38&&!ev.ctrlKey))selPy(key!=38?1:-1)// flèches haut bas
	if(key==33||key==34){// page haut bas
		cancelEvt(ev)
		var n=pyLmt+(key!=34?-1:1)
		if(n>-1&&n<pyPgs){pyLmt=n;pySearch()}
	}
	var pkc=parseInt(kc);if(!ev.shiftKey&&pkc>-1&&pkc<10&&pkc<pyLst+1){pyGotIt(pkc>0?pkc-1:9);cancelEvt(ev)}
	okPy=(ev.shiftKey&&key>48&&key<54)||(key>64&&key<91)||kc==" "||key==8||key==46||key==192||key==191 // 1->5 A->Z espace backspace del % /
}
function setPyIpt(val){
	document.getElementById('pyIpt').value=val;pySearchTimedOut();return false
}
function toStatus(t){
	document.getElementById("status").innerHTML=t
}
function pyGotIt(n){ // insertion du py dans
	var p=document.getElementById("pyTdv"+n).innerHTML
	insertText(/*" <a title=\""+p+"\">"+*/document.getElementById("pyTd"+n).innerHTML.replace(/<(.*?)>/g,"")/*+"</a> "*/)
	document.getElementById("pyIpt").value=""
	var x=pyDoc.body.innerHTML.split("<");var TX=x[0];for(var i=1;i<x.length;i++){
		var y=x[i].substr(0,1).toLowerCase();var p=x[i].indexOf(">");TX+=(y!="a"&&y!="/"?"<"+x[i]:x[i].substr(x[i].indexOf(">")+1))
	}
	//var TX=pyDoc.body.innerHTML.replace(/\<\/a\>/gi,"").replace(/\<\a(.*?)\>/gi,"").replace(/\&nbsp\;/g," ")
	//pyToVw()
}
S=0;TS="";function getSelected(){if(ns){pyWdw.focus();S=pyWdw.getSelection();if(S)TS=S.toString()}else{pyElm.contentWindow.focus();S=pyDoc.selection.createRange()}document.getElementById("pyIpt").focus()}
function insertText(t){ // ok means delete contents of selection
	if(!S)getSelected()
	if(ns){
		if(TS!="")S.deleteFromDocument()// a cause de inserthtml qui ne remplace pas le texte sélectionné
		else S.collapseToStart()
		pyDoc.execCommand('insertHTML', false, t);
	}else{
		S.pasteHTML(t)
	}
}
function pyToVw(){
	var TX=pyDoc.body.innerHTML.replace(/\<\/a\>/gi,"").replace(/\<\a(.*?)\>/gi,"").replace(/\&nbsp\;/g," ").replace(/<br(.*?)>/g,"\n")
	toClip(TX.replace("<br>","\n"))
//	pyDoc.body.innerHTML=TX.replace(/./g,"。")
	t=ajaxP("chToPy.php?t="+TX+(pyTra?"&tra=1":""));
}
    function ajaxP(url) {
        AJX=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP")
		var dta=url.split("?")
		with(AJX){
			open("POST",dta[0],true);
			setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=gb2312");
			send(dta[1]);
			onreadystatechange=function(){if(AJX.readyState==4)pyVwDoc.body.innerHTML=responseText}
		}
	}

pyRqs=0;function pySearch(){pyRqs++;setTimeout("pySearchOk()",333)}
function pySearchOk(){
	pyRqs--;if(pyRqs<1)pySearchTimedOut()
}
pyClass="";pyClass1="";function pySearchTimedOut(){
	var tx=document.getElementById("pyIpt").value;
		pyLst=0;lngVal=document.getElementById("lgT").value
		var t=ajax("qry.php?py="+encodeURIComponent(tx)+(pyTra?"&tra=1":"")+"&qtt="+pyQtt+"&lmt="+pyLmt+pyQry+(pyClass!=""?"&class="+pyClass:"")+(pyClass1!=""?"&class1="+pyClass1:"")+"&lgT="+lngVal);
		var p="";if(t.substr(0,3)!="$*$"){
			var x=t.split("$*$\n");pyLst=x.length-1;pyPgs=x[pyLst]/pyQtt;
			p="("+
					((-tx!=""&&tx!="/")||pyClass!=''?" <a href='' onclick=\"pyPrt();return false\" title=\"Show all for printing purpose\">Print</a> ":"")+
					x[pyLst]+" "+(tx=="%"?"sounds":(tx=="%/"?"toned sounds":(tx=="%/%"?"characters":"words")))+
					" <a href=javascript:shwHlp(5)>?</a>"+
				") "
			if(pyPgs>1){
				for(var i=0;i<pyPgs;i++)p+=(i!=pyLmt?"<a href=\"javascript:pyLmt="+i+";pySearch()\">":"<font>")+(i+1)+(i!=pyLmt?"</a>":"</font>")+" "
			}
			t="";yP="";for(var i=0;i<pyLst;i++){
				var y=x[i].split("$*$")
				var col=i/2!=parseInt(i/2)?"fafafa":"f3f3f3"
				var okS=y[1]!=yP;if(okS)yP=y[1];var y4=y[4].replace(/\//g,"/<br>")
				t+=	"<tr style='background-color:#"+col+"' id=pyTr"+i+">"+
							"<td width=9>"+(i<9?i+1:(i!=9?"":0))+" </td>"+
							"<td width=18>"+(y[3]==1?"<a href=\"javascript:playSnd('"+y[1].replace("5","0")+"')\"><img src=\"img/snd.gif\" border=0 /></a>":"")+"</td>"+
							(y[2]?"<td id=pyTnd"+i+" width=18>"+(okS?y[2]+"&nbsp;":"")+"</td>"+"<td width=18 id=pyTdv"+i+" nowrap value="+y[4]+" align=right>"+"&nbsp;"+y[1].replace(/ /g,"")+"&nbsp;&nbsp;"+"</td>":"")+
							"<td id=pyTd"+i+" class=bigPy nowrap><a href=\"javascript:pyGotIt("+i+")\">"+y[0]+"</a>&nbsp;</td>"+
							(lngVal!="py"?"<td nowrap>"+(secure?"<a href='javascript:chngTrs("+y[6]+","+i+")'><span id=S"+i+">"+(y4!=""?"":"( n.d. )"):"")+y4+(secure?"</span></a>":"")+"</td>":"")+
							"<td id=pyTdC"+i+" value="+y[0]+"></td>"+
						"</tr>"
			}
			p=	"<table border=0 cellspacing=0 align=center valign=top>"+
							t+
							"<tr><td colspan=7 style='overflow:hidden' align=center width=333><div style='height:100px;overflow:auto'>"+p+"</div></td></tr>"+
					"</table>"
			pySel=-1;
		}else{
			if(pyLmt>1)pyLmt--
		}
		document.getElementById("pyDv").innerHTML=p
		document.getElementById("pyIpt").focus()
//		document.getElementById("pyEdt").style.height=(ns?innerHeight:document.body.clientHeight)/2-23
	//	document.getElementById("pyVw").style.height=(ns?innerHeight:document.body.clientWidth)/2-23
		//setSels()
}
function chngTrs(id,i){
	var txt=document.getElementById("S"+i).innerHTML.replace(/<br>/g,"").replace(/\n/g,"").replace(/\r/g,"")
	var t=prompt("Change the text",txt);
	if(t)document.getElementById("S"+i).innerHTML=ajax("trs.php?op=trs&id0="+id+"&lgT="+document.getElementById("lgT").value+"&trs="+encodeURIComponent(t))
}
function playSnd(fil){
	document.getElementById("mp3").innerHTML="<embed src=\"mp3.php?playList="+fil+"\" type=\"application/x-mplayer2\" autostart=\"1\" loop=\"0\" volume=\"-300\" height=0></embed>"
}
function keyUpPy(ev){
	var t=document.getElementById("pyIpt").value
	if(okPy){
		pyQry="";pyLmt=0
		pySearch()
	}
}
function selPy(n){
	if(pySel>-1)document.getElementById("pyTdv"+pySel).style.color="navy"
	var m=pySel+n;if(m>-1&&m<pyLst)pySel=m
	if(pySel<pyLst&&pySel>-1){
		document.getElementById("pyTdv"+pySel).style.color="red"
		document.getElementById("pyIpt").value=document.getElementById("pyTdv"+pySel).innerHTML.replace(/<(.*?)>/g,"").replace(/&nbsp;/g,"")
	}
	if((m==-1&&pyLmt>0&&n==-1)||(m>pyQtt-1&&n==1)){pyLmt+=n;pySearch()}
}
function pyKeyDwn(ev){
	var key=(ns?ev.which:ev.keyCode);var kc=String.fromCharCode(key).toLowerCase();
	if((!ev.ctrlKey&&!ev.shiftKey&&((key>48&&key<53)||(key>64&&key<91)))||(ev.shiftKey&&key==191)){cancelEvt(ev)}
/*	with(document.getElementById("pyIpt")){
		if((!ev.ctrlKey&&!ev.shiftKey&&((key>48&&key<53)||(key>64&&key<91)))||(ev.shiftKey&&key==191)){ // 1->5 A->Z espace
			cancelEvt(ev);getSelected()
			value=ev.shiftKey&&key==191?"/":String.fromCharCode(key).toLowerCase()
			setTimeout("pyQry='';pySearch()",33);
			okPy=0
			focus()
			if(!ns){
					var range=createTextRange();
					range.collapse(true)
					range.moveStart('character', 1);
					range.moveEnd('character',1);
					range.select();
			}
		}
	}*/
	var ary=Array(188,"，",190,"。","~","、");for(var i=0;i<ary.length;i+=2)if(key==ary[i]){insertText(" "+ary[i+1]+" ");cancelEvt(ev)}
}
function pyKeyUp(ev){
	var key=(ns?ev.which:ev.keyCode);var kc=String.fromCharCode(key).toLowerCase()
	if(ev.ctrlKey && (key==40||kc=="v"))pyToVw()// ctrl down or paste => translate the whole lot
//	if(ev.ctrlKey&&kc=="v")alert(pyDoc.body.innerHTML)
}
function addEvent(obj,evt,fnt){if(ns)obj.addEventListener(evt,fnt,false);else obj.attachEvent("on"+evt,fnt)}
function rmvEvent(obj,evt,fnt){if(ns)obj.removeEventListener(evt,fnt,false);else obj.detachEvent("on"+evt,fnt)}
function cancelEvt(ev){if(ns){ev.preventDefault();ev.stopPropagation();return false}else{ev.cancelBubble=true;ev.returnValue=false;}}

