var MsNavigator = Boolean(navigator.appName == "Microsoft Internet Explorer");

function  TextInBrouser(name, okno)
{
   var newWin=null;
   if (TextInBrouser.arguments.length < 2)
      newWin = window.open("","","left=100,top=100,width=500,height=350,menubar=0,resizable=1");
   else
      newWin = window.open("","", okno);
   if (newWin != null)
   {
     newWin.document.open();
     newWin.document.write(name.value);
     newWin.document.close();
   }
}

function  NewBrouser(html, okno)
{
   if (NewBrouser.arguments.length < 2)
      window.open(html,"","left=100,top=100,width=500,height=350,menubar=0,resizable=1");
   else
      window.open(html,"", okno);
}

function defBrowser()
{
  var ver = parseFloat(navigator.appVersion);
  var nav = navigator.appName;
  if     (nav == "Netscape")                    ver = -ver;
  else if(nav != "Microsoft Internet Explorer") ver = 0;
  return ver;
}

function Body()
{
  var str="<BODY bgcolor=#DFF0D5 text=black link=blue alink=red vlink=purple ";
  if (Math.abs(defBrowser()) >= 4) str += "background=./pic/fon.gif";
  str += "><IMG src=pic/titul.gif alt='' width=638 height=55><HR>";
  document.write(str)
}

// Óíèâåðñàëüíûé Çà÷åòíûé êëàññ (C) ìàðò, 2000, À.À.Äóâàíîâ
// Îáúåêò CheckTasks äëß ïðîâåðêè ðåøåíèé Çà÷åòíîãî êëàññà
//---------------------------------------------------------

// Ðåêîìåíäàöèè ïî èñïîëüçîâàíèþ
// -----------------------------
// 1) Ñîçäàòü îáúåêò äî âõîäà â çà÷åòíûé êëàññ
// 2) Ïî ñîáûòèþ click íà êíîïêå type="reset" âûçûâàòü ìåòîä Ini();
// 3) Ðåøåíèå çàäà÷è ñ íîìåðîì i ôèêñèðîâàòü ìåòîäîì Check(form, i);
//    form - ññûëêà íà ôîðìó, â êîòîðóþ "îäåò" Çà÷åòíûé êëàññ
// 4) Îáùóþ îöåíêó âûâîäèòü ìåòîäîì Bonus();


// Êîíñòðóêòîð îáúåêòà
// -------------------
// Âõîäíûå äàííûå êîíñòðóêòîðà
// num  - ÷èñëî çàäà÷
// rez  - îñíîâà èìåíè äëß ñòðîêè, â êîòîðóþ âûâîäèòñß ñîîáùåíèå
//        î ïðàâèëüíîñòè âûïîëíåíèß i-ãî çàäàíèß.
//        Íàïðèìåð, ïóñòü îñíîâà åñòü "result". Òîãäà òåãè INPUT
//        äëß âûâîäà èíôîðìàöèîííîãî ñîîáùåíèß äîëæíû èìåòü èìåíà:
//        "result1" -- äëß ïåðâîé çàäà÷è
//        "result2" -- äëß âòîðîé çàäà÷è
//         ...
// Ìîæíî íå çàäàâàòü àðãóìåíò rez, òîãäà ïî óìîë÷àíèþ îí áóäåò
// îïðåäåëåí êàê "result".

function CheckTasks(num, rez)
{
  // ñâîéñòâà îáúåêòà
  this.Num        = num;            // ÷èñëî çàäàíèé
  this.Task       = new Array();    // åñëè çàäà÷à ðåøàëàñü -- true
  this.Error      = 0;              // ÷èñëî îøèáîê
  this.Yes        = "âåðíî";        // âåðíûé îòâåò
  this.No         = "åñòü îøèáêè";  // íåâåðíûé îòâåò
  this.Answer;                      // ðåçóëüòàò ïðîâåðêè îòâåòà
  this.Rez = rez ? rez:"result";    // îñíîâà èìåíè òåãà ñ èíô. ñîîáùåíèåì

  // ìåòîäû îáúåêòà
  this.Ini   = _Ini;   // íà÷àëüíûå óñòàíîâêè
  this.Check = _Check; // ïðîâåðêà çàäàíèß
  this.Bonus = _Bonus; // âûâîä îöåíêè

  this.Ini();          // âûçîâ íà÷àëüíûõ óñòàíîâîê

}


//--------------------------------------------------------
// íà÷àëüíûå óñòàíîâêè
// -------------------
function _Ini()
{
  this.Error = 0;                                     // îøèáîê íåò
  for(var i=0; i<this.Num; i++) this.Task[i] = false; // çàäà÷è íå ðåøàëèñü
}

//--------------------------------------------------------
// Ôèêñèðîâàíèå ðåøåíèß çàäà÷è ñ íîìåðîì ntask
// -------------------------------------------
// form -- ýòî ññûëêà íà ôîðìó â êîòîðóþ "îäåò" çà÷åòíûé êëàññ
// Çàäà÷è íóìåðóþòñß îò 1 äî this.Num

function _Check(form, ntask)
{
  // Çàùèòà îò íåâåðíûõ äàííûõ
  if (ntask < 1 || ntask > this.Num)
  { alert("Íåâåðíûé íîìåð çàäà÷è: "+ntask); return;}

  this.Task[ntask-1] = true;                 // çàäà÷à ðåøàëàñü
  if (this.Answer == this.No) this.Error++;  // îøèáêè ñóììèðóþòñß
  var temp = this.Answer;
  eval("form.result"+ntask+".value=temp");
}

//--------------------------------------------------------
// Âûâåñòè îöåíêó
// --------------
// Àëãîðèòì îïðåäåëåíèß îöåíêè:
//
// 5 - îøèáîê íåò
// 4 - îøèáîê ìåíüøå 2/5 îò ÷èñëà çàäà÷
// 3 - îøèáîê ìåíüøå 1/2 îò ÷èñëà çàäà÷
// 2 - â îñòàëüíûõ ñëó÷àßõ

function  _Bonus()
{
   var result = "";
   var bonus;
   var ntask;

   // Ïðîâåðèì, âñå ëè çàäà÷è áûëè ðåøåíû
   ntask = 0;
   for(var i=0; i<this.Num; i++)
     if (this.Task[i]) ntask++;
     else result += eval(i+1)+", ";
   // çàäà÷è ðåøåíû âñå, âû÷èñëßåì îöåíêó
   if (ntask == this.Num)
   {
     if (!this.Error)                    bonus = 5;
     else if (this.Error < 2*this.Num/5) bonus = 4;
     else if (this.Error < this.Num/2)   bonus = 3;
     else                                bonus = 2;
     alert("\nÂàøà îöåíêà: "+bonus+"\n"+
           "×èñëî îøèáîê: "+ this.Error);
   }
   // çàäà÷è ðåøåíû íå âñå, ñîîáùàåì êàêèå íå ðåøàëèñü
   else
   {
    var str=result;
    if (result.charAt(result.length-2) == ",")
          str = result.substring(0,result.length-2);
    alert("\nÍå ðåøåíû çàäàíè\ÿ:\n" + str);
   }
}
//--------------------------------------------------------
var WinCopyr;
function Copyr()
{
  var okno = "scrollbars=0,fullscreen=0,status=0,toolbar=0,top=0,left=0,width=620,height=420,resizable=0";
  window.open("copyr.htm", null, okno);
}

var Bonus_  = new Image(); Bonus_.src  = "online1.gif";
var Bonus1_ = new Image(); Bonus1_.src = "online1.gif";
var Bonus2_ = new Image(); Bonus2_.src = "online1.gif";
function SrcImg(NameImg, NewSrc) {NameImg.src = NewSrc.src}
