//===============================================
// Slug VCF js
// 2007/04/25~
//
// 2008/08/15~ trans for SLUG VCF
//===============================================
/*
*/
var ON_GOing = false;
var LIMITed_TIME = 3 * 60 * 1000;
var CURRENT_LEVEL = 0;
//====================================
// show turn
//====================================
function setTurnMessage ( gemLine ){
setVCFcheckMessage( 0, "
白先"
: "background-color:#000;'>黒先"
) + "
"
);
}
//================================================
// show check message
//================================================
function setVCFcheckMessage( RDFAnum, message ){
with( document.getElementById( 'RDFA_MESSAGE_BOX' ) ){
innerHTML = message;
scrollTop = scrollHeight;
}
}
//==================================
// set button label
//==================================
function setLabel(){
document.getElementById( 'START_PASS_BUTTON' ).innerHTML = ( ON_GOing
? "パス"
: "開始"
);
}
//==================================
// get current level
//==================================
function getLevel(){
try{
for( var LVnum = 10; LVnum; LVnum -- ){
if(
document.getElementById( 'LVL' + LVnum ) &&
document.getElementById( 'LVL' + LVnum ).checked
){
return LVnum;
}
}
}catch( errorMSG ){}
return 0;
}
//==================================
// load VCF list by ajax
//==================================
function loadSlugVCF(){
if( ON_GOing ){
showTimeTrialMessage( "on going now.
", false );
return;
}
CURRENT_LEVEL = getLevel();
if( !CURRENT_LEVEL ){
alert( "レベルを指定して下さい。" );
return;
}
sendRequest( function( XRobj ){
try{
eval( XRobj.responseText );
// document.getElementById( 'TEST' ).innerHTML = XRobj.responseText.replace( /;/g, ";
" );
}catch( errorMSG ){
// document.getElementById( 'TEST' ).innerHTML = "" + XRobj.responseText.replace( /;/g, ";\n" ) + "
";
}
//------------------------- set for time
for( var PBnum in PROBLEM_LIST ){
PROBLEM_LIST[ PBnum ].START = 0;
PROBLEM_LIST[ PBnum ].CLEAR = 0;
PROBLEM_LIST[ PBnum ].RESULT = 0; // 2008/08/15
PROBLEM_LIST[ PBnum ].LENGTH = 99;
// 2008/01/29 PROBLEM_LIST[ PBnum ].LEVEL = 0;
}
//------------------------- initialize
PROBLEM_POS = 0;
THINKing_TIME = 0;
showTimeTrialMessage( "Ready !
", true );
setTurnMessage( PROBLEM_LIST[ 0 ].GEM_LINE );
// setVCFcheckMessage( 0, "" );
ON_GOing = true;
setLabel();
//------------------------- set problem [ timeTrialJS.php ]
startProblem();
},
{
LEVEL : CURRENT_LEVEL
},
"POST", "./SlugVCFaccess.php", true, true
);
}
//==================================
// send record by ajax
//
// ANSobj {
// threadNumber : time,
// threadNumber : time,
// threadNumber : time
// }
//==================================
function sendSlugVCF(){
//-------------------------------------
// make clear string
//-------------------------------------
var arrayString = "";
var clearString = "";
var levelString = "";
for( var PBnum in PROBLEM_LIST ){
with( PROBLEM_LIST[ PBnum ] ){
if( 0 < CLEAR ){
clearString += THREAD + "-" + ( CLEAR - START ) + ",";
// levelString += THREAD + "-" + LENGTH + ",";
levelString += THREAD + "-" + ( LEVEL ? LEVEL : LENGTH ) + ",";
//-------------------- 2008/08/16~
arrayString += THREAD + "(" +
"T" + ( CLEAR - START ) +
"L" + ( ( RESULT == 3 ? 200 : 100 ) + LEVEL % 100 ) +
"),";
}else if( !CLEAR ){
break;
}
}
}
/*
sendRequest(
function ( XRobj ){
try{
var xx = 0;
}catch( errorMSG ){
status = errorMSG;
}
},
{
GENRE : "SLUG",
LEVEL : levelString,
CLEAR : clearString
},
"POST", "../../../CommonPHP/timeTrial/timeTrialAccess.php", true, true
);
*/
sendRequest(
function ( XRobj ){
try{
eval( XRobj.responseText );
}catch( errorMSG ){
status = errorMSG;
}
},
{
GENRE : "SLUG",
LEVEL : CURRENT_LEVEL,
CLEAR : arrayString
},
"POST", "../Ranking/RankingAccess.php", true, true
);
}
//================================================
// show right answer [ for VCFcheck.php ]
//================================================
function getRightAnswer ( RDFAnum, answer ){
if( PROBLEM_LIST[ PROBLEM_POS ] ){
clearProblem( answer );
}
var inTime = THINKing_TIME < LIMITed_TIME;
var lastQ = false;
//------------------------------ set next problem
if( inTime ){
setVCFcheckMessage( 0, "" );
if( startProblem() ){
setTurnMessage( PROBLEM_LIST[ PROBLEM_POS ].GEM_LINE );
return;
}
showTimeTrialMessage( "全問終了!
", false );
lastQ = true;
}else{
clearTimeTrialBoard();
showTimeTrialMessage( "タイムアップ!
", false );
}
//------------------------------- over
if( !inTime || lastQ ){
//------------------- show time total
showTimeTrialMessage( "総タイム:" + ( THINKing_TIME / 1000 ) + "秒
", false );
ON_GOing = false;
setLabel();
}
}