Don't like ads? PRO users don't see any ads ;-)
Guest

temp.js

By: a guest on Apr 25th, 2012  |  syntax: None  |  size: 5.34 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. var xmlDocument;
  2. var right = new Array();
  3. document.body.onload = function () {
  4.     var request;
  5.     if (window.XMLHttpRequest) {
  6.         request = new XMLHttpRequest();
  7.     }
  8.     else {
  9.         request = new ActiveXObject("Microsoft.XMLHTTP");
  10.     }
  11.     request.onreadystatechange = function () {
  12.         if (request.readyState == 4) {
  13.             if (request.status == 200) {
  14.                 xmlDocument = request.responseXML;
  15.                 document.getElementById("question").innerText = xmlDocument.getElementsByTagName("question")[0].attributes[1].value;
  16.                 var answers = xmlDocument.getElementsByTagName("question")[0].childNodes;
  17.                 for (var i = 0, j = 0; i < answers.length; ++i) {
  18.                     if (answers[i].tagName == "answer") {
  19.                         var div = document.createElement("div");
  20.                         div.className = "answer";
  21.                         var radio = document.createElement("input");
  22.                         radio.setAttribute("type", "radio");
  23.                         div.appendChild(radio);
  24.                         div.appendChild(document.createTextNode(answers[i].attributes[0].value));
  25.                         document.getElementById("answers").appendChild(div);
  26.                         alert(answers[i].attributes[0].value + "\n" + answers[i].attributes[1].value+"\n"+j);
  27.                         if (parseInt(answers[i].attributes[1].value)) {
  28.                            
  29.                             right.push(j);
  30.                         }
  31.                         ++j;
  32.                     }
  33.                 }
  34.             }
  35.         }
  36.     }
  37.     request.open("GET", "http://exam_js.ru/JS_Exam.xml", false);
  38.     request.send();
  39. }
  40. //function checked() {
  41. ////        alert(document.getElementById("answers"));
  42.  
  43. //}
  44. var submit = false;
  45. var error_b = false;
  46. document.body.onclick = function (event) {
  47.     if (!event) {
  48.         event = window.event;
  49.     }
  50.     if (event.srcElement.className == 'answer') {
  51.         for (var i = 0; i < event.srcElement.childNodes.length; ++i) {
  52.             if (event.srcElement.childNodes[i].tagName == "INPUT") {
  53.                 var elem = event.srcElement.childNodes[i];
  54.                 if (!elem.checked) {
  55.                     for (var j = 0; j < document.body.getElementsByTagName('INPUT').length; ++j) {
  56.                         if (document.body.getElementsByTagName('INPUT')[j].getAttribute("type") == 'radio') {
  57.                             if (document.body.getElementsByTagName('INPUT')[j].checked) {
  58.                                 document.body.getElementsByTagName('INPUT')[j].checked = false;
  59.                             }
  60.                         }
  61.                     }
  62.                 }
  63.                 elem.checked = true;
  64.                 if (!submit) {
  65.                     var button = document.createElement("button");
  66.                     button.type = "button";
  67.                     button.innerText = "Answer";
  68.                     document.getElementById("exam_form").appendChild(button);
  69.                     submit = true;
  70.                 }
  71.                 break;
  72.             }
  73.         }
  74.     }
  75.     if (event.srcElement.tagName == "INPUT") {
  76.         var elem = event.srcElement;
  77.         for (var i = 0; i < document.body.getElementsByTagName('INPUT').length; ++i) {
  78.             if (document.body.getElementsByTagName('INPUT')[i] != elem && document.body.getElementsByTagName('INPUT')[i].checked) {
  79.  
  80.                 document.body.getElementsByTagName('INPUT')[i].checked = false;
  81.             }
  82.         }
  83.         if (!submit) {
  84.             var button = document.createElement("button");
  85.             button.type = "button";
  86.             button.innerText = "Answer";
  87.             document.getElementById("exam_form").appendChild(button);
  88.             submit = true;
  89.             alert();
  90.         }
  91.     }
  92.     if (event.srcElement.tagName == "BUTTON") {
  93.         if (!error_b) {
  94.             //            var error = document.createElement("div");
  95.             //            error.style.border = "1px solid green";
  96.             //            error.style.width = "10%";
  97.             //            error.innerText = "error";
  98.             //            document.getElementById("exam_form").appendChild(error);
  99.             //            error_b = true;
  100.             var radios = document.getElementsByTagName("input");
  101.             var right_h = new Array();
  102.             for (var i = 0, j = 0; i < radios.length; ++i) {
  103.                 if (radios[i].getAttribute("type") == "radio") {
  104.                     if (radios[i].checked) {
  105.                         right_h.push(j);
  106.                     }
  107.                     ++j;
  108.                 }
  109.             }
  110.             if (right.length == right_h.length) {
  111.                 for (var i = 0; i < right.length; ++i) {
  112.                     alert(right[i]);
  113.                     if (right[i] != right_h[i]) {
  114.                         error_b = true;
  115.                         break;
  116.                     }
  117.                 }
  118.             }
  119.             if (!error_b) {
  120.                 var error = document.createElement("div");
  121.                 error.style.border = "1px solid green";
  122.                 error.style.width = "10%";
  123.                 error.innerText = "error";
  124.                 document.getElementById("exam_form").appendChild(error);
  125.                 error_b = true;
  126.             }
  127.         }
  128.     }
  129. }