lx=0;ly=0;tim=0;ls='';state='mati';lm=-50;px=0;py=0;
bored=new Array('jare', 'togil', 'togir', 'togiu', 'togid', 'kaki', 'mati','sleep');
if(ns=(navigator.appName!='Microsoft Internet Explorer')) {
  base=document.neko.document.koneko.src.replace(/\/[^\/]*$/,'/');
} else {
  base=document.all.koneko.src.replace(/\/[^\/]*$/,'/');
}
stp=10;

function preLoad (imgs) {
  if(document.images){
    var s=new Array(imgs.length);
    for(i=0;i<imgs.length;i++){s[i]=new Image;s[i].src=base+imgs[i]+'.gif';}
  }
}


function nekomove(){
if(ns){mover(document.neko)} else {mover(document.all.neko)}
}

function mover(obj){
  tim++;
  with(obj) {
    if(!ns){y=offsetTop;x=offsetLeft;}
    ls=state;
    dx=lx-px;dy=ly-py;
    cx=x-px;cy=y-py;
    if(cx>stp){direct='l_'} else if(cx<-stp){direct='r_'} else {direct='__'}
    if(cy>stp){direct=direct.charAt(0)+'u'} else if(cy<-stp){direct=direct.charAt(0)+'d'}
    if(dx*dx+dy*dy>400){lm=tim}
    if (tim-lm<30) {if(ls=='sleep' || ls=='mati' ){state='awake'} else {state=direct}
    } else {
      if (tim-lm<50) {if (ls!='mati') {state='mati'}}
      else if(ls!='sleep' && (tim-lm)%20==0) {
	if(ls.substr(0,4)=='togi'){state='mati'}
	else {state=bored[Math.round(Math.min(Math.random()*bored.length*1.5,bored.length-1))]}
      }
    }
    if(state.charAt(0)=='l'){x-=stp} else if(state.charAt(0)=='r'){x+=stp}
    if(state.charAt(1)=='u'){y-=stp} else if(state.charAt(1)=='d'){y+=stp}
    if(state=='__'){state='mati'}
    if(ls!=state) {
      if(ns){document.koneko.src=base+state+".gif"}
      else {document.all.koneko.src=base+state+".gif"}
    }
    if(!ns){style.top=y;style.left=x;}
  }
  lx=px;ly=py;
}
function nekostop(){clearInterval(nekoID);
 if(ns){document.neko.document.koneko.src="mati.gif"} else 
   {document.allkoneko.src="mati.gif"}
}
function posN(ev){px=ev.x;py=ev.y}
function pos() {px=window.event.offsetX;py=window.event.offsetY;}
preLoad(bored);
preLoad(new Array('_d','_u','l_','ld','du','r_','rd','ru'));
if(ns){document.captureEvents(Event.MOUSEMOVE);document.onMouseMove=posN;}
else {document.onmousemove=pos}
nekoID=setInterval(nekomove,200);

