//  -  -  -  -  -  -  -  -  -
//
//  S K I   A N I M A T I O N
//
//  -  -  -  -  -  -  -  -  -
//
// Start Location
//
var start_location_x = -10
var start_location_y = 75
//
// Cycle times in ms
//
var cycle_start = 1000;
var cycle_awake = 1000;
var cycle_look = 500;
var cycle_happy = 2000;
var cycle_clean = 250;
var cycle_campfire = 150;
var cycle_skiing = 100;
//
var repeat_look = 5;
var repeat_clean = 6;
var repeat_onLoad_campfire_animation = 50;
//
var mouse_cursor_distance_x = 50;
var mouse_cursor_distance_y = 0;
//
var mov_x = 16;
var mov_y = 35;
//
//  Browser detection
//
var IE4 = false, NN4 = false, NN6 = false;
if (document.all)
{
	IE4 = true;
}
else if (document.layers)
{
	NN4 = true;
} 
else if (document.getElementById) 
{
    NN6 = true;
}
//
//	Internet Explorer < 7 can not load png correctly
//
var load_gif = false;
//
if ( /MSIE (\d+\.\d+);/.test(navigator.userAgent) )		// test for MSIE x.x;
{
	var ieversion = new Number(RegExp.$1)               // capture x.x portion and store as a number
	if (ieversion < 7)
	{
		load_gif = true;
	}
}
//
//  Internet Explorer 4.0 or Netscape 6.0
//
if (IE4 || NN6)
{
	if (load_gif == false)
	{
		document.write('<div id="jsicon" STYLE="position:absolute\;width:100\;height:100\;z-index:100\;left:' + start_location_x + '\;top:' + start_location_y + '">');
		document.write('<img src=ski/right.png width=80 height=86 name="jsicon2"></div>');
	}
	else
	{
		document.write('<div id="jsicon" STYLE="position:absolute\;width:100\;height:100\;z-index:100\;left:' + start_location_x + '\;top:' + start_location_y + '">');
		document.write('<img src=ski/right.gif width=80 height=86 name="jsicon2"></div>');
	}
}
//
//  Netscape Navigator 4.0
//
if (NN4)
{
	document.write('<layer name="jsicon" top=' + start_location_y + ' left=' + start_location_x + ' z-index=100>');
	document.write("<img src=ski/right.png width=80 height=86></layer>");
}
//
//
//  Create image array
//
nekoG = new Array();
for (i=0; i<=38; i++)
{
	nekoG[i] = new Image();
}
//
if (load_gif == false)
{
	nekoG[0].src = "../ski/awake.png";
	nekoG[1].src = "../ski/left.png";
	nekoG[4].src = "../ski/up.png";
	nekoG[5].src = "../ski/up.png";
	nekoG[6].src = "../ski/down.png";
	nekoG[7].src = "../ski/down.png";
	nekoG[16].src = "../ski/left.png";
	nekoG[17].src = "../ski/left.png";
	nekoG[20].src = "../ski/upleft.png";
	nekoG[21].src = "../ski/upleft.png";
	nekoG[22].src = "../ski/dwleft.png";
	nekoG[23].src = "../ski/dwleft.png";
	nekoG[24].src = "../ski/right.png";
	nekoG[25].src = "../ski/right.png";
	nekoG[28].src = "../ski/upright.png";
	nekoG[29].src = "../ski/upright.png";
	nekoG[30].src = "../ski/dwright.png";
	nekoG[31].src = "../ski/dwright.png";
	nekoG[32].src = "../ski/look1.png";
	nekoG[33].src = "../ski/look2.png";
	nekoG[34].src = "../ski/clean1.png";
	nekoG[35].src = "../ski/clean2.png";
	nekoG[36].src = "../ski/campf1.png";
	nekoG[37].src = "../ski/campf2.png";
	nekoG[38].src = "../ski/happy.png";
}
else
{
	nekoG[0].src = "../ski/awake.gif";
	nekoG[1].src = "../ski/left.gif";
	nekoG[4].src = "../ski/up.gif";
	nekoG[5].src = "../ski/up.gif";
	nekoG[6].src = "../ski/down.gif";
	nekoG[7].src = "../ski/down.gif";
	nekoG[16].src = "../ski/left.gif";
	nekoG[17].src = "../ski/left.gif";
	nekoG[20].src = "../ski/upleft.gif";
	nekoG[21].src = "../ski/upleft.gif";
	nekoG[22].src = "../ski/dwleft.gif";
	nekoG[23].src = "../ski/dwleft.gif";
	nekoG[24].src = "../ski/right.gif";
	nekoG[25].src = "../ski/right.gif";
	nekoG[28].src = "../ski/upright.gif";
	nekoG[29].src = "../ski/upright.gif";
	nekoG[30].src = "../ski/dwright.gif";
	nekoG[31].src = "../ski/dwright.gif";
	nekoG[32].src = "../ski/look1.gif";
	nekoG[33].src = "../ski/look2.gif";
	nekoG[34].src = "../ski/clean1.gif";
	nekoG[35].src = "../ski/clean2.gif";
	nekoG[36].src = "../ski/campf1.gif";
	nekoG[37].src = "../ski/campf2.gif";
	nekoG[38].src = "../ski/happy.gif";
}
//
var NID = 0;
var NID2 = 0;
var MX = 100;
var MY = 100;
var NX = 0;
var NY = 50;
var NA = 1;
var BN = 0;
var NS = 16;
var NS2 = NS * NS;
var NS_2 = NS >> 1;
var NID2 = setTimeout("",0);
//
//  Event mouse move
//
if (NN4 || NN6)
{
	document.captureEvents(Event.MOUSEMOVE);
}
//
document.onmousemove=GetMousePos;
function GetMousePos(e)
{
	if (NN4 || NN6)
	{
		MX = e.pageX;
		MY = e.pageY;
	}
	if (IE4)
	{
		MX = document.body.scrollLeft + event.clientX;
		MY = document.body.scrollTop + event.clientY;
	}
	
	MX = MX + mouse_cursor_distance_x;
	MY = MY + mouse_cursor_distance_y;
}
//
//  Icon move Function
//
function show_skiing()
{
	var	DX = MX - NX;
	var	DY = MY - NY;
	var	DX2 = DX * DX;
	var	DY2 = DY * DY;
	DX2 = ( DX2 == 0 && DY2 == 0 ) ? 1 : DX2;
	var	XF = (DX < 0 ) ? -1 : 1;
	var	YF = (DY < 0 ) ? -1 : 1;
	//
	if ( DX2 + DY2 < NS2 )
	{
		var	NDX = DX;
		var	NDY = DY;
	}
	else 
	{
		var	NDX = XF * Math.ceil(Math.sqrt(NS2 * DX2 / (DX2 + DY2)));
		var	NDY = YF * Math.ceil(Math.sqrt(NS2 * DY2 / (DX2 + DY2)));
	}
	if ( NDX == 0 && NDY == 0 )
	{
		clearInterval(NID);
		show_awake();
	} 
	else 
	{
		var Ndirect = 0;
		if ( NDY < 0 && NDY + NS_2 <= 0)
		{
			Ndirect += 2
		}
		else if ( NDY > 1 && NDY - NS_2 >= 0)
		{
			Ndirect += 3;
		}
		if ( NDX < 0 && NDX + NS_2 <= 0)
		{
			Ndirect += 8
		}
		else if ( NDX > 1 && NDX - NS_2 >= 0) 
		{
			Ndirect += 12;
		}
		NA = ( NA == 0 ) ? 1 : 0;
		BN = Ndirect;
		setImage((Ndirect<<1)+NA);
		NX += NDX;
		NY += NDY;
		//
		setPosition(NX - mov_x, NY - mov_y);
	}
}
//
//  Set image function
//
function setPosition(x_pos, y_pos)
{
	if (NN4)
	{
		document.layers.jsicon.moveTo(x_pos, y_pos);
	}
	if (IE4) 
	{
		document.all["jsicon"].style.left = x_pos;
		document.all["jsicon"].style.top = y_pos;
	}
	if (NN6)
	{
		document.getElementById("jsicon").style.left = x_pos;
		document.getElementById("jsicon").style.top = y_pos;
	}
}
//
//  Set image function
//
function setImage(num)
{
	if (NN4)
	{
		document.layers.jsicon.document.images[0].src = nekoG[num].src;
	}
	if (IE4)
	{
		 document.all.jsicon.document.images[0].src = nekoG[num].src;
	}
	if (NN6)
	{
		document.jsicon2.src = nekoG[num].src;
  }
}
//
//  Event functions
//
function show_awake()
{
	NA = 0;
	setImage(0);
	OLDMX = MX;
	OLDMY = MY;
	NA = 0;
	NJC = 0;
	NID2 = setTimeout("show_look()", cycle_awake);
	//
  	mousecheck();
}
//
//  Show look icons
//
function show_look()
{
	NJC++;
	clearTimeout(NID2);
	if ( NJC <= repeat_look )
	{
		if ( NJC & 1 == 1 )
		{ 
			setImage(33);
		}
		else
		{
			setImage(32);
		}
		NID2 = setTimeout("show_look()",cycle_look);
	}
	else
	{
	  NKC = 0;
	  NID2 = setTimeout("show_clean()",cycle_look);
	}
	//
  	mousecheck();
}
//
//  Show clean icons
//
function show_clean()
{
	NKC++;
	clearTimeout(NID2);
	if ( NKC <= repeat_clean )
	{
		if ( NKC & 1 == 1 )
		{
		setImage(35)
		}
		else
		{
		setImage(34);
		}
		NID2 = setTimeout("show_clean()",cycle_clean);
	}
	else
  	{
		NID2 = setTimeout("show_happy()",cycle_clean);
	}
	//
	mousecheck();
}
//
//  Show happy icons
//
function show_happy()
{
	clearTimeout(NID2);
	setImage(38);
	NNC = 0;
	NID2 = setTimeout("show_campfire()",cycle_happy);
	//
	mousecheck();
}
//
//  Show campfire icons
//
function show_campfire()
{
	NNC++;
	clearTimeout(NID2);
	if ( NNC & 1 == 1 )
	{
	  setImage(36)
	}
	else
	{
	  setImage(37);
	}
	NID2 = setTimeout("show_campfire()", cycle_campfire);
	//
	if (onLoad_animation == false)
	{
  		mousecheck();
	}
	else
	{
		if (NNC > repeat_onLoad_campfire_animation)
		{
			onLoad_animation = false;
			start_ski_animation();
		}
	}
}
//
//  Mouse move check function
//
function mousecheck()
{
	if (onLoad_animation == false)
	{
		if ( OLDMX != MX || OLDMY != MY )
		{
			clearTimeout(NID2);
			clearInterval(NID);
			start_ski_animation();
		}
	}
}
//
//  Start the skiing animation
//
function start_ski_animation()
{
	clearTimeout(NID2);
	setImage(0);
	NID2 = setTimeout('NID = setInterval("show_skiing()",cycle_skiing)', cycle_start);
}
//
//  Skiiing animation on load
//
var onLoad_animation = true;
function onLoad_ski_animation()
{
	NNC = 0;
	clearTimeout(NID2);
	clearInterval(NID);
	show_awake();
}
//
//
//
var skiing = 1;
function start_stop_skiing(button)
{
	onLoadAnimation = false;
	clearTimeout(NID2);
	clearInterval(NID);
	if (skiing == 1)
	{
		skiing = 0;
		button.value = "S T A R T";
		//
		MX = 100;
		MY = 100;
		NX = 0;
		NY = 50;
		setPosition(start_location_x,start_location_y);
		setImage(24);
	}
	else
	{
		skiing = 1;
		button.value = "S T O P";
		//
		start_ski_animation();
	}
}


