/////////////// timeout2.js (ver.2) //////////////////

////////////////////////////////////////////////////

function t2_dataClass(str, time)
{
	this.id=0;
	this.start=0; 
	this.str=str;
	this.time=time;
	this.diff=0; 
}
var t2_data=new Array();
var t2_data_counter=0;
///////////////////////////////////////////////////////
function setTimeout2(str, time) 
{
	t2_data[t2_data_counter]=new t2_dataClass(str, time);
	t2_data[t2_data_counter].id=setTimeout(str, time);
	t2_data[t2_data_counter].start=(new Date()).getTime(); 
	t2_data_counter++;
}
///////////////////////////////////////////////////////
function registTimeout2(str, time) 
{
	t2_data[t2_data_counter]=new t2_dataClass(str, time);
	t2_data[t2_data_counter].start=(-1); 
	t2_data_counter++;
}
///////////////////////////////////////////////////////
function startTimeout2() 
{
	if(!t2_pause_flg){
		for(var i=0; i<t2_data_counter; i++){
			if(t2_data[i].start<0) continue; 
			clearTimeout(t2_data[i].id); 
			t2_data[i].diff=0;
			t2_data[i].start=(-1);
		}
	}
	var now=(new Date()).getTime();
	var re_time;
	for(var i=0; i<t2_data_counter; i++){
		re_time=t2_data[i].time-t2_data[i].diff;
		if(re_time<0) continue;
		t2_data[i].id=setTimeout(t2_data[i].str, re_time);
		t2_data[i].start=now; 
	}
	t2_pause_flg=false;
}
///////////////////////////////////////////////////////
function clearTimeout2()
{
	for(var i=0; i<t2_data_counter; i++){
		clearTimeout(t2_data[i].id);
	}
	t2_data_counter=0; 
	t2_pause_flg=false;
}
///////////////////////////////////////////////////////
var t2_pause_flg=false;
function pauseTimeout2()
{
	if(t2_pause_flg) return;
	t2_pause_flg=true;
	var now=(new Date()).getTime();
	for(var i=0; i<t2_data_counter; i++){
		t2_data[i].diff+=now-t2_data[i].start;
		clearTimeout(t2_data[i].id);
	}
}
///////////////////////////////////////////////////////
function stopTimeout2()
{
	for(var i=0; i<t2_data_counter; i++){
		clearTimeout(t2_data[i].id);
	}
	t2_pause_flg=false;
}
///////////////////////////////////////////////////////

