// Engine of http://e-stopwatch.eu - v1.0, 23.10.2008
// (inspired by http://tools.arantius.com/stopwatch :-))
// by Walerian "Cobra" Walawski, http://walerian.info

// Defaults
var t=[0,0,0,0,0,0,0,1];

// StatCounter
var sc_project=3149458;
var sc_invisible=0;
var sc_partition=33;
var sc_security="169b072c";

// Let's make document.getElementById shorter ;-) (by-id)
function bid(name)
{
	return document.getElementById(name);
}

// Start :->
function bodyStart()
{
	if(window.location!='http://'+lng_lng+'.e-stopwatch.eu/')
	{
		parent.location.href='http://'+lng_lng+'.e-stopwatch.eu/';
	}
	else
	{
		load();
		toolTip();
	}
}

// Tooltip
function toolTip()
{
	// Add :->
	for(var i=0,d,dE,D=document,span;d=D.getElementsByTagName('*')[i++];)
	{
		if(d.getAttribute('title'))
		{
			d.onmouseover=function(e)
			{
				var e=e||event;
				box=D.createElement('span');
				box.id='tooltip';
				box.appendChild(D.createTextNode(this.getAttribute('title')));
				with(box.style)
				{
					position='absolute';
					top=e.clientY+(dE=D.documentElement).scrollTop+15+'px';
					left=e.clientX+dE.scrollLeft+15+'px';
				}
				// Old box? (Gecko [maybe not only] bug) - part 1
				if(this.title!=null&&this.title!='')
				{
					this.title_ex=this.title;
				}
				this.title='';
				D.body.appendChild(box);
			}
			d.onmouseout=function()
			{
				this.title=this.title_ex;
				D.body.removeChild(box);
				// Old box? (Gecko [maybe not only] bug) - part 2
				if(bid('tooltip')!=null)
				{
					D.body.removeChild(bid('tooltip'));
				}
			}
		}
	}
}

// Set theme
function setTheme(name,notThis)
{
	if(name!=notThis)
	{
		bid('theme').href=name+'.css';
		var cdate=new Date();
		cdate.setTime(cdate.getTime()+1000*60*60*24*7);
		document.cookie="theme="+escape(name)+";expires="+cdate.toGMTString();
	}
}

// Stop/Start
function stopStart(button)
{
	if(button.value=='▶')
	{
		button.value='||';
	}
	else
	{
		button.value='▶';
	}
	
	t[t[2]]=(new Date()).valueOf();
	t[2]=1-t[2];
	if (0==t[2])
	{
		clearInterval(t[4]);
		t[3]+=t[1]-t[0];
		bid('lap').innerHTML+='-- ['+(t[7]++)+'] '+format(t[1]-t[0])+'<br>';
		t[4]=t[1]=t[0]=0;
		setIt();
	}
	else
	{
		t[4]=setInterval('setIt();',48);
	}
}

// Set
function setIt()
{
	if (t[2]) t[1]=(new Date()).valueOf();
	t[6].value=format(t[3]+t[1]-t[0]);
}

// Format
function format(ms)
{
	var d=new Date(ms+t[5]).toString().replace(/.*([0-9][0-9]:[0-9][0-9]:[0-9][0-9]).*/, '$1');
	var x=String(ms%1000);
	while (x.length<3) x='0'+x;
	d+='.'+x;
	return d;
}

// Load
function load()
{
	bid('mail').innerHTML='<'+'a h'+''+'ref="m'+'ailto:'+'m'+'e'+''+'@'+'w'+'alerian'+'.'+'info'+'">'+'me'+''+''+'@'+'waler'+'ian'+'.'+'in'+'fo'+'<'+'/'+'a>';
	bid('tb').innerHTML='<div style="float:left;"><b>e-Stopwatch</b></div><div style="float:right;"> <select onchange="setTheme(this.value,lng_theme);"> <option>'+lng_theme+'</option> <option>DarkGreen</option> <option>DarkGreenHuge</option> <option>Native</option>  <option>LightBlue</option> <option>LightBeige</option> <option>BlackAndWhite</option> </select> <select onchange="parent.location.href=\'http://\'+this.value+\'.e-stopwatch.eu/\';"> <option>'+lng_language+'</option> <option value="de">Deutsch</option> <option value="en">English</option> <option value="pl">Polski</option> </select> <input id="info" type="button" onclick="if(this.value==lng_about){bid(\'ib\').style.display=\'block\';this.value=lng_about+\' (X)\'}else{bid(\'ib\').style.display=\'none\';this.value=lng_about;}" onfocus="this.blur();" value="'+lng_about+'"></div><br style="clear:both;">';
	bid('ib').style.display='none';
	bid('db').innerHTML='<table style="width:100%;border:0;"><tr><td rowspan="3" style="width:60%;text-align:right;"><input type="text" id="disp" onfocus="this.blur();" onselect="this.blur();"></td></tr><tr><td style="text-align:left;"><input type="button" id="stopStart" onclick="stopStart(this);" onfocus="this.blur();" value="&#9654;"></td></tr><tr><td style="text-align:left;"><input id="reset" type="button" onclick="window.location.reload();" onfocus="this.blur();" value="&#9632;"></td></tr></table><div id="lap"><!-- + --></div><br>';
	t[5]=new Date(1970,1,1,0,0,0,0).valueOf();
	t[6]=bid('disp');
	setIt();
}

// Keyboard actions
document.onkeypress=doIt
function doIt(wtf)
{
	var key=wtf.keyCode ? wtf.keyCode : wtf.charCode;
	if (key==32)
	{
		stopStart(bid('stopStart'));
	}
}
