"use strict";function haveData(a){return 0==a.walking.length&&0==a.cycling.length&&0==a.swimming.length&&0==a.running.length}function calculateWidth(a){var b=$("#"+a),c=b.width(),d=1*c*25/100;return setTimeout(function(){b.find("div.ng-scope").css("width",d+"px")},500),d}function getMonday(a){a=new Date(a);var b=a.getDay(),c=a.getDate()-b+(0==b?-6:1);return new Date(a.setDate(c))}function getNextWeek(a){var b=new Date(a);return b.setDate(b.getDate()+7),getMonday(b)}function getLastWeek(a){var b=new Date(a),c=new Date(b.getFullYear(),b.getMonth(),b.getDate()-7);return c}function getNextDay(a){var b=new Date(a),c=864e5,d=new Date(1*(b.getTime()+c));return d}function showCalendar(a){var b=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],c=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],d=$("#plansHead").find("div.col-md-2"),e=0;do{var f=(b[a.getDay()],a.getDate(),"
"+b[a.getDay()]+""+a.getDate()+" "+c[a.getMonth()]+"
");$(d[e]).html(f),a=getNextDay(a),e++}while(6>=e)}function addLineBreak(a){var b=a.split(" ");a="";for(var c=0;c2&&(a+="");return a}function wrapWeights(a){var b=[],c=0,d=0,e=99999,f=0;for(var g in a){var h=a[g];for(var i in h){var j=i.split(" "),k=j[0],l=j[1];k=k.split("-"),l=l.split(":");var m=Date.UTC(k[0],k[1]-1,k[2],l[0],l[1],l[2]),n="";h[i].weight?n=h[i].weight:h[i].bmi?n=h[i].bmi:h[i].body_fat?n=h[i].body_fat:h[i].waist?n=h[i].waist:h[i].calories_burned&&(n=h[i].calories_burned),""==n&&(n=0),b.push([m,n]),c+=1*n,d++,e>1*n&&(e=1*n),1*n>f&&(f=1*n)}}return 0==d?null:(c/=d,b.sort(),[b,c,e,f])}function wrapHearts(a,b){var c=[],d=0,e=0,f=99999,g=0;for(var h in a){var i=a[h];for(var j in i){var k=j.split(" "),l=k[0],m=k[1];l=l.split("-"),m=m.split(":");var n=Date.UTC(l[0],l[1]-1,l[2],m[0],m[1],m[2]),o="";"systolic"==b?o=i[j].blood_pressure.systolic:"diastolic"==b?o=i[j].blood_pressure.diastolic:"heart_rate"==b&&(o=i[j].heart_rate),""==o&&(o=0),c.push([n,o]),d+=1*o,e++,f>1*o&&(f=1*o),1*o>g&&(g=1*o)}}return 0==e?null:(d/=e,c.sort(),[c,d,f,g])}function wrapExercises(a){var b=[],c=[],d=[],e=[],f=0,g=0,h=99999,i=0;for(var j in a){var k=a[j];for(var l in k){var m=l.split(" "),n=m[0],o=m[1];n=n.split("-"),o=o.split(":");var p=Date.UTC(n[0],n[1]-1,n[2],"08","08","08"),q="";k[l].calories_burned&&(q=k[l].calories_burned),""==q&&(q=0),"walking"==k[l].type?b.push([p,q]):"cycling"==k[l].type?c.push([p,q]):"swimming"==k[l].type?d.push([p,q]):"running"==k[l].type&&e.push([p,q]),f+=1*q,g++,h>1*q&&(h=1*q),1*q>i&&(i=1*q)}}return 0==g?null:(f/=g,b.sort(),c.sort(),d.sort(),e.sort(),[b,c,d,e,f,h,i])}function wrapCholesterol(a){var b=[],c=0;for(var d in a){var e=a[d];for(var f in e){var g=f.split(" "),h=g[0],i=g[1];h=h.split("-"),i=i.split(":");var j=Date.UTC(h[0],h[1]-1,h[2],"08","08","08"),k=""+h[2]+" "+getMonth(h[1])+" "+h[0],l="",m="",n="",o="",p="";e[f].hdl&&(l=e[f].hdl),e[f].ldl&&(m=e[f].ldl),e[f].total_cholesterol&&(o=e[f].total_cholesterol),e[f].triglycerides&&(p=e[f].triglycerides),e[f]["tc/hdl"]&&(n=e[f]["tc/hdl"].toFixed(2)),c++,b.push({timeSort:j,time:k,hdl:l,ldl:m,tchdl:n,total_cholesterol:o,triglycerides:p})}}return 0==c?null:(b.sort(SortByDate),b)}function getMonth(a){var b="";switch(a=""+a){case"01":b="Jan";break;case"02":b="Feb";break;case"03":b="Mar";break;case"04":b="Apr";break;case"05":b="May";break;case"06":b="Jun";break;case"07":b="Jul";break;case"08":b="Aug";break;case"09":b="Sep";break;case"10":b="Oct";break;case"11":b="Nov";break;case"12":b="Dec"}return b}function SortByDate(a,b){return a.timeSortb.timeSort?1:0}angular.module("gevityWebApp",["ngAnimate","ngAria","ngCookies","ngMessages","ngResource","ngRoute","ngSanitize","ngTouch","LocalStorageModule"]).config(["$routeProvider",function(a){a.when("/",{templateUrl:"views/login.html",controller:"LoginCtrl"}).when("/data",{templateUrl:"views/home.html",controller:"HomeCtrl"}).when("/about",{templateUrl:"views/about.html",controller:"AboutCtrl"}).when("/login",{templateUrl:"views/login.html",controller:"LoginCtrl"}).when("/logout",{templateUrl:"views/logout.html",controller:"LogoutCtrl"}).when("/signup",{templateUrl:"views/signup.html",controller:"UserCtrl"}).when("/dashboard",{templateUrl:"views/main.html",controller:"MainCtrl"}).when("/compliance",{templateUrl:"views/compliance.html",controller:"ComplianceCtrl"}).when("/plans",{templateUrl:"views/plans.html",controller:"PlansCtrl"}).otherwise({redirectTo:"/"})}]).factory("User",function(){return{user:"",logged:""}}).controller("AppCtrl",["$scope","LoginService","User","$location",function(a,b,c,d){a.logged=c.logged,a.logout=function(){b.logout(c,d)}}]).run(["$rootScope",function(a){a.version="Version: qa-0.5.6",a.debug_binds=function(b){b.ctrlKey&&68===b.which&&alert(a.version)}}]),angular.module("gevityWebApp").factory("Constants",[function(){var a="http://",b=a+"dev-gevity-api.elasticbeanstalk.com/";return{URL_LOGIN:b+"api/login",URL_SINGUP:b+"api/signup/user",URL_LOGOUT:b+"api/logout",URL_GET_PROFILE:b+"api/:userId/profile",URL_BODY_READING:b+"api/:userId/readings/body/:date",URL_BODY_WEIGHT_GOAL:b+"api/:userId/goals/weight",URL_BODY_BMI_GOAL:b+"api/:userId/goals/bmi",URL_BODY_BODYFAT_GOAL:b+"api/:userId/goals/body_fat",URL_BODY_WAIST_GOAL:b+"api/:userId/goals/waist",URL_PHYSICAL_EXERCISE_GOAL:b+"api/:userId/goals/exercise",URL_BODY_SYSTOLIC_BLOOD_PRESSURE_GOAL:b+"api/:userId/goals/systolic_blood_pressure",URL_HEART_READING:b+"api/:userId/readings/heart/:date",URL_PHYSICAL_EXERCISE_READING:b+"api/:userId/readings/physical/exercise/:date",URL_BLOODWORK_READING:b+"api/:userId/readings/bloodwork/:date",URL_CHOLESTEROL_GOAL:b+"api/:userId/goals/cholesterol"}}]),angular.module("gevityWebApp").directive("resize",function(){return{restrict:"A",link:function(a,b){a.$watch(function(){return{w:b.width(),h:b.height()}},function(){setTimeout(function(){var a=$("#followers").find("div.asideshadow").outerHeight(),b=$("#userDetail").outerHeight(),c=$(document).height(),d="";d=b>a?b:a,c>d&&(d=c),d=""+d+"px",$("#followers").css({height:d}),$("#followers").find("div.asideshadow").css({height:d}),$("#followers").find("div.leftContainer").css({height:d,top:"-"+d}),$("#userDetail").css({height:d})},800)},!0)}}}),angular.module("gevityWebApp").directive("resetField",function(){return{scope:{},link:function(a,b){b.clearable()}}}),angular.module("gevityWebApp").directive("weightchart",function(){return{scope:{model:"=weightchart"},link:function(a,b){a.$watch("model",function(a,c){if(a!==c){var d,e=0==a.bmi.length,f=0==a.weight.length,g=0==a.bodyfat.length,h=b.parent().find("input"),i=1*h[0].value-10,j=(1*h[1].value+10,1*h[2].value),k=1*h[3].value-10,l=(1*h[4].value+10,1*h[5].value),m=1*h[6].value-10,n=(1*h[7].value+10,1*h[8].value);d=h.length>9?JSON.parse(h[9].value):a;{$(b).highcharts({chart:{zoomType:"x",marginTop:65,resetZoomButton:{theme:{display:"none"}},isZoomed:!1,events:{load:function(){$("#weightTitle").removeClass("hidden"),$("#bmiTitle").removeClass("hidden"),$("#bodyfatTitle").removeClass("hidden"),$("#avgTitle").addClass("hidden"),f&&($("#weightTitle").addClass("hidden"),$("#weightActual").addClass("hidden")),e&&($("#bmiTitle").addClass("hidden"),$("#bmiActual").addClass("hidden")),g&&($("#bodyfatTitle").addClass("hidden"),$("#bodyfatActual").addClass("hidden")),void 0!=this.series[0].yAxis.plotLinesAndBands[0].svgElem&&this.series[0].yAxis.plotLinesAndBands[0].svgElem.hide(),void 0!=this.series[1].yAxis.plotLinesAndBands[0].svgElem&&this.series[1].yAxis.plotLinesAndBands[0].svgElem.hide(),void 0!=this.series[2].yAxis.plotLinesAndBands[0].svgElem&&this.series[2].yAxis.plotLinesAndBands[0].svgElem.hide()}}},exporting:{buttons:{contextButton:{align:"right",y:-5}}},title:{text:null},subtitle:{text:null},legend:{enabled:!0},credits:{enabled:!1},plotOptions:{series:{events:{legendItemClick:function(){var a=this;return"Body Fat"==a.legendItem.textStr&&g?!1:("Body Fat"==a.legendItem.textStr&&a.chart.yAxis[2].update(a.chart.series[2].visible?{labels:{enabled:!1},title:{text:null}}:{labels:{enabled:!0},title:{text:"Body Fat (%)"}}),"BMI"==a.legendItem.textStr&&e?!1:("BMI"==a.legendItem.textStr&&a.chart.yAxis[1].update(a.chart.series[1].visible?{labels:{enabled:!1},title:{text:null}}:{labels:{enabled:!0},title:{text:"BMI"}}),"Weight"==a.legendItem.textStr&&f?!1:("Weight"==a.legendItem.textStr&&a.chart.yAxis[0].update(a.chart.series[0].visible?{labels:{enabled:!1},title:{text:null}}:{labels:{enabled:!0},title:{text:"Weight (kg)"}}),void setTimeout(function(){var b=0,c=0,d="";a.chart.series[0].visible&&!f?(b++,c=0,$("#weightTitle").removeClass("hidden"),$("#weightActual").removeClass("hidden"),d="weight"):($("#weightTitle").addClass("hidden"),$("#weightActual").addClass("hidden")),a.chart.series[1].visible&&!e?(b++,c=1,$("#bmiTitle").removeClass("hidden"),$("#bmiActual").removeClass("hidden"),d="bmi"):($("#bmiTitle").addClass("hidden"),$("#bmiActual").addClass("hidden")),a.chart.series[2].visible&&!g?(b++,c=2,$("#bodyfatTitle").removeClass("hidden"),$("#bodyfatActual").removeClass("hidden"),d="bodyfat"):($("#bodyfatTitle").addClass("hidden"),$("#bodyfatActual").addClass("hidden")),b>1?(void 0!=a.chart.series[0].yAxis.plotLinesAndBands[0].svgElem&&a.chart.series[0].yAxis.plotLinesAndBands[0].svgElem.hide(),void 0!=a.chart.series[1].yAxis.plotLinesAndBands[0].svgElem&&a.chart.series[1].yAxis.plotLinesAndBands[0].svgElem.hide(),void 0!=a.chart.series[2].yAxis.plotLinesAndBands[0].svgElem&&a.chart.series[2].yAxis.plotLinesAndBands[0].svgElem.hide(),$("#avgTitle").addClass("hidden")):1==b&&(void 0!=a.chart.series[c].yAxis.plotLinesAndBands[0].svgElem&&a.chart.series[c].yAxis.plotLinesAndBands[0].svgElem.show(),$("#avgTitle").find("span").addClass("hidden"),$("#"+d+"Avg").removeClass("hidden"),$("#avgTitle").removeClass("hidden")),$("#titular").find("label.first").removeClass("first");var h=$("#titular").find("label:visible")[0];$(h).addClass("first"),$("#titular span").find("span.first").removeClass("first");var i=$("#titular span").find("span:visible")[0];$(i).addClass("first")},500))))}}}},xAxis:{type:"datetime",dateTimeLabelFormats:{day:"%e %b %Y",month:"%b %y",year:"%y"},startOnTick:!0,endOnTick:!0,labels:{staggerLines:2},events:{afterSetExtremes:function(){if(!this.chart.options.chart.isZoomed){var a=(1*$("#xAxisMin").val()).toFixed(2),b=(1*this.chart.xAxis[0].min).toFixed(2),c=(($("#xAxisMax").val()-1).toFixed(2),(1*this.chart.xAxis[0].max).toFixed(2));if(!isNaN(b))if(a!=b)$("#xAxisMax").val(c),$("#xAxisMin").val(b),$("#xAxisMin").trigger("change"),this.chart.options.chart.isZoomed=!0,this.chart.options.chart.isDirty=!0;else;}}}},yAxis:[{labels:{style:{color:"#19B344"}},title:{align:"high",offset:0,text:"Weight (kg)",rotation:0,y:-20,x:-10},min:i,plotBands:[{from:i,to:j,color:{linearGradient:{x1:1,y1:1,x2:1,y2:0},stops:[[0,"#FFFFFF"],[1,"#ADF600"]]}}]},{labels:{style:{color:"#D61272"}},title:{align:"high",offset:0,text:"BMI",rotation:0,y:-20,x:30},opposite:!0,min:k,plotBands:[{from:k,to:l,color:{linearGradient:{x1:1,y1:1,x2:1,y2:0},stops:[[0,"#FFFFFF"],[1,"#ADF600"]]}}]},{labels:{style:{color:"#1F8BDD"}},title:{align:"high",offset:0,text:"Body Fat (%)",rotation:0,y:-20,x:80},opposite:!0,min:m,plotBands:[{from:m,to:n,color:{linearGradient:{x1:1,y1:1,x2:1,y2:0},stops:[[0,"#FFFFFF"],[1,"#ADF600"]]}}]}],tooltip:{xDateFormat:"%d %b %Y",crosshairs:!0,shared:!0},series:[{name:"Weight",type:"spline",data:d.weight,color:"#19B344",lineWidth:2,tooltip:{valueSuffix:" kg"},marker:{radius:4,fillColor:"#19B344",symbol:"circle",lineColor:"#FFFFFF",lineWidth:1}},{name:"BMI",type:"spline",yAxis:1,data:d.bmi,color:"#D61272",lineWidth:2,tooltip:{valueSuffix:" kg/m2"},marker:{radius:5,fillColor:"#D61272",symbol:"diamond",lineColor:"#FFFFFF",lineWidth:1}},{name:"Body Fat",type:"spline",yAxis:2,data:d.bodyfat,color:"#1F8BDD",lineWidth:4,tooltip:{valueSuffix:" %"},marker:{radius:4,fillColor:"#1F8BDD",symbol:"square",lineColor:"#FFFFFF",lineWidth:1}}]})}}$("#xAxisMin").change(function(){var a=$(b).highcharts();a.xAxis[0].setExtremes($("#xAxisMin").val(),$("#xAxisMax").val())}),$("#resetZoom").on("click",function(){var a=$(b).highcharts();a.xAxis[0].isDirty=!0,a.options.chart.isZoomed=!1,a.xAxis[0].setExtremes(null,null)})})}}}),angular.module("gevityWebApp").directive("heartchart",function(){return{scope:{model:"=heartchart"},link:function(a,b){a.$watch("model",function(a,c){if(a!==c){{var d,e=0==a.systolic.length,f=0==a.diastolic.length,g=0==a.pulse.length,h=b.parent().find("input");1*h[0].value-10,1*h[1].value+10,1*h[2].value,1*h[3].value-10,1*h[4].value+10,1*h[5].value,1*h[6].value-10,1*h[7].value+10,1*h[8].value}d=h.length>9?JSON.parse(h[9].value):a;{$(b).highcharts({chart:{zoomType:"x",type:"line",marginTop:65,resetZoomButton:{theme:{display:"none"}},isZoomed:!1},exporting:{buttons:{contextButton:{align:"right",y:-5}}},title:{text:null},subtitle:{text:null},legend:{enabled:!0},credits:{enabled:!1},xAxis:{type:"datetime",dateTimeLabelFormats:{day:"%e %b %Y",month:"%b %y",year:"%y"},startOnTick:!0,endOnTick:!0,labels:{staggerLines:2},events:{afterSetExtremes:function(){if(!this.chart.options.chart.isZoomed){var a=(1*$("#xAxisMin").val()).toFixed(2),b=(1*this.chart.xAxis[0].min).toFixed(2),c=(($("#xAxisMax").val()-1).toFixed(2),(1*this.chart.xAxis[0].max).toFixed(2));if(!isNaN(b))if(a!=b)$("#xAxisMax").val(c),$("#xAxisMin").val(b),$("#xAxisMin").trigger("change"),this.chart.options.chart.isZoomed=!0,this.chart.options.chart.isDirty=!0;else;}}}},yAxis:[{title:{align:"high",offset:0,text:"mmHg",rotation:0,y:-20,x:-10},min:50,max:180,tickInterval:20,plotBands:[{from:140,to:170,color:{linearGradient:{x1:1,y1:1,x2:1,y2:0},stops:[[0,"#E8A1A2"],[1,"#FFFFFF"]]}},{from:130,to:140,color:{linearGradient:{x1:1,y1:1,x2:1,y2:0},stops:[[0,"#E8BD81"],[1,"#E8BD81"]]}}]},{title:{align:"high",offset:0,text:"bpm",rotation:0,y:-20,x:40},opposite:!0,min:50,max:180,tickInterval:20}],plotOptions:{line:{lineWidth:1},series:{name:"Pulse",events:{legendItemClick:function(){var a=this;return"Systolic"==a.legendItem.textStr&&e?!1:"Diastolic"==a.legendItem.textStr&&f?!1:"Pulse"==a.legendItem.textStr&&g?!1:void setTimeout(function(){var b=0,c=0,d="";a.chart.series[0].visible&&!e?(b++,c=0,$("#systolicTitle").removeClass("hidden"),$("#systolicActual").removeClass("hidden"),d="systolic"):($("#systolicTitle").addClass("hidden"),$("#systolicActual").addClass("hidden")),a.chart.series[1].visible&&!f?(b++,c=1,$("#diastolicTitle").removeClass("hidden"),$("#diastolicActual").removeClass("hidden"),d="diastolic"):($("#diastolicTitle").addClass("hidden"),$("#diastolicActual").addClass("hidden")),a.chart.series[2].visible&&!g?(b++,c=2,$("#pulseTitle").removeClass("hidden"),$("#pulseActual").removeClass("hidden"),d="pulse"):($("#pulseTitle").addClass("hidden"),$("#pulseActual").addClass("hidden")),b>1?($("#avgTitleHeart").addClass("hidden"),void 0!=a.chart.series[0].yAxis.plotLinesAndBands[0].svgElem&&(a.chart.series[0].yAxis.plotLinesAndBands[0].svgElem.show(),a.chart.series[0].yAxis.plotLinesAndBands[1].svgElem.show())):1==b&&($("#avgTitleHeart").find("span").addClass("hidden"),$("#"+d+"Avg").removeClass("hidden"),$("#avgTitleHeart").removeClass("hidden"),a.chart.series[2].visible&&void 0!=a.chart.series[0].yAxis.plotLinesAndBands[0].svgElem&&(a.chart.series[0].yAxis.plotLinesAndBands[0].svgElem.hide(),a.chart.series[0].yAxis.plotLinesAndBands[1].svgElem.hide())),$("#titularHeart").find("label.first").removeClass("first");var h=$("#titularHeart").find("label:visible")[0];$(h).addClass("first"),$("#titularHeart span").find("span.first").removeClass("first");var i=$("#titularHeart span").find("span:visible")[0];$(i).addClass("first")},500)}}}},tooltip:{xDateFormat:"%d %b %Y",crosshairs:!0,shared:!0},series:[{name:"Systolic",data:d.systolic,tooltip:{valueSuffix:" mmHg"},threshold:140,color:"#E82323",negativeColor:"#1F8BDD",marker:{symbol:"triangle-down",radius:5,lineWidth:1}},{name:"Diastolic",data:d.diastolic,tooltip:{valueSuffix:" mmHg"},threshold:90,color:"#E82323",negativeColor:"#1F8BDD",marker:{symbol:"triangle",radius:5,lineWidth:1}},{name:"Pulse",yAxis:1,data:d.pulse,tooltip:{valueSuffix:" bpm"},threshold:90,color:"#19B344",marker:{symbol:"circle",radius:4,fillColor:"#FFFFFF",lineColor:"#19B344",lineWidth:1}}]})}}$("#xAxisMin").change(function(){var a=$(b).highcharts();a.xAxis[0].setExtremes($("#xAxisMin").val(),$("#xAxisMax").val())}),$("#resetZoom").on("click",function(){var a=$(b).highcharts();a.xAxis[0].isDirty=!0,a.options.chart.isZoomed=!1,a.xAxis[0].setExtremes(null,null)})})}}}),angular.module("gevityWebApp").directive("exercisechart",function(){return{scope:{model:"=exercisechart"},link:function(a,b){a.$watch("model",function(a,c){if(a!==c){var d,e=(haveData(a),b.parent().find("input")),f=(1*e[0].value-10,1*e[1].value+10,1*e[2].value);d=e.length>3?JSON.parse(e[3].value):a;{$(b).highcharts({chart:{type:"column",marginTop:65},exporting:{buttons:{contextButton:{align:"right",y:-5}}},title:{text:null},subtitle:{text:null},legend:{enabled:!0},credits:{enabled:!1},xAxis:{type:"datetime",dateTimeLabelFormats:{day:"%e %b",month:"%b",year:"%y"},title:{text:null},tickInterval:864e5,labels:{y:30}},plotOptions:{series:{stacking:"normal",borderRadius:3,pointWidth:20}},yAxis:{title:{align:"high",offset:0,text:"min",rotation:0,y:-20,x:-15},plotLines:[{value:f,width:2,color:"#ADF600",label:{text:"Goal",style:{color:"#333333"},y:-10},zIndex:3}],plotBands:[{from:f,to:f+60,color:{linearGradient:{x1:1,y1:1,x2:1,y2:0},stops:[[0,"#ADF600"],[1,"#FFFFFF"]]}}]},tooltip:{headerFormat:"",pointFormat:"{point.x:%e %b}: {series.name} {point.y:.0f} min"},series:[{type:"column",name:"Walking",color:"#D61272",data:d.walking},{type:"column",name:"Cycling",color:"#FFBB23",data:d.cycling},{type:"column",name:"Swimming",color:"#1F8BDD",data:d.swimming},{type:"column",name:"Running",color:"#1FAAAA",data:d.running}]})}}})}}}),angular.module("gevityWebApp").directive("cholesteroltable",function(){return{scope:{model:"=cholesteroltable"},link:function(a,b){a.columnWidth=0,a.actualPosition=0,a.limit,b.find("button.left").on("click",function(){a.actualPosition<0&&(a.actualPosition=1*(a.actualPosition+a.columnWidth),$(".moving").css("left",a.actualPosition+"px"))}),b.find("button.right").on("click",function(){a.actualPosition<=0&&a.actualPosition!=a.limit&&(a.actualPosition=1*(a.actualPosition-a.columnWidth),$(".moving").css("left",a.actualPosition+"px"))}),a.$watch("model",function(c,d){if(c!==d){{var e,f=(c.noCholesterol,b.parent().find("input"));1*f[0].value-10,1*f[1].value+10,1*f[2].value}e=f.length>3?JSON.parse(f[3].value):c,a.columnWidth=calculateWidth("tableCholesterol");var g=1*$("#tableCholesterol").find("div.ng-scope").length-1;a.limit=g*a.columnWidth*-1}})}}}),angular.module("gevityWebApp").directive("drawcalendar",function(){return{scope:{model:"=drawcalendar"},link:function(a,b){a.columnWidth=0,a.actualPosition=0,a.limit,b.find("button.arrowleft").on("click",function(){$("#currentDay").val(getLastWeek($scope.currentMonday)),showCalendar($scope.currentMonday)}),b.find("button.arrowright").on("click",function(){$("#currentDay").val(getNextWeek($scope.currentMonday)),showCalendar($scope.currentMonday)}),a.$watch("model",function(a,b){if(a!==b){var c=getMonday(a);showCalendar(c)}})}}}),jQuery.fn.clearable=function(){return this.each(function(){$(this).css({"border-width":"0px",outline:"none"}).wrap('').parent().attr("class",$(this).attr("class")+" divclearable").append(''),$(".clearlink").attr("title","Click to clear this textbox").click(function(){$(this).prev().val("").focus()})})},angular.module("gevityWebApp").controller("MainCtrl",["$http","$scope","$location","localStorageService","User","Constants","$resource",function(a,b,c,d,e,f,g){var h=c;if(b.noUser="noUser",null!=d.get("userId")){a.defaults.headers.common["AUTHENTICATION-TOKEN"]=d.get("token");var i=g(f.URL_GET_PROFILE,{userId:d.get("userId")},{get:{method:"GET"}});i.get(null,function(a){var c=a.data,e="",f="",g="",h="",i="",j="";for(var k in c)if("date_of_birth"==k)j=c[k];else if("family_name"==k)i=c[k];else if("given_name"==k)h=c[k];else if("human_api_token"!=k&&"argus_api_token"!=k){var l=""+c[k];l=l.split("_").join(" ");var m=k.split("_").join(" ");m.split(" ").length>2&&(g="class='doble'",m=addLineBreak(m)),e+="",f=""!=f?"":" class='odd' ",g=""}b.username=h+" "+i,h=h.trim(),i=i.trim(),b.noUser=""==h&&""==i?"noUser":"",b.dob=j,$("#profileInfo").html(e),d.set("name",h+" "+i),d.set("dob",j)},function(){})}else h.path("/login")}]),angular.module("gevityWebApp").controller("HomeCtrl",["$http","$scope","$location","localStorageService","User","Constants","$resource",function(a,b,c,d,e,f,g){function h(){var c=$("#timeAgo").val();c.length>2&&(c=12);var e=new Date;e.setMonth(e.getMonth()-c),a.defaults.headers.common["AUTHENTICATION-TOKEN"]=d.get("token");var h=e.getFullYear()+"-"+(e.getMonth()+1)+"-"+e.getUTCDate(),i=g(f.URL_BODY_READING,{userId:d.get("userId"),date:h},{get:{method:"GET"}});i.get(null,function(a){var c={weight:"",bmi:"",bodyfat:""},d=wrapWeights(a.data.body.weight);null!=d?(c.weight=d[0],b.minvalue=d[2],b.maxvalue=d[3],b.average=d[1].toFixed(2),b.actualWeight=c.weight[c.weight.length-1][1]):(c.weight=[],b.noWeight=!0);var e=wrapWeights(a.data.body.bmi);null!=e?(c.bmi=e[0],b.bmiMinvalue=e[2],b.bmiMaxvalue=e[3],b.bmiAverage=e[1].toFixed(2),b.bmiActual=c.bmi[c.bmi.length-1][1]):(c.bmi=[],b.noBmi=!0);var f=wrapWeights(a.data.body.body_fat);null!=f?(c.bodyfat=f[0],b.bodyfatMinvalue=f[2],b.bodyfatMaxvalue=f[3],b.bodyfatAverage=f[1].toFixed(2),b.bodyfatActual=c.bodyfat[c.bodyfat.length-1][1]):(c.bodyfat=[],b.noBodyfat=!0),b.measure=c;var g=wrapWeights(a.data.body.waist);null!=g?(b.waistMeasures=g[0],b.waistMinvalue=g[2],b.waistMaxvalue=g[3],b.waistAverage=g[1].toFixed(2),b.waistActual=b.waistMeasures[b.waistMeasures.length-1][1]):b.waistmeasures=[]},function(){});var j=g(f.URL_HEART_READING,{userId:d.get("userId"),date:h},{get:{method:"GET"}});j.get(null,function(a){var c={systolic:"",diastolic:"",pulse:""},d=wrapHearts(a.data.heart,"systolic");null!=d?(c.systolic=d[0],b.systolicMinvalue=d[2],b.systolicMaxvalue=d[3],b.systolicAverage=d[1].toFixed(2),b.systolicActual=c.systolic[c.systolic.length-1][1]):(c.systolic=[],b.noSystolic=!0);var e=wrapHearts(a.data.heart,"diastolic");null!=e?(c.diastolic=e[0],b.diastolicMinvalue=e[2],b.diastolicMaxvalue=e[3],b.diastolicAverage=e[1].toFixed(2),b.diastolicActual=c.diastolic[c.diastolic.length-1][1]):(c.diastolic=[],b.noDiastolic=!0);var f=wrapHearts(a.data.heart,"heart_rate");null!=f?(c.pulse=f[0],b.pulseMinvalue=f[2],b.pulseMaxvalue=f[3],b.pulseAverage=f[1].toFixed(2),b.pulseActual=c.pulse[c.pulse.length-1][1]):(c.pulse=[],b.noPulse=!0),b.heart=c},function(){});var k=g(f.URL_PHYSICAL_EXERCISE_READING,{userId:d.get("userId"),date:h},{get:{method:"GET"}});k.get(null,function(a){var c={walking:"",cycling:"",unknown:""},d=wrapExercises(a.data.exercise);null!=d?(c.walking=d[0],c.cycling=d[1],c.swimming=d[2],c.running=d[3],b.exerciseMinvalue=d[5],b.exerciseMaxvalue=d[6],b.exerciseAverage=d[4].toFixed(2),b.exerciseActual=d[6]):(c.walking=[],c.cycling=[],c.swimming=[],c.running=[],b.noExercise=!0),b.exercise=c},function(){});var l=g(f.URL_BLOODWORK_READING,{userId:d.get("userId"),date:h},{get:{method:"GET"}});l.get(null,function(a){var c,d=wrapCholesterol(a.data.bloodwork.cholesterol);null!=d?c=d:b.noExercise=!0,b.cholesterol=c},function(){})}b.average=0,b.noWeight=!1,b.noBmi=!1,b.noBodyfat=!1;if(b.noUser="",b.username=d.get("name"),b.dob=d.get("dob")," "==b.username&&(b.noUser="noUser"),null!=d.get("userId")){a.defaults.headers.common["AUTHENTICATION-TOKEN"]=d.get("token");var i=g(f.URL_BODY_WEIGHT_GOAL,{userId:d.get("userId")},{get:{method:"GET"}});i.get(null,function(a){b.goalvalue=a.data.goals.weight.goal},function(){});var j=g(f.URL_BODY_BMI_GOAL,{userId:d.get("userId")},{get:{method:"GET"}});j.get(null,function(a){b.bmiGoalvalue=a.data.goals.bmi.goal},function(){});var k=g(f.URL_BODY_BODYFAT_GOAL,{userId:d.get("userId")},{get:{method:"GET"}});k.get(null,function(a){b.bodyfatGoalvalue=a.data.goals.body_fat.goal},function(){});var l=g(f.URL_BODY_SYSTOLIC_BLOOD_PRESSURE_GOAL,{userId:d.get("userId")},{get:{method:"GET"}});l.get(null,function(a){b.systolicGoalvalue=a.data.goals.systolic_blood_pressure.goal},function(){});var m=g(f.URL_PHYSICAL_EXERCISE_GOAL,{userId:d.get("userId")},{get:{method:"GET"}});m.get(null,function(a){b.exerciseGoalvalue=a.data.goals.exercise.goal},function(){});var n=g(f.URL_CHOLESTEROL_GOAL,{userId:d.get("userId")},{get:{method:"GET"}});n.get(null,function(a){b.cholesterolGoalvalue=a.data.goals.cholesterol.goal},function(){});var o=g(f.URL_BODY_WAIST_GOAL,{userId:d.get("userId")},{get:{method:"GET"}});o.get(null,function(a){b.waistGoalvalue=a.data.goals.waist.goal,h()},function(){})}b.hideshow=function(a){$("#"+a).find("div.chartBody").fadeToggle("slow","linear");var b=$("#"+a).find("button");$(b).hasClass("show")?$(b).removeClass("show"):$(b).addClass("show")},b.increase=function(){},b.decrease=function(){},b.onChange=function(){h()}}]),angular.module("gevityWebApp").controller("ComplianceCtrl",["$scope","$location","localStorageService","User","Constants","$resource",function(a,b,c){a.noUser="",a.username=c.get("name"),a.dob=c.get("dob")," "==a.username&&(a.noUser="noUser")}]),angular.module("gevityWebApp").controller("PlansCtrl",["$scope","$location","localStorageService","User","Constants","$resource",function(a,b,c){a.currentMonday=" ",a.noUser="",a.username=c.get("name"),a.dob=c.get("dob")," "==a.username&&(a.noUser="noUser"),null!=c.get("userId")&&(a.exercisePlan=!0,a.medicationPlan=!0,a.nutritionPlan=!0,a.monitoringPlan=!0,a.currentMonday=new Date),a.previousWeek=function(){var b=new Date(a.currentMonday);a.currentMonday=new Date(b.getFullYear(),b.getMonth(),b.getDate()-7)},a.nextWeek=function(){var b=new Date(a.currentMonday);b.setDate(b.getDate()+7),a.currentMonday=b},a.doFilter=function(b){var c=[];c.exercise=function(){a.exercisePlan=a.exercisePlan?!1:!0},c.medication=function(){a.medicationPlan=a.medicationPlan?!1:!0},c.nutrition=function(){a.nutritionPlan=a.nutritionPlan?!1:!0},c.monitoring=function(){a.monitoringPlan=a.monitoringPlan?!1:!0},c[b]()}}]),angular.module("gevityWebApp").controller("AboutCtrl",["$scope",function(a){a.awesomeThings=["HTML5 Boilerplate","AngularJS","Karma"]}]),angular.module("gevityWebApp").controller("LoginCtrl",["$scope","$location","LoginService","localStorageService","User",function(a,b,c,d,e){var f=a,g=b;a.logged=0,f.error={display:!1},null!=d.get("userId")&&g.path("/dashboard"),f.login=function(){var b=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;b.test(a.email)?c.login(a.email,a.pwd,f,g,e):f.error={display:!0}},f.errorManager=function(a){switch(f.error={display:!0},a.status){case 401:f.error.position="email-and-password",f.error.message="Email or password is incorrect."}}}]),angular.module("gevityWebApp").controller("LogoutCtrl",["$scope","$location","LoginService","localStorageService","User",function(a,b,c,d,e){var f=b;c.logout(e,f)}]),angular.module("gevityWebApp").controller("UserCtrl",["$scope","LoginService","$location","User",function(a,b,c){var d=a;d.signup=function(){var e=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;e.test(a.email)&&a.pwd==a.repwd&&a.pwd.length>=7?b.signup(a.email,a.pwd,d,c):d.error={display:!0}},d.errorManager=function(a){switch(d.error={display:!0},a.status){case 400:d.error.message="Unable to Sign Up"}}}]),angular.module("gevityWebApp").service("LoginService",["$http","Constants","localStorageService","$resource",function(a,b,c,d){var e=d(b.URL_LOGIN,null,{post:{method:"POST"}}),f=d(b.URL_LOGOUT,null,{post:{method:"POST"}}),g=d(b.URL_SINGUP,null,{post:{method:"POST"}}),h=this;this.login=function(b,d,f,g,h){return delete a.defaults.headers.common["AUTHENTICATION-TOKEN"],e.post({email:b,password:d},function(b){a.defaults.headers.common["AUTHENTICATION-TOKEN"]=b.data.auth_token,c.set("userId",b.data.user_id),c.set("token",b.data.auth_token),h&&(h.logged=1,h.user=b.data.user_id),g.path("/dashboard")},function(a){f.errorManager(a)})},this.logout=function(a,b){return f.post(null,function(){a.logged=0,a.user="",c.clearAll(),b.path("/login")},function(){c.clearAll(),b.path("/login")})},this.signup=function(a,b,c,d){return g.post({email:a,password:b},function(){h.login(a,b,c,d,null)},function(a){c.errorManager(a)})}}]);