//=============================================== // 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(); } }