﻿dojo.require("dojo.parser");dojo.require("dijit.form.Button");dojo.require("dijit.Menu");dojo.require("dijit.form.Textarea");dojo.require("dijit.Dialog");var _availableCategories={},_availableIndicators=null,_selectedCategoryId="",_selectedIndicatorId="",selectedIndicatorText="",selectedIndicatorSource="",_selectedIndicators=[],_indicatorsNumber=0;dojo.addOnLoad(initialize);function initialize(){_showHelp&&showHomeDialog();createAddIndicatorButton();displayInfoHelp();loadCategories()}function createAddIndicatorButton(){params={id:"addIndicatorBtn",label:_addIndicatorText,iconClass:"addImg",disabled:true};var a=new dijit.form.Button(params,dojo.byId("addButtonPlaceHolder"));dojo.connect(a,"onClick",addCurrentIndicator)}function loadCategories(){dojo.xhrGet({url:_baseUrl+"Categories/get/",handleAs:"json",timeout:5e3,load:function(a){initCategoriesDropDown(a);return a},error:function(b,a){console.error("HTTP status code: ",a.xhr.status);alert(a.xhr.responseText);return b}})}function initCategoriesDropDown(a){var d=new dijit.form.DropDownButton({label:_categoriesDropDownTitle},dojo.byId("categoriesPlaceHolder")),c=new dijit.Menu;_availableCategories={};for(category in a){var b=new dijit.MenuItem({id:category,label:a[category],disabled:false});c.addChild(b);dojo.connect(b,"onClick",onCategorySelected);_availableCategories[category]=a[category]}d.dropDown=c}function onCategorySelected(a){var b=a.target.id.indexOf("_text");if(b!=-1){var c=a.target.id.substr(0,b);registerCategorySelection(c);registerIndicatorSelection("");loadIndicators(c)}else console.debug("endPos shouldn't be negative which means category id is incorrect: "+a.target.id)}function registerCategorySelection(b){var a="currentCategorySelected";_selectedCategoryId=b;var d=_availableCategories[b],c=dojo.fadeOut({node:a,duration:200});dojo.connect(c,"onEnd",function(){dojo.byId(a).innerHTML=d;dojo.fadeIn({node:a,duration:200}).play()});c.play()}function loadIndicators(a){dojo.xhrGet({url:_baseUrl+"Indicators/get/?catId="+a,handleAs:"json",timeout:5e3,load:function(b){initIndicatorsButton(a,b);return b},error:function(b,a){console.error("HTTP status code: ",a.xhr.status);alert(a.xhr.responseText);return b}})}function initIndicatorsButton(g,a){var e="indicatorsDropDown",b=dijit.byId(e);if(b!=null)b.dropDown.destroyRecursive();else b=new dijit.form.DropDownButton({id:e,label:_indicatorsDropDownTitle},dojo.byId("indicatorsPlaceHolder"));var d=new dijit.Menu;_availableIndicators={};for(indicatorId in a){var f=implodeMenuItemId(g,indicatorId);params={id:f,label:a[indicatorId][1]};var c=new dijit.MenuItem(params);d.addChild(c);dojo.connect(c,"onClick",onIndicatorSelected);_availableIndicators[indicatorId]=[a[indicatorId][1],a[indicatorId][2],a[indicatorId][3]]}b.dropDown=d}function implodeMenuItemId(b,a){return b+"__"+a}function explodeMenuItemId(a){var b=[],c=a.indexOf("__"),e=a.substr(0,c);b.push(e);var f=a.lastIndexOf("_text"),d=a.substr(c+2,f-c-2);b.push(d);return b}function onIndicatorSelected(b){var a=explodeMenuItemId(b.target.id);registerIndicatorSelection(a[1])}function registerIndicatorSelection(a){var b="currentIndicatorSelected";_selectedIndicatorId=a;var c=_indicatorsNumber>0?_chooseAnotherIndicatorText:_chooseIndicatorText;c=_indicatorsNumber>=_maxIndicators?"":'<img class="leftArrow" src="'+_baseUrl+'public/images/left.png" alt=""/>&nbsp;'+c;var d="";if(a!=""){var g=_availableIndicators[a][2].toString();if(g.substr(0,3)!="ind")d='&nbsp;&nbsp;<img src="'+_baseUrl+'public/images/details.png" class="viewDetailsImg" style="position: relative; top: 2px;" alt="" onclick="viewIndicatorDetails(\''+a+"');\"/>"}selectedIndicatorText=a==""?c:_availableIndicators[a][0]+d;var f=selectedIndicatorText,e=dojo.fadeOut({node:b,duration:200});dojo.connect(e,"onEnd",function(){dojo.byId(b).innerHTML=f;var a=dojo.fadeIn({node:b,duration:200});dojo.connect(a,"onEnd",function(){dijit.byId("addIndicatorBtn").setAttribute("disabled",!canAddIndicator(_selectedIndicatorId))});a.play()});e.play()}function viewIndicatorDetails(a){var c=_availableIndicators[a][0],b=_availableIndicators[a][1],d=_availableIndicators[a][2];showIndicatorDetailsDialog(c,d,b)}function viewSelectedIndicatorDetails(a){var c=_selectedIndicators[a][2],b=_selectedIndicators[a][3],d=_selectedIndicators[a][4];showIndicatorDetailsDialog(c,d,b)}function showIndicatorDetailsDialog(g,e,d){for(var c="",b=0;b<e.length;b++)c+='<p style="font-family: Georgia, Serif;">'+e[b]+"</p>";var a="";if(d!=""){a='<p class="source">Source: ';a+=d;a+="</p>"}var f=new dijit.Dialog({id:"indicatorDetailsDialog",title:g,onCancel:destroyIndicatorDetailsDialog}),h=c+"<hr/>"+a;f.setContent(h);f.show()}function destroyIndicatorDetailsDialog(){var a=dijit.byId("indicatorDetailsDialog");a!=null&&a.destroyRecursive()}function loadData(){hideInfoHelp();for(var b="",a=0;a<_selectedIndicators.length;a++){b+="catId[]="+_selectedIndicators[a][0]+"&indId[]="+_selectedIndicators[a][1];if(a+1<_selectedIndicators.length)b+="&"}dojo.xhrGet({url:_baseUrl+"Data/get/?"+b,handleAs:"json",timeout:5e3,load:function(a){drawChart(a);return a},error:function(a,b){console.error("HTTP status code: ",b.xhr.status);return a}})}function addCurrentIndicator(){if(_selectedCategoryId!=""&&_selectedIndicatorId!=""){_selectedIndicators.push([_selectedCategoryId,_selectedIndicatorId,_availableIndicators[_selectedIndicatorId][0],_availableIndicators[_selectedIndicatorId][1],_availableIndicators[_selectedIndicatorId][2]]);_indicatorsNumber++;registerIndicatorSelection("");var a=dojo.fadeOut({node:"chart_div",duration:200});dojo.connect(a,"onEnd",function(){loadData()});a.play();showSelectedIndicators()}}function canAddIndicator(b){var c=b!=""&&_selectedIndicators.length<_maxIndicators;if(b!="")for(var a=0;a<_selectedIndicators.length&&c;a++)c=_selectedIndicators[a][1]!=b;return c}function showSelectedIndicators(){var c="selectedIndicators";for(var b='<p style="margin: 0px;">',a=0;a<_selectedIndicators.length;a++){var f="removeBtn"+a,d=dijit.byId(f);d!=null&&d.destroyRecursive();b+='<div id="removeBtnPlaceHolder'+a+'"></div>';b+="&nbsp;&nbsp;"+_selectedIndicators[a][2];var g=_selectedIndicators[a][3].toString();if(g.substr(0,3)!="ind")b+='&nbsp;&nbsp;<img src="'+_baseUrl+'public/images/details.png" class="viewDetailsImg" style="position: relative; top: 2px;" alt="" onclick="viewSelectedIndicatorDetails(\''+a+"');\"/>";if(a+1<_selectedIndicators.length)b+="<br/>"}b+="</p>";var e=dojo.fadeOut({node:c,duration:200});dojo.connect(e,"onEnd",function(){dojo.byId(c).innerHTML=b;for(var a=0;a<_selectedIndicators.length;a++)createRemoveIndicatorButton(a,"removeBtnPlaceHolder"+a);dojo.fadeIn({node:c,duration:200}).play()});e.play()}function createRemoveIndicatorButton(c,a){params={id:"removeBtn"+c,label:"Remove",iconClass:"deleteImg"};var b=new dijit.form.Button(params,dojo.byId(a));dojo.connect(b,"onClick",deleteSelectedIndicator)}function deleteSelectedIndicator(a){var d=a.target.id.substr(9,a.target.id.length-9);_selectedIndicators.splice(d,1);var b=dijit.byId(a.target.id);b!=null&&b.destroyRecursive();var c=dojo.fadeOut({node:"chart_div",duration:200});dojo.connect(c,"onEnd",function(){loadData()});c.play();_indicatorsNumber--;registerIndicatorSelection("");showSelectedIndicators()}function showHomeDialog(){var b="</p>",a="<p>"+_homeParagraph1+b;a+="<h1>"+_homeTitle1+"</h1>";a+="<p>"+_homeParagraph2+b;a+="<p>"+_homeParagraph3+b;a+="<h1>"+_homeTitle2+"</h1>";a+='<p style="font-style: italic;">'+_homeParagraph4+b;a+='<br/><hr/><div style="text-align: center;"><input type="button" onclick="destroyHomeDialog()" value="'+_close+'"/></div>';var c=new dijit.Dialog({id:"homeDialog",title:_homeTitle,onCancel:destroyHomeDialog}),d=a;c.setContent(d);c.show()}function destroyHomeDialog(){var a=dijit.byId("homeDialog");a!=null&&a.destroyRecursive()}function displayInfoHelp(){var b="</p>",a="<p>"+_homeParagraph1+b;a+="<h1>"+_homeTitle1+"</h1>";a+="<p>"+_homeParagraph2+b;a+="<p>"+_homeParagraph3+b;a+="<h1>"+_homeTitle2+"</h1>";a+='<p style="font-style: italic;">'+_homeParagraph4+b;var c=dojo.byId("info_div");if(c){c.style.padding="0px 40px 0px 20px";c.style.textAlign="justify";c.innerHTML=a}}function hideInfoHelp(){var a=dojo.byId("info_div");if(a)a.innerHTML=""};