| 1 | <?xml version="1.0"?> |
|---|
| 2 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd"> |
|---|
| 3 | <html xmlns="http://www.w3.org/1999/xhtml" |
|---|
| 4 | xml:lang="en"><head><meta name="author" content="Created with Hot Potatoes by Half-Baked Software, registered to Ismail Ali Gago."></meta><meta name="keywords" content="Hot Potatoes, Hot Potatoes, Half-Baked Software, Windows, University of Victoria"></meta> |
|---|
| 5 | |
|---|
| 6 | <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" /> |
|---|
| 7 | <meta name="DC:Creator" content="Ismail Ali Gago" /> |
|---|
| 8 | <meta name="DC:Creator" content="UNREGISTERED" /> |
|---|
| 9 | <meta name="DC:Title" content="Un Test realizado con JQuiz" /> |
|---|
| 10 | |
|---|
| 11 | |
|---|
| 12 | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> |
|---|
| 13 | |
|---|
| 14 | <title> |
|---|
| 15 | Un Test realizado con JQuiz |
|---|
| 16 | </title> |
|---|
| 17 | |
|---|
| 18 | <!-- Made with executable version 6.0 Release 2 Build 0 --> |
|---|
| 19 | |
|---|
| 20 | <!-- The following insertion allows you to add your own code directly to this head tag from the configuration screen --> |
|---|
| 21 | |
|---|
| 22 | |
|---|
| 23 | |
|---|
| 24 | <style type="text/css"> |
|---|
| 25 | |
|---|
| 26 | |
|---|
| 27 | /* This is the CSS stylesheet used in the exercise. */ |
|---|
| 28 | /* Elements in square brackets are replaced by data based on configuration settings when the exercise is built. */ |
|---|
| 29 | |
|---|
| 30 | |
|---|
| 31 | body{ |
|---|
| 32 | font-family: Geneva,Arial; |
|---|
| 33 | background-color: #ffffff; |
|---|
| 34 | color: #000000; |
|---|
| 35 | |
|---|
| 36 | margin-right: 5%; |
|---|
| 37 | margin-left: 5%; |
|---|
| 38 | font-size: small; |
|---|
| 39 | } |
|---|
| 40 | |
|---|
| 41 | p{ |
|---|
| 42 | text-align: left; |
|---|
| 43 | margin: 0px; |
|---|
| 44 | font-size: small; |
|---|
| 45 | } |
|---|
| 46 | |
|---|
| 47 | div,span,td{ |
|---|
| 48 | font-size: small; |
|---|
| 49 | color: #000000; |
|---|
| 50 | } |
|---|
| 51 | |
|---|
| 52 | .RTLText{ |
|---|
| 53 | text-align: right; |
|---|
| 54 | font-size: 150%; |
|---|
| 55 | direction: rtl; |
|---|
| 56 | font-family: "Simplified Arabic", "Traditional Arabic", "Times New Roman", Geneva,Arial; |
|---|
| 57 | } |
|---|
| 58 | |
|---|
| 59 | .CentredRTLText{ |
|---|
| 60 | text-align: center; |
|---|
| 61 | font-size: 150%; |
|---|
| 62 | direction: rtl; |
|---|
| 63 | font-family: "Simplified Arabic", "Traditional Arabic", "Times New Roman", Geneva,Arial; |
|---|
| 64 | } |
|---|
| 65 | |
|---|
| 66 | button p.RTLText{ |
|---|
| 67 | text-align: center; |
|---|
| 68 | } |
|---|
| 69 | |
|---|
| 70 | .RTLGapBox{ |
|---|
| 71 | text-align: right; |
|---|
| 72 | font-size: 150%; |
|---|
| 73 | direction: rtl; |
|---|
| 74 | font-family: "Times New Roman", Geneva,Arial; |
|---|
| 75 | } |
|---|
| 76 | |
|---|
| 77 | .Guess{ |
|---|
| 78 | font-weight: bold; |
|---|
| 79 | } |
|---|
| 80 | |
|---|
| 81 | .CorrectAnswer{ |
|---|
| 82 | font-weight: bold; |
|---|
| 83 | } |
|---|
| 84 | |
|---|
| 85 | div.Titles{ |
|---|
| 86 | padding: 10px; |
|---|
| 87 | text-align: center; |
|---|
| 88 | color: #000033; |
|---|
| 89 | } |
|---|
| 90 | |
|---|
| 91 | button{ |
|---|
| 92 | display: inline; |
|---|
| 93 | } |
|---|
| 94 | |
|---|
| 95 | .ExerciseTitle{ |
|---|
| 96 | font-size: large; |
|---|
| 97 | color: #000033; |
|---|
| 98 | } |
|---|
| 99 | |
|---|
| 100 | .ExerciseSubtitle{ |
|---|
| 101 | color: #000033; |
|---|
| 102 | } |
|---|
| 103 | |
|---|
| 104 | div#Timer{ |
|---|
| 105 | padding: 6px; |
|---|
| 106 | margin-left: auto; |
|---|
| 107 | margin-right: auto; |
|---|
| 108 | text-align: center; |
|---|
| 109 | } |
|---|
| 110 | |
|---|
| 111 | span#TimerText{ |
|---|
| 112 | padding: 6px; |
|---|
| 113 | border-width: 1px; |
|---|
| 114 | border-style: solid; |
|---|
| 115 | font-weight: bold; |
|---|
| 116 | display: none; |
|---|
| 117 | } |
|---|
| 118 | |
|---|
| 119 | span.Instructions{ |
|---|
| 120 | |
|---|
| 121 | } |
|---|
| 122 | |
|---|
| 123 | div.ExerciseText{ |
|---|
| 124 | |
|---|
| 125 | } |
|---|
| 126 | |
|---|
| 127 | .FeedbackText{ |
|---|
| 128 | color: #000033; |
|---|
| 129 | } |
|---|
| 130 | |
|---|
| 131 | span.LeftItem{ |
|---|
| 132 | font-size: small; |
|---|
| 133 | color: #000000; |
|---|
| 134 | } |
|---|
| 135 | |
|---|
| 136 | span.RightItem{ |
|---|
| 137 | font-weight: bold; |
|---|
| 138 | font-size: small; |
|---|
| 139 | color: #000000; |
|---|
| 140 | } |
|---|
| 141 | |
|---|
| 142 | span.CorrectMark{ |
|---|
| 143 | |
|---|
| 144 | } |
|---|
| 145 | |
|---|
| 146 | div.Feedback { |
|---|
| 147 | background-color: #ffffff; |
|---|
| 148 | left: 33%; |
|---|
| 149 | width: 34%; |
|---|
| 150 | top: 33%; |
|---|
| 151 | z-index: 1; |
|---|
| 152 | border-style: solid; |
|---|
| 153 | border-width: 1px; |
|---|
| 154 | padding: 5px; |
|---|
| 155 | text-align: center; |
|---|
| 156 | color: #000033; |
|---|
| 157 | position: absolute; |
|---|
| 158 | display: none; |
|---|
| 159 | font-size: small; |
|---|
| 160 | } |
|---|
| 161 | |
|---|
| 162 | |
|---|
| 163 | |
|---|
| 164 | div.LeftContainer{ |
|---|
| 165 | border-style: none; |
|---|
| 166 | padding: 2px 0px 2px 0px; |
|---|
| 167 | float: left; |
|---|
| 168 | width: 49.8%; |
|---|
| 169 | margin-bottom: 0px; |
|---|
| 170 | } |
|---|
| 171 | |
|---|
| 172 | div.RightContainer{ |
|---|
| 173 | border-style: none; |
|---|
| 174 | padding: 2px 0px 2px 0px; |
|---|
| 175 | float: right; |
|---|
| 176 | width: 49.8%; |
|---|
| 177 | margin-bottom: 0px; |
|---|
| 178 | } |
|---|
| 179 | |
|---|
| 180 | .ReadingText{ |
|---|
| 181 | |
|---|
| 182 | } |
|---|
| 183 | |
|---|
| 184 | |
|---|
| 185 | div.ExerciseDiv{ |
|---|
| 186 | color: #000000; |
|---|
| 187 | } |
|---|
| 188 | |
|---|
| 189 | /* JMatch flashcard styles */ |
|---|
| 190 | table.FlashcardTable{ |
|---|
| 191 | background-color: transparent; |
|---|
| 192 | color: #000000; |
|---|
| 193 | border-color: #000000; |
|---|
| 194 | margin-left: 5%; |
|---|
| 195 | margin-right: 5%; |
|---|
| 196 | margin-top: 2em; |
|---|
| 197 | margin-bottom: 2em; |
|---|
| 198 | width: 90%; |
|---|
| 199 | position: relative; |
|---|
| 200 | align: center; |
|---|
| 201 | padding: 0px; |
|---|
| 202 | } |
|---|
| 203 | |
|---|
| 204 | table.FlashcardTable tr{ |
|---|
| 205 | border-style: none; |
|---|
| 206 | margin: 0px; |
|---|
| 207 | padding: 0px; |
|---|
| 208 | background-color: #bbbbee; |
|---|
| 209 | } |
|---|
| 210 | |
|---|
| 211 | table.FlashcardTable td.Showing{ |
|---|
| 212 | font-size: large; |
|---|
| 213 | text-align: center; |
|---|
| 214 | width: 50%; |
|---|
| 215 | display: table-cell; |
|---|
| 216 | padding: 2em; |
|---|
| 217 | margin: 0px; |
|---|
| 218 | border-style: solid; |
|---|
| 219 | border-width: 1px; |
|---|
| 220 | color: #000000; |
|---|
| 221 | background-color: #bbbbee; |
|---|
| 222 | } |
|---|
| 223 | |
|---|
| 224 | table.FlashcardTable td.Hidden{ |
|---|
| 225 | display: none; |
|---|
| 226 | } |
|---|
| 227 | |
|---|
| 228 | /* JMix styles */ |
|---|
| 229 | div#SegmentDiv{ |
|---|
| 230 | margin-top: 2em; |
|---|
| 231 | margin-bottom: 2em; |
|---|
| 232 | text-align: center; |
|---|
| 233 | } |
|---|
| 234 | |
|---|
| 235 | a.ExSegment{ |
|---|
| 236 | font-size: medium; |
|---|
| 237 | font-weight: bold; |
|---|
| 238 | text-decoration: none; |
|---|
| 239 | color: #000000; |
|---|
| 240 | } |
|---|
| 241 | |
|---|
| 242 | span.RemainingWordList{ |
|---|
| 243 | font-style: italic; |
|---|
| 244 | } |
|---|
| 245 | |
|---|
| 246 | div.DropLine { |
|---|
| 247 | position: absolute; |
|---|
| 248 | text-align: center; |
|---|
| 249 | border-bottom-style: solid; |
|---|
| 250 | border-bottom-width: 1px; |
|---|
| 251 | border-bottom-color: #000033; |
|---|
| 252 | width: 80%; |
|---|
| 253 | } |
|---|
| 254 | |
|---|
| 255 | /* JCloze styles */ |
|---|
| 256 | |
|---|
| 257 | input{ |
|---|
| 258 | font-family: Geneva,Arial; |
|---|
| 259 | font-size: larger; |
|---|
| 260 | } |
|---|
| 261 | |
|---|
| 262 | .ClozeWordList{ |
|---|
| 263 | text-align: center; |
|---|
| 264 | font-weight: bold; |
|---|
| 265 | } |
|---|
| 266 | |
|---|
| 267 | div.ClozeBody{ |
|---|
| 268 | text-align: left; |
|---|
| 269 | margin-top: 2em; |
|---|
| 270 | margin-bottom: 2em; |
|---|
| 271 | line-height: 2.0 |
|---|
| 272 | } |
|---|
| 273 | |
|---|
| 274 | span.GapSpan{ |
|---|
| 275 | font-weight: bold; |
|---|
| 276 | } |
|---|
| 277 | |
|---|
| 278 | /* JCross styles */ |
|---|
| 279 | |
|---|
| 280 | table.CrosswordGrid{ |
|---|
| 281 | margin: auto auto 1em auto; |
|---|
| 282 | border-collapse: collapse; |
|---|
| 283 | padding: 0px; |
|---|
| 284 | } |
|---|
| 285 | |
|---|
| 286 | table.CrosswordGrid td{ |
|---|
| 287 | width: 1.5em; |
|---|
| 288 | height: 1.5em; |
|---|
| 289 | text-align: center; |
|---|
| 290 | vertical-align: middle; |
|---|
| 291 | font-size: large; |
|---|
| 292 | padding: 0px; |
|---|
| 293 | margin: 0px; |
|---|
| 294 | border-style: solid; |
|---|
| 295 | border-width: 1px; |
|---|
| 296 | border-color: #000000; |
|---|
| 297 | } |
|---|
| 298 | |
|---|
| 299 | table.CrosswordGrid td.BlankCell{ |
|---|
| 300 | background-color: #000000; |
|---|
| 301 | color: #000000; |
|---|
| 302 | } |
|---|
| 303 | |
|---|
| 304 | table.CrosswordGrid td.LetterOnlyCell{ |
|---|
| 305 | text-align: center; |
|---|
| 306 | vertical-align: middle; |
|---|
| 307 | background-color: #ffffff; |
|---|
| 308 | color: #000000; |
|---|
| 309 | font-weight: bold; |
|---|
| 310 | } |
|---|
| 311 | |
|---|
| 312 | table.CrosswordGrid td.NumLetterCell{ |
|---|
| 313 | text-align: left; |
|---|
| 314 | vertical-align: top; |
|---|
| 315 | background-color: #ffffff; |
|---|
| 316 | color: #000000; |
|---|
| 317 | padding: 1px; |
|---|
| 318 | font-weight: bold; |
|---|
| 319 | } |
|---|
| 320 | |
|---|
| 321 | .NumLetterCellText{ |
|---|
| 322 | cursor: pointer; |
|---|
| 323 | } |
|---|
| 324 | |
|---|
| 325 | .GridNum{ |
|---|
| 326 | vertical-align: super; |
|---|
| 327 | font-size: x-small; |
|---|
| 328 | font-weight: bold; |
|---|
| 329 | text-decoration: none; |
|---|
| 330 | color: #000000; |
|---|
| 331 | } |
|---|
| 332 | |
|---|
| 333 | table#Clues{ |
|---|
| 334 | margin: auto; |
|---|
| 335 | vertical-align: top; |
|---|
| 336 | } |
|---|
| 337 | |
|---|
| 338 | table#Clues td{ |
|---|
| 339 | vertical-align: top; |
|---|
| 340 | } |
|---|
| 341 | |
|---|
| 342 | table.ClueList{ |
|---|
| 343 | margin: auto; |
|---|
| 344 | } |
|---|
| 345 | |
|---|
| 346 | td.ClueNum{ |
|---|
| 347 | text-align: right; |
|---|
| 348 | font-weight: bold; |
|---|
| 349 | vertical-align: top; |
|---|
| 350 | } |
|---|
| 351 | |
|---|
| 352 | td.Clue{ |
|---|
| 353 | text-align: left; |
|---|
| 354 | } |
|---|
| 355 | |
|---|
| 356 | div#ClueEntry{ |
|---|
| 357 | text-align: left; |
|---|
| 358 | margin-bottom: 1em; |
|---|
| 359 | } |
|---|
| 360 | |
|---|
| 361 | /* Keypad styles */ |
|---|
| 362 | |
|---|
| 363 | div.Keypad{ |
|---|
| 364 | text-align: center; |
|---|
| 365 | } |
|---|
| 366 | |
|---|
| 367 | div.Keypad button{ |
|---|
| 368 | font-family: Geneva,Arial; |
|---|
| 369 | font-size: 120%; |
|---|
| 370 | background-color: #ffffff; |
|---|
| 371 | color: #000000; |
|---|
| 372 | width: 2em; |
|---|
| 373 | } |
|---|
| 374 | |
|---|
| 375 | /* JQuiz styles */ |
|---|
| 376 | |
|---|
| 377 | div.QuestionNavigation{ |
|---|
| 378 | text-align: center; |
|---|
| 379 | } |
|---|
| 380 | |
|---|
| 381 | .QNum{ |
|---|
| 382 | margin: 0em 1em 0.5em 1em; |
|---|
| 383 | font-weight: bold; |
|---|
| 384 | vertical-align: middle; |
|---|
| 385 | } |
|---|
| 386 | |
|---|
| 387 | textarea{ |
|---|
| 388 | font-family: Geneva,Arial; |
|---|
| 389 | font-size: larger; |
|---|
| 390 | } |
|---|
| 391 | |
|---|
| 392 | .QuestionText{ |
|---|
| 393 | |
|---|
| 394 | } |
|---|
| 395 | |
|---|
| 396 | .Answer{ |
|---|
| 397 | font-size: 120%; |
|---|
| 398 | letter-spacing: 0.1em; |
|---|
| 399 | } |
|---|
| 400 | |
|---|
| 401 | .Highlight{ |
|---|
| 402 | color: #000000; |
|---|
| 403 | background-color: #ffff00; |
|---|
| 404 | font-weight: bold; |
|---|
| 405 | font-size: 120%; |
|---|
| 406 | } |
|---|
| 407 | |
|---|
| 408 | ol.QuizQuestions{ |
|---|
| 409 | text-align: left; |
|---|
| 410 | list-style-type: none; |
|---|
| 411 | } |
|---|
| 412 | |
|---|
| 413 | li.QuizQuestion{ |
|---|
| 414 | padding: 1em; |
|---|
| 415 | border-style: solid; |
|---|
| 416 | border-width: 0px 0px 1px 0px; |
|---|
| 417 | } |
|---|
| 418 | |
|---|
| 419 | ol.MCAnswers{ |
|---|
| 420 | text-align: left; |
|---|
| 421 | list-style-type: upper-alpha; |
|---|
| 422 | padding: 1em; |
|---|
| 423 | } |
|---|
| 424 | |
|---|
| 425 | ol.MCAnswers li{ |
|---|
| 426 | margin-bottom: 1em; |
|---|
| 427 | } |
|---|
| 428 | |
|---|
| 429 | ol.MSelAnswers{ |
|---|
| 430 | text-align: left; |
|---|
| 431 | list-style-type: lower-alpha; |
|---|
| 432 | padding: 1em; |
|---|
| 433 | } |
|---|
| 434 | |
|---|
| 435 | div.ShortAnswer{ |
|---|
| 436 | padding: 1em; |
|---|
| 437 | } |
|---|
| 438 | |
|---|
| 439 | div.StdDiv{ |
|---|
| 440 | background-color: #bbbbee; |
|---|
| 441 | text-align: center; |
|---|
| 442 | font-size: small; |
|---|
| 443 | color: #000000; |
|---|
| 444 | padding: 8px; |
|---|
| 445 | border-style: solid; |
|---|
| 446 | border-width: 1px 1px 1px 1px; |
|---|
| 447 | border-color: #000000; |
|---|
| 448 | margin: 1px; |
|---|
| 449 | } |
|---|
| 450 | |
|---|
| 451 | .FuncButton { |
|---|
| 452 | text-align: center; |
|---|
| 453 | border-style: solid; |
|---|
| 454 | |
|---|
| 455 | border-left-color: #ddddf6; |
|---|
| 456 | border-top-color: #ddddf6; |
|---|
| 457 | border-right-color: #5d5d77; |
|---|
| 458 | border-bottom-color: #5d5d77; |
|---|
| 459 | color: #000000; |
|---|
| 460 | background-color: #bbbbee; |
|---|
| 461 | |
|---|
| 462 | border-width: 2px; |
|---|
| 463 | padding: 3px 6px 3px 6px; |
|---|
| 464 | cursor: pointer; |
|---|
| 465 | } |
|---|
| 466 | |
|---|
| 467 | .FuncButtonUp { |
|---|
| 468 | color: #bbbbee; |
|---|
| 469 | text-align: center; |
|---|
| 470 | border-style: solid; |
|---|
| 471 | |
|---|
| 472 | border-left-color: #ddddf6; |
|---|
| 473 | border-top-color: #ddddf6; |
|---|
| 474 | border-right-color: #5d5d77; |
|---|
| 475 | border-bottom-color: #5d5d77; |
|---|
| 476 | |
|---|
| 477 | background-color: #000000; |
|---|
| 478 | color: #bbbbee; |
|---|
| 479 | border-width: 2px; |
|---|
| 480 | padding: 3px 6px 3px 6px; |
|---|
| 481 | cursor: pointer; |
|---|
| 482 | } |
|---|
| 483 | |
|---|
| 484 | .FuncButtonDown { |
|---|
| 485 | color: #bbbbee; |
|---|
| 486 | text-align: center; |
|---|
| 487 | border-style: solid; |
|---|
| 488 | |
|---|
| 489 | border-left-color: #5d5d77; |
|---|
| 490 | border-top-color: #5d5d77; |
|---|
| 491 | border-right-color: #ddddf6; |
|---|
| 492 | border-bottom-color: #ddddf6; |
|---|
| 493 | background-color: #000000; |
|---|
| 494 | color: #bbbbee; |
|---|
| 495 | |
|---|
| 496 | border-width: 2px; |
|---|
| 497 | padding: 3px 6px 3px 6px; |
|---|
| 498 | cursor: pointer; |
|---|
| 499 | } |
|---|
| 500 | |
|---|
| 501 | /*BeginNavBarStyle*/ |
|---|
| 502 | |
|---|
| 503 | div.NavButtonBar{ |
|---|
| 504 | background-color: #000066; |
|---|
| 505 | text-align: center; |
|---|
| 506 | margin: 2px 0px 2px 0px; |
|---|
| 507 | clear: both; |
|---|
| 508 | font-size: small; |
|---|
| 509 | } |
|---|
| 510 | |
|---|
| 511 | .NavButton { |
|---|
| 512 | border-style: solid; |
|---|
| 513 | |
|---|
| 514 | border-left-color: #7f7fb2; |
|---|
| 515 | border-top-color: #7f7fb2; |
|---|
| 516 | border-right-color: #000033; |
|---|
| 517 | border-bottom-color: #000033; |
|---|
| 518 | background-color: #000066; |
|---|
| 519 | color: #ffffff; |
|---|
| 520 | |
|---|
| 521 | border-width: 2px; |
|---|
| 522 | cursor: pointer; |
|---|
| 523 | } |
|---|
| 524 | |
|---|
| 525 | .NavButtonUp { |
|---|
| 526 | border-style: solid; |
|---|
| 527 | |
|---|
| 528 | border-left-color: #7f7fb2; |
|---|
| 529 | border-top-color: #7f7fb2; |
|---|
| 530 | border-right-color: #000033; |
|---|
| 531 | border-bottom-color: #000033; |
|---|
| 532 | color: #000066; |
|---|
| 533 | background-color: #ffffff; |
|---|
| 534 | |
|---|
| 535 | border-width: 2px; |
|---|
| 536 | cursor: pointer; |
|---|
| 537 | } |
|---|
| 538 | |
|---|
| 539 | .NavButtonDown { |
|---|
| 540 | border-style: solid; |
|---|
| 541 | |
|---|
| 542 | border-left-color: #000033; |
|---|
| 543 | border-top-color: #000033; |
|---|
| 544 | border-right-color: #7f7fb2; |
|---|
| 545 | border-bottom-color: #7f7fb2; |
|---|
| 546 | color: #000066; |
|---|
| 547 | background-color: #ffffff; |
|---|
| 548 | |
|---|
| 549 | border-width: 2px; |
|---|
| 550 | cursor: pointer; |
|---|
| 551 | } |
|---|
| 552 | |
|---|
| 553 | /*EndNavBarStyle*/ |
|---|
| 554 | |
|---|
| 555 | a{ |
|---|
| 556 | color: #0000ff; |
|---|
| 557 | } |
|---|
| 558 | |
|---|
| 559 | a: visited{ |
|---|
| 560 | color: #0000cc; |
|---|
| 561 | } |
|---|
| 562 | |
|---|
| 563 | a:hover{ |
|---|
| 564 | color: #0000ff; |
|---|
| 565 | } |
|---|
| 566 | |
|---|
| 567 | div.CardStyle { |
|---|
| 568 | position: absolute; |
|---|
| 569 | font-family: Geneva,Arial; |
|---|
| 570 | font-size: small; |
|---|
| 571 | padding: 5px; |
|---|
| 572 | border-style: solid; |
|---|
| 573 | border-width: 1px; |
|---|
| 574 | color: #000000; |
|---|
| 575 | background-color: #bbbbee; |
|---|
| 576 | left: -50px; |
|---|
| 577 | top: -50px; |
|---|
| 578 | overflow: visible; |
|---|
| 579 | } |
|---|
| 580 | |
|---|
| 581 | .rtl{ |
|---|
| 582 | text-align: right; |
|---|
| 583 | font-size: large; |
|---|
| 584 | } |
|---|
| 585 | |
|---|
| 586 | |
|---|
| 587 | </style> |
|---|
| 588 | |
|---|
| 589 | <script type="text/javascript"> |
|---|
| 590 | |
|---|
| 591 | |
|---|
| 592 | |
|---|
| 593 | <!-- |
|---|
| 594 | |
|---|
| 595 | |
|---|
| 596 | function Client(){ |
|---|
| 597 | |
|---|
| 598 | this.min = false; if (document.getElementById){this.min = true;}; |
|---|
| 599 | |
|---|
| 600 | this.ua = navigator.userAgent; |
|---|
| 601 | this.name = navigator.appName; |
|---|
| 602 | this.ver = navigator.appVersion; |
|---|
| 603 | |
|---|
| 604 | |
|---|
| 605 | this.mac = (this.ver.indexOf('Mac') != -1); |
|---|
| 606 | this.win = (this.ver.indexOf('Windows') != -1); |
|---|
| 607 | |
|---|
| 608 | |
|---|
| 609 | this.gecko = (this.ua.indexOf('Gecko') > 1); |
|---|
| 610 | if (this.gecko){ |
|---|
| 611 | this.geckoVer = parseInt(this.ua.substring(this.ua.indexOf('Gecko')+6, this.ua.length)); |
|---|
| 612 | if (this.geckoVer < 20020000){this.min = false;} |
|---|
| 613 | } |
|---|
| 614 | |
|---|
| 615 | |
|---|
| 616 | this.firebird = (this.ua.indexOf('Firebird') > 1); |
|---|
| 617 | |
|---|
| 618 | |
|---|
| 619 | this.safari = (this.ua.indexOf('Safari') > 1); |
|---|
| 620 | if (this.safari){ |
|---|
| 621 | this.gecko = false; |
|---|
| 622 | } |
|---|
| 623 | |
|---|
| 624 | |
|---|
| 625 | this.ie = (this.ua.indexOf('MSIE') > 0); |
|---|
| 626 | if (this.ie){ |
|---|
| 627 | this.ieVer = parseFloat(this.ua.substring(this.ua.indexOf('MSIE')+5, this.ua.length)); |
|---|
| 628 | if (this.ieVer < 5.5){this.min = false;} |
|---|
| 629 | } |
|---|
| 630 | |
|---|
| 631 | |
|---|
| 632 | this.opera = (this.ua.indexOf('Opera') > 0); |
|---|
| 633 | if (this.opera){ |
|---|
| 634 | this.operaVer = parseFloat(this.ua.substring(this.ua.indexOf('Opera')+6, this.ua.length)); |
|---|
| 635 | if (this.operaVer < 7.04){this.min = false;} |
|---|
| 636 | } |
|---|
| 637 | if (this.min == false){ |
|---|
| 638 | alert('Your browser may not be able to handle this page.'); |
|---|
| 639 | } |
|---|
| 640 | |
|---|
| 641 | |
|---|
| 642 | this.ie5mac = (this.ie&&this.mac&&(this.ieVer<6)); |
|---|
| 643 | } |
|---|
| 644 | |
|---|
| 645 | var C = new Client(); |
|---|
| 646 | |
|---|
| 647 | |
|---|
| 648 | |
|---|
| 649 | |
|---|
| 650 | |
|---|
| 651 | |
|---|
| 652 | |
|---|
| 653 | |
|---|
| 654 | |
|---|
| 655 | |
|---|
| 656 | function NavBtnOver(Btn){ |
|---|
| 657 | if (Btn.className != 'NavButtonDown'){Btn.className = 'NavButtonUp';} |
|---|
| 658 | } |
|---|
| 659 | |
|---|
| 660 | function NavBtnOut(Btn){ |
|---|
| 661 | Btn.className = 'NavButton'; |
|---|
| 662 | } |
|---|
| 663 | |
|---|
| 664 | function NavBtnDown(Btn){ |
|---|
| 665 | Btn.className = 'NavButtonDown'; |
|---|
| 666 | } |
|---|
| 667 | |
|---|
| 668 | |
|---|
| 669 | function FuncBtnOver(Btn){ |
|---|
| 670 | if (Btn.className != 'FuncButtonDown'){Btn.className = 'FuncButtonUp';} |
|---|
| 671 | } |
|---|
| 672 | |
|---|
| 673 | function FuncBtnOut(Btn){ |
|---|
| 674 | Btn.className = 'FuncButton'; |
|---|
| 675 | } |
|---|
| 676 | |
|---|
| 677 | function FuncBtnDown(Btn){ |
|---|
| 678 | Btn.className = 'FuncButtonDown'; |
|---|
| 679 | } |
|---|
| 680 | |
|---|
| 681 | function FocusAButton(){ |
|---|
| 682 | if (document.getElementById('CheckButton1') != null){ |
|---|
| 683 | document.getElementById('CheckButton1').focus(); |
|---|
| 684 | } |
|---|
| 685 | else{ |
|---|
| 686 | if (document.getElementById('CheckButton2') != null){ |
|---|
| 687 | document.getElementById('CheckButton2').focus(); |
|---|
| 688 | } |
|---|
| 689 | else{ |
|---|
| 690 | document.getElementsByTagName('button')[0].focus(); |
|---|
| 691 | } |
|---|
| 692 | } |
|---|
| 693 | } |
|---|
| 694 | |
|---|
| 695 | |
|---|
| 696 | |
|---|
| 697 | |
|---|
| 698 | |
|---|
| 699 | |
|---|
| 700 | var topZ = 1000; |
|---|
| 701 | |
|---|
| 702 | function ShowMessage(Feedback){ |
|---|
| 703 | var Output = Feedback + '<br /><br />'; |
|---|
| 704 | document.getElementById('FeedbackContent').innerHTML = Output; |
|---|
| 705 | var FDiv = document.getElementById('FeedbackDiv'); |
|---|
| 706 | topZ++; |
|---|
| 707 | FDiv.style.zIndex = topZ; |
|---|
| 708 | FDiv.style.top = TopSettingWithScrollOffset(30) + 'px'; |
|---|
| 709 | |
|---|
| 710 | if (C.gecko){ |
|---|
| 711 | document.getElementById('FeedbackOKButton').focus(); |
|---|
| 712 | } |
|---|
| 713 | FDiv.style.display = 'block'; |
|---|
| 714 | |
|---|
| 715 | ShowElements(false, 'input'); |
|---|
| 716 | ShowElements(false, 'select'); |
|---|
| 717 | ShowElements(false, 'object'); |
|---|
| 718 | if (C.ie){ |
|---|
| 719 | document.getElementById('FeedbackOKButton').focus(); |
|---|
| 720 | } |
|---|
| 721 | |
|---|
| 722 | |
|---|
| 723 | } |
|---|
| 724 | |
|---|
| 725 | function ShowElements(Show, TagName){ |
|---|
| 726 | |
|---|
| 727 | if (C.ie){ |
|---|
| 728 | var Els = document.getElementsByTagName(TagName); |
|---|
| 729 | for (var i=0; i<Els.length; i++){ |
|---|
| 730 | if (Show == true){ |
|---|
| 731 | Els[i].style.display = 'inline'; |
|---|
| 732 | } |
|---|
| 733 | else{ |
|---|
| 734 | Els[i].style.display = 'none'; |
|---|
| 735 | } |
|---|
| 736 | } |
|---|
| 737 | } |
|---|
| 738 | } |
|---|
| 739 | |
|---|
| 740 | function HideFeedback(){ |
|---|
| 741 | document.getElementById('FeedbackDiv').style.display = 'none'; |
|---|
| 742 | ShowElements(true, 'input'); |
|---|
| 743 | ShowElements(true, 'select'); |
|---|
| 744 | ShowElements(true, 'object'); |
|---|
| 745 | if (Finished == true){ |
|---|
| 746 | Finish(); |
|---|
| 747 | } |
|---|
| 748 | } |
|---|
| 749 | |
|---|
| 750 | |
|---|
| 751 | |
|---|
| 752 | |
|---|
| 753 | |
|---|
| 754 | function PageDim(){ |
|---|
| 755 | |
|---|
| 756 | this.W = 600; |
|---|
| 757 | this.H = 400; |
|---|
| 758 | this.W = document.getElementsByTagName('body')[0].clientWidth; |
|---|
| 759 | this.H = document.getElementsByTagName('body')[0].clientHeight; |
|---|
| 760 | } |
|---|
| 761 | |
|---|
| 762 | var pg = null; |
|---|
| 763 | |
|---|
| 764 | function GetPageXY(El) { |
|---|
| 765 | var XY = {x: 0, y: 0}; |
|---|
| 766 | while(El){ |
|---|
| 767 | XY.x += El.offsetLeft; |
|---|
| 768 | XY.y += El.offsetTop; |
|---|
| 769 | El = El.offsetParent; |
|---|
| 770 | } |
|---|
| 771 | return XY; |
|---|
| 772 | } |
|---|
| 773 | |
|---|
| 774 | function GetScrollTop(){ |
|---|
| 775 | if (document.documentElement && document.documentElement.scrollTop){ |
|---|
| 776 | return document.documentElement.scrollTop; |
|---|
| 777 | } |
|---|
| 778 | else{ |
|---|
| 779 | if (document.body){ |
|---|
| 780 | return document.body.scrollTop; |
|---|
| 781 | } |
|---|
| 782 | else{ |
|---|
| 783 | return window.pageYOffset; |
|---|
| 784 | } |
|---|
| 785 | } |
|---|
| 786 | } |
|---|
| 787 | |
|---|
| 788 | function GetViewportHeight(){ |
|---|
| 789 | if (window.innerWidth){ |
|---|
| 790 | return window.innerWidth; |
|---|
| 791 | } |
|---|
| 792 | else{ |
|---|
| 793 | return document.getElementsByTagName('body')[0].clientHeight; |
|---|
| 794 | } |
|---|
| 795 | } |
|---|
| 796 | |
|---|
| 797 | function TopSettingWithScrollOffset(TopPercent){ |
|---|
| 798 | var T = Math.floor(GetViewportHeight() * (TopPercent/100)); |
|---|
| 799 | return GetScrollTop() + T; |
|---|
| 800 | } |
|---|
| 801 | |
|---|
| 802 | |
|---|
| 803 | var InTextBox = false; |
|---|
| 804 | |
|---|
| 805 | function SuppressBackspace(e){ |
|---|
| 806 | if (InTextBox == true){return;} |
|---|
| 807 | if (C.ie) { |
|---|
| 808 | thisKey = window.event.keyCode; |
|---|
| 809 | } |
|---|
| 810 | else { |
|---|
| 811 | thisKey = e.keyCode; |
|---|
| 812 | } |
|---|
| 813 | |
|---|
| 814 | var Suppress = false; |
|---|
| 815 | |
|---|
| 816 | if (thisKey == 8) { |
|---|
| 817 | Suppress = true; |
|---|
| 818 | } |
|---|
| 819 | |
|---|
| 820 | if (Suppress == true){ |
|---|
| 821 | if (C.ie){ |
|---|
| 822 | window.event.returnValue = false; |
|---|
| 823 | window.event.cancelBubble = true; |
|---|
| 824 | } |
|---|
| 825 | else{ |
|---|
| 826 | e.preventDefault(); |
|---|
| 827 | } |
|---|
| 828 | } |
|---|
| 829 | } |
|---|
| 830 | |
|---|
| 831 | if (C.ie){ |
|---|
| 832 | document.attachEvent('onkeydown',SuppressBackspace); |
|---|
| 833 | window.attachEvent('onkeydown',SuppressBackspace); |
|---|
| 834 | } |
|---|
| 835 | else{ |
|---|
| 836 | window.addEventListener('keypress',SuppressBackspace,false); |
|---|
| 837 | } |
|---|
| 838 | |
|---|
| 839 | function ReduceItems(InArray, ReduceToSize){ |
|---|
| 840 | var ItemToDump=0; |
|---|
| 841 | var j=0; |
|---|
| 842 | while (InArray.length > ReduceToSize){ |
|---|
| 843 | ItemToDump = Math.floor(InArray.length*Math.random()); |
|---|
| 844 | InArray.splice(ItemToDump, 1); |
|---|
| 845 | } |
|---|
| 846 | } |
|---|
| 847 | |
|---|
| 848 | function Shuffle(InArray){ |
|---|
| 849 | Temp = new Array(); |
|---|
| 850 | var Len = InArray.length; |
|---|
| 851 | |
|---|
| 852 | var j = Len; |
|---|
| 853 | |
|---|
| 854 | for (var i=0; i<Len; i++){ |
|---|
| 855 | Temp[i] = InArray[i]; |
|---|
| 856 | } |
|---|
| 857 | |
|---|
| 858 | for (i=0; i<Len; i++){ |
|---|
| 859 | Num = Math.floor(j * Math.random()); |
|---|
| 860 | InArray[i] = Temp[Num]; |
|---|
| 861 | |
|---|
| 862 | for (var k=Num; k < j; k++) { |
|---|
| 863 | Temp[k] = Temp[k+1]; |
|---|
| 864 | } |
|---|
| 865 | j--; |
|---|
| 866 | } |
|---|
| 867 | return InArray; |
|---|
| 868 | } |
|---|
| 869 | |
|---|
| 870 | function WriteToInstructions(Feedback) { |
|---|
| 871 | |
|---|
| 872 | document.getElementById('InstructionsDiv').innerHTML = Feedback; |
|---|
| 873 | |
|---|
| 874 | } |
|---|
| 875 | |
|---|
| 876 | |
|---|
| 877 | |
|---|
| 878 | |
|---|
| 879 | function EscapeDoubleQuotes(InString){ |
|---|
| 880 | return InString.replace(/"/g, '"') |
|---|
| 881 | } |
|---|
| 882 | |
|---|
| 883 | function FocusAButton(){ |
|---|
| 884 | if (document.getElementById('CheckButton1') != null){ |
|---|
| 885 | document.getElementById('CheckButton1').focus(); |
|---|
| 886 | } |
|---|
| 887 | else{ |
|---|
| 888 | document.getElementsByTagName('button')[0].focus(); |
|---|
| 889 | } |
|---|
| 890 | } |
|---|
| 891 | |
|---|
| 892 | function TrimString(InString){ |
|---|
| 893 | var x = 0; |
|---|
| 894 | |
|---|
| 895 | if (InString.length != 0) { |
|---|
| 896 | while ((InString.charAt(InString.length - 1) == '\u0020') || (InString.charAt(InString.length - 1) == '\u000A') || (InString.charAt(InString.length - 1) == '\u000D')){ |
|---|
| 897 | InString = InString.substring(0, InString.length - 1) |
|---|
| 898 | } |
|---|
| 899 | |
|---|
| 900 | while ((InString.charAt(0) == '\u0020') || (InString.charAt(0) == '\u000A') || (InString.charAt(0) == '\u000D')){ |
|---|
| 901 | InString = InString.substring(1, InString.length) |
|---|
| 902 | } |
|---|
| 903 | |
|---|
| 904 | while (InString.indexOf(' ') != -1) { |
|---|
| 905 | x = InString.indexOf(' ') |
|---|
| 906 | InString = InString.substring(0, x) + InString.substring(x+1, InString.length) |
|---|
| 907 | } |
|---|
| 908 | |
|---|
| 909 | return InString; |
|---|
| 910 | } |
|---|
| 911 | |
|---|
| 912 | else { |
|---|
| 913 | return ''; |
|---|
| 914 | } |
|---|
| 915 | } |
|---|
| 916 | |
|---|
| 917 | function FindLongest(InArray){ |
|---|
| 918 | if (InArray.length < 1){return -1;} |
|---|
| 919 | |
|---|
| 920 | var Longest = 0; |
|---|
| 921 | for (var i=1; i<InArray.length; i++){ |
|---|
| 922 | if (InArray[i].length > InArray[Longest].length){ |
|---|
| 923 | Longest = i; |
|---|
| 924 | } |
|---|
| 925 | } |
|---|
| 926 | return Longest; |
|---|
| 927 | } |
|---|
| 928 | |
|---|
| 929 | //UNICODE CHARACTER FUNCTIONS |
|---|
| 930 | function IsCombiningDiacritic(CharNum){ |
|---|
| 931 | var Result = (((CharNum >= 0x0300)&&(CharNum <= 0x370))||((CharNum >= 0x20d0)&&(CharNum <= 0x20ff))); |
|---|
| 932 | Result = Result || (((CharNum >= 0x3099)&&(CharNum <= 0x309a))||((CharNum >= 0xfe20)&&(CharNum <= 0xfe23))); |
|---|
| 933 | return Result; |
|---|
| 934 | } |
|---|
| 935 | |
|---|
| 936 | function IsCJK(CharNum){ |
|---|
| 937 | return ((CharNum >= 0x3000)&&(CharNum < 0xd800)); |
|---|
| 938 | } |
|---|
| 939 | |
|---|
| 940 | //SETUP FUNCTIONS |
|---|
| 941 | //BROWSER WILL REFILL TEXT BOXES FROM CACHE IF NOT PREVENTED |
|---|
| 942 | function ClearTextBoxes(){ |
|---|
| 943 | var NList = document.getElementsByTagName('input'); |
|---|
| 944 | for (var i=0; i<NList.length; i++){ |
|---|
| 945 | if (NList[i].id.indexOf('Guess') > -1){ |
|---|
| 946 | NList[i].value = ''; |
|---|
| 947 | } |
|---|
| 948 | if (NList[i].id.indexOf('Chk') > -1){ |
|---|
| 949 | NList[i].checked = ''; |
|---|
| 950 | } |
|---|
| 951 | } |
|---|
| 952 | } |
|---|
| 953 | |
|---|
| 954 | //EXTENSION TO ARRAY OBJECT |
|---|
| 955 | function Array_IndexOf(Input){ |
|---|
| 956 | var Result = -1; |
|---|
| 957 | for (var i=0; i<this.length; i++){ |
|---|
| 958 | if (this[i] == Input){ |
|---|
| 959 | Result = i; |
|---|
| 960 | } |
|---|
| 961 | } |
|---|
| 962 | return Result; |
|---|
| 963 | } |
|---|
| 964 | Array.prototype.indexOf = Array_IndexOf; |
|---|
| 965 | |
|---|
| 966 | //IE HAS RENDERING BUG WITH BOTTOM NAVBAR |
|---|
| 967 | function RemoveBottomNavBarForIE(){ |
|---|
| 968 | if (C.ie){ |
|---|
| 969 | if (document.getElementById('BottomNavBar') != null){ |
|---|
| 970 | document.getElementById('TheBody').removeChild(document.getElementById('BottomNavBar')); |
|---|
| 971 | } |
|---|
| 972 | } |
|---|
| 973 | } |
|---|
| 974 | |
|---|
| 975 | |
|---|
| 976 | |
|---|
| 977 | |
|---|
| 978 | //HOTPOTNET-RELATED CODE |
|---|
| 979 | |
|---|
| 980 | var HPNStartTime = (new Date()).getTime(); |
|---|
| 981 | var SubmissionTimeout = 30000; |
|---|
| 982 | var Detail = ''; //Global that is used to submit tracking data |
|---|
| 983 | |
|---|
| 984 | function Finish(){ |
|---|
| 985 | //If there's a form, fill it out and submit it |
|---|
| 986 | if (document.store != null){ |
|---|
| 987 | Frm = document.store; |
|---|
| 988 | Frm.starttime.value = HPNStartTime; |
|---|
| 989 | Frm.endtime.value = (new Date()).getTime(); |
|---|
| 990 | Frm.mark.value = Score; |
|---|
| 991 | Frm.detail.value = Detail; |
|---|
| 992 | Frm.submit(); |
|---|
| 993 | } |
|---|
| 994 | } |
|---|
| 995 | |
|---|
| 996 | |
|---|
| 997 | |
|---|
| 998 | //JQUIZ CORE JAVASCRIPT CODE |
|---|
| 999 | |
|---|
| 1000 | var CurrQNum = 0; |
|---|
| 1001 | var CorrectIndicator = ':-)'; |
|---|
| 1002 | var IncorrectIndicator = ':-('; |
|---|
| 1003 | var YourScoreIs = 'Su puntuación es'; |
|---|
| 1004 | var ContinuousScoring = true; |
|---|
| 1005 | var CorrectFirstTime = 'Preguntas respondidas correctamente a la primera:'; |
|---|
| 1006 | var ShowCorrectFirstTime = false; |
|---|
| 1007 | var ShuffleQs = false; |
|---|
| 1008 | var ShuffleAs = false; |
|---|
| 1009 | var DefaultRight = 'Correcto'; |
|---|
| 1010 | var DefaultWrong = 'Lo siento, pruebe otra vez'; |
|---|
| 1011 | var QsToShow = 7; |
|---|
| 1012 | var Score = 0; |
|---|
| 1013 | var Finished = false; |
|---|
| 1014 | var Qs = null; |
|---|
| 1015 | var QArray = new Array(); |
|---|
| 1016 | var ShowingAllQuestions = false; |
|---|
| 1017 | var ShowAllQuestionsCaption = 'Mostrar todas las preguntas'; |
|---|
| 1018 | var ShowOneByOneCaption = 'Mostrar las preguntas de una en una'; |
|---|
| 1019 | var State = new Array(); |
|---|
| 1020 | var Feedback = ''; |
|---|
| 1021 | |
|---|
| 1022 | function CompleteEmptyFeedback(){ |
|---|
| 1023 | var QNum, ANum; |
|---|
| 1024 | for (QNum=0; QNum<I.length; QNum++){ |
|---|
| 1025 | for (ANum = 0; ANum<I[QNum][3].length; ANum++){ |
|---|
| 1026 | if (I[QNum][3][ANum][1].length < 1){ |
|---|
| 1027 | if (I[QNum][3][ANum][2] > 0){ |
|---|
| 1028 | I[QNum][3][ANum][1] = DefaultRight; |
|---|
| 1029 | } |
|---|
| 1030 | else{ |
|---|
| 1031 | I[QNum][3][ANum][1] = DefaultWrong; |
|---|
| 1032 | } |
|---|
| 1033 | } |
|---|
| 1034 | } |
|---|
| 1035 | } |
|---|
| 1036 | } |
|---|
| 1037 | |
|---|
| 1038 | function SetUpQuestions(){ |
|---|
| 1039 | var AList = new Array(); |
|---|
| 1040 | var QList = new Array(); |
|---|
| 1041 | var i, j; |
|---|
| 1042 | Qs = document.getElementById('Questions'); |
|---|
| 1043 | while (Qs.getElementsByTagName('li').length > 0){ |
|---|
| 1044 | QList.push(Qs.removeChild(Qs.getElementsByTagName('li')[0])); |
|---|
| 1045 | } |
|---|
| 1046 | var DumpItem = 0; |
|---|
| 1047 | while (QsToShow < QList.length){ |
|---|
| 1048 | DumpItem = Math.floor(QList.length*Math.random()); |
|---|
| 1049 | for (j=DumpItem; j<(QList.length-1); j++){ |
|---|
| 1050 | QList[j] = QList[j+1]; |
|---|
| 1051 | } |
|---|
| 1052 | QList.length = QList.length-1; |
|---|
| 1053 | } |
|---|
| 1054 | if (ShuffleQs == true){ |
|---|
| 1055 | QList = Shuffle(QList); |
|---|
| 1056 | } |
|---|
| 1057 | if (ShuffleAs == true){ |
|---|
| 1058 | var As; |
|---|
| 1059 | for (var i=0; i<QList.length; i++){ |
|---|
| 1060 | As = QList[i].getElementsByTagName('ol')[0]; |
|---|
| 1061 | if (As != null){ |
|---|
| 1062 | AList.length = 0; |
|---|
| 1063 | while (As.getElementsByTagName('li').length > 0){ |
|---|
| 1064 | AList.push(As.removeChild(As.getElementsByTagName('li')[0])); |
|---|
| 1065 | } |
|---|
| 1066 | AList = Shuffle(AList); |
|---|
| 1067 | for (j=0; j<AList.length; j++){ |
|---|
| 1068 | As.appendChild(AList[j]); |
|---|
| 1069 | } |
|---|
| 1070 | } |
|---|
| 1071 | } |
|---|
| 1072 | } |
|---|
| 1073 | |
|---|
| 1074 | for (i=0; i<QList.length; i++){ |
|---|
| 1075 | Qs.appendChild(QList[i]); |
|---|
| 1076 | QArray[QArray.length] = QList[i]; |
|---|
| 1077 | } |
|---|
| 1078 | |
|---|
| 1079 | //Show the first item |
|---|
| 1080 | QArray[0].style.display = ''; |
|---|
| 1081 | |
|---|
| 1082 | //Now hide all except the first item |
|---|
| 1083 | for (i=1; i<QArray.length; i++){ |
|---|
| 1084 | QArray[i].style.display = 'none'; |
|---|
| 1085 | } |
|---|
| 1086 | SetQNumReadout(); |
|---|
| 1087 | } |
|---|
| 1088 | |
|---|
| 1089 | function ChangeQ(ChangeBy){ |
|---|
| 1090 | if (((CurrQNum + ChangeBy) < 0)||((CurrQNum + ChangeBy) >= QArray.length)){return;} |
|---|
| 1091 | QArray[CurrQNum].style.display = 'none'; |
|---|
| 1092 | CurrQNum += ChangeBy; |
|---|
| 1093 | QArray[CurrQNum].style.display = ''; |
|---|
| 1094 | SetQNumReadout(); |
|---|
| 1095 | //if there's a textbox, set the focus in it |
|---|
| 1096 | if (QArray[CurrQNum].getElementsByTagName('input')[0] != null){ |
|---|
| 1097 | QArray[CurrQNum].getElementsByTagName('input')[0].focus(); |
|---|
| 1098 | } |
|---|
| 1099 | } |
|---|
| 1100 | |
|---|
| 1101 | function SetQNumReadout(){ |
|---|
| 1102 | document.getElementById('QNumReadout').innerHTML = (CurrQNum+1) + ' / ' + QArray.length; |
|---|
| 1103 | } |
|---|
| 1104 | |
|---|
| 1105 | I=new Array(); |
|---|
| 1106 | I[0]=new Array();I[0][0]=100; |
|---|
| 1107 | I[0][1]=''; |
|---|
| 1108 | I[0][2]='0'; |
|---|
| 1109 | I[0][3]=new Array(); |
|---|
| 1110 | I[0][3][0]=new Array('cuatro','Son m\u00E1s',0,0,1); |
|---|
| 1111 | I[0][3][1]=new Array('cinco','Mas de cinco',0,0,1); |
|---|
| 1112 | I[0][3][2]=new Array('ilimitadas','Correcto. Se pueden incluir todas las respuestas que se quieran ',1,100,1); |
|---|
| 1113 | I[1]=new Array();I[1][0]=100; |
|---|
| 1114 | I[1][1]=''; |
|---|
| 1115 | I[1][2]='0'; |
|---|
| 1116 | I[1][3]=new Array(); |
|---|
| 1117 | I[1][3][0]=new Array('Verdadero','Lo siento, pruebe de nuevo.',0,0,1); |
|---|
| 1118 | I[1][3][1]=new Array('Falso','Correcto, bien hecho.',1,100,1); |
|---|
| 1119 | I[2]=new Array();I[2][0]=100; |
|---|
| 1120 | I[2][1]=''; |
|---|
| 1121 | I[2][2]='0'; |
|---|
| 1122 | I[2][3]=new Array(); |
|---|
| 1123 | I[2][3][0]=new Array('Disminuir\u00E1','Eso ser\u00EDa un poco raro \u00BFno?. Por qu\u00E9 no lo prueba para ver lo que ocurre.',0,0,1); |
|---|
| 1124 | I[2][3][1]=new Array('Permanecer\u00E1 igual','Correcto, esto le permitir\u00E1 ver las indicaciones para las respuestas incorrectas despu\u00E9s de haber acertado la pregunta.',1,100,1); |
|---|
| 1125 | I[2][3][2]=new Array('Aumentar\u00E1.','Eso producir\u00EDa confusi\u00F3n. Por qu\u00E9 no lo prueba para ver lo que ocurre.',0,0,1); |
|---|
| 1126 | I[2][3][3]=new Array('Se pondr\u00E1 a cero.','Eso ser\u00EDa un poco raro \u00BFno?. Por qu\u00E9 no lo prueba para ver lo que ocurre.',0,0,1); |
|---|
| 1127 | I[3]=new Array();I[3][0]=100; |
|---|
| 1128 | I[3][1]=''; |
|---|
| 1129 | I[3][2]='0'; |
|---|
| 1130 | I[3][3]=new Array(); |
|---|
| 1131 | I[3][3][0]=new Array('3','En la versi\u00F3n para Windows, solamene tres hasta que registre el programain. Despu\u00E9s puede poner mas.',0,0,1); |
|---|
| 1132 | I[3][3][1]=new Array('100','Lo siento, puede haber mas de 100.',0,0,1); |
|---|
| 1133 | I[3][3][2]=new Array('1000','Lo siento, puede haber mas de 100.',0,0,1); |
|---|
| 1134 | I[3][3][3]=new Array('ilimitadas','Correcto, no hay l\u00EDmite al n\u00FAmero de pregunta. No obstante, si hay muchas preguntas las p\u00E1ginas tardar\u00E1 mucho en cargarse',1,100,1); |
|---|
| 1135 | I[4]=new Array();I[4][0]=100; |
|---|
| 1136 | I[4][1]=''; |
|---|
| 1137 | I[4][2]='1'; |
|---|
| 1138 | I[4][3]=new Array(); |
|---|
| 1139 | I[4][3][0]=new Array('JQuiz','Correcto, JQuiz puede elaborar ejercicios con preguntas de respuestas m\u00FAltiples, respuestas cortas y de multiselecci\u00F3n.',1,100,1); |
|---|
| 1140 | I[4][3][1]=new Array('Hot Potatoes','Eso no es del todo correcto. Hot Potatoes es el <em>conjunto</em> de programas.',0,50,1); |
|---|
| 1141 | I[4][3][2]=new Array('JBC','JBC era la antigua Patata utilizada para elaborar ejercicios de respuestas m\u00FAltiples en las versiones anteriores de Hot Potatoes.',0,0,1); |
|---|
| 1142 | I[5]=new Array();I[5][0]=100; |
|---|
| 1143 | I[5][1]=''; |
|---|
| 1144 | I[5][2]='2'; |
|---|
| 1145 | I[5][3]=new Array(); |
|---|
| 1146 | I[5][3][0]=new Array('JCross','No es correcto, JCross crea crucigramas.',0,0,1); |
|---|
| 1147 | I[5][3][1]=new Array('JJumble','No es correcto, ese nombre no existe.',0,0,1); |
|---|
| 1148 | I[5][3][2]=new Array('JCloze','No es correcto, JCloze es para ejerciicos de rellenar huecos.',0,0,1); |
|---|
| 1149 | I[5][3][3]=new Array('JMix','Correcto, JMix puede utilizarse para elaborar ese tipo de ejercicios.',1,100,1); |
|---|
| 1150 | I[6]=new Array();I[6][0]=100; |
|---|
| 1151 | I[6][1]=''; |
|---|
| 1152 | I[6][2]='3'; |
|---|
| 1153 | I[6][3]=new Array(); |
|---|
| 1154 | I[6][3][0]=new Array('JQuiz','Pista: No se olvide de la Patata que realiza test basados en preguntas cortas.',1,100,1); |
|---|
| 1155 | I[6][3][1]=new Array('JCloth','Pista: JCloths son sumnistros de limpieza',0,0,1); |
|---|
| 1156 | I[6][3][2]=new Array('JCloze','Pista: No se olvide de la Patata que elabora ejercicios de rellenar huecos.',1,100,1); |
|---|
| 1157 | I[6][3][3]=new Array('JMatch','Pista: No se olvide de la Patata que elabora ejercicios de empaerjamientos.',1,100,1); |
|---|
| 1158 | I[6][3][4]=new Array('JCPenney','Pista: J C Penney es un almacen.',0,0,1); |
|---|
| 1159 | I[6][3][5]=new Array('JCross','Pista: No se olvide de la Patata que elabora crucigramas.',1,100,1); |
|---|
| 1160 | I[6][3][6]=new Array('JMix','Pista: No se olvide de la Patata que elabora ejercicos de ordenar palabras o frases.',1,100,1); |
|---|
| 1161 | I[6][3][7]=new Array('The Masher','Pista: The Masher es un componente importante de Hot Potatoes.',1,100,1); |
|---|
| 1162 | I[6][3][8]=new Array('JLeno','Pista: Jay Leno no tiene nada que ver con Hot Potatoes',0,0,1); |
|---|
| 1163 | |
|---|
| 1164 | |
|---|
| 1165 | function StartUp(){ |
|---|
| 1166 | RemoveBottomNavBarForIE(); |
|---|
| 1167 | |
|---|
| 1168 | |
|---|
| 1169 | |
|---|
| 1170 | |
|---|
| 1171 | |
|---|
| 1172 | CompleteEmptyFeedback(); |
|---|
| 1173 | |
|---|
| 1174 | SetUpQuestions(); |
|---|
| 1175 | ClearTextBoxes(); |
|---|
| 1176 | CreateStatusArray(); |
|---|
| 1177 | |
|---|
| 1178 | |
|---|
| 1179 | |
|---|
| 1180 | } |
|---|
| 1181 | |
|---|
| 1182 | function ShowHideQuestions(){ |
|---|
| 1183 | FuncBtnOut(document.getElementById('ShowMethodButton')); |
|---|
| 1184 | document.getElementById('ShowMethodButton').style.display = 'none'; |
|---|
| 1185 | if (ShowingAllQuestions == false){ |
|---|
| 1186 | for (var i=0; i<QArray.length; i++){ |
|---|
| 1187 | QArray[i].style.display = ''; |
|---|
| 1188 | } |
|---|
| 1189 | document.getElementById('Questions').style.listStyleType = 'decimal'; |
|---|
| 1190 | document.getElementById('OneByOneReadout').style.display = 'none'; |
|---|
| 1191 | document.getElementById('ShowMethodButton').innerHTML = ShowOneByOneCaption; |
|---|
| 1192 | ShowingAllQuestions = true; |
|---|
| 1193 | } |
|---|
| 1194 | else{ |
|---|
| 1195 | for (var i=0; i<QArray.length; i++){ |
|---|
| 1196 | if (i != CurrQNum){ |
|---|
| 1197 | QArray[i].style.display = 'none'; |
|---|
| 1198 | } |
|---|
| 1199 | } |
|---|
| 1200 | document.getElementById('Questions').style.listStyleType = 'none'; |
|---|
| 1201 | document.getElementById('OneByOneReadout').style.display = ''; |
|---|
| 1202 | document.getElementById('ShowMethodButton').innerHTML = ShowAllQuestionsCaption; |
|---|
| 1203 | ShowingAllQuestions = false; |
|---|
| 1204 | } |
|---|
| 1205 | document.getElementById('ShowMethodButton').style.display = 'inline'; |
|---|
| 1206 | } |
|---|
| 1207 | |
|---|
| 1208 | function CreateStatusArray(){ |
|---|
| 1209 | var QNum, ANum; |
|---|
| 1210 | //For each item in the item array |
|---|
| 1211 | for (QNum=0; QNum<I.length; QNum++){ |
|---|
| 1212 | //Check if the question still exists (hasn't been nuked by showing a random selection) |
|---|
| 1213 | if (document.getElementById('Q_' + QNum) != null){ |
|---|
| 1214 | State[QNum] = new Array(); |
|---|
| 1215 | State[QNum][0] = -1; //Score for this q; -1 shows question not done yet |
|---|
| 1216 | State[QNum][1] = new Array(); //answers |
|---|
| 1217 | for (ANum = 0; ANum<I[QNum][3].length; ANum++){ |
|---|
| 1218 | State[QNum][1][ANum] = 0; //answer not chosen yet; when chosen, will store its position in the series of choices |
|---|
| 1219 | } |
|---|
| 1220 | State[QNum][2] = 0; //tries at this q so far |
|---|
| 1221 | State[QNum][3] = 0; //incrementing percent-correct values of selected answers |
|---|
| 1222 | State[QNum][4] = 0; //penalties incurred for hints |
|---|
| 1223 | State[QNum][5] = ''; //Sequence of answers chosen by number |
|---|
| 1224 | } |
|---|
| 1225 | else{ |
|---|
| 1226 | State[QNum] = null; |
|---|
| 1227 | } |
|---|
| 1228 | } |
|---|
| 1229 | } |
|---|
| 1230 | |
|---|
| 1231 | |
|---|
| 1232 | |
|---|
| 1233 | function CheckMCAnswer(QNum, ANum, Btn){ |
|---|
| 1234 | //if question doesn't exist, bail |
|---|
| 1235 | if (State[QNum].length < 1){return;} |
|---|
| 1236 | |
|---|
| 1237 | //Get the feedback |
|---|
| 1238 | Feedback = I[QNum][3][ANum][1]; |
|---|
| 1239 | |
|---|
| 1240 | //Now show feedback and bail if question already complete |
|---|
| 1241 | if (State[QNum][0] > -1){ |
|---|
| 1242 | ShowMessage(Feedback); |
|---|
| 1243 | return; |
|---|
| 1244 | } |
|---|
| 1245 | |
|---|
| 1246 | //Hide the button while processing |
|---|
| 1247 | Btn.style.display = 'none'; |
|---|
| 1248 | |
|---|
| 1249 | //Increment the number of tries |
|---|
| 1250 | State[QNum][2]++; |
|---|
| 1251 | |
|---|
| 1252 | //Add the percent-correct value of this answer |
|---|
| 1253 | State[QNum][3] += I[QNum][3][ANum][3]; |
|---|
| 1254 | |
|---|
| 1255 | //Store the try number in the answer part of the State array, for tracking purposes |
|---|
| 1256 | State[QNum][1][ANum] = State[QNum][2]; |
|---|
| 1257 | State[QNum][5] += String.fromCharCode(65+ANum) + ','; |
|---|
| 1258 | |
|---|
| 1259 | //Should this answer be accepted as correct? |
|---|
| 1260 | if (I[QNum][3][ANum][2] < 1){ |
|---|
| 1261 | //It's wrong |
|---|
| 1262 | |
|---|
| 1263 | //Mark the answer |
|---|
| 1264 | Btn.innerHTML = IncorrectIndicator; |
|---|
| 1265 | |
|---|
| 1266 | //Check whether this leaves just one MC answer unselected, in which case the Q is terminated |
|---|
| 1267 | var RemainingAnswer = FinalAnswer(QNum); |
|---|
| 1268 | if (RemainingAnswer > -1){ |
|---|
| 1269 | //Behave as if the last answer had been selected, but give no credit for it |
|---|
| 1270 | //Increment the number of tries |
|---|
| 1271 | State[QNum][2]++; |
|---|
| 1272 | |
|---|
| 1273 | //Calculate the score for this question |
|---|
| 1274 | CalculateMCQuestionScore(QNum); |
|---|
| 1275 | |
|---|
| 1276 | //Get the overall score and add it to the feedback |
|---|
| 1277 | CalculateOverallScore(); |
|---|
| 1278 | if ((ContinuousScoring == true)||(Finished == true)){ |
|---|
| 1279 | Feedback += '<br />' + YourScoreIs + ' ' + Score + '%.'; |
|---|
| 1280 | WriteToInstructions(YourScoreIs + ' ' + Score + '%.'); |
|---|
| 1281 | } |
|---|
| 1282 | } |
|---|
| 1283 | } |
|---|
| 1284 | else{ |
|---|
| 1285 | //It's right |
|---|
| 1286 | //Mark the answer |
|---|
| 1287 | Btn.innerHTML = CorrectIndicator; |
|---|
| 1288 | |
|---|
| 1289 | //Calculate the score for this question |
|---|
| 1290 | CalculateMCQuestionScore(QNum); |
|---|
| 1291 | |
|---|
| 1292 | //Get the overall score and add it to the feedback |
|---|
| 1293 | if (ContinuousScoring == true){ |
|---|
| 1294 | CalculateOverallScore(); |
|---|
| 1295 | if ((ContinuousScoring == true)||(Finished == true)){ |
|---|
| 1296 | Feedback += '<br />' + YourScoreIs + ' ' + Score + '%.'; |
|---|
| 1297 | WriteToInstructions(YourScoreIs + ' ' + Score + '%.'); |
|---|
| 1298 | } |
|---|
| 1299 | } |
|---|
| 1300 | } |
|---|
| 1301 | |
|---|
| 1302 | //Show the button again |
|---|
| 1303 | Btn.style.display = 'inline'; |
|---|
| 1304 | |
|---|
| 1305 | //Finally, show the feedback |
|---|
| 1306 | ShowMessage(Feedback); |
|---|
| 1307 | |
|---|
| 1308 | //Check whether all questions are now done |
|---|
| 1309 | CheckFinished(); |
|---|
| 1310 | } |
|---|
| 1311 | |
|---|
| 1312 | function CalculateMCQuestionScore(QNum){ |
|---|
| 1313 | var Tries = State[QNum][2] + State[QNum][4]; //include tries and hint penalties |
|---|
| 1314 | var PercentCorrect = State[QNum][3]; |
|---|
| 1315 | var TotAns = GetTotalMCAnswers(QNum); |
|---|
| 1316 | var HintPenalties = State[QNum][4]; |
|---|
| 1317 | |
|---|
| 1318 | //Make sure it's not already complete |
|---|
| 1319 | |
|---|
| 1320 | if (State[QNum][0] < 0){ |
|---|
| 1321 | //Allow for Hybrids |
|---|
| 1322 | if (HintPenalties >= 1){ |
|---|
| 1323 | State[QNum][0] = 0; |
|---|
| 1324 | } |
|---|
| 1325 | else{ |
|---|
| 1326 | State[QNum][0] = ((TotAns-(Tries-1))/TotAns)*(PercentCorrect/(100*Tries)); |
|---|
| 1327 | } |
|---|
| 1328 | if (State[QNum][0] < 0){ |
|---|
| 1329 | State[QNum][0] = 0; |
|---|
| 1330 | } |
|---|
| 1331 | } |
|---|
| 1332 | } |
|---|
| 1333 | |
|---|
| 1334 | function GetTotalMCAnswers(QNum){ |
|---|
| 1335 | var Result = 0; |
|---|
| 1336 | for (var ANum=0; ANum<I[QNum][3].length; ANum++){ |
|---|
| 1337 | if (I[QNum][3][ANum][4] == 1){ //This is an MC answer |
|---|
| 1338 | Result++; |
|---|
| 1339 | } |
|---|
| 1340 | } |
|---|
| 1341 | return Result; |
|---|
| 1342 | } |
|---|
| 1343 | |
|---|
| 1344 | function FinalAnswer(QNum){ |
|---|
| 1345 | var UnchosenAnswers = 0; |
|---|
| 1346 | var FinalAnswer = -1; |
|---|
| 1347 | for (var ANum=0; ANum<I[QNum][3].length; ANum++){ |
|---|
| 1348 | if (I[QNum][3][ANum][4] == 1){ //This is an MC answer |
|---|
| 1349 | if (State[QNum][1][ANum] < 1){ //This answer hasn't been chosen yet |
|---|
| 1350 | UnchosenAnswers++; |
|---|
| 1351 | FinalAnswer = ANum; |
|---|
| 1352 | } |
|---|
| 1353 | } |
|---|
| 1354 | } |
|---|
| 1355 | if (UnchosenAnswers == 1){ |
|---|
| 1356 | return FinalAnswer; |
|---|
| 1357 | } |
|---|
| 1358 | else{ |
|---|
| 1359 | return -1; |
|---|
| 1360 | } |
|---|
| 1361 | } |
|---|
| 1362 | |
|---|
| 1363 | |
|---|
| 1364 | |
|---|
| 1365 | |
|---|
| 1366 | |
|---|
| 1367 | function CheckMultiSelAnswer(QNum){ |
|---|
| 1368 | //bail if question doesn't exist or exercise finished |
|---|
| 1369 | if ((State[QNum].length < 1)||(Finished == true)){return;} |
|---|
| 1370 | |
|---|
| 1371 | //Increment the tries for this question |
|---|
| 1372 | State[QNum][2]++; |
|---|
| 1373 | |
|---|
| 1374 | var ShouldBeChecked; |
|---|
| 1375 | var Matches = 0; |
|---|
| 1376 | State[QNum][5] += '|'; |
|---|
| 1377 | |
|---|
| 1378 | //Check if there are any mismatches |
|---|
| 1379 | Feedback = ''; |
|---|
| 1380 | var CheckBox = null; |
|---|
| 1381 | for (var ANum=0; ANum<I[QNum][3].length; ANum++){ |
|---|
| 1382 | CheckBox = document.getElementById('Q_' + QNum + '_' + ANum + '_Chk'); |
|---|
| 1383 | if (CheckBox.checked == true){ |
|---|
| 1384 | State[QNum][5] += 'Y'; |
|---|
| 1385 | } |
|---|
| 1386 | else{ |
|---|
| 1387 | State[QNum][5] += 'N'; |
|---|
| 1388 | } |
|---|
| 1389 | ShouldBeChecked = (I[QNum][3][ANum][2] == 1); |
|---|
| 1390 | if (ShouldBeChecked == CheckBox.checked){ |
|---|
| 1391 | Matches++; |
|---|
| 1392 | } |
|---|
| 1393 | else{ |
|---|
| 1394 | Feedback = I[QNum][3][ANum][1]; |
|---|
| 1395 | } |
|---|
| 1396 | } |
|---|
| 1397 | //Add the hit readout |
|---|
| 1398 | Feedback = Matches + ' / ' + I[QNum][3].length + '<br />' + Feedback; |
|---|
| 1399 | if (Matches == I[QNum][3].length){ |
|---|
| 1400 | //It's right |
|---|
| 1401 | CalculateMultiSelQuestionScore(QNum); |
|---|
| 1402 | if (ContinuousScoring == true){ |
|---|
| 1403 | CalculateOverallScore(); |
|---|
| 1404 | if ((ContinuousScoring == true)||(Finished == true)){ |
|---|
| 1405 | Feedback += '<br />' + YourScoreIs + ' ' + Score + '%.'; |
|---|
| 1406 | WriteToInstructions(YourScoreIs + ' ' + Score + '%.'); |
|---|
| 1407 | } |
|---|
| 1408 | } |
|---|
| 1409 | } |
|---|
| 1410 | //If it's wrong, no need to do anything but show the feedback |
|---|
| 1411 | ShowMessage(Feedback); |
|---|
| 1412 | |
|---|
| 1413 | //Check whether all questions are now done |
|---|
| 1414 | CheckFinished(); |
|---|
| 1415 | } |
|---|
| 1416 | |
|---|
| 1417 | function CalculateMultiSelQuestionScore(QNum){ |
|---|
| 1418 | var Tries = State[QNum][2]; |
|---|
| 1419 | var TotAns = State[QNum][1].length; |
|---|
| 1420 | |
|---|
| 1421 | //Make sure it's not already complete |
|---|
| 1422 | if (State[QNum][0] < 0){ |
|---|
| 1423 | State[QNum][0] = (TotAns - (Tries-1)) / TotAns; |
|---|
| 1424 | if (State[QNum][0] < 0){ |
|---|
| 1425 | State[QNum][0] = 0; |
|---|
| 1426 | } |
|---|
| 1427 | } |
|---|
| 1428 | } |
|---|
| 1429 | |
|---|
| 1430 | |
|---|
| 1431 | |
|---|
| 1432 | function CalculateOverallScore(){ |
|---|
| 1433 | var TotalWeighting = 0; |
|---|
| 1434 | var TotalScore = 0; |
|---|
| 1435 | |
|---|
| 1436 | for (var QNum=0; QNum<State.length; QNum++){ |
|---|
| 1437 | if (State[QNum] != null){ |
|---|
| 1438 | if (State[QNum][0] > -1){ |
|---|
| 1439 | TotalWeighting += I[QNum][0]; |
|---|
| 1440 | TotalScore += (I[QNum][0] * State[QNum][0]); |
|---|
| 1441 | } |
|---|
| 1442 | } |
|---|
| 1443 | } |
|---|
| 1444 | Score = Math.floor((TotalScore/TotalWeighting)*100); |
|---|
| 1445 | } |
|---|
| 1446 | |
|---|
| 1447 | function CheckFinished(){ |
|---|
| 1448 | var FB = ''; |
|---|
| 1449 | var AllDone = true; |
|---|
| 1450 | for (var QNum=0; QNum<State.length; QNum++){ |
|---|
| 1451 | if (State[QNum] != null){ |
|---|
| 1452 | if (State[QNum][0] < 0){ |
|---|
| 1453 | AllDone = false; |
|---|
| 1454 | } |
|---|
| 1455 | } |
|---|
| 1456 | } |
|---|
| 1457 | if (AllDone == true){ |
|---|
| 1458 | |
|---|
| 1459 | //Report final score and submit if necessary |
|---|
| 1460 | CalculateOverallScore(); |
|---|
| 1461 | FB = YourScoreIs + ' ' + Score + '%.'; |
|---|
| 1462 | if (ShowCorrectFirstTime == true){ |
|---|
| 1463 | var CFT = 0; |
|---|
| 1464 | for (QNum=0; QNum<State.length; QNum++){ |
|---|
| 1465 | if (State[QNum] != null){ |
|---|
| 1466 | if (State[QNum][0] >= 1){ |
|---|
| 1467 | CFT++; |
|---|
| 1468 | } |
|---|
| 1469 | } |
|---|
| 1470 | } |
|---|
| 1471 | FB += '<br />' + CorrectFirstTime + ' ' + CFT + '/' + QsToShow; |
|---|
| 1472 | } |
|---|
| 1473 | WriteToInstructions(FB); |
|---|
| 1474 | |
|---|
| 1475 | Finished == true; |
|---|
| 1476 | |
|---|
| 1477 | TimeOver = true; |
|---|
| 1478 | Locked = true; |
|---|
| 1479 | |
|---|
| 1480 | |
|---|
| 1481 | |
|---|
| 1482 | Finished = true; |
|---|
| 1483 | Detail = '<?xml version="1.0"?><hpnetresult><fields>'; |
|---|
| 1484 | for (QNum=0; QNum<State.length; QNum++){ |
|---|
| 1485 | if (State[QNum] != null){ |
|---|
| 1486 | if (State[QNum][5].length > 0){ |
|---|
| 1487 | Detail += '<field><fieldname>Question #' + (QNum+1) + '</fieldname><fieldtype>question-tracking</fieldtype><fieldlabel>Q ' + (QNum+1) + '</fieldlabel><fieldlabelid>QuestionTrackingField</fieldlabelid><fielddata>' + State[QNum][5] + '</fielddata></field>'; |
|---|
| 1488 | } |
|---|
| 1489 | } |
|---|
| 1490 | } |
|---|
| 1491 | Detail += '</fields></hpnetresult>'; |
|---|
| 1492 | setTimeout('Finish()', SubmissionTimeout); |
|---|
| 1493 | } |
|---|
| 1494 | } |
|---|
| 1495 | |
|---|
| 1496 | |
|---|
| 1497 | |
|---|
| 1498 | |
|---|
| 1499 | |
|---|
| 1500 | //CORE CODE FOR CHECKING SHORT ANSWER GUESSES AGAINST ANSWER ARRAYS |
|---|
| 1501 | |
|---|
| 1502 | var CaseSensitive = false; |
|---|
| 1503 | var ShowAlsoCorrect = true; |
|---|
| 1504 | var PleaseEnter = 'Por favor escriba una respuesta.'; |
|---|
| 1505 | var HybridTries = 2; |
|---|
| 1506 | var PartlyIncorrect = 'Su respuesta es parcialmente incorrecta: '; |
|---|
| 1507 | var CorrectList = 'Respuestas correctas: '; |
|---|
| 1508 | var NextCorrect = 'Siguiente letra correcta en la respuesta: '; |
|---|
| 1509 | var CurrBox = null; |
|---|
| 1510 | |
|---|
| 1511 | function TrackFocus(BoxID){ |
|---|
| 1512 | InTextBox = true; |
|---|
| 1513 | CurrBox = document.getElementById(BoxID); |
|---|
| 1514 | } |
|---|
| 1515 | |
|---|
| 1516 | function LeaveGap(){ |
|---|
| 1517 | InTextBox = false; |
|---|
| 1518 | } |
|---|
| 1519 | |
|---|
| 1520 | function TypeChars(Chars){ |
|---|
| 1521 | if (CurrBox != null){ |
|---|
| 1522 | // if (CurrBox.style.display != 'none'){ |
|---|
| 1523 | CurrBox.value += Chars; |
|---|
| 1524 | // } |
|---|
| 1525 | } |
|---|
| 1526 | } |
|---|
| 1527 | |
|---|
| 1528 | function CheckGuess(Guess, Answer, CaseSensitive, PercentCorrect, Feedback){ |
|---|
| 1529 | this.Guess = Guess; |
|---|
| 1530 | this.Answer = Answer; |
|---|
| 1531 | this.PercentCorrect = PercentCorrect; |
|---|
| 1532 | this.Feedback = Feedback; |
|---|
| 1533 | if (CaseSensitive == false){ |
|---|
| 1534 | this.WorkingGuess = Guess.toLowerCase(); |
|---|
| 1535 | this.WorkingAnswer = Answer.toLowerCase(); |
|---|
| 1536 | } |
|---|
| 1537 | else{ |
|---|
| 1538 | this.WorkingGuess = Guess; |
|---|
| 1539 | this.WorkingAnswer = Answer; |
|---|
| 1540 | } |
|---|
| 1541 | this.Hint = ''; |
|---|
| 1542 | this.HintPenalty = 1/Answer.length; |
|---|
| 1543 | this.CorrectStart = ''; |
|---|
| 1544 | this.WrongMiddle = ''; |
|---|
| 1545 | this.CorrectEnd = ''; |
|---|
| 1546 | this.PercentMatch = 0; |
|---|
| 1547 | this.DoCheck(); |
|---|
| 1548 | } |
|---|
| 1549 | |
|---|
| 1550 | function CheckGuess_DoCheck(){ |
|---|
| 1551 | //Check if it's an exact match |
|---|
| 1552 | if (this.WorkingAnswer == this.WorkingGuess){ |
|---|
| 1553 | this.PercentMatch = 100; |
|---|
| 1554 | this.CorrectStart = this.Guess; |
|---|
| 1555 | return; |
|---|
| 1556 | } |
|---|
| 1557 | //Figure out how much of the beginning is correct |
|---|
| 1558 | var i = 0; |
|---|
| 1559 | var CorrectChars = 0; |
|---|
| 1560 | while (this.WorkingAnswer.charAt(i) == this.WorkingGuess.charAt(i)){ |
|---|
| 1561 | i++; |
|---|
| 1562 | CorrectChars++; |
|---|
| 1563 | } |
|---|
| 1564 | //Stash the hint |
|---|
| 1565 | this.Hint = this.Answer.charAt(i); |
|---|
| 1566 | |
|---|
| 1567 | this.CorrectStart = this.Guess.substring(0, i); |
|---|
| 1568 | //Figure out how much of the end is correct |
|---|
| 1569 | var j = this.WorkingGuess.length-1; |
|---|
| 1570 | var k = this.WorkingAnswer.length-1; |
|---|
| 1571 | while ((this.WorkingAnswer.charAt(k) == this.WorkingGuess.charAt(j))&&(CorrectChars < this.Answer.length)){ |
|---|
| 1572 | CorrectChars++; |
|---|
| 1573 | j--; |
|---|
| 1574 | k--; |
|---|
| 1575 | } |
|---|
| 1576 | this.CorrectEnd = this.Guess.substring(j+1, this.Guess.length); |
|---|
| 1577 | this.WrongMiddle = this.Guess.substring(i, j+1); |
|---|
| 1578 | if (TrimString(this.WrongMiddle).length < 1){this.WrongMiddle = '_____';} |
|---|
| 1579 | //Calculate match score based on how much of the guess is correct |
|---|
| 1580 | if (CorrectChars < this.Answer.length){ |
|---|
| 1581 | this.PercentMatch = Math.floor(100*CorrectChars)/this.Answer.length; |
|---|
| 1582 | } |
|---|
| 1583 | else{ |
|---|
| 1584 | this.PercentMatch = Math.floor((100 * CorrectChars)/this.Guess.length); |
|---|
| 1585 | } |
|---|
| 1586 | } |
|---|
| 1587 | |
|---|
| 1588 | CheckGuess.prototype.DoCheck = CheckGuess_DoCheck; |
|---|
| 1589 | |
|---|
| 1590 | function CheckAnswerArray(CaseSensitive){ |
|---|
| 1591 | this.CaseSensitive = CaseSensitive; |
|---|
| 1592 | this.Answers = new Array(); |
|---|
| 1593 | this.Score = 0; |
|---|
| 1594 | this.Feedback = ''; |
|---|
| 1595 | this.Hint = ''; |
|---|
| 1596 | this.HintPenalty = 0; |
|---|
| 1597 | this.MatchedAnswerLength = 1; |
|---|
| 1598 | this.CompleteMatch = false; |
|---|
| 1599 | this.MatchNum = -1; |
|---|
| 1600 | } |
|---|
| 1601 | |
|---|
| 1602 | function CheckAnswerArray_AddAnswer(Guess, Answer, PercentCorrect, Feedback){ |
|---|
| 1603 | this.Answers.push(new CheckGuess(Guess, Answer, this.CaseSensitive, PercentCorrect, Feedback)); |
|---|
| 1604 | } |
|---|
| 1605 | |
|---|
| 1606 | CheckAnswerArray.prototype.AddAnswer = CheckAnswerArray_AddAnswer; |
|---|
| 1607 | |
|---|
| 1608 | function CheckAnswerArray_ClearAll(){ |
|---|
| 1609 | this.Answers.length = 0; |
|---|
| 1610 | } |
|---|
| 1611 | |
|---|
| 1612 | CheckAnswerArray.prototype.ClearAll = CheckAnswerArray_ClearAll; |
|---|
| 1613 | |
|---|
| 1614 | function CheckAnswerArray_GetBestMatch(){ |
|---|
| 1615 | //First check for a 100% match |
|---|
| 1616 | for (var i=0; i<this.Answers.length; i++){ |
|---|
| 1617 | if (this.Answers[i].PercentMatch == 100){ |
|---|
| 1618 | this.Feedback = this.Answers[i].Feedback; |
|---|
| 1619 | this.Score = this.Answers[i].PercentCorrect; |
|---|
| 1620 | this.CompleteMatch = true; |
|---|
| 1621 | this.MatchNum = i; |
|---|
| 1622 | return; |
|---|
| 1623 | } |
|---|
| 1624 | } |
|---|
| 1625 | //Now check for the best alternative match |
|---|
| 1626 | var PercentMatch = 0; |
|---|
| 1627 | var BestMatch = -1; |
|---|
| 1628 | for (i=0; i<this.Answers.length; i++){ |
|---|
| 1629 | if ((this.Answers[i].PercentMatch > PercentMatch)&&(this.Answers[i].PercentCorrect == 100)){ |
|---|
| 1630 | BestMatch = i; |
|---|
| 1631 | PercentMatch = this.Answers[i].PercentMatch; |
|---|
| 1632 | } |
|---|
| 1633 | } |
|---|
| 1634 | if (BestMatch > -1){ |
|---|
| 1635 | this.Score = this.Answers[BestMatch].PercentMatch; |
|---|
| 1636 | this.Feedback = PartlyIncorrect + ' '; |
|---|
| 1637 | this.Feedback += '<span class="Answer">' + this.Answers[BestMatch].CorrectStart; |
|---|
| 1638 | this.Feedback += '<span class="Highlight">' + this.Answers[BestMatch].WrongMiddle + '</span>'; |
|---|
| 1639 | this.Feedback += this.Answers[BestMatch].CorrectEnd + '</span>'; |
|---|
| 1640 | this.Hint = '<span class="Answer">' + this.Answers[BestMatch].CorrectStart; |
|---|
| 1641 | this.Hint += '<span class="Highlight">' + this.Answers[BestMatch].Hint + '</span></span>'; |
|---|
| 1642 | this.HintPenalty = this.Answers[BestMatch].HintPenalty; |
|---|
| 1643 | } |
|---|
| 1644 | else{ |
|---|
| 1645 | this.Score = 0; |
|---|
| 1646 | this.Feedback = ''; |
|---|
| 1647 | } |
|---|
| 1648 | } |
|---|
| 1649 | |
|---|
| 1650 | CheckAnswerArray.prototype.GetBestMatch = CheckAnswerArray_GetBestMatch; |
|---|
| 1651 | |
|---|
| 1652 | function CheckShortAnswer(QNum){ |
|---|
| 1653 | //bail if question doesn't exist or exercise finished |
|---|
| 1654 | if ((State[QNum].length < 1)||(Finished == true)){return;} |
|---|
| 1655 | |
|---|
| 1656 | //bail if question already complete |
|---|
| 1657 | if (State[QNum][0] > -1){return;} |
|---|
| 1658 | |
|---|
| 1659 | //Get the guess |
|---|
| 1660 | var G = document.getElementById('Q_' + QNum + '_Guess').value; |
|---|
| 1661 | |
|---|
| 1662 | //If no guess, bail with message; no penalty |
|---|
| 1663 | if (G.length < 1){ |
|---|
| 1664 | ShowMessage(PleaseEnter); |
|---|
| 1665 | return; |
|---|
| 1666 | } |
|---|
| 1667 | |
|---|
| 1668 | //Increment tries |
|---|
| 1669 | State[QNum][2]++; |
|---|
| 1670 | |
|---|
| 1671 | //Create a check object |
|---|
| 1672 | var CA = new CheckAnswerArray(CaseSensitive); |
|---|
| 1673 | |
|---|
| 1674 | CA.ClearAll(); |
|---|
| 1675 | for (var ANum=0; ANum<I[QNum][3].length; ANum++){ |
|---|
| 1676 | CA.AddAnswer(G, I[QNum][3][ANum][0], I[QNum][3][ANum][3], I[QNum][3][ANum][1]); |
|---|
| 1677 | } |
|---|
| 1678 | CA.GetBestMatch(); |
|---|
| 1679 | |
|---|
| 1680 | //Store any match in the state tracking field |
|---|
| 1681 | if (CA.MatchNum > -1){ |
|---|
| 1682 | State[QNum][5] += String.fromCharCode(65+CA.MatchNum) + ','; |
|---|
| 1683 | } |
|---|
| 1684 | |
|---|
| 1685 | //Add the percent correct value for this answer to the Q State (works for all |
|---|
| 1686 | //situations, wrong or right |
|---|
| 1687 | State[QNum][3] += CA.Score; |
|---|
| 1688 | |
|---|
| 1689 | //Now branch, based on the nature of the match |
|---|
| 1690 | //Is it a complete match? |
|---|
| 1691 | if (CA.CompleteMatch == true){ |
|---|
| 1692 | |
|---|
| 1693 | //Is it with a wrong answer, or a right answer? |
|---|
| 1694 | if (CA.Score == 100){ |
|---|
| 1695 | //It's right |
|---|
| 1696 | CalculateShortAnsQuestionScore(QNum); |
|---|
| 1697 | //Get correct answer list if required, assuming there are any other correct alternatives |
|---|
| 1698 | if (ShowAlsoCorrect == true){ |
|---|
| 1699 | var AlsoCorrectList = GetCorrectList(QNum, G, false); |
|---|
| 1700 | if (AlsoCorrectList.length > 0){ |
|---|
| 1701 | CA.Feedback += '<br />' + CorrectList + '<br />' + '<span class="Answer">' + AlsoCorrectList + '</span>'; |
|---|
| 1702 | } |
|---|
| 1703 | } |
|---|
| 1704 | |
|---|
| 1705 | //Get the overall score and add it to the feedback |
|---|
| 1706 | if (ContinuousScoring == true){ |
|---|
| 1707 | CalculateOverallScore(); |
|---|
| 1708 | CA.Feedback += '<br />' + YourScoreIs + ' ' + Score + '%.'; |
|---|
| 1709 | WriteToInstructions(YourScoreIs + ' ' + Score + '%.'); |
|---|
| 1710 | } |
|---|
| 1711 | ShowMessage(CA.Feedback); |
|---|
| 1712 | //Put the answer in |
|---|
| 1713 | ReplaceGuessBox(QNum, G); |
|---|
| 1714 | CheckFinished(); |
|---|
| 1715 | return; |
|---|
| 1716 | } |
|---|
| 1717 | } |
|---|
| 1718 | |
|---|
| 1719 | //Otherwise, it's a match to a predicted wrong/partially correct, or a partial |
|---|
| 1720 | //match to a right answer |
|---|
| 1721 | if (CA.Feedback.length < 1){CA.Feedback = DefaultWrong;} |
|---|
| 1722 | ShowMessage(CA.Feedback); |
|---|
| 1723 | |
|---|
| 1724 | //If necessary, switch a hybrid question to m/c |
|---|
| 1725 | if (State[QNum][2] >= HybridTries){ |
|---|
| 1726 | SwitchHybridDisplay(QNum); |
|---|
| 1727 | } |
|---|
| 1728 | } |
|---|
| 1729 | |
|---|
| 1730 | function CalculateShortAnsQuestionScore(QNum){ |
|---|
| 1731 | var Tries = State[QNum][2] + State[QNum][4]; //include tries and hint penalties; |
|---|
| 1732 | var PercentCorrect = State[QNum][3]; |
|---|
| 1733 | var HintPenalties = State[QNum][4]; |
|---|
| 1734 | |
|---|
| 1735 | //Make sure it's not already complete |
|---|
| 1736 | if (State[QNum][0] < 0){ |
|---|
| 1737 | if (HintPenalties >= 1){ |
|---|
| 1738 | State[QNum][0] = 0; |
|---|
| 1739 | } |
|---|
| 1740 | else{ |
|---|
| 1741 | State[QNum][0] = (PercentCorrect/(100*Tries)); |
|---|
| 1742 | } |
|---|
| 1743 | if (State[QNum][0] < 0){ |
|---|
| 1744 | State[QNum][0] = 0; |
|---|
| 1745 | } |
|---|
| 1746 | } |
|---|
| 1747 | } |
|---|
| 1748 | |
|---|
| 1749 | function SwitchHybridDisplay(QNum){ |
|---|
| 1750 | if (document.getElementById('Q_' + QNum + '_Hybrid_MC') != null){ |
|---|
| 1751 | document.getElementById('Q_' + QNum + '_Hybrid_MC').style.display = ''; |
|---|
| 1752 | if (document.getElementById('Q_' + QNum + '_SA') != null){ |
|---|
| 1753 | document.getElementById('Q_' + QNum + '_SA').style.display = 'none'; |
|---|
| 1754 | } |
|---|
| 1755 | } |
|---|
| 1756 | } |
|---|
| 1757 | |
|---|
| 1758 | function GetCorrectArray(QNum){ |
|---|
| 1759 | var Result = new Array(); |
|---|
| 1760 | for (var ANum=0; ANum<I[QNum][3].length; ANum++){ |
|---|
| 1761 | if (I[QNum][3][ANum][2] == 1){ //This is an acceptable correct answer |
|---|
| 1762 | Result.push(I[QNum][3][ANum][0]); |
|---|
| 1763 | } |
|---|
| 1764 | } |
|---|
| 1765 | return Result; |
|---|
| 1766 | } |
|---|
| 1767 | |
|---|
| 1768 | function GetCorrectList(QNum, Answer, IncludeAnswer){ |
|---|
| 1769 | var As = GetCorrectArray(QNum); |
|---|
| 1770 | var Result = ''; |
|---|
| 1771 | for (var ANum=0; ANum<As.length; ANum++){ |
|---|
| 1772 | if ((IncludeAnswer == true)||(As[ANum] != Answer)){ |
|---|
| 1773 | Result += As[ANum] + '<br />'; |
|---|
| 1774 | } |
|---|
| 1775 | } |
|---|
| 1776 | return Result; |
|---|
| 1777 | } |
|---|
| 1778 | |
|---|
| 1779 | function GetFirstCorrectAnswer(QNum){ |
|---|
| 1780 | var As = GetCorrectArray(QNum); |
|---|
| 1781 | if (As.length > 0){ |
|---|
| 1782 | return As[0]; |
|---|
| 1783 | } |
|---|
| 1784 | else{ |
|---|
| 1785 | return ''; |
|---|
| 1786 | } |
|---|
| 1787 | } |
|---|
| 1788 | |
|---|
| 1789 | function ReplaceGuessBox(QNum, Ans){ |
|---|
| 1790 | if (document.getElementById('Q_' + QNum + '_SA') != null){ |
|---|
| 1791 | var El = document.getElementById('Q_' + QNum + '_SA'); |
|---|
| 1792 | while (El.childNodes.length > 0){ |
|---|
| 1793 | El.removeChild(El.childNodes[0]); |
|---|
| 1794 | } |
|---|
| 1795 | var A = document.createElement('span'); |
|---|
| 1796 | A.setAttribute('class', 'Answer'); |
|---|
| 1797 | var T = document.createTextNode(Ans); |
|---|
| 1798 | A.appendChild(T); |
|---|
| 1799 | El.appendChild(A); |
|---|
| 1800 | } |
|---|
| 1801 | } |
|---|
| 1802 | |
|---|
| 1803 | |
|---|
| 1804 | |
|---|
| 1805 | function ShowAnswers(QNum){ |
|---|
| 1806 | //bail if question doesn't exist or exercise finished |
|---|
| 1807 | if ((State[QNum].length < 1)||(Finished == true)){return;} |
|---|
| 1808 | |
|---|
| 1809 | //Get the answer list to display |
|---|
| 1810 | var Ans = GetCorrectList(QNum, '', false); |
|---|
| 1811 | Ans = CorrectList + '<br /><span class="Answer">' + Ans + '</span>'; |
|---|
| 1812 | |
|---|
| 1813 | //Display feedback |
|---|
| 1814 | ShowMessage(Ans); |
|---|
| 1815 | |
|---|
| 1816 | //Set the score for this question to 0 if no |
|---|
| 1817 | if (State[QNum][0] < 1){ |
|---|
| 1818 | State[QNum][0] = 0; |
|---|
| 1819 | } |
|---|
| 1820 | |
|---|
| 1821 | //Get the first correct answer |
|---|
| 1822 | var FirstAns = GetFirstCorrectAnswer(QNum); |
|---|
| 1823 | |
|---|
| 1824 | //Replace the textbox |
|---|
| 1825 | ReplaceGuessBox(QNum, FirstAns); |
|---|
| 1826 | |
|---|
| 1827 | //This may be the last, so check finished status |
|---|
| 1828 | CheckFinished(); |
|---|
| 1829 | } |
|---|
| 1830 | |
|---|
| 1831 | |
|---|
| 1832 | |
|---|
| 1833 | |
|---|
| 1834 | |
|---|
| 1835 | function ShowHint(QNum){ |
|---|
| 1836 | //bail if question doesn't exist or exercise finished |
|---|
| 1837 | if ((State[QNum].length < 1)||(Finished == true)){return;} |
|---|
| 1838 | |
|---|
| 1839 | //bail if question already complete |
|---|
| 1840 | if (State[QNum][0] > -1){return;} |
|---|
| 1841 | |
|---|
| 1842 | //Get the guess |
|---|
| 1843 | var G = document.getElementById('Q_' + QNum + '_Guess').value; |
|---|
| 1844 | |
|---|
| 1845 | //If no guess, give the first correct bit |
|---|
| 1846 | if (G.length < 1){ |
|---|
| 1847 | var Ans = GetFirstCorrectAnswer(QNum); |
|---|
| 1848 | var Hint = Ans.charAt(0); |
|---|
| 1849 | ShowMessage(NextCorrect + '<br />' + Hint); |
|---|
| 1850 | //Penalty for hint |
|---|
| 1851 | State[QNum][4] += (1/Ans.length); |
|---|
| 1852 | return; |
|---|
| 1853 | } |
|---|
| 1854 | |
|---|
| 1855 | //Increment tries |
|---|
| 1856 | State[QNum][2]++; |
|---|
| 1857 | |
|---|
| 1858 | //Create a check object |
|---|
| 1859 | var CA = new CheckAnswerArray(CaseSensitive); |
|---|
| 1860 | |
|---|
| 1861 | CA.ClearAll(); |
|---|
| 1862 | for (var ANum=0; ANum<I[QNum][3].length; ANum++){ |
|---|
| 1863 | //Use only correct answers |
|---|
| 1864 | if (I[QNum][3][ANum][2] == 1){ |
|---|
| 1865 | CA.AddAnswer(G, I[QNum][3][ANum][0], I[QNum][3][ANum][3], I[QNum][3][ANum][1]); |
|---|
| 1866 | } |
|---|
| 1867 | } |
|---|
| 1868 | CA.GetBestMatch(); |
|---|
| 1869 | if (CA.CompleteMatch == true){ |
|---|
| 1870 | //It's right! |
|---|
| 1871 | CheckShortAnswer(QNum); |
|---|
| 1872 | return; |
|---|
| 1873 | } |
|---|
| 1874 | else{ |
|---|
| 1875 | if (CA.Hint.length > 0){ |
|---|
| 1876 | ShowMessage(NextCorrect + '<br />' + CA.Hint); |
|---|
| 1877 | State[QNum][4] += CA.HintPenalty; |
|---|
| 1878 | } |
|---|
| 1879 | else{ |
|---|
| 1880 | ShowMessage(DefaultWrong + '<br />' + NextCorrect + '<br />' + GetFirstCorrectAnswer(QNum)[0]); |
|---|
| 1881 | } |
|---|
| 1882 | } |
|---|
| 1883 | } |
|---|
| 1884 | |
|---|
| 1885 | |
|---|
| 1886 | |
|---|
| 1887 | |
|---|
| 1888 | |
|---|
| 1889 | |
|---|
| 1890 | |
|---|
| 1891 | |
|---|
| 1892 | |
|---|
| 1893 | //--> |
|---|
| 1894 | |
|---|
| 1895 | //]]> |
|---|
| 1896 | |
|---|
| 1897 | </script> |
|---|
| 1898 | |
|---|
| 1899 | |
|---|
| 1900 | </head> |
|---|
| 1901 | |
|---|
| 1902 | <body onload="StartUp()" id="TheBody"> |
|---|
| 1903 | |
|---|
| 1904 | <!-- BeginTopNavButtons --> |
|---|
| 1905 | |
|---|
| 1906 | |
|---|
| 1907 | <div class="NavButtonBar" id="TopNavBar"> |
|---|
| 1908 | |
|---|
| 1909 | |
|---|
| 1910 | |
|---|
| 1911 | |
|---|
| 1912 | |
|---|
| 1913 | |
|---|
| 1914 | <button class="NavButton" onfocus="NavBtnOver(this)" onblur="NavBtnOut(this)" onmouseover="NavBtnOver(this)" onmouseout="NavBtnOut(this)" onmousedown="NavBtnDown(this)" onmouseup="NavBtnOut(this)" onclick="location='jcloze1.htm'; return false;">Siguiente ejemplo</button> |
|---|
| 1915 | |
|---|
| 1916 | |
|---|
| 1917 | </div> |
|---|
| 1918 | |
|---|
| 1919 | |
|---|
| 1920 | |
|---|
| 1921 | <!-- EndTopNavButtons --> |
|---|
| 1922 | |
|---|
| 1923 | <div class="Titles"> |
|---|
| 1924 | <h2 class="ExerciseTitle">Un Test realizado con JQuiz</h2> |
|---|
| 1925 | <h3 class="ExerciseSubtitle">Elija la respuesta correcta para cada pregunta.</h3> |
|---|
| 1926 | |
|---|
| 1927 | |
|---|
| 1928 | </div> |
|---|
| 1929 | |
|---|
| 1930 | <div id="InstructionsDiv" class="StdDiv"> |
|---|
| 1931 | <p id="Instructions"></p> |
|---|
| 1932 | </div> |
|---|
| 1933 | |
|---|
| 1934 | |
|---|
| 1935 | <div class="LeftContainer"> |
|---|
| 1936 | |
|---|
| 1937 | <div id="Reading" class="StdDiv"> |
|---|
| 1938 | |
|---|
| 1939 | <div id="ReadingDiv"> |
|---|
| 1940 | <h3 class="ExerciseSubtitle">Un Test realizado con JQuiz</h3><p>Este es el típico cuestionario de JQuiz. En esta ventana hay un texto para leer. El texto de esta lectura podría escribirse directamente en el programa JQuiz seleccionando <strong>Archivo / Añadir lectura</strong>. También podría optar por no incluir un texto para ser leído. Todas las herramientas de Hot Potatoes le permiten incluir una lectura.<br /><br />En la otra zona de la pantalla verá la primera de las preguntas. Puede contestarla pulsando sobre uno de los botones de respuestas; puede elegir la respuesta tantas veces como quiera hasta dar con la respuesta correcta. Cuando termine, puede pasar a la siguiente pregunta mediante los botones de flecha que se encuentran en la parte superior de la pregunta. También puede optar por ver todas las pregunta seguidas pulsando en el botón "Mostrar todas las preguntas".</p> |
|---|
| 1941 | </div> |
|---|
| 1942 | </div> |
|---|
| 1943 | |
|---|
| 1944 | </div> |
|---|
| 1945 | |
|---|
| 1946 | |
|---|
| 1947 | <div class="RightContainer"> |
|---|
| 1948 | |
|---|
| 1949 | |
|---|
| 1950 | |
|---|
| 1951 | <div id="MainDiv" class="StdDiv"> |
|---|
| 1952 | |
|---|
| 1953 | <div class="QuestionNavigation"> |
|---|
| 1954 | |
|---|
| 1955 | <p style="text-align: right;"> |
|---|
| 1956 | <button id="ShowMethodButton" class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="ShowHideQuestions(); return false;">Mostrar todas las preguntas</button> |
|---|
| 1957 | </p> |
|---|
| 1958 | |
|---|
| 1959 | <div id="OneByOneReadout"> |
|---|
| 1960 | <button id="PrevQButton" class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="ChangeQ(-1); return false;"><=</button> |
|---|
| 1961 | |
|---|
| 1962 | <span id="QNumReadout" class="QNum"> </span> |
|---|
| 1963 | |
|---|
| 1964 | <button id="NextQButton" class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="ChangeQ(1); return false;">=></button> |
|---|
| 1965 | <br /> |
|---|
| 1966 | </div> |
|---|
| 1967 | |
|---|
| 1968 | </div> |
|---|
| 1969 | |
|---|
| 1970 | <ol class="QuizQuestions" id="Questions"> |
|---|
| 1971 | <li class="QuizQuestion" id="Q_0" style="display: none;"><p class="QuestionText">¿Cuál es el número máximo de respuestas que pueden incluirse en un pregunta de respuestas múltiples?</p><ol class="MCAnswers"><li id="Q_0_0"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_0_0_Btn" onclick="CheckMCAnswer(0,0,this)"> ? </button> cuatro</li><li id="Q_0_1"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_0_1_Btn" onclick="CheckMCAnswer(0,1,this)"> ? </button> cinco</li><li id="Q_0_2"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_0_2_Btn" onclick="CheckMCAnswer(0,2,this)"> ? </button> ilimitadas</li></ol></li> |
|---|
| 1972 | <li class="QuizQuestion" id="Q_1" style="display: none;"><p class="QuestionText">Verdadero o falso: Usted deberá incluir una lectura.</p><ol class="MCAnswers"><li id="Q_1_0"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_1_0_Btn" onclick="CheckMCAnswer(1,0,this)"> ? </button> Verdadero</li><li id="Q_1_1"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_1_1_Btn" onclick="CheckMCAnswer(1,1,this)"> ? </button> Falso</li></ol></li> |
|---|
| 1973 | <li class="QuizQuestion" id="Q_2" style="display: none;"><p class="QuestionText">Imagine que usted pulsa en la Pregunta 1 la Respuesta A, que es correcta, y su puntuación es 100%. Si después pulsa en la Respuesta B de la misma pregunta, ¿qué ocurrirá con su puntuación?</p><ol class="MCAnswers"><li id="Q_2_0"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_2_0_Btn" onclick="CheckMCAnswer(2,0,this)"> ? </button> Disminuirá</li><li id="Q_2_1"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_2_1_Btn" onclick="CheckMCAnswer(2,1,this)"> ? </button> Permanecerá igual</li><li id="Q_2_2"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_2_2_Btn" onclick="CheckMCAnswer(2,2,this)"> ? </button> Aumentará.</li><li id="Q_2_3"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_2_3_Btn" onclick="CheckMCAnswer(2,3,this)"> ? </button> Se pondrá a cero.</li></ol></li> |
|---|
| 1974 | <li class="QuizQuestion" id="Q_3" style="display: none;"><p class="QuestionText">¿Cuántas preguntas puede haber en un ejercicio de JQuiz?</p><ol class="MCAnswers"><li id="Q_3_0"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_3_0_Btn" onclick="CheckMCAnswer(3,0,this)"> ? </button> 3</li><li id="Q_3_1"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_3_1_Btn" onclick="CheckMCAnswer(3,1,this)"> ? </button> 100</li><li id="Q_3_2"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_3_2_Btn" onclick="CheckMCAnswer(3,2,this)"> ? </button> 1000</li><li id="Q_3_3"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_3_3_Btn" onclick="CheckMCAnswer(3,3,this)"> ? </button> ilimitadas</li></ol></li> |
|---|
| 1975 | <li class="QuizQuestion" id="Q_4" style="display: none;"><p class="QuestionText">Este es otro tipo de pregunta. Es una pregunta de respuesta corta<br /><br />¿Cuál es el nombre del programa utilizado para elaborar este ejercicio?</p><div class="ShortAnswer" id="Q_4_SA"><form method="post" action="" onsubmit="return false;"><div><input type="text" id="Q_4_Guess" onfocus="TrackFocus('Q_4_Guess')" onblur="LeaveGap()" class="GapBox" size="9"></input><br /><br /><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="CheckShortAnswer(4)">Comprobar</button><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="ShowHint(4)">Pista</button><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="ShowAnswers(4)">Mostrar respuesta</button></div></form></div></li> |
|---|
| 1976 | <li class="QuizQuestion" id="Q_5" style="display: none;"><p class="QuestionText">Este tipo de pregunta es una nueva característica de la versión 6 de Hot Potatoes. Se denomina pregunta <strong>híbrida</strong>. Comienza como una pregunta de respuesta corta, pero si se equivoca dos veces, se convierte en pregunta de respuesta múltiple para que sea mas facil .<br /><br />¿Cuál es la Patata que se utiliza para elaborar ejercicios de ordenar las letras de una palabra?</p><div class="ShortAnswer" id="Q_5_SA"><form method="post" action="" onsubmit="return false;"><div><input type="text" id="Q_5_Guess" onfocus="TrackFocus('Q_5_Guess')" onblur="LeaveGap()" class="GapBox" size="9"></input><br /><br /><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="CheckShortAnswer(5)">Comprobar</button><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="ShowHint(5)">Pista</button><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="ShowAnswers(5)">Mostrar respuesta</button></div></form></div><ol class="MCAnswers" id="Q_5_Hybrid_MC" style="display: none;"><li id="Q_5_0"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_5_0_Btn" onclick="CheckMCAnswer(5,0,this)"> ? </button> JCross</li><li id="Q_5_1"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_5_1_Btn" onclick="CheckMCAnswer(5,1,this)"> ? </button> JJumble</li><li id="Q_5_2"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_5_2_Btn" onclick="CheckMCAnswer(5,2,this)"> ? </button> JCloze</li><li id="Q_5_3"><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" id="Q_5_3_Btn" onclick="CheckMCAnswer(5,3,this)"> ? </button> JMix</li></ol></li> |
|---|
| 1977 | <li class="QuizQuestion" id="Q_6" style="display: none;"><p class="QuestionText">Esta pergunta nos muestra el tipo de pregunta de <strong>multiselección</strong>.<br /><br />¿Cuál de los siguientes son programas de Hot Potatoes?</p><ol class="MSelAnswers"><li id="Q_6_0"><form method="post" action="" onsubmit="return false;"><div><input type="checkbox" id="Q_6_0_Chk" class="MSelCheckbox" />JQuiz</div></form></li><li id="Q_6_1"><form method="post" action="" onsubmit="return false;"><div><input type="checkbox" id="Q_6_1_Chk" class="MSelCheckbox" />JCloth</div></form></li><li id="Q_6_2"><form method="post" action="" onsubmit="return false;"><div><input type="checkbox" id="Q_6_2_Chk" class="MSelCheckbox" />JCloze</div></form></li><li id="Q_6_3"><form method="post" action="" onsubmit="return false;"><div><input type="checkbox" id="Q_6_3_Chk" class="MSelCheckbox" />JMatch</div></form></li><li id="Q_6_4"><form method="post" action="" onsubmit="return false;"><div><input type="checkbox" id="Q_6_4_Chk" class="MSelCheckbox" />JCPenney</div></form></li><li id="Q_6_5"><form method="post" action="" onsubmit="return false;"><div><input type="checkbox" id="Q_6_5_Chk" class="MSelCheckbox" />JCross</div></form></li><li id="Q_6_6"><form method="post" action="" onsubmit="return false;"><div><input type="checkbox" id="Q_6_6_Chk" class="MSelCheckbox" />JMix</div></form></li><li id="Q_6_7"><form method="post" action="" onsubmit="return false;"><div><input type="checkbox" id="Q_6_7_Chk" class="MSelCheckbox" />The Masher</div></form></li><li id="Q_6_8"><form method="post" action="" onsubmit="return false;"><div><input type="checkbox" id="Q_6_8_Chk" class="MSelCheckbox" />JLeno</div></form></li></ol><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="CheckMultiSelAnswer(6)">Comprobar</button></li></ol> |
|---|
| 1978 | |
|---|
| 1979 | |
|---|
| 1980 | |
|---|
| 1981 | </div> |
|---|
| 1982 | |
|---|
| 1983 | |
|---|
| 1984 | </div> |
|---|
| 1985 | |
|---|
| 1986 | |
|---|
| 1987 | <div class="Feedback" id="FeedbackDiv"> |
|---|
| 1988 | <div class="FeedbackText" id="FeedbackContent"></div> |
|---|
| 1989 | <button id="FeedbackOKButton" class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="HideFeedback(); return false;"> OK </button> |
|---|
| 1990 | </div> |
|---|
| 1991 | |
|---|
| 1992 | <!-- BeginBottomNavButtons --> |
|---|
| 1993 | |
|---|
| 1994 | |
|---|
| 1995 | <div class="NavButtonBar" id="BottomNavBar"> |
|---|
| 1996 | |
|---|
| 1997 | |
|---|
| 1998 | |
|---|
| 1999 | |
|---|
| 2000 | |
|---|
| 2001 | |
|---|
| 2002 | <button class="NavButton" onfocus="NavBtnOver(this)" onblur="NavBtnOut(this)" onmouseover="NavBtnOver(this)" onmouseout="NavBtnOut(this)" onmousedown="NavBtnDown(this)" onmouseup="NavBtnOut(this)" onclick="location='jcloze1.htm'; return false;">Siguiente ejemplo</button> |
|---|
| 2003 | |
|---|
| 2004 | |
|---|
| 2005 | </div> |
|---|
| 2006 | |
|---|
| 2007 | |
|---|
| 2008 | |
|---|
| 2009 | <!-- EndBottomNavButtons --> |
|---|
| 2010 | |
|---|
| 2011 | <!-- BeginSubmissionForm --> |
|---|
| 2012 | |
|---|
| 2013 | <!-- EndSubmissionForm --> |
|---|
| 2014 | |
|---|
| 2015 | </body> |
|---|
| 2016 | |
|---|
| 2017 | </html> |
|---|