"use strict";function sortAreasByName(n,t){return sortString(n.Name,t.Name)}function sortAreasByShort(n,t){return sortString(n.Short,t.Short)}function sortAreasAToZ(n,t){t.sort(sortAreasByName);n>0&&t.reverse()}function sortString(n,t){var i=n.toLowerCase(),r=t.toLowerCase();return i<r?-1:i>r?1:0}function sortData(n,t){return n.Val-t.Val}function populateAreaMenu(n,t,i){var u,f,e,r;if(t.length){u=t[0].options;u.length=0;f=0;isDefined(i)&&(u[f++]=new Option(i,"-"));for(e in n)r=n[e],u[f++]=r.AreaTypeId==AreaTypeIds.Practice?new Option(r.Code+" - "+r.Name,r.Code):new Option(r.Name,r.Code)}}function AreaTypes(n,t){t?_.each(n,function(n){t[n.Id]=n}):t=loaded.areaTypes;this.getAllIds=function(){return _.map(_(t).keys(),function(n){return parseInt(n)})};this.getAreaTypes=function(){return n?n:_(t).toArray()}}function addTd(n,t,i,r){n.push("<td");i&&n.push(' class="',i,'"');r&&n.push(' title="',r,'"');n.push(">",t,"<\/td>")}function addTh(n,t,i,r){n.push("<th");i&&n.push(' class="',i,'"');r&&n.push(' title="',r,'"');n.push(">",t,"<\/th>")}function setPageSelected(n,t){var i="page-selected";$(n).find(".page-selector").removeClass(i);$(t).addClass(i)}function showSpinner(){isSpinnerDisplayed||($(MAIN).hide(),$("#spinner").show(),isSpinnerDisplayed=!0)}function hideSpinner(){isSpinnerDisplayed&&($("#spinner").hide(),isSpinnerDisplayed=!1)}function trimName(n,t){return n.length>t&&(n=$.trim(n.substr(0,t))+"..."),n}function isValidValue(n){return isDefined(n)&&n!==-1}function getKey(){return _.toArray(arguments).join("-")}function showDataQualityLegend(){var n=$("#data-quality-key");showDataQuality?n.show():n.hide()}function showTargetBenchmarkOption(n){var i=!1,f=ui.getMetadataHash(),r,u,t;for(r in n)if(u=n[r].IID,f[u].Target){i=!0;break}t=$("#target-benchmark-box");i?t.show():t.hide()}function getAreaNameToDisplay(n){return n.AreaTypeId==AreaTypeIds.Practice?n.Code+" - "+n.Name:n.Name}function getShortAreaNameToDisplay(n){return n.AreaTypeId==AreaTypeIds.Practice?n.Code+" - "+n.Short:n.Short}function getIndicatorMetadata(n,t){var u=loaded.indicatorMetadata,i,r;isDefined(u[n])?ajaxMonitor.callCompleted():(isDefined(t)||(t="no"),i=(new ParameterBuilder).add("include_system_content",t).add("include_definition","yes"),FT.model.profileId===ProfileIds.SearchResults?(r="by_indicator_id",i.add("indicator_ids",indicatorIdList.getAllIds()),addRestrictToProfilesIdsParameter(i)):(r="by_group_id",i.add("group_ids",n)),ajaxGet("api/indicator_metadata/"+r,i.build(),function(t){u[n]=t;ajaxMonitor.callCompleted()}))}function getData(n,t,i){i=isDefined(i)&&!String.isNullOrEmpty(i)?"&"+i:"";ajaxGet("GetData.ashx","s="+t+i,n)}function getElementIdFromJQueryEvent(n){for(var t=n.target,i=t.id;i==="";)t=$(t).parent()[0],i=t.id;return i}function getAreaValues(n,t,i){var f=i?i:getCurrentComparator().Code,r=getIndicatorKey(n,t,f),u,e;ajaxMonitor.state.indicatorKey=r;u=loaded.areaValues;u.hasOwnProperty(r)?getAreaValuesCallback(u[r]):(e=(new ParameterBuilder).add("group_id",t.groupId).add("area_type_id",t.areaTypeId).add("parent_area_code",f).add("profile_id",t.profileId).add("comparator_id",comparatorId).add("indicator_id",n.IID).add("sex_id",n.Sex.Id).add("age_id",n.Age.Id),ajaxGet("api/latest_data/single_indicator_for_all_areas",e.build(),getAreaValuesCallback))}function getIndicatorKey(n,t,i){return getKey(t.groupId,n.IID,n.Sex.Id,n.Age.Id,t.areaTypeId,i)}function getAreaCodeToCoreDataHash(n){var t={};return _.each(n,function(n){t[n.AreaCode]=n}),t}function getValueNotesCall(){ajaxGet("api/value_notes","",getValueNotesCallback)}function getProfileIds(n){return profileCollectionIdList.length?profileCollectionIdList:[restrictSearchProfileId?restrictSearchProfileId:n]}function addRestrictToProfilesIdsParameter(n){n.add("restrict_to_profile_ids",getProfileIds().join(","))}function SexAndAge(){}function MutuallyExclusiveDisplay(n){this.A=n.a;this.B=n.b}function toggleQuintileLegend(n,t){t?n.show():n.hide()}function ValueSuffix(n){this.unit=n}function ValuePrefix(n){this.getLabel=function(){return n&&n.ShowLeft?'<span class="unit">'+n.Label+"<\/span>":""}}function ValueWithUnit(n){this.prefix=new ValuePrefix(n).getLabel();this.suffix=new ValueSuffix(n)}function ElementManager(){var n=this,i=[],t=[],r=function(n){return _.map(n,function(n){n.charAt(0)!=="."&&(n="#"+n);var r=$(n);return _.indexOf(i,n)<0&&(t.push(r),i.push(n)),r})};n.add=function(n){return r(n)};n.addNotShown=function(n){r(n)};n.getAll=function(){return t};n.displayElements=function(n){var r,i;for(r in t)i=t[r],_.indexOf(n,i)&&i.hide();_.each(n,function(n){n.show()})}}function getIndicatorDataQualityHtml(n){var t,i;return showDataQuality&&n&&(t=parseInt(n),t>0)?(i=t===1?"red":t===2?"orange":"green",['&nbsp;<span class="indicator-data-quality-container" title="',getIndicatorDataQualityTooltipText(t),'"><img src="',FT.url.img,"markers/square-",i,'.png" /><\/span>'].join("")):""}function getIndicatorDataQualityTooltipText(n){switch(n){case 1:return"There are significant concerns regarding the quality of this data";case 2:return"There are some concerns regarding the quality of this data";case 3:return"The quality of this data is robust";default:return" "}}function getAddressText(n){var i=[],r=["A1","A2","A3","A4","Postcode"],t;for(var u in r)t=n[r[u]],isDefined(t)&&i.push(t);return i.join(", ")}function getColourFromSignificance(n,t,i,r){if(r)switch(!0){case n>0&&n<6:var u="quintile"+n;return i[u]}else if(t)switch(n){case 1:return i.worse;case 2:return i.same;case 3:return i.better}else switch(n){case 1:return i.bobLower;case 2:return i.same;case 3:return i.bobHigher}return i.none}function initAreaSearch(n,t,i){var r=$(n),u=$("#no-matches-found"),f="search-watermark",e="title",o;r.focus(function(){r.val("").removeClass(f)}).blur(function(){r.val()===""&&r.attr(e)!==""&&r.val(r.attr(e)).addClass(f);u.hide()}).keydown(function(n){var t=n.keyCode?n.keyCode:n.which;u.is(":visible")&&t==13&&n.preventDefault()}).keyup(function(){r.val().length||u.hide()});o=function(){var n=r.position();u.width(r.width()).css({top:n.top+SEARCH_NO_RESULT_TOP_OFFSET,left:n.left+SEARCH_NO_RESULT_LEFT_OFFSET}).show();$("#ui-id-1").hide()};r.autocomplete({source:function(n,f){ajaxAreaSearch(r.val(),function(n){n.length>0?(u.hide(),f(new AreaSearchResults(n).suggestions)):o()},t,i)},delay:0,autoFocus:!0,minLength:3,select:function(n,t){n.preventDefault();areaSearchResultSelected(u,t.item.result);logEvent("Search","AreaSearch",t.item.result.PlaceName)},open:function(){r.removeClass("ui-corner-all").addClass("ui-corner-top")},close:function(){r.removeClass("ui-corner-top").addClass("ui-corner-all")}})}function ajaxAreaSearch(n,t,i){var r=AreaTypeIds.CCG,u=[];i||u.push(r);getAreaSearchResults(n,t,r,!0,u)}function getAreaSearchResults(n,t,i,r,u){var f=new ParameterBuilder;f.add("search_text",n);f.add("no_cache",!0);f.add("polygon_area_type_id",i);f.add("include_coordinates",r);f.add("parent_areas_to_include_in_results",u.join(","));ajaxGet("api/area_search_by_text",f.build(),t)}function AreaSearchResults(n){var u=[],t,i,r,f=function(n,t){return n.toLowerCase()===t.toLowerCase()};this.suggestions=$.map(n,function(n){return(r=n.PlaceName,t=n.PolygonAreaName,i=t===""||f(r,t)?r:r+", "+t,!_.any(u,function(n){return f(n,i)}))?(u.push(i),{label:i,areaName:t,result:n}):null})}function fitMapToPracticeResults(n,t){n.fitBounds(t);var i=google.maps.event,r=i.addListenerOnce(n,"bounds_changed",function(){var t=13;n.getZoom()>t&&n.setZoom(t);i.removeListener(r)})}function getGoogleMap(){var n=google.maps;return new n.Map($("#map-canvas")[0],{zoom:6,mapTypeId:n.MapTypeId.ROADMAP,panControl:!1,zoomControl:!0,scaleControl:!1,streetViewControl:!1,mapTypeControl:!1})}function CoreDataSetInfo(n){this.data=n}function formatCount(n){return n.isCount()?new CommaNumber(n.data.Count).rounded():NO_DATA}function getTrendMarkerImage(n,t){var r=PolarityIds.RAGLowIsGood,u=PolarityIds.RAGHighIsGood,i;switch(n){case TrendMarkerValue.Up:i="up_"+(t===r?"red":t===u?"green":"blue");break;case TrendMarkerValue.Down:i="down_"+(t===r?"green":t===u?"red":"blue");break;case TrendMarkerValue.NoChange:i="no_change";break;default:i="no_calc"}return"<img src='/images/trends/"+i+".png'/>"}function exportChartAsImage(n){n&&n.exportChart({type:"image/png"},{})}function getComparatorId(){return comparatorId}var FT={menus:{},data:{}},loaded={areaLists:{},areaTypes:{},indicatorMetadata:{},yearTypes:{},comparatorMethods:{},ciMethods:{},ages:{},areaValues:{},areaMappings:{},parentAreaGroups:{},parentAreas:{},boundaries:{},valueNotes:{},groupDataAtDataPoint:{},trendMarkers:{}},PAGE_MODES={TARTAN:0,AREA_SPINE:1,INDICATOR_DETAILS:3,AREA_TRENDS:4,METADATA:6,INEQUALITIES:7,MAP:8,DOWNLOAD:9,SCATTER_PLOT:10,ENGLAND:11,POPULATION:12,REPORTS:13,BOX_PLOT:14},pages=function(){mode=null;var n=[],r=[],t=[],u="#tabs",f="jqIdsNotInitiallyShown",i=new ElementManager,e='{{#pages}}<div id="page-{{id}}" onclick="executeWithLock({{gotoName}});" class="page-selector page"><div class="pageIcon page-{{#icon}}{{icon}}{{/icon}}{{^icon}}{{id}}{{/icon}}">&nbsp;<\/div><span>{{{title}}}<\/span><\/div>{{/pages}}',o=function(){var t=n[mode].resize;t&&t()},s=function(){var t=n[mode],r;return t.jqs||(t.jqs=i.add(t.jqIds),r=t[f],r&&i.addNotShown(r)),t.jqs};return{add:function(i,u,f,e){var o=u;o.number=i;t.push(o);n[i]=o;r[i]=isDefined(e)?e:{}},isInJqIdsNotInitiallyShown:function(t){var i=n[mode][f];return i?_.indexOf(i,t)>-1:!1},isTrue:function(n){var t=r[mode];return isDefined(t[n])?t[n]===!0:!1},goTo:function(i){var r=i?n[i]:t[0];r.goto(null)},getDefault:function(){return mode?n[mode].number:t[0].number},displayElements:function(){i.displayElements(s());var t=n[mode].showHide;t&&t()},goToCurrent:function(){this.goTo(mode)},setCurrent:function(t){mode=t;setPageSelected(u,"#page-"+n[mode].id)},init:function(){var n="tabs",i,r;templates.add(n,e);$(u).append(templates.render(n,{pages:t}));i=$("#main");_.each(t,function(n){if(n.needsContainer){var t=n.id+"-container";n.containerId=t;n.jqIds.push(t);i.prepend('<div id="'+t+'" class="standard-width clearfix" style="display:none;"><\/div>')}else n.containerId=n.id});this.setCurrent(this.getDefault());$(window).resize(function(){clearTimeout(r);r=setTimeout(o,100)})},getContainerJq:function(){return $("#"+n[mode].containerId)},getCurrent:function(){return mode},getCurrentPage:function(){return n[mode]}}}(),HC,mode,FTWrapper;FT.config={};FT.model={areaTypeId:null,groupId:null,parentCode:null,profileId:null,parentTypeId:null,areaCode:null,iid:null,ageId:null,sexId:null,nearestNeighbour:null,_reset:function(){var n=FT.model;n.groupId=groupIds[0];n.areaTypeId=defaultAreaType},restore:function(){this.update();initAreaData();updateDomains()},update:function(){var i,t,n,r;this._reset();i=this;t=ftHistory.getKeyValuePairsFromHash();_.size(t)&&(n=t.gid,n&&(i.groupId=parseInt(n)),n=t.par,n&&(i.parentCode=n),n=t.ati,n&&(i.areaTypeId=parseInt(n)),n=t.pat,n&&(i.parentTypeId=parseInt(n)),n=t.are,i.areaCode=n?n:null,n=t.iid,n&&(i.iid=parseInt(n)),n=t.age,n&&(i.ageId=parseInt(n)),n=t.sex,n&&(i.sexId=parseInt(n)),n=t.nn,i.nearestNeighbour=n?n:null,n=t.page,r=n?parseInt(n):pages.getDefault(),pages.setCurrent(r))},_addPropertyToParametersIfDefined:function(n,t,i){this[n]&&!String.isNullOrEmpty(this[n])&&i.push(t,this[n])},toString:function(){var t=this,n=["page",pages.getCurrent()];return t._addPropertyToParametersIfDefined("groupId","gid",n),t._addPropertyToParametersIfDefined("parentTypeId","pat",n),t._addPropertyToParametersIfDefined("parentCode","par",n),t._addPropertyToParametersIfDefined("areaTypeId","ati",n),t._addPropertyToParametersIfDefined("areaCode","are",n),t._addPropertyToParametersIfDefined("iid","iid",n),t._addPropertyToParametersIfDefined("ageId","age",n),t._addPropertyToParametersIfDefined("sexId","sex",n),t._addPropertyToParametersIfDefined("nearestNeighbour","nn",n),n.join("/")}};SexAndAge.prototype={getLabel:function(n){var t=[],i;return(n.StateSex||n.StateAge)&&(i=n.StateSex&&n.StateAge,t.push(" ("),n.StateSex&&t.push(n.Sex.Name),i&&t.push(", "),n.StateAge&&t.push(n.Age.Name),t.push(")")),t.join("")}};MutuallyExclusiveDisplay.prototype={showA:function(n){var t=this.A,i=this.B;(n?t:i).show();(n?i:t).hide()},showB:function(){this.showA(!1)}};ValueSuffix.prototype={_getUnitHtml:function(){return'<span class="unit">'+this.unit.Label+"<\/span>"},_isShortSuffix:function(){return!!this.unit&&this.unit.Label==="%"},getShortLabel:function(){return this._isShortSuffix()?this._getUnitHtml():""},getFullLabelIfNoShort:function(){return this._isShortSuffix()?"":this.getFullLabel()},getFullLabel:function(){var n=this,t=n.unit;return!t||t.ShowLeft?"":n._isShortSuffix()?n.getShortLabel():" "+n._getUnitHtml()}};ValueWithUnit.prototype={_getNumber:function(n,t){var i=t&&t.noCommas?n:new CommaNumber(n).unrounded();return this.prefix+i},getFullLabel:function(n,t){return this._getNumber(n,t)+this.suffix.getFullLabel()},getShortLabel:function(n,t){return this._getNumber(n,t)+this.suffix.getShortLabel()}};HC={credits:{enabled:!1},noLineMarker:{enabled:!1,symbol:"x"}};CoreDataSetInfo.prototype={isDefined:function(){return!!this.data},isNote:function(){var n=this.data;return n?!!n.NoteId:!1},getNoteId:function(){return this.isNote()?this.data.NoteId:null},isValue:function(){var n=this.data;return n?n.ValF!=="-":!1},getValF:function(){return this.data.ValF},isCount:function(){var n=this.data;return n?n.Count!==null&&n.Count!==-1:!1},areCIs:function(){var n=this.data;return this.isValue()?n.hasOwnProperty("LoCI")&&n.LoCI!==-1:!1},areValueAndCIsZero:function(){if(!this.areCIs())return!1;var n=function(n){return isDefined(n)?parseInt(n.replace(".","").replace("-","")):-1},t=this.data,i=n(t.UpCIF),r=n(t.LoCIF),u=n(t.ValF);return i===0&&r===0&&u===0}};var REGIONAL_COMPARATOR_ID=1,NATIONAL_COMPARATOR_ID=4,TARGET_COMPARATOR_ID=2,NOT_APPLICABLE="n/a",NATIONAL_CODE="E92000001",SEARCH_NO_RESULT_TOP_OFFSET=0,SEARCH_NO_RESULT_LEFT_OFFSET=0,isSpinnerDisplayed=!0;FT.ajaxLock=null;mode=null;FTWrapper={model:function(){return FT.model},url:function(){return FT.url},display:{getBenchmarkAreaName:function(){return getCurrentComparator().Name},getAreaName:function(n){return new AreaCollection(loaded.areaLists[FT.model.areaTypeId]).find(n).Name},getparentAreaName:function(){return getParentArea().Name},getParentTypeName:function(){return new ParentTypes(model).getCurrent().Name},getAreaTypeName:function(){return FT.menus.areaType.getName()},getIndicatorName:function(){return getIndicatorName(indicatorId)},getGroupName:function(){return getCurrentDomainName()},gettCurrentTabId:function(){return pages.getCurrent()}},coreDataHelper:{addOrderandPercentilesToData:function(n){return addOrderandPercentilesToData(n)},valueWithUnit:function(n){return new ValueWithUnit(n)}},indicatorHelper:{getMetadataHash:function(){return loaded.indicatorMetadata[FT.model.groupId]}},bridgeDataHelper:{getGroopRoot:function(){return getGroupRoot()},getComparatorId:function(){return getComparatorId()},getCurrentComparator:function(){return getComparatorById(getComparatorId())}}}