// ********** Const
// ***** Timer
var m_iAnimeMilliSec = 20;

// ***** Buki
var m_iMargin = 10;
var m_iCvWt = 720;
var m_iCvHt = 120;

// ********** Timer And Common
var m_iAnime = -1;
var m_timAnime;
var m_elmCv1;
var m_ctxCv1;
var m_strDefine;
var m_astrVal = new Array();

// ********** Score Ranking
var m_strRank = '';

window.onload = sbInit;

function sbInit() {
	// ********** Init Canvas
	m_elmCv1 = document.getElementById('buki_regcv');
	m_ctxCv1 = m_elmCv1.getContext('2d');
	m_ctxCv1.lineWidth = 1;
	
	// ********** Start Timer
	m_timAnime = setInterval('sbAnime()',m_iAnimeMilliSec);
	
	document.getElementById('buki_name').focus();
}

function sbAnime() {
	var iIdx,iIdx2;
	var strDefine;
	var astrDefine = new Array();
	var astrScale = new Array();
	var iX1,iY1;
	var iX2,iY2;
	
	strDefine = '' + document.getElementById('buki_graph').value;
	
	// ********** Start Animation
	if (strDefine != '' && strDefine != m_strDefine) {
		m_iAnime = 0;
		m_strDefine = strDefine;
		
		m_elmCv1.style.backgroundColor = '#260d02';
		m_ctxCv1.clearRect(0,0,m_iCvWt,m_iCvHt);
		
		m_ctxCv1.strokeStyle = '#66502d';
		m_ctxCv1.beginPath();
		m_ctxCv1.moveTo(m_iMargin,m_iCvHt / 2);
		m_ctxCv1.lineTo(m_iCvWt - m_iMargin,m_iCvHt / 2);
		m_ctxCv1.stroke();
		m_ctxCv1.beginPath();
		m_ctxCv1.moveTo(m_iMargin,m_iMargin);
		m_ctxCv1.lineTo(m_iCvWt - m_iMargin,m_iMargin);
		m_ctxCv1.stroke();
		m_ctxCv1.beginPath();
		m_ctxCv1.moveTo(m_iMargin,m_iCvHt - m_iMargin);
		m_ctxCv1.lineTo(m_iCvWt - m_iMargin,m_iCvHt - m_iMargin);
		m_ctxCv1.stroke();
		
		// ********** Init
		astrDefine = strDefine.split('~');
		for (iIdx = 0; iIdx < astrDefine.length; iIdx++) {
			m_astrVal[iIdx] = new Array();
			m_astrVal[iIdx] = astrDefine[iIdx].split(',');
			for (iIdx2 = 1; iIdx2 < m_astrVal[iIdx].length; iIdx2++) {
				m_astrVal[iIdx][iIdx2] = Number(m_astrVal[iIdx][iIdx2]);
			}
		}
	}
	// ********** Draw Graph
	if (m_iAnime > 0 && m_iAnime < m_astrVal[0].length) {
		for (iIdx = 0; iIdx < m_astrVal.length; iIdx++) {
			
			iX1 = m_iMargin + ((m_iCvWt - m_iMargin * 2) / (m_astrVal[iIdx].length - 2)) * (m_iAnime - 1);
			iY1 = m_iCvHt / 2 - ((m_iCvHt / 2 - m_iMargin) / 100) * m_astrVal[iIdx][m_iAnime];
			
			if (iIdx == 0) {
				m_ctxCv1.strokeStyle = '#66502d';
				m_ctxCv1.beginPath();
				m_ctxCv1.moveTo(iX1,m_iCvHt / 2 - (m_iAnime % 10 == 0 ? 20 : 5));
				m_ctxCv1.lineTo(iX1,m_iCvHt / 2 + (m_iAnime % 10 == 0 ? 20 : 5));
				m_ctxCv1.stroke();
			}
			
			m_ctxCv1.strokeStyle = '#' + m_astrVal[iIdx][0];
			m_ctxCv1.beginPath();
			m_ctxCv1.arc(iX1,iY1,3,0 * Math.PI / 180,1 * Math.PI / 180,1);
			m_ctxCv1.closePath();
			m_ctxCv1.stroke();
			
			if (m_iAnime > 1) {
				iX2 = m_iMargin + ((m_iCvWt - m_iMargin * 2) / (m_astrVal[iIdx].length - 2)) * (m_iAnime - 1 - 1);
				iY2 = m_iCvHt / 2 - ((m_iCvHt / 2 - m_iMargin) / 100) * m_astrVal[iIdx][m_iAnime - 1];
				m_ctxCv1.beginPath();
				m_ctxCv1.moveTo(iX1,iY1);
				m_ctxCv1.lineTo(iX2,iY2);
				m_ctxCv1.stroke();
			}
		}
	}
	
	// ********** Add FrameCount
	if (m_iAnime >= 0 && m_iAnime < m_astrVal[0].length) {
		m_iAnime ++;
	}
}

function fnSave_anobuki() {
	if (document.getElementById('buki_name').value == '') {
		document.getElementById('buki_name').focus();
	} else {
		document.getElementById('buki_save').disabled = true;
		document.getElementById('buki_name').disabled = true;
		document.getElementById('buki_data').innerHTML = '<p>Now loading ...</p>';
		fnGet_anobuki2('name=' + EscapeEUCJP(document.getElementById('buki_name').value),'buki_data');
		document.getElementById('buki_save').disabled = false;
		document.getElementById('buki_name').disabled = false;
		document.getElementById('buki_name').value = '';
		document.getElementById('buki_name').focus();
		m_strRank = '';
	}
	return false;
}
function fnGet_anobuki4(strGet,strElm){
	fnGetRemoteScript('/cgi-bin/games/anobuki4.cgi',strGet + '&code=euc',strElm,0);
	return false;
}
function fnRank_anobuki(strGet) {
	if (m_strRank != strGet) {
		document.getElementById('buki_data').innerHTML = '<p>Now loading ...</p>';
		fnGet_anobuki4(strGet,'buki_data');
		m_strRank = strGet;
	}
	return false;
}
