// Open New Window.
function MM_openBrWindow(theURL,winName,features)
{
	window.open(theURL,winName,features);
}

// Live Camera.
function newImage(arg)
{
	if(document.images)
	{
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages()
{
	if(document.images && (preloadFlag == true))
	{
		for(var i=0; i<changeImages.arguments.length; i+=2)
		{
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

var preloadFlag = false;
function preloadImages()
{
	if(document.images)
	{
		menuindex01_2_over = newImage("img_common/menuindex01_2_over.jpg");
		menuindex01_3_over = newImage("img_common/menuindex01_3_over.jpg");
		menuindex01_4_over = newImage("img_common/menuindex01_4_over.jpg");
		menuindex01_5_over = newImage("img_common/menuindex01_5_over.jpg");
		menuindex01_6_over = newImage("img_common/menuindex01_6_over.jpg");
		preloadFlag = true;
	}
	LiveStart();
}

// for Live Image
var dummy;
var buffer;
var fgInit = true;
var cycleID;
var timerID;
var cycle;
var timer;
var fgLoad;
var fgLive = false;

function TimerClear()
{
	if(cycleID != null)
	{
		clearInterval(cycleID);
		cycleID = null;
	}
	if(timerID != null)
	{
		clearTimeout(timerID);
		timerID = null;
	}
}

function SetCycle()
{
	TimerClear();

	if(cycle >= 0){
		timer = ((cycle == 0) ? 1 : cycle);
		timerID = setTimeout( "OnTimeout()", (timer * 30000));
	}
	if(cycle == 0)
	{
		OnCycle();
	}
	else if(cycle > 0)
	{
		cycleID = setInterval("OnCycle()",(cycle * 1000));
	}
}

function OnCycle()
{
	if(fgLoad == false)
	{
		return;
	}
	fgLoad = false;
	buffer.src = MakeImageURL();
	buffer.onload = OnLoadFinish;
}

function OnLoadFinish()
{
	if(timerID != null)
	{
		clearTimeout(timerID);
		timerID = setTimeout("OnTimeout()",(timer * 30000));
	}
	if(cycle >= -1)
	{
		document.liveimage.src = buffer.src;
		if(cycle == -1)
		{
			document.livebutton.state.value = "Stopped";
		}
	}
	fgLoad = true;
	if(cycle == 0)
	{
		OnCycle();
	}
}

function OnTimeout()
{
	TimerClear();

	buffer.onload = null;
	buffer.src = null;
	document.liveimage.src = "img_common/blank.jpg";
	fgLoad = true;
	if(cycle >= 0)
	{
		SetCycle();
		document.livebutton.state.value = "Live";
	}
	else
	{
		document.livebutton.state.value = "Time-out";
	}
}

function MakeImageURL()
{
	var ret;
	ret = "http://cam2.dance.ne.jp/record/current.jpg?rand=" + String(dummy);
	if((++dummy) > 1000000)
	{
		dummy = 0;
	}
	return ret;
}

function LiveInit()
{
	if(fgInit)
	{
		dummy = Math.floor(Math.random() * 1000000);
		buffer = new Image();
		cycleID = null;
		timerID = null;
		fgLoad = true;
		fgInit = false;
	}
}

function LiveStart()
{
	if(fgLive == false)
	{
		LiveInit();
		cycle = 0;
		SetCycle();
		fgLive = true;
	}
	document.livebutton.state.value = "Live";
}

function LiveStop()
{
	TimerClear();
	cycle = -2;
	fgLive = false;
	document.livebutton.state.value = "Stop";
}

function LiveOne()
{
	TimerClear();
	cycle = -1;
	fgLive = false;

	LiveInit();
	OnCycle();
	document.livebutton.state.value = "Loading";
}

