/*
*HanWJ Chinese Online Typing v1.0
*Copyright 2007 HanWJ.com. All Rights Reserved.
*Author:Jiang,Yi. www.hanwj.com, www.typingchinese.com.
*Released Date: 2007/08
*
*COPYRIGHT NOTICE
*
*HanWJ Chinese Online Typing may be used and modified free of charge by anyone 
*so long as this copyright notice and the comments above remain 
*intact. This program is distributed in the hope that it will be 
*useful, but WITHOUT ANY WARRANTY; without even the implied 
*warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*Selling the code for this program without prior written consent 
*is expressly forbidden. In other words, please ask first before 
*you try and make money off of my program.
*
*Obtain permission before redistributing this software over the 
*Internet or in any other medium. In all cases this copyright and
*header must remain intact.
*/
var shiIE=1;
var shiNS=0;
var shiMac=0;

var zTai=false;
var sChn="中";
var sEng="英";
var QuanJio=0;
var sQuanJio="全角";
var sBanJio="半角";
var bioDianKuan=0;
var yigKuan=true;
var cZBiaoDian="中文标点";//"，。";
var cYBiaoDian="西文标点";//", .";
var cYQuan="西文全角";
var cZBan="西文半角";
var deltaX=0;
var deltaY=0;
var m_qiojian="";
var m_dio=0;
var m_bihuas = [];
var gnBihua=0;
var tones="－／∨＼.";
var dragging=false;
var dragbar;
var ctrlbarLeft,ctrlbarTop,ptrX,ptrY;
var focusElem=document.body;
var m_numFenHaoInMiddle=-1;
var	m_lastKey1, m_lastKey2;
var m_strKeySeqInsertPt=0;
var maxCodes=12;

var nZis=44056;//126*191;
var zziShuJu=new Array(nZis+32);
var pyci=[];

var bShowTip=1;
var strTip="";
var nullArr=[];
var zzuZiCi = [];
var zzuZiCiBk = [];
var noPerPage=10;
var nPages=0;
var curPage=0;
var remainder=0;
var curPageSize=10;

var chogXuanTai=-1;
var chogXuanWei=-1;
var yuandian=0;
var zuCiTai=0;
var ciChuan=[];

var shugYinZuo=1;
var danYinZuo=1;
var zhShu=0;
var daxieshu="十一二三四五六七八九Ｏ";
var daxieshuFan="拾壹贰叁肆伍陆柒捌玖零";
var suoyinchag=18954;//26*27*27;
var suoyin=new Array(suoyinchag);
var yunMu="aeiouv";
var yunMu2="iuv";
var yunMuGHou="aeo";
var shegMu2="zcs";
var iaoQian="bpmdtnljqx";
var uiChn=1;
var yuyan=0;//0=Zhog,1=Yig,2=FR,3=De,
var yuyanShujuWei=0;
var yuyanShuju=new Array(2);

var test=1;


function InitApp()
{
	shiIE = (document.all) ? 1 : 0;
//shiNS = (document.layers) ? 1 : 0;
//shiMac = (navigator.appVersion.indexOf("Mac") != -1) ? 1 : 0;


	uiChn='c'==document.lstLang.curLang.value;
	if(uiChn)
		yuyan = 0;
	else if('e'==document.lstLang.curLang.value)
		yuyan=1;
	else if('f'==document.lstLang.curLang.value)
	{//France
		yuyanShujuWei=0;
		yuyan=2;
	}
	else if('d'==document.lstLang.curLang.value)
	{//German
		yuyanShujuWei=1;
		yuyan=3;
	}
//alert(yuyan);

	yuyanShuju[0]=new Array(6);//0=dio1,1=heg,2=shu,3=pie,4=na,5=zhe
	yuyanShuju[1]=new Array(6);
	if(shiIE)
	{
		yuyanShuju[0][0]=222;
		yuyanShuju[0][1]=219;
		yuyanShuju[0][2]=187;
		yuyanShuju[0][3]=221;
		yuyanShuju[0][4]=186;
		yuyanShuju[0][5]=192;

		yuyanShuju[1][0]=220;
		yuyanShuju[1][1]=219;
		yuyanShuju[1][2]=221;
		yuyanShuju[1][3]=186;
		yuyanShuju[1][4]=187;
		yuyanShuju[1][5]=192;
	}
	else
	{
		yuyanShuju[0][0]=222;
		yuyanShuju[0][1]=219;
		yuyanShuju[0][2]=61;
		yuyanShuju[0][3]=221;
		yuyanShuju[0][4]=59;
		yuyanShuju[0][5]=192;

		yuyanShuju[1][0]=220;
		yuyanShuju[1][1]=219;
		yuyanShuju[1][2]=221;
		yuyanShuju[1][3]=59;
		yuyanShuju[1][4]=61;
		yuyanShuju[1][5]=192;
	}

	if(!uiChn)
	{
		sChn="Chn";
		sEng="West";
		QuanJio=0;
		sQuanJio="Full";
		sBanJio="Half";
		cZBiaoDian="Chn Punc";//"，。";
		cYBiaoDian="West Punc";//", .";
		cYQuan="West/Wide";
		cZBan="West/Half";
	}
	Chinese_Notes.focus();

	HuanZY();
	HuanKuan();
	HuanBiaoDian();
	HuanYigKuan();

	XianTiShi("<font color=#ff0000>正加载词库,请稍等...</font>");

	var i,j;
//alert(pyci0.substr(0,23));
	pyci=pyci0.split(';');
	pyci0.length=0;
//	var pyci2=pyci1.split(';');
//	for(i=0;i<pyci2.length;i++)
//		pyci[pyci.length]=pyci2[i];
	for(j=0;j<suoyinchag;j++)
		suoyin[j]=0;
//	var zuida=0;
//alert(pyci.length);
	for(j=0;j<pyci.length;j++)
	{
		if(1>pyci[j].length)
		{
alert(pyci[j].length);
alert(pyci[j][0]);
alert(pyci[j-1].length);
alert(pyci[j-1][0]);
			continue;
		}
		pyci[j]=pyci[j].split(',');
if(2>pyci[j].length)
{
alert(j);
alert(pyci[j].length);
alert(pyci[j][0]);

}

		pyci[j][1]=pyci[j][1].split(' ');
		weizhi=NaPySuoYinWei(pyci[j][0]);
if(0)//test&&'z'==pyci[j][0].substr(0,1))
{
test=0;
alert(j);
alert(pyci[j][0]);
}
		if(0==suoyin[weizhi])
		{
			suoyin[weizhi]=j;
//			if(zuida<weizhi)
//				zuida=weizhi;
		}
	}
//	if(zuida<suoyinchag-1)
//		suoyin[zuida+1]=-1;
//alert(pyci.length);
//alert(pyci[3][0]);
//alert(pyci[3][1]);

	if(!shiIE)
	{
		jianQieNiu.disabled=0;
		kaoBeiNiu.disabled=0;
		shanChuNiu.disabled=0;
		nianTieNiu.disabled=0;
	}

	OnSelChg();

	deltaX=document.body.scrollLeft+document.body.clientWidth-StyleLeft(ctrlbar);
	deltaY=StyleTop(ctrlbar)-document.body.scrollTop;

	document.onmousedown=OnMouseDown;
	document.onmouseup=OnMouseUp;
	document.onselectionchange=OnSelChg;
	document.onfocusin=OnFocusIn;
	document.onkeypress=OnKeyPress;
	document.onkeydown=OnKeyDown;
	document.onmousemove=OnMouseMove;
	if(shiIE)
	{
		window.onscroll=RePositionCtrlbar;
		window.onresize=RePositionCtrlbar;
		ctrlbar.onclick=OnClick;
	}
	focusElem=Chinese_Notes;

	for(i=0; i<4; i++)
		m_bihuas[i] = 0;

	SetKeyPane();

	JiaZaiZiXinXi();

	if(2>yuyan)
		XianTiShi("");
	else if(2==yuyan)
		XianTiShi("ayez besoin de la disposition du clavier Frech");
	else if(3==yuyan)
		XianTiShi("Notwendigkeit deutscher Tastaturaufbau");

	var top=parseInt(keybar.style.top);
	if(0>top)
	{
		top=-top;
		keybar.style.top=top+'px';
	}
	top=parseInt(candybar.style.top);
	if(0>top)
	{
		top=-top;
		candybar.style.top=top+'px';
	}
	if(!shiIE)
	{
		btnKeys.style.cursor='move';
		btnKeys2.style.cursor='move';
		btnKeys3.style.cursor='move';
		keybar.style.cursor='move';
		SetStyleTop(keybar,142);
		SetStyleLeft(keybar,100);
		AnPyTioYiZiCiTio();
		tishi.style.visibility="visible";
	}
}
function XiaYiSuoYin(s)
{
	var i;
	for(i=s+1;i<suoyinchag;i++)
	{
		if(0<suoyin[i])
			return i;
		if(0>suoyin[i])
			return -1;
	}
	return -1;
}
function NaPySuoYinWei(py)
{
	n1=py.charCodeAt(0)-97;
	if(1==py.length)
	{
		n2=0;
		n3=0;
	}
	else
	{
		n2=py.charCodeAt(1)-96;
		if(2==py.length)
			n3=0;
		else
			n3=py.charCodeAt(2)-96;
	}
	return n1*729+n2*27+n3;
}
function JiaZaiZiXinXi()
{
	var s="";
	var i,j,k=0,l,m=0,m0,runlen=0,a,b,idx,flag,c,dio,ji6shu,bihua1,bihua2;
//alert(islower("A"));
//alert(isdigit("1"));
	for(i=0;i<44056;i++)
	{
		if(0<runlen)
		{
			zziShuJu[k]=0;
			runlen--;
		}
		else if("!"==ziXinXi0.charAt(m))
		{
			zziShuJu[k]=0;
			m++;
		}
		else if("#"==ziXinXi0.charAt(m))
		{
			m++;
			m0=m;
			while(isdigit(ziXinXi0.charAt(m) ) )
				m++;
			s=ziXinXi0.substr(m0,m-m0);
			runlen=parseInt(s)-1;
			zziShuJu[k]=0;
		}
		else
		{//if(isupper(ziXinXi0.charAt(m))||isupper(ziXinXi0.charAt(m+1)))
			c=0;
			var idxes=[0,0,0,0,0,0];
			var dios=[0,0,0,0,0,0];
			a=ziXinXi0.charCodeAt(m);
			b=ziXinXi0.charCodeAt(m+1);
			while(m<ziXinXi0.length)
			{
				if(0==c)
				{
					if(97>a)//upr
					{
						if(97>b)//upr
							flag=0;
						else
							flag=1;
					}
					if(97>b)//upr
					{
						if(96<a)
							flag=2;
					}
					if(97>a)//upr
						a+=32;
					if(97>b)//upr
						b+=32;
				}
				idx=(a-97)*26;
				idx+=b-97;
				idxes[c]=idx;
				m+=2;
				b=ziXinXi0.charCodeAt(m);//dio
				dios[c]=b;
				m++;
/*				s="";
				var pat=1;
				for(l=0;l<5;l++)
				{
					if(0!=(b&pat))
						s+=l;
					pat=pat<<1;
				}
				alert(s);*/
				bihua1=0;
				bihua2=0;
				if(isdigit(ziXinXi0.charAt(m) ) )
				{
//alert(ziXinXi0.charAt(m));
					bihua1=ziXinXi0.charCodeAt(m);
					bihua2=ziXinXi0.charCodeAt(m+1);
					m+=2;
				}
//alert(dicPy[idx]);
				a=ziXinXi0.charCodeAt(m);
				c++;

				var endIt=0;
				if(m<ziXinXi0.length)
				{
					a=ziXinXi0.charCodeAt(m);
					b=ziXinXi0.charCodeAt(m+1);
					if(97>a||97>b)
						endIt=1;
				}
				else
					endIt=1;
				if(0<endIt)
				{
					l=2;
					if(0<bihua1||0<bihua2)
						l++;
					zziShuJu[k]=new Array(l);
					var a1=new Array(c);
					var a2=new Array(c);
					for(l=0;l<c;l++)
					{
						a1[l]=idxes[l];//dicPy[idxes[l]];
						if(96>dios[l])
							dio = dios[l]-65;
						else
							dio = dios[l]-71;
						a2[l]=dio;
					}
					zziShuJu[k][0]=a1;
					zziShuJu[k][1]=a2;
					if(0<bihua1||0<bihua2)
					{//youbihua
						var bihuas=new Array(0,0,0);
						ji6shu=(bihua1-49)*26+bihua2-97;
						for(l=0;l<3;l++)
						{
							bihuas[l]=ji6shu%6;
							ji6shu=Math.floor(ji6shu/6);
						}
						zziShuJu[k][2]=bihuas;
					}
//alert(zziShuJu[k]);
					break;
				}
			}
		}
		k++;
		if(k>zziShuJu.length-1)
			return;
	}
//alert(zziShuJu[zziShuJu.length-113]);
	ziXinXi0.length=0;
}
function OnMouseDown(shijian)
{
	if(!shijian)
		shijian=window.event;
	var di=shijian.target||shijian.srcElement;
	if(di.className=="leiYiDogChug")
		dragbar=ctrlbar;
	else if(di.className=="leiYiDogChug2"||di.className=="leiYiDogChug3"
			||di.id=='jian')
		dragbar=keybar;
/*	else if("leiYiDogChug4"==di.className ||
         "leiYiDogChug41"==di.className ||
          "leiYiDogChug5"==di.className ||
           "clsPage"==di.className)
		dragbar=candybar;*/
	else
		dragbar=null
	if(null!=dragbar)
	{
		dragging=true;
		ptrX=shijian.clientX;
		ptrY=shijian.clientY;
		ctrlbarLeft=StyleLeft(dragbar);
		ctrlbarTop=StyleTop(dragbar);
	}
}
function OnMouseUp()
{
	dragging=false;
	with(document.body)
	{
		if(null!=dragbar)
		{
			deltaX=scrollLeft+clientWidth-StyleLeft(dragbar);
			deltaY=StyleTop(dragbar)-scrollTop;
		}
	}
}
function OnMouseMove(shijian)
{
	if(!shijian)
		shijian=window.event;
	if(dragging)
	{
		if(null!=dragbar)
		{
			SetStyleLeft(dragbar,ctrlbarLeft+shijian.clientX-ptrX);
			SetStyleTop(dragbar,ctrlbarTop+shijian.clientY-ptrY);
			AdjustPos();
			return false;
		}
	}
	return true;
}
function OnClick()
{
  Chinese_Notes.focus();
}
function AdjustPos()
{
	with(document.body)
	{
		if(dragbar)
		{
			if(StyleLeft(dragbar)>scrollLeft+clientWidth-dragbar.offsetWidth)
				SetStyleLeft(dragbar, scrollLeft+clientWidth-dragbar.offsetWidth);
			else if(StyleLeft(dragbar)<scrollLeft)
				SetStyleLeft(dragbar,scrollLeft);
			else if(StyleTop(dragbar)>scrollTop+clientHeight-dragbar.offsetHeight)
				SetStyleTop(dragbar,scrollTop+clientHeight-dragbar.offsetHeight);
			else if(StyleTop(dragbar)<scrollTop)
				SetStyleTop(dragbar,scrollTop);
		}
	}
	if(keybar==dragbar)
	{//mov candybar
		AnPyTioYiZiCiTio();
	}
	else if(candybar==dragbar)
	{//mov keybar
		SetStyleLeft(keybar,StyleLeft(dragbar));
		SetStyleTop(keybar,StyleTop(dragbar)-26);
	}
}
function NaGugBioWei(canshu)
{// Get current focused element (IE 4+  and now also for NN6+)
	var gugBioWei = document.selection.createRange();
	if(8>gugBioWei.boundingLeft||8>gugBioWei.boundingTop)
		return 0;
	canshu[0]=gugBioWei.boundingLeft;
	canshu[1]=gugBioWei.boundingTop;
	return 1;
}
function YiShuRuTio()
{// Get current focused element (IE 4+  and now also for NN6+)
	var focused = document.activeElement;
	if(shiIE&&Chinese_Notes!=focused)
		return;
	var l,n,m,p;
	if(!shiIE)
	{
		xinZuo=100;
		l=GetStyleWidth(candybar);
		n=800;
		m=xinZuo+l;
		p=m-n;
		if(0<p)
			xinZuo-=p;
		if(0>xinZuo)
			xinZuo=0;
		if(xinZuo!=StyleLeft(keybar))
		{
			SetStyleLeft(keybar,xinZuo);
			AnPyTioYiZiCiTio();
		}
		return;
	}

	if(!focused.isContentEditable ||
		focused.type=="password"  ||
		focused.style.imeMode=="disabled")
		return;

	var canshu=new Array(2);
	if(0==NaGugBioWei(canshu))
		return;
	var zuo=canshu[0];
	var dig=canshu[1];
	xinZuo=zuo-60;
//alert(xinZuo);
	if(0>xinZuo)
		xinZuo=0;
	l=GetStyleWidth(btnKeys);
	if(m_dio)
		l+=GetStyleWidth(btnKeys2);
	if(0!=m_bihuas[0])
		l+=GetStyleWidth(btnKeys3);
//alert(StyleLeft(keybar));
	n=document.body.clientWidth-l;
	if(xinZuo>n)
		xinZuo=n;
	xinDig=dig+24;
//alert(dig+"-"+Chinese_Notes.scrollTop);
	if(Chinese_Notes==focused)
		xinDig+=Chinese_Notes.scrollTop;
	n=keybar.style.height+candybar.style.height;
	if(xinDig>document.body.clientHeight-n)
		xinDig=dig-n-20;
	if(xinZuo!=StyleLeft(keybar)|| xinDig!=StyleTop(keybar))
	{
		SetStyleLeft(keybar,xinZuo);
		SetStyleTop(keybar,xinDig);
		AnPyTioYiZiCiTio();
	}
}
function AnPyTioYiZiCiTio()
{
/*alert(keybar.style.height);
alert(keybar.style.pixelWidth);
alert(candybar.style.height);
alert(candybar.style.pixelWidth);
alert(document.body.clientWidth);*/
	if(StyleLeft(keybar)+GetStyleWidth(candybar)>document.body.clientWidth)
		SetStyleLeft(candybar,document.body.clientWidth-GetStyleWidth(candybar));
	else
		SetStyleLeft(candybar,StyleLeft(keybar));
	SetStyleTop(candybar,StyleTop(keybar)+(shiIE?26:28));
}
function OnFocusIn()
{
  if(event.srcElement.isContentEditable)
    focusElem=event.srcElement;
}
function CtrlAcceptChInput(sj)
{
	var mubio = sj.target||sj.srcElement;
	if(shiIE)
	{
		if(!mubio.isContentEditable||mubio.type=="password"||mubio.style.imeMode=="disabled")
			return false;
	}
	else
	{
		if(mubio.type=="password")
			return false;
	}
	return true;
}
function OnKeyPress(shijian)
{
	if(!shijian)
		shijian=window.event;
	if(shijian.altKey)
	{
		if(79==shijian.keyCode)//altO
		{
			HuanZY();
			return false;
		}
		if(88==shijian.keyCode)//altB
		{
			HuanBiaoDian();
			return false;
		}
	}
	if(!zTai)
		return true;
	if(!CtrlAcceptChInput(shijian) )
		return true;
	if(shiIE&&bioDianKuan&&""==m_qiojian)
	{
		bdian=XiDaoZBioDian(shijian.keyCode);
		if(0<bdian)//Biodian
		{
			FaSog(String.fromCharCode(bdian),0);
			return false;
		}
		return true;
	}
	if(shijian.keyCode==13)
	    return true;
	return true;
}
function GetKeySeqAndToneLen()
{
  len = m_qiojian.length;
  if(0<m_dio)
    len++;
  return len;
}
function GetBihuaLen()
{
  n=0;
  for(i=0; i<3; i++)
  {
    if(0!=m_bihuas[i])
      n++;
    else
      break;
  }
  return n;
}
function InsertBihua(index, bihua)
{
  if(2<index)
    index=2;
//alert(index);
  if(0==m_bihuas[index])
    m_bihuas[index]=bihua;
  else
  {
    for(i=2; index<i; i--)
      m_bihuas[i] = m_bihuas[i-1];
    m_bihuas[index]=bihua;
  }
  m_strKeySeqInsertPt++;
//alert(m_bihuas[0]);
}
function RemvBihua(index)
{
  if(2<index)
    index=2;
  for(; index<3; index++)
    m_bihuas[index] = m_bihuas[index+1];
}
function TioCiXu(jianpy, ci)
{
	var i,j;
	var xiaYiWei,weizhi=NaPySuoYinWei(jianpy);
	if(0==suoyin[weizhi])
		return 0;
	else
	{
		i=suoyin[weizhi];
		while(i<pyci.length&&jianpy>pyci[i][0])
			i++;
		if(jianpy==pyci[i][0])
		{
			if(ci==pyci[i][1][0])
				return 0;
			var zu=new Array(0);
			zu[0]=ci;
			for(j=0;j<pyci[i][1].length;j++)
			{
				if(pyci[i][1][j]!=ci)
					zu[zu.length]=pyci[i][1][j];
			}
			pyci[i][1]=zu;
			return 1;
		}
	}
}
function XuanzeShuru(xuanhao)
{//space & number keys
	var jiuWei=chogXuanWei;
	if(1>zzuZiCi.length)
		return true;
	chogXuanWei=xuanhao;
	if(curPageSize-1<chogXuanWei)
		chogXuanWei = curPageSize-1;
	chogXuanWei+=curPage*noPerPage;
	chogXuanTai=0;
	FaSog(zzuZiCi[chogXuanWei][0],0);//@@

	if(1<zzuZiCi[chogXuanWei][0].length)
		TioCiXu(zzuZiCi[chogXuanWei][2], zzuZiCi[chogXuanWei][0]);

	if(0<zuCiTai)
	{
		ciChuan[ciChuan.length]=zzuZiCiBk[jiuWei];
		if(9999<=zuCiTai)
		{//jiaruciku@@@@@
			JiaRuCi(ciChuan);
			ciChuan=[];
			zuCiTai=0;
		}
	}

	zzuZiCiBk.length=0;
	for(i=0;i<zzuZiCi.length;i++)
		zzuZiCiBk[i] = zzuZiCi[i];
	yuandian=chogXuanWei;

	if(m_qiojian.length>zzuZiCi[chogXuanWei][1].length)
	{
		m_qiojian=m_qiojian.substr(zzuZiCi[chogXuanWei][1].length,m_qiojian.length-zzuZiCi[chogXuanWei][1].length);
		zuCiTai++;
	}
	else
	{
		m_qiojian="";
		if(0<zuCiTai)
			zuCiTai=9999;
		else
			ciChuan=[];
	}

	QigZhogWenShu(0,1,0);
	return false;
}
function ShuRuDio(jian)
{
	if(ShegDio1JianMa()==jian || 9==jian || 20==jian || 16==jian)
	{//tild~=tone1,tab=tone2,capslock=tone3,shift=tone4/tone5
		if(""==m_qiojian)
			return true;//do normal processing
		if(ShegDio1JianMa()==jian)
			m_dio=1;
		else if(9==jian)
			m_dio=2;
		else if(20==jian)
			m_dio=3;
		else// if(16==jian)
			m_dio=4;
		m_strKeySeqInsertPt=m_qiojian.length+1;
		SetKeyPane();
		return false;
	}
	return true;
}
function ShuruBihua(bihua,chg)
{//'-'=heng,'='=shu,'['=pie3,']'=pa4,';'=zhe2
	if(1>chg)
		chg=GetKeySeqAndToneLen();
	if(m_strKeySeqInsertPt<chg)
		m_strKeySeqInsertPt=chg;
	InsertBihua(m_strKeySeqInsertPt-chg, bihua);
	if(chg+3<m_strKeySeqInsertPt)
		m_strKeySeqInsertPt=chg+3;
//alert(m_strKeySeqInsertPt);
	SetKeyPane();
	return false;
}

function JiaCiZaiXinWei(j,py,ci)
{
	pyci[j]=new Array(2);
	pyci[j][0]=py;
	pyci[j][1]=new Array(1);
	pyci[j][1][0]=ci;
}
function JiaRuCi(ciChuan)
{
	var i,j,jianpy="",ci="";
	for(i=0;i<ciChuan.length;i++)
	{
		jianpy+=ciChuan[i][2];
		ci+=ciChuan[i][0];
	}
	if(2>ci.length)
		return;

	var xiaYiWei,weizhi=NaPySuoYinWei(jianpy);
//alert(suoyin[weizhi]);
	if(0==suoyin[weizhi])
	{
		xiaYiWei=XiaYiSuoYin(weizhi);
		if(0>xiaYiWei)
		{
			suoyin[weizhi]=pyci.length;
			JiaCiZaiXinWei(pyci.length,jianpy,ci);
		}
		else
		{
			suoyin[weizhi]=suoyin[xiaYiWei];
			for(i=weizhi+1;i<suoyinchag;i++)
			{
				if(suoyin[xiaYiWei]<=suoyin[i])
					suoyin[i]++;
			}
			for(i=pyci.length-1;suoyin[xiaYiWei]<=i;i--)
				pyci[i+1]=pyci[i];
			JiaCiZaiXinWei(suoyin[xiaYiWei],jianpy,ci);
		}
	}
	else
	{
//alert(pyci[suoyin[weizhi]]);
		if(jianpy<pyci[suoyin[weizhi]][0])
		{
			for(i=weizhi+1;i<suoyinchag;i++)
			{
				if(suoyin[weizhi]<=suoyin[i])
					suoyin[i]++;
			}
			for(i=pyci.length-1;suoyin[weizhi]<=i;i--)
				pyci[i+1]=pyci[i];
			JiaCiZaiXinWei(suoyin[weizhi],jianpy,ci);
			return;
		}
		i=suoyin[weizhi];
		while(i<pyci.length&&jianpy>pyci[i][0])
			i++;
		if(i>=pyci.length)
		{
			JiaCiZaiXinWei(pyci.length,jianpy,ci);
			return;
		}
		else if(jianpy==pyci[i][0])
		{//chachog
			for(j=0;j<pyci[i][1].length;j++)
			{
				if(pyci[i][1][j]==ci)
					return;
			}
			if(6>pyci[i][1].length)
				pyci[i][1][pyci[i][1].length]=ci;
			else
			{
				for(j=pyci[i][1].length-1;6<=j;j--)
					pyci[i][1][j+1]=pyci[i][1][j];
				pyci[i][1][6]=ci;
			}
			return;
		}
		else
		{
			j=i;
			for(i=weizhi+1;i<suoyinchag;i++)
			{
				if(j<=suoyin[i])
					suoyin[i]++;
			}
			for(i=pyci.length-1;j<=i;i--)
				pyci[i+1]=pyci[i];
			JiaCiZaiXinWei(j,jianpy,ci);
		}
	}
}
function ShiBihuaJian(jian)
{//'-'=heng,'='=shu,'['=pie3,']'=pa4,';'=zhe2
	bihua=0;
	if(2>yuyan)
	{
		if(shiIE)
		{
			if(189==jian)
				bihua=1;
			else if(187==jian)
				bihua=2;
			else if(219==jian)
				bihua=3;
			else if(221==jian)
				bihua=4;
			else if(186==jian)
				bihua=5;
		}
		else
		{
			if(109==jian)
				bihua=1;
			else if(61==jian)
				bihua=2;
			else if(219==jian)
				bihua=3;
			else if(221==jian)
				bihua=4;
			else if(59==jian)
				bihua=5;
		}
	}
	else if(2<=yuyan)
	{
		if(yuyanShuju[yuyanShujuWei][1]==jian)
			bihua=1;
		else if(yuyanShuju[yuyanShujuWei][2]==jian)
			bihua=2;
		else if(yuyanShuju[yuyanShujuWei][3]==jian)
			bihua=3;
		else if(yuyanShuju[yuyanShujuWei][4]==jian)
			bihua=4;
		else if(yuyanShuju[yuyanShujuWei][5]==jian)
			bihua=5;
	}
	return bihua;
}
function HuanYe(jian)
{//<>
	if(1>zzuZiCi.length)
		return true;
	if(188==jian||33==jian||38==jian)
	{
		curPage--;
		if(0>curPage)
			curPage=nPages-1;
	}
	else
	{
		curPage++;
		if(nPages-1<curPage)
			curPage=0;
	}
	ShowChoiceList(1);
	return false;
}
function ShegDio1JianMa()
{
	if(2>yuyan)
		return 192;
	else if(2<=yuyan)
		return yuyanShuju[yuyanShujuWei][0];
}
function OnKeyDown(shijian)
{//@@@
	if(!shijian)
		shijian=window.event;
	YiShuRuTio();
	if(!CtrlAcceptChInput(shijian) )
		return true;
	var z,j;
	with(shijian)
	{
//if(shiftKey&&16!=keyCode&&altKey&&18!=keyCode)
//alert(keyCode);
//if(18!=keyCode)
//alert(altKey);

		if(!shiIE&&79==keyCode&&altKey)//O
		{
			HuanZY();
			return false;
		}
		if(!shiIE&&66==keyCode&&altKey)//B
		{
			HuanKuan();
			return false;
		}
		if(!shiIE&&188==keyCode&&altKey)//,
		{
			HuanBiaoDian();
			return false;
		}
		if(keyCode==123||altKey&&(shiIE&&187==keyCode||!shiIE&&61==keyCode))//F12,alt=
		{
			HuanZY();
			return false;
		}
		if(!zTai&&!yigKuan)
			return true;
		if(!shiIE&&bioDianKuan&&""==m_qiojian&&!altKey)
		{
//if(16!=keyCode)
//alert(keyCode);
			bdian=XiDaoZBioDianNetscapse(keyCode,shiftKey);
			if(0<bdian)//Biodian
			{
				FaSog(String.fromCharCode(bdian),0);
				return false;
			}
		}
		if(keyCode==27)
		{//escape
			QigZhogWenShu(0,0,1);
			Chinese_Notes.focus();
			return false;
		}
		if(48==keyCode&&altKey)//daxieshu
		{
			zhShu=1;
			return false;
		}
		if(57==keyCode&&altKey)//fantishu
		{
			zhShu=2;
			return false;
		}
		if(""!=m_qiojian&&13==keyCode)
		{//huiche shuyig
			FaSog(m_qiojian,0);
			QigZhogWenShu(0,0,1);
			return false;
		}
		if(""==m_qiojian)
		{
			if(!shiftKey&&(48<=keyCode&&keyCode<58||zhShu&&79==keyCode))
			{//shuzi
				if(zhShu)
				{
					if(1==zhShu)
					{
						if(79==keyCode)
							z=String.fromCharCode(0xFF2F);
						else
							z=daxieshu.charAt(keyCode-48);
					}
					else
					{
						if(79==keyCode)
							z=String.fromCharCode(0x96F6);
						else
							z=daxieshuFan.charAt(keyCode-48);
					}
					FaSog(z,0);
					return false;
				}
				else if(QuanJio)
				{
					FaSog(String.fromCharCode(65248+keyCode),0);
					return false;
				}
				else
					return true;
			}
			else if(32==keyCode)
			{
				if(QuanJio)
				{
					FaSog("　",0);
					return false;
				}
				else
					return true;
			}
		}
		if((shiftKey&&!altKey||!zTai&&yigKuan)&&65<=keyCode && keyCode<=90)
		{//A-Z
			QigZhogWenShu(0,0,1);
//alert(QJLowercase.charCodeAt(0) );
			if(QuanJio||!zTai)
			{
				if(shiftKey)
					FaSog(String.fromCharCode(65248+keyCode),0);
				else
					FaSog(String.fromCharCode(65280+keyCode),0);
				return false;
			}
			else
				return true;
		}
//alert(keyCode);
		len=GetKeySeqAndToneLen();
		lenBihua = GetBihuaLen();
		lenTotal=len+lenBihua;
		if(8==keyCode)
		{//bksp
			if(""==m_qiojian || 0==m_strKeySeqInsertPt)
				return true;//do normal processing
			if(m_strKeySeqInsertPt<m_qiojian.length+1)
			{
				s1=m_qiojian.substr(0,m_strKeySeqInsertPt-1);
				s2=m_qiojian.substr(m_strKeySeqInsertPt,m_qiojian.length);
				m_qiojian=s1+s2;
			}
			else if(m_strKeySeqInsertPt<len+1)
				m_dio=0;
			else
			{
				idx=m_strKeySeqInsertPt-len-1;
				RemvBihua(idx);
			}
			m_strKeySeqInsertPt--;
			SetKeyPane();
			YiShuRuTio();
			return false;
		}
		if(73==keyCode&&altKey)//I
		{
			ChogXuan(shiftKey);
			return false;
		}
		zhShu=0;
		if(altKey&&(shiIE&&186==keyCode||!shiIE&&59==keyCode))//chogfa-fenhao
		{
			if(-1<chogXuanWei&&chogXuanWei<zzuZiCiBk.length-1)
			{
				FaSog(zzuZiCiBk[chogXuanWei][0],0);//chogfa@@
				return false;
			}
		}
		if(altKey||ctrlKey)
		{
			return true;
		}
		if(46==keyCode)
		{//DEL
			if(""==m_qiojian || m_strKeySeqInsertPt>=lenTotal)
				return true;//do normal processing
			if(m_strKeySeqInsertPt<m_qiojian.length)
			{
				s1=m_qiojian.substr(0,m_strKeySeqInsertPt);
				s2=m_qiojian.substr(m_strKeySeqInsertPt+1,m_qiojian.length);
				m_qiojian=s1+s2;
			}
			else if(0<m_dio && m_strKeySeqInsertPt==m_qiojian.length)
				m_dio=0;
			else
			{
				idx = m_strKeySeqInsertPt-len;
//alert(idx);
				RemvBihua(idx);
			}
			SetKeyPane();
			YiShuRuTio();
			return false;
		}
		if(ShegDio1JianMa()==keyCode || 9==keyCode || 20==keyCode || 16==keyCode)
		{//tild~=tone1,tab=tone2,capslock=tone3,shift=tone4/tone5
			return ShuRuDio(keyCode);
		}
		if(188==keyCode || 190==keyCode || 33==keyCode || 34==keyCode || 38==keyCode || 40==keyCode)//<>
			return HuanYe(keyCode);

		bihua=ShiBihuaJian(keyCode)
		if(0<bihua)
		{//'-'=heng,'='=shu,'['=pie3,']'=pa4,';'=zhe2
//alert(bihua);
			if(""==m_qiojian)
				return true;//do normal processing
			return ShuruBihua(bihua,len);
		}
		if(36==keyCode || 37==keyCode)//home,leftarrow,uparrow
		{
			if(1>m_strKeySeqInsertPt || ""==m_qiojian)
				return true;
			if(36==keyCode)
				m_strKeySeqInsertPt=0;
			else
				m_strKeySeqInsertPt--;
			SetKeyPane();
			return false;
		}
		else if(35==keyCode||39==keyCode)//rightarrow
		{
			if(m_strKeySeqInsertPt>lenTotal-1)
				return true;
			if(35==keyCode)
				m_strKeySeqInsertPt=m_qiojian.length;
			else
				m_strKeySeqInsertPt++;
			SetKeyPane();
			return false;
		}
		if(65<=keyCode && keyCode<=90)
		{//A-Z
			s1=m_qiojian.substr(0,m_strKeySeqInsertPt);
			s1+=String.fromCharCode(keyCode).toLowerCase();
			s2=m_qiojian.substr(m_strKeySeqInsertPt,m_qiojian.length);
			m_qiojian=s1+s2;
			m_strKeySeqInsertPt++;
			if(m_strKeySeqInsertPt>m_qiojian.length)
			m_strKeySeqInsertPt=m_qiojian.length;
//alert(m_qiojian);
			m_dio=0;
			for(i=0; i<3; i++)
				m_bihuas[i]=0;

			SetKeyPane();

			YiShuRuTio();

			if(1<m_qiojian.length&&0<zuCiTai&&9999<=zuCiTai)
			{//jiaruciku@@@@@
				ciChuan[ciChuan.length]=zzuZiCiBk[chogXuanWei];

				JiaRuCi(ciChuan);
				ciChuan=[];
				zuCiTai=0;
			}
			return false;
		} 
		if(32==keyCode || 47<keyCode && keyCode<58)
		{//space & number keys
			var xuanhao;
			if(32==keyCode)
				xuanhao=0;//1
			else if(48==keyCode)
				xuanhao=9;
			else
				xuanhao=keyCode-49;
			return XuanzeShuru(xuanhao);
		}
		if(keyCode==33&&m_qiojian!="") 
		{//pgup
			//showCharsPanel.previousPage();
			return false;
		}
		else if(keyCode==120)
		{
		}
		else
			return true;
		return false;
	}
}
function XiDaoZBioDian(jian0)
{
	var xin=0;
	var jian=String.fromCharCode(jian0);
	if("~"==jian)
		xin = 0xFF5E;
	else if("`"==jian)
		xin = 65344;
	else if("!"==jian)
		xin = 0xFF01;
	else if ("@" == jian)
		xin = 0xFF20;//00B7
	else if ("#" == jian)
		xin = 65283;
	else if ("$" == jian)
		xin = 0xFFE5;//xin = 0x00B0;
	else if ("%" == jian)
		xin = 65285;
	else if ("^" == jian)
		xin = 0x2026;
	else if ("&" == jian)
		xin = 0x00A7;
	else if ("*" == jian)
		xin = 65290;
	else if ("(" == jian)
		xin = 0xFF08;
	else if (")" == jian)
		xin = 0xFF09;
	else if ("_" == jian)
		xin = 0x2014;
	else if ("-" == jian)
		xin = 65293;
	else if ("+" == jian)
		xin = 65291;
	else if ("=" == jian)
		xin = 65309;
	else if ("{" == jian)
		xin = 0xFF5B;
	else if ("}" == jian)
		xin = 0xFF5D;
	else if ("[" == jian)
		xin = 0x3010;//FF3B;
	else if ("]" == jian)
		xin = 0x3011;//FF3D;
	else if ("|" == jian)
		xin = 65372;// FF5C;
	else if ("\\" == jian)
		xin = 0x3001;
	else if (":" == jian)
		xin = 0xFF1A;
	else if (";" == jian)
		xin = 0xFF1B;
	else if ("\""==jian)
	{
		if(shugYinZuo)
			xin=0x201C;
		else
			xin=0x201D;
		shugYinZuo=!shugYinZuo;
	}
	else if ("\'" == jian)
	{
		if(danYinZuo)
			xin=0x2018;
		else
			xin=0x2019;
		danYinZuo = !danYinZuo;
	}
	else if ("<" == jian)
		xin = 0x300A;
	else if (">" == jian)
		xin = 0x300B;
	else if ("," == jian)
		xin = 0xFF0C;
	else if ("." == jian)
		xin = 0x3002;
	else if ("?" == jian)
		xin = 0xFF1F;
	else if ("/"==jian)
		xin = 0xFF0F;
	return xin;
}
function XiDaoZBioDianNetscapse(jian,shiftKey)
{
	var zbioDian="）！＠＃￥％…§＊（";
	var xin=0;
	if(ShegDio1JianMa()==jian)
	{
		if(shiftKey)
			xin = 0xFF5E;
		else
			xin = 65344;
	}
	else if(shiftKey&&47<jian&&jian<59)
		return zbioDian.charCodeAt(jian-48);
	else if(109== jian)
	{
		if(shiftKey)
			xin = 0x2014;
		else			
			xin = 65293;
	}
	else if(61== jian)
	{
		if(shiftKey)
			xin = 65291;
		else			
			xin = 65309;
	}
	else if(219== jian)
	{
		if(shiftKey)
			xin=0xFF5B;
		else			
			xin=0x3010;
	}
	else if(221== jian)
	{
		if(shiftKey)
			xin=0xFF5D;
		else			
			xin=0x3011;
	}
	else if(220==jian)//|
	{
		if(shiftKey)
			xin=65372;
		else			
			xin=0x3001;
	}
	else if(59==jian)//;
	{
		if(shiftKey)
			xin=0xFF1A;
		else			
			xin=0xFF1B;
	}
	else if(222== jian)//'
	{
		if(shiftKey)
		{
			if(shugYinZuo)
				xin=0x201C;
			else
				xin=0x201D;
			shugYinZuo=!shugYinZuo;
		}
		else			
		{
			if(danYinZuo)
				xin=0x2018;
			else
				xin=0x2019;
			danYinZuo = !danYinZuo;
		}
	}
	else if(188==jian)//,
	{
		if(shiftKey)
			xin=0x300A;
		else			
			xin=0xFF0C;
	}
	else if(190==jian)//,
	{
		if(shiftKey)
			xin=0x300B;
		else			
			xin=0x3002;
	}
	else if(191==jian)//?
	{
		if(shiftKey)
			xin=0xFF1F;
		else			
			xin=0xFF0F;
	}
	return xin;
}
function HuanZY()
{
	zTai=!zTai;
	if(zTai)
		btnMode.innerHTML=sChn;
	else
		btnMode.innerHTML=sEng;
	QigZhogWenShu(1,0,1);
}
function HuanKuan()
{
	QuanJio=!QuanJio;
	if(QuanJio)
		btnFullSize.innerHTML=sQuanJio;
	else
		btnFullSize.innerHTML=sBanJio;
}
function HuanBiaoDian()
{
	bioDianKuan=!bioDianKuan;
	if(bioDianKuan)
		punc.innerHTML=cZBiaoDian;
	else
		punc.innerHTML=cYBiaoDian;
}
function HuanYigKuan()
{
	yigKuan=!yigKuan;
	if(yigKuan)
		yigkuan.innerHTML=cYQuan;
	else
		yigkuan.innerHTML=cZBan;
}
function ResetReSelectionData()
{
	chogXuanTai=-1;
	chogXuanWei=-1;
}
function QigZhogWenShu(qigChogXuan,liujian,qigZuCi)
{
	if(qigZuCi)
	{
		ciChuan=[];
		zuCiTai=0;
	}
	if(!liujian)
		m_qiojian="";
	m_strKeySeqInsertPt=m_qiojian.length;
	m_dio=0;
	zhShu=0;
	m_numFenHaoInMiddle=-1;

	for(i=0; i<3; i++)
	    m_bihuas[i]=0;

	m_lastKey1=m_lastKey2=0;
	zzuZiCi.length=0;
	SetKeyPane();
	//SetChoicePane("", /*hilightClrLen=*/0, /*rgb =*/DEFAULTTEXTCOLOR, /*keepMainfrmChoicePaneForTipInfo=*/1);
	if(qigChogXuan)
		ResetReSelectionData();

//	if(!keepForecastInfo)
	//	ZiCiForecastingReset();

//	if(!keepMainfrmChoicePaneForTipInfo)
	//	XianTiShi("");
}
function FaSog(word,qidianQianyi)
{
	var yu=Chinese_Notes;
	yu.focus();
	if(shiIE)
	{
		var xuanze=document.selection.createRange();//.text;
		xuanze.moveStart("character",qidianQianyi);
		xuanze.text=word;
		xuanze.select();
	}
	else if(yu.selectionStart || yu.selectionStart == '0')
	{
		var startPos = yu.selectionStart+qidianQianyi;
		var endPos = yu.selectionEnd;
		yu.value=yu.value.substring(0, startPos)+ word
					+ yu.value.substring(endPos, yu.value.length);
		yu.selectionStart=startPos + word.length;
		yu.selectionEnd=yu.selectionStart;
	}
	else
		yu.value += word;
}

function OnSelChg()
{
	if(!shiIE)
		return;
	wuXuan=""==getSelectedText();
	jianQieNiu.disabled=wuXuan;
	kaoBeiNiu.disabled=wuXuan;
	shanChuNiu.disabled=wuXuan;
	clipbdNoStr=getClipboard()==null;
	nianTieNiu.disabled=clipbdNoStr;
//	quanKaoBeiNiu.disabled=Chinese_Notes.innerHTML=="";
	YiShuRuTio();
}
function Cut2Clipbd()
{
	focusElem.focus();
	if(shiIE)
	{
		textRange=document.selection.createRange();
		textRange.execCommand("Cut");
	}
	else
	{
		Copy2Clipbd();
		DelSel();
	}
}
function Copy2Clipbd()
{
	focusElem.focus();
	if(shiIE)
	{
		textRange=document.selection.createRange();
		textRange.execCommand("Copy");
	}
	else
	{
		var c=getSelectedText();
		Cpy2Clip(c);
	}
}
function PasteFromClipbd()
{
	focusElem.focus();
	if(shiIE)
		document.execCommand("paste");
	else
	{
		var wen=getClipboard();
		FaSog(wen,0);
	}
}
function DelSel()
{
	focusElem.focus();
	if(shiIE)
		document.selection.clear();
	else if(focusElem.selectionStart || focusElem.selectionStart == '0')
	{
		var jiuQiShi=focusElem.selectionStart;
		focusElem.value=focusElem.value.substring(0, focusElem.selectionStart)+
					focusElem.value.substring(focusElem.selectionEnd, focusElem.value.length);
		focusElem.selectionEnd=focusElem.selectionStart=jiuQiShi;
	}
}
function RePositionCtrlbar()
{
  with(document.body)
  {
    SetStyleLeft(ctrlbar,clientWidth-deltaX);
    SetStyleTop(ctrlbar,scrollTop+deltaY);
    AdjustPos();
  }
}
function SetKeyPane()
{
	if(""==m_qiojian)
	{//hide keybar
		keybar.style.visibility="hidden";
		btnKeys2.style.visibility="hidden";
		btnKeys3.style.visibility="hidden";
		btnKeys2.innerHTML="";
	}
	else
	{
		w=5;
		if(m_qiojian.length>=m_strKeySeqInsertPt)
		{
			w=25;
			btnKeys.innerHTML=m_qiojian.substr(0,m_strKeySeqInsertPt)+'ˇ'+m_qiojian.substr(m_strKeySeqInsertPt,m_qiojian.length);
		}
		else
			btnKeys.innerHTML=m_qiojian;
		if(shiIE)
			w+=6;
		SetStyleWidth(btnKeys,(m_qiojian.length)*11+w);//@@
		w=0;
		var zc1,zc2="",zc3;
		btnKeys2.innerHTML="";
		if(0<m_dio)
		{//-/v\
			zc1=tones.substr(m_dio-1,1);
			if(m_qiojian.length+1==m_strKeySeqInsertPt)
			{
				zc2='ˇ';
				w=14;
			}
			btnKeys2.innerHTML="<font color=#0000FF size=1><b>"+zc1+"</b></font>"+"<font color=#000000 size=2>"+zc2+"</font>";
			SetStyleWidth(btnKeys2,20+w);
			btnKeys2.style.visibility="visible";
		}
		else
		{
			SetStyleWidth(btnKeys2,0);
			btnKeys2.style.visibility="hidden";
		}
		lenBihua = GetBihuaLen();
//alert(lenBihua);
		btnKeys3.innerHTML="";
		if(1>lenBihua)
		{
			btnKeys3.style.visibility="hidden";
			SetStyleWidth(btnKeys3,0);
		}
		else
		{
			zc1="";zc2="";zc3="";
			bihuaChars="一ㄧノ丶ㄥ";//"-|/\\L";
			if(0<m_dio)
				zc1+=" ";
			w=0;
			len=GetKeySeqAndToneLen();
			for(i=0; i<lenBihua; i++)
			{
				zc1+=bihuaChars.substr(m_bihuas[i]-1,1);
				if(len+i+1==m_strKeySeqInsertPt)
				{
					zc2='ˇ';
					w=20;
					i++;
					break;
				}
			}
			for(;i<lenBihua;i++)
				zc3+=bihuaChars.substr(m_bihuas[i]-1,1);
			btnKeys3.innerHTML="<font color=#FF0000 size=1><b>"+zc1+"</b></font>"+"<font color=#000000 size=2>"+zc2+"</font>";
			if(""!=zc3)
				btnKeys3.innerHTML+="<font color=#FF0000 size=1><b>"+zc3+"</b></font>";
			SetStyleWidth(btnKeys3,w+12*lenBihua+6);
			btnKeys3.style.visibility="visible";
		}
		keybar.style.visibility="visible";
	}
//alert(btnKeys2.innerHTML);
	ShowChoiceList(0);
}
function XianTiShi(xinxi)
{
	JiaZai.innerHTML=xinxi;
}
function DoChoiceItem(n,act,word)
{
	s1="btnNum"+n;
	s2="btnCandy"+n;
	c1=document.getElementById(s1);
	c2=document.getElementById(s2);

	if(0==act)
	{
		c1.style.visibility="hidden";
		c2.style.visibility="hidden";
		SetStyleWidth(c1,0);
		SetStyleWidth(c2,0);
	}
	else if(2==act)
	{
		c1.innerHTML="";
		c2.innerHTML="";
		SetStyleWidth(c1,0);
		SetStyleWidth(c2,0);
		c1.style.visibility="hidden";
		c2.style.visibility="hidden";
	}
	else//if(1==act)
	{
		if(1<n)
		{
		  if(10==n)
			c1.innerHTML="0";
		  else
			c1.innerHTML=n;
		  SetStyleWidth(c1,shiIE?14:10);
		}
		else
		{
			var ww=shiIE?38:40;
			if(!uiChn)
				ww+=9;
			SetStyleWidth(c1,ww);
		}
		c2.innerHTML=word;
		var l=word.length*(22);
		SetStyleWidth(c2,l);
		c1.style.visibility="visible";
		c2.style.visibility="visible";
//		c1.style.background="#0000ff";	c2.style.background="#ff0000";
	}
	return GetStyleWidth(c1)+GetStyleWidth(c2);
}
function HideChoicePane()
{
	candybar.style.visibility="hidden";
	// SetStyleWidth(candybar,0);
	for(n=1; n<11; n++)
		DoChoiceItem(n,0, "");
}
function SetChoicePane()
{
	if(1>zzuZiCi.length)
		return;

	if(curPage<nPages-1 || 0==remainder)
		curPageSize=noPerPage;
	else
		curPageSize=remainder;
	index=curPage*noPerPage;
//alert(zzuZiCi[index][0]);
//alert(index);
	var w=0;
	for(i=0; i<curPageSize; i++,index++)
		w+=DoChoiceItem(i+1,1,zzuZiCi[index][0]);
	for(i=curPageSize; i<noPerPage; i++)
		w+=DoChoiceItem(i+1,2,"");
	candybar.style.visibility="visible";
	SetStyleWidth(candybar,w);
//alert("SetChoicePane");
}
function ShowChoiceList(noReget)
{
//alert(keybar.style.visibility);
//alert(m_qiojian.length);
	HideChoicePane();
	if("visible"!=keybar.style.visibility || 1>m_qiojian.length)
		return;
	if(0==noReget)
	{
		retLkup = NaHouXuanXiag();
		if(1>retLkup)
			return;
		nPages=Math.floor(zzuZiCi.length/noPerPage);
		remainder=zzuZiCi.length%noPerPage;
		if(0<remainder)
			nPages++;
		if(1>nPages)
			return;
		curPage=0;
	}
	SetChoicePane();
//  strTip="fdsfga"
	if(bShowTip && 0<strTip.length)
		XianTiShi();
}
function IsPyProper(jian)
{
	a2=dicPy.length-1;
	if("zuo"==jian)
		return a2;
	jian = jian.replace("ng","g");
	jian = jian.replace("uag","ug");
	jian = jian.replace("iao","io");
	jian = jian.replace("jv","ju");
	jian = jian.replace("qv","qu");
	jian = jian.replace("xv","xu");
	jian = jian.replace("yv","yu");
	a1=0;
	while(a2>a1)
	{
		mid=Math.floor( (a1+a2+1)/2);
		if(a1==mid||mid==a2)
		{
			for(mid=a1;mid<=a2;mid++)
			{
				if(jian==dicPy[mid])
					return mid;
			}
			return -1;
		}
		if(jian==dicPy[mid])
			return mid;
		if(dicPy[mid]<jian)
			a1=mid;
		else
			a2=mid;
	}
	return -1;
}
function IsForDanJianZi()
{
	if(1==m_qiojian.length && "a"!=m_qiojian && "e"!=m_qiojian && "o"!=m_qiojian)
		return 1;
	if("zh"==m_qiojian||"ch"==m_qiojian||"sh"==m_qiojian)
		return 2;
	return 0;
}
function GetZhChShZi(jian, cizu)
{
	cizu.length=0;
	idx='zcs'.indexOf(jian.charAt(0));
	var z,k;
	len=gZCSh[idx].length;
	for(i=0; i<len; i++)
	{
		z=gZCSh[idx].charAt(i);
		k=z.charCodeAt(0)-0x4e00;
		if(0!=m_dio)
		{
			if(!DioHePyKe(jian,k,m_dio) )
				continue;
		}
		if(0<gnBihua)
		{//kanbihua shifou keyi
			if(!BihuaKeYi(z,m_bihuas,gnBihua) )
				continue;
		}
		var ci=new Array(3);
		ci[0]=z;
		ci[1]=jian;
		ci[2]=0;
		cizu[cizu.length]=ci;
	}
	return cizu.length;
}
function GetDanJianZi(jian, cizu)
{
	cizu.length=0;
	idx = jian.charCodeAt(0)-97;
	var z,k;
	len=gDanJian[idx].length;
	for(i=0; i<len; i++)
	{
		z=gDanJian[idx].charAt(i);
		k=z.charCodeAt(0)-0x4e00;
		if(0!=m_dio)
		{
			if(!DioHePyKe(jian,k,m_dio) )
				continue;
		}
		if(0<gnBihua)
		{//kanbihua shifou keyi
			if(!BihuaKeYi(z,m_bihuas,gnBihua) )
				continue;
		}
		var ci=new Array(3);
		ci[0]=z;
		ci[1]=jian;
		ci[2]=0;
		cizu[cizu.length]=ci;
	}
	return cizu.length;
}
function GetDanZi(idx,cizu,zhenpy)
{
	cizu.length=0;
	len=dicZi[idx].length;
	var z,k;
	for(i=0; i<len; i++)
	{
		z=dicZi[idx].charAt(i);
		k=z.charCodeAt(0)-0x4e00;
		if(0!=m_dio)
		{
			if(!DioHePyKe(dicPy[idx],k,m_dio) )
				continue;
		}
		if(0<gnBihua)
		{//kanbihua shifou keyi
			if(!BihuaKeYi(z,m_bihuas,gnBihua) )
				continue;
		}
		var ci=new Array(3);
		ci[0]=z;
		ci[1]=zhenpy;
		ci[2]=dicPy[idx];
	    cizu[cizu.length]=ci;
	}
	return cizu.length;
}
function GetZiPY(z,pya,zuihouzi)
{
	var i,m,k,s;
	k=z.charCodeAt(0)-0x4e00;
	pya.length=0;
	if(k<zziShuJu.length)
	{
		if(0!=zziShuJu[k])
		{
			for(i=0;i<zziShuJu[k][0].length;i++)
			{
				//jiancha zuihouzi dio
				if(zuihouzi && 0!=m_dio)
				{//kanci shifou keyi yog
					if(!DioKeYi(zziShuJu[k][1][i],m_dio) )
						continue;
				}
				pya[pya.length]=dicPy[zziShuJu[k][0][i]];
				m=pya[pya.length-1].length;

/*				if(2<m && "u"==pya[pya.length-1].charAt(m-2) && "g"==pya[pya.length-1].charAt(m-1) )
				{
					s=pya[pya.length-1].substr(0,m-2);
					pya[pya.length]=s+"uang";
					pya[pya.length]=s+"uag";
				}
				else if(2<m && "i"==pya[pya.length-1].charAt(m-2) && "o"==pya[pya.length-1].charAt(m-1) )
				{
					s=pya[pya.length-1].substr(0,m-2);
					pya[pya.length]=s+"iao";
				}
				else if(1<m && "g"==pya[pya.length-1].charAt(m-1) )
				{
					s=pya[pya.length-1].substr(0,m-1);
					pya[pya.length]=s+"ng";
				}*/
			}
		}
	}
/*alert(z);
alert(pya.length);
for(i=0;i<pya.length;i++)
	alert(pya[i]);*/
	return pya.length;
}
var qjCiPyZu=new Array(32);
var qjWeiZu=new Array(32);
function MatchCi(key,c,zogQianzhui)
{
	var pys=[];
	var arr=qjCiPyZu;
	var i,j;
	pys.length=0;
	for(i=0;i<c.length;i++)
	{
		arr[i]=new Array(2);
		if(1>GetZiPY(c.charAt(i),arr[i],c.length-1==i))
			return false;
		if(0==i)
		{
			for(j=0;j<arr[i].length;j++)
			{
				if(!togzichuan(key,arr[i][j],2))
					return 0;
			}
		}
	}
//for(i=0;i<arr[0].length;i++)
//	alert(arr[0][0]);
//for(i=0;i<arr[1].length;i++)
//	alert(arr[1][0]);

	var idxes=qjWeiZu;//new Array(arr.length);
	var ttl=1;
	for(i=0;i<c.length;i++)
	{
		idxes[i]=0;
		ttl*=arr[i].length;
	}
	pys.length=ttl;
	i=0;
	var last=false;
	var zuihoudian=c.length-1;
	var z=c.charAt(zuihoudian);
	while(!last)
	{
		pys[i]="";
		for(j=0;j<c.length;j++)
			pys[i]+=arr[j][idxes[j]];//quanpin
//alert(pys[i].substr(0,key.length));
//alert(key);
		if(!(5<zogQianzhui&&key.length!=pys[i].length)
			&&
			!(4>key.length&&5<pys[i].length)&&togzichuan(key,pys[i],key.length))
		{
			return pys[i].length;
		}
		i++;
/*		if(3<c.length)
		{
			pys[i]="";
			for(j=0;j<c.length;j++)
				pys[i]+=arr[j][idxes[j]].charAt(0);//1st pyzimu
			if(togzichuan(key,pys[i],key.length))
			{
				params[0]=pys[i].length;
				return true;
			}
			i++;
			if(4<c.length&&c.length<7)
			{//1st 3 and last 1
				pys[i]=pys[i-1].substr(0,3)+pys[i-1].charAt(pys[i-1].length-1);
				if(key==pys[i].substr(0,key.length))
				{
					params[0]=pys[i].length;
					return true;
				}
				i++;
			}
		}*/
		//next idx
		last=true;
		//find next mix
		for(i=c.length-1;0<=i;i--)
		{
			if(idxes[i]<arr[i].length-1)
			{
				last = false;
				idxes[i]++;
				if(i<c.length-1)
				{
					for(j=i+1;j<c.length;j++)
					  idxes[j]=0;
				}
				break;
			}
		}
	}
/*alert(c);
alert(pys.length);
for(i=0;i<pys.length;i++)
	alert(pys[i]);*/

	return false;
}
function BihuaKeYi(c,bihuas,nBihua)
{
	var i,m,k,s;
	k=c.charCodeAt(c.length-1)-0x4e00;
	if(k<zziShuJu.length)
	{
		if(0!=zziShuJu[k])
		{
			if(3>zziShuJu[k].length)
				return true;
			for(i=0;i<nBihua;i++)
			{
//alert(bihuas[i]);
//alert(zziShuJu[k][2][i]+"-");
				if(zziShuJu[k][2][i]!=bihuas[i])
					return false;
			}
		}
	}
	return true;
}
function DioHePyKe(key,k,dio)
{
	if(0==zziShuJu[k]||"undefined"==typeof zziShuJu[k])//44056 li3
		return 1;
	var i;
/*	mmm++;
if(170<mmm)//&&0>k&&zziShuJu.length<=k||!zziShuJu[k][0])
{
alert(k);
alert(zziShuJu.length);
alert(typeof zziShuJu[k]);
alert("undefined"==typeof zziShuJu[k]);
}*/
	for(i=0;i<zziShuJu[k][0].length;i++)
	{
		py=dicPy[zziShuJu[k][0][i]];
//alert(py);
//alert(key);
//alert(zziShuJu[k][1][i]);
		if(key==py.substr(0,key.length)&&DioKeYi(zziShuJu[k][1][i],dio) )
			return 1;
	}
	return 0;
}
function DioKeYi(dioZijie,dio)
{
//alert(dioZijie);
//alert(dio);
	if(3<dio)
		return 7<dioZijie;
	if(3==dio)
		return 0!=(dioZijie&4);
	if(2==dio)
		return 0!=(dioZijie&2);
	if(1==dio)
		return 0!=(dioZijie&1);
	return true;
}
function NaZuiJianPY(jianchuan,zjpy)
{
	var chag=jianchuan.length;
	if(2>chag)
		return 0;

	jianchuan = jianchuan.replace("jv","ju");
	jianchuan = jianchuan.replace("qv","qu");
	jianchuan = jianchuan.replace("xv","xu");
	jianchuan = jianchuan.replace("yv","yu");

//	zjpy.length=0;
	zjpy[0]=jianchuan;
	var uang_s=[];
	uang_s[0]=0;
	var uag_s=[];
	uag_s[0]=0;
	var iao_s=[];
	iao_s[0]=0;
	var ng_s=[];
	ng_s[0]=0;

	var s=0,i,uang="uang",uag="uag",h,c1,c2,iao="iao",ng="ng";
	while(s<zjpy.length)
	{
		//uang
		if(-1<(i=zjpy[s].indexOf(uang,uang_s[s])) )
		{
			uang_s[s]=i;
			if(uang_s[s]+4<zjpy[s].length)
			{
				chag=uang_s[s]+4;
				h=zjpy[s].charAt(chag);
				if(-1<yunMuGHou.indexOf(h))
				{//fenlia  "aeo";
					c1=zjpy[s].substr(0,uang_s[s])+"ug"+zjpy[s].substr(chag,zjpy[s].length-chag);
					zjpy[zjpy.length]=c1;
					uang_s[zjpy.length-1]=uang_s[s]+3;//yueguo dagqian cili
					uang_s[s]+=6;
					s=0;
					continue;
				}
				else if('u'==h)
				{
					uang_s[s]+=4;//yueguo dagqian cili
					s=0;
					continue;
				}
				else
				{
					c1=zjpy[s].substr(0,uang_s[s])+"ug"+zjpy[s].substr(chag,zjpy[s].length-chag);
					zjpy[s]=c1;
					uang_s[s]+=4;
					s=0;
					continue;
				}
			}
			else
			{
				uang_s[s]+=4;
				s=0;
				continue;
			}
		}
		//uag
		if(-1<(i=zjpy[s].indexOf(uag,uag_s[s])) )
		{
			uag_s[s]=i;
			if(uag_s[s]+3<zjpy[s].length)
			{
				chag=uag_s[s]+3;
				h=zjpy[s].charAt(chag);
				if(-1<yunMuGHou.indexOf(h))
				{//fenlia  "aeo";
					c1=zjpy[s].substr(0,uag_s[s])+"ug"+zjpy[s].substr(chag,zjpy[s].length-chag);
					zjpy[zjpy.length]=c1;
					uag_s[zjpy.length-1]=uag_s[s]+3;//yueguo dagqian cili
					uag_s[s]+=5;
					s=0;
					continue;
				}
				else if('u'==h)
				{
					uag_s[s]+=3;//yueguo dagqian cili
					s=0;
					continue;
				}
				else
				{
					c1=zjpy[s].substr(0,uag_s[s])+"ug"+zjpy[s].substr(chag,zjpy[s].length-chag);
					zjpy[s]=c1;
					uag_s[s]+=3;
					s=0;
					continue;
				}
			}
			else
			{
				uag_s[s]+=3;
				s=0;
				continue;
			}
		}
		//iao
//alert(iao_s[s]);
		if(-1<(i=zjpy[s].indexOf(iao,iao_s[s])) )
		{
			iao_s[s]=i;
			if(1>iao_s[s])
			{
				iao_s[s]+=4;
				s=0
				continue;
			}
			h=zjpy[s].charAt(iao_s[s]-1);
			if(0>iaoQian.indexOf(h))
			{//bukeneg
				iao_s[s]+=4;
				s=0
				continue;
			}
			if(iao_s[s]+3==zjpy[s].length)
			{//fenlia
				chag=iao_s[s]+3;
				c1=zjpy[s].substr(0,iao_s[s])+"io"+zjpy[s].substr(chag,zjpy[s].length-chag);
				zjpy[zjpy.length]=c1;
				iao_s[zjpy.length-1]=iao_s[s]+3;//yueguo dagqian cili
				iao_s[s]+=4;
				s=0;
				continue;
			}
			//if(iao_s[s]+3<zjpy[s].length)
			h=zjpy[s].charAt(iao_s[s]+3);
			if(-1<yunMu2.indexOf(h))	
			{//bukeneg
				iao_s[s]+=4;
				s=0
				continue;
			}
			//fenlia
			chag=iao_s[s]+3;
			c1=zjpy[s].substr(0,iao_s[s])+"io"+zjpy[s].substr(chag,zjpy[s].length-chag);
			zjpy[zjpy.length]=c1;
			iao_s[zjpy.length-1]=iao_s[s]+3;//yueguo dagqian cili
			iao_s[s]+=4;
			s=0;
			continue;
		}
		//ng
		if(-1<(i=zjpy[s].indexOf(ng,ng_s[s])) )
		{
			ng_s[s]=i;
			if(ng_s[s]+2<zjpy[s].length)
			{
				chag=ng_s[s]+2;
				h=zjpy[s].charAt(chag);
				if(-1<yunMuGHou.indexOf(h))
				{//fenlia  "aeo";
					c1=zjpy[s].substr(0,ng_s[s])+"g"+zjpy[s].substr(chag,zjpy[s].length-chag);
					zjpy[zjpy.length]=c1;
					ng_s[zjpy.length-1]=ng_s[s]+2;//yueguo dagqian cili
					ng_s[s]+=3;
					s=0;
					continue;
				}
				else if('u'==h)
				{
					ng_s[s]+=3;//yueguo dagqian cili
					s=0;
					continue;
				}
				else
				{//gai
					c1=zjpy[s].substr(0,ng_s[s])+"g"+zjpy[s].substr(chag,zjpy[s].length-chag);
					zjpy[s]=c1;
					ng_s[s]+=2;
					s=0;
					continue;
				}
			}
			else
			{
				zjpy[s]=zjpy[s].substr(0,ng_s[s])+"g";
				ng_s[s]+=2;
				s=0;
				continue;
			}
		}
		s++;
	}

	return zjpy.length;
}
function NaPyCi(jian,cizuAnChg,yange)
{
	var k,z,s=NaPySuoYinWei(jian);
	k=suoyin[s];
	if('aa'==jian||0<k)
		s=k;
	else
	{
		s=XiaYiSuoYin(s);
		if(1>s)
		{
alert(s);
alert("ss");
			return 0;
		}
		s=suoyin[s];
	}
	var i=s,j,m,zog=0,chg=jian.length;//dayudegyu3
if(2>pyci[i].length)
{
alert(i);
alert(pyci[i]);
}
	while(chg>pyci[i][0].length||pyci[i][0]<jian)
	{
		i++;
	}
	while(30>zog&&togzichuan(jian,pyci[i][0],chg))
	{
		var chg3=pyci[i][0].length-chg;
		if(yange&&0<chg3)
			break;
		for(j=0;j<pyci[i][1].length;j++)
		{
			z=pyci[i][1][j].charAt(pyci[i][1][j].length-1);
			k=z.charCodeAt(0)-0x4e00;
			if(0!=m_dio)
			{
				var pys=[];
				if(1>GetZiPY(z,pys,1))
					continue;
				var m,youhouzhuipy=0;
				for(m=0;m<pys.length;m++)
				{
					if(togzichuan(pys[m],pyci[i][0].substr(pyci[i][0].length-pys[m].length,pys[m].length),pys[m].length))
					{
						youhouzhuipy=1;
						break;
					}
				}
				if(!youhouzhuipy)
					continue;
			}
			if(0<gnBihua)
			{//kanbihua shifou keyi
				if(!BihuaKeYi(z,m_bihuas,gnBihua) )
					continue;
			}
			if(0==cizuAnChg[chg3])
			{
				cizuAnChg[chg3]=new Array(1);
				cizuAnChg[chg3][0]=new Array(2);
				cizuAnChg[chg3][0][0]=pyci[i][1][j];
				cizuAnChg[chg3][0][1]=pyci[i][0];
			}
			else
			{
				m=cizuAnChg[chg3].length;
				cizuAnChg[chg3][m]=new Array(2);
				cizuAnChg[chg3][m][0]=pyci[i][1][j];
				cizuAnChg[chg3][m][1]=pyci[i][0];
			}
			zog++;
		}
		i++;
	}
	return zog;
}
function NaCi(jian,cizuAnChg,yange)
{
	if(1>jian.length)
		return 0;
	var i,zog=0;
	var zjpy=[];
	//zhao zuijianpy
	NaZuiJianPY(jian,zjpy);
	for(i=0;i<zjpy.length;i++)
		zog+=NaPyCi(zjpy[i],cizuAnChg,yange);
//alert(zog);
	return zog;
}
function ChogXuan(shift)
{
	if(1>zzuZiCiBk.length)
		return;
	var jiuWei=chogXuanWei;
	n=chogXuanWei%noPerPage;
	m=curPage*noPerPage;
	if(shift)
	{
		chogXuanTai=3;
		chogXuanWei--;
		if(0>chogXuanWei)
			chogXuanWei=zzuZiCiBk.length-1;
	}
	else if(0==chogXuanTai)
	{
		if(0<n)
		{
			chogXuanWei--;
			chogXuanTai=1;
		}
		else
		{
			chogXuanWei++;
			chogXuanTai=2;
			if(chogXuanWei>zzuZiCiBk.length-1)
			{
				chogXuanWei=m;
				chogXuanTai=3;//zuihoutai
			}
		}
	}
	else if(1==chogXuanTai)
	{
		chogXuanWei+=2;
		chogXuanTai=2;
		if(chogXuanWei>zzuZiCiBk.length-1)
		{
			chogXuanWei=m;
			chogXuanTai=3;//zuihoutai
		}
	}
	else if(2==chogXuanTai)
	{
		chogXuanWei=m;
		chogXuanTai=3;
	}
	else//3
	{
		chogXuanWei++;
		if(chogXuanWei>=zzuZiCiBk.length)
			chogXuanWei=0;
	}
	FaSog(zzuZiCiBk[chogXuanWei][0],-zzuZiCiBk[jiuWei][0].length);

	if(0<m_qiojian.length)
	{//fenduanshu
		var cha=zzuZiCiBk[jiuWei][1].length-zzuZiCiBk[chogXuanWei][1].length;
//alert(zzuZiCiBk[jiuWei][1]);
//alert(zzuZiCiBk[chogXuanWei][1]);
		if(0<cha)
		{
			m_qiojian=zzuZiCiBk[jiuWei][1].substr(zzuZiCiBk[chogXuanWei][1].length,cha)+m_qiojian;
			QigZhogWenShu(0,1,0);
		}
		else if(0>cha)
		{
			cha=-cha;
			m_qiojian=m_qiojian.substr(cha,m_qiojian.length-cha);
			QigZhogWenShu(0,1,0);
		}
	}
}
function NaHouXuanXiag()
{
	zzuZiCi.length=0;
	gnBihua=GetBihuaLen();
	var danjian=IsForDanJianZi();
	var i,j,k,m;
	if(1==danjian)
		GetDanJianZi(m_qiojian, zzuZiCi);
	else if(2==danjian)
		GetZhChShZi(m_qiojian, zzuZiCi);
	else
	{
		weiPy=IsPyProper(m_qiojian);
//alert(weiPy);
		var isdanzi=-1<weiPy;
		var zuZi=[];
		if(isdanzi)//get zi
			GetDanZi(weiPy, zuZi,m_qiojian);
		var cizuAnChg=[50];
		for(i=0;i<50;i++)
			cizuAnChg[i]=0;
		var cizog=NaCi(m_qiojian,cizuAnChg,0);
		var ciZuZog=new Array(cizog);
		k=0;
		var quanpipei=cizuAnChg[0].length;
		var yiYouCi=new Array(cizog);
		for(i=0;i<50;i++)
		{
			if(0!=cizuAnChg[i])
			{
				for(j=0;j<cizuAnChg[i].length;j++)
				{
					var ciChuan=cizuAnChg[i][j][0];
					if(99!=yiYouCi[ciChuan])
					{
						yiYouCi[ciChuan]=99;
						var ci=new Array(3);
						ci[0]=cizuAnChg[i][j][0];
						ci[1]=m_qiojian;
						ci[2]=cizuAnChg[i][j][1];
						ciZuZog[k++]=ci;
					}
				}
			}
		}
		cizog=k;
		ciZuZog.length=cizog;
//alert(cizog);
//alert(ciZuZog[0]);
		if(isdanzi)
		{
			if(1>cizog)
				zzuZiCi=zuZi;
			else
			{
				zzuZiCi=zuZi;
				if(0!=cizuAnChg[0])
					for(i=0;i<cizuAnChg[0].length;i++)
						zzuZiCi[zzuZiCi.length]=ciZuZog[i];
			}
		}
		else
		{
			var q="",qianzhui=[],zuWeiPy=[];
			m=0;
			for(i=m_qiojian.length;0<i&&2>m;i--)
			{
				q=m_qiojian.substr(0,i);
				if(-1<(k=IsPyProper(q)))
				{
					zuWeiPy[zuWeiPy.length]=k;
					qianzhui[qianzhui.length]=q;
					m++;
				}
			}
			var zuZiZu=[];
			for(i=0;i<qianzhui.length;i++)
			{
				zuZiZu[i]=new Array(0);
				GetDanZi(zuWeiPy[i],zuZiZu[i],qianzhui[i]);
			}
			i=0;
			zuZi.length=0;
			while(1)
			{
				k=0;
				for(j=0;j<zuZiZu.length;j++)
				{
					if(i<zuZiZu[j].length)
					{
						zuZi[zuZi.length]=zuZiZu[j][i];
						k++;
					}
				}
				if(1>k)
					break;
				i++;
			}
			var queQianmian=cizog;
			if(13<queQianmian)
				queQianmian=13;
			if(queQianmian<quanpipei)
				queQianmian=quanpipei;
			for(i=0;i<queQianmian;i++)
				zzuZiCi[zzuZiCi.length]=ciZuZog[i];
			cizog=0;
			for(i=m_qiojian.length-1;1<i;i--)
			{
				q=m_qiojian.substr(0,i);
				cizuAnChg[0]=0;
				cizog=NaCi(q,cizuAnChg,1);
				for(j=0;j<cizog;j++)
				{
					var ci=new Array(3);
					ci[0]=cizuAnChg[0][j][0];
					ci[1]=q;
					ci[2]=cizuAnChg[0][j][1];
					zzuZiCi[zzuZiCi.length]=ci;
				}
			}
			if(0<zuZi.length)
			{
				for(i=0;i<zuZi.length;i++)
					zzuZiCi[zzuZiCi.length]=zuZi[i];
			}
		}
	}
	return zzuZiCi.length;
}
//81- 40-ff
//

