﻿var pose_change = false;
function pause_anim(){
if(flg_move==0)return;////////////////////////////////////////////////////////1008
if(aut_flg==true)return;
if(now_flg!=2)return;
if(!flg_3d_check) return;
var anim_check_a;
	if(pose_change==false){
//		var select_Dummy = document.Applet1.getSelectedTransform();
		pauseTimeout2();
		anim_check_a=anim_playing_check();
		if(anim_check_a!=undefined){
			document.Applet1.pauseAnimation(anim_check_a);
		}
		pose_change=true;
	}else{
//		document.Applet1.setSelectedTransformByName("Dummy01");
//		document.Applet1.restoreOriginalTransformState();
		
		startTimeout2();
		anim_check_a=anim_pousing_check();
		if(anim_check_a!=undefined){
			document.Applet1.playAnimation(anim_check_a);
		}
		pose_change = false;
	}
}
function anim_playing_check(){
var anim_number=document.Applet1.getNumberOfAnimations();
	for(var i=0;i<anim_number;i++){
		if(document.Applet1.isAnimationPlaying(i)==true) return i;
	}
}
function anim_pousing_check(){
var anim_number=document.Applet1.getNumberOfAnimations();
	for(var i=0;i<anim_number;i++){
		if(document.Applet1.isAnimationPaused(i)==true) return i;
	}
}



function t2_dataClass(str, time)
{
	this.id=0;
	this.start=0; // 
	this.str=str;
	this.time=time;
	this.diff=0; //
	this.child=false; // 
	this.loop=(-1); //
}
var t2_data=new Array();
var t2_data_counter=0;
///////////////////////////////////////////////////////
function setTimeout2(str, time) // timeout
{
	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(); // milisec
	t2_data_counter++;
}
function setTimeout2i(str, time, interval) // timeout
{
	setTimeout2(str,time);
	var str2="setInterval2(\""+str+"\","+interval+")";
	t2_data[t2_data_counter]=new t2_dataClass(str2, time);
	t2_data[t2_data_counter].id=setTimeout(str2, time);
	t2_data[t2_data_counter].start=(new Date()).getTime(); // milisec
	t2_data[t2_data_counter].loop=interval;
	t2_data_counter++;
}
function t2_intervalClass(id)
{
	this.id=id;
}
var t2_interval=new Array();
var t2_interval_counter=0;
function setInterval2(str, time) // timeout
{
	setTimeout2(str,0);
	t2_interval[t2_interval_counter]=new t2_intervalClass(0);
	t2_interval[t2_interval_counter].id=setInterval(str, time);
	t2_interval_counter++;
	//alert(str);
	/*
	t2_data[t2_data_counter]=new t2_dataClass(str, time);
	t2_data[t2_data_counter].id=setInterval(str, time);
	t2_data[t2_data_counter].start=(new Date()).getTime(); // milisec
	t2_data[t2_data_counter].loop=true;
	t2_data_counter++;
	*/
}
function clearInterval2()
{
	for(var i=0; i<t2_interval_counter; i++){
		clearInterval(t2_interval[i].id);
	}
	t2_interval_counter=0;
}
function setTimeout2c(str, time) // timeout
{
	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(); // milisec
	t2_data[t2_data_counter].child=true;
	t2_data_counter++;
}
///////////////////////////////////////////////////////
function registTimeout2(str, time) // timeout
{
	t2_data[t2_data_counter]=new t2_dataClass(str, time);
	t2_data[t2_data_counter].start=(-1); // milisec
	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); //
			if(t2_data[i].child){
				t2_data[i].diff=t2_data[i].time+1000; //
				t2_data[i].start=(-1); //
			}else{
				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++){ //
		if(t2_data[i].loop==(-1)) re_time=t2_data[i].time-t2_data[i].diff;
		else{
			//re_time=t2_data[i].time-((t2_data[i].loop)%(t2_data[i].diff));
			re_time=t2_data[i].loop-((t2_data[i].diff-t2_data[i].time)%t2_data[i].loop);
			//re_time=0;
			//alert(t2_data[i].str+"re_time:"+re_time);
		}
		if(re_time<0) continue;
		t2_data[i].id=setTimeout(t2_data[i].str, re_time);
		//alert(t2_data[i].str+":"+re_time);
		t2_data[i].start=now; // milisec
	}
	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;
	clearInterval2();
}
function clearTimeout2i()
{
	for(var i=0; i<t2_data_counter; i++){
		if(t2_data[i].loop!=(-1)){
			clearTimeout(t2_data[i].id);
			t2_data[i].loop=(-1); // no loop
			t2_data[i].diff=t2_data[i].time+1000; // 
		}
	}
	t2_pause_flg=false;
	clearInterval2();
}
///////////////////////////////////////////////////////
var t2_pause_flg=false;
function pauseTimeout2()
{
	if(t2_pause_flg) return;
	t2_pause_flg=true;
	var now=(new Date()).getTime(); // milisec
	for(var i=0; i<t2_data_counter; i++){
		t2_data[i].diff+=now-t2_data[i].start; // miilsec
		clearTimeout(t2_data[i].id);
	}
	clearInterval2();
}
///////////////////////////////////////////////////////
function stopTimeout2()
{
	for(var i=0; i<t2_data_counter; i++){
		clearTimeout(t2_data[i].id);
	}
	t2_pause_flg=false;
	clearInterval2();
}
///////////////////////////////////////////////////////

