var doM =false; 
var xBookID = 'noID';
var xqSeance = false;

 function m(msg){if (doM==true) {window.alert('check='+msg)}}

//создает массив NSelect элементов и зполняет их случайными числами от 1 до NQuestion

function GenQList(NQuestions, NSelect)
{var currN; // текущий выбранный номер вопроса - уникальный
 var expN;  // предполагаемый номер вопроса - на проверку уникальности 
 var ok;      // признак уникальности номера вопроса
  currN=0;
  qArray = new Array;
 while (currN<NSelect)
 { expN=Math.round(Math.random()*(NQuestions-1));
//   if (expN &lt; 1) {expN=1};
//   if (expN>NQuestions)>) {expN=NQuestions};
    ok=true;
    for (var i in qArray) { if (qArray[i]==expN) {ok=false; break }} // проверка уникальности
    if (ok){
    qArray[currN]=expN;
    currN++;}
         
 }
// ok="---"; for (var i in rawsQuestion) { ok=ok+rawsQuestion[i]+' '} m(ok);
} 

function initQ (aqName,            // имя теста
                       anQuestion,       // вопросов спросить
                       anQuestionAll,   // вопросов всего
                       aqOK,                // сумма-зачет
                       aqTimeLimit)       // времени-всего
     {
     qName = aqName;
     GenQList(anQuestionAll, anQuestion);
     qNextQuestion = 0;
//     qArray[0]=1;
     qCurrOK = 0;
     qOK = aqOK;
     qTime = 777777;
     qTimeLimit = aqTimeLimit;
//     m(qArray);
     qInfo.qAll.innerHTML=anQuestion;  
     qReadState();
//     m('init='+qName+', '+qNextQuestion+', '+qCurrOK+'/'+qArray);
     return nextQuestion();
     } ;
     
 function doneTest()
{// m('DoneTest='+qCurrOK);
//  qInfo.qState.style.display="none";
 if (qCurrOK>=qOK ) 
    { // SCOSetStatusCompleted();
        //SCOSetValue("cmi.core.score.raw",qCurrOK);
        qQuest.location.replace('qResult.htm?'+qCurrOK);
       }
    else { // SCOSetValue("cmi.core.lesson_status","failed");  
    qQuest. location.replace('qResult.htm?'+qCurrOK);}
  qName = '';
//  qNextQuestion = 0;
//  qCurrOK = 0;
  qWriteState();  
}

     
     function nextQuestion()
   { var sp;
     qWriteState();
       qInfo.qState.style.display="block";
//      m('CurrOK:'+qCurrOK);
      if (qNextQuestion < qArray.length)   
      {//m('do nextQ ['+qNextQuestion+'] '+qArray+'='+qArray[qNextQuestion]); 
      sp='../'+qName+'/'+qArray[qNextQuestion]+'.htm';
       m('do nextQ '+sp);
//       window.alert('>>>>'+sp);
       qQuest.location.replace(sp); 
         qNextQuestion++;
       }
          else {//m('done nextQ'); 
          doneTest()};
       qInfo.qCurr.innerHTML=qNextQuestion;  
       qInfo.qCurrRes.innerHTML=qCurrOK;  
       return true;   
 };

function qCheckState()
{}
function qReadState()
{var s; 
if (xqSeance==false) {return};
s=getCookie('currTest'+xBookID,'');
 if (s=='') {return false};
//m('qrs0 '+1);
qNextQuestion =  getCookie('ctNext'+xBookID,0);
//m('qrs0 '+2);
qCurrOK = getCookie('ctOK'+xBookID,0);
//m('qrs0 '+3);
qArray = getCookie('ctArray'+xBookID,null);
qArray = qArray.split(',');
//m('qrs0 '+4);
//m('qrs='+s+', '+qNextQuestion+', '+qCurrOK+'/'+qArray);
}
function qWriteState()
{ //m('qws');
if (xqSeance==false) {return};
 setCookie('currTest'+xBookID, qName);
 setCookie('ctNext'+xBookID, qNextQuestion);
 setCookie('ctOK'+xBookID, qCurrOK);
 setCookie('ctArray'+xBookID,qArray);
}
function qLoadIt(axBookID,
                       aqName,            // имя теста
                       anQuestion,       // вопросов спросить
                       anQuestionAll,   // вопросов всего
                       aqOK,                // сумма-зачет
                       aqTimeLimit)       // времени-всего
                       {xBookID=axBookID; initQ(aqName,  anQuestion,  anQuestionAll,   aqOK,  aqTimeLimit)}

function prepareRow(aid)
{ //m(aid);
  var answ = null;
  var anoth = null;
  var wid;
  var s;
  var N;
      m('pp='+aid);
      for (var i=1; i <= 33; i++)
      { wid='answ-div-'+aid+'-'+ i;
        m('prepareRQ for='+wid);
	answ=qQuest.document.getElementById(wid);
       if (!answ) {break};
       N=Math.round((Math.random()*i)+1);
        m('N='+N+', I='+i);
		   if (N!=i)
              {//('swap');
               wid='answ-div-'+aid+'-'+ N;
               anoth=qQuest.document.getElementById(wid);
		if (!anoth) {break};
               s=anoth.innerHTML;
               m(anoth.innerHTML+'-----'+answ.innerHTML);
               anoth.innerHTML=answ.innerHTML;
               answ.innerHTML=s;
                };
      }

}


// ЗАКРЫТЫЙ вопрос -----------------------------------------------------------------------------------------------------------------------------
// ЗАКРЫТЫЙ вопрос - ответ--------------------------------
function checkRowZakr(aid)
{ var answ = null;
  var wid;
  result=true; 
      m('checkRowZakr enter:'+aid);
      for (var i=1; i <= 33; i++)
      { wid=aid +'-'+ i;
      m('checkRowZakr wid:"'+wid+'"'+' href='+document.location.href);
      answ=qQuest.document.getElementById(wid);
      m('checkRowZakr answ:'+answ);
       if ((!answ) || (result==false)) {break};
        m('ch='+answ.checked+', v='+answ.v);
       if ((answ.checked==true) && (answ.v=='-')) {
                m('111');
                result=false; break};
       if ((answ.checked==false) && (answ.v=='+')){
                m('222');
                result=false; break};
        m('res='+result);
      }
        m('out res='+result);

      if (result == true)
      {
         qCurrOK++;
      } 
m('qOK='+ qCurrOK);
   nextQuestion();
   return result;
}
// ЗАКРЫТЫЙ вопрос - подготовка--------------------------------

function checkRowOpen(aval, resarray)
{var ok = false;
   for (var i in resarray) { if (resarray[i]==aval) {ok=true; break }};
   if (ok)   {qCurrOK++}; 
   m('open ok='+qCurrOK);
   nextQuestion();
}

function checkRowOrdr(resarray)
{var ok = true;
 var o;
   for (var i in resarray)
     { o=resarray[i]; 
//       m(o.options[o.selectedIndex].text+' vs '+o.ordr);
       if (o.options[o.selectedIndex].text!=o.ordr) {ok=false; break };
      }
   if (ok)   { parent.qCurrOK++}; 
   nextQuestion();
}


function prepareRow2t(aid)
{ var answdiv = null;
  var wid;
  result=1; 
      //m('pr-'+aid);
      for (var i=1; i <= 33; i++)
      { wid='answ-div-'+aid+'-'+ i;
        m('pr-id:'+wid);
	answdiv=document.getElementById(wid);
        m('pr-div:'+answdiv);
       if (!answdiv) {break};
        m('pr:ok');
       wid=Math.random();
        m('rnd:'+wid);
       if (wid>0.5) {
                m('pr-'+'111');
                answdiv.top=0};
      }

}
var qPrevOK = 0;
function qSCOInitialize() { qPrevOK = qCurrOK; //SCOInitialize()
                      };
function qSCODone()
 { if (qPrevOK==qCurrOK)
        {//SCOSetValue("cmi.core.lesson_status","failed")
        }
        else {//   SCOSetStatusCompleted()
        }
};        

