Project

General

Profile

Bug #6738 ยป 2zonder_extra_bestanden.htm

dominique de guchtenaere, 03/10/2013 08:53

 
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 Dominique De Guchtenaere."></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="Dominique De Guchtenaere" />
8
<meta name="DC:Title" content="4seizoenen" />
9

    
10

    
11
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
12

    
13
<title>
14
4seizoenen
15
</title>
16

    
17
<!-- Made with executable version 6.2 Release 5 Build 1 -->
18

    
19
<!-- The following insertion allows you to add your own code directly to this head tag from the configuration screen -->
20

    
21

    
22

    
23
<style type="text/css">
24

    
25

    
26
/* This is the CSS stylesheet used in the exercise. */
27
/* Elements in square brackets are replaced by data based on configuration settings when the exercise is built. */
28

    
29
/* BeginCorePageCSS */
30

    
31
/* Made with executable version 6.2 Release 5 Build 1 */
32

    
33

    
34
/* Hack to hide a nested Quicktime player from IE, which can't handle it. */
35
* html object.MediaPlayerNotForIE {
36
	display: none;
37
}
38

    
39
body{
40
	font-family: Geneva,Arial,sans-serif;
41
	background-color: #C0C0C0;
42
	color: #000000;
43
 
44
	margin-right: 5%;
45
	margin-left: 5%;
46
	font-size: small;
47
}
48

    
49
p{
50
	text-align: left;
51
	margin: 0px;
52
	font-size: 100%;
53
}
54

    
55
table,div,span,td{
56
	font-size: 100%;
57
	color: #000000;
58
}
59

    
60
div.Titles{
61
	padding: 0.5em;;
62
	text-align: center;
63
	color: #000000;
64
}
65

    
66
button{
67
	font-family: Geneva,Arial,sans-serif;
68
	font-size: 100%;
69
	display: inline;
70
}
71

    
72
.ExerciseTitle{
73
	font-size: 140%;
74
	color: #000000;
75
}
76

    
77
.ExerciseSubtitle{
78
	font-size: 120%;
79
	color: #000000;
80
}
81

    
82
div.StdDiv{
83
	background-color: #FFFFFF;
84
	text-align: center;
85
	font-size: 100%;
86
	color: #000000;
87
	padding: 0.5em;
88
	border-style: solid;
89
	border-width: 1px 1px 1px 1px;
90
	border-color: #000000;
91
	margin-bottom: 1px;
92
}
93

    
94
/* EndCorePageCSS */
95

    
96
.RTLText{
97
	text-align: right;
98
	font-size: 150%;
99
	direction: rtl;
100
	font-family: "Simplified Arabic", "Traditional Arabic", "Times New Roman", Geneva,Arial,sans-serif; 
101
}
102

    
103
.CentredRTLText{
104
	text-align: center;
105
	font-size: 150%;
106
	direction: rtl;
107
	font-family: "Simplified Arabic", "Traditional Arabic", "Times New Roman", Geneva,Arial,sans-serif; 
108
}
109

    
110
button p.RTLText{
111
	text-align: center;
112
}
113

    
114
.RTLGapBox{
115
	text-align: right;
116
	font-size: 150%;
117
	direction: rtl;
118
	font-family: "Times New Roman", Geneva,Arial,sans-serif;
119
}
120

    
121
.Guess{
122
	font-weight: bold;
123
}
124

    
125
.CorrectAnswer{
126
	font-weight: bold;
127
}
128

    
129
div#Timer{
130
	padding: 0.25em;
131
	margin-left: auto;
132
	margin-right: auto;
133
	text-align: center;
134
	color: #000000;
135
}
136

    
137
span#TimerText{
138
	padding: 0.25em;
139
	border-width: 1px;
140
	border-style: solid;
141
	font-weight: bold;
142
	display: none;
143
	color: #000000;
144
}
145

    
146
span.Instructions{
147

    
148
}
149

    
150
div.ExerciseText{
151

    
152
}
153

    
154
.FeedbackText, .FeedbackText span.CorrectAnswer, .FeedbackText span.Guess, .FeedbackText span.Answer{
155
	color: #000000;
156
}
157

    
158
.LeftItem{
159
	font-size: 100%;
160
	color: #000000;
161
	text-align: left;
162
}
163

    
164
.RightItem{
165
	font-weight: bold;
166
	font-size: 100%;
167
	color: #000000;
168
}
169

    
170
span.CorrectMark{
171

    
172
}
173

    
174
input, textarea{
175
	font-family: Geneva,Arial,sans-serif;
176
	font-size: 120%;
177
}
178

    
179
select{
180
	font-size: 100%;
181
}
182

    
183
div.Feedback {
184
	background-color: #C0C0C0;
185
	left: 33%;
186
	width: 34%;
187
	top: 33%;
188
	z-index: 1;
189
	border-style: solid;
190
	border-width: 1px;
191
	padding: 5px;
192
	text-align: center;
193
	color: #000000;
194
	position: absolute;
195
	display: none;
196
	font-size: 100%;
197
}
198

    
199

    
200

    
201

    
202
div.ExerciseDiv{
203
	color: #000000;
204
}
205

    
206
/* JMatch flashcard styles */
207
table.FlashcardTable{
208
	background-color: transparent;
209
	color: #000000;
210
	border-color: #000000;
211
	margin-left: 5%;
212
	margin-right: 5%;
213
	margin-top: 2em;
214
	margin-bottom: 2em;
215
	width: 90%;
216
	position: relative;
217
	text-align: center;
218
	padding: 0px;
219
}
220

    
221
table.FlashcardTable tr{
222
	border-style: none;
223
	margin: 0px;
224
	padding: 0px;
225
	background-color: #FFFFFF;
226
}
227

    
228
table.FlashcardTable td.Showing{
229
	font-size: 140%;
230
	text-align: center;
231
	width: 50%;
232
	display: table-cell;
233
	padding: 2em;
234
	margin: 0px;
235
	border-style: solid;
236
	border-width: 1px;
237
	color: #000000;
238
	background-color: #FFFFFF;
239
}
240

    
241
table.FlashcardTable td.Hidden{
242
	display: none;
243
}
244

    
245
/* JMix styles */
246
div#SegmentDiv{
247
	margin-top: 2em;
248
	margin-bottom: 2em;
249
	text-align: center;
250
}
251

    
252
a.ExSegment{
253
	font-size: 120%;
254
	font-weight: bold;
255
	text-decoration: none;
256
	color: #000000;
257
}
258

    
259
span.RemainingWordList{
260
	font-style: italic;
261
}
262

    
263
div.DropLine {
264
	position: absolute;
265
	text-align: center;
266
	border-bottom-style: solid;
267
	border-bottom-width: 1px;
268
	border-bottom-color: #000000;
269
	width: 80%;
270
}
271

    
272
/* JCloze styles */
273

    
274
.ClozeWordList{
275
	text-align: center;
276
	font-weight: bold;
277
}
278

    
279
div.ClozeBody{
280
	text-align: left;
281
	margin-top: 2em;
282
	margin-bottom: 2em;
283
	line-height: 2.0
284
}
285

    
286
span.GapSpan{
287
	font-weight: bold;
288
}
289

    
290
/* JCross styles */
291

    
292
table.CrosswordGrid{
293
	margin: auto auto 1em auto;
294
	border-collapse: collapse;
295
	padding: 0px;
296
	background-color: #000000;
297
}
298

    
299
table.CrosswordGrid tbody tr td{
300
	width: 1.5em;
301
	height: 1.5em;
302
	text-align: center;
303
	vertical-align: middle;
304
	font-size: 140%;
305
	padding: 1px;
306
	margin: 0px;
307
	border-style: solid;
308
	border-width: 1px;
309
	border-color: #000000;
310
	color: #000000;
311
}
312

    
313
table.CrosswordGrid span{
314
	color: #000000;
315
}
316

    
317
table.CrosswordGrid td.BlankCell{
318
	background-color: #000000;
319
	color: #000000;
320
}
321

    
322
table.CrosswordGrid td.LetterOnlyCell{
323
	text-align: center;
324
	vertical-align: middle;
325
	background-color: #ffffff;
326
	color: #000000;
327
	font-weight: bold;
328
}
329

    
330
table.CrosswordGrid td.NumLetterCell{
331
	text-align: left;
332
	vertical-align: top;
333
	background-color: #ffffff;
334
	color: #000000;
335
	padding: 1px;
336
	font-weight: bold;
337
}
338

    
339
.NumLetterCellText{
340
	cursor: pointer;
341
	color: #000000;
342
}
343

    
344
.GridNum{
345
	vertical-align: super;
346
	font-size: 66%;
347
	font-weight: bold;
348
	text-decoration: none;
349
	color: #000000;
350
}
351

    
352
.GridNum:hover, .GridNum:visited{
353
	color: #000000;
354
}
355

    
356
table#Clues{
357
	margin: auto;
358
	vertical-align: top;
359
}
360

    
361
table#Clues td{
362
	vertical-align: top;
363
}
364

    
365
table.ClueList{
366
  margin: auto;
367
}
368

    
369
td.ClueNum{
370
	text-align: right;
371
	font-weight: bold;
372
	vertical-align: top;
373
}
374

    
375
td.Clue{
376
	text-align: left;
377
}
378

    
379
div#ClueEntry{
380
	text-align: left;
381
	margin-bottom: 1em;
382
}
383

    
384
/* Keypad styles */
385

    
386
div.Keypad{
387
	text-align: center;
388
	display: none; /* initially hidden, shown if needed */
389
	margin-bottom: 0.5em;
390
}
391

    
392
div.Keypad button{
393
	font-family: Geneva,Arial,sans-serif;
394
	font-size: 120%;
395
	background-color: #ffffff;
396
	color: #000000;
397
	width: 2em;
398
}
399

    
400
/* JQuiz styles */
401

    
402
div.QuestionNavigation{
403
	text-align: center;
404
}
405

    
406
.QNum{
407
	margin: 0em 1em 0.5em 1em;
408
	font-weight: bold;
409
	vertical-align: middle;
410
}
411

    
412
textarea{
413
	font-family: Geneva,Arial,sans-serif;
414
}
415

    
416
.QuestionText{
417
	text-align: left;
418
	margin: 0px;
419
	font-size: 100%;
420
}
421

    
422
.Answer{
423
	font-size: 120%;
424
	letter-spacing: 0.1em;
425
}
426

    
427
.PartialAnswer{
428
	font-size: 120%;
429
	letter-spacing: 0.1em;
430
	color: #000000;
431
}
432

    
433
.Highlight{
434
	color: #000000;
435
	background-color: #ffff00;
436
	font-weight: bold;
437
	font-size: 120%;
438
}
439

    
440
ol.QuizQuestions{
441
	text-align: left;
442
	list-style-type: none;
443
}
444

    
445
li.QuizQuestion{
446
	padding: 1em;
447
	border-style: solid;
448
	border-width: 0px 0px 1px 0px;
449
}
450

    
451
ol.MCAnswers{
452
	text-align: left;
453
	list-style-type: upper-alpha;
454
	padding: 1em;
455
}
456

    
457
ol.MCAnswers li{
458
	margin-bottom: 1em;
459
}
460

    
461
ol.MSelAnswers{
462
	text-align: left;
463
	list-style-type: lower-alpha;
464
	padding: 1em;
465
}
466

    
467
div.ShortAnswer{
468
	padding: 1em;
469
}
470

    
471
.FuncButton {
472
	text-align: center;
473
	border-style: solid;
474

    
475
	border-left-color: #ffffff;
476
	border-top-color: #ffffff;
477
	border-right-color: #7f7f7f;
478
	border-bottom-color: #7f7f7f;
479
	color: #000000;
480
	background-color: #FFFFFF;
481

    
482
	border-width: 2px;
483
	padding: 3px 6px 3px 6px;
484
	cursor: pointer;
485
}
486

    
487
.FuncButtonUp {
488
	color: #FFFFFF;
489
	text-align: center;
490
	border-style: solid;
491

    
492
	border-left-color: #ffffff;
493
	border-top-color: #ffffff;
494
	border-right-color: #7f7f7f;
495
	border-bottom-color: #7f7f7f;
496

    
497
	background-color: #000000;
498
	color: #FFFFFF;
499
	border-width: 2px;
500
	padding: 3px 6px 3px 6px;
501
	cursor: pointer;
502
}
503

    
504
.FuncButtonDown {
505
	color: #FFFFFF;
506
	text-align: center;
507
	border-style: solid;
508

    
509
	border-left-color: #7f7f7f;
510
	border-top-color: #7f7f7f;
511
	border-right-color: #ffffff;
512
	border-bottom-color: #ffffff;
513
	background-color: #000000;
514
	color: #FFFFFF;
515

    
516
	border-width: 2px;
517
	padding: 3px 6px 3px 6px;
518
	cursor: pointer;
519
}
520

    
521
/*BeginNavBarStyle*/
522

    
523
div.NavButtonBar{
524
	background-color: #000000;
525
	text-align: center;
526
	margin: 2px 0px 2px 0px;
527
	clear: both;
528
	font-size: 100%;
529
}
530

    
531
.NavButton {
532
	border-style: solid;
533
	
534
	border-left-color: #7f7f7f;
535
	border-top-color: #7f7f7f;
536
	border-right-color: #000000;
537
	border-bottom-color: #000000;
538
	background-color: #000000;
539
	color: #ffffff;
540

    
541
	border-width: 2px;
542
	cursor: pointer;	
543
}
544

    
545
.NavButtonUp {
546
	border-style: solid;
547

    
548
	border-left-color: #7f7f7f;
549
	border-top-color: #7f7f7f;
550
	border-right-color: #000000;
551
	border-bottom-color: #000000;
552
	color: #000000;
553
	background-color: #ffffff;
554

    
555
	border-width: 2px;
556
	cursor: pointer;	
557
}
558

    
559
.NavButtonDown {
560
	border-style: solid;
561

    
562
	border-left-color: #000000;
563
	border-top-color: #000000;
564
	border-right-color: #7f7f7f;
565
	border-bottom-color: #7f7f7f;
566
	color: #000000;
567
	background-color: #ffffff;
568

    
569
	border-width: 2px;
570
	cursor: pointer;	
571
}
572

    
573
/*EndNavBarStyle*/
574

    
575
a{
576
	color: #0000FF;
577
}
578

    
579
a:visited{
580
	color: #0000CC;
581
}
582

    
583
a:hover{
584
	color: #0000FF;
585
}
586

    
587
div.CardStyle {
588
	position: absolute;
589
	font-family: Geneva,Arial,sans-serif;
590
	font-size: 100%;
591
	padding: 5px;
592
	border-style: solid;
593
	border-width: 1px;
594
	color: #000000;
595
	background-color: #FFFFFF;
596
	left: -50px;
597
	top: -50px;
598
	overflow: visible;
599
}
600

    
601
.rtl{
602
	text-align: right;
603
	font-size: 140%;
604
}
605

    
606

    
607
</style>
608

    
609
<script type="text/javascript">
610

    
611
//<![CDATA[
612

    
613
<!--
614

    
615

    
616

    
617

    
618
function Client(){
619
//if not a DOM browser, hopeless

620
	this.min = false; if (document.getElementById){this.min = true;};
621

    
622
	this.ua = navigator.userAgent;
623
	this.name = navigator.appName;
624
	this.ver = navigator.appVersion;  
625

    
626
//Get data about the browser

627
	this.mac = (this.ver.indexOf('Mac') != -1);
628
	this.win = (this.ver.indexOf('Windows') != -1);
629

    
630
//Look for Gecko

631
	this.gecko = (this.ua.indexOf('Gecko') > 1);
632
	if (this.gecko){
633
		this.geckoVer = parseInt(this.ua.substring(this.ua.indexOf('Gecko')+6, this.ua.length));
634
		if (this.geckoVer < 20020000){this.min = false;}
635
	}
636
	
637
//Look for Firebird

638
	this.firebird = (this.ua.indexOf('Firebird') > 1);
639
	
640
//Look for Safari

641
	this.safari = (this.ua.indexOf('Safari') > 1);
642
	if (this.safari){
643
		this.gecko = false;
644
	}
645
	
646
//Look for IE

647
	this.ie = (this.ua.indexOf('MSIE') > 0);
648
	if (this.ie){
649
		this.ieVer = parseFloat(this.ua.substring(this.ua.indexOf('MSIE')+5, this.ua.length));
650
		if (this.ieVer < 5.5){this.min = false;}
651
	}
652
	
653
//Look for Opera

654
	this.opera = (this.ua.indexOf('Opera') > 0);
655
	if (this.opera){
656
		this.operaVer = parseFloat(this.ua.substring(this.ua.indexOf('Opera')+6, this.ua.length));
657
		if (this.operaVer < 7.04){this.min = false;}
658
	}
659
	if (this.min == false){
660
		alert('Your browser may not be able to handle this page.');
661
	}
662
	
663
//Special case for the horrible ie5mac

664
	this.ie5mac = (this.ie&&this.mac&&(this.ieVer<6));
665
}
666

    
667
var C = new Client();
668

    
669
//for (prop in C){

670
//	alert(prop + ': ' + C[prop]);

671
//}

672

    
673

    
674

    
675
//CODE FOR HANDLING NAV BUTTONS AND FUNCTION BUTTONS

676

    
677
//[strNavBarJS]

678
function NavBtnOver(Btn){
679
	if (Btn.className != 'NavButtonDown'){Btn.className = 'NavButtonUp';}
680
}
681

    
682
function NavBtnOut(Btn){
683
	Btn.className = 'NavButton';
684
}
685

    
686
function NavBtnDown(Btn){
687
	Btn.className = 'NavButtonDown';
688
}
689
//[/strNavBarJS]

690

    
691
function FuncBtnOver(Btn){
692
	if (Btn.className != 'FuncButtonDown'){Btn.className = 'FuncButtonUp';}
693
}
694

    
695
function FuncBtnOut(Btn){
696
	Btn.className = 'FuncButton';
697
}
698

    
699
function FuncBtnDown(Btn){
700
	Btn.className = 'FuncButtonDown';
701
}
702

    
703
function FocusAButton(){
704
	if (document.getElementById('CheckButton1') != null){
705
		document.getElementById('CheckButton1').focus();
706
	}
707
	else{
708
		if (document.getElementById('CheckButton2') != null){
709
			document.getElementById('CheckButton2').focus();
710
		}
711
		else{
712
			document.getElementsByTagName('button')[0].focus();
713
		}
714
	}
715
}
716

    
717

    
718

    
719

    
720
//CODE FOR HANDLING DISPLAY OF POPUP FEEDBACK BOX

721

    
722
var topZ = 1000;
723

    
724
function ShowMessage(Feedback){
725
	var Output = Feedback + '<br /><br />';
726
	document.getElementById('FeedbackContent').innerHTML = Output;
727
	var FDiv = document.getElementById('FeedbackDiv');
728
	topZ++;
729
	FDiv.style.zIndex = topZ;
730
	FDiv.style.top = TopSettingWithScrollOffset(30) + 'px';
731

    
732
	FDiv.style.display = 'block';
733

    
734
	ShowElements(false, 'input');
735
	ShowElements(false, 'select');
736
	ShowElements(false, 'object');
737
	ShowElements(true, 'object', 'FeedbackContent');
738

    
739
//Focus the OK button

740
	setTimeout("document.getElementById('FeedbackOKButton').focus()", 50);
741
	
742
//

743
}
744

    
745
function ShowElements(Show, TagName, ContainerToReverse){
746
// added third argument to allow objects in the feedback box to appear

747
//IE bug -- hide all the form elements that will show through the popup

748
//FF on Mac bug : doesn't redisplay objects whose visibility is set to visible

749
//unless the object's display property is changed

750

    
751
	//get container object (by Id passed in, or use document otherwise)

752
	TopNode = document.getElementById(ContainerToReverse);
753
	var Els;
754
	if (TopNode != null) {
755
		Els = TopNode.getElementsByTagName(TagName);
756
	} else {
757
		Els = document.getElementsByTagName(TagName);
758
	}
759

    
760
	for (var i=0; i<Els.length; i++){
761
		if (TagName == "object") {
762
			//manipulate object elements in all browsers

763
			if (Show == true){
764
				Els[i].style.visibility = 'visible';
765
				//get Mac FireFox to manipulate display, to force screen redraw

766
				if (C.mac && C.gecko) {Els[i].style.display = '';}
767
			}
768
			else{
769
				Els[i].style.visibility = 'hidden';
770
				if (C.mac && C.gecko) {Els[i].style.display = 'none';}
771
			}
772
		} 
773
		else {
774
			// tagName is either input or select (that is, Form Elements)

775
			// ie6 has a problem with Form elements, so manipulate those

776
			if (C.ie) {
777
				if (C.ieVer < 7) {
778
					if (Show == true){
779
						Els[i].style.visibility = 'visible';
780
					}
781
					else{
782
						Els[i].style.visibility = 'hidden';
783
					}
784
				}
785
			}
786
		}
787
	}
788
}
789

    
790

    
791

    
792
function HideFeedback(){
793
	document.getElementById('FeedbackDiv').style.display = 'none';
794
	ShowElements(true, 'input');
795
	ShowElements(true, 'select');
796
	ShowElements(true, 'object');
797
	if (Finished == true){
798
		Finish();
799
	}
800
}
801

    
802

    
803
//GENERAL UTILITY FUNCTIONS AND VARIABLES

804

    
805
//PAGE DIMENSION FUNCTIONS

806
function PageDim(){
807
//Get the page width and height

808
	this.W = 600;
809
	this.H = 400;
810
	this.W = document.getElementsByTagName('body')[0].clientWidth;
811
	this.H = document.getElementsByTagName('body')[0].clientHeight;
812
}
813

    
814
var pg = null;
815

    
816
function GetPageXY(El) {
817
	var XY = {x: 0, y: 0};
818
	while(El){
819
		XY.x += El.offsetLeft;
820
		XY.y += El.offsetTop;
821
		El = El.offsetParent;
822
	}
823
	return XY;
824
}
825

    
826
function GetScrollTop(){
827
	if (typeof(window.pageYOffset) == 'number'){
828
		return window.pageYOffset;
829
	}
830
	else{
831
		if ((document.body)&&(document.body.scrollTop)){
832
			return document.body.scrollTop;
833
		}
834
		else{
835
			if ((document.documentElement)&&(document.documentElement.scrollTop)){
836
				return document.documentElement.scrollTop;
837
			}
838
			else{
839
				return 0;
840
			}
841
		}
842
	}
843
}
844

    
845
function GetViewportHeight(){
846
	if (typeof window.innerHeight != 'undefined'){
847
		return window.innerHeight;
848
	}
849
	else{
850
		if (((typeof document.documentElement != 'undefined')&&(typeof document.documentElement.clientHeight !=
851
     'undefined'))&&(document.documentElement.clientHeight != 0)){
852
			return document.documentElement.clientHeight;
853
		}
854
		else{
855
			return document.getElementsByTagName('body')[0].clientHeight;
856
		}
857
	}
858
}
859

    
860
function TopSettingWithScrollOffset(TopPercent){
861
	var T = Math.floor(GetViewportHeight() * (TopPercent/100));
862
	return GetScrollTop() + T; 
863
}
864

    
865
//CODE FOR AVOIDING LOSS OF DATA WHEN BACKSPACE KEY INVOKES history.back()

866
var InTextBox = false;
867

    
868
function SuppressBackspace(e){ 
869
	if (InTextBox == true){return;}
870
	if (C.ie) {
871
		thisKey = window.event.keyCode;
872
	}
873
	else {
874
		thisKey = e.keyCode;
875
	}
876

    
877
	var Suppress = false;
878

    
879
	if (thisKey == 8) {
880
		Suppress = true;
881
	}
882

    
883
	if (Suppress == true){
884
		if (C.ie){
885
			window.event.returnValue = false;	
886
			window.event.cancelBubble = true;
887
		}
888
		else{
889
			e.preventDefault();
890
		}
891
	}
892
}
893

    
894
if (C.ie){
895
	document.attachEvent('onkeydown',SuppressBackspace);
896
	window.attachEvent('onkeydown',SuppressBackspace);
897
}
898
else{
899
	if (window.addEventListener){
900
		window.addEventListener('keypress',SuppressBackspace,false);
901
	}
902
}
903

    
904
function ReduceItems(InArray, ReduceToSize){
905
	var ItemToDump=0;
906
	var j=0;
907
	while (InArray.length > ReduceToSize){
908
		ItemToDump = Math.floor(InArray.length*Math.random());
909
		InArray.splice(ItemToDump, 1);
910
	}
911
}
912

    
913
function Shuffle(InArray){
914
	var Num;
915
	var Temp = new Array();
916
	var Len = InArray.length;
917

    
918
	var j = Len;
919

    
920
	for (var i=0; i<Len; i++){
921
		Temp[i] = InArray[i];
922
	}
923

    
924
	for (i=0; i<Len; i++){
925
		Num = Math.floor(j  *  Math.random());
926
		InArray[i] = Temp[Num];
927

    
928
		for (var k=Num; k < (j-1); k++) {
929
			Temp[k] = Temp[k+1];
930
		}
931
		j--;
932
	}
933
	return InArray;
934
}
935

    
936
function WriteToInstructions(Feedback) {
937
	document.getElementById('InstructionsDiv').innerHTML = Feedback;
938

    
939
}
940

    
941

    
942

    
943

    
944
function EscapeDoubleQuotes(InString){
945
	return InString.replace(/"/g, '&quot;')
946
}
947

    
948
function TrimString(InString){
949
        var x = 0;
950

    
951
        if (InString.length != 0) {
952
                while ((InString.charAt(InString.length - 1) == '\u0020') || (InString.charAt(InString.length - 1) == '\u000A') || (InString.charAt(InString.length - 1) == '\u000D')){
953
                        InString = InString.substring(0, InString.length - 1)
954
                }
955

    
956
                while ((InString.charAt(0) == '\u0020') || (InString.charAt(0) == '\u000A') || (InString.charAt(0) == '\u000D')){
957
                        InString = InString.substring(1, InString.length)
958
                }
959

    
960
                while (InString.indexOf('  ') != -1) {
961
                        x = InString.indexOf('  ')
962
                        InString = InString.substring(0, x) + InString.substring(x+1, InString.length)
963
                 }
964

    
965
                return InString;
966
        }
967

    
968
        else {
969
                return '';
970
        }
971
}
972

    
973
function FindLongest(InArray){
974
	if (InArray.length < 1){return -1;}
975

    
976
	var Longest = 0;
977
	for (var i=1; i<InArray.length; i++){
978
		if (InArray[i].length > InArray[Longest].length){
979
			Longest = i;
980
		}
981
	}
982
	return Longest;
983
}
984

    
985
//UNICODE CHARACTER FUNCTIONS

986
function IsCombiningDiacritic(CharNum){
987
	var Result = (((CharNum >= 0x0300)&&(CharNum <= 0x370))||((CharNum >= 0x20d0)&&(CharNum <= 0x20ff)));
988
	Result = Result || (((CharNum >= 0x3099)&&(CharNum <= 0x309a))||((CharNum >= 0xfe20)&&(CharNum <= 0xfe23)));
989
	return Result;
990
}
991

    
992
function IsCJK(CharNum){
993
	return ((CharNum >= 0x3000)&&(CharNum < 0xd800));
994
}
995

    
996
//SETUP FUNCTIONS

997
//BROWSER WILL REFILL TEXT BOXES FROM CACHE IF NOT PREVENTED

998
function ClearTextBoxes(){
999
	var NList = document.getElementsByTagName('input');
1000
	for (var i=0; i<NList.length; i++){
1001
		if ((NList[i].id.indexOf('Guess') > -1)||(NList[i].id.indexOf('Gap') > -1)){
1002
			NList[i].value = '';
1003
		}
1004
		if (NList[i].id.indexOf('Chk') > -1){
1005
			NList[i].checked = '';
1006
		}
1007
	}
1008
}
1009

    
1010
//EXTENSION TO ARRAY OBJECT

1011
function Array_IndexOf(Input){
1012
	var Result = -1;
1013
	for (var i=0; i<this.length; i++){
1014
		if (this[i] == Input){
1015
			Result = i;
1016
		}
1017
	}
1018
	return Result;
1019
}
1020
Array.prototype.indexOf = Array_IndexOf;
1021

    
1022
//IE HAS RENDERING BUG WITH BOTTOM NAVBAR

1023
function RemoveBottomNavBarForIE(){
1024
	if ((C.ie)&&(document.getElementById('Reading') != null)){
1025
		if (document.getElementById('BottomNavBar') != null){
1026
			document.getElementById('TheBody').removeChild(document.getElementById('BottomNavBar'));
1027
		}
1028
	}
1029
}
1030

    
1031

    
1032

    
1033

    
1034
//HOTPOTNET-RELATED CODE

1035

    
1036
var HPNStartTime = (new Date()).getTime();
1037
var SubmissionTimeout = 30000;
1038
var Detail = ''; //Global that is used to submit tracking data

1039

    
1040
function Finish(){
1041
//If there's a form, fill it out and submit it

1042
	if (document.store != null){
1043
		Frm = document.store;
1044
		Frm.starttime.value = HPNStartTime;
1045
		Frm.endtime.value = (new Date()).getTime();
1046
		Frm.mark.value = Score;
1047
		Frm.detail.value = Detail;
1048
		Frm.submit();
1049
	}
1050
}
1051

    
1052

    
1053

    
1054

    
1055

    
1056
//JCLOZE CORE JAVASCRIPT CODE

1057

    
1058
function ItemState(){
1059
	this.ClueGiven = false;
1060
	this.HintsAndChecks = 0;
1061
	this.MatchedAnswerLength = 0;
1062
	this.ItemScore = 0;
1063
	this.AnsweredCorrectly = false;
1064
	this.Guesses = new Array();
1065
	return this;
1066
}
1067

    
1068
var Feedback = '';
1069
var Correct = 'Correct! Well done.';
1070
var Incorrect = 'Some of your answers are incorrect. Incorrect answers have been left in place for you to change.'; 
1071
var GiveHint = 'The next correct letter has been added to the answer.';
1072
var CaseSensitive = false;
1073
var YourScoreIs = 'Your score is ';
1074
var Finished = false;
1075
var Locked = false;
1076
var Score = 0;
1077
var CurrentWord = 0;
1078
var Guesses = '';
1079
var TimeOver = false;
1080

    
1081
I = new Array();
1082

    
1083
I[0] = new Array();
1084
I[0][1] = new Array();
1085
I[0][1][0] = new Array();
1086
I[0][1][0][0] = '\u0076\u0069\u0065\u0072';
1087
I[0][2]='';
1088

    
1089

    
1090
State = new Array();
1091

    
1092
function StartUp(){
1093
	RemoveBottomNavBarForIE();
1094
//Show a keypad if there is one	(added bugfix for 6.0.4.12)

1095
	if (document.getElementById('CharacterKeypad') != null){
1096
		document.getElementById('CharacterKeypad').style.display = 'block';
1097
	}
1098
	
1099

    
1100

    
1101

    
1102

    
1103

    
1104

    
1105
	var i = 0;
1106

    
1107
	State.length = 0;
1108
	for (i=0; i<I.length; i++){
1109
		State[i] = new ItemState();
1110
	}
1111
	
1112
	ClearTextBoxes();
1113
	
1114

    
1115

    
1116
}
1117

    
1118
function ShowClue(ItemNum){
1119
	if (Locked == true){return;}
1120
	State[ItemNum].ClueGiven = true;
1121
	ShowMessage(I[ItemNum][2]);
1122
}
1123

    
1124
function SaveCurrentAnswers(){
1125
	var Ans = '';
1126
	for (var i=0; i<I.length; i++){
1127
		Ans = GetGapValue(i);
1128
		if ((Ans.length > 0)&&(Ans != State[i].Guesses[State[i].Guesses.length-1])){
1129
			State[i].Guesses[State[i].Guesses.length] = Ans;
1130
		}
1131
	}
1132
}
1133

    
1134
function CompileGuesses(){
1135
	var F = document.getElementById('store');
1136
	if (F != null){
1137
		var Temp = '<?xml version="1.0"?><hpnetresult><fields>';
1138
		var GapLabel = '';
1139
		for (var i=0; i<State.length; i++){
1140
			GapLabel = 'Gap ' + (i+1).toString();
1141
			Temp += '<field><fieldname>' + GapLabel + '</fieldname>';
1142
			Temp += '<fieldtype>student-responses</fieldtype><fieldlabel>' + GapLabel + '</fieldlabel>';
1143
			Temp += '<fieldlabelid>JClozeStudentResponses</fieldlabelid><fielddata>';
1144
			for (var j=0; j<State[i].Guesses.length; j++){
1145
				if (j>0){Temp += '| ';}
1146
				Temp += State[i].Guesses[j] + ' ';	
1147
			}	
1148
  		Temp += '</fielddata></field>';
1149
		}
1150
		Temp += '</fields></hpnetresult>';
1151
		Detail = Temp;
1152
	}
1153
}
1154

    
1155
function CheckAnswers(){
1156
	if (Locked == true){return;}
1157
	SaveCurrentAnswers();
1158
	var AllCorrect = true;
1159

    
1160
//Check each answer

1161
	for (var i = 0; i<I.length; i++){
1162

    
1163
		if (State[i].AnsweredCorrectly == false){
1164
//If it's right, calculate its score

1165
			if (CheckAnswer(i, true) > -1){
1166
				var TotalChars = GetGapValue(i).length;
1167
				State[i].ItemScore = (TotalChars-State[i].HintsAndChecks)/TotalChars;
1168
				if (State[i].ClueGiven == true){State[i].ItemScore /= 2;}
1169
				if (State[i].ItemScore <0 ){State[i].ItemScore = 0;}
1170
				State[i].AnsweredCorrectly = true;
1171
//Drop the correct answer into the page, replacing the text box

1172
				SetCorrectAnswer(i, GetGapValue(i));
1173
			}
1174
			else{
1175
//Otherwise, increment the hints for this item, as a penalty

1176
				State[i].HintsAndChecks++;
1177

    
1178
//then set the flag

1179
				AllCorrect = false;
1180
			}
1181
		}
1182
	}
1183

    
1184
//Calculate the total score

1185
	var TotalScore = 0;
1186
	for (i=0; i<State.length; i++){
1187
		TotalScore += State[i].ItemScore;
1188
	}
1189
	TotalScore = Math.floor((TotalScore * 100)/I.length);
1190

    
1191
//Compile the output

1192
	Output = '';
1193

    
1194
	if (AllCorrect == true){
1195
		Output = Correct + '<br />';
1196
	}
1197

    
1198
	Output += YourScoreIs + ' ' + TotalScore + '%.<br />';
1199
	if (AllCorrect == false){
1200
		Output += '<br />' + Incorrect;
1201
	}
1202
	ShowMessage(Output);
1203
	setTimeout('WriteToInstructions(Output)', 50);
1204
	
1205
	Score = TotalScore;
1206
	CompileGuesses();
1207
	
1208
	if ((AllCorrect == true)||(Finished == true)){
1209
	
1210

    
1211

    
1212
		TimeOver = true;
1213
		Locked = true;
1214
		Finished = true;
1215
		setTimeout('Finish()', SubmissionTimeout);
1216
	}
1217

    
1218
}
1219

    
1220
function TrackFocus(BoxNumber){
1221
	CurrentWord = BoxNumber;
1222
	InTextBox = true;
1223
}
1224

    
1225
function LeaveGap(){
1226
	InTextBox = false;
1227
}
1228

    
1229
function CheckBeginning(Guess, Answer){
1230
	var OutString = '';
1231
	var i = 0;
1232
	var UpperGuess = '';
1233
	var UpperAnswer = '';
1234

    
1235
	if (CaseSensitive == false) {
1236
		UpperGuess = Guess.toUpperCase();
1237
		UpperAnswer = Answer.toUpperCase();
1238
	}
1239
	else {
1240
		UpperGuess = Guess;
1241
		UpperAnswer = Answer;
1242
	}
1243

    
1244
	while (UpperGuess.charAt(i) == UpperAnswer.charAt(i)) {
1245
		OutString += Guess.charAt(i);
1246
		i++;
1247
	}
1248
	OutString += Answer.charAt(i);
1249
	return OutString;
1250
}
1251

    
1252
function GetGapValue(GNum){
1253
	var RetVal = '';
1254
	if ((GNum<0)||(GNum>=I.length)){return RetVal;}
1255
	if (document.getElementById('Gap' + GNum) != null){
1256
		RetVal = document.getElementById('Gap' + GNum).value;
1257
		RetVal = TrimString(RetVal);
1258
	}
1259
	else{
1260
		RetVal = State[GNum].Guesses[State[GNum].Guesses.length-1];
1261
	}
1262
	return RetVal;
1263
}
1264

    
1265
function SetGapValue(GNum, Val){
1266
	if ((GNum<0)||(GNum>=I.length)){return;}
1267
	if (document.getElementById('Gap' + GNum) != null){
1268
		document.getElementById('Gap' + GNum).value = Val;
1269
		document.getElementById('Gap' + GNum).focus();
1270
	}
1271
}
1272

    
1273
function SetCorrectAnswer(GNum, Val){
1274
	if ((GNum<0)||(GNum>=I.length)){return;}
1275
	if (document.getElementById('GapSpan' + GNum) != null){
1276
		document.getElementById('GapSpan' + GNum).innerHTML = Val;
1277
	}
1278
}
1279

    
1280
function FindCurrent() {
1281
	var x = 0;
1282
	FoundCurrent = -1;
1283

    
1284
//Test the current word:

1285
//If its state is not set to already correct, check the word.

1286
	if (State[CurrentWord].AnsweredCorrectly == false){
1287
		if (CheckAnswer(CurrentWord, false) < 0){
1288
			return CurrentWord;
1289
		}
1290
	}
1291
	
1292
	x=CurrentWord + 1;
1293
	while (x<I.length){
1294
		if (State[x].AnsweredCorrectly == false){
1295
			if (CheckAnswer(x, false) < 0){
1296
				return x;
1297
			}
1298
		}
1299
	x++;	
1300
	}
1301

    
1302
	x = 0;
1303
	while (x<CurrentWord){
1304
		if (State[x].AnsweredCorrectly == false){
1305
			if (CheckAnswer(x, false) < 0){
1306
				return x;
1307
			}
1308
		}
1309
	x++;	
1310
	}
1311
	return FoundCurrent;
1312
}
1313

    
1314
function CheckAnswer(GapNum, MarkAnswer){
1315
	var Guess = GetGapValue(GapNum);
1316
	var UpperGuess = '';
1317
	var UpperAnswer = '';
1318
	if (CaseSensitive == false){
1319
		UpperGuess = Guess.toUpperCase();
1320
	}
1321
	else{
1322
		UpperGuess = Guess;
1323
	}
1324
	var Match = -1;
1325
	for (var i = 0; i<I[GapNum][1].length; i++){
1326
		if (CaseSensitive == false){
1327
			UpperAnswer = I[GapNum][1][i][0].toUpperCase();
1328
		}
1329
		else{
1330
			UpperAnswer = I[GapNum][1][i][0];
1331
		}
1332
		if (TrimString(UpperGuess) == UpperAnswer){
1333
			Match = i;
1334
			if (MarkAnswer == true){
1335
				State[GapNum].AnsweredCorrectly = true;
1336
			}
1337
		}
1338
	}
1339
	return Match;
1340
}
1341

    
1342
function GetHint(GapNum){
1343
	Guess = GetGapValue(GapNum);
1344

    
1345
	if (CheckAnswer(GapNum, false) > -1){return ''}
1346
	RightBits = new Array();
1347
	for (var i=0; i<I[GapNum][1].length; i++){
1348
		RightBits[i] = CheckBeginning(Guess, I[GapNum][1][i][0]);
1349
	}
1350
	var RightOne = FindLongest(RightBits);
1351
	var Result = I[GapNum][1][RightOne][0].substring(0,RightBits[RightOne].length);
1352
//Add another char if the last one is a space

1353
	if (Result.charAt(Result.length-1) == ' '){
1354
		Result = I[GapNum][1][RightOne][0].substring(0,RightBits[RightOne].length+1);
1355
	}
1356
	return Result;
1357
}
1358

    
1359
function ShowHint(){
1360
	if (document.getElementById('FeedbackDiv').style.display == 'block'){return;}
1361
	if (Locked == true){return;}
1362
	var CurrGap = FindCurrent();
1363
	if (CurrGap < 0){return;}
1364

    
1365
	var HintString = GetHint(CurrGap);
1366

    
1367
	if (HintString.length > 0){
1368
		SetGapValue(CurrGap, HintString);
1369
		State[CurrGap].HintsAndChecks += 1;
1370
	}
1371
	ShowMessage(GiveHint);
1372
}
1373

    
1374
function TypeChars(Chars){
1375
	var CurrGap = FindCurrent();
1376
	if (CurrGap < 0){return;}
1377
	if (document.getElementById('Gap' + CurrGap) != null){
1378
		SetGapValue(CurrGap, document.getElementById('Gap' + CurrGap).value + Chars);
1379
	}
1380
}
1381

    
1382

    
1383

    
1384

    
1385

    
1386

    
1387

    
1388

    
1389
//-->

1390

    
1391
//]]>

1392

    
1393
</script>
1394

    
1395

    
1396
</head>
1397

    
1398
<body onload="StartUp()" id="TheBody" >
1399

    
1400
<!-- BeginTopNavButtons -->
1401

    
1402

    
1403
<div class="NavButtonBar" id="TopNavBar">
1404

    
1405

    
1406

    
1407

    
1408
<button class="NavButton" onfocus="NavBtnOver(this)" onblur="NavBtnOut(this)"  onmouseover="NavBtnOver(this)" onmouseout="NavBtnOut(this)" onmousedown="NavBtnDown(this)" onmouseup="NavBtnOut(this)" onclick="location='contents.htm'; return false;"> Index </button>
1409

    
1410

    
1411

    
1412
<button class="NavButton" onfocus="NavBtnOver(this)" onblur="NavBtnOut(this)" onmouseover="NavBtnOver(this)" onmouseout="NavBtnOut(this)" onmousedown="NavBtnDown(this)" onmouseup="NavBtnOut(this)" onclick="location='nextpage.htm'; return false;">=&gt;</button>
1413

    
1414

    
1415
</div>
1416

    
1417

    
1418

    
1419
<!-- EndTopNavButtons -->
1420

    
1421
<div class="Titles">
1422
	<h2 class="ExerciseTitle">4seizoenen</h2>
1423

    
1424
	<h3 class="ExerciseSubtitle">Gap-fill exercise</h3>
1425

    
1426

    
1427

    
1428
</div>
1429

    
1430
<div id="InstructionsDiv" class="StdDiv">
1431
	<div id="Instructions">Fill in all the gaps, then press "Check" to check your answers. Use the "Hint" button to get a free letter if an answer is giving you trouble. You can also click on the "[?]" button to get a clue. Note that you will lose points if you ask for hints or clues!</div>
1432
</div>
1433

    
1434

    
1435

    
1436

    
1437

    
1438
<div id="MainDiv" class="StdDiv">
1439

    
1440
<!-- These top buttons hidden; reveal if required -->
1441
<!--

1442
<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()">&nbsp;Check&nbsp;</button>

1443


1444


1445
<button class="FuncButton" onmouseover="FuncBtnOver(this)" onfocus="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onblur="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="ShowHint()">&nbsp;Hint&nbsp;</button>

1446


1447


1448
 -->
1449
 
1450
<div id="ClozeDiv">
1451
<form id="Cloze" method="post" action="" onsubmit="return false;">
1452
<div class="ClozeBody">
1453
de <span class="GapSpan" id="GapSpan0"><input type="text" id="Gap0" onfocus="TrackFocus(0)" onblur="LeaveGap()" class="GapBox" size="6"></input></span> seizoenen 
1454
</div>
1455
</form>
1456
</div>
1457

    
1458

    
1459

    
1460
<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()">&nbsp;Check&nbsp;</button>
1461

    
1462

    
1463
<button class="FuncButton" onmouseover="FuncBtnOver(this)" onfocus="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onblur="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)" onclick="ShowHint()">&nbsp;Hint&nbsp;</button>
1464

    
1465

    
1466
</div>
1467

    
1468

    
1469

    
1470
<div class="Feedback" id="FeedbackDiv">
1471
<div class="FeedbackText" id="FeedbackContent"></div>
1472
<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;">&nbsp;OK&nbsp;</button>
1473
</div>
1474

    
1475
<!-- BeginBottomNavButtons -->
1476

    
1477

    
1478
<div class="NavButtonBar" id="BottomNavBar">
1479

    
1480

    
1481

    
1482

    
1483
<button class="NavButton" onfocus="NavBtnOver(this)" onblur="NavBtnOut(this)"  onmouseover="NavBtnOver(this)" onmouseout="NavBtnOut(this)" onmousedown="NavBtnDown(this)" onmouseup="NavBtnOut(this)" onclick="location='contents.htm'; return false;"> Index </button>
1484

    
1485

    
1486

    
1487
<button class="NavButton" onfocus="NavBtnOver(this)" onblur="NavBtnOut(this)" onmouseover="NavBtnOver(this)" onmouseout="NavBtnOut(this)" onmousedown="NavBtnDown(this)" onmouseup="NavBtnOut(this)" onclick="location='nextpage.htm'; return false;">=&gt;</button>
1488

    
1489

    
1490
</div>
1491

    
1492

    
1493

    
1494
<!-- EndBottomNavButtons -->
1495

    
1496
<!-- BeginSubmissionForm -->
1497

    
1498
<!-- EndSubmissionForm -->
1499

    
1500
</body>
1501

    
1502
</html>
    (1-1/1)