// ********** Common
var m_dStart;
var m_bFocus = 0;

// ********** Const
var m_iMotionStp = 3;
var m_iMotionCnt = 30;
var m_iMotionPar = 0.5;
var m_iMargin = 20;
var m_iCvWt = 620;
var m_iCvHt = 180;
var m_iAnimeSt = -10;

// ********** Draw
var m_elmCv;
var m_ctxCv;
var m_elmNb;
var m_strText = '';

var m_iAnime;
var m_timAnime;
var m_strDefine;

var m_iTextWt;
var m_iLabelWt;
var m_iLabelHt;
var m_astrChr0 = new Array();
var m_astrChr1 = new Array();
var m_aiX0 = new Array();
var m_aiX1 = new Array();
var m_iChr0;
var m_iChr1;

var m_strReq = '';

window.onload = sbInit;

function sbInit() {
	// Init Canvas
	m_elmCv = document.getElementById('nuke_cv');
	m_ctxCv = m_elmCv.getContext('2d');
	m_ctxCv.lineWidth = 2;
	m_ctxCv.strokeStyle = '#000';
	
	// Create NameBox
	m_elmNb = document.getElementById('nuke_nb');
	
	// Start Timer
	m_timAnime = setInterval('sbAnime()',30);
}

function sbAnime() {
	var iIdx;
	var iIdx2;
	var iX0,iX1,iXi;
	var iY0,iY1,iYi;
	var iAni;
	var iPar;
	var iTemp1;
	var iTemp2;
	var astrChr = new Array();
	var astrTemp = new Array();
	var strDefine;
	strDefine = '' + document.getElementById('nuke_res').value;
	
	// Start Animation
	if (strDefine != '' && strDefine != m_strDefine) {
		m_iAnime = m_iAnimeSt;
		m_strDefine = strDefine;
		
		// Init
		astrChr = strDefine.split('~');
		if (astrChr[1] != '') {
			document.getElementById('nuke_alert').innerHTML = '<span class="info">' + astrChr[1] + '</span>';
			document.getElementById('nuke_alert').style.display = 'block';
		}
		m_astrChr0 = astrChr[2].split(',');
		m_astrChr1 = astrChr[3].split(',');
		if (astrChr.length >= 5) {
			m_strText = astrChr[4].replace(/@/g,"\n");
		} else {
			m_strText = '';
		}
		
		m_iChr1 = m_astrChr0.length;
		m_iChr0 = 0;
		for (iIdx = 0; iIdx < m_iChr1; iIdx++) {
			if (m_astrChr0[iIdx] != '') {
				m_iChr0++;
			}
		}
		
		//Size
		m_iTextWt = Math.floor((m_iCvWt - m_iMargin * 2) / m_iChr1);
		m_iTextWt = (m_iTextWt > m_iCvHt - m_iMargin * 2) ? m_iCvHt - m_iMargin * 2 : m_iTextWt;
		m_iTextTp = Math.floor(m_iCvHt / 2 - m_iTextWt / 2);
		m_iLabelWt = Math.floor(m_iTextWt * 0.8);
		m_iLabelHt = Math.floor(m_iTextWt * 0.4);
		
		iIdx2 = 0;
		for (iIdx = 0; iIdx < m_iChr1; iIdx++) {
			m_aiX0[iIdx] = Math.floor(m_iCvWt / 2 - m_iTextWt * m_iChr0 / 2) + iIdx2 * m_iTextWt;
			m_aiX1[iIdx] = Math.floor(m_iCvWt / 2 - m_iTextWt * m_iChr1 / 2) + iIdx * m_iTextWt;
			if (m_astrChr0[iIdx] != '') {
				iIdx2++;
			}
		}
		
		// ********** Time
		if (m_bFocus == 0) {
			document.getElementById('nuke_wait').style.display = 'none';
			document.getElementById('nuke_all').style.display = 'block';
			document.getElementById('nuke_req').focus();
			m_bFocus = 1;
		}
		m_dStart = new Date();
	}
	
	// Draw
	if ((m_iAnime % m_iMotionCnt + 1) <= m_iMotionCnt * m_iMotionPar) {
		if (m_iAnime >= m_iAnimeSt && m_iAnime < m_iMotionCnt * m_iMotionStp) {
			m_ctxCv.clearRect(0,0,m_iCvWt,m_iCvHt);
			m_elmNb.innerHTML = '';
		}
		if (m_iAnime >= 0 && m_iAnime < m_iMotionCnt * m_iMotionStp) {
			for (iIdx = 0; iIdx < m_iChr1; iIdx++) {
				if        (m_iAnime < m_iMotionCnt * 1) {
					iX0 = m_aiX0[iIdx];
					iY0 = -m_iTextWt;
					iX1 = m_aiX0[iIdx];
					iY1 = (m_astrChr0[iIdx] == '' ? -m_iTextWt : m_iTextTp);
				} else if (m_iAnime < m_iMotionCnt * 2) {
					iX0 = m_aiX0[iIdx];
					iY0 = (m_astrChr0[iIdx] == '' ? -m_iTextWt : m_iTextTp);
					iX1 = m_aiX1[iIdx];
					iY1 = (m_astrChr0[iIdx] == '' ? -m_iTextWt : m_iTextTp);
				} else                                {
					iX0 = m_aiX1[iIdx];
					iY0 = (m_astrChr0[iIdx] == '' ? -m_iTextWt : m_iTextTp);
					iX1 = m_aiX1[iIdx];
					iY1 = m_iTextTp;
				}
				iXi = iX0 + (iX1 - iX0) * (m_iAnime % m_iMotionCnt + 1) / m_iMotionCnt / m_iMotionPar;
				iYi = iY0 + (iY1 - iY0) * (m_iAnime % m_iMotionCnt + 1) / m_iMotionCnt / m_iMotionPar;
				// ***** Box
				if (iYi > -m_iTextWt) {
					m_ctxCv.fillStyle = (m_astrChr0[iIdx] == '' ? '#522' : '#000');
					m_ctxCv.fillRect(iXi + m_iTextWt * 0.05,iYi + m_iTextWt * 0.05,m_iTextWt * 0.9,m_iTextWt * 0.9);
					m_elmNb.innerHTML += '<table style="left:' + iXi + 'px; top:' + iYi + 'px; width: ' + m_iTextWt + 'px;height: ' + m_iTextWt + 'px;font-size: ' + Math.round(m_iTextWt * 0.7) + 'px;"><tr><td>' + m_astrChr1[iIdx] + '</td></tr></table>';
				}
			}
		}
	}
	
	// End Animation
	if (m_iAnime == m_iMotionCnt * m_iMotionStp + 2) {
		m_ctxCv.strokeRect(1,1,m_iCvWt - 2,m_iCvHt - 2);
		document.getElementById('nuke_text').value = m_strText;
		if (m_strText != '') {
//			fnSend_amazon('nuke_links','nuke0c-22','DVD',EscapeUTF8(m_strText),'salesrank',340,5);
			sbGetAmazon('links','nuke0c-22','',EscapeUTF8(m_strText),'',280,1);
		}
	}
	
	// Add FrameCount
	if (m_iAnime >= m_iAnimeSt && m_iAnime <= m_iMotionCnt * m_iMotionStp + 2) {
		m_iAnime ++;
	}
}

function fnLenB(strText) {
	iCnt = 0;
	for (iIdx = 0; iIdx < strText.length; iIdx++) {
		strChr = escape(strText.charAt(iIdx));
		if (strChr.length < 4) {
			iCnt++;
		} else {
			iCnt+=2;
		}
	}
	return iCnt;
}

function fnSend_anonuke() {
	var strReq;
	strReq = '';
	strReq +=  'nm=' + EscapeEUCJP(document.getElementById('nuke_req').value);
	strReq += '&mode=' + document.getElementById('nuke_mode').value;
	if (m_iAnime > m_iMotionCnt * m_iMotionStp + 2 || strReq != m_strReq) {
		m_iAnime = m_iAnimeSt - 1;
		document.getElementById('nuke_alert').innerHTML = '';
		document.getElementById('nuke_alert').style.display = 'none';
		fnGetValue_anonuke(strReq,'nuke_res');
		m_strReq = strReq;
	}
	return false;
}
function fnSend_changemode() {
	var elmText = document.getElementById('nuke_text');
	elmText.style.display = (elmText.style.display == 'block') ? 'none' : 'block';
	return false;
}


// EnterKey Event
var m_elmFocus;
function fnFocus_anonuke(elmNum){
	m_elmFocus = elmNum
	elmNum.style.backgroundColor = '#a88';
	elmNum.select();
}
function fnBlur_anonuke(elmNum){
	elmNum.style.backgroundColor = '';
}
function fnGetKeycode_anonuke(e){
	if (document.all) {
		return event.keyCode;
	} else if (document.getElementById) {
		return (e.keyCode!=0) ? e.keyCode : e.charCode;
	} else if(document.layers){
		return e.which;
	}
}
function fnKeyPress_anonuke(e){
	if(fnGetKeycode_anonuke(e) == 13) {
		if        (m_elmFocus.id == 'nuke_send') { document.getElementById('nuke_req').focus();
		} else if (m_elmFocus.id == 'nuke_req')  { document.getElementById('nuke_send').focus(); fnSend_anonuke();
		}
		return false;
	}
}
document.onkeypress = fnKeyPress_anonuke;
