~sis-ma/dhis2/SISMA-362

« back to all changes in this revision

Viewing changes to local/in/dhis-web-linelisting-in/src/main/webapp/dhis-web-linelisting-in/javascript/general.js

committing recent india modules

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
// -----------------------------------------------------------------------------
 
3
// $Id: general.js 4486 2008-02-01 21:23:06Z larshelg $
 
4
// -----------------------------------------------------------------------------
 
5
// Selection
 
6
// -----------------------------------------------------------------------------
 
7
 
 
8
function organisationUnitSelected( orgUnits )
 
9
{
 
10
    window.location.href = 'select.action';
 
11
}
 
12
 
 
13
selection.setListenerFunction( organisationUnitSelected );
 
14
 
 
15
function changeOrder()
 
16
{
 
17
    window.open( 'getDataElementOrder.action', '_blank', 'width=700,height=500,scrollbars=yes' );
 
18
}
 
19
 
 
20
// -----------------------------------------------------------------------------
 
21
// Comments
 
22
// -----------------------------------------------------------------------------
 
23
 
 
24
function commentSelected( dataElementId )
 
25
{
 
26
    var commentSelector = document.getElementById( 'value[' + dataElementId + '].comments' );
 
27
    var commentField = document.getElementById( 'value[' + dataElementId + '].comment' );
 
28
 
 
29
    var value = commentSelector.options[commentSelector.selectedIndex].value;
 
30
    
 
31
    if ( value == 'custom' )
 
32
    {
 
33
        commentSelector.style.display = 'none';
 
34
        commentField.style.display = 'inline';
 
35
        
 
36
        commentField.select();
 
37
        commentField.focus();
 
38
    }
 
39
    else
 
40
    {
 
41
        commentField.value = value;
 
42
        
 
43
        saveComment( dataElementId, value );
 
44
    }
 
45
}
 
46
 
 
47
function commentLeft( dataElementId )
 
48
{
 
49
    var commentField = document.getElementById( 'value[' + dataElementId + '].comment' );
 
50
    var commentSelector = document.getElementById( 'value[' + dataElementId + '].comments' );
 
51
 
 
52
    saveComment( dataElementId, commentField.value );
 
53
 
 
54
    var value = commentField.value;
 
55
    
 
56
    if ( value == '' )
 
57
    {
 
58
        commentField.style.display = 'none';
 
59
        commentSelector.style.display = 'inline';
 
60
 
 
61
        commentSelector.selectedIndex = 0;
 
62
    }
 
63
}
 
64
 
 
65
// -----------------------------------------------------------------------------
 
66
// String Trim
 
67
// -----------------------------------------------------------------------------
 
68
 
 
69
function trim( stringToTrim ) 
 
70
{
 
71
    return stringToTrim.replace(/^\s+|\s+$/g,"");
 
72
}
 
73
 
 
74
// -----------------------------------------------------------------------------
 
75
// Linelisting LiveBirth Related Methods for Validation
 
76
// -----------------------------------------------------------------------------
 
77
 
 
78
function isLLBNameFiledEntered( recordNo )
 
79
{
 
80
    var dataElementId = 1020;
 
81
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
82
    var resVal = field.value;
 
83
 
 
84
    if(resVal == null || resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "" )
 
85
    {
 
86
        alert("Please enter NAME");
 
87
        return false;
 
88
    }
 
89
    else
 
90
    {
 
91
        return true;
 
92
    }
 
93
}
 
94
 
 
95
function isLLBVillageFiledEntered( recordNo )
 
96
{
 
97
    var dataElementId = 1021;
 
98
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
99
    var resVal = field.value;
 
100
 
 
101
    if(resVal == null || resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "" )
 
102
    {
 
103
        alert("Please enter VILLAGE");
 
104
        return false;
 
105
    }
 
106
    else
 
107
    {
 
108
        return true;
 
109
    }
 
110
}
 
111
 
 
112
function isLLBSexFieldEntered( recordNo )
 
113
{
 
114
  
 
115
    var dataElementId = 1022;
 
116
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
117
    var resVal = field.selectedIndex;
 
118
  
 
119
    if(resVal <= 0)
 
120
    {
 
121
        alert("Please enter SEX");
 
122
    
 
123
        return false
 
124
    }
 
125
  
 
126
    return true;
 
127
}
 
128
 
 
129
function isLLBDOBFiledEntered( recordNo )
 
130
{
 
131
    var dataElementId = 1023;
 
132
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
133
    var resVal = field.value;
 
134
 
 
135
    if(resVal == null || resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "" )
 
136
    {
 
137
        alert("Please enter DOB");
 
138
        return false;
 
139
    }
 
140
    else
 
141
    {
 
142
        return true;
 
143
    }
 
144
}
 
145
 
 
146
function isLLBWeightFiledEntered( recordNo )
 
147
{
 
148
    var dataElementId = 1024;
 
149
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
150
    var resVal = field.value;
 
151
 
 
152
    if(resVal == null || resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "" )
 
153
    {
 
154
        alert("Please enter Weight");
 
155
        return false;
 
156
    }
 
157
    else
 
158
    {
 
159
        return true;
 
160
    }
 
161
}
 
162
 
 
163
function isLLBBreastFedFiledEntered( )
 
164
{
 
165
    if(lastRecordNo == -1) return true;
 
166
        
 
167
    var dataElementId = 1025;
 
168
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + lastRecordNo + '].value' );
 
169
    var resVal = field.selectedIndex;
 
170
 
 
171
    if( resVal <= 0 )
 
172
    {
 
173
        alert("Please enter BreasFeeding Field in Previous Record");
 
174
        return false;
 
175
    }
 
176
    else
 
177
    {
 
178
        return true;
 
179
    }
 
180
}
 
181
 
 
182
function validateLLBNameField( dataElementId, recordNo )
 
183
{
 
184
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
185
    var resVal = field.value;
 
186
    resVal = resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
 
187
    
 
188
    if(isLLBBreastFedFiledEntered( ))
 
189
    {
 
190
        if(resVal == null || resVal == "" )
 
191
        {
 
192
            alert("Please enter name");
 
193
            field.value = "";
 
194
            field.focus();
 
195
    
 
196
            return false;
 
197
        }
 
198
        saveLLbirthValue( dataElementId, recordNo );
 
199
        saveLLBSexValue( 1022, recordNo );
 
200
    }
 
201
    else
 
202
    {
 
203
        field.value = "";
 
204
    
 
205
        return false;
 
206
    }
 
207
}
 
208
 
 
209
function validateLLBVillageField( dataElementId, recordNo )
 
210
{
 
211
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
212
    var resVal = field.value;
 
213
    resVal = resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
 
214
    
 
215
    if(isLLBNameFiledEntered( recordNo ))
 
216
    {
 
217
        if(resVal == null || resVal == "" )
 
218
        {
 
219
            alert("Please enter village");
 
220
            field.value = "";
 
221
            field.focus();
 
222
    
 
223
            return false;
 
224
        }
 
225
        saveLLbirthValue( dataElementId, recordNo );
 
226
    }
 
227
    else
 
228
    {
 
229
        field.value = "";
 
230
    
 
231
        return false;
 
232
    }
 
233
}
 
234
 
 
235
function validateLLBSexField( dataElementId, recordNo )
 
236
{
 
237
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
238
    var resVal = field.selectedIndex;
 
239
    
 
240
    if(isLLBVillageFiledEntered( recordNo ))
 
241
    {
 
242
        if(resVal <= 0)
 
243
        {
 
244
            alert("Please Select Sex");
 
245
            field.options[0].selected = true;
 
246
      
 
247
            field.focus();
 
248
    
 
249
            return false;
 
250
        }
 
251
        saveLLbirthValue( dataElementId, recordNo );
 
252
    }
 
253
    else
 
254
    {
 
255
        field.options[1].selected = true;
 
256
    
 
257
        return false;
 
258
    }
 
259
}
 
260
 
 
261
function validateLLBDOBField( dataElementId, recordNo )
 
262
{
 
263
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
264
    var resVal = field.value;
 
265
    resVal = resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
 
266
  
 
267
    if( isLLBSexFieldEntered( recordNo ) )
 
268
    {
 
269
        if(isDate(resVal) )
 
270
        {
 
271
            saveLLbirthValue( dataElementId, recordNo );
 
272
        }
 
273
        else
 
274
        {
 
275
            field.value = "";
 
276
            field.focus();
 
277
        }
 
278
    }
 
279
    else
 
280
    {
 
281
        field.value = "";
 
282
        
 
283
        return false;
 
284
    }
 
285
}
 
286
 
 
287
function validateLLBWeightField( dataElementId, recordNo )
 
288
{
 
289
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
290
    var resVal = field.value;
 
291
    resVal = resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
 
292
 
 
293
    if(isLLBDOBFiledEntered( recordNo ))
 
294
    {
 
295
        if(resVal == null || resVal == "" )
 
296
        {
 
297
            field.value = "";
 
298
            field.focus();
 
299
            
 
300
            return false;
 
301
        }
 
302
        
 
303
        if( isInteger(resVal) || resVal.toUpperCase() == "NK" )
 
304
        {
 
305
            saveLLbirthValue( dataElementId, recordNo );
 
306
        }
 
307
        else
 
308
        {
 
309
            alert("Please enter weight in Grams");
 
310
            field.value = "";
 
311
            field.focus();
 
312
            
 
313
            return false;
 
314
        }
 
315
    }
 
316
    else
 
317
    {
 
318
        field.value = "";
 
319
      
 
320
        return false;
 
321
    }
 
322
}
 
323
 
 
324
function validateLLBBreastFedField( dataElementId, recordNo )
 
325
{
 
326
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
327
    var resVal = field.selectedIndex;
 
328
    
 
329
    if(isLLBWeightFiledEntered( recordNo ))
 
330
    {
 
331
        if(resVal <= 0)
 
332
        {
 
333
            alert("Please Select BreastFed Option");
 
334
            field.options[0].selected = true;
 
335
      
 
336
            field.focus();
 
337
    
 
338
            return false;
 
339
        }
 
340
        //saveLLBValue( dataElementId, recordNo );
 
341
        saveLLbirthValue( dataElementId, recordNo );
 
342
    
 
343
        addLLBNewRow( resVal, 1020, recordNo )
 
344
    }
 
345
    else
 
346
    {
 
347
        field.options[0].selected = true;
 
348
    
 
349
        return false;
 
350
    }
 
351
}
 
352
 
 
353
function saveLLBSexValue( dataElementId, recordNo )
 
354
{
 
355
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
356
    var resVal = '';
 
357
    
 
358
    field.style.backgroundColor = '#ffffcc';
 
359
   
 
360
    field.options[1].selected = true;
 
361
    resVal = field.options[field.selectedIndex].value;
 
362
    if(resVal == "NONE") return;
 
363
    
 
364
    if ( resVal != '' )
 
365
    {
 
366
        var deIdRecordNo = dataElementId + ":" + recordNo;
 
367
        var valueSaver = new ValueSaver( deIdRecordNo, resVal, '#ccffcc' );
 
368
        valueSaver.save();        
 
369
    }
 
370
}
 
371
 
 
372
function saveLLBValue( dataElementId, recordNo )
 
373
{
 
374
    var llbDeIds = Array();
 
375
    llbDeIds[0] = 1020;
 
376
    llbDeIds[1] = 1021;
 
377
    llbDeIds[2] = 1022;
 
378
    llbDeIds[3] = 1023;
 
379
    llbDeIds[4] = 1024;
 
380
    llbDeIds[5] = 1025;
 
381
    
 
382
    for(i = 0; i < llbDeIds.length; i++)
 
383
    {   
 
384
        dataElementId = llbDeIds[i];
 
385
        var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
386
        var resVal = '';
 
387
    
 
388
        field.style.backgroundColor = '#ffffcc';
 
389
    
 
390
        if(dataElementId == 1022 || dataElementId == 1025 || dataElementId == 1029 || dataElementId == 1030 || dataElementId == 1031 || dataElementId == 1035 || dataElementId == 1036 || dataElementId == 1037 || dataElementId == 1038 || dataElementId == 1039 || dataElementId == 1040 || dataElementId == 1043 || dataElementId == 1046 || dataElementId == 1050 || dataElementId == 1051 || dataElementId == 1052 || dataElementId == 1054)
 
391
        {
 
392
            resVal = field.options[field.selectedIndex].value;
 
393
            if(resVal == "NONE") return;
 
394
        }
 
395
        else
 
396
            resVal = field.value;
 
397
    
 
398
        if ( resVal != '' )
 
399
        {
 
400
            var deIdRecordNo = dataElementId + ":" + recordNo;
 
401
            var valueSaver = new ValueSaver( deIdRecordNo, resVal, '#ccffcc' );
 
402
            valueSaver.save();
 
403
        }
 
404
    }
 
405
}
 
406
 
 
407
// -----------------------------------------------------------------------------
 
408
// Linelisting LiveBirth Related Methods for Validation
 
409
// -----------------------------------------------------------------------------
 
410
 
 
411
function isLLDNameFiledEntered( recordNo )
 
412
{
 
413
    var dataElementId = 1027;
 
414
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
415
    var resVal = field.value;
 
416
 
 
417
    if(resVal == null || resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "" )
 
418
    {
 
419
        alert("Please enter NAME");
 
420
        return false;
 
421
    }
 
422
    else
 
423
    {
 
424
        return true;
 
425
    }
 
426
}
 
427
 
 
428
function isLLDVillageFiledEntered( recordNo )
 
429
{
 
430
    var dataElementId = 1028;
 
431
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
432
    var resVal = field.value;
 
433
 
 
434
    if(resVal == null || resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "" )
 
435
    {
 
436
        alert("Please enter VILLAGE");
 
437
        return false;
 
438
    }
 
439
    else
 
440
    {
 
441
        return true;
 
442
    }
 
443
}
 
444
 
 
445
function isLLDSexFieldEntered( recordNo )
 
446
{  
 
447
    var dataElementId = 1029;
 
448
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
449
    var resVal = field.selectedIndex;
 
450
  
 
451
    if(resVal <= 0)
 
452
    {
 
453
        alert("Please enter SEX");
 
454
    
 
455
        return false
 
456
    }
 
457
  
 
458
    return true;
 
459
}
 
460
 
 
461
function isLLDAgeCategoryFieldEntered( recordNo )
 
462
{  
 
463
    var dataElementId = 1030;
 
464
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
465
    var resVal = field.selectedIndex;
 
466
  
 
467
    if(resVal <= 0)
 
468
    {
 
469
        alert("Please enter AGE CATEGORY");
 
470
    
 
471
        return false
 
472
    }
 
473
  
 
474
    return true;
 
475
}
 
476
 
 
477
function isLLDPCDFieldEntered( )
 
478
 
479
    if(lastRecordNo == -1) return true;
 
480
         
 
481
    var dataElementId = 1031;
 
482
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + lastRecordNo + '].value' );
 
483
    var resVal = field.selectedIndex;
 
484
  
 
485
    if(resVal <= 0)
 
486
    {
 
487
        alert("Please enter CAUSE OF DEATH");
 
488
    
 
489
        return false
 
490
    }
 
491
  
 
492
    return true;
 
493
}
 
494
 
 
495
function validateLLDNameField( dataElementId, recordNo )
 
496
{
 
497
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
498
    var resVal = field.value;
 
499
    resVal = resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
 
500
    
 
501
    if(isLLDPCDFieldEntered( ))
 
502
    {
 
503
        if(resVal == null || resVal == "" )
 
504
        {
 
505
            alert("Please enter name");
 
506
            field.value = "";
 
507
            field.focus();
 
508
    
 
509
            return false;
 
510
        }
 
511
        saveLLbirthValue( dataElementId, recordNo );
 
512
        saveLLBSexValue( 1029, recordNo )
 
513
        
 
514
    }
 
515
    else
 
516
    {
 
517
        field.value = "";
 
518
    
 
519
        return false;
 
520
    }
 
521
}
 
522
 
 
523
function validateLLDVillageField( dataElementId, recordNo )
 
524
{
 
525
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
526
    var resVal = field.value;
 
527
    resVal = resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
 
528
      
 
529
    if(isLLDNameFiledEntered( recordNo ))
 
530
    {
 
531
        if(resVal == null || resVal == "" )
 
532
        {
 
533
            alert("Please enter village");
 
534
            field.value = "";
 
535
            field.focus();
 
536
    
 
537
            return false;
 
538
        }
 
539
        saveLLbirthValue( dataElementId, recordNo );
 
540
    }
 
541
    else
 
542
    {
 
543
        field.value = "";
 
544
    
 
545
        return false;
 
546
    }
 
547
}
 
548
 
 
549
function validateLLDSexField( dataElementId, recordNo )
 
550
{
 
551
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
552
    var resVal = field.selectedIndex;
 
553
    
 
554
    if(isLLDVillageFiledEntered( recordNo ))
 
555
    {
 
556
        if(resVal <= 0)
 
557
        {
 
558
            alert("Please Select Sex");
 
559
            field.options[1].selected = true;
 
560
      
 
561
            field.focus();
 
562
    
 
563
            return false;
 
564
        }
 
565
        saveLLbirthValue( dataElementId, recordNo );
 
566
    }
 
567
    else
 
568
    {
 
569
        field.options[1].selected = true;
 
570
    
 
571
        return false;
 
572
    }
 
573
}
 
574
 
 
575
function validateLLDAgeCategoryField( dataElementId, recordNo )
 
576
{
 
577
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
578
    var resVal = field.selectedIndex;
 
579
    
 
580
    if(isLLDSexFieldEntered( recordNo ))
 
581
    {
 
582
        if(resVal <= 0)
 
583
        {
 
584
            alert("Please Select Age Category");
 
585
            field.options[0].selected = true;
 
586
      
 
587
            field.focus();
 
588
    
 
589
            return false;
 
590
        }
 
591
        saveLLbirthValue( dataElementId, recordNo );
 
592
    }
 
593
    else
 
594
    {
 
595
        field.options[0].selected = true;
 
596
    
 
597
        return false;
 
598
    }
 
599
}
 
600
 
 
601
function validateLLDPCDField( dataElementId, recordNo )
 
602
{
 
603
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
604
    var resVal = field.selectedIndex;
 
605
    
 
606
    if(isLLDAgeCategoryFieldEntered( recordNo ))
 
607
    {
 
608
        if(resVal <= 0)
 
609
        {
 
610
            alert("Please enter Cause for Death");
 
611
            field.options[0].selected = true;
 
612
      
 
613
            field.focus();
 
614
    
 
615
            return false;
 
616
        }
 
617
        saveLLbirthValue( dataElementId, recordNo );
 
618
    
 
619
        addLLDNewRow( resVal, 1027, recordNo )
 
620
    }
 
621
    else
 
622
    {
 
623
        field.options[0].selected = true;
 
624
    
 
625
        return false;
 
626
    }
 
627
}
 
628
 
 
629
// -----------------------------------------------------------------------------
 
630
// Linelisting Maternal Death Related Methods for Validation
 
631
// -----------------------------------------------------------------------------
 
632
 
 
633
function isLLMDNameFiledEntered( recordNo )
 
634
{
 
635
    var dataElementId = 1032;
 
636
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
637
    var resVal = field.value;
 
638
 
 
639
    if(resVal == null || resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "" )
 
640
    {
 
641
        alert("Please enter NAME");
 
642
        return false;
 
643
    }
 
644
    else
 
645
    {
 
646
        return true;
 
647
    }
 
648
}
 
649
 
 
650
function isLLMDVillageFiledEntered( recordNo )
 
651
{
 
652
    var dataElementId = 1033;
 
653
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
654
    var resVal = field.value;
 
655
 
 
656
    if(resVal == null || resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "" )
 
657
    {
 
658
        alert("Please enter VILLAGE");
 
659
        return false;
 
660
    }
 
661
    else
 
662
    {
 
663
        return true;
 
664
    }
 
665
}
 
666
 
 
667
function isLLMDAgeFiledEntered( recordNo )
 
668
{
 
669
    var dataElementId = 1034;
 
670
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
671
    var resVal = field.value;
 
672
 
 
673
    if(resVal == null || resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "" )
 
674
    {
 
675
        alert("Please enter AGE AT DEATH");
 
676
        return false;
 
677
    }
 
678
    else
 
679
    {
 
680
        return true;
 
681
    }
 
682
}
 
683
 
 
684
function isLLMDDuringFieldEntered( recordNo )
 
685
{  
 
686
    var dataElementId = 1035;
 
687
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
688
    var resVal = field.selectedIndex;
 
689
  
 
690
    if(resVal <= 0)
 
691
    {
 
692
        alert("Please enter DEATH DURING");
 
693
    
 
694
        return false
 
695
    }
 
696
  
 
697
    return true;
 
698
}
 
699
 
 
700
function isLLMDDeliveryAtFieldEntered( recordNo )
 
701
{  
 
702
    var dataElementId = 1036;
 
703
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
704
    var resVal = field.selectedIndex;
 
705
  
 
706
    if(resVal <= 0)
 
707
    {
 
708
        alert("Please select DELIVERY AT");
 
709
    
 
710
        return false
 
711
    }
 
712
  
 
713
    return true;
 
714
}
 
715
 
 
716
function isLLMDDeliveryByFieldEntered( recordNo )
 
717
{  
 
718
    var dataElementId = 1037;
 
719
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
720
    var resVal = field.selectedIndex;
 
721
  
 
722
    if(resVal <= 0)
 
723
    {
 
724
        alert("Please select DELIVERY BY");
 
725
    
 
726
        return false
 
727
    }
 
728
  
 
729
    return true;
 
730
}
 
731
 
 
732
function isLLMDCauseFieldEntered( recordNo )
 
733
{  
 
734
    var dataElementId = 1038;
 
735
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
736
    var resVal = field.selectedIndex;
 
737
  
 
738
    if(resVal <= 0)
 
739
    {
 
740
        alert("Please select CAUSE FOR DEATH");
 
741
    
 
742
        return false
 
743
    }
 
744
  
 
745
    return true;
 
746
}
 
747
 
 
748
function isLLMDAuditedFieldEntered(  )
 
749
{  
 
750
    if(lastRecordNo == -1) return true;
 
751
        
 
752
    var dataElementId = 1039;
 
753
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + lastRecordNo + '].value' );
 
754
    var resVal = field.selectedIndex;
 
755
  
 
756
    if(resVal <= 0)
 
757
    {
 
758
        alert("Please enter IS AUDITED");
 
759
    
 
760
        return false
 
761
    }
 
762
  
 
763
    return true;
 
764
}
 
765
 
 
766
function validateLLMDNameField( dataElementId, recordNo )
 
767
{
 
768
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
769
    var resVal = field.value;
 
770
    resVal = resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
 
771
    
 
772
    if(isLLMDAuditedFieldEntered( ))
 
773
    {
 
774
        if(resVal == null || resVal == "" )
 
775
        {
 
776
            alert("Please enter name");
 
777
            field.value = "";
 
778
            field.focus();
 
779
    
 
780
            return false;
 
781
        }
 
782
        saveLLbirthValue( dataElementId, recordNo );
 
783
    }
 
784
    else
 
785
    {
 
786
        field.value = "";
 
787
    
 
788
        return false;
 
789
    }
 
790
}
 
791
 
 
792
function validateLLMDVillageField( dataElementId, recordNo )
 
793
{
 
794
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
795
    var resVal = field.value;
 
796
    resVal = resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
 
797
      
 
798
    if(isLLMDNameFiledEntered( recordNo ))
 
799
    {
 
800
        if(resVal == null || resVal == "" )
 
801
        {
 
802
            alert("Please enter village");
 
803
            field.value = "";
 
804
            field.focus();
 
805
    
 
806
            return false;
 
807
        }
 
808
        saveLLbirthValue( dataElementId, recordNo );
 
809
    }
 
810
    else
 
811
    {
 
812
        field.value = "";
 
813
    
 
814
        return false;
 
815
    }
 
816
}
 
817
 
 
818
function validateLLMDAgeAtDeathField( dataElementId, recordNo )
 
819
{
 
820
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
821
    var resVal = field.value;
 
822
    var resVal = resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
 
823
  
 
824
    if(isLLMDVillageFiledEntered( recordNo ))
 
825
    {
 
826
        if(resVal == null || resVal == "" )
 
827
        {
 
828
            field.value = "";
 
829
            field.focus();
 
830
            
 
831
            return false;
 
832
        }
 
833
  
 
834
        if( isInteger( resVal) && parseInt(resVal) >= 15 && parseInt(resVal) < 50 )
 
835
        {
 
836
            saveLLbirthValue( dataElementId, recordNo );
 
837
        }
 
838
        else
 
839
        {
 
840
            alert("Please enter valid AGE (between 15 - 50)");
 
841
            field.value = "";
 
842
            field.focus();
 
843
            
 
844
            return false;
 
845
        }
 
846
    }
 
847
    else
 
848
    {
 
849
        field.value = "";
 
850
    
 
851
        return false;
 
852
    }
 
853
}
 
854
 
 
855
function validateLLMDDuringField( dataElementId, recordNo )
 
856
{
 
857
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
858
    var resVal = field.selectedIndex;
 
859
    
 
860
    if(isLLMDAgeFiledEntered( recordNo ))
 
861
    {
 
862
        if(resVal <= 0)
 
863
        {
 
864
            alert("Please Enter Death During");
 
865
            field.options[0].selected = true;
 
866
      
 
867
            field.focus();
 
868
    
 
869
            return false;
 
870
        }
 
871
        saveLLbirthValue( dataElementId, recordNo );
 
872
    }
 
873
    else
 
874
    {
 
875
        field.options[0].selected = true;
 
876
    
 
877
        return false;
 
878
    }
 
879
}
 
880
 
 
881
function validateLLMDDeliveryAtField( dataElementId, recordNo )
 
882
{
 
883
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
884
    var resVal = field.selectedIndex;
 
885
    
 
886
    if(isLLMDDuringFieldEntered( recordNo ))
 
887
    {
 
888
        if(resVal <= 0)
 
889
        {
 
890
            alert("Please Enter Delivery At");
 
891
            field.options[0].selected = true;
 
892
      
 
893
            field.focus();
 
894
    
 
895
            return false;
 
896
        }
 
897
        saveLLbirthValue( dataElementId, recordNo );
 
898
    }
 
899
    else
 
900
    {
 
901
        field.options[0].selected = true;
 
902
    
 
903
        return false;
 
904
    }
 
905
}
 
906
 
 
907
function validateLLMDDeliveryByField( dataElementId, recordNo )
 
908
{
 
909
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
910
    var resVal = field.selectedIndex;
 
911
    
 
912
    if(isLLMDDeliveryAtFieldEntered( recordNo ))
 
913
    {
 
914
        if(resVal <= 0)
 
915
        {
 
916
            alert("Please Enter Delivery By");
 
917
            field.options[0].selected = true;
 
918
      
 
919
            field.focus();
 
920
    
 
921
            return false;
 
922
        }
 
923
        saveLLbirthValue( dataElementId, recordNo );
 
924
    }
 
925
    else
 
926
    {
 
927
        field.options[0].selected = true;
 
928
    
 
929
        return false;
 
930
    }
 
931
}
 
932
 
 
933
function validateLLMDCauseField( dataElementId, recordNo )
 
934
{
 
935
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
936
    var resVal = field.selectedIndex;
 
937
    
 
938
    if(isLLMDDeliveryByFieldEntered( recordNo ))
 
939
    {
 
940
        if(resVal <= 0)
 
941
        {
 
942
            alert("Please Enter Cuase for Death");
 
943
            field.options[0].selected = true;
 
944
      
 
945
            field.focus();
 
946
    
 
947
            return false;
 
948
        }
 
949
        saveLLbirthValue( dataElementId, recordNo );
 
950
    }
 
951
    else
 
952
    {
 
953
        field.options[0].selected = true;
 
954
    
 
955
        return false;
 
956
    }
 
957
}
 
958
 
 
959
function validateLLMDAuditedField( dataElementId, recordNo )
 
960
{
 
961
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
 
962
    var resVal = field.selectedIndex;
 
963
    
 
964
    if(isLLMDCauseFieldEntered( recordNo ))
 
965
    {
 
966
        if(resVal <= 0)
 
967
        {
 
968
            alert("Please enter Is Audited or not");
 
969
            field.options[0].selected = true;
 
970
      
 
971
            field.focus();
 
972
    
 
973
            return false;
 
974
        }
 
975
        saveLLbirthValue( dataElementId, recordNo );
 
976
    
 
977
        addLLMDNewRow( resVal, 1032, recordNo )
 
978
    }
 
979
    else
 
980
    {
 
981
        field.options[0].selected = true;
 
982
    
 
983
        return false;
 
984
    }
 
985
}
 
986
 
 
987
// -----------------------------------------------------------------------------
 
988
// Date Validation for Linelisting
 
989
// -----------------------------------------------------------------------------
 
990
 
 
991
// Declaring valid date character, minimum year and maximum year
 
992
var dtCh= "-";
 
993
var minYear=1900;
 
994
var maxYear=2100;
 
995
 
 
996
function isInteger(s)
 
997
{
 
998
    var i;
 
999
    for (i = 0; i < s.length; i++)
 
1000
    {
 
1001
        // Check that current character is number.
 
1002
        var c = s.charAt(i);
 
1003
        if (((c < "0") || (c > "9"))) return false;
 
1004
    }
 
1005
    // All characters are numbers.
 
1006
    return true;
 
1007
}
 
1008
 
 
1009
function stripCharsInBag(s, bag)
 
1010
{
 
1011
    var i;
 
1012
    var returnString = "";
 
1013
  
 
1014
    // Search through string's characters one by one.
 
1015
    // If character is not in bag, append to returnString.
 
1016
    for (i = 0; i < s.length; i++)
 
1017
    {
 
1018
        var c = s.charAt(i);
 
1019
        if (bag.indexOf(c) == -1) returnString += c;
 
1020
    }
 
1021
  
 
1022
    return returnString;
 
1023
}
 
1024
 
 
1025
function daysInFebruary (year)
 
1026
{
 
1027
    // February has 29 days in any year evenly divisible by four,
 
1028
    // EXCEPT for centurial years which are not also divisible by 400.
 
1029
  
 
1030
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
 
1031
}
 
1032
 
 
1033
function DaysArray(n) 
 
1034
{
 
1035
    for (var i = 1; i <= n; i++)
 
1036
    {
 
1037
        this[i] = 31
 
1038
        if (i==4 || i==6 || i==9 || i==11) {
 
1039
            this[i] = 30
 
1040
            }
 
1041
        if (i==2) {
 
1042
            this[i] = 29
 
1043
            }
 
1044
    }
 
1045
  
 
1046
    return this
 
1047
}
 
1048
 
 
1049
function isDate(dtStr)
 
1050
{
 
1051
    var daysInMonth = DaysArray(12)
 
1052
    var pos1=dtStr.indexOf(dtCh)
 
1053
    var pos2=dtStr.indexOf(dtCh,pos1+1)
 
1054
 
 
1055
    var strYear=dtStr.substring(0,pos1)
 
1056
    var strMonth=dtStr.substring(pos1+1,pos2)
 
1057
    var strDay=dtStr.substring(pos2+1)
 
1058
    var strMonthWithZero = strMonth
 
1059
    var strDayWithZero = strDay
 
1060
 
 
1061
    //var strMonth=dtStr.substring(0,pos1)
 
1062
    //var strDay=dtStr.substring(pos1+1,pos2)
 
1063
    //var strYear=dtStr.substring(pos2+1)
 
1064
     var currentDate= new Date();
 
1065
    var mm = currentDate.getMonth()+1;
 
1066
    var dd = currentDate.getDate();
 
1067
    ms = new String(mm);
 
1068
    ds = new String(dd);
 
1069
    if ( ms.length == 1 ) ms = "0" + ms;
 
1070
    if ( ds.length == 1 ) ds = "0" + ds;
 
1071
    var dateString = currentDate.getFullYear() + "-" + ms + "-" + ds;
 
1072
 
 
1073
    strYr=strYear
 
1074
    if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
 
1075
    if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
 
1076
    for (var i = 1; i <= 3; i++)
 
1077
    {
 
1078
        if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
 
1079
    }
 
1080
    month=parseInt(strMonth)
 
1081
    day=parseInt(strDay)
 
1082
    year=parseInt(strYr)
 
1083
    if (pos1==-1 || pos2==-1 || strMonthWithZero.length<2 || strDayWithZero.length<2 )
 
1084
    {
 
1085
        alert("The date format should be : yyyy-mm-dd")
 
1086
        return false
 
1087
    }
 
1088
  
 
1089
    if (strMonth.length<1 || month<1 || month>12)
 
1090
    {
 
1091
        alert("Please enter a valid month")
 
1092
        return false
 
1093
    }
 
1094
    if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
 
1095
    {
 
1096
        alert("Please enter a valid day")
 
1097
        return false
 
1098
    }
 
1099
    if (strYear.length != 4 || year==0 || year<minYear || year>maxYear)
 
1100
    {
 
1101
        alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
 
1102
        return false
 
1103
    }
 
1104
    if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
 
1105
    {
 
1106
        alert("Please enter a valid date")
 
1107
        return false
 
1108
    }
 
1109
    if(dtStr > dateString)
 
1110
    {
 
1111
        alert("The Date is greater than Today's Date");
 
1112
        return false;
 
1113
    }
 
1114
    return true
 
1115
}
 
1116
 
 
1117
function isInteger(s)
 
1118
{
 
1119
    var n = trim(s);
 
1120
    return n.length > 0 && !(/[^0-9]/).test(n);
 
1121
}
 
1122
 
 
1123
// -----------------------------------------------------------------------------
 
1124
// Save
 
1125
// -----------------------------------------------------------------------------
 
1126
 
 
1127
function saveLLbirthValue( dataElementId, recordNo )
 
1128
{
 
1129
    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );    
 
1130
    var resVal = '';
 
1131
    
 
1132
    field.style.backgroundColor = '#ffffcc';
 
1133
    
 
1134
    if(dataElementId == 1022 || dataElementId == 1025 || dataElementId == 1029 || dataElementId == 1030 || dataElementId == 1031 || dataElementId == 1035 || dataElementId == 1036 || dataElementId == 1037 || dataElementId == 1038 || dataElementId == 1039 || dataElementId == 1040 || dataElementId == 1043 || dataElementId == 1046 || dataElementId == 1050 || dataElementId == 1051 || dataElementId == 1052 || dataElementId == 1054)
 
1135
    {
 
1136
        resVal = field.options[field.selectedIndex].value;
 
1137
        if(resVal == "NONE") return;
 
1138
    }
 
1139
    else
 
1140
        resVal = field.value;
 
1141
    
 
1142
    if ( resVal != '' )
 
1143
    {
 
1144
        var deIdRecordNo = dataElementId + ":" + recordNo;
 
1145
        var valueSaver = new ValueSaver( deIdRecordNo, resVal, '#ccffcc' );
 
1146
        valueSaver.save();
 
1147
    }
 
1148
 
 
1149
}
 
1150
 
 
1151
 
 
1152
 
 
1153
 
 
1154
 
 
1155
function saveValue( dataElementId, dataElementName )
 
1156
{
 
1157
    var field = document.getElementById( 'value[' + dataElementId + '].value' );
 
1158
    var type = document.getElementById( 'value[' + dataElementId + '].type' ).innerHTML;
 
1159
    
 
1160
    field.style.backgroundColor = '#ffffcc';
 
1161
    
 
1162
    if ( field.value != '' )
 
1163
    {
 
1164
        if ( type == 'int' )
 
1165
        {
 
1166
            if ( !isInt( field.value ))
 
1167
            {
 
1168
                field.style.backgroundColor = '#ffcc00';
 
1169
 
 
1170
                window.alert( i18n_value_must_integer + '\n\n' + dataElementName );
 
1171
 
 
1172
                field.select();
 
1173
                field.focus();
 
1174
 
 
1175
                return;
 
1176
            }
 
1177
            else
 
1178
            {
 
1179
                var minString = document.getElementById( 'value[' + dataElementId + '].min' ).innerHTML;
 
1180
                var maxString = document.getElementById( 'value[' + dataElementId + '].max' ).innerHTML;
 
1181
 
 
1182
                if ( minString.length != 0 && maxString.length != 0 )
 
1183
                {
 
1184
                    var value = new Number( field.value );
 
1185
                    var min = new Number( minString );
 
1186
                    var max = new Number( maxString );
 
1187
 
 
1188
                    if ( value < min )
 
1189
                    {
 
1190
                        var valueSaver = new ValueSaver( dataElementId, field.value, '#ffcccc' );
 
1191
                        valueSaver.save();
 
1192
                        
 
1193
                        window.alert( i18n_value_of_data_element_less + '\n\n' + dataElementName );
 
1194
                        
 
1195
                        return;
 
1196
                    }
 
1197
 
 
1198
                    if ( value > max )
 
1199
                    {
 
1200
                        var valueSaver = new ValueSaver( dataElementId, field.value, '#ffcccc' );
 
1201
                        valueSaver.save();
 
1202
                        
 
1203
                        window.alert( i18n_value_of_data_element_greater + '\n\n' + dataElementName);
 
1204
                        
 
1205
                        return;
 
1206
                    }
 
1207
                }
 
1208
            }
 
1209
        }
 
1210
    }
 
1211
 
 
1212
    var valueSaver = new ValueSaver( dataElementId, field.value, '#ccffcc' );
 
1213
    valueSaver.save();
 
1214
 
 
1215
    if ( type == 'int')
 
1216
    {
 
1217
        calculateCDE(dataElementId);
 
1218
    }
 
1219
 
 
1220
}
 
1221
 
 
1222
function saveBoolean( dataElementId )
 
1223
{
 
1224
    var select = document.getElementById( 'value[' + dataElementId + '].boolean' );
 
1225
    
 
1226
    select.style.backgroundColor = '#ffffcc';
 
1227
    
 
1228
    var valueSaver = new ValueSaver( dataElementId, select.options[select.selectedIndex].value, '#ccffcc' );
 
1229
    valueSaver.save();
 
1230
}
 
1231
 
 
1232
function saveComment( dataElementId, commentValue )
 
1233
{
 
1234
    var field = document.getElementById( 'value[' + dataElementId + '].comment' );
 
1235
    var select = document.getElementById( 'value[' + dataElementId + '].comments' );
 
1236
    
 
1237
    field.style.backgroundColor = '#ffffcc';
 
1238
    select.style.backgroundColor = '#ffffcc';
 
1239
    
 
1240
    var commentSaver = new CommentSaver( dataElementId, commentValue );
 
1241
    commentSaver.save();
 
1242
}
 
1243
 
 
1244
function isInt( value )
 
1245
{
 
1246
    var number = new Number( value );
 
1247
    
 
1248
    if ( isNaN( number ))
 
1249
    {
 
1250
        return false;
 
1251
    }
 
1252
    
 
1253
    return true;
 
1254
}
 
1255
 
 
1256
// -----------------------------------------------------------------------------
 
1257
// Saver objects
 
1258
// -----------------------------------------------------------------------------
 
1259
 
 
1260
function ValueSaver( dataElementId_, value_, resultColor_ )
 
1261
{
 
1262
    var SUCCESS = '#ccffcc';
 
1263
    var ERROR = '#ccccff';
 
1264
 
 
1265
    var dataElementId = dataElementId_;
 
1266
    var value = value_;
 
1267
    var resultColor = resultColor_;
 
1268
    
 
1269
    this.save = function()
 
1270
    {
 
1271
        var request = new Request();
 
1272
        request.setCallbackSuccess( handleResponse );
 
1273
        request.setCallbackError( handleHttpError );
 
1274
        request.setResponseTypeXML( 'status' );
 
1275
        request.send( 'saveValue.action?dataElementId=' +
 
1276
            dataElementId + '&value=' + value );
 
1277
    };
 
1278
    
 
1279
    function handleResponse( rootElement )
 
1280
    {
 
1281
        var codeElement = rootElement.getElementsByTagName( 'code' )[0];
 
1282
        var code = parseInt( codeElement.firstChild.nodeValue );
 
1283
        
 
1284
        if ( code == 0 )
 
1285
        {            
 
1286
            nextFlag = 0;
 
1287
 
 
1288
            markValue( resultColor );
 
1289
            
 
1290
        //var textNode;
 
1291
            
 
1292
        //var timestampElement = rootElement.getElementsByTagName( 'timestamp' )[0];
 
1293
        //var timestampField = document.getElementById( 'value[' + dataElementId + '].timestamp' );
 
1294
        //textNode = timestampElement.firstChild;
 
1295
            
 
1296
        //timestampField.innerHTML = ( textNode ? textNode.nodeValue : '' );
 
1297
            
 
1298
        //var storedByElement = rootElement.getElementsByTagName( 'storedBy' )[0];
 
1299
        //var storedByField = document.getElementById( 'value[' + dataElementId + '].storedBy' );
 
1300
        //textNode = storedByElement.firstChild;
 
1301
 
 
1302
        //storedByField.innerHTML = ( textNode ? textNode.nodeValue : '' );
 
1303
        }
 
1304
        else
 
1305
        {
 
1306
            markValue( ERROR );
 
1307
            window.alert( i18n_saving_value_failed_status_code + '\n\n' + code );
 
1308
        }
 
1309
    }
 
1310
    
 
1311
    function handleHttpError( errorCode )
 
1312
    {
 
1313
        markValue( ERROR );
 
1314
        window.alert( i18n_saving_value_failed_error_code + '\n\n' + errorCode );
 
1315
    }
 
1316
    
 
1317
    function markValue( color )
 
1318
    {
 
1319
        //var type = document.getElementById( 'value[' + dataElementId + '].type' ).innerText;
 
1320
        var element;
 
1321
        
 
1322
        /*        if ( type == 'bool' )
 
1323
        {
 
1324
            element = document.getElementById( 'value[' + dataElementId + '].boolean' );
 
1325
        }
 
1326
        else
 
1327
        {
 
1328
            element = document.getElementById( 'value[' + dataElementId + '].value' );
 
1329
        }
 
1330
*/
 
1331
        var temp = new Array();
 
1332
        temp = dataElementId.split(":");
 
1333
                                
 
1334
        element = document.getElementById( 'value[' + temp[0] + '].value:value['+ temp[1] +'].value' );
 
1335
        element.style.backgroundColor = color;
 
1336
    }
 
1337
}
 
1338
 
 
1339
function CommentSaver( dataElementId_, value_ )
 
1340
{
 
1341
    var SUCCESS = '#ccffcc';
 
1342
    var ERROR = '#ccccff';
 
1343
 
 
1344
    var dataElementId = dataElementId_;
 
1345
    var value = value_;
 
1346
    
 
1347
    this.save = function()
 
1348
    {
 
1349
        var request = new Request();
 
1350
        request.setCallbackSuccess( handleResponse );
 
1351
        request.setCallbackError( handleHttpError );
 
1352
        request.setResponseTypeXML( 'status' );
 
1353
        request.send( 'saveComment.action?dataElementId=' +
 
1354
            dataElementId + '&comment=' + value );
 
1355
    };
 
1356
    
 
1357
    function handleResponse( rootElement )
 
1358
    {
 
1359
        var codeElement = rootElement.getElementsByTagName( 'code' )[0];
 
1360
        var code = parseInt( codeElement.firstChild.nodeValue );
 
1361
        
 
1362
        if ( code == 0 )
 
1363
        {
 
1364
            markComment( SUCCESS );
 
1365
            
 
1366
        //var textNode;
 
1367
            
 
1368
        //var timestampElement = rootElement.getElementsByTagName( 'timestamp' )[0];
 
1369
        //var timestampField = document.getElementById( 'value[' + dataElementId + '].timestamp' );
 
1370
        //textNode = timestampElement.firstChild;
 
1371
            
 
1372
        //timestampField.innerHTML = ( textNode ? textNode.nodeValue : '' );
 
1373
            
 
1374
        //var storedByElement = rootElement.getElementsByTagName( 'storedBy' )[0];
 
1375
        //var storedByField = document.getElementById( 'value[' + dataElementId + '].storedBy' );
 
1376
        //textNode = storedByElement.firstChild;
 
1377
 
 
1378
        //storedByField.innerHTML = ( textNode ? textNode.nodeValue : '' );
 
1379
        }
 
1380
        else
 
1381
        {
 
1382
            markComment( ERROR );
 
1383
            window.alert( i18n_saving_comment_failed_status_code + '\n\n' + code );
 
1384
        }
 
1385
    }
 
1386
    
 
1387
    function handleHttpError( errorCode )
 
1388
    {
 
1389
        markComment( ERROR );
 
1390
        window.alert( i18n_saving_comment_failed_error_code + '\n\n' + errorCode );
 
1391
    }
 
1392
    
 
1393
    function markComment( color )
 
1394
    {
 
1395
        var field = document.getElementById( 'value[' + dataElementId + '].comment' );
 
1396
        var select = document.getElementById( 'value[' + dataElementId + '].comments' );
 
1397
 
 
1398
        field.style.backgroundColor = color;
 
1399
        select.style.backgroundColor = color;
 
1400
    }
 
1401
}
 
1402
 
 
1403
// -----------------------------------------------------------------------------
 
1404
// View history
 
1405
// -----------------------------------------------------------------------------
 
1406
/*
 
1407
function viewHistory( dataElementId )
 
1408
{
 
1409
        
 
1410
    window.open( 'viewHistory.action?dataElementId=' + dataElementId, '_blank', 'width=560,height=550,scrollbars=yes' );
 
1411
}*/
 
1412
 
 
1413
// -----------------------------------------------------------------------------
 
1414
// Validation
 
1415
// -----------------------------------------------------------------------------
 
1416
 
 
1417
function validate()
 
1418
{
 
1419
    window.open( 'validate.action', '_blank', 'width=800, height=400, scrollbars=yes, resizable=yes' );
 
1420
}
 
1421
 
 
1422
// -----------------------------------------------------------------------------
 
1423
// CalculatedDataElements
 
1424
// -----------------------------------------------------------------------------
 
1425
 
 
1426
/**
 
1427
 * Calculate and display the value of any CDE the given data element is a part of.
 
1428
 * @param dataElementId  id of the data element to calculate a CDE for
 
1429
 */
 
1430
function calculateCDE( dataElementId )
 
1431
{
 
1432
    var cdeId = getCalculatedDataElement(dataElementId);
 
1433
  
 
1434
    if ( ! cdeId )
 
1435
    {
 
1436
        return;
 
1437
    }
 
1438
    
 
1439
    var factorMap = calculatedDataElementMap[cdeId];
 
1440
    var value = 0;
 
1441
    var dataElementValue;
 
1442
    
 
1443
    for ( dataElementId in factorMap )
 
1444
    {
 
1445
        dataElementValue = document.getElementById( 'value[' + dataElementId + '].value' ).value;
 
1446
        value += ( dataElementValue * factorMap[dataElementId] );
 
1447
    }
 
1448
    
 
1449
    document.getElementById( 'value[' + cdeId + '].value' ).value = value;
 
1450
}
 
1451
 
 
1452
/**
 
1453
 * Returns the id of the CalculatedDataElement this DataElement id is a part of.
 
1454
 * @param dataElementId id of the DataElement
 
1455
 * @return id of the CalculatedDataElement this DataElement id is a part of,
 
1456
 *     or null if the DataElement id is not part of any CalculatedDataElement
 
1457
 */
 
1458
function getCalculatedDataElement( dataElementId )
 
1459
{
 
1460
    for ( cdeId in calculatedDataElementMap )
 
1461
    {
 
1462
        var factorMap = calculatedDataElementMap[cdeId];
 
1463
 
 
1464
        if ( deId in factorMap )
 
1465
        {
 
1466
            return cdeId;
 
1467
        }
 
1468
 
 
1469
    }
 
1470
 
 
1471
    return null;
 
1472
}
 
1473
 
 
1474
function calculateAndSaveCDEs()
 
1475
{
 
1476
    var request = new Request();
 
1477
    request.setCallbackSuccess( dataValuesReceived );
 
1478
    request.setResponseTypeXML( 'dataValues' );
 
1479
    request.send( 'calculateCDEs.action' );
 
1480
}
 
1481
 
 
1482
function dataValuesReceived( node )
 
1483
{
 
1484
    var values = node.getElementsByTagName('dataValue');
 
1485
    var dataElementId;
 
1486
    var value;
 
1487
 
 
1488
    for ( var i = 0, value; value = values[i]; i++ )
 
1489
    {
 
1490
        dataElementId = value.getAttribute('dataElementId');
 
1491
        value = value.firstChild.nodeValue;
 
1492
        document.getElementById( 'value[' + dataElementId + '].value' ).value = value;
 
1493
    }
 
1494
}
 
1495
 
 
1496
 
 
1497
 
 
1498
function saveLineListingAggData()
 
1499
{
 
1500
    var request = new Request();
 
1501
    request.setCallbackSuccess( saveLineListingAggDataReceived );
 
1502
    request.setResponseTypeXML( 'dataValues' );
 
1503
    request.send( 'saveLineListingAggData.action' );
 
1504
}
 
1505
 
 
1506
function saveLineListingAggDataReceived( node )
 
1507
{
 
1508
    alert("Aggregated DataElements Saved");
 
1509
        
 
1510
    var values = node.getElementsByTagName('dataValue');
 
1511
    var dataElementId;
 
1512
    var value;
 
1513
 
 
1514
    for ( var i = 0, value; value = values[i]; i++ )
 
1515
    {
 
1516
        dataElementId = value.getAttribute('dataElementId');
 
1517
        optionComboId = value.getAttribute('optionComboId');
 
1518
                
 
1519
        value = value.firstChild.nodeValue;
 
1520
        //document.getElementById( 'value[' + dataElementId + '].value' + ':' +  'value[' + optionComboId + '].value').value = value;
 
1521
        document.getElementById( 'value[' + dataElementId + '].value' ).value = value;
 
1522
    }
 
1523
}
 
1524
 
 
1525
 
 
1526
function removeLLRecord( nextRecordNo )
 
1527
{
 
1528
    var result = window.confirm( 'Do you want to delete this record' );
 
1529
 
 
1530
    if ( result )
 
1531
    {
 
1532
        window.location.href = 'delLLRecord.action?recordId=' + nextRecordNo;
 
1533
    }
 
1534
}