6
function exportRaster(){
8
var mapFileName = document.getElementById('mapFileName').value;
12
window.open ("exportImage.action?mapFileName=" + mapFileName,"Exported Image", 'width=500,height=500,scrollbars=yes');
15
var request = new Request();
16
request.setResponseTypeXML( 'message' );
17
request.setCallbackSuccess( showInfoDetailsRecieved);
18
request.send( "exportImage.action" );
23
function exportExcel(){
25
var mapFileName = document.getElementById('mapFileName').value;
26
var indicatorId = document.getElementById("indicatorIdS").value;
27
var startDate = document.getElementById("startDateS").value;
28
var endDate = document.getElementById("endDateS").value;
30
var url = "exportExcel.action?mapFileName="+mapFileName+"&indicatorId="+indicatorId+"&startDate=" + startDate + "&endDate="+endDate+"";
32
window.open (url,"Exported Excel", 'width=500,height=500,scrollbars=yes');
36
function readNode(node){
40
buffer += readAttributes(node);
41
var nodeName = node.nodeName;
42
var childNodes = node.childNodes;
45
if(childNodes.length!=0){
46
for(i=0;i<childNodes.length;i++){
47
var childNode = childNodes.item(i);
48
buffer+=readNode(childNode);
50
buffer+="</" + nodeName + ">\n";
58
function readAttributes(node){
59
var nodeName = node.nodeName;
60
var buffer = "<" +nodeName;
61
var listAttribute = node.attributes;
62
if(listAttribute!=null){
63
for(i=0;i<listAttribute.length;i++){
64
var attribute = listAttribute.item(i);
65
buffer+= " " + attribute.name + "=" + "\"" + attribute.nodeValue + "\"";
77
var svg = document.embeds['map'].getSVGDocument().getElementsByTagName('svg');
79
var currenZoom = new Number(svg.getAttribute('width').replace("%",""));
81
svg.setAttributeNS(null, "width", currenZoom+"%");
82
svg.setAttributeNS(null, "height", currenZoom+"%");
85
var svg = document.embeds['map'].getSVGDocument().getElementsByTagName('svg');
87
var currenZoom = new Number(svg.getAttribute('width').replace("%",""));
89
svg.setAttributeNS(null, "width", currenZoom+"%");
90
svg.setAttributeNS(null, "height", currenZoom+"%");
93
function retoreZoom(){
94
var svg = document.embeds['map'].getSVGDocument().getElementsByTagName('svg');
96
svg.setAttributeNS(null, "width", "100%");
97
svg.setAttributeNS(null, "height", "100%");
99
function showlayer(checkbox, element_id){
101
var svgobj = document.embeds['map'].getSVGDocument().getElementById(element_id);
103
if (!checkbox.checked){
105
svgobj.setAttributeNS(null,'visibility','hidden');
109
svgobj.setAttributeNS(null,'visibility','visible');
111
var radio_id = checkbox.id.replace('check', 'radio');
113
document.getElementById(radio_id).checked = true;
115
activelayer(element_id);
121
function activelayer(element_id){
123
var element = document.embeds['map'].getSVGDocument().getElementById(element_id);
125
element.parentNode.appendChild(element);
127
setAction(element_id);
129
this.layer_actived=element_id;
131
//getColorDefaut(this.layer_actived);
133
/* if(element_id=='hcmc1'){
135
removeEventForElement('csyt');
137
removeEventForElement('dgt');
139
}else if(element_id=='csyt'){
141
removeEventForElement('hcmc1');
143
removeEventForElement('dgt');
147
removeEventForElement('csyt');
149
removeEventForElement('hcmc1');
156
var lastFearureChoise;
158
function selectedFeature(featureCode){
160
var element =document.embeds['map'].getSVGDocument().getElementById(layer_actived);
161
var nodeList = element.getElementsByTagName('polygon');
162
for(var i=0;i<nodeList.length;i++){
163
g_element = nodeList.item(i);
164
var id = g_element.getAttribute("id");
166
lastClickFill = g_element.getAttribute("fill");
167
g_element.setAttributeNS(null, "fill", "red");
168
lastFearureChoise = featureCode;
177
function changeAction(element_id){
179
var element =document.embeds['map'].getSVGDocument().getElementById(element_id);
180
var nodeList = element.getElementsByTagName('polygon');
181
for(var i=0;i<nodeList.length;i++){
182
g_element = nodeList.item(i);
183
g_element.removeEventListener("mouseover", showInfo, false);
184
g_element.removeEventListener("mouseout", hiddenInfo, false);
185
g_element.addEventListener("click", getInfo, false);
187
this.layer_actived=element_id;
190
function nonSelect(element_id){
191
var element =document.embeds['map'].getSVGDocument().getElementById(element_id);
192
var nodeList = element.getElementsByTagName('polygon');
193
for(var i=0;i<nodeList.length;i++){
194
g_element = nodeList.item(i);
196
var id = g_element.getAttribute("id");
197
if(lastFearureChoise==id){
198
g_element.setAttributeNS(null, "fill", lastClickFill);
204
function getInfo(evt){
205
var target = evt.target;
206
if(lastFearureChoise){
207
nonSelect(layer_actived);
211
if(layer_actived=="polyline"){
212
target.setAttributeNS(null, "stroke", stroke);
213
target.setAttributeNS(null, "stroke-width",stroke_width);
215
lastClickFill = target.getAttribute("fill");
216
target.setAttributeNS(null, "fill", "red");
217
var orgCode = target.getAttribute("id");
218
lastFearureChoise = orgCode;
219
document.getElementById('organisationUnitCode').value = orgCode;
226
function removeAction(element_id){
228
var element =document.embeds['map'].getSVGDocument().getElementById(element_id);
229
var nodeList = element.getElementsByTagName('polygon');
230
for(var i=0;i<nodeList.length;i++){
231
g_element = nodeList.item(i);
232
g_element.removeEventListener("mouseover", showInfo, false);
233
g_element.removeEventListener("mouseout", hiddenInfo, false);
237
function setAction(element_id){
238
//activelayer(element_id);
239
var element =document.embeds['map'].getSVGDocument().getElementById(element_id);
240
var nodeList = element.getElementsByTagName('polygon');
241
for(var i=0;i<nodeList.length;i++){
242
g_element = nodeList.item(i);
243
g_element.addEventListener("mouseover", showInfo, false);
244
//g_element.addEventListener("click", showInfo, false);
245
g_element.addEventListener("mouseout", hiddenInfo, false);
247
if(element_id=="polygon"){
248
removeAction("polyline");
249
removeAction("point");
250
}else if(element_id=="polyline"){
251
removeAction("polygon");
252
removeAction("point");
254
removeAction("polygon");
255
removeAction("polyline");
259
var fill, stroke, stroke_width;
260
function hiddenInfo(evt){
261
var target = evt.target;
262
if(layer_actived=="polyline"){
263
target.setAttributeNS(null, "stroke", stroke);
264
target.setAttributeNS(null, "stroke-width",stroke_width);
266
target.setAttributeNS(null, "fill", fill);
271
function showInfo(evt){
273
var target = evt.target;
275
var name = target.getAttribute("attrib:district");
277
var orgCode = target.getAttribute("id");
279
var x = evt.clientX ;
281
var y = evt.clientY ;
285
fill = target.getAttribute("fill");
286
stroke = target.getAttribute("stroke");
287
stroke_width = target.getAttribute("stroke-width");
288
if(layer_actived=="polyline"){
289
target.setAttributeNS(null, "stroke", "red");
290
target.setAttributeNS(null, "stroke-width", "200");
292
target.setAttributeNS(null, "fill", "#67F906");
293
//showInfoDetails(orgCode);
302
function showInfoDetails( orgCode )
304
var request = new Request();
305
request.setResponseTypeXML( 'organisationUnit' );
306
request.setCallbackSuccess( showInfoDetailsRecieved);
307
request.send( 'showInfoDetails.action?orgCode=' + orgCode );
309
function showInfoDetailsRecieved( mapObject )
311
var name = getElementValue(mapObject, "name");
312
var shortName = getElementValue(mapObject,"shortName");
313
var comment = getElementValue(mapObject,"comment");
315
document.getElementById('name').innerHTML=name;
316
document.getElementById('comment').innerHTML=comment;
320
function getElementValue( parentElement, childElementName )
322
var textNode = parentElement.getElementsByTagName( childElementName )[0].firstChild;
326
return textNode.nodeValue;
333
//---------get DataElement-------------------------
334
function getDataElementsByDataSet(dataSetId){
335
var request = new Request();
336
request.setResponseTypeXML( 'dataElements' );
337
request.setCallbackSuccess( getDataElementByDataSetRecieved);
338
request.send( 'getDataElement.action?dataSetId=' + dataSetId );
340
function getDataElementByDataSetRecieved(dataElements){
341
var dataElements = dataElements.getElementsByTagName("dataElement");
342
var selectedDataElement = document.getElementById("selectedDataElementId");
343
var innerHTML = "<option value='null'>-----------------</option>";
344
for(var i=0;i<dataElements.length;i++){
345
var dataElement = dataElements.item(i);
346
var id = dataElement.getElementsByTagName('id')[0].firstChild.nodeValue;
347
var name = dataElement.getElementsByTagName('name')[0].firstChild.nodeValue;
348
innerHTML += "<option value="+id+">"+name+"</option>";
350
selectedDataElement.innerHTML = innerHTML;
352
//-----------getAllPeriodsType------------------------------------------------
353
function getPeriodTypes(){
354
var request = new Request();
355
request.setResponseTypeXML( 'periodTypes' );
356
request.setCallbackSuccess( getPeriodTypesRecieved);
357
request.send( 'getPeiodTypes.action');
359
function getPeriodTypesRecieved(periodTypes){
360
var periodTypes = periodTypes.getElementsByTagName("periodType");
361
var periodTypeId = document.getElementById("periodTypeId");
362
var innerHTML = "<option value='null'>-----------------</option>";
363
for(var i=0;i<periodTypes.length;i++){
364
var periodType = periodTypes.item(i);
365
var id = periodType.getElementsByTagName('id')[0].firstChild.nodeValue;
366
var name = periodType.getElementsByTagName('name')[0].firstChild.nodeValue;
367
innerHTML += "<option value="+id+">"+name+"</option>";
369
periodTypeId.innerHTML = innerHTML;
372
//-----------getPeriodByPeriodTypes------------------------------------------------
373
function getPeriodByPeriodType(periodTypeId){
374
//alert(periodTypeName);
375
var request = new Request();
376
request.setResponseTypeXML( 'periods' );
377
request.setCallbackSuccess( getPeriodByPeriodTypeRecieved);
378
request.send( "getPeriods.action?periodTypeId=" + periodTypeId);
380
function getPeriodByPeriodTypeRecieved(periods){
381
var periodList = periods.getElementsByTagName("period");
382
var periodSelect = document.getElementById("selectedPeriod");
385
for(var i=0;i<periodList.length;i++){
386
var period = periodList.item(i);
387
var id = period.getElementsByTagName('id')[0].firstChild.nodeValue;
388
var name = period.getElementsByTagName('name')[0].firstChild.nodeValue;
390
innerHTML += "<option value="+id+">"+name+"</option>";
392
periodSelect.innerHTML = innerHTML;
395
//-----------Fill Map------------------------------------------------
399
//window.alert("sfddgfs");
401
var orgUnitId = document.getElementById("orgUnit").value;
402
var periodId = document.getElementById("selectedPeriodId").value;
403
var selectedDataElementId = document.getElementById("selectedDataElementId").value;
405
var url = "fillMap.action?orgUnitId="+orgUnitId+"&periodId="+periodId+"&selectedDataElementId="+selectedDataElementId;
407
var request = new Request();
408
request.setResponseTypeXML( 'features' );
409
request.setCallbackSuccess( fillMapRecieved);
414
function fillMapRecieved(features){
416
var featureList = features.getElementsByTagName("feature");
418
var legendList = features.getElementsByTagName("legend");
420
//var section = features.getElementsByTagName("section");
421
var innerHTML ="<legend>Legend</legend>";
422
innerHTML+="<table width='100%' border='0'>";
423
innerHTML+="<tr align='center'>";
424
innerHTML+="<td>Color</td>"
425
innerHTML+="<td></td>"
426
innerHTML+="<td>Min</td>"
427
innerHTML+="<td></td>"
428
innerHTML+="<td>Max</td>"
430
for(var i=0;i<legendList.length;i++){
431
var legend = legendList.item(i);
432
innerHTML+="<tr align='center'>";
433
var color = legend.getElementsByTagName('color')[0].firstChild.nodeValue;
434
var minValue = legend.getElementsByTagName('min')[0].firstChild.nodeValue;
435
var maxValue = legend.getElementsByTagName('max')[0].firstChild.nodeValue;
436
innerHTML+="<td width='50%' bgcolor='#"+color+"'> </td>";
437
innerHTML+="<td width='10%'> </td>";
438
innerHTML+="<td width='19%'>" + minValue + "</td>";
439
innerHTML+="<td width='2%'>-</td>";
440
innerHTML+="<td width='19%'>" + maxValue + "</td>";
443
innerHTML+="</table>";
444
document.getElementById('legend').style.display="block";
445
document.getElementById('legend').innerHTML = innerHTML;
446
for(var i=0;i<featureList.length;i++){
447
var feature = featureList.item(i);
448
var orgCode = feature.getElementsByTagName('orgCode')[0].firstChild.nodeValue;
449
var color = feature.getElementsByTagName('color')[0].firstChild.nodeValue;
450
var value = feature.getElementsByTagName('value')[0].firstChild.nodeValue;
451
showLabel(orgCode,value);
452
fillColor(orgCode,color);
455
document.getElementById('image').disabled = false;
456
document.getElementById('excel').disabled = false;
457
showHideAll('divunder');
458
showHideAll('alert');
462
function fillColor(orgCode,color){
463
var element =document.embeds['map'].getSVGDocument().getElementById('polygon');
465
var nodeList = element.getElementsByTagName('polygon');
466
for(var i=0;i<nodeList.length;i++){
467
polygon = nodeList.item(i);
468
//polygon.addEventListener("click", showIndicatorValue, false);
469
var id = polygon.getAttribute("id");
471
polygon.setAttributeNS(null, "fill", color);
479
function showIndicatorValue(){
480
//var element =document.embeds['map'].getSVGDocument().getElementById('polygon');
483
function showLabel(orgCode,value){
484
var element =document.embeds['map'].getSVGDocument().getElementById('label');
487
var nodeList = element.getElementsByTagName('text');
488
for(var i=0;i<nodeList.length;i++){
489
text = nodeList.item(i);
490
var id = text.getAttribute("id");
492
var lable = text.firstChild.nodeValue.split(":");
495
newText = text.firstChild.nodeValue + ":" + value;
497
newText = lable[0] + ":" + value;
500
text.firstChild.nodeValue = newText;
508
function getIndicatorByGroup(groupId){
509
var request = new Request();
510
request.setResponseTypeXML( 'indicators' );
511
request.setCallbackSuccess( responseGetIndicatorByGroup);
512
request.send( "getIndicatorByGroup.action?indicatorGroupId=" + groupId);
514
function responseGetIndicatorByGroup(indicators){
515
var indicatorList = indicators.getElementsByTagName("indicator");
516
var indicatorId = document.getElementById("indicatorId");
517
var innerHTML = "<option value='null'>-----------------</option>";
518
for(var i=0;i<indicatorList.length;i++){
519
var indicator = indicatorList.item(i);
520
var id = indicator.getElementsByTagName('id')[0].firstChild.nodeValue;
521
var name = indicator.getElementsByTagName('name')[0].firstChild.nodeValue;
522
innerHTML += "<option value="+id+">"+name+"</option>";
524
indicatorId.innerHTML = innerHTML;
527
function getIndicatorByIndicatorGroup(groupId){
528
var request = new Request();
529
request.setResponseTypeXML( 'indicators' );
530
request.setCallbackSuccess( responseGetIndicatorByIndicatorGroup);
531
request.send( "getIndicatorByGroup.action?indicatorGroupId=" + groupId);
533
function responseGetIndicatorByIndicatorGroup(indicators){
534
var indicatorList = indicators.getElementsByTagName("indicator");
535
var indicatorId = document.getElementById("indicatorIdS");
537
for(var i=0;i<indicatorList.length;i++){
538
var indicator = indicatorList.item(i);
539
var id = indicator.getElementsByTagName('id')[0].firstChild.nodeValue;
540
var name = indicator.getElementsByTagName('name')[0].firstChild.nodeValue;
541
innerHTML += "<option value="+id+">"+name+"</option>";
543
indicatorId.innerHTML = innerHTML;
552
function searchIndicators(){
555
var indicatorId = document.getElementById("indicatorIdS").value;
556
var beginValue = document.getElementById('beginValue').value;
557
var endValue = document.getElementById('endValue').value;
560
if (indicatorId=='null' || indicatorId=='')
562
str += "You must select an indicator! \n";
563
document.getElementById('endDateS').focus();
567
if (document.getElementById("orgUnit").value=='')
569
str += "You must select an organisation unit in the tree on the left hand side! \n";
571
var periodId = document.getElementById("selectedPeriod").value;
574
str += "You must select an period\n";
576
var getIndicatorFrom = document.getElementById("getIndicatorFromId").value;
578
if(getIndicatorFrom=='aggregation_service'){
579
var url = "fillMapByIndicator.action?indicatorId="+indicatorId+"&periodId="+periodId +"&valueBegin="+beginValue+"&valueEnd="+endValue;
581
var url = "fillMapByIndicatorGetFromAgg.action?indicatorId="+indicatorId+"&periodId="+periodId +"&valueBegin="+beginValue+"&valueEnd="+endValue;
590
refreshColor("#CCCCCC");
592
showHideAll('divunder');
595
var request = new Request();
596
request.setResponseTypeXML( 'features' );
597
request.setCallbackSuccess( fillMapRecieved);
601
function refreshColor(color){
602
var element =document.embeds['map'].getSVGDocument().getElementById('polygon');
603
//window.alert(color);
605
var nodeList = element.getElementsByTagName('polygon');
606
for(var i=0;i<nodeList.length;i++){
607
polygon = nodeList.item(i);
608
polygon.setAttributeNS(null, "fill", color);
613
function addMapFile(){
615
var mapFileName = document.getElementById("mapFileName").value;
616
var request = new Request();
617
request.setResponseTypeXML( 'message' );
618
request.setCallbackSuccess( addMapFileSuccess);
619
request.send( "addMapFile.action?mapFileName=" + mapFileName );
624
function addMapFileSuccess(message){
625
var message = message.firstChild.nodeValue;
626
document.getElementById( 'message' ).innerHTML = message;
630
function drillDown(){
631
var organisationUnitCode = document.getElementById('organisationUnitCode').value;
632
window.location = "drillDown.action?organisationUnitCode=" + organisationUnitCode;
635
function showCenter(id){
636
var div = document.getElementById(id);
637
var width = div.style.width;
638
var height = div.style.height;
639
var x = (document.documentElement.clientHeight / 2) - new Number(height.replace('px','')/2);
640
var y = (document.documentElement.clientWidth / 2) - new Number(width.replace('px',''))/2;
641
div.style.display = 'block';
642
div.style.top = x +"px";
643
div.style.left = y +"px";