| 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="Ejercicio de rellenar huecos con preguntas individuales" /> |
|---|
| 10 | |
|---|
| 11 | |
|---|
| 12 | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> |
|---|
| 13 | |
|---|
| 14 | <title> |
|---|
| 15 | Ejercicio de rellenar huecos con preguntas individuales |
|---|
| 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: #330000; |
|---|
| 89 | } |
|---|
| 90 | |
|---|
| 91 | button{ |
|---|
| 92 | display: inline; |
|---|
| 93 | } |
|---|
| 94 | |
|---|
| 95 | .ExerciseTitle{ |
|---|
| 96 | font-size: large; |
|---|
| 97 | color: #330000; |
|---|
| 98 | } |
|---|
| 99 | |
|---|
| 100 | .ExerciseSubtitle{ |
|---|
| 101 | color: #330000; |
|---|
| 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: #330000; |
|---|
| 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: #330000; |
|---|
| 157 | position: absolute; |
|---|
| 158 | display: none; |
|---|
| 159 | font-size: small; |
|---|
| 160 | } |
|---|
| 161 | |
|---|
| 162 | |
|---|
| 163 | |
|---|
| 164 | |
|---|
| 165 | div.ExerciseDiv{ |
|---|
| 166 | color: #000000; |
|---|
| 167 | } |
|---|
| 168 | |
|---|
| 169 | /* JMatch flashcard styles */ |
|---|
| 170 | table.FlashcardTable{ |
|---|
| 171 | background-color: transparent; |
|---|
| 172 | color: #000000; |
|---|
| 173 | border-color: #000000; |
|---|
| 174 | margin-left: 5%; |
|---|
| 175 | margin-right: 5%; |
|---|
| 176 | margin-top: 2em; |
|---|
| 177 | margin-bottom: 2em; |
|---|
| 178 | width: 90%; |
|---|
| 179 | position: relative; |
|---|
| 180 | align: center; |
|---|
| 181 | padding: 0px; |
|---|
| 182 | } |
|---|
| 183 | |
|---|
| 184 | table.FlashcardTable tr{ |
|---|
| 185 | border-style: none; |
|---|
| 186 | margin: 0px; |
|---|
| 187 | padding: 0px; |
|---|
| 188 | background-color: #DDAAAA; |
|---|
| 189 | } |
|---|
| 190 | |
|---|
| 191 | table.FlashcardTable td.Showing{ |
|---|
| 192 | font-size: large; |
|---|
| 193 | text-align: center; |
|---|
| 194 | width: 50%; |
|---|
| 195 | display: table-cell; |
|---|
| 196 | padding: 2em; |
|---|
| 197 | margin: 0px; |
|---|
| 198 | border-style: solid; |
|---|
| 199 | border-width: 1px; |
|---|
| 200 | color: #000000; |
|---|
| 201 | background-color: #DDAAAA; |
|---|
| 202 | } |
|---|
| 203 | |
|---|
| 204 | table.FlashcardTable td.Hidden{ |
|---|
| 205 | display: none; |
|---|
| 206 | } |
|---|
| 207 | |
|---|
| 208 | /* JMix styles */ |
|---|
| 209 | div#SegmentDiv{ |
|---|
| 210 | margin-top: 2em; |
|---|
| 211 | margin-bottom: 2em; |
|---|
| 212 | text-align: center; |
|---|
| 213 | } |
|---|
| 214 | |
|---|
| 215 | a.ExSegment{ |
|---|
| 216 | font-size: medium; |
|---|
| 217 | font-weight: bold; |
|---|
| 218 | text-decoration: none; |
|---|
| 219 | color: #000000; |
|---|
| 220 | } |
|---|
| 221 | |
|---|
| 222 | span.RemainingWordList{ |
|---|
| 223 | font-style: italic; |
|---|
| 224 | } |
|---|
| 225 | |
|---|
| 226 | div.DropLine { |
|---|
| 227 | position: absolute; |
|---|
| 228 | text-align: center; |
|---|
| 229 | border-bottom-style: solid; |
|---|
| 230 | border-bottom-width: 1px; |
|---|
| 231 | border-bottom-color: #330000; |
|---|
| 232 | width: 80%; |
|---|
| 233 | } |
|---|
| 234 | |
|---|
| 235 | /* JCloze styles */ |
|---|
| 236 | |
|---|
| 237 | input{ |
|---|
| 238 | font-family: Geneva,Arial; |
|---|
| 239 | font-size: larger; |
|---|
| 240 | } |
|---|
| 241 | |
|---|
| 242 | .ClozeWordList{ |
|---|
| 243 | text-align: center; |
|---|
| 244 | font-weight: bold; |
|---|
| 245 | } |
|---|
| 246 | |
|---|
| 247 | div.ClozeBody{ |
|---|
| 248 | text-align: left; |
|---|
| 249 | margin-top: 2em; |
|---|
| 250 | margin-bottom: 2em; |
|---|
| 251 | line-height: 2.0 |
|---|
| 252 | } |
|---|
| 253 | |
|---|
| 254 | span.GapSpan{ |
|---|
| 255 | font-weight: bold; |
|---|
| 256 | } |
|---|
| 257 | |
|---|
| 258 | /* JCross styles */ |
|---|
| 259 | |
|---|
| 260 | table.CrosswordGrid{ |
|---|
| 261 | margin: auto auto 1em auto; |
|---|
| 262 | border-collapse: collapse; |
|---|
| 263 | padding: 0px; |
|---|
| 264 | } |
|---|
| 265 | |
|---|
| 266 | table.CrosswordGrid td{ |
|---|
| 267 | width: 1.5em; |
|---|
| 268 | height: 1.5em; |
|---|
| 269 | text-align: center; |
|---|
| 270 | vertical-align: middle; |
|---|
| 271 | font-size: large; |
|---|
| 272 | padding: 0px; |
|---|
| 273 | margin: 0px; |
|---|
| 274 | border-style: solid; |
|---|
| 275 | border-width: 1px; |
|---|
| 276 | border-color: #000000; |
|---|
| 277 | } |
|---|
| 278 | |
|---|
| 279 | table.CrosswordGrid td.BlankCell{ |
|---|
| 280 | background-color: #000000; |
|---|
| 281 | color: #000000; |
|---|
| 282 | } |
|---|
| 283 | |
|---|
| 284 | table.CrosswordGrid td.LetterOnlyCell{ |
|---|
| 285 | text-align: center; |
|---|
| 286 | vertical-align: middle; |
|---|
| 287 | background-color: #ffffff; |
|---|
| 288 | color: #000000; |
|---|
| 289 | font-weight: bold; |
|---|
| 290 | } |
|---|
| 291 | |
|---|
| 292 | table.CrosswordGrid td.NumLetterCell{ |
|---|
| 293 | text-align: left; |
|---|
| 294 | vertical-align: top; |
|---|
| 295 | background-color: #ffffff; |
|---|
| 296 | color: #000000; |
|---|
| 297 | padding: 1px; |
|---|
| 298 | font-weight: bold; |
|---|
| 299 | } |
|---|
| 300 | |
|---|
| 301 | .NumLetterCellText{ |
|---|
| 302 | cursor: pointer; |
|---|
| 303 | } |
|---|
| 304 | |
|---|
| 305 | .GridNum{ |
|---|
| 306 | vertical-align: super; |
|---|
| 307 | font-size: x-small; |
|---|
| 308 | font-weight: bold; |
|---|
| 309 | text-decoration: none; |
|---|
| 310 | color: #000000; |
|---|
| 311 | } |
|---|
| 312 | |
|---|
| 313 | table#Clues{ |
|---|
| 314 | margin: auto; |
|---|
| 315 | vertical-align: top; |
|---|
| 316 | } |
|---|
| 317 | |
|---|
| 318 | table#Clues td{ |
|---|
| 319 | vertical-align: top; |
|---|
| 320 | } |
|---|
| 321 | |
|---|
| 322 | table.ClueList{ |
|---|
| 323 | margin: auto; |
|---|
| 324 | } |
|---|
| 325 | |
|---|
| 326 | td.ClueNum{ |
|---|
| 327 | text-align: right; |
|---|
| 328 | font-weight: bold; |
|---|
| 329 | vertical-align: top; |
|---|
| 330 | } |
|---|
| 331 | |
|---|
| 332 | td.Clue{ |
|---|
| 333 | text-align: left; |
|---|
| 334 | } |
|---|
| 335 | |
|---|
| 336 | div#ClueEntry{ |
|---|
| 337 | text-align: left; |
|---|
| 338 | margin-bottom: 1em; |
|---|
| 339 | } |
|---|
| 340 | |
|---|
| 341 | /* Keypad styles */ |
|---|
| 342 | |
|---|
| 343 | div.Keypad{ |
|---|
| 344 | text-align: center; |
|---|
| 345 | } |
|---|
| 346 | |
|---|
| 347 | div.Keypad button{ |
|---|
| 348 | font-family: Geneva,Arial; |
|---|
| 349 | font-size: 120%; |
|---|
| 350 | background-color: #ffffff; |
|---|
| 351 | color: #000000; |
|---|
| 352 | width: 2em; |
|---|
| 353 | } |
|---|
| 354 | |
|---|
| 355 | /* JQuiz styles */ |
|---|
| 356 | |
|---|
| 357 | div.QuestionNavigation{ |
|---|
| 358 | text-align: center; |
|---|
| 359 | } |
|---|
| 360 | |
|---|
| 361 | .QNum{ |
|---|
| 362 | margin: 0em 1em 0.5em 1em; |
|---|
| 363 | font-weight: bold; |
|---|
| 364 | vertical-align: middle; |
|---|
| 365 | } |
|---|
| 366 | |
|---|
| 367 | textarea{ |
|---|
| 368 | font-family: Geneva,Arial; |
|---|
| 369 | font-size: larger; |
|---|
| 370 | } |
|---|
| 371 | |
|---|
| 372 | .QuestionText{ |
|---|
| 373 | |
|---|
| 374 | } |
|---|
| 375 | |
|---|
| 376 | .Answer{ |
|---|
| 377 | font-size: 120%; |
|---|
| 378 | letter-spacing: 0.1em; |
|---|
| 379 | } |
|---|
| 380 | |
|---|
| 381 | .Highlight{ |
|---|
| 382 | color: #000000; |
|---|
| 383 | background-color: #ffff00; |
|---|
| 384 | font-weight: bold; |
|---|
| 385 | font-size: 120%; |
|---|
| 386 | } |
|---|
| 387 | |
|---|
| 388 | ol.QuizQuestions{ |
|---|
| 389 | text-align: left; |
|---|
| 390 | list-style-type: none; |
|---|
| 391 | } |
|---|
| 392 | |
|---|
| 393 | li.QuizQuestion{ |
|---|
| 394 | padding: 1em; |
|---|
| 395 | border-style: solid; |
|---|
| 396 | border-width: 0px 0px 1px 0px; |
|---|
| 397 | } |
|---|
| 398 | |
|---|
| 399 | ol.MCAnswers{ |
|---|
| 400 | text-align: left; |
|---|
| 401 | list-style-type: upper-alpha; |
|---|
| 402 | padding: 1em; |
|---|
| 403 | } |
|---|
| 404 | |
|---|
| 405 | ol.MCAnswers li{ |
|---|
| 406 | margin-bottom: 1em; |
|---|
| 407 | } |
|---|
| 408 | |
|---|
| 409 | ol.MSelAnswers{ |
|---|
| 410 | text-align: left; |
|---|
| 411 | list-style-type: lower-alpha; |
|---|
| 412 | padding: 1em; |
|---|
| 413 | } |
|---|
| 414 | |
|---|
| 415 | div.ShortAnswer{ |
|---|
| 416 | padding: 1em; |
|---|
| 417 | } |
|---|
| 418 | |
|---|
| 419 | div.StdDiv{ |
|---|
| 420 | background-color: #DDAAAA; |
|---|
| 421 | text-align: center; |
|---|
| 422 | font-size: small; |
|---|
| 423 | color: #000000; |
|---|
| 424 | padding: 8px; |
|---|
| 425 | border-style: solid; |
|---|
| 426 | border-width: 1px 1px 1px 1px; |
|---|
| 427 | border-color: #000000; |
|---|
| 428 | margin: 1px; |
|---|
| 429 | } |
|---|
| 430 | |
|---|
| 431 | .FuncButton { |
|---|
| 432 | text-align: center; |
|---|
| 433 | border-style: solid; |
|---|
| 434 | |
|---|
| 435 | border-left-color: #eed4d4; |
|---|
| 436 | border-top-color: #eed4d4; |
|---|
| 437 | border-right-color: #6e5555; |
|---|
| 438 | border-bottom-color: #6e5555; |
|---|
| 439 | color: #000000; |
|---|
| 440 | background-color: #DDAAAA; |
|---|
| 441 | |
|---|
| 442 | border-width: 2px; |
|---|
| 443 | padding: 3px 6px 3px 6px; |
|---|
| 444 | cursor: pointer; |
|---|
| 445 | } |
|---|
| 446 | |
|---|
| 447 | .FuncButtonUp { |
|---|
| 448 | color: #DDAAAA; |
|---|
| 449 | text-align: center; |
|---|
| 450 | border-style: solid; |
|---|
| 451 | |
|---|
| 452 | border-left-color: #eed4d4; |
|---|
| 453 | border-top-color: #eed4d4; |
|---|
| 454 | border-right-color: #6e5555; |
|---|
| 455 | border-bottom-color: #6e5555; |
|---|
| 456 | |
|---|
| 457 | background-color: #000000; |
|---|
| 458 | color: #DDAAAA; |
|---|
| 459 | border-width: 2px; |
|---|
| 460 | padding: 3px 6px 3px 6px; |
|---|
| 461 | cursor: pointer; |
|---|
| 462 | } |
|---|
| 463 | |
|---|
| 464 | .FuncButtonDown { |
|---|
| 465 | color: #DDAAAA; |
|---|
| 466 | text-align: center; |
|---|
| 467 | border-style: solid; |
|---|
| 468 | |
|---|
| 469 | border-left-color: #6e5555; |
|---|
| 470 | border-top-color: #6e5555; |
|---|
| 471 | border-right-color: #eed4d4; |
|---|
| 472 | border-bottom-color: #eed4d4; |
|---|
| 473 | background-color: #000000; |
|---|
| 474 | color: #DDAAAA; |
|---|
| 475 | |
|---|
| 476 | border-width: 2px; |
|---|
| 477 | padding: 3px 6px 3px 6px; |
|---|
| 478 | cursor: pointer; |
|---|
| 479 | } |
|---|
| 480 | |
|---|
| 481 | /*BeginNavBarStyle*/ |
|---|
| 482 | |
|---|
| 483 | div.NavButtonBar{ |
|---|
| 484 | background-color: #660000; |
|---|
| 485 | text-align: center; |
|---|
| 486 | margin: 2px 0px 2px 0px; |
|---|
| 487 | clear: both; |
|---|
| 488 | font-size: small; |
|---|
| 489 | } |
|---|
| 490 | |
|---|
| 491 | .NavButton { |
|---|
| 492 | border-style: solid; |
|---|
| 493 | |
|---|
| 494 | border-left-color: #b27f7f; |
|---|
| 495 | border-top-color: #b27f7f; |
|---|
| 496 | border-right-color: #330000; |
|---|
| 497 | border-bottom-color: #330000; |
|---|
| 498 | background-color: #660000; |
|---|
| 499 | color: #ffffff; |
|---|
| 500 | |
|---|
| 501 | border-width: 2px; |
|---|
| 502 | cursor: pointer; |
|---|
| 503 | } |
|---|
| 504 | |
|---|
| 505 | .NavButtonUp { |
|---|
| 506 | border-style: solid; |
|---|
| 507 | |
|---|
| 508 | border-left-color: #b27f7f; |
|---|
| 509 | border-top-color: #b27f7f; |
|---|
| 510 | border-right-color: #330000; |
|---|
| 511 | border-bottom-color: #330000; |
|---|
| 512 | color: #660000; |
|---|
| 513 | background-color: #ffffff; |
|---|
| 514 | |
|---|
| 515 | border-width: 2px; |
|---|
| 516 | cursor: pointer; |
|---|
| 517 | } |
|---|
| 518 | |
|---|
| 519 | .NavButtonDown { |
|---|
| 520 | border-style: solid; |
|---|
| 521 | |
|---|
| 522 | border-left-color: #330000; |
|---|
| 523 | border-top-color: #330000; |
|---|
| 524 | border-right-color: #b27f7f; |
|---|
| 525 | border-bottom-color: #b27f7f; |
|---|
| 526 | color: #660000; |
|---|
| 527 | background-color: #ffffff; |
|---|
| 528 | |
|---|
| 529 | border-width: 2px; |
|---|
| 530 | cursor: pointer; |
|---|
| 531 | } |
|---|
| 532 | |
|---|
| 533 | /*EndNavBarStyle*/ |
|---|
| 534 | |
|---|
| 535 | a{ |
|---|
| 536 | color: #0000FF; |
|---|
| 537 | } |
|---|
| 538 | |
|---|
| 539 | a: visited{ |
|---|
| 540 | color: #0000CC; |
|---|
| 541 | } |
|---|
| 542 | |
|---|
| 543 | a:hover{ |
|---|
| 544 | color: #0000FF; |
|---|
| 545 | } |
|---|
| 546 | |
|---|
| 547 | div.CardStyle { |
|---|
| 548 | position: absolute; |
|---|
| 549 | font-family: Geneva,Arial; |
|---|
| 550 | font-size: small; |
|---|
| 551 | padding: 5px; |
|---|
| 552 | border-style: solid; |
|---|
| 553 | border-width: 1px; |
|---|
| 554 | color: #000000; |
|---|
| 555 | background-color: #DDAAAA; |
|---|
| 556 | left: -50px; |
|---|
| 557 | top: -50px; |
|---|
| 558 | overflow: visible; |
|---|
| 559 | } |
|---|
| 560 | |
|---|
| 561 | .rtl{ |
|---|
| 562 | text-align: right; |
|---|
| 563 | font-size: large; |
|---|
| 564 | } |
|---|
| 565 | |
|---|
| 566 | |
|---|
| 567 | </style> |
|---|
| 568 | |
|---|
| 569 | <script type="text/javascript"> |
|---|
| 570 | |
|---|
| 571 | |
|---|
| 572 | |
|---|
| 573 | <!-- |
|---|
| 574 | |
|---|
| 575 | |
|---|
| 576 | function Client(){ |
|---|
| 577 | |
|---|
| 578 | this.min = false; if (document.getElementById){this.min = true;}; |
|---|
| 579 | |
|---|
| 580 | this.ua = navigator.userAgent; |
|---|
| 581 | this.name = navigator.appName; |
|---|
| 582 | this.ver = navigator.appVersion; |
|---|
| 583 | |
|---|
| 584 | |
|---|
| 585 | this.mac = (this.ver.indexOf('Mac') != -1); |
|---|
| 586 | this.win = (this.ver.indexOf('Windows') != -1); |
|---|
| 587 | |
|---|
| 588 | |
|---|
| 589 | this.gecko = (this.ua.indexOf('Gecko') > 1); |
|---|
| 590 | if (this.gecko){ |
|---|
| 591 | this.geckoVer = parseInt(this.ua.substring(this.ua.indexOf('Gecko')+6, this.ua.length)); |
|---|
| 592 | if (this.geckoVer < 20020000){this.min = false;} |
|---|
| 593 | } |
|---|
| 594 | |
|---|
| 595 | |
|---|
| 596 | this.firebird = (this.ua.indexOf('Firebird') > 1); |
|---|
| 597 | |
|---|
| 598 | |
|---|
| 599 | this.safari = (this.ua.indexOf('Safari') > 1); |
|---|
| 600 | if (this.safari){ |
|---|
| 601 | this.gecko = false; |
|---|
| 602 | } |
|---|
| 603 | |
|---|
| 604 | |
|---|
| 605 | this.ie = (this.ua.indexOf('MSIE') > 0); |
|---|
| 606 | if (this.ie){ |
|---|
| 607 | this.ieVer = parseFloat(this.ua.substring(this.ua.indexOf('MSIE')+5, this.ua.length)); |
|---|
| 608 | if (this.ieVer < 5.5){this.min = false;} |
|---|
| 609 | } |
|---|
| 610 | |
|---|
| 611 | |
|---|
| 612 | this.opera = (this.ua.indexOf('Opera') > 0); |
|---|
| 613 | if (this.opera){ |
|---|
| 614 | this.operaVer = parseFloat(this.ua.substring(this.ua.indexOf('Opera')+6, this.ua.length)); |
|---|
| 615 | if (this.operaVer < 7.04){this.min = false;} |
|---|
| 616 | } |
|---|
| 617 | if (this.min == false){ |
|---|
| 618 | alert('Your browser may not be able to handle this page.'); |
|---|
| 619 | } |
|---|
| 620 | |
|---|
| 621 | |
|---|
| 622 | this.ie5mac = (this.ie&&this.mac&&(this.ieVer<6)); |
|---|
| 623 | } |
|---|
| 624 | |
|---|
| 625 | var C = new Client(); |
|---|
| 626 | |
|---|
| 627 | |
|---|
| 628 | |
|---|
| 629 | |
|---|
| 630 | |
|---|
| 631 | |
|---|
| 632 | |
|---|
| 633 | |
|---|
| 634 | |
|---|
| 635 | |
|---|
| 636 | function NavBtnOver(Btn){ |
|---|
| 637 | if (Btn.className != 'NavButtonDown'){Btn.className = 'NavButtonUp';} |
|---|
| 638 | } |
|---|
| 639 | |
|---|
| 640 | function NavBtnOut(Btn){ |
|---|
| 641 | Btn.className = 'NavButton'; |
|---|
| 642 | } |
|---|
| 643 | |
|---|
| 644 | function NavBtnDown(Btn){ |
|---|
| 645 | Btn.className = 'NavButtonDown'; |
|---|
| 646 | } |
|---|
| 647 | |
|---|
| 648 | |
|---|
| 649 | function FuncBtnOver(Btn){ |
|---|
| 650 | if (Btn.className != 'FuncButtonDown'){Btn.className = 'FuncButtonUp';} |
|---|
| 651 | } |
|---|
| 652 | |
|---|
| 653 | function FuncBtnOut(Btn){ |
|---|
| 654 | Btn.className = 'FuncButton'; |
|---|
| 655 | } |
|---|
| 656 | |
|---|
| 657 | function FuncBtnDown(Btn){ |
|---|
| 658 | Btn.className = 'FuncButtonDown'; |
|---|
| 659 | } |
|---|
| 660 | |
|---|
| 661 | function FocusAButton(){ |
|---|
| 662 | if (document.getElementById('CheckButton1') != null){ |
|---|
| 663 | document.getElementById('CheckButton1').focus(); |
|---|
| 664 | } |
|---|
| 665 | else{ |
|---|
| 666 | if (document.getElementById('CheckButton2') != null){ |
|---|
| 667 | document.getElementById('CheckButton2').focus(); |
|---|
| 668 | } |
|---|
| 669 | else{ |
|---|
| 670 | document.getElementsByTagName('button')[0].focus(); |
|---|
| 671 | } |
|---|
| 672 | } |
|---|
| 673 | } |
|---|
| 674 | |
|---|
| 675 | |
|---|
| 676 | |
|---|
| 677 | |
|---|
| 678 | |
|---|
| 679 | |
|---|
| 680 | var topZ = 1000; |
|---|
| 681 | |
|---|
| 682 | function ShowMessage(Feedback){ |
|---|
| 683 | var Output = Feedback + '<br /><br />'; |
|---|
| 684 | document.getElementById('FeedbackContent').innerHTML = Output; |
|---|
| 685 | var FDiv = document.getElementById('FeedbackDiv'); |
|---|
| 686 | topZ++; |
|---|
| 687 | FDiv.style.zIndex = topZ; |
|---|
| 688 | FDiv.style.top = TopSettingWithScrollOffset(30) + 'px'; |
|---|
| 689 | |
|---|
| 690 | if (C.gecko){ |
|---|
| 691 | document.getElementById('FeedbackOKButton').focus(); |
|---|
| 692 | } |
|---|
| 693 | FDiv.style.display = 'block'; |
|---|
| 694 | |
|---|
| 695 | ShowElements(false, 'input'); |
|---|
| 696 | ShowElements(false, 'select'); |
|---|
| 697 | ShowElements(false, 'object'); |
|---|
| 698 | if (C.ie){ |
|---|
| 699 | document.getElementById('FeedbackOKButton').focus(); |
|---|
| 700 | } |
|---|
| 701 | |
|---|
| 702 | |
|---|
| 703 | } |
|---|
| 704 | |
|---|
| 705 | function ShowElements(Show, TagName){ |
|---|
| 706 | |
|---|
| 707 | if (C.ie){ |
|---|
| 708 | var Els = document.getElementsByTagName(TagName); |
|---|
| 709 | for (var i=0; i<Els.length; i++){ |
|---|
| 710 | if (Show == true){ |
|---|
| 711 | Els[i].style.display = 'inline'; |
|---|
| 712 | } |
|---|
| 713 | else{ |
|---|
| 714 | Els[i].style.display = 'none'; |
|---|
| 715 | } |
|---|
| 716 | } |
|---|
| 717 | } |
|---|
| 718 | } |
|---|
| 719 | |
|---|
| 720 | function HideFeedback(){ |
|---|
| 721 | document.getElementById('FeedbackDiv').style.display = 'none'; |
|---|
| 722 | ShowElements(true, 'input'); |
|---|
| 723 | ShowElements(true, 'select'); |
|---|
| 724 | ShowElements(true, 'object'); |
|---|
| 725 | if (Finished == true){ |
|---|
| 726 | Finish(); |
|---|
| 727 | } |
|---|
| 728 | } |
|---|
| 729 | |
|---|
| 730 | |
|---|
| 731 | |
|---|
| 732 | |
|---|
| 733 | |
|---|
| 734 | function PageDim(){ |
|---|
| 735 | |
|---|
| 736 | this.W = 600; |
|---|
| 737 | this.H = 400; |
|---|
| 738 | this.W = document.getElementsByTagName('body')[0].clientWidth; |
|---|
| 739 | this.H = document.getElementsByTagName('body')[0].clientHeight; |
|---|
| 740 | } |
|---|
| 741 | |
|---|
| 742 | var pg = null; |
|---|
| 743 | |
|---|
| 744 | function GetPageXY(El) { |
|---|
| 745 | var XY = {x: 0, y: 0}; |
|---|
| 746 | while(El){ |
|---|
| 747 | XY.x += El.offsetLeft; |
|---|
| 748 | XY.y += El.offsetTop; |
|---|
| 749 | El = El.offsetParent; |
|---|
| 750 | } |
|---|
| 751 | return XY; |
|---|
| 752 | } |
|---|
| 753 | |
|---|
| 754 | function GetScrollTop(){ |
|---|
| 755 | if (document.documentElement && document.documentElement.scrollTop){ |
|---|
| 756 | return document.documentElement.scrollTop; |
|---|
| 757 | } |
|---|
| 758 | else{ |
|---|
| 759 | if (document.body){ |
|---|
| 760 | return document.body.scrollTop; |
|---|
| 761 | } |
|---|
| 762 | else{ |
|---|
| 763 | return window.pageYOffset; |
|---|
| 764 | } |
|---|
| 765 | } |
|---|
| 766 | } |
|---|
| 767 | |
|---|
| 768 | function GetViewportHeight(){ |
|---|
| 769 | if (window.innerWidth){ |
|---|
| 770 | return window.innerWidth; |
|---|
| 771 | } |
|---|
| 772 | else{ |
|---|
| 773 | return document.getElementsByTagName('body')[0].clientHeight; |
|---|
| 774 | } |
|---|
| 775 | } |
|---|
| 776 | |
|---|
| 777 | function TopSettingWithScrollOffset(TopPercent){ |
|---|
| 778 | var T = Math.floor(GetViewportHeight() * (TopPercent/100)); |
|---|
| 779 | return GetScrollTop() + T; |
|---|
| 780 | } |
|---|
| 781 | |
|---|
| 782 | |
|---|
| 783 | var InTextBox = false; |
|---|
| 784 | |
|---|
| 785 | function SuppressBackspace(e){ |
|---|
| 786 | if (InTextBox == true){return;} |
|---|
| 787 | if (C.ie) { |
|---|
| 788 | thisKey = window.event.keyCode; |
|---|
| 789 | } |
|---|
| 790 | else { |
|---|
| 791 | thisKey = e.keyCode; |
|---|
| 792 | } |
|---|
| 793 | |
|---|
| 794 | var Suppress = false; |
|---|
| 795 | |
|---|
| 796 | if (thisKey == 8) { |
|---|
| 797 | Suppress = true; |
|---|
| 798 | } |
|---|
| 799 | |
|---|
| 800 | if (Suppress == true){ |
|---|
| 801 | if (C.ie){ |
|---|
| 802 | window.event.returnValue = false; |
|---|
| 803 | window.event.cancelBubble = true; |
|---|
| 804 | } |
|---|
| 805 | else{ |
|---|
| 806 | e.preventDefault(); |
|---|
| 807 | } |
|---|
| 808 | } |
|---|
| 809 | } |
|---|
| 810 | |
|---|
| 811 | if (C.ie){ |
|---|
| 812 | document.attachEvent('onkeydown',SuppressBackspace); |
|---|
| 813 | window.attachEvent('onkeydown',SuppressBackspace); |
|---|
| 814 | } |
|---|
| 815 | else{ |
|---|
| 816 | window.addEventListener('keypress',SuppressBackspace,false); |
|---|
| 817 | } |
|---|
| 818 | |
|---|
| 819 | function ReduceItems(InArray, ReduceToSize){ |
|---|
| 820 | var ItemToDump=0; |
|---|
| 821 | var j=0; |
|---|
| 822 | while (InArray.length > ReduceToSize){ |
|---|
| 823 | ItemToDump = Math.floor(InArray.length*Math.random()); |
|---|
| 824 | InArray.splice(ItemToDump, 1); |
|---|
| 825 | } |
|---|
| 826 | } |
|---|
| 827 | |
|---|
| 828 | function Shuffle(InArray){ |
|---|
| 829 | Temp = new Array(); |
|---|
| 830 | var Len = InArray.length; |
|---|
| 831 | |
|---|
| 832 | var j = Len; |
|---|
| 833 | |
|---|
| 834 | for (var i=0; i<Len; i++){ |
|---|
| 835 | Temp[i] = InArray[i]; |
|---|
| 836 | } |
|---|
| 837 | |
|---|
| 838 | for (i=0; i<Len; i++){ |
|---|
| 839 | Num = Math.floor(j * Math.random()); |
|---|
| 840 | InArray[i] = Temp[Num]; |
|---|
| 841 | |
|---|
| 842 | for (var k=Num; k < j; k++) { |
|---|
| 843 | Temp[k] = Temp[k+1]; |
|---|
| 844 | } |
|---|
| 845 | j--; |
|---|
| 846 | } |
|---|
| 847 | return InArray; |
|---|
| 848 | } |
|---|
| 849 | |
|---|
| 850 | function WriteToInstructions(Feedback) { |
|---|
| 851 | |
|---|
| 852 | document.getElementById('InstructionsDiv').innerHTML = Feedback; |
|---|
| 853 | |
|---|
| 854 | } |
|---|
| 855 | |
|---|
| 856 | |
|---|
| 857 | |
|---|
| 858 | |
|---|
| 859 | function EscapeDoubleQuotes(InString){ |
|---|
| 860 | return InString.replace(/"/g, '"') |
|---|
| 861 | } |
|---|
| 862 | |
|---|
| 863 | function FocusAButton(){ |
|---|
| 864 | if (document.getElementById('CheckButton1') != null){ |
|---|
| 865 | document.getElementById('CheckButton1').focus(); |
|---|
| 866 | } |
|---|
| 867 | else{ |
|---|
| 868 | document.getElementsByTagName('button')[0].focus(); |
|---|
| 869 | } |
|---|
| 870 | } |
|---|
| 871 | |
|---|
| 872 | function TrimString(InString){ |
|---|
| 873 | var x = 0; |
|---|
| 874 | |
|---|
| 875 | if (InString.length != 0) { |
|---|
| 876 | while ((InString.charAt(InString.length - 1) == '\u0020') || (InString.charAt(InString.length - 1) == '\u000A') || (InString.charAt(InString.length - 1) == '\u000D')){ |
|---|
| 877 | InString = InString.substring(0, InString.length - 1) |
|---|
| 878 | } |
|---|
| 879 | |
|---|
| 880 | while ((InString.charAt(0) == '\u0020') || (InString.charAt(0) == '\u000A') || (InString.charAt(0) == '\u000D')){ |
|---|
| 881 | InString = InString.substring(1, InString.length) |
|---|
| 882 | } |
|---|
| 883 | |
|---|
| 884 | while (InString.indexOf(' ') != -1) { |
|---|
| 885 | x = InString.indexOf(' ') |
|---|
| 886 | InString = InString.substring(0, x) + InString.substring(x+1, InString.length) |
|---|
| 887 | } |
|---|
| 888 | |
|---|
| 889 | return InString; |
|---|
| 890 | } |
|---|
| 891 | |
|---|
| 892 | else { |
|---|
| 893 | return ''; |
|---|
| 894 | } |
|---|
| 895 | } |
|---|
| 896 | |
|---|
| 897 | function FindLongest(InArray){ |
|---|
| 898 | if (InArray.length < 1){return -1;} |
|---|
| 899 | |
|---|
| 900 | var Longest = 0; |
|---|
| 901 | for (var i=1; i<InArray.length; i++){ |
|---|
| 902 | if (InArray[i].length > InArray[Longest].length){ |
|---|
| 903 | Longest = i; |
|---|
| 904 | } |
|---|
| 905 | } |
|---|
| 906 | return Longest; |
|---|
| 907 | } |
|---|
| 908 | |
|---|
| 909 | //UNICODE CHARACTER FUNCTIONS |
|---|
| 910 | function IsCombiningDiacritic(CharNum){ |
|---|
| 911 | var Result = (((CharNum >= 0x0300)&&(CharNum <= 0x370))||((CharNum >= 0x20d0)&&(CharNum <= 0x20ff))); |
|---|
| 912 | Result = Result || (((CharNum >= 0x3099)&&(CharNum <= 0x309a))||((CharNum >= 0xfe20)&&(CharNum <= 0xfe23))); |
|---|
| 913 | return Result; |
|---|
| 914 | } |
|---|
| 915 | |
|---|
| 916 | function IsCJK(CharNum){ |
|---|
| 917 | return ((CharNum >= 0x3000)&&(CharNum < 0xd800)); |
|---|
| 918 | } |
|---|
| 919 | |
|---|
| 920 | //SETUP FUNCTIONS |
|---|
| 921 | //BROWSER WILL REFILL TEXT BOXES FROM CACHE IF NOT PREVENTED |
|---|
| 922 | function ClearTextBoxes(){ |
|---|
| 923 | var NList = document.getElementsByTagName('input'); |
|---|
| 924 | for (var i=0; i<NList.length; i++){ |
|---|
| 925 | if (NList[i].id.indexOf('Guess') > -1){ |
|---|
| 926 | NList[i].value = ''; |
|---|
| 927 | } |
|---|
| 928 | if (NList[i].id.indexOf('Chk') > -1){ |
|---|
| 929 | NList[i].checked = ''; |
|---|
| 930 | } |
|---|
| 931 | } |
|---|
| 932 | } |
|---|
| 933 | |
|---|
| 934 | //EXTENSION TO ARRAY OBJECT |
|---|
| 935 | function Array_IndexOf(Input){ |
|---|
| 936 | var Result = -1; |
|---|
| 937 | for (var i=0; i<this.length; i++){ |
|---|
| 938 | if (this[i] == Input){ |
|---|
| 939 | Result = i; |
|---|
| 940 | } |
|---|
| 941 | } |
|---|
| 942 | return Result; |
|---|
| 943 | } |
|---|
| 944 | Array.prototype.indexOf = Array_IndexOf; |
|---|
| 945 | |
|---|
| 946 | //IE HAS RENDERING BUG WITH BOTTOM NAVBAR |
|---|
| 947 | function RemoveBottomNavBarForIE(){ |
|---|
| 948 | if (C.ie){ |
|---|
| 949 | if (document.getElementById('BottomNavBar') != null){ |
|---|
| 950 | document.getElementById('TheBody').removeChild(document.getElementById('BottomNavBar')); |
|---|
| 951 | } |
|---|
| 952 | } |
|---|
| 953 | } |
|---|
| 954 | |
|---|
| 955 | |
|---|
| 956 | |
|---|
| 957 | |
|---|
| 958 | //HOTPOTNET-RELATED CODE |
|---|
| 959 | |
|---|
| 960 | var HPNStartTime = (new Date()).getTime(); |
|---|
| 961 | var SubmissionTimeout = 30000; |
|---|
| 962 | var Detail = ''; //Global that is used to submit tracking data |
|---|
| 963 | |
|---|
| 964 | function Finish(){ |
|---|
| 965 | //If there's a form, fill it out and submit it |
|---|
| 966 | if (document.store != null){ |
|---|
| 967 | Frm = document.store; |
|---|
| 968 | Frm.starttime.value = HPNStartTime; |
|---|
| 969 | Frm.endtime.value = (new Date()).getTime(); |
|---|
| 970 | Frm.mark.value = Score; |
|---|
| 971 | Frm.detail.value = Detail; |
|---|
| 972 | Frm.submit(); |
|---|
| 973 | } |
|---|
| 974 | } |
|---|
| 975 | |
|---|
| 976 | |
|---|
| 977 | |
|---|
| 978 | //JCLOZE CORE JAVASCRIPT CODE |
|---|
| 979 | |
|---|
| 980 | function ItemState(){ |
|---|
| 981 | this.ClueGiven = false; |
|---|
| 982 | this.HintsAndChecks = 0; |
|---|
| 983 | this.MatchedAnswerLength = 0; |
|---|
| 984 | this.ItemScore = 0; |
|---|
| 985 | this.AnsweredCorrectly = false; |
|---|
| 986 | this.Guesses = new Array(); |
|---|
| 987 | return this; |
|---|
| 988 | } |
|---|
| 989 | |
|---|
| 990 | var Feedback = ''; |
|---|
| 991 | var Correct = 'Correcto'; |
|---|
| 992 | var Incorrect = 'Algunas de sus respuestas no son correctas. Las respuestas incorrectas se han dejado en su sitio para que las corrija.'; |
|---|
| 993 | var GiveHint = 'La siguiente letra correcta ha sido añadida a la respuesta.'; |
|---|
| 994 | var CaseSensitive = false; |
|---|
| 995 | var YourScoreIs = 'Su puntuación es'; |
|---|
| 996 | var Finished = false; |
|---|
| 997 | var Locked = false; |
|---|
| 998 | var Score = 0; |
|---|
| 999 | var CurrentWord = 0; |
|---|
| 1000 | var Guesses = ''; |
|---|
| 1001 | |
|---|
| 1002 | I = new Array(); |
|---|
| 1003 | |
|---|
| 1004 | I[0] = new Array(); |
|---|
| 1005 | I[0][1] = new Array(); |
|---|
| 1006 | I[0][1][0] = new Array(); |
|---|
| 1007 | I[0][1][0][0] = '\u004A\u0043\u006C\u006F\u007A\u0065'; |
|---|
| 1008 | I[0][2]=''; |
|---|
| 1009 | |
|---|
| 1010 | I[1] = new Array(); |
|---|
| 1011 | I[1][1] = new Array(); |
|---|
| 1012 | I[1][1][0] = new Array(); |
|---|
| 1013 | I[1][1][0][0] = '\u0063\u006F\u006C\u006F\u0072\u0065\u0073'; |
|---|
| 1014 | I[1][2]=''; |
|---|
| 1015 | |
|---|
| 1016 | I[2] = new Array(); |
|---|
| 1017 | I[2][1] = new Array(); |
|---|
| 1018 | I[2][1][0] = new Array(); |
|---|
| 1019 | I[2][1][0][0] = '\u0048\u0054\u004D\u004C'; |
|---|
| 1020 | I[2][1][1] = new Array(); |
|---|
| 1021 | I[2][1][1][0]='\u0058\u0048\u0054\u004D\u004C'; |
|---|
| 1022 | I[2][2]=''; |
|---|
| 1023 | |
|---|
| 1024 | I[3] = new Array(); |
|---|
| 1025 | I[3][1] = new Array(); |
|---|
| 1026 | I[3][1][0] = new Array(); |
|---|
| 1027 | I[3][1][0][0] = '\u0070\u0072\u0065\u0067\u0075\u006E\u0074\u0061\u0073'; |
|---|
| 1028 | I[3][2]=''; |
|---|
| 1029 | |
|---|
| 1030 | |
|---|
| 1031 | State = new Array(); |
|---|
| 1032 | |
|---|
| 1033 | function StartUp(){ |
|---|
| 1034 | RemoveBottomNavBarForIE(); |
|---|
| 1035 | |
|---|
| 1036 | |
|---|
| 1037 | |
|---|
| 1038 | |
|---|
| 1039 | |
|---|
| 1040 | var i = 0; |
|---|
| 1041 | |
|---|
| 1042 | State.length = 0; |
|---|
| 1043 | for (i=0; i<I.length; i++){ |
|---|
| 1044 | State[i] = new ItemState(); |
|---|
| 1045 | } |
|---|
| 1046 | |
|---|
| 1047 | |
|---|
| 1048 | } |
|---|
| 1049 | |
|---|
| 1050 | function ShowClue(ItemNum){ |
|---|
| 1051 | if (Locked == true){return;} |
|---|
| 1052 | State[ItemNum].ClueGiven = true; |
|---|
| 1053 | ShowMessage(I[ItemNum][2]); |
|---|
| 1054 | } |
|---|
| 1055 | |
|---|
| 1056 | function SaveCurrentAnswers(){ |
|---|
| 1057 | var Ans = '' |
|---|
| 1058 | for (var i=0; i<I.length; i++){ |
|---|
| 1059 | Ans = GetGapValue(i); |
|---|
| 1060 | if ((Ans.length > 0)&&(Ans != State[i].Guesses[State[i].Guesses.length-1])){ |
|---|
| 1061 | State[i].Guesses[State[i].Guesses.length] = Ans; |
|---|
| 1062 | } |
|---|
| 1063 | } |
|---|
| 1064 | } |
|---|
| 1065 | |
|---|
| 1066 | function CompileGuesses(){ |
|---|
| 1067 | var F = document.getElementById('store'); |
|---|
| 1068 | if (F != null){ |
|---|
| 1069 | var Temp = '<?xml version="1.0"?><hpnetresult><fields>'; |
|---|
| 1070 | var GapLabel = ''; |
|---|
| 1071 | for (var i=0; i<State.length; i++){ |
|---|
| 1072 | GapLabel = 'Gap ' + (i+1).toString(); |
|---|
| 1073 | Temp += '<field><fieldname>' + GapLabel + '</fieldname>'; |
|---|
| 1074 | Temp += '<fieldtype>student-responses</fieldtype><fieldlabel>' + GapLabel + '</fieldlabel>'; |
|---|
| 1075 | Temp += '<fieldlabelid>JClozeStudentResponses</fieldlabelid><fielddata>'; |
|---|
| 1076 | for (var j=0; j<State[i].Guesses.length; j++){ |
|---|
| 1077 | if (j>0){Temp += '| ';} |
|---|
| 1078 | Temp += State[i].Guesses[j] + ' '; |
|---|
| 1079 | } |
|---|
| 1080 | Temp += '</fielddata></field>'; |
|---|
| 1081 | } |
|---|
| 1082 | Temp += '</fields></hpnetresult>'; |
|---|
| 1083 | F.detail.value = Temp; |
|---|
| 1084 | } |
|---|
| 1085 | } |
|---|
| 1086 | |
|---|
| 1087 | function CheckAnswers(){ |
|---|
| 1088 | if (Locked == true){return;} |
|---|
| 1089 | SaveCurrentAnswers(); |
|---|
| 1090 | var AllCorrect = true; |
|---|
| 1091 | |
|---|
| 1092 | //Check each answer |
|---|
| 1093 | for (var i = 0; i<I.length; i++){ |
|---|
| 1094 | |
|---|
| 1095 | if (State[i].AnsweredCorrectly == false){ |
|---|
| 1096 | //If it's right, calculate its score |
|---|
| 1097 | if (CheckAnswer(i, true) > -1){ |
|---|
| 1098 | var TotalChars = GetGapValue(i).length; |
|---|
| 1099 | State[i].ItemScore = (TotalChars-State[i].HintsAndChecks)/TotalChars; |
|---|
| 1100 | if (State[i].ClueGiven == true){State[i].ItemScore /= 2;} |
|---|
| 1101 | if (State[i].ItemScore <0 ){State[i].ItemScore = 0;} |
|---|
| 1102 | State[i].AnsweredCorrectly = true; |
|---|
| 1103 | //Drop the correct answer into the page, replacing the text box |
|---|
| 1104 | SetCorrectAnswer(i, GetGapValue(i)); |
|---|
| 1105 | } |
|---|
| 1106 | else{ |
|---|
| 1107 | //Otherwise, increment the hints for this item, as a penalty |
|---|
| 1108 | State[i].HintsAndChecks++; |
|---|
| 1109 | |
|---|
| 1110 | //then set the flag |
|---|
| 1111 | AllCorrect = false; |
|---|
| 1112 | } |
|---|
| 1113 | } |
|---|
| 1114 | } |
|---|
| 1115 | |
|---|
| 1116 | //Calculate the total score |
|---|
| 1117 | var TotalScore = 0; |
|---|
| 1118 | for (i=0; i<State.length; i++){ |
|---|
| 1119 | TotalScore += State[i].ItemScore; |
|---|
| 1120 | } |
|---|
| 1121 | TotalScore = Math.floor((TotalScore * 100)/I.length); |
|---|
| 1122 | |
|---|
| 1123 | //Compile the output |
|---|
| 1124 | Output = ''; |
|---|
| 1125 | |
|---|
| 1126 | if (AllCorrect == true){ |
|---|
| 1127 | Output = Correct + '<br />'; |
|---|
| 1128 | } |
|---|
| 1129 | |
|---|
| 1130 | Output += YourScoreIs + ' ' + TotalScore + '%.<br />'; |
|---|
| 1131 | if (AllCorrect == false){ |
|---|
| 1132 | Output += '<br />' + Incorrect; |
|---|
| 1133 | } |
|---|
| 1134 | ShowMessage(Output); |
|---|
| 1135 | setTimeout('WriteToInstructions(Output)', 50); |
|---|
| 1136 | |
|---|
| 1137 | Score = TotalScore; |
|---|
| 1138 | CompileGuesses(); |
|---|
| 1139 | |
|---|
| 1140 | if (AllCorrect==true){ |
|---|
| 1141 | |
|---|
| 1142 | |
|---|
| 1143 | |
|---|
| 1144 | Finished = true; |
|---|
| 1145 | setTimeout('Finish()', SubmissionTimeout); |
|---|
| 1146 | } |
|---|
| 1147 | } |
|---|
| 1148 | |
|---|
| 1149 | function TrackFocus(BoxNumber){ |
|---|
| 1150 | CurrentWord = BoxNumber; |
|---|
| 1151 | InTextBox = true; |
|---|
| 1152 | } |
|---|
| 1153 | |
|---|
| 1154 | function LeaveGap(){ |
|---|
| 1155 | InTextBox = false; |
|---|
| 1156 | } |
|---|
| 1157 | |
|---|
| 1158 | function CheckBeginning(Guess, Answer){ |
|---|
| 1159 | var OutString = ''; |
|---|
| 1160 | var i = 0; |
|---|
| 1161 | var UpperGuess = ''; |
|---|
| 1162 | var UpperAnswer = ''; |
|---|
| 1163 | |
|---|
| 1164 | if (CaseSensitive == false) { |
|---|
| 1165 | UpperGuess = Guess.toUpperCase(); |
|---|
| 1166 | UpperAnswer = Answer.toUpperCase(); |
|---|
| 1167 | } |
|---|
| 1168 | else { |
|---|
| 1169 | UpperGuess = Guess; |
|---|
| 1170 | UpperAnswer = Answer; |
|---|
| 1171 | } |
|---|
| 1172 | |
|---|
| 1173 | while (UpperGuess.charAt(i) == UpperAnswer.charAt(i)) { |
|---|
| 1174 | OutString += Guess.charAt(i); |
|---|
| 1175 | i++; |
|---|
| 1176 | } |
|---|
| 1177 | OutString += Answer.charAt(i); |
|---|
| 1178 | return OutString; |
|---|
| 1179 | } |
|---|
| 1180 | |
|---|
| 1181 | function GetGapValue(GNum){ |
|---|
| 1182 | var RetVal = ''; |
|---|
| 1183 | if ((GNum<0)||(GNum>=I.length)){return RetVal;} |
|---|
| 1184 | if (document.getElementById('Gap' + GNum) != null){ |
|---|
| 1185 | RetVal = document.getElementById('Gap' + GNum).value; |
|---|
| 1186 | RetVal = TrimString(RetVal); |
|---|
| 1187 | } |
|---|
| 1188 | else{ |
|---|
| 1189 | RetVal = State[GNum].Guesses[State[GNum].Guesses.length-1]; |
|---|
| 1190 | } |
|---|
| 1191 | return RetVal; |
|---|
| 1192 | } |
|---|
| 1193 | |
|---|
| 1194 | function SetGapValue(GNum, Val){ |
|---|
| 1195 | if ((GNum<0)||(GNum>=I.length)){return;} |
|---|
| 1196 | if (document.getElementById('Gap' + GNum) != null){ |
|---|
| 1197 | document.getElementById('Gap' + GNum).value = Val; |
|---|
| 1198 | document.getElementById('Gap' + GNum).focus(); |
|---|
| 1199 | } |
|---|
| 1200 | } |
|---|
| 1201 | |
|---|
| 1202 | function SetCorrectAnswer(GNum, Val){ |
|---|
| 1203 | if ((GNum<0)||(GNum>=I.length)){return;} |
|---|
| 1204 | if (document.getElementById('GapSpan' + GNum) != null){ |
|---|
| 1205 | document.getElementById('GapSpan' + GNum).innerHTML = Val; |
|---|
| 1206 | } |
|---|
| 1207 | } |
|---|
| 1208 | |
|---|
| 1209 | function FindCurrent() { |
|---|
| 1210 | var x = 0; |
|---|
| 1211 | FoundCurrent = -1; |
|---|
| 1212 | |
|---|
| 1213 | //Test the current word: |
|---|
| 1214 | //If its state is not set to already correct, check the word. |
|---|
| 1215 | if (State[CurrentWord].AnsweredCorrectly == false){ |
|---|
| 1216 | if (CheckAnswer(CurrentWord, false) < 0){ |
|---|
| 1217 | return CurrentWord; |
|---|
| 1218 | } |
|---|
| 1219 | } |
|---|
| 1220 | |
|---|
| 1221 | x=CurrentWord + 1; |
|---|
| 1222 | while (x<I.length){ |
|---|
| 1223 | if (State[x].AnsweredCorrectly == false){ |
|---|
| 1224 | if (CheckAnswer(x, false) < 0){ |
|---|
| 1225 | return x; |
|---|
| 1226 | } |
|---|
| 1227 | } |
|---|
| 1228 | x++; |
|---|
| 1229 | } |
|---|
| 1230 | |
|---|
| 1231 | x = 0; |
|---|
| 1232 | while (x<CurrentWord){ |
|---|
| 1233 | if (State[x].AnsweredCorrectly == false){ |
|---|
| 1234 | if (CheckAnswer(x, false) < 0){ |
|---|
| 1235 | return x; |
|---|
| 1236 | } |
|---|
| 1237 | } |
|---|
| 1238 | x++; |
|---|
| 1239 | } |
|---|
| 1240 | return FoundCurrent; |
|---|
| 1241 | } |
|---|
| 1242 | |
|---|
| 1243 | function CheckAnswer(GapNum, MarkAnswer){ |
|---|
| 1244 | var Guess = GetGapValue(GapNum); |
|---|
| 1245 | var UpperGuess = ''; |
|---|
| 1246 | var UpperAnswer = ''; |
|---|
| 1247 | if (CaseSensitive == false){ |
|---|
| 1248 | UpperGuess = Guess.toUpperCase(); |
|---|
| 1249 | } |
|---|
| 1250 | else{ |
|---|
| 1251 | UpperGuess = Guess; |
|---|
| 1252 | } |
|---|
| 1253 | var Match = -1; |
|---|
| 1254 | for (var i = 0; i<I[GapNum][1].length; i++){ |
|---|
| 1255 | if (CaseSensitive == false){ |
|---|
| 1256 | UpperAnswer = I[GapNum][1][i][0].toUpperCase(); |
|---|
| 1257 | } |
|---|
| 1258 | else{ |
|---|
| 1259 | UpperAnswer = I[GapNum][1][i][0]; |
|---|
| 1260 | } |
|---|
| 1261 | if (TrimString(UpperGuess) == UpperAnswer){ |
|---|
| 1262 | Match = i; |
|---|
| 1263 | if (MarkAnswer == true){ |
|---|
| 1264 | State[GapNum].AnsweredCorrectly = true; |
|---|
| 1265 | } |
|---|
| 1266 | } |
|---|
| 1267 | } |
|---|
| 1268 | return Match; |
|---|
| 1269 | } |
|---|
| 1270 | |
|---|
| 1271 | function GetHint(GapNum){ |
|---|
| 1272 | Guess = GetGapValue(GapNum); |
|---|
| 1273 | |
|---|
| 1274 | if (CheckAnswer(GapNum, false) > -1){return ''} |
|---|
| 1275 | RightBits = new Array(); |
|---|
| 1276 | for (var i=0; i<I[GapNum][1].length; i++){ |
|---|
| 1277 | RightBits[i] = CheckBeginning(Guess, I[GapNum][1][i][0]); |
|---|
| 1278 | } |
|---|
| 1279 | var RightOne = FindLongest(RightBits); |
|---|
| 1280 | var Result = I[GapNum][1][RightOne][0].substring(0,RightBits[RightOne].length); |
|---|
| 1281 | //Add another char if the last one is a space |
|---|
| 1282 | if (Result.charAt(Result.length-1) == ' '){ |
|---|
| 1283 | Result = I[GapNum][1][RightOne][0].substring(0,RightBits[RightOne].length+1); |
|---|
| 1284 | } |
|---|
| 1285 | return Result; |
|---|
| 1286 | } |
|---|
| 1287 | |
|---|
| 1288 | function ShowHint(){ |
|---|
| 1289 | if (Locked == true){return;} |
|---|
| 1290 | var CurrGap = FindCurrent(); |
|---|
| 1291 | if (CurrGap < 0){return;} |
|---|
| 1292 | |
|---|
| 1293 | var HintString = GetHint(CurrGap); |
|---|
| 1294 | |
|---|
| 1295 | if (HintString.length > 0){ |
|---|
| 1296 | SetGapValue(CurrGap, HintString); |
|---|
| 1297 | State[CurrGap][1] = State[CurrGap][1] + 1; |
|---|
| 1298 | } |
|---|
| 1299 | ShowMessage(GiveHint); |
|---|
| 1300 | } |
|---|
| 1301 | |
|---|
| 1302 | function TypeChars(Chars){ |
|---|
| 1303 | var CurrGap = FindCurrent(); |
|---|
| 1304 | if (CurrGap < 0){return;} |
|---|
| 1305 | SetGapValue(CurrGap, GetGapValue(CurrGap) + Chars); |
|---|
| 1306 | } |
|---|
| 1307 | |
|---|
| 1308 | |
|---|
| 1309 | |
|---|
| 1310 | |
|---|
| 1311 | |
|---|
| 1312 | |
|---|
| 1313 | |
|---|
| 1314 | |
|---|
| 1315 | //--> |
|---|
| 1316 | |
|---|
| 1317 | //]]> |
|---|
| 1318 | |
|---|
| 1319 | </script> |
|---|
| 1320 | |
|---|
| 1321 | |
|---|
| 1322 | </head> |
|---|
| 1323 | |
|---|
| 1324 | <body onload="StartUp()" id="TheBody"> |
|---|
| 1325 | |
|---|
| 1326 | <!-- BeginTopNavButtons --> |
|---|
| 1327 | |
|---|
| 1328 | |
|---|
| 1329 | <div class="NavButtonBar" id="TopNavBar"> |
|---|
| 1330 | |
|---|
| 1331 | |
|---|
| 1332 | |
|---|
| 1333 | |
|---|
| 1334 | |
|---|
| 1335 | |
|---|
| 1336 | <button class="NavButton" onfocus="NavBtnOver(this)" onblur="NavBtnOut(this)" onmouseover="NavBtnOver(this)" onmouseout="NavBtnOut(this)" onmousedown="NavBtnDown(this)" onmouseup="NavBtnOut(this)" onclick="location='jcross1.htm'; return false;">Siguiente ejemplo</button> |
|---|
| 1337 | |
|---|
| 1338 | |
|---|
| 1339 | </div> |
|---|
| 1340 | |
|---|
| 1341 | |
|---|
| 1342 | |
|---|
| 1343 | <!-- EndTopNavButtons --> |
|---|
| 1344 | |
|---|
| 1345 | <div class="Titles"> |
|---|
| 1346 | <h2 class="ExerciseTitle">Ejercicio de rellenar huecos con preguntas individuales</h2> |
|---|
| 1347 | <h3 class="ExerciseSubtitle">Ejercicios de rellenar huecos</h3> |
|---|
| 1348 | |
|---|
| 1349 | |
|---|
| 1350 | </div> |
|---|
| 1351 | |
|---|
| 1352 | <div id="InstructionsDiv" class="StdDiv"> |
|---|
| 1353 | <p id="Instructions">Complete los huecos, después pulse "Comprobar" para revisar sus respuestas. Utilice el botón "Pista" para averiguar una letra de la palabra si es que la palabra le resulta complicada. También puede pulsar en el botón "[?]" para ver una descripción de la palabra. ¡Tenga en cuenta que perderá puntos si solicita pistas o descripciones!</p> |
|---|
| 1354 | </div> |
|---|
| 1355 | |
|---|
| 1356 | |
|---|
| 1357 | |
|---|
| 1358 | |
|---|
| 1359 | |
|---|
| 1360 | <div id="MainDiv" class="StdDiv"> |
|---|
| 1361 | |
|---|
| 1362 | <!-- These top buttons hidden; reveal if required --> |
|---|
| 1363 | <!-- |
|---|
| 1364 | <button id="CheckButton1" class="FuncButton" onmouseover="FuncBtnOver(this)" onfocus="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onblur="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="CheckAnswers()"> Comprobar </button> |
|---|
| 1365 | |
|---|
| 1366 | |
|---|
| 1367 | <button class="FuncButton" onmouseover="FuncBtnOver(this)" onfocus="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onblur="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="ShowHint()"> Pista </button> |
|---|
| 1368 | |
|---|
| 1369 | |
|---|
| 1370 | --> |
|---|
| 1371 | |
|---|
| 1372 | <div id="ClozeDiv"> |
|---|
| 1373 | <form id="Cloze" method="post" action="" onsubmit="return false;"> |
|---|
| 1374 | <div class="ClozeBody"> |
|---|
| 1375 | <br /><ol><li>Este ejercicio se ha realizado con <span class="GapSpan" id="GapSpan0"><input type="text" id="Gap0" onfocus="TrackFocus(0)" onblur="LeaveGap()" class="GapBox" size="6"></input></span>.</li><li>Al igual que las demás aplicaciones de Hot Potatoes, JCloze le permite controlar los <span class="GapSpan" id="GapSpan1"><input type="text" id="Gap1" onfocus="TrackFocus(1)" onblur="LeaveGap()" class="GapBox" size="7"></input></span> de la página Web, así podrá cambiar la apariencia de sus páginas facilmente.</li><li>También puede introducir código <span class="GapSpan" id="GapSpan2"><input type="text" id="Gap2" onfocus="TrackFocus(2)" onblur="LeaveGap()" class="GapBox" size="6"></input></span> directamente en las programas de Hot Potatoes, para crear efectos como esta lista numerada de preguntas.</li><li>Si usted quiere crear una serie de <span class="GapSpan" id="GapSpan3"><input type="text" id="Gap3" onfocus="TrackFocus(3)" onblur="LeaveGap()" class="GapBox" size="9"></input></span> numeradas como ésta, pero quiere que los alumnos puedan comprobar las respuestas de una en una, deberá utilizar JQuiz en vez de JCloze.</li></ol> |
|---|
| 1376 | </div> |
|---|
| 1377 | </form> |
|---|
| 1378 | </div> |
|---|
| 1379 | |
|---|
| 1380 | |
|---|
| 1381 | <div class="Keypad"> |
|---|
| 1382 | |
|---|
| 1383 | </div> |
|---|
| 1384 | |
|---|
| 1385 | |
|---|
| 1386 | <button id="CheckButton2" class="FuncButton" onmouseover="FuncBtnOver(this)" onfocus="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onblur="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="CheckAnswers()"> Comprobar </button> |
|---|
| 1387 | |
|---|
| 1388 | |
|---|
| 1389 | <button class="FuncButton" onmouseover="FuncBtnOver(this)" onfocus="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onblur="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="ShowHint()"> Pista </button> |
|---|
| 1390 | |
|---|
| 1391 | |
|---|
| 1392 | </div> |
|---|
| 1393 | |
|---|
| 1394 | |
|---|
| 1395 | |
|---|
| 1396 | <div class="Feedback" id="FeedbackDiv"> |
|---|
| 1397 | <div class="FeedbackText" id="FeedbackContent"></div> |
|---|
| 1398 | <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> |
|---|
| 1399 | </div> |
|---|
| 1400 | |
|---|
| 1401 | <!-- BeginBottomNavButtons --> |
|---|
| 1402 | |
|---|
| 1403 | |
|---|
| 1404 | <div class="NavButtonBar" id="BottomNavBar"> |
|---|
| 1405 | |
|---|
| 1406 | |
|---|
| 1407 | |
|---|
| 1408 | |
|---|
| 1409 | |
|---|
| 1410 | |
|---|
| 1411 | <button class="NavButton" onfocus="NavBtnOver(this)" onblur="NavBtnOut(this)" onmouseover="NavBtnOver(this)" onmouseout="NavBtnOut(this)" onmousedown="NavBtnDown(this)" onmouseup="NavBtnOut(this)" onclick="location='jcross1.htm'; return false;">Siguiente ejemplo</button> |
|---|
| 1412 | |
|---|
| 1413 | |
|---|
| 1414 | </div> |
|---|
| 1415 | |
|---|
| 1416 | |
|---|
| 1417 | |
|---|
| 1418 | <!-- EndBottomNavButtons --> |
|---|
| 1419 | |
|---|
| 1420 | <!-- BeginSubmissionForm --> |
|---|
| 1421 | |
|---|
| 1422 | <!-- EndSubmissionForm --> |
|---|
| 1423 | |
|---|
| 1424 | </body> |
|---|
| 1425 | |
|---|
| 1426 | </html> |
|---|