var Namespace;if(typeof Namespace=="undefined"){Namespace={}}if(!Namespace.Manager){Namespace.Manager={}}Namespace.Manager={Register:function(namespace){namespace=namespace.split(".");if(!window[namespace[0]]){window[namespace[0]]={}}var strFullNamespace=namespace[0];for(var i=1;i<namespace.length;i++){strFullNamespace+="."+namespace[i];eval("if(!window."+strFullNamespace+")window."+strFullNamespace+"={};")}}};function showFixedLoginDialog(){minHeight=200;minWidth=370;strtitle='<span class="ui-icon ui-icon-info" style="float:left; margin:0 7px 0px 0;"></span>'+strRelogin;$("#dialog-fixedlogin").html('<div class="container_16" style="width:340px"><p>'+strSessionClosedRelogin+"</p><div class='large_separator'></div><div class=\"grid_2 alpha\">"+strEmail+'</div><div class="grid_4 omega"><input class="grid_4_input" type="text" id="account" name="account" onclick="eraseLoginCookies();" value="" title="'+strEmail+'"></div><div class=\'small_separator\'></div><div class="grid_2 alpha">'+strPassword+'</div><div class="grid_4 omega"><input class="grid_4_input" type="password" id="password" name="password" onclick="eraseLoginCookies();" value="" title="'+strPassword+'"></div>');$("#account").val(readCookie("email"));var a=readCookie("pw");if(a!="12345678"){loginCookieFound=true;$("#password").val(a)}var b={};b[strLogin]=function(){var c=this;encryptLogin("account","password","rememberme");$.ajax({url:"login",type:"POST",cache:false,data:{json:1,account:$("#account").val(),password:$("#password").val()},dataType:"text json",error:function(d){showErrorDialog(strNoConnection,"")},success:function(e){try{if(e.login.result.indexOf("OK")==0){$(c).dialog("close")}else{showErrorDialog(e.login.result,"")}}catch(d){alert("Login Error!")}}})};$("#dialog-fixedlogin").dialog({resizable:false,modal:true,overlay:{backgroundColor:"#000000",opacity:1},title:strtitle,minHeight:minHeight,minWidth:minWidth,zIndex:50000,buttons:b,close:function(c,d){setTimeout("chatHeartbeat();",maxChatHeartbeat)}});return false}function showAttachmentDialog(a){return showHelpDialog(a)}function showHelpDialog(b){var c='<span class="ui-icon ui-icon-info" style="float:left; margin:0 7px 0px 0;"></span>TrainIt';var d=30;var a=30;$('<iframe id="externalSite" class="externalSite" width="100%" height="100%" src="'+b+'" />').dialog({resizable:true,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},width:800,height:600}).width(800-d).height(600-a);return false}function showInfoDialog(c,a,d){a='<span class="ui-icon ui-icon-info" style="float:left; margin:0 7px 0px 0;"></span>TrainIt';$("#dialog-info").html(c);var b=10000;if(d>0){b=d}setTimeout(function(){$("#dialog-info").dialog("close")},b);$("#dialog-info").dialog({show:{effect:"slide",direction:"right",speed:"500"},hide:{effect:"slide",direction:"right",speed:"500"},resizable:false,modal:false,overlay:{backgroundColor:"#ffffff",opacity:0.2},title:a,position:["right","top"],minHeight:100});return false}function showFixedInfoDialog(e,c,a,b){minHeight=300;minWidth=400;if(b){minHeight=b}if(a){minWidth=a}c='<span class="ui-icon ui-icon-info" style="float:left; margin:0 7px 0px 0;"></span>TrainIt';$("#dialog-fixedinfo").html(e);var d={};d[strClose]=function(){$(this).dialog("close")};$("#dialog-fixedinfo").dialog({resizable:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},title:c,minHeight:minHeight,minWidth:minWidth,zIndex:10000,buttons:d});return false}function showErrorDialog(c,a){a='<span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 0px 0;"></span>TrainIt';$("#dialog-error").html(c);var b={};b[strClose]=function(){$(this).dialog("close")};$("#dialog-error").dialog({resizable:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},dialogClass:"alert",title:a,minHeight:50,zIndex:60000,buttons:b});return false}function showConfirmDialog(c,a,d){a='<span class="ui-icon ui-icon-notice" style="float:left; margin:0 7px 0px 0;"></span>TrainIt';$("#dialog-confirm").html(c);var b={};b[strOK]=function(){window.location.href=d};b[strCancel]=function(){$(this).dialog("close")};$("#dialog-confirm").dialog({resizable:false,modal:true,overlay:{backgroundColor:"#000",opacity:0.9},title:a,buttons:b});return false}function showConfirmDialogAndExecFunc(d,b,a){b='<span class="ui-icon ui-icon-notice" style="float:left; margin:0 7px 0px 0;"></span>TrainIt';$("#dialog-confirm").html(d);var c={};c[strOK]=function(){$(this).dialog("close");a()};c[strCancel]=function(){$(this).dialog("close")};$("#dialog-confirm").dialog({resizable:false,modal:true,overlay:{backgroundColor:"#000",opacity:0.9},title:b,buttons:c});return false}function showRepeatingWorkout(c,d,a){stopPropagation(c);$("#dialog-selectrepeating").html(strModifyRepeatingWorkout);var b={};b[strYes]=function(){$(this).dialog("close");addPtWorkout(c,strShowWorkout,a,"")};b[strNo]=function(){$(this).dialog("close");addPtWorkout(c,strShowWorkout,d,"")};$("#dialog-selectrepeating").dialog({resizable:false,modal:true,overlay:{backgroundColor:"#000",opacity:0.9},title:"",minWidth:400,buttons:b});return false}function showSelectDialogAndExecFunc(g,a,f,e,d,c){if(!a){a="Select"}$("#dialog-select").html(g);var b={};b[f]=function(){$(this).dialog("close");d()};b[e]=function(){$(this).dialog("close");c()};$("#dialog-select").dialog({resizable:false,modal:true,overlay:{backgroundColor:"#000",opacity:0.9},title:a,minWidth:400,buttons:b});return false}function showYesNoCancelDialogAndExecFunc(e,a,d,c){if(!a){a="Select"}$("#dialog-select").html(e);var b={};b[strYes]=function(){$(this).dialog("close");d()};b[strNo]=function(){$(this).dialog("close");c()};b[strCancel]=function(){$(this).dialog("close")};$("#dialog-select").dialog({resizable:false,modal:true,overlay:{backgroundColor:"#000",opacity:0.9},title:a,minWidth:400,buttons:b});return false}function showSaveAsDialogAndExecFunc(e,c,b,a){if(!c){c="Save as"}$("#dialog-saveas").html(e);var d={};if(!a){a=strSave}d[a]=function(){$(this).dialog("close");b()};d[strCancel]=function(){$(this).dialog("close")};$("#dialog-saveas").dialog({resizable:false,modal:true,overlay:{backgroundColor:"#000",opacity:0.9},title:c,minWidth:400,buttons:d});return false}function showOpenDialogAndExecFunc(e,c,a,b){if(!c){c="Open"}$("#dialog-open").html(e);var d={};if(!b){b=strOpen}d[b]=function(){$(this).dialog("close");a()};d[strCancel]=function(){$(this).dialog("close")};$("#dialog-saveas").dialog({resizable:false,modal:true,overlay:{backgroundColor:"#000",opacity:0.9},title:c,minWidth:400,buttons:d});return false}function showSelectDialog(d,h,f,e,j,g){if(!h){h="Select"}$("#dialog-select").html(d);var b=strOK,a=strCancel;if(j){b=j}if(g){a=g}var c={};c[b]=function(){$(this).dialog("close");window.location.href=f};c[a]=function(){$(this).dialog("close");window.location.href=e};$("#dialog-select").dialog({resizable:false,modal:true,overlay:{backgroundColor:"#000",opacity:0.9},title:h,minWidth:400,buttons:c});return false}function FbLogin(a){eraseCookie("FbQuestionPeriod");FB.getLoginStatus(function(b){if(b.status==="connected"){if(b.authResponse){$.post("fblogin",{authResponse:JSON.stringify(b.authResponse)},function(c){if(a){window.location="frontpage"}else{window.location.reload()}})}}else{FB.login(function(c){if(c.authResponse){$.post("fblogin",{authResponse:JSON.stringify(c.authResponse)},function(d){if(a){window.location="frontpage"}else{window.location.reload()}})}else{showInfoDialog(strFbNotConnected,"")}})}})}function FbLogout(){showSelectDialogAndExecFunc(strLogoutFromFbQuestion,strLogoutFromFb,strYes,strNo,function(){FB.logout(function(a){window.location="logout"})},function(){window.location="logout"})}function FbGetExtendedPermissions(a,b){if(b){if(!$("#"+b).attr("checked")){return}}FB.getLoginStatus(function(c){if(c.authResponse){FB.login(function(d){if(d.authResponse){alert(JSON.stringify(d.authResponse));if(d.scope){}else{$("#"+a).val(0)}}else{}},{scope:"publish_stream"})}else{if(a){$("#"+a).val(0)}}})}function FbAskRightsForAutoPublish(a){if($("#"+a).val()>0){FbGetExtendedPermissions(a)}}function saveFbAutoPublish(a){}function FbSetConnectNotificationPeriod(a){if(a>0){createCookie("FbQuestionPeriod","true",a)}else{eraseCookie("FbQuestionPeriod")}}var fbfrError=false;function addAllFbFriendsAsTrainItFriend(){return showConfirmDialogAndExecFunc(strConfirmAddAllFacebookFriendsAsFriends,"",function(){fbfrError=false;var a="";$(".fbFriendData").each(function(b){a="&receiver="+$(this).find(".fbFriendUid").val();sendFriendRequestToFbFriend(a)});setTimeout("showMultipleFriendRequestResult()",5000)})}function showMultipleFriendRequestResult(){if(!fbfrError){showInfoDialog(strMessageSent,"",10000)}else{showErrorDialog(strMessageSendFailed,"",20000)}}function sendFriendRequestToFbFriend(c){var a="";var b="action=sendpmsg&message="+a+"&msgtype="+PRIVATE_MESSAGE_TYPE_FRIEND_REQUEST+c;$.ajax({type:"post",url:"pmsg",data:b,context:document.body,success:function(d){},error:function(d){fbfrError=true}})}var inviteDialog;function inviteFriends(a,b,d,c){FB.getLoginStatus(function(e){if(e.authResponse){makeInviteForm(a,b,d,c)}else{FB.login(function(f){if(f.session){makeInviteForm(a,b,d,c)}else{showInfoDialog(strFbNotConnected,"")}})}})}function makeInviteForm(a,b,f,d){b="TrainIt";var h=FB.UIServer.Methods["fbml.dialog"].size;FB.UIServer.Methods["fbml.dialog"].size={width:650,height:570};var g="https://www.trainit.fi/";var e="https://www.trainit.fi/en/FbInviteSent.jsp";var c="<center><fb:request-form action="+e+' target="_self" method="POST" invite="true" type="'+b+'" content="'+strFbInviteContent+" <fb:req-choice url='"+g+'\' label=\'Join\'"> <fb:multi-friend-selector target="_top" cols="3" rows="5" exclude_ids='+a+' bypass="cancel" showborder="false" actiontext="'+strFbInviteActionText+'" /> </fb:request-form></center>';FB.ui({method:"fbml.dialog",display:"popup",fbml:c},function(j){FB.UIServer.Methods["fbml.dialog"].size=h})}function shareToFb(h,f,b,c,g,d,a){stopPropagation(h);$.post("share",{action:"newfb",type:c,linkid:g,link:d,name:a},function(j){var k="https://www.trainit.fi/";var e=k+"res/img/trainit_50_50.png";FB.ui({method:"stream.publish",link:location.href.substring(0,location.href.lastIndexOf("/")+1)+d,name:a,picture:e,description:strFbTrainItWellnessLog},function(l){})})}function publishDayDataOnFacebook(f,b){var c=b+":\n";var a="";var d=0;$("#dayform input").each(function(){var e=$(this).val();if(e>0){if(d>0){c+="   "}c+=$(this).parent().prev().find("a").html()+"="+e;d++}});if($("#dayform #comment").val()!=$("#dayform #comment").attr("title")){c+="\n"+$("#dayform #comment").val()}publishContentOnFacebook(f,c)}function publishContentOnFacebook(j,d,a,c){if(j){stopPropagation(j)}var b="";var h="https://www.trainit.fi/";var g=h+"res/img/trainit_50_50.png";var f=h;if(c){f=location.href.substring(0,location.href.lastIndexOf("/")+1)+c}f="";FB.ui({method:"stream.publish",link:f,name:b,message:d,description:strFbTrainItWellnessLog},function(e){})}function publishImageReportOnFacebook(a){var b=$(a).find("img").attr("src");if(b==null||b==""){hideReportShareButtons();return}b+="&savetofile=1";$.ajax({url:b,cache:false,dataType:"text json",context:document.body,success:function(f){if(f){if(f.sharedreport){if(f.sharedreport.filename){var c="";var g="https://www.trainit.fi/";var e=g+"res/img/trainit_50_50.png";var d="";FB.ui({method:"stream.publish",link:f.sharedreport.filename,name:"",message:"",picture:f.sharedreport.filename,description:strFbTrainItWellnessLog},function(h){})}}}}})}function shareToNet(h,f,b,c,g,d,a){stopPropagation(h);return showConfirmDialogAndExecFunc(strConfirmShareToNet,strNetSharing,function(){$.post("share",{action:"new",type:c,linkid:g,link:d,name:a},function(j){var e="https://www.trainit.fi/"+d;var k="<p>"+strSharedToNet+':</p><p><a href="'+e+'">'+e+"</a></p><p>"+strCopySharedLink+"</p>";showInfoDialog(k,strNetSharing,20000)})})}function publishImageReport(a){var b=$(a).find("img").attr("src");if(b==null||b==""){hideReportShareButtons();return}b+="&savetofile=1";$.ajax({url:b,cache:false,dataType:"text json",context:document.body,success:function(c){if(c){if(c.sharedreport){if(c.sharedreport.filename){var d="<p>"+strReportSharedToNet+':</p><p><a target="_blank" href="'+c.sharedreport.filename+'">'+c.sharedreport.filename+"</a></p><p>"+strCopySharedLink+"</p>";showFixedInfoDialog(d,strReportSharedToNet,600)}}}}})}Namespace.Manager.Register("trainit");trainit.HomePage=function(){};trainit.HomePage.showDiv=function(a){var b=readCookie(a);if(!b||b=="true"){trainit.HomePage.toggleDiv(a,true)}};trainit.HomePage.toggleDiv=function(c,b){if(b){$("#"+c).show()}else{$("#"+c).toggle()}var a=$("#"+c).prev().find("img")[0];if($("#"+c).is(":visible")){$(a).attr("src","/res/img/24/arrowdown.png")}else{$(a).attr("src","/res/img/24/arrowright.png")}if(b){createCookie(c,true,365)}else{createCookie(c,$("#"+c).is(":visible"),365)}return false};trainit.HomePage.saveDayData=function(b){var a="day?action=save&ajax=1&dayid="+$("#dayid").val()+"&contenttype=json&"+b+"="+$("#"+b).val();$.ajax({type:"POST",url:a,success:function(c){}});return false};function getLanguage(){if(navigator){if(navigator.language){return navigator.language}else{if(navigator.browserLanguage){return navigator.browserLanguage}else{if(navigator.systemLanguage){return navigator.systemLanguage}else{if(navigator.userLanguage){return navigator.userLanguage}}}}}}function printPageContent(a){$(".printable").printArea()}function loginInputOnfocus(){$(this).css("color","#000").val("").removeClass("exampleText")}function switchText(){if($(this).val()==$(this).attr("title")){$(this).css("color","#000").val("").removeClass("exampleText")}else{if($.trim($(this).val())==""){$(this).css("color","#aaa").val($(this).attr("title")).addClass("exampleText")}}}function showAfterLoginNote(c,b,a,d){showAfterLoginNoteDlg(c,b,a,d)}function showAfterLoginNoteDlg(d,c,a,e){setTimeout(function(){$("#dialog-info").dialog("close")},120000);$("#dialog-info").html(c);var b={};b[strClose]=function(){$(this).dialog("close")};$("#dialog-info").dialog({resizable:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},title:d,minHeight:600,minWidth:700,zIndex:10000,buttons:b});return false}function showLanguageSelection(a,b,f){var g="<h2>"+b+":</h2>";var e='<p><a href="/fi/">suomi</a></p>';var c='<p><a href="/en/">English</a></p>';var d=g+e+c;showHelp(a,d,5000,true)}var dropParent;var dragChild;$(document).ready(function(){initPage();$.ajaxSetup({cache:false,scriptCharset:"utf-8",contentType:"application/x-www-form-urlencoded; charset=UTF-8"});$(".wminput, .comment, .searchinput, .wminput").each(function(){if($.trim($(this).val())==""){$(this).val($(this).attr("title"))}if($(this).val()==$(this).attr("title")){$(this).addClass("exampleText")}else{$(this).removeClass("exampleText")}}).focus(switchText).blur(switchText);$("#account, #password").each(function(){if($.trim($(this).val())==""){$(this).val($(this).attr("title"))}if($(this).val()==$(this).attr("title")){$(this).addClass("exampleText")}else{$(this).removeClass("exampleText")}}).focus(loginInputOnfocus).blur(switchText);$("#loginform").submit(function(){encryptLogin("account","password","rememberme")});$("#showmoremenu").button({text:true,icons:{secondary:"ui-icon-triangle-1-s"}});makeAutoCompleteMenuSearch($("#menusearch"))});function initPage(){$("#account").val(readCookie("email"));var a=readCookie("pw");if(a!="12345678"){loginCookieFound=true;$("#password").val(a)}$("button, input:submit, .linkButton").livequery(function(){$(this).button();return false});$("input").autocomplete("disable");$(".inputdatetime,.inputdate").datepicker({flat:true,dateFormat:"yy-mm-dd",yearRange:"-100:+20",showButtonPanel:true,changeMonth:true,changeYear:true,showWeek:true,firstDay:1,numberOfMonths:1,showOtherMonths:true,selectOtherMonths:true},$.datepicker.regional.fi);$(".dayCalendar").click(function(){$(".inputdatetime,.inputdate").datepicker("show")});$("html").css("display","block")}function initCalendars(){$(".draggableWorkout, .calendarrow, .workoutcell, .workoutcelltp, .workoutcellta, .workoutlink").onselectstart=function(){return false};initDraggables();initDroppables();equalRowHeight(".calendarrow",0,20);$(".dayCalendar").click(function(){$(".inputdatetime").datepicker("show");var a=$(this).find("input");a.datepicker("show")})}function initDraggables(){$(".draggableWorkout,.draggableEating").draggable({handle:" > dl",opacity:0.8,addClasses:true,helper:"clone",revert:"invalid",zIndex:35})}function initDroppables(){$(".workoutcell").droppable({tolerance:"pointer",hoverClass:"workoutcell-hover",dragClass:"workoutcell-drag",drop:function(b,c){var a="";if(b.ctrlKey||$(c.draggable).hasClass("wotemplate")){a="workout?id="+$(c.draggable).attr("name")+"&"+$(this).attr("name")+"&action=copy";dragChild=$(c.draggable.clone());dropParent=$(this);$.ajax({url:a,cache:false,context:document.body,success:function(){location.reload()}})}else{a="workout?id="+$(c.draggable).attr("name")+"&"+$(this).attr("name")+"&action=move";dragChild=$(c.draggable);dropParent=$(this);$.ajax({url:a,cache:false,context:document.body,success:function(){location.reload()}})}}});$(".workoutcelltp").droppable({tolerance:"pointer",hoverClass:"workoutcell-hover",dragClass:"workoutcell-drag",drop:function(b,c){var a="";if(b.ctrlKey||$(c.draggable).hasClass("wotemplate")){a="pt?action=copyworkout&id="+$(c.draggable).attr("name")+"&"+$(this).attr("name")+"&traineelist="+getSelectedTraineesStr();dragChild=$(c.draggable.clone());dropParent=$(this);$.ajax({url:a,cache:false,context:document.body,success:function(){showTraineeWorkouts()}})}else{a="pt?action=moveworkout&id="+$(c.draggable).attr("name")+"&"+$(this).attr("name");dragChild=$(c.draggable);dropParent=$(this);$.ajax({url:a,cache:false,context:document.body,success:function(){showTraineeWorkouts()}})}}});$(".eatingcell").droppable({tolerance:"pointer",hoverClass:"eatingcell-hover",dragClass:"eatingcell-drag",drop:function(b,c){var a="";if(b.ctrlKey){a="eating?id="+$(c.draggable).attr("name")+"&"+$(this).attr("name")+"&action=copy";dragChild=$(c.draggable.clone());dropParent=$(this);$.ajax({url:a,cache:false,context:document.body,success:function(){location.reload()}})}else{a="eating?id="+$(c.draggable).attr("name")+"&"+$(this).attr("name")+"&action=move";dragChild=$(c.draggable);dropParent=$(this);$.ajax({url:a,cache:false,context:document.body,success:function(){location.reload()}})}}})}function equalRowHeight(d,b,a,c){if(isNaN(b)||b<0){b=20}if(isNaN(a)||a<0){a=20}$(""+d).each(function(g){var f=0;var h=$(this).children();for(i=0;i<h.length;i++){var e=$(h[i]).outerHeight(true);if(e>f){f=e}}if(!c){f-=20}else{f-=c}for(i=0;i<h.length;i++){$(h[i]).height(f)}})}function delayedScrollToDiv(a){return false}function scrollToDiv(a){$("html, body").scrollTop($("#"+a).offset().top)}var JSON;if(!JSON){JSON={}}(function(){function f(n){return n<10?"0"+n:n}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||"null"}v=partial.length===0?"[]":gap?"[\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"]":"["+partial.join(",")+"]";gap=mind;return v}if(rep&&typeof rep==="object"){length=rep.length;for(i=0;i<length;i+=1){if(typeof rep[i]==="string"){k=rep[i];v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}else{for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}v=partial.length===0?"{}":gap?"{\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"}":"{"+partial.join(",")+"}";gap=mind;return v}}if(typeof JSON.stringify!=="function"){JSON.stringify=function(value,replacer,space){var i;gap="";indent="";if(typeof space==="number"){for(i=0;i<space;i+=1){indent+=" "}}else{if(typeof space==="string"){indent=space}}rep=replacer;if(replacer&&typeof replacer!=="function"&&(typeof replacer!=="object"||typeof replacer.length!=="number")){throw new Error("JSON.stringify")}return str("",{"":value})}}if(typeof JSON.parse!=="function"){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object"){for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")}}}());Namespace.Manager.Register("trainit");trainit.MeasurementUnits=function(){};trainit.MeasurementUnits.fromKilometersToMiles=function(a){return(a/1.609344)};trainit.MeasurementUnits.fromMilesToKilometers=function(a){return(1.609344*a)};trainit.MeasurementUnits.fromKilogramsToLbs=function(a){return(a*2.205)};trainit.MeasurementUnits.fromLbsToKilograms=function(a){return(a/2.205)};trainit.MeasurementUnits.setCmHeight=function(b,c,e){var d=$("#"+c).val();var f=$("#"+e).val();var a=(30.48*d)+(2.54*f);$("#"+b).val(a)};trainit.MeasurementUnits.setKgWeight=function(c,b){var a=$("#"+b).val();$("#"+c).val(a/2.205)};function makeAutoCompleteMenuSearch(a){try{$(a).autocomplete({minLength:0,delay:300,source:function(d,c){$.ajax({url:"search",cache:false,dataType:"text json",data:{keyword:$(a).val(),limit:500},success:function(e){c($.map(e,function(f){return{img:f.img,value:f.value,label:f.label,link:f.link}}))}})},select:function(c,d){if(d.item.link!=""){goToUrl(d.item.link)}return false}}).data("autocomplete")._renderItem=function(c,d){if(d.link!=""){return $("<li></li>").data("item.autocomplete",d).append("<a class='searchRow'><div class='grid_1 alpha'><img width=40 height=40 alt='' src='"+d.img+"'></div><div class='grid_4 omega searchItem'>"+d.label+"</div></a>").appendTo(c)}else{return $("<li></li>").append("<div class='grid_4 alpha searchTitleRow'>"+d.label+"</div>").appendTo(c)}};$(a).bind("autocompleteopen",function(c,d){$(".ui-autocomplete").width(256);$(".ui-autocomplete").css("max-height",500)});$(a).focus(function(){$(a).autocomplete("search",$(a).val())})}catch(b){}}var hexcase=0;var b64pad="";var chrsz=8;function hex_sha1(a){return binb2hex(core_sha1(str2binb(a),a.length*chrsz))}function b64_sha1(a){return binb2b64(core_sha1(str2binb(a),a.length*chrsz))}function str_sha1(a){return binb2str(core_sha1(str2binb(a),a.length*chrsz))}function hex_hmac_sha1(a,b){return binb2hex(core_hmac_sha1(a,b))}function b64_hmac_sha1(a,b){return binb2b64(core_hmac_sha1(a,b))}function str_hmac_sha1(a,b){return binb2str(core_hmac_sha1(a,b))}function sha1_vm_test(){return hex_sha1("abc")=="a9993e364706816aba3e25717850c26c9cd0d89d"}function core_sha1(v,o){v[o>>5]|=128<<(24-o%32);v[((o+64>>9)<<4)+15]=o;var y=Array(80);var u=1732584193;var s=-271733879;var r=-1732584194;var q=271733878;var p=-1009589776;for(var l=0;l<v.length;l+=16){var n=u;var m=s;var k=r;var h=q;var f=p;for(var g=0;g<80;g++){if(g<16){y[g]=v[l+g]}else{y[g]=rol(y[g-3]^y[g-8]^y[g-14]^y[g-16],1)}var z=safe_add(safe_add(rol(u,5),sha1_ft(g,s,r,q)),safe_add(safe_add(p,y[g]),sha1_kt(g)));p=q;q=r;r=rol(s,30);s=u;u=z}u=safe_add(u,n);s=safe_add(s,m);r=safe_add(r,k);q=safe_add(q,h);p=safe_add(p,f)}return Array(u,s,r,q,p)}function sha1_ft(e,a,g,f){if(e<20){return(a&g)|((~a)&f)}if(e<40){return a^g^f}if(e<60){return(a&g)|(a&f)|(g&f)}return a^g^f}function sha1_kt(a){return(a<20)?1518500249:(a<40)?1859775393:(a<60)?-1894007588:-899497514}function core_hmac_sha1(c,f){var e=str2binb(c);if(e.length>16){e=core_sha1(e,c.length*chrsz)}var a=Array(16),d=Array(16);for(var b=0;b<16;b++){a[b]=e[b]^909522486;d[b]=e[b]^1549556828}var g=core_sha1(a.concat(str2binb(f)),512+f.length*chrsz);return core_sha1(d.concat(g),512+160)}function safe_add(a,d){var c=(a&65535)+(d&65535);var b=(a>>16)+(d>>16)+(c>>16);return(b<<16)|(c&65535)}function rol(a,b){return(a<<b)|(a>>>(32-b))}function str2binb(d){var c=Array();var a=(1<<chrsz)-1;for(var b=0;b<d.length*chrsz;b+=chrsz){c[b>>5]|=(d.charCodeAt(b/chrsz)&a)<<(32-chrsz-b%32)}return c}function binb2str(c){var d="";var a=(1<<chrsz)-1;for(var b=0;b<c.length*32;b+=chrsz){d+=String.fromCharCode((c[b>>5]>>>(32-chrsz-b%32))&a)}return d}function binb2hex(c){var b=hexcase?"0123456789ABCDEF":"0123456789abcdef";var d="";for(var a=0;a<c.length*4;a++){d+=b.charAt((c[a>>2]>>((3-a%4)*8+4))&15)+b.charAt((c[a>>2]>>((3-a%4)*8))&15)}return d}function binb2b64(d){var c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var f="";for(var b=0;b<d.length*4;b+=3){var e=(((d[b>>2]>>8*(3-b%4))&255)<<16)|(((d[b+1>>2]>>8*(3-(b+1)%4))&255)<<8)|((d[b+2>>2]>>8*(3-(b+2)%4))&255);for(var a=0;a<4;a++){if(b*8+a*6>d.length*32){f+=b64pad}else{f+=c.charAt((e>>6*(3-a))&63)}}}return f}function checkForOngoingSurvey(){jQuery.get("/res/adm/survey.html",function(b){var c=b;if(c){var a=readCookie("TrainItSurvey");if(!a){showFixedInfoDialog(c,"",600,400);createCookie("TrainItSurvey","shown",3)}}else{alert("empty file")}})}function parseSmileys(b){var a=b.replace(/:-\)/g,"<img src='/res/img/16/smiley_smiley.png'>");a=a.replace(/:\)/g,"<img src='/res/img/16/smiley_smiley.png'>");a=a.replace(/:-\(/g,"<img src='/res/img/16/smiley_sad.png'>");a=a.replace(/:\(/g,"<img src='/res/img/16/smiley_sad.png'>");a=a.replace(/D-\)/g,"<img src='/res/img/16/smiley_devil_smiley.png'>");a=a.replace(/D\)/g,"<img src='/res/img/16/smiley_devil_smiley.png'>");a=a.replace(/:-P/g,"<img src='/res/img/16/smiley_tongue.png'>");a=a.replace(/:P/g,"<img src='/res/img/16/smiley_tongue.png'>");a=a.replace(/:-D/g,"<img src='/res/img/16/smiley_big_smiley.png'>");a=a.replace(/:D/g,"<img src='/res/img/16/smiley_big_smiley.png'>");a=a.replace(/;-\)/g,"<img src='/res/img/16/smiley_wink.png'>");a=a.replace(/;\)/g,"<img src='/res/img/16/smiley_wink.png'>");return a}var firstDayOfWeek=1;function getCurrentIsoDate(){var b=new Date();var e=b.getFullYear();var a=b.getMonth()+1;if(a<10){a="0"+a}var c=b.getDate();if(c<10){c="0"+c}return(e+"-"+a+"-"+c)}function getCurrentIsoTime(e){var b=new Date();var d=b.getHours();var a=b.getMinutes()+1;if(a<10){a="0"+a}var c=b.getSeconds();if(c<10){c="0"+c}if(e){return(d+":"+a+":"+c)}else{return(d+":"+a)}}function stopPropagation(a){try{if(!a){var a=window.event}a.cancelBubble=true;if(a.stopPropagation){a.stopPropagation()}}catch(a){}}function showTab(a,f,c){for(var b=0;b<f;b++){var e=document.getElementById("tabselect"+b);var d=document.getElementById("tab"+b);if(b==a){if(e){e.className="selectedmenuitem"}if(d){d.style.display="block"}}else{if(e){e.className=""}if(d){d.style.display="none"}}}if(c){saveCurrentTab(c,a)}}function saveCurrentTab(b,a){createCookie(b,a,7)}function showLastTab(c,b){var a=readCookie(c);if(!a){a=0}if(a>b){a=0}showTab(a,b)}function printReport(a){printerFriendly=true;showReport(a);printerFriendly=false;return false}var xmlhttpreport;var printerFriendly=false;function showReport(k){showTab(0,2,"reportsPageTab");var c=$("#reporttype").val();var m=$("#startdate").val();var j=$("#enddate").val();var g=$("#pi").val();var r=$("#sw").val();var n=$("#qs").val();var l=$("#slist").val();var p=$("#qlist").val();var o=document.getElementById("reporttype");var f,a="",b=0;for(f=0;f<o.options.length;f++){if(o.options[f].selected){a+=(o.options[f].value+";");b++}}o=document.getElementById("slist");var q="";for(f=0;f<o.options.length;f++){if(o.options[f].selected){q+=(o.options[f].value+";")}}if(q.indexOf("0;")==0){q="0;"}else{if(q==""){q="0;"}}var o=document.getElementById("qlist");var e="";for(f=0;f<o.options.length;f++){if(o.options[f].selected){e+=(o.options[f].value+";")}}if(e.indexOf("0;")==0){e="0;"}else{if(e==""){e="0;"}}var d="reports?u="+k+"&ajax=1"+("&action=reports&reporttype="+a+"&startdate="+m+"&enddate="+j+"&pi="+g+"&sw="+r+"&qs="+n+"&slist="+q+"&qlist="+e);if(!printerFriendly){if(xmlhttpreport!=null){xmlhttpreport.abort();xmlhttpreport=null}xmlhttpreport=createAjaxRequest(d,reportHandler)}else{$("body").html($("#reportcanvas").html());$("body").css("cursor","wait");var h="reports?u="+k+"&ajax=0"+("&action=reports&reporttype="+a+"&startdate="+m+"&enddate="+j+"&pi="+g+"&sw="+r+"&qs="+n+"&slist="+q+"&qlist="+e);setTimeout('printAndReload("'+h+'");',300);return false}}function printAndReload(a){window.print();setTimeout('window.location = "'+a+'"',10000)}function reportHandler(){if(xmlhttpreport==null){return}if(xmlhttpreport.readyState==4){document.getElementById("pi").disabled=true;document.getElementById("sw").disabled=true;document.getElementById("qs").disabled=true;document.getElementById("slist").disabled=true;document.getElementById("qlist").disabled=true;var div=document.getElementById("reportcanvas");div.innerHTML=xmlhttpreport.responseText;var x=div.getElementsByTagName("script");for(var i=0;i<x.length;i++){eval(x[i].text)}initPage();showReportShareButtons()}}function showReportShareButtons(){var a=0;$("#reportcanvas").find("img").each(function(){a++});if(a==1){$("#publishImg, #publishImgToFb").show()}else{$("#publishImg, #publishImgToFb").hide()}}function hideReportShareButtons(){$("#publishImg, #publishImgToFb").hide()}function calculateHRZones(){$("#zonename0").val(strMaxZone);$("#zonename1").val(strMKZone);$("#zonename2").val(strVKZone);$("#zonename3").val(strPKZone);$("#zonename4").val(strEKZone);var c=$("#maxhr").val()*1;var a=$("#resthr").val()*1;var b=c-a;$("#lowerlimit0").val(((b*0.95)+a).toFixed(0));$("#lowerlimit1").val(((b*0.85)+a).toFixed(0));$("#lowerlimit2").val(((b*0.7)+a).toFixed(0));$("#lowerlimit3").val(((b*0.5)+a).toFixed(0));$("#lowerlimit4").val(((b*0.35)+a).toFixed(0));calculateUpperLimits()}function calculateUpperLimits(){var b=$("#maxhr").val()*1;$("#upperlimit0").html(b);for(var a=1;a<5;a++){$("#upperlimit"+a).html($("#lowerlimit"+(a-1)).val())}}String.prototype.startsWith=function(a){if(this.match(a)){return true}else{return false}};String.prototype.trim=function(){return(this.replace(/^[\s\xA0]+/,"").replace(/[\s\xA0]+$/,""))};function openUrlSB(b,a){stopPropagation(b);window.location=a}function goToUrl(a){window.location=a}function openUrl(a){window.location=a}function encrypt(e,c){var d=document.getElementById(e);var b=document.getElementById(c);var g=d.value;var a=b.value;if(g.length>4&&a.length>4){var h=hex_sha1(g);var f=hex_sha1(a);d.value=h;b.value=f}}function encryptLogin(b,h,g){var a=document.getElementById(b);var d=document.getElementById(h);var f=d.value;if(!loginCookieFound){f=hex_sha1(d.value)}d.value=f;var c=document.getElementById(g);if(c){var e=c.checked;if(e>0){createCookie("email",a.value,30);createCookie("pw",f,30)}}return f}function showTable(a){var b=document.getElementById(a);if(b.style.display=="none"){b.style.display="block"}else{b.style.display="none"}}function getDate(b){var c=new Date();var f=b.substring(0,4);var a=b.substring(5,7)-1;var e=b.substring(8,10);c.setFullYear(f,a,e);return c}function getSqlFormatDate(e){var b=e.getFullYear();var c=e.getMonth()+1;if(c<10){c="0"+c}var a=e.getDate();if(a<10){a="0"+a}return b+"-"+c+"-"+a}function showRepeat(c,b){var a=document.getElementById(b);if(c.value==0){if(a!=null){a.style.display="none"}}else{if(a!=null){a.style.display="block"}}}function clearText(a){a.value=""}function textFieldOnClick(b,a){if(a!=null){if(b.value==a){b.value=""}}b.focus()}function createCookie(c,d,e){if(e){var b=new Date();b.setTime(b.getTime()+(e*24*60*60*1000));var a="; expires="+b.toGMTString()}else{var a=""}document.cookie=c+"="+d+a+"; path=/"}function readCookie(b){var e=b+"=";var a=document.cookie.split(";");for(var d=0;d<a.length;d++){var f=a[d];while(f.charAt(0)==" "){f=f.substring(1,f.length)}if(f.indexOf(e)==0){return f.substring(e.length,f.length)}}if(b=="email"){return strEmailAddress}if(b=="pw"){return"12345678"}return null}function eraseCookie(a){createCookie(a,"",-1)}function eraseLoginCookies(){loginCookieFound=false;createCookie("email","",-1);createCookie("pw","",-1)}var loginCookieFound=false;function confirmDelete(b,a){return showConfirmDialog(a,"",b)}function confirmDeleteSB(c,b,a){stopPropagation(c);return showConfirmDialog(a,"",b)}function submitForm(c,b){var a=$("#"+c);if(a){a.submit()}return false}function submitProfileImage(e,d,b){document.body.style.cursor="wait";var a=document.getElementById(e);if(a!=null){a.target=d;a.submit();var c=setTimeout("updateImage("+b+");",3000);var c=setTimeout("updateImage("+b+");",6000);var c=setTimeout("updateImage("+b+");",10000);var c=setTimeout("updateImage("+b+");",20000)}return false}function updateImage(b){var a=document.getElementById("pimage");a.src="image?action=getprofile&u="+b+"&time="+(new Date()).getTime();document.body.style.cursor="default"}function submitGroupImage(d,c,b){document.body.style.cursor="wait";var a=document.getElementById(d);if(a!=null){a.submit()}return false}function createXHRObject(){try{return new XMLHttpRequest()}catch(a){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(a){}try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(a){}alert(strYourBrowserDoesNotSupportXHR);return null}function createAjaxRequest(c,a){var f=null;try{f=new XMLHttpRequest()}catch(d){try{f=ActiveXObject("Msxml2.XMLHTTP")}catch(d){try{f=new ActiveXObject("Microsoft.XMLHTTP")}catch(d){}}}if(f!=null){try{c=c+"&tms="+new Date().getTime();f.open("GET",c,true);f.setRequestHeader("Content-Type","text/html;charset=UTF-8");f.setRequestHeader("Accept-Charset","UTF-8");f.onreadystatechange=a;f.send(null)}catch(b){alert(strXHRError)}}else{alert(strYourBrowserDoesNotSupportXHR)}return f}function createXmlAjaxRequest(c,g,a){var f=null;try{f=new XMLHttpRequest()}catch(d){try{f=ActiveXObject("Msxml2.XMLHTTP")}catch(d){try{f=new ActiveXObject("Microsoft.XMLHTTP")}catch(d){}}}if(f!=null){try{f.open("POST",c,true);f.setRequestHeader("Content-type","application/x-www-form-urlencoded");f.setRequestHeader("Content-length",g.length);f.onreadystatechange=a;f.send(g)}catch(b){alert(strXHRError)}}else{alert(strYourBrowserDoesNotSupportXHR)}return f}var helptimer;function showHelp(l,m,g,c){var n=Math.max(document.body.offsetHeight,window.innerHeight);var h=document.body.offsetWidth;var j=l.offsetLeft;var f=l.offsetTop+l.offsetHeight;var a=l;while(a.offsetParent){a=a.offsetParent;if(a.offsetLeft>0){j+=a.offsetLeft}if(a.offsetTop>0){f+=a.offsetTop}}var b=(j+250)-document.body.offsetWidth;if(b>-20){j-=(b+20)}if(f<0){f=50}f+=10;var k="helpdiv";var e=document.getElementById(k);if(!e){e=document.createElement("div");e.setAttribute("id",k);document.body.appendChild(e)}var d='<div class="tooltipHelpDiv"><div>'+m+"</div>";if(!c){d+='<div style="margin-top:0px"><a title="'+strClose+'" href="javascript:hideHelp();">'+strClose+"</a></div>"}d+="</div>";e.innerHTML=d;e.style.position="absolute";e.style.left=j+"px";e.style.top=f+"px";e.style.visibility="visible";e.style.display="block";e.style.zIndex=50000;e.style.width="auto";e.style.height="auto";if(helptimer!=null){clearTimeout(helptimer)}if(g>0){helptimer=setTimeout("hideHelp();",g)}}function hideHelp(){if(helptimer!=null){clearTimeout(helptimer)}var a=document.getElementById("helpdiv");if(a){a.style.visibility="hidden"}}function openNewWindow(c,b,a){newWindow=window.open(c,b,a);return newWindow}var TIMER=5;var SPEED=10;function pageWidth(){return window.innerWidth!=null?window.innerWidth:document.documentElement&&document.documentElement.clientWidth?document.documentElement.clientWidth:document.body!=null?document.body.clientWidth:null}function pageHeight(){return window.innerHeight!=null?window.innerHeight:document.documentElement&&document.documentElement.clientHeight?document.documentElement.clientHeight:document.body!=null?document.body.clientHeight:null}function topPosition(){return typeof window.pageYOffset!="undefined"?window.pageYOffset:document.documentElement&&document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop?document.body.scrollTop:0}function leftPosition(){return typeof window.pageXOffset!="undefined"?window.pageXOffset:document.documentElement&&document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft?document.body.scrollLeft:0}function showBmi(k,e,d,j){var b=document.getElementById(e);var a=document.getElementById(d);if(b==null||a==null){return}var c=k/100;var g=b.value*1;if(j==1){g=g/2.205}if(c>0&&g>0){var f=g/(c*c);a.innerHTML="BMI="+f.toFixed(1)}else{a.innerHTML=""}}function showOrthoHr(j,a,g){var f=document.getElementById(j);var b=document.getElementById(a);var c=document.getElementById(g);if(f!=null&&b!=null&&c!=null){var e=f.value;var h=b.value;if(e>0&&h>0){var d=h-e;if(d>20){c.innerHTML='HR<i style="font-size: x-small;vertical-align: sub">o</i>=<b style="color:red">'+d.toFixed(0)+"</b>"}else{c.innerHTML='HR<i style="font-size: x-small;vertical-align: sub">o</i>='+d.toFixed(0)}}else{c.innerHTML=""}}}function isNumber(a){return !isNaN(parseFloat(a))&&isFinite(a)}function checkInt(b,a){var f=true;var c=b.value;try{if(!isNumber(c)){f=false}if(c.indexOf(",")>-1){f=false}if(c.indexOf(".")>-1){f=false}}catch(d){f=false}if(a>0){if(c>a){f=false}}setError(f,b)}function checkFloat(b,a){var f=true;var c=b.value.replace(/,/ig,".");b.value=c;try{if(!isNumber(c)){f=false}}catch(d){f=false}if(a>0){if(c>a){f=false}}setError(f,b)}function validateFloat(b,a){var f=true;var c=b.value.replace(/,/ig,".");if(c){try{if(!isNumber(c)){f=false}}catch(d){f=false}if(a>0){if(c>a){f=false}}}return f}function checkDate(b){var c=true;var a=b.value;if(a.length!=10){c=false}else{if(a.charAt(4)!="-"){c=false}if(a.charAt(7)!="-"){c=false}}setError(c,b)}function checkTime(k){var l=true;try{var g=k.value;if(g.length==1||g.length==2){var f=parseInt(g);if(isNaN(f)){l=false}else{if(f<0||f>24){l=false}}}else{if(g.length==4||g.length==5){var c=g.length-4;if(g.charAt(c+1)!=":"){l=false}else{var f=parseInt(g.substring(c+0,c+1)),a=parseInt(g.substring(c+2,c+4));if(isNaN(f)||isNaN(a)){l=false}else{if(f<0||f>24||a<0||a>59){l=false}}}}else{if(g.length==7||g.length==8){var c=g.length-7;if(g.charAt(c+1)!=":"||g.charAt(c+4)!=":"){l=false}else{var f=parseInt(g.substring(c+0,c+1)),a=parseInt(g.substring(c+2,c+4)),d=parseInt(g.substring(c+5,c+7));if(isNaN(f)||isNaN(a)||isNaN(d)){l=false}else{if(f<0||f>24||a<0||a>59||d<0||d>59){l=false}}}}else{l=false}}}}catch(j){l=false}setError(l,k)}function setError(b,a){if(!b){a.style.color="#ff0000";a.style.textDecoration="line-through"}else{a.style.color="#000000";a.style.textDecoration="none"}}function checkRepeatTime(f,a){var l=document.getElementById(f);var j=document.getElementById(a);try{var b=l.value,k=j.value;var d=new Date(),g=new Date();d.setFullYear(b.substring(0,4),b.substring(5,7)-1,b.substring(8,10));g.setFullYear(k.substring(0,4),k.substring(5,7)-1,k.substring(8,10));var c=1000*60*60*24;var m=(g.getTime()-d.getTime())/c;if(m>3*31){g.setTime(d.getTime()+93*c);j.value=g.getFullYear()+"-"+addLeadingZero(g.getMonth()+1,2)+"-"+addLeadingZero(g.getDate(),2)}else{if(m<0){g.setTime(d.getTime());j.value=g.getFullYear()+"-"+addLeadingZero(g.getMonth()+1,2)+"-"+addLeadingZero(g.getDate(),2)}}setError(true,j)}catch(h){setError(false,j)}}function checkStartAndEndDate(f,a){var l=document.getElementById(f);var j=document.getElementById(a);try{checkDate(l);checkDate(j);var b=l.value,k=j.value;var d=new Date(),g=new Date();d.setFullYear(b.substring(0,4),b.substring(5,7)-1,b.substring(8,10));g.setFullYear(k.substring(0,4),k.substring(5,7)-1,k.substring(8,10));var c=1000*60*60*24;var m=(g.getTime()-d.getTime())/c;if(m<0){g.setTime(d.getTime());j.value=g.getFullYear()+"-"+addLeadingZero(g.getMonth()+1,2)+"-"+addLeadingZero(g.getDate(),2)}setError(true,j)}catch(h){setError(false,j)}}function addLeadingZero(a,b){var c=a+"";while(c.length<b){c="0"+c}return c}var samples=[];function Sample(c,a,d,b){this.x1=c;this.x2=a;this.y=d;this.name=b;this.getX1=function(){return c};this.getX2=function(){return a};this.getY=function(){return d};this.getName=function(){return b}}var ml,mr,mt,mb,miny,maxy,valuetype,ct;var cpx,cpy,cimgw,cimgh,clickX,clickY;var curobj,objsrc;function showCurrentPoint(f,d){evt=f||window.event;curobj=d;var c=d.getBoundingClientRect();var a=c.left,g=c.top;cpx=evt.clientX;cpy=evt.clientY;cimgw=d.width;cimgh=d.height;clickX=evt.clientX-a;clickY=evt.clientY-g;if(d.src==objsrc){updateCurrentPoint()}else{objsrc=d.src;var b=objsrc+"&dataonly=1";$.ajax({url:b,cache:false,dataType:"text json",success:function(j){if(j.imgdata){ml=j.imgdata.ml;mr=j.imgdata.mr;mt=j.imgdata.mt;mb=j.imgdata.mb;miny=j.imgdata.miny;maxy=j.imgdata.maxy;valuetype=j.imgdata.vt;ct=j.imgdata.ct;xax=j.imgdata.xax}if(j.samples){samples=[];for(var e=0;e<j.samples.length;e++){var h=j.samples[e];samples[e]=new Sample(h.x1,h.x2,h.y,h.name)}updateCurrentPoint()}}})}}function updateCurrentPoint(){if((clickX+5)>=ml&&(clickX-5)<=(cimgw-mr)&&(clickY+5)>=mt&&(clickY-5)<=(cimgh-mb)){var b=false;if(samples!=null){for(i=0;i<samples.length;i++){if(clickX>=samples[i].getX1()&&clickX<=samples[i].getX2()){if(xax>0||clickY>=samples[i].getY()){showCurrentPointHelp(cpx,cpy,samples[i].getName(),60000);b=true;break}}}}if(!b){if(ct>0){var e=(miny+(1-(clickY-mt)/(cimgh-mt-mb))*(maxy-miny))*1;if(valuetype=="int"){showCurrentPointHelp(cpx,cpy,e.toFixed(0),5000)}else{if(valuetype=="float"){showCurrentPointHelp(cpx,cpy,e.toFixed(1),5000)}else{if(valuetype=="hhmm"){var c=Math.floor(e);var a=(e-c)*60;a=a.toFixed(0);if(a<10){a="0"+a}var d=c+":"+a;showCurrentPointHelp(cpx,cpy,d,5000)}}}}else{hideCurrentPointHelp()}}}else{hideCurrentPointHelp()}}var cphelptimer;function showCurrentPointHelp(a,g,e,c){if(e==null||e==""){return}var d=0;if(document.body&&document.body.scrollTop){d=document.body.scrollTop}else{if(document.documentElement&&!document.documentElement.scrollTop){d=0}else{if(document.documentElement&&document.documentElement.scrollTop){d=document.documentElement.scrollTop}}}g+=d;a+=20;var f="cphelpdiv";var b=document.getElementById(f);if(!b){b=document.createElement("div");b.setAttribute("id",f);b.setAttribute("style","visibility: hidden;");b.style.opacity=0.95;b.style.filter="alpha(opacity=95)";b.alpha=95;document.body.appendChild(b)}b.innerHTML='<div style="width:auto;height:auto;background-color:#ffffff;color:#000000;font-size:14px;padding:2px;border:1px solid #808080;">'+e+"</div>";b.style.position="absolute";b.style.left=a+"px";b.style.top=g+"px";b.style.visibility="visible";b.style.display="block";b.style.zIndex=10000;b.style.width="auto";b.style.height="auto";if(cphelptimer!=null){clearTimeout(cphelptimer)}if(c>0){cphelptimer=setTimeout("hideCurrentPointHelp();",c)}}function hideCurrentPointHelp(){var a=document.getElementById("cphelpdiv");if(a){a.style.visibility="hidden"}}var xmlhttposc;function saveSportColor(b,a){if(xmlhttposc!=null){xmlhttposc.abort();xmlhttposc=null}xmlhttposc=createAjaxRequest("ownsports?action=save&id="+b+"&color="+a,saveSportColorResponseHandler)}function saveSportColorResponseHandler(){if(xmlhttposc==null){return}if(xmlhttposc.readyState==4){}}Namespace.Manager.Register("trainit");trainit.google=function(a){this.name=a;this.getName=function(){return a};this.updateSettings=function(){var b=0;if($("#googleCalCb").attr("checked")){b=1}var d=$("#googleCalSelect").val();var c="google?action=update&inuse="+b;if(d){c+="&calendar="+d}$.post(c,function(e){window.location.reload()})}};var trainitGoogle;trainit.google.init=function(){trainitGoogle=new trainit.google("TrainIt Google")};trainit.Article=function(){};trainit.Article.addArticleComment=function(b,c,a){$.ajax({url:"articles",type:"POST",cache:false,data:{action:"addComment",id:c,comment:$("#"+a).val()},dataType:"text json",error:function(d){},success:function(d){trainit.Article.getComments(b,c);$("#"+a).val("")}})};trainit.Article.getComments=function(a,b){$.ajax({url:"articles",type:"GET",cache:false,data:{action:"getComments",id:b},dataType:"text json",error:function(c){},success:function(c){trainit.Article.showComments(a,b,c)}})};trainit.Article.showComments=function(b,c,e){$("#article_comments_"+c).html("<h3>"+strComments+"</h3>");try{for(var a=0;a<e.articleComments.length;a++){var g=e.articleComments[a];var f='<div class="grid_10 alpha articleComment">';if(b==g.userid){f+='<p style="font-size:10px;color:gray;">'+g.created.substring(0,16)+' GMT+2:00 <a href="frontpage?u='+g.userid+'">'+g.username+'</a><a style="float:right" href="" onclick="trainit.Article.removeComment('+b+", "+c+", "+g.id+');return false;">'+strRemove+"</a></p>"}else{f+='<p style="font-size:10px;color:gray;">'+g.created.substring(0,16)+' GMT+2:00 <a href="frontpage?u='+g.userid+'">'+g.username+"</a></p>"}f+="<p>"+g.message+"</p></div>";$("#article_comments_"+c).append(f)}}catch(d){}};trainit.Article.removeComment=function(b,c,a){$.ajax({url:"articles",type:"GET",cache:false,data:{action:"removeComment",articleId:c,commentId:a},dataType:"text json",error:function(d){},success:function(d){trainit.Article.showComments(b,c,d)}})};trainit.Blog=function(){};trainit.Blog.addBlogComment=function(b,c,a){$.ajax({url:"blog",type:"POST",cache:false,data:{action:"addComment",id:c,comment:$("#"+a).val()},dataType:"text json",error:function(d){},success:function(d){trainit.Blog.getComments(b,c);$("#"+a).val("")}})};trainit.Blog.getComments=function(a,b){$.ajax({url:"blog",type:"GET",cache:false,data:{action:"getComments",id:b},dataType:"text json",error:function(c){},success:function(c){trainit.Blog.showComments(a,b,c)}})};trainit.Blog.showComments=function(b,d,e){$("#blog_comments_"+d).html("<h3>"+strComments+"</h3>");try{for(var a=0;a<e.blogComments.length;a++){var g=e.blogComments[a];var f='<div class="grid_10 alpha blogComment">';if(b==g.userid){f+='<p style="font-size:10px;color:gray;">'+g.created.substring(0,16)+' GMT+2:00 <a href="frontpage?u='+g.userid+'">'+g.username+'</a><a style="float:right" href="" onclick="trainit.Blog.removeComment('+b+", "+d+", "+g.id+');return false;">'+strRemove+"</a></p>"}else{f+='<p style="font-size:10px;color:gray;">'+g.created.substring(0,16)+' GMT+2:00 <a href="frontpage?u='+g.userid+'">'+g.username+"</a></p>"}f+="<p>"+g.message+"</p></div>";$("#blog_comments_"+d).append(f)}}catch(c){}};trainit.Blog.removeComment=function(b,c,a){$.ajax({url:"blog",type:"GET",cache:false,data:{action:"removeComment",blogId:c,commentId:a},dataType:"text json",error:function(d){},success:function(d){trainit.Blog.showComments(b,c,d)}})};var username;var chatHeartbeatCount=0;var minChatHeartbeat=2000;var maxChatHeartbeat=30000;var chatHeartbeatTime=minChatHeartbeat;var chatboxFocus=[];var newMessages=[];var chatBoxes=[];var rightMargin=0;var boxMargin=7;var chatBoxWidth=295;var olfBoxWidth=190;var chatStarted;var FriendStatusUpdateInterval=20000;var lastHeartBeatTime=new Date().getTime();function getOnlineFriends(){var b=0;var a="chat?action=onlinefriends";$.ajax({url:a,context:document.body,success:function(d){if(d){if(d.onlinefriends){if(d.onlinefriends.friend){b=d.onlinefriends.friend.length;if(b>0){createOnlineFriends(strChat,1);var g="<div><p>"+strOnline+"</p>";var f=0;var c;for(c=0;c<d.onlinefriends.friend.length;c++){if(d.onlinefriends.friend[c].ol=="1"){g+='<div style="margin-bottom:2px"><img class="profileImg" src=\'image?action=getprofile&u='+d.onlinefriends.friend[c].id+'\' width=24 height=24><a style="margin-left:5px;vertical-align:top;" href="javascript:chatWith('+d.onlinefriends.friend[c].id+",'"+d.onlinefriends.friend[c].name+"')\">"+d.onlinefriends.friend[c].name+"</a></div>";f++}}if(f==0){g+="---"}g+='<div id="totalOnline"></div>';g+="</div>";var e='<div class="line_separator"></div><div id="offlinefriends" style="margin-top:5px;color:gray"><p>'+strOffline+"</p>";for(c=0;c<d.onlinefriends.friend.length;c++){if(d.onlinefriends.friend[c].ol=="0"){e+='<div style="margin-bottom:2px"><img class="profileImg" src=\'image?action=getprofile&u='+d.onlinefriends.friend[c].id+'\' width=16 height=16><a style="margin-left:5px;vertical-align:top;color:gray" href="javascript:chatWith('+d.onlinefriends.friend[c].id+",'"+d.onlinefriends.friend[c].name+"')\">"+d.onlinefriends.friend[c].name+"</a></div>"}}e+="</div>";$("#onlinefriends .chatboxhead .chatboxtitle").html(strChat+" ("+f+"/"+d.onlinefriends.friend.length+")");$("#onlinefriends .chatboxcontent").html(g+e)}}if(!chatStarted){startChatSession()}if(d.onlinefriends.tu){$("#totalOnline").html('<div style="font-size:9px;color:gray">'+strTotalOnline1+" "+d.onlinefriends.tu+" "+strTotalOnline2+"</div>")}}}setTimeout(function(){getOnlineFriends()},FriendStatusUpdateInterval)}})}function createOnlineFriends(c,b){if($("#onlinefriends").length>0){if($("#onlinefriends").css("display")=="none"){$("#onlinefriends").css("display","block");positionChatBoxes()}return}$(" <div />").attr("id","onlinefriends").addClass("chatbox").html('<div class="chatboxhead" onclick="toggleChatBoxGrowth(\'onlinefriends\', event,false);return false;"><div class="chatboxtitle" style="float:left">'+c+'</div><div class="chatboxoptions"><a href="" onclick="toggleChatBoxGrowth(\'onlinefriends\', event,false);return false;">-</a> </div><br clear="all"/></div><div class="chatboxcontent" style="height:auto"></div>').appendTo($("body"));$("#onlinefriends").css("bottom","0px");var a=0;try{if($.cookie("olf_state")==1){a=1}}catch(d){}if(a==0){$("#onlinefriends .chatboxcontent").css("display","none")}$("#onlinefriends").show();$("#onlinefriends").css("right",rightMargin+"px")}function startChatSession(){chatStarted=true;restorePreviousState();$.ajax({url:"chat?action=startchatsession",cache:false,dataType:"text json",success:function(a){if(a){if(a.username){username=a.username;setTimeout("chatHeartbeat();",chatHeartbeatTime)}}}})}function positionChatBoxes(){$("#onlinefriends").css("right",rightMargin+"px");var a=0;for(x in chatBoxes){chatboxid=chatBoxes[x].getId();if($("#"+chatboxid).css("display")!="none"){width=(a)*(chatBoxWidth+boxMargin)+olfBoxWidth+boxMargin+rightMargin;$("#"+chatboxid).css("right",width+"px");a++}}}function chatWith(a,b){createChatBox(a,b,1);$("#chatbox_"+a+" .chatboxtextarea").focus()}function createChatBox(b,d,e){var a="chatbox_"+b;var c="#chatbox_"+b;$(" <div />").attr("id",a).addClass("chatbox").html('<div class="chatboxhead" onclick="toggleChatBoxGrowth(\''+a+"', event,true);markAllRead('"+a+"','"+d+"',true);\"><div class='grid_2 alpha'><img class=\"profileImg\" src='image?action=getprofile&u="+b+'\' width=25 height=25></div><div class="grid_5 omega chatboxtitle"><span id="cbtitle'+b+'">'+d+'</span><div class="chatboxoptions2"><a href="" onclick="clearChatHistory(event,'+b+');return false;">'+strClearChatHistory+'</a></div></div><div class="chatboxoptions"><a href="" onclick="toggleChatBoxGrowth(\''+a+'\', event,true);return false;">-</a> <a href="" onclick="closeChatBox(\''+a+'\', event);return false;">X</a></div><br clear="all"/></div><div class="chatboxcontent"></div><div class="chatboxinput"><textarea class="chatboxtextarea" onclick="markAllRead(\''+a+"','"+d+"');\" onkeydown=\"javascript:return checkChatBoxInputKey(event,this,'"+a+"','"+b+"');\"></textarea></div>").appendTo($("body"));$(c).css("bottom","0px");var h=0;for(x in chatBoxes){if($("#"+chatBoxes[x].getId()).css("display")!="none"){h++}}width=(h)*(chatBoxWidth+boxMargin)+olfBoxWidth+boxMargin+rightMargin;$(c).css("right",width+"px");var j=false;var f;for(f=0;f<chatBoxes.length;f++){if(chatBoxes[f].getId()==a){j=true}}if(!j){chatBoxes.push(new ChatBox(a,b,d,e));setChatBoxesCookie()}var g;for(f=0;f<chatBoxes.length;f++){if(chatBoxes[f].getId()==a){g=chatBoxes[f]}}if(g.getState()==0){$(c+" .chatboxoptions2").css("display","none");$(c+" .chatboxcontent").css("display","none");$(c+" .chatboxinput").css("display","none")}else{$(c+" .chatboxoptions2").css("display","block");$(c+" .chatboxcontent").css("display","block");$(c+" .chatboxinput").css("display","block")}chatboxFocus[a]=false;$(c+" .chatboxtextarea").blur(function(){chatboxFocus[a]=false;$(c+" .chatboxtextarea").removeClass("chatboxtextareaselected")}).focus(function(){chatboxFocus[a]=true;newMessages[a]=0;$(c+" .chatboxhead").removeClass("chatboxblink");$(c+" .chatboxtextarea").addClass("chatboxtextareaselected")});$(c).click(function(){if($(c+" .chatboxcontent").css("display")!="none"){$(c+" .chatboxtextarea").focus()}});positionChatBoxes();$(c).show();getChatHistory(b)}function markAllRead(a,b){newMessages[a]=0;$("#"+a+" .chatboxhead .chatboxtitle span").html(b);$("#"+a+" .chatboxhead").removeClass("chatboxblink")}function clearChatHistory(b,a){stopPropagation(b);$.ajax({url:"chat?action=clearchathistory&frienduid="+a,cache:false,dataType:"text json",success:function(d){showInfoDialog(d.deletedmessages+" "+strMessagesDeleted,"");var c="#chatbox_"+a;$(c+" .chatboxcontent").html("")}})}function getChatHistory(a){$.ajax({url:"chat?action=chathistory&frienduid="+a+"&lastmessage="+lastMessage,cache:false,dataType:"text json",success:function(b){$.each(b.items,function(g,j){if(j){id=j.id;from=j.fuid;friendname=j.fn;j.m=parseSmileys(j.m);msg=j.m;ts=j.ts;var e="#chatbox_"+a;if($(e).length<=0){createChatBox(a,friendname,1);$(e+" .chatboxcontent").prepend("<div>----------</div>")}if($(e).css("display")=="none"){$(e).css("display","block");positionChatBoxes()}var d=new Date();var c=getSqlFormatDate(d);var h=j.ts.substring(0,10);var f="";if(c==h){f=j.ts.substring(11,16)}else{f=j.ts.substring(0,16)}$(e+" .chatboxcontent").prepend('<div class="chatboxmessage"><span class="chatboxmessagefrom">'+j.fn+':&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+j.m+' <span style="color:gray;font-size:9px">('+f+")</span></span></div>");$(e+" .chatboxcontent").scrollTop($(e+" .chatboxcontent")[0].scrollHeight)}})}})}var beepSound;try{var beepSound=new Audio("/res/audio/beep5.mp3")}catch(err){}var lastMessage;function chatHeartbeat(){var b=0;try{$.ajax({url:"chat?action=chatheartbeat&lastmessage="+lastMessage,cache:false,dataType:"text json",error:function(d){var c=new Date().getTime();if((c-lastHeartBeatTime)>maxChatHeartbeat){showFixedLoginDialog()}else{setTimeout("chatHeartbeat();",chatHeartbeatTime)}},success:function(k){lastHeartBeatTime=new Date().getTime();var g=0;if(k.lastmsg){g=k.lastmsg}var f=[];var j=0;$.each(k.items,function(q,s){if(s){id=s.id;frienduid=s.fuid;friendname=s.fn;s.m=parseSmileys(s.m);msg=s.m;ts=s.ts;var o="chatbox_"+frienduid;if($("#"+o).length<=0){f[j]=o;j++;createChatBox(frienduid,friendname,1)}if($("#"+o).css("display")=="none"){$("#"+o).css("display","block");positionChatBoxes()}if(newMessages[o]){newMessages[o]++}else{newMessages[o]=1}var l=true;for(var q=0;q<j;q++){if(f[q]==o){l=false;break}}if(l){var n=new Date();var m=getSqlFormatDate(n);var r=s.ts.substring(0,10);var p="";if(m==r){p=s.ts.substring(11,16)}else{p=s.ts.substring(0,16)}$("#"+o+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxmessagefrom">'+s.fn+':&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+s.m+' <span style="color:gray;font-size:9px">('+p+")</span></span></div>");$("#"+o+" .chatboxcontent").scrollTop($("#"+o+" .chatboxcontent")[0].scrollHeight)}b+=1}});chatHeartbeatCount++;if(b>0){try{beepSound.play()}catch(h){}chatHeartbeatTime=minChatHeartbeat;chatHeartbeatCount=1;for(var c=0;c<chatBoxes.length;c++){var e=chatBoxes[c].getId();if(newMessages[e]>0){$("#"+e+" .chatboxhead").addClass("chatboxblink");$("#"+e+" .chatboxhead .chatboxtitle span").html(chatBoxes[c].getFriendName()+" ("+newMessages[e]+")")}}try{self.focus()}catch(d){}}else{if(chatHeartbeatCount>=10){chatHeartbeatTime*=2;chatHeartbeatCount=1;if(chatHeartbeatTime>maxChatHeartbeat){chatHeartbeatTime=maxChatHeartbeat}}}setTimeout("chatHeartbeat();",chatHeartbeatTime)}})}catch(a){setTimeout("chatHeartbeat();",maxChatHeartbeat)}}function closeChatBox(a,c){stopPropagation(c);$("#"+a).remove();for(var b=0;b<chatBoxes.length;b++){if(chatBoxes[b].getId()==a){chatBoxes.splice(b,1);setChatBoxesCookie();positionChatBoxes();return}}}function ChatBox(d,a,c,b){this.id=d;this.fuid=a;this.fname=c;this.state=b;this.getId=function(){return d};this.getFriendUid=function(){return a};this.getFriendName=function(){return c};this.getState=function(){return b};this.setState=function(e){b=e}}function setChatBoxesCookie(){var c="";for(var a=0;a<chatBoxes.length;a++){c+=chatBoxes[a].getId()+";"+chatBoxes[a].getFriendUid()+";"+chatBoxes[a].getFriendName()+";"+chatBoxes[a].getState()+"|"}c=c.slice(0,-1);try{$.cookie("chatboxes",c)}catch(b){}}function toggleChatBoxGrowth(g,f,d){stopPropagation(f);var b=0;if($("#"+g+" .chatboxcontent").css("display")=="none"){if(d){$("#"+g+" .chatboxoptions2").css("display","block")}$("#"+g+" .chatboxcontent").css("display","block");$("#"+g+" .chatboxinput").css("display","block");if(g.indexOf("chat")==0){$("#"+g+" .chatboxcontent").scrollTop($("#"+g+" .chatboxcontent")[0].scrollHeight)}b=1}else{if(d){$("#"+g+" .chatboxoptions2").css("display","none")}$("#"+g+" .chatboxcontent").css("display","none");$("#"+g+" .chatboxinput").css("display","none");b=0}if(d){for(var a=0;a<chatBoxes.length;a++){if(chatBoxes[a].getId()==g){chatBoxes[a].setState(b)}}setChatBoxesCookie()}else{try{$.cookie("olf_state",b)}catch(c){}}}function checkChatBoxInputKey(f,e,b,a){if(f.keyCode==13&&f.shiftKey==0){message=$(e).val();message=message.replace(/^\s+|\s+$/g,"");$(e).val("");$(e).focus();$(e).css("height","44px");if(message!=""){$.post("chat?action=sendchat",{to:a,message:message},function(k){message=message.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\"/g,"&quot;");message=parseSmileys(message);var g=new Date();var j=g.getMinutes();if(j<10){j="0"+j}var h=g.getHours()+":"+j;$("#"+b+" .chatboxcontent").append('<div class="chatboxmessage"><span class="chatboxmessagefrom">'+username+':&nbsp;&nbsp;</span><span class="chatboxmessagecontent">'+message+' <span style="color:gray;font-size:9px">('+h+")</span></span></div>");$("#"+b+" .chatboxcontent").scrollTop($("#"+b+" .chatboxcontent")[0].scrollHeight)})}chatHeartbeatTime=minChatHeartbeat;chatHeartbeatCount=1;return false}var d=e.clientHeight;var c=94;if(c>d){d=Math.max(e.scrollHeight,d);if(c){d=Math.min(c,d)}if(d>e.clientHeight){$(e).css("height",d+8+"px")}}else{$(e).css("overflow","auto")}}function restorePreviousState(){try{if($.cookie("chatboxes")){var c=$.cookie("chatboxes").split(/\|/);for(var b=0;b<c.length;b++){var a=c[b].split(/\;/);createChatBox(a[1],a[2],a[3])}}}catch(d){}}jQuery.cookie=function(b,j,m){if(typeof j!="undefined"){m=m||{};if(j===null){j="";m.expires=-1}var e="";if(m.expires&&(typeof m.expires=="number"||m.expires.toUTCString)){var f;if(typeof m.expires=="number"){f=new Date();f.setTime(f.getTime()+(m.expires*24*60*60*1000))}else{f=m.expires}e="; expires="+f.toUTCString()}var l=m.path?"; path="+(m.path):"";var g=m.domain?"; domain="+(m.domain):"";var a=m.secure?"; secure":"";document.cookie=[b,"=",encodeURIComponent(j),e,l,g,a].join("")}else{var d=null;if(document.cookie&&document.cookie!=""){var k=document.cookie.split(";");for(var h=0;h<k.length;h++){var c=jQuery.trim(k[h]);if(c.substring(0,b.length+1)==(b+"=")){d=decodeURIComponent(c.substring(b.length+1));break}}}return d}};function hideEventEndDateTime(c,b){var a=document.getElementById(b);if(c.value==0){if(a!=null){a.style.display="block"}}else{if(a!=null){a.style.display="none"}}}var xmlhttpeps,msdivname,tsdivname,selectdivname;function updateEventParticipation(c,d,a,b){msdivname=c;tsdivname=d;selectdivname=a;if(xmlhttpeps!=null){xmlhttpeps.abort();xmlhttpeps=null}xmlhttpeps=createAjaxRequest(b,EventParticipateResponseHandler)}var statesandnames;function updateEventParticipationAndNames(a,b){statesandnames=a;if(xmlhttpeps!=null){xmlhttpeps.abort();xmlhttpeps=null}xmlhttpeps=createAjaxRequest(b,EventParticipateResponseHandler)}function EventParticipateResponseHandler(){if(xmlhttpeps==null){return}if(xmlhttpeps.readyState==4){var l=xmlhttpeps.responseXML.getElementsByTagName("epstate");var g=null;if(l!=null){g=l[0]}if(g!=null){var d=g.getAttribute("mystate");var k=g.getAttribute("reject");var e=g.getAttribute("accept");var a=g.getAttribute("maybe");var f=document.getElementById(msdivname);var j=document.getElementById(tsdivname);var b=document.getElementById(selectdivname);if(d==1){f.innerHTML=strMrRejected}else{if(d==2){f.innerHTML=strMrAccepted}else{if(d==3){f.innerHTML=strMrMaybe}}}j.innerHTML="";if(e>0){j.innerHTML+='<div class="eventBoxPositive" style="width:40px;min-height:10px;margin-bottom:5px;">'+e+" "+strAccepted+"</div>"}if(a>0){j.innerHTML+='<div class="eventBoxNeutral" style="width:40px;min-height:10px;margin-bottom:5px;">'+a+" "+strMaybe+"</div>"}if(k>0){j.innerHTML+='<div class="eventBoxNegative" style="width:40px;min-height:10px;margin-bottom:5px;">'+k+" "+strRejected+"</div>"}}var c=xmlhttpeps.responseXML.getElementsByTagName("epstatenames")[0];if(c!=null){var h=c.getAttribute("content");h=h.replace(/&lt;/ig,"<");h=h.replace(/&gt;/ig,">");h=h.replace(/&amp;/ig,"&");h=h.replace(/&quot;/ig,'"');h=h.replace(/&apos;/ig,"'");document.getElementById(statesandnames).innerHTML=h}}}function modifyAllRepeatedEvents(c,d,a,b){stopPropagation(c);return showSelectDialog(strModifyAllRepeatingEvents,d,b,a,strAllRepeatingEvents,strOnlyThisEvent)}Namespace.Manager.Register("trainit");trainit.FriendSearch=function(){};trainit.FriendSearch.prototype.searchFriends=function(d,b,a){var c="friends?action=search&keyword="+$("#"+d).val();$.ajax({url:c,cache:false,dataType:"text json",success:function(g){if(g){var h="";if(g.friends){var e,f;if(a){h+="<div>";for(f=0;f<g.friends.length;f++){e=g.friends[f];h+="<div style='margin:2px'><a href=\"frontpage?u="+e.id+'"><img class="profileImg" style="vertical-align:middle;" alt="" src="image?action=getprofile&amp;u='+e.id+'" width=24 height=24></a>';h+='<a href="frontpage?u='+e.id+'">'+e.name+"</a>";h+="</div>"}h+="</div>"}else{h+="<div class='large_separator'></div>";h+="<div class='grid_12 alpha'>";h+="<div class='grid_1 alpha common_table_header'></div>";h+="<div class='grid_3 common_table_header'>"+strNickname+"</div>";h+="<div class='grid_3 common_table_header'>"+strName+"</div>";h+="<div class='grid_2 common_table_header'>"+strCity+"</div>";h+="<div class='grid_2 omega common_table_header'></div>";h+="</div>";for(f=0;f<g.friends.length;f++){e=g.friends[f];h+="<div class='grid_12 alpha common_table_row'>";h+="<div class='grid_1 alpha'><a href=\"frontpage?u="+e.id+'"><img class="profileImg" style="vertical-align:middle;" alt="" src="image?action=getprofile&amp;u='+e.id+'" width=24 height=24></a></div>';h+="<div class='grid_3'><a href=\"frontpage?u="+e.id+'">'+e.nick+"</a></div>";h+="<div class='grid_3'><a href=\"frontpage?u="+e.id+'">'+e.name+"</a></div>";h+="<div class='grid_3'>"+e.city+"</div>";h+="<div class='grid_2 omega'><a href=\"\" onclick=\"requestFriend('"+e.id+"','"+e.nick+" ("+e.name+")');return false;\">"+strRequestToFriend+"</a></div>";h+="</div>"}}}else{h="<div class='large_separator'></div>";h+="<p>"+strNoUsersFound+"</p>"}}else{h="<div class='large_separator'></div>";h+="<p>"+strNoUsersFound+"</p>"}$("#"+b).html(h)}})};trainit.GroupSearch=function(){};trainit.GroupSearch.prototype.searchGroups=function(d,b,a){var c="groups?action=search&keyword="+$("#"+d).val();$.ajax({url:c,cache:false,dataType:"text json",success:function(f){if(f){var h="";if(f.groups){h+="<div class='large_separator'></div>";h+="<div class='grid_12 alpha'>";h+="<div class='grid_1 alpha common_table_header'></div>";h+="<div class='grid_5 common_table_header'>"+strName+"</div>";h+="<div class='grid_6 omega common_table_header'>"+strDescription+"</div>";h+="</div>";for(var e=0;e<f.groups.length;e++){var g=f.groups[e];h+="<div class='grid_12 alpha common_table_row'>";h+="<div class='grid_1 alpha'><a href=\"group?action=show&groupid="+g.id+'">';h+='<img style="vertical-align:middle;" alt="" src="'+g.imgname+'" width=50 height=50></a></div>';h+="<div class='grid_5'><a href=\"group?action=show&groupid="+g.id+'">'+g.name+"</a></div>";h+="<div class='grid_6 omega'>"+g.desc+"</div>";h+="</div>"}if(f.groups.length<1){h="<div class='large_separator'></div>";h+="<p>"+strNoGroupsFound+"</p>"}}}$("#"+b).html(h)}})};var newPmCheckTimeout=30000;var myUid;var pmPageInitialized;var PRIVATE_MESSAGE_TYPE_NORMAL=9;var PRIVATE_MESSAGE_TYPE_FRIEND_REQUEST=11;var PRIVATE_MESSAGE_TYPE_FRIEND_ACCEPT=12;var PRIVATE_MESSAGE_TYPE_FRIEND_REJECT=13;var PRIVATE_MESSAGE_TYPE_GROUP_REQUEST=21;var PRIVATE_MESSAGE_TYPE_GROUP_ACCEPT=22;var PRIVATE_MESSAGE_TYPE_GROUP_REJECT=23;var PRIVATE_MESSAGE_TYPE_EVENT_REQUEST=31;var PRIVATE_MESSAGE_TYPE_EVENT_ACCEPT=32;var PRIVATE_MESSAGE_TYPE_EVENT_REJECT=33;var PRIVATE_MESSAGE_TYPE_COACH_REQUEST=1000;var PRIVATE_MESSAGE_TYPE_WM_NOTIFICATION=50;var pmbutton;var backbutton;var responsebutton;var acceptbutton;var rejectbutton;var selectedTimeRange=31;function timeRangeChanged(a){selectedTimeRange=a;getPrivateMessages()}function initPrivateMessages(d,a,c){pmbutton="<button id='pmbutton' onclick='newPrivateMessage();'>"+strNewPrivateMessage+"</button>";markallreadbutton="<button id='markallreadbutton' onclick='markAllPmAsRead();'>"+strMarkAllMessagesAsRead+"</button>";backbutton="<button id='backbutton' onclick='setMessageView(0);'>"+strBackToMessageList+"</button>";responsebutton="<button id='responsebutton' onclick='sendResponse();setMessageView(0);'>"+strRespond+"</button>";acceptbutton="<button id='acceptbutton' onclick=''>"+strAccept+"</button>";rejectbutton="<button id='rejectbutton' onclick=''>"+strReject+"</button>";myUid=d;var b="<p class='profileDataDivTitle'>"+strMessageSettings+"</p><div><p>"+strShowMessagesFrom+"</p><p><select id='trselection' style='width:200px' name='trselection' onchange='timeRangeChanged(this.value)'><option value='1'>"+strLastDay+"</option><option value='7'>"+strLastWeek+"</option><option value='31' selected>"+strLastMonth+"</option><option value='180'>"+strLast6Months+"</option><option value='365'>"+strLastYear+"</option><option value='36500'>"+strAllMessages+"</option></select></p></div>";var e="<div class='small_separator' style='font-size:11px'><input style='margin-right:10px' type='checkbox' onclick='showMyEventInvitations(this.checked)'>"+strShowEventRequestSentByMe+"</div>";$("#messageSettings").append(b+e);$("#privatemessages").append("<div id='messageListContainer'>"+pmbutton+markallreadbutton+"<div class='large_separator'></div><div class='grid_12 alpha omega' id='messageTable'></div></div>");$("#privatemessages").append("<div id='messageChainContainer'><div>"+backbutton+"</div><div class='large_separator'></div><div id='chainMessages'></div><div class='large_separator'></div><div id='chainbuttonpanel'>"+acceptbutton+" "+rejectbutton+" "+responsebutton+"</div></div>");$("#privatemessages").append("<div id='dialog-pmchain'></div>");if(!c){setMessageView(0)}else{showMessageChain(null,a,c)}pmPageInitialized=true;getPrivateMessages()}function markAllPmAsRead(){$.post("pmsg?action=markallasread",function(a){location.reload()})}function showMyEventInvitations(a){if(a){$(".hiddenmessage").show()}else{$(".hiddenmessage").hide()}}var ctr=0;var checkPmsgTimer;var lastUnreadMessagesCount;var newMessageCount=0;function checkNewPrivateMessages(){if(checkPmsgTimer){clearTimeout(checkPmsgTimer);checkPmsgTimer=null}var a="pmsg?action=checknewpmsg";$.ajax({url:a,cache:false,dataType:"text json",context:document.body,success:function(l){if(l){if(l.checknewpmsg){var m=0;if(l.checknewpmsg.unreadpmsg){m=l.checknewpmsg.unreadpmsg.length}if(m>0){var k=m;if(k>10){k=10}var d=3000/k;if(d>1500){d=1500}var f=strUnreadMessages1+" "+m+" "+strUnreadMessages2;var n=0;var p=0;var q=0;if(l.checknewpmsg.unreadpmsg&&newMessageCount!=m){newMessageCount=m;var s="";var c="";var e="";for(var j=0;j<l.checknewpmsg.unreadpmsg.length;j++){var r=l.checknewpmsg.unreadpmsg[j];var g=r.parent;if(g==0){g=r.mid}if(r.type==PRIVATE_MESSAGE_TYPE_FRIEND_REQUEST){c+='<p><a href="messages?sid='+r.senderid+"&mid="+g+'">'+strFriendRequestFromUser+" "+r.sendername+"</a></p>";n++}else{if(r.type==PRIVATE_MESSAGE_TYPE_WM_NOTIFICATION){s+='<p><a href="" onclick="removePrivateMessage(event,'+r.mid+", true);gotoWallMessage("+r.receiverid+", "+r.eid+');return false;">'+r.sendername+": "+r.message+'</a><a style="float:right" href="" onclick="removePrivateMessage(event,'+r.mid+', true);count--;checkNewPrivateMessages();return false;"><img src="/res/img/16/trash.png"></a></p>';q++}else{e+='<p><a href="messages?sid='+r.senderid+"&mid="+g+'">'+r.sendername+": "+r.message+"</a></p>";p++}}}$("#messageNotificationsDiv").show();if(n>0){var b="";if(n==1){b='<a href="" onclick="goToUrl("messages");return false;">'+n+" "+strOneNewFriendRequest+"</a>"}else{b='<a href="" >'+n+" "+strManyNewPrivateMessages+"</a>"}$("#friendRequestNotification").html(b+'<div class="messageNotificationContent" id="frnContent" style="display:none">'+c+"</div>").show()}else{$("#friendRequestNotification").empty().hide()}if(p>0){var o="";if(p==1){o='<a href="" onclick="goToUrl("messages");return false;">'+p+" "+strOneNewPrivateMessage+"</a>"}else{o='<a href="" >'+p+" "+strManyNewPrivateMessages+"</a>"}$("#msgNotification").html(o+'<div class="messageNotificationContent" id="msgnContent" style="display:none">'+e+"</div>").show()}else{$("#msgNotification").empty().hide()}if(q>0){var h="";if(q==1){h='<a href="" onclick="return false;">'+q+" "+strOneNewWallMessage+"</a>"}else{h='<a href="" onclick="return false;">'+q+" "+strManyNewWallMessages+"</a>"}$("#wmNotification").html(h+'<div class="messageNotificationContent" id="wmnContent" style="display:none">'+s+"</div>").show()}else{$("#wmNotification").empty().hide()}}animEmailPtimes=k;animEmailFreq=d;if(!animEmailTimer){animEmailTimer=setTimeout("animatedEmailNotification()",500)}}else{$("#MENU5 img").attr("src","/res/img/messages.png");$("#MENU5 img").attr("title",strMessages);$("#friendRequestNotification").empty().hide();$("#msgNotification").empty().hide();$("#wmNotification").empty().hide();$("#messageNotificationsDiv").hide();if(animEmailTimer){clearTimeout(animEmailTimer);animEmailTimer=null}}if(m!=lastUnreadMessagesCount){lastUnreadMessagesCount=m;getPrivateMessages()}}}checkPmsgTimer=setTimeout("checkNewPrivateMessages()",newPmCheckTimeout)}})}var animEmailTimer;var animEmailTimeout=5000;var animEmailPtimes;var animEmailFreq;function animatedEmailNotification(){$("#MENU5 img").attr("src","/res/img/newmessages.png").effect("pulsate",{times:animEmailPtimes},animEmailFreq);animEmailTimer=setTimeout("animatedEmailNotification()",animEmailTimeout)}var pmsgListTimer;function getPrivateMessages(){if(!pmPageInitialized){return}var a="pmsg?action=getpmsglist&timerange="+selectedTimeRange;$.ajax({url:a,cache:false,dataType:"text json",context:document.body,success:function(h){var e="";if(h.getpmsglist){for(var j=h.getpmsglist.messages.length-1;j>=0;j--){var p=h.getpmsglist.messages[j];var d=p.title;var k=p.senderid;var f=p.sendername;var n=0;var l="";if(myUid==k){k=p.receiverid;f=p.receivername;n=1;l="-> "}var c="";if(p.childs>0){c='<div style="color:blue">'+p.childs+" "+strResponses+"</div>"}var o="";if(p.unread>0){o='<div style="color:red"><img src="/res/img/16/newmessages.png"> '+p.unread+" "+strUnreadMessages+"</div>"}var m="";var b="";if(p.type==PRIVATE_MESSAGE_TYPE_EVENT_REQUEST&&n==1&&o<1){m="hiddenmessage";b="display:none;"}if(p.type==PRIVATE_MESSAGE_TYPE_WM_NOTIFICATION){continue}e+='<div class="common_table_row '+m+'" style="cursor:pointer;'+b+'" title="'+strClickToShowMessageChain+'" onclick="showMessageChain(event, '+k+", "+p.mid+')"><img class="profileImg" src=\'image?action=getprofile&amp;u='+k+'\' width=50 height=50><div class="grid_2"><div>'+l+'<a href="frontpage?u='+k+'">'+f+"</a></div><div>"+p.ts+"</div></div>";e+='<div class="grid_7">';if(p.type==PRIVATE_MESSAGE_TYPE_FRIEND_REQUEST){if(n==1){e+='<div class="pmsubject">'+strFriendRequestToUser+" "+p.receivername+" : "+strPending+"</div>"}else{e+='<div class="pmsubjectfriendrequest" style="font-weight:bold">'+strFriendRequestFromUser+" "+p.sendername;e+=' <div class="inline_block"><button onclick="acceptFriendRequest(event, '+p.senderid+","+p.mid+');return false;">'+strAccept+'</button> <button onclick="rejectFriendRequest(event, '+p.senderid+","+p.mid+');return false;">'+strReject+"</button></div></div>"}}else{if(p.type==PRIVATE_MESSAGE_TYPE_COACH_REQUEST){if(n==1){e+='<div class="pmsubject">'+strCoachRequestToUser+" "+p.receivername+" : "+strPending+"</div>"}else{e+='<div class="pmsubjectfriendrequest" style="font-weight:bold">'+strCoachRequestFromUser+" "+p.sendername;e+=' <div class="inline_block"><button onclick="goToUrl(\'ptclients?action=showrequest&id='+p.eid+"');return false;\">"+strShowRequest+"</button> </div></div>"}}else{if(p.type==PRIVATE_MESSAGE_TYPE_FRIEND_ACCEPT){if(n==1){e+='<div class="pmsubject">'+strFriendRequestToUser+" "+p.receivername+" : "+strRequestAccepted+"</div>"}else{e+='<div class="pmsubjectfriendrequest">'+strFriendRequestFromUser+" "+p.sendername+" : "+strRequestAccepted+"</div>"}}else{if(p.type==PRIVATE_MESSAGE_TYPE_FRIEND_REJECT){if(n==1){e+='<div class="pmsubject">'+strFriendRequestToUser+" "+p.receivername+" : "+strRequestRejected+"</div>"}else{e+='<div class="pmsubjectfriendrequest">'+strFriendRequestFromUser+" "+p.sendername+" : "+strRequestRejected+"</div>"}}else{if(p.type==PRIVATE_MESSAGE_TYPE_GROUP_REQUEST){if(n==1){e+='<div class="pmsubject">'+strGroupRequest+' <a href="group?groupid='+p.eid+'">'+p.ename+"</a> : "+strPending+"</div>"}else{e+='<div class="pmsubjectfriendrequest" style="font-weight:bold">'+strGroupRequest+' <a href="group?groupid='+p.eid+'">'+p.ename+"</a> : ";e+=' <div class="inline_block"><button onclick="acceptGroupRequest(event, '+p.senderid+","+p.mid+');return false;">'+strAccept+'</button> <button onclick="rejectGroupRequest(event, '+p.senderid+","+p.mid+');return false;">'+strReject+"</button></div></div>"}}else{if(p.type==PRIVATE_MESSAGE_TYPE_GROUP_ACCEPT){e+='<div class="pmsubject">'+strGroupRequest+' <a href="group?groupid='+p.eid+'">'+p.ename+"</a> : "+strRequestAccepted+"</div>"}else{if(p.type==PRIVATE_MESSAGE_TYPE_GROUP_REJECT){e+='<div class="pmsubject">'+strGroupRequest+' <a href="group?groupid='+p.eid+'">'+p.ename+"</a> : "+strRequestRejected+"</div>"}else{if(p.type==PRIVATE_MESSAGE_TYPE_EVENT_REQUEST){e+='<div class="pmsubject">'+strEventRequest+' <a href="events?action=show&id='+p.eid+'">'+p.ename+"</a></div>"}else{e+='<div class="pmsubject">'+d+"</div>"}}}}}}}}var g=p.message;g=g.replace(/&lt;/g,"<");g=g.replace(/&gt;/g,">");e+='<div class="pmmessage">'+g+"</div>"+c+o+"</div>";e+='<div class="grid_1 omega" style="width:60px">';e+='<a href="" onclick="removePrivateMessage(event,'+p.mid+');return false;">'+strRemove+"</a>";e+="</div>";e+="</div>"}}$("#messageTable").html(e);$("button").button()}})}function gotoWallMessage(a,b){goToUrl("frontpage?u="+a+"&wmid="+b)}function removePrivateMessage(c,d,a){stopPropagation(c);if(a){var b="pmsg?action=remove&mid="+d;$.ajax({url:b,cache:false,async:false,dataType:"text json",context:document.body,success:function(e){}})}else{return showConfirmDialogAndExecFunc(strConfirmDelete,"",function(){var e="pmsg?action=remove&mid="+d;$.ajax({url:e,cache:false,dataType:"text json",context:document.body,success:function(f){showInfoDialog(strMessageDeleted,"",10000);getPrivateMessages()}})})}}function newPrivateMessage(b,a){if(!newPmDialog){initNewPmDialog()}$newPmDialog.dialog("option","title",strSendPrivateMessage);if(b>0){$("#receiver").hide();$("#preselectedreceiver").val(b);$("#preselectedreceivername").show();$("#preselectedreceivername").html(a)}else{$("#receiver").show();$("#preselectedreceiver").val(0);$("#preselectedreceivername").hide();$("#preselectedreceivername").html("")}$newPmDialog.dialog("open")}function setMessageView(a){if(a==0){$("#messageListContainer").show();$("#messageChainContainer").hide()}else{$("#messageListContainer").hide();$("#messageChainContainer").show()}}var currentChainParentId;var currentChainFriendUid;function showMessageChain(c,a,d){currentChainFriendUid=a;currentChainParentId=d;var b="pmsg?action=getpmsgchain&parentid="+d;$.ajax({url:b,cache:false,dataType:"text json",context:document.body,success:function(j){var g="";var e="";$("#acceptbutton").hide();$("#rejectbutton").hide();$("#responsebutton").show();if(j.getpmsgchain){for(var k=j.getpmsgchain.messages.length-1;k>=0;k--){var n=j.getpmsgchain.messages[k];if(k==j.getpmsgchain.messages.length-1){var l=0;var f,m;if(myUid==n.senderid){l=1}if(n.type==PRIVATE_MESSAGE_TYPE_FRIEND_REQUEST){if(l){e=strFriendRequestToUser+" "+n.receivername+" : "+strPending}else{$("#acceptbutton").show();$("#rejectbutton").show();$("#responsebutton").hide();$("#acceptbutton").unbind();$("#rejectbutton").unbind();f=n.senderid+"";m=n.mid+"";$("#acceptbutton").click(function(){acceptFriendRequest(c,f,m,$("#response").val());setMessageView(0);return false});$("#rejectbutton").click(function(){rejectFriendRequest(c,f,m,$("#response").val());setMessageView(0);return false});e=strFriendRequestFromUser+" "+n.sendername+" : "+strPending}}else{if(n.type==PRIVATE_MESSAGE_TYPE_FRIEND_ACCEPT){if(l==1){e=strFriendRequestToUser+" "+n.receivername+" : "+strRequestAccepted}else{e=strFriendRequestFromUser+" "+n.sendername+" : "+strRequestAccepted}}else{if(n.type==PRIVATE_MESSAGE_TYPE_FRIEND_REJECT){if(l==1){e=strFriendRequestToUser+" "+n.receivername+" : "+strRequestRejected}else{e=strFriendRequestFromUser+" "+n.sendername+" : "+strRequestRejected}}else{if(n.type==PRIVATE_MESSAGE_TYPE_GROUP_REQUEST){if(l==1){e='<div class="pmsubject">'+strGroupRequest+' <a href="group?groupid='+n.eid+'">'+n.ename+"</a> : "+strPending+"</div>"}else{$("#acceptbutton").show();$("#rejectbutton").show();$("#responsebutton").hide();$("#acceptbutton").unbind();$("#rejectbutton").unbind();f=n.senderid+"";m=n.mid+"";$("#acceptbutton").click(function(){acceptGroupRequest(c,f,m,$("#response").val());setMessageView(0);return false});$("#rejectbutton").click(function(){rejectGroupRequest(c,f,m,$("#response").val());setMessageView(0);return false});e='<div class="pmsubjectfriendrequest" style="font-weight:bold">'+strGroupRequest+' <a href="group?groupid='+n.eid+'">'+n.ename+"</a> "+strPending+"</div>"}}else{if(n.type==PRIVATE_MESSAGE_TYPE_GROUP_ACCEPT){e='<div class="pmsubject">'+strGroupRequest+'  <a href="group?groupid='+n.eid+'">'+n.ename+"</a> : "+strRequestAccepted+"</div>"}else{if(n.type==PRIVATE_MESSAGE_TYPE_GROUP_REJECT){e='<div class="pmsubject">'+strGroupRequest+' <a href="group?groupid='+n.eid+'">'+n.ename+"</a> : "+strRequestRejected+"</div>"}else{if(n.type==PRIVATE_MESSAGE_TYPE_EVENT_REQUEST){e='<div class="pmsubject">'+strEventRequest+' <a href="events?action=show&id='+n.eid+'">'+n.ename+"</a></div>"}else{if(n.type==PRIVATE_MESSAGE_TYPE_COACH_REQUEST){e=strCoachRequest}else{e=n.title}}}}}}}}}var h=n.message;h=h.replace(/&lt;/g,"<");h=h.replace(/&gt;/g,">");g+='<div class="common_table_row"><div class="grid_2 alpha"><img class="profileImg" src="image?action=getprofile&amp;u='+n.senderid+'" width=50 height=50></div><div class="grid_2"><div>'+n.sendername+"</div><div>"+n.ts+'</div></div><div class="grid_8 omega"><div class="pmmessage">'+h+"</div></div></div>"}}$("#chainMessages").html("<h2>"+e+"</h2><div>"+g+"</div>");$("#chainMessages").append("<div class='large_separator'></div><div class='grid_6 alpha omega suffix_6'><p><label>"+strResponse+"</label></p><p><textarea rows=6 cols=20 style='width:100%' id='response' name='response'></textarea></p></div>");setMessageView(1)}})}var newPmDialog;var newPmDialogInitialized;function initNewPmDialog(){if(!$("#dialog-newpm")){alert("New message dialog not found!");return}newPmDialogInitialized=true;var c={};c[strSend]=function(){sendNewPmsg("#dialog-newpm");$(this).dialog("close")};c[strCancel]=function(){$(this).dialog("close")};$newPmDialog=$("#dialog-newpm").dialog({closeOnEscape:true,autoOpen:false,resizable:false,modal:true,overlay:{backgroundColor:"#000000",opacity:0.2},title:"",minWidth:390,maxHeight:800,zIndex:10000,buttons:c});var a="<div style='margin-top:10px'><p id='receiverselectblock'><label class='inputlabelshort' style='font-weight:bold'>"+strReceiver+"</label></p><p><select id='receiver' name='receiver'></select><input type='hidden' id='preselectedreceiver' name='preselectedreceiver'><span id='preselectedreceivername'></span></p></div><div style='margin-top:10px'><p><label class='inputlabelshort' style='font-weight:bold'>"+strTitle+"</label></p><p><input type='text' class='inputlong' id='title' name='title'></p></div><div style='margin-top:10px'><p><label class='inputlabelshort' style='font-weight:bold'>"+strMessage+"</label></p><p><textarea rows=8 cols=20 id='message' name='message'></textarea></p></div>";$newPmDialog.html(a);$(".inputlabelshort").css("width","100px");$("#dialog-newpm input, #dialog-newpm textarea, #dialog-newpm select").css("width","350px");var b="pmsg?action=getfriends";$.ajax({url:b,cache:false,dataType:"text json",context:document.body,success:function(f){var g="";if(f.getfriends){for(var d=0;d<f.getfriends.friends.length;d++){var e=f.getfriends.friends[d];g+='<option value="'+e.id+'">'+e.name+" ("+e.firstname+" "+e.lastname+")</option>"}}$("#receiver").append(g)}})}function sendResponse(){var a="action=sendpmsg&parent="+currentChainParentId+"&receiver="+currentChainFriendUid;a+="&title=&message="+$("#response").val();$.ajax({type:"post",url:"pmsg",data:a,dataType:"text json",context:document.body,success:function(b){showInfoDialog(strMessageSent,"",10000);getPrivateMessages()},error:function(b){showErrorDialog(strMessageSendFailed,"",20000)}})}function sendNewPmsg(c,b,a){var d="action=sendpmsg";$(c+" input:text, "+c+" textarea").each(function(e){d+="&"+$(this).attr("name")+"="+$(this).val()});if($(c+" select#receiver").is(":visible")){d+="&receiver="+$(c+" select#receiver").val()}else{d+="&receiver="+$(c+" input#preselectedreceiver").val()}if(!a){a=PRIVATE_MESSAGE_TYPE_NORMAL}d+="&msgtype="+a;$.ajax({type:"post",url:"pmsg",data:d,dataType:"text json",context:document.body,success:function(e){if(e.sendpmsg.result){showInfoDialog(strMessageSent,"",10000);getPrivateMessages()}else{showErrorDialog(strMessageSendFailed,"",20000)}},error:function(e){showErrorDialog(strMessageSendFailed,"",20000)}})}function acceptFriendRequest(f,a,d,b){if(f){stopPropagation(f)}if(!b){b=strRequestAccepted}var c="action=acceptfriend&parent="+d+"&receiver="+a+"&message="+b;$.ajax({type:"post",url:"pmsg",data:c,dataType:"text json",context:document.body,success:function(e){showInfoDialog(strMessageSent,"",10000);getPrivateMessages()},error:function(e){showErrorDialog(strMessageSendFailed,"",20000)}})}function rejectFriendRequest(f,a,d,b){stopPropagation(f);if(!b){b=strRequestRejected}var c="action=rejectfriend&parent="+d+"&receiver="+a+"&message="+b;$.ajax({type:"post",url:"pmsg",data:c,dataType:"text json",context:document.body,success:function(e){showInfoDialog(strMessageSent,"",10000);getPrivateMessages()},error:function(e){showErrorDialog(strMessageSendFailed,"",20000)}})}function requestFriend(e,f){if(!$("#dialog-friendrequest")){alert("Dialog not found!");return}var d={};d[strSend]=function(){sendNewPmsg("#dialog-friendrequest",0,PRIVATE_MESSAGE_TYPE_FRIEND_REQUEST);$(this).dialog("close")};d[strCancel]=function(){$(this).dialog("close")};var b=$("#dialog-friendrequest").dialog({closeOnEscape:true,resizable:false,modal:true,overlay:{backgroundColor:"#000000",opacity:0.2},title:strRequestToFriend,minWidth:390,maxHeight:800,zIndex:10000,buttons:d});var a=strConfirmFriendRequest1+" "+f+" "+strConfirmFriendRequest2;var c="<div style='margin-top:10px'>"+a+"</div><input type='hidden' id='preselectedreceiver' name='preselectedreceiver' value='"+e+"'></p><input type='hidden' id='title' name='title' value=''></p><div style='margin-top:10px'><p><label class='inputlabelshort'><b>"+strReceiver+"</b></label></p><p><span>"+f+"</span></p><div style='margin-top:10px'><p><label class='inputlabelshort'><b>"+strTitle+"</b></label></p><p><span>"+strFriendRequest+"</span></p><div style='margin-top:10px'><p><label class='inputlabelshort'><b>"+strMessage+"</b></label></p><p><textarea rows=6 cols=20 id='message' name='message' style='width:355px'></textarea></p>";b.html(c)}function acceptGroupRequest(f,a,d,b){stopPropagation(f);if(!b){b=strRequestAccepted}var c="action=acceptgroup&parent="+d+"&receiver="+a+"&message="+b;$.ajax({type:"post",url:"pmsg",data:c,dataType:"text json",context:document.body,success:function(e){showInfoDialog(strMessageSent,"",10000);getPrivateMessages()},error:function(e){showErrorDialog(strMessageSendFailed,"",20000)}})}function rejectGroupRequest(f,a,d,b){stopPropagation(f);if(!b){b=strRequestRejected}var c="action=rejectgroup&parent="+d+"&receiver="+a+"&message="+b;$.ajax({type:"post",url:"pmsg",data:c,dataType:"text json",context:document.body,success:function(e){showInfoDialog(strMessageSent,"",10000);getPrivateMessages()},error:function(e){showErrorDialog(strMessageSendFailed,"",20000)}})}var refreshtime=30000;var xmlhttpwm,walltype,divnamewm,userid,receiverid,eventid,editing;function addWallMessage(a,e,g,f,c,d,b){walltype=a;divnamewm=e;userid=c;receiverid=d;eventid=b;sendWallMessage(a,e,g,f,c,d,b)}var scrollToWmTop=false;function sendWallMessage(j,e,a,d,h,l,b){var k=document.getElementById(a);var c=k.value;k.value="";var g=0;if($("#cbPublishWmToFacebook").attr("checked")){g=1;publishContentOnFacebook(null,c,"","")}scrollToWmTop=true;var f="ajaxwm?action=add&pfb="+g+"&walltype="+j+"&msg="+encodeURIComponent(c)+"&parentid="+d+"&rid="+l+"&eid="+b+"&days="+wmHistoryDays;if(xmlhttpwm!=null){xmlhttpwm.abort();xmlhttpwm=null}xmlhttpwm=createAjaxRequest(f,WMResponseHandler);editing=0}function removeWallMessage(a,e,b,d,c){walltype=a;return showConfirmDialogAndExecFunc(strConfirmDelete,"",function(){var f="ajaxwm?action=removewm&walltype="+a+"&id="+e+"&sid="+b+"&rid="+d+"&eid="+c+"&days="+wmHistoryDays;if(xmlhttpwm!=null){xmlhttpwm.abort();xmlhttpwm=null}xmlhttpwm=createAjaxRequest(f,WMResponseHandler)})}var wmHistoryDays=7;function getWallMessages(a,e,c,d,b,f){walltype=a;divnamewm=e;userid=c;receiverid=d;eventid=b;editing=0;if(f){wmHistoryDays=f}refreshWM()}function disableRefreshWM(){editing=1}function enableRefreshWM(){editing=0}function refreshWM(){if(editing==0){var a="ajaxwm?action=get&walltype="+walltype+"&rid="+receiverid+"&eid="+eventid+"&days="+wmHistoryDays;if(xmlhttpwm!=null){xmlhttpwm.abort();xmlhttpwm=null}xmlhttpwm=createAjaxRequest(a,WMResponseHandler)}else{setTimeout("refreshWM();",refreshtime)}}function commentFieldClicked(a){if($(a).val()==strWriteCommentHere){$(a).css("color","#000");$(a).val("")}}function messageFieldKeyPress(g,f,a,d,c,b){if($(f).val()==strWriteCommentHere){$(f).val("")}if(g.keyCode==13){g.preventDefault();sendWallMessage(walltype,divnamewm,"wminput"+a,d,userid,c,b);return false}}function commentFieldKeyPress(g,f,a,d,c,b){if($(f).val()==strWriteCommentHere){$(f).val("");$(f).css("color","#000")}if(g.keyCode==13){g.preventDefault();sendWallMessage(walltype,divnamewm,"wminput"+a,d,userid,c,b);return false}}function likeMessage(b){var a="ajaxwm?action=like&mid="+b;$.ajax({url:a,cache:false,dataType:"text json",success:function(){refreshWM()}});return false}function showCommentInput(a){disableRefreshWM();$("#comment"+a).show();$("#wminput"+a).focus()}function hideCommentInput(a){$("#comment"+a).hide();$("#commentLink"+a).show("");enableRefreshWM()}function User(b,a){this.uid=b;this.name=a;this.getUid=function(){return b};this.getName=function(){return a}}function makeArray(a){return a.split(";")}var lastVisibleWallMessage=0;function WMResponseHandler(){if(xmlhttpwm==null){return}if(xmlhttpwm.readyState==4){var I=xmlhttpwm.responseXML.getElementsByTagName("wallmessages")[0];if(I==null){return}var o=I.getElementsByTagName("wmlist");if(o!=null){var A="";var m="";var e=I.getAttribute("refresh");var y=xmlhttpwm.responseXML.getElementsByTagName("wmb");var K=0;var d=0;var b=0;var E=false;var p=0;$("#"+divnamewm).empty();var B;for(var G=0;G<y.length;G++){var j=y[G];var w=j.getAttribute("id");var H=j.getAttribute("s");var f=j.getAttribute("sid");var z=j.getAttribute("rid");var r=j.getAttribute("eid");var s=j.getAttribute("et");var a=j.getAttribute("e");var v=j.getAttribute("r");var q=j.getAttribute("m");var h=j.getAttribute("c");var L=j.getAttribute("d");var J=j.getAttribute("wos");var D=j.getAttribute("wof");var g="";var n=[];var c=j.getAttribute("likes");var k=[];if(c!=null&&c!=""){k=makeArray(c.substring(0,c.length-1))}for(B=0;B<k.length;B+=2){n.push(new User(k[B],k[B+1]))}if(s==1){var F=j.getAttribute("ongoing");if(F){q=" "+strIsTraining+' <a href="workout?u='+z+"&id="+r+'">'+a+"</a>"}else{var C="";if(J){C+="<img width=16 height=16 src='/res/img/24/stress"+J+".png'> "}if(D){C+="<img width=16 height=16  src='/res/img/24/feel"+D+".png'> "}if(L==0){q=" "+strAddedWorkout+' <a href="workout?u='+z+"&id="+r+'">'+C+a+"</a>"}else{q=" "+strModifiedWorkout+' <a href="workout?u='+z+"&id="+r+'">'+C+a+"</a>"}}}else{if(s==2){if(L==0){q=" "+strAddedEating+' <a href="eating?u='+z+"&id="+r+'">'+a+"</a>"}else{q=" "+strModifiedEating+' <a href="eating?u='+z+"&id="+r+'">'+a+"</a>"}}else{if(s==3){if(walltype!=2){g=" "+strWroteToEventWall+' <a href="events?action=show&id='+r+'">'+a+"</a> "}}else{if(s==4){if(walltype!=3){g=" "+strWroteToGroup+' <a href="group?action=show&groupid='+r+'">'+a+"</a> "}}else{if(walltype!=2&&z!=f){g=" "+strWroteToUser+' <a href="frontpage?u='+z+'">'+v+"</a> "}}}}}if(L==0){p=w;m="";d=w;K=z;b=r;m+='<div class="grid_10 alpha suffix_2"><div id="wmdiv'+w+'" class="common_table_row_no_hover"><div class="grid_1 alpha" style="width:50px"><a href="frontpage?u='+f+'"><img class="profileImg" alt="" src="image?action=getprofile&u='+f+'" width=50 height=50 onClick="goToUrl(\'frontpage?u='+f+'\')"></a></div><div class="grid_9 omega wmtableMessage" style="width:500px;vertical-align:top">';q=q.replace(/&lt;/ig,"<");q=q.replace(/&gt;/ig,">");q=q.replace(/&amp;/ig,"&");q=q.replace(/&quot;/ig,'"');q=q.replace(/&apos;/ig,"'");q=parseSmileys(q);m+='<div><a href="frontpage?u='+f+'">'+H+"</a> "+g+"</div><div>"+q+"</div>";m+='<div class="wmtableCreated">'+h;m+=' | <a class="a_small" href="" onClick="likeMessage('+w+');return false;">'+strLike+"</a> ";m+=' | <a class="a_small" href="" onClick="showCommentInput('+G+');$(this).hide();return false;">'+strComment+"</a>";if(f==userid||z==userid){m+=' | <a class="a_small" href="" onClick="removeWallMessage('+walltype+","+w+","+f+","+z+","+r+');return false;" title="'+strRemoveWM+'" >'+strRemoveWM+"</a>"}m+="</div>";m+="</div>";if(n!=null&&n!=""){m+='<div class="grid_1 alpha" style="width:50px"></div>';m+='<div class="grid_9 omega wmtableCommentDiv likeDiv" style="width:500px;font-size:11px">';m+='<img src="/res/img/16/thumb_up.png"> ';m+="<span>";for(B=0;B<n.length;B++){m+='<a class="a_small" href=\'frontpage?u='+n[B].getUid()+"'>"+n[B].getName()+"</a>";if((B+2)<n.length){m+=", "}else{if((B+1)<n.length){m+=" "+strAnd+" "}}}if(n.length>1){m+=" "+strManyPeopleLikeThis}else{m+=" "+str1PeopleLikesThis}m+=' | <a class="a_small" href="" onClick="likeMessage('+w+');return false;">'+strLike+"</a> ";m+="</span>";m+="</div>"}m+='<div class="grid_1 alpha" style="width:50px"></div>';m+='<div id="commentsDiv'+w+'" class="grid_9 omega" style="width:500px"></div>';m+='<div class="grid_1 alpha" style="width:50px"></div>';m+='<div class="grid_9 omega" style="width:500px">';m+='<div><a id="commentLink'+G+'" href="" onClick="showCommentInput('+G+');$(this).hide();return false;">'+strComment+"</a></div>";m+="</div>";m+='<div id="comment'+G+'" style="display:none">';m+='<div class="grid_1 alpha" style="width:50px"></div>';m+='<div class="grid_9 omega wmtableCommentInputDiv" style="width:500px;">';m+='<div class="grid_1 alpha " style="width:32px"><img class="profileImg" style="vertical-align:bottom" alt="" src="image?action=getprofile&u='+userid+'" width=32 height=32></div>';m+='<div class="grid_7 omega">';m+='<div><textarea class="wmcomment" id="wminput'+G+'" style="color:#aaa;width:100%;height:32px;" name="wminput'+G+'"onclick="commentFieldClicked(this);" onkeypress="commentFieldKeyPress(event, this, '+G+", "+d+", "+K+", "+b+');" title="'+strWriteCommentHere+'">'+strWriteCommentHere+"</textarea></div>";m+='<div><button id="wminputbtn'+G+"\" style='' onclick=\"sendWallMessage('"+walltype+"','"+divnamewm+"', 'wminput"+G+"', "+d+", "+userid+", "+K+", "+b+');" title="'+strSendComment+'">'+strSendComment+'</button><button onclick="hideCommentInput('+G+');" title="'+strCancel+'">'+strCancel+"</button></div>";m+="</div></div>";m+="</div>";m+="</div>";m+="</div>";$("#"+divnamewm).append(m);m=""}else{m="";E=true;m+='<div class="wmtableCommentDiv" style="width:500px">';m+='<div class="grid_1 alpha wmtableCommentImg" style="width:32px"><a href="frontpage?u='+f+'"><img class="profileImg" style="vertical-align:bottom" alt="" src="image?action=getprofile&u='+f+'" width=32 height=32></a></div>';m+='<div class="grid_7 omega wmtableCommentText" style="width:430px;">';q=q.replace(/&lt;/ig,"<");q=q.replace(/&gt;/ig,">");q=q.replace(/&amp;/ig,"&");q=q.replace(/&quot;/ig,'"');q=q.replace(/&apos;/ig,"'");q=parseSmileys(q);m+='<div><a href="frontpage?u='+f+'">'+H+"</a> "+q+"</div>";m+='<div class="wmtableCreated">';m+=h;m+=' | <a class="a_small" href="" onClick="likeMessage('+w+');return false;">'+strLike+"</a> ";if(f==userid||z==userid){m+=' | <a class="a_small" href="" onClick="removeWallMessage('+walltype+","+w+","+f+","+z+","+r+');return false;" title="'+strRemoveWM+'" >'+strRemoveWM+"</a>"}if(n!=null&&n!=""){m+='<p style="font-size:11px;color:black;">';for(B=0;B<n.length;B++){m+='<a class="a_small" href=\'frontpage?u='+n[B].getUid()+"'>"+n[B].getName()+"</a>";if((B+2)<n.length){m+=", "}else{if((B+1)<n.length){m+=" "+strAnd+" "}}}if(n.length>1){m+=" "+strManyPeopleLikeThis}else{m+=" "+str1PeopleLikesThis}m+="</p>"}m+="</div>";m+="</div>";m+="</div>";$("#commentsDiv"+p).append(m)}}$("button").button();if(e==1){var u=setTimeout("refreshWM();",refreshtime)}}if(scrollToWmTop){scrollToWmTop=false;scrollToDiv("wminput")}}}$.Class("trainit.Diet",{count:0},{init:function(h,d,g,c,e,f,b,a){this.id=h;this.name=d;this.minProt=g;this.maxProt=c;this.minCarbs=e;this.maxCarbs=f;this.minFat=b;this.maxFat=a}});function validateEating(){$("#eatingForm").validate({onkeyup:false,onfocusout:false,onclick:false});jQuery.validator.addMethod("foodCheck",function(g,c){if($(c).val()==$(c).attr("title2")){$(c).val("")}var a=$(c).attr("id");var d=a.substring(10,a.length);if($(c).val()&&$(c).val()!=""){var j=$(this).closest(".grid_12").get(0);var e=$(j).find("input.subfoodid").val();var f=$(c).val();var b="eating";var h=false;$.ajax({url:b,data:{action:"checkfood",foodid:e,foodname:f},dataType:"text json",cache:false,async:false,success:function(k){h=((k.found=="true")?true:false)}});return h}else{$("#subfoodid"+d).val(0);return true}},"");addFoodCheckRule('input[name^="foodsearch"]')}function addFoodCheckRule(a){$(a).each(function(){$(this).rules("add",{foodCheck:true,messages:{foodCheck:strFoodDoesNotExist}})})}function makeAutoCompleteFoodSearch(){$('input[name^="foodsearch"]').each(function(){makeAutoCompleteFoodSearchField($(this))})}var searchOwnFoodsOnly,searchAllFoods;function makeAutoCompleteFoodSearchField(a){$(a).autocomplete({minLength:0,delay:200,source:function(d,c){var e="";if($("#sfuf").attr("checked")){e="sfuf"}var b=400;if($(a).val()==null||$(a).val()==""){b=50}$.ajax({url:"eating?action=searchfood",cache:false,dataType:"text json",data:{keyword:$(a).val(),limit:b,own:searchOwnFoodsOnly,all:searchAllFoods,sfuf:e},success:function(f){searchOwnFoodsOnly=0;searchAllFoods=0;if(f.length<1){var g=$(a).closest(".grid_12").get(0);$(g).find("input.subfoodid").val(0);$(a).css("color","red")}else{$(a).css("color","#000000")}c($.map(f,function(h){return{label:h.label,value:h.value,id:h.id,e:h.e,prt:h.prt,un:h.un,p:h.p,h:h.h,f:h.f}}))}})},select:function(c,d){var e=$(this).closest(".grid_12").get(0);$(e).find("input.subfoodid").val(d.item.id);$(e).find("input.subfoodname").val(d.item.value);foodChanged(e,d.item.prt);$("#eatingForm").valid();var f=$(this).attr("id");var b=f.substring(10,f.length);setSubFoodData(b,d.item.id,d.item.e,d.item.h,d.item.p,d.item.f,d.item.prt);calculateTotalSum()}}).data("autocomplete")._renderItem=function(b,c){return $("<li></li>").data("item.autocomplete",c).append("<a><div class='foodListFoodName'>"+c.label+"</div><div class='foodListFoodData'> "+strOnePortion+"="+c.prt.toFixed(0)+" g, "+c.e.toFixed(0)+" kcal/100g "+c.un+"</div></a>").appendTo(b)};$(a).click(function(){if($(a).val()==""){searchOwnFoodsOnly=1;searchAllFoods=0;$(a).autocomplete("search",null)}else{$(a).autocomplete("search",$(a).val())}})}var subFoodData=null;var foodListData=null;function createSubFoodDataArray(b){subFoodData=new Array(b);for(var a=0;a<b;a++){subFoodData[a]=new Array(5)}}function setSubFoodData(d,g,b,e,f,h,c){var a=document.getElementById("subfoodid"+d);a.value=g;subFoodData[d][0]=b;subFoodData[d][1]=e;subFoodData[d][2]=f;subFoodData[d][3]=h;subFoodData[d][4]=c}var jsfoods=[];var jscarbons=[];var jsproteins=[];var jsfat=[];var num_of_subs=0;function calculateTotalSum(){try{var H=0;var b=0;var D=0;var h=0;var A=0;var y=0;for(y=0;y<num_of_subs;y++){var l=document.getElementById("subweight"+y);var f=document.getElementById("subportions"+y);var g=document.getElementById("realweight"+y);var C=f.value;var m=l.value;if(m==null||m==""){m=0}else{m=m.replace(/,/ig,".")}var n=C*m;var k=y;var q=subFoodData[k][0];var o=subFoodData[k][4];var j=(subFoodData[k][1]*n)/100;var F=(subFoodData[k][2]*n)/100;var G=(subFoodData[k][3]*n)/100;var E=document.getElementById("cal100g"+y);var p=document.getElementById("calories"+y);var r=document.getElementById("carbons"+y);var t=document.getElementById("proteins"+y);var a=document.getElementById("fat"+y);if(n>0){var u=(q*n)/100;H=H+u;g.innerHTML=(n*1).toFixed(1);E.innerHTML=q.toFixed(0);p.innerHTML=u.toFixed(0);r.innerHTML=j.toFixed(1);t.innerHTML=F.toFixed(1);a.innerHTML=G.toFixed(1);b=b+j;D=D+F;h=h+G;A=A+n*1}else{g.innerHTML="";r.innerHTML="";t.innerHTML="";a.innerHTML="";E.innerHTML="";p.innerHTML=""}}var s=document.getElementById("totalWeight");s.innerHTML=A.toFixed(0);$("#bigCalorieSum").html(H.toFixed(0)+" kcal");$("#bigProteinPercent").html(D.toFixed(0)+" g");$("#bigCarbPercent").html(b.toFixed(0)+" g");$("#bigFatPercent").html(h.toFixed(0)+" g");var d=document.getElementById("totalSum");d.innerHTML=H.toFixed(1);var c=document.getElementById("totalCarbons");c.innerHTML=b.toFixed(1);var v=document.getElementById("totalProteins");v.innerHTML=D.toFixed(1);var z=document.getElementById("totalFat");z.innerHTML=h.toFixed(1);$("#eatingFoodCircle").attr("src","foodcircle?action=showfromphr&width=140&height=140&calories="+H+"&proteins="+D+"&carbohydrates="+b+"&fat="+h)}catch(B){}}function foodChanged(d,c){var a=$(d).find("input.subweight");var b=$(a).val();if(!b&&c>0){$(a).val(c)}}function weightChanged(b,a){calculateTotalSum()}var addfoodxmlhttp;function createAddFoodDialog(c){var b="<div class='container_16' style='width:600px'>";b+='<div style="margin-bottom:10px">'+strAddFoodHelp+"</div>";b+="<form id='foodaddform'>";b+="<div class='grid_4 alpha'><b>"+strFoodName+'</b></div><div class=\'grid_6 omega\'><input style="width:300px;" id="nfname" name="nfname" class="inputlong"></div>';b+="<div class='grid_4 alpha'>"+strFoodDesc+'</div><div class=\'grid_6 omega\'><TEXTAREA style="width:300px;height:80px;" id="nfdesc" name="nfdesc" COLS=30 ROWS=3></TEXTAREA></div>';b+="<div class='grid_4 alpha'>"+strFoodPortion+'</div><div class=\'grid_6 omega\'><input id="nfport" name="nfport" class="inputfloat"></div>';b+="<div class='grid_4 alpha'><b>"+strKcal100g+'</b></div><div class=\'grid_6 omega\'><input id="nfkcal" name="nfkcal" class="inputfloat"></div>';b+="<div class='grid_4 alpha'>"+strProtLong+'</div><div class=\'grid_6 omega\'><input id="nfprot" name="nfprot" class="inputfloat"></div>';b+="<div class='grid_4 alpha'>"+strCarbosLong+'</div><div class=\'grid_6 omega\'><input id="nfcarb" name="nfcarb" class="inputfloat"></div>';b+="<div class='grid_4 alpha'>"+strFatLong+'</div><div class=\'grid_6 omega\'><input id="nffat" name="nffat" class="inputfloat"></div>';b+="</form>";b+="</div>";$("#dialog-addownfood").html(b);$("#foodaddform div").css("margin-bottom","10px");var a={};a[strSave]=function(){addFoodPressed("nfname","nfdesc","nfport","nfkcal","nfcarb","nfprot","nffat")};a[strCancel]=function(){$(this).dialog("close")};$("#dialog-addownfood").dialog({resizable:false,autoOpen:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},title:strAddOwnFood,minWidth:620,zIndex:20001,buttons:a});$.validator.addMethod("nameRegex",function(e,d){return this.optional(d)||/^[a-zåäö0-9\-\+ .,:;()\/&%€$@]+$/i.test(e)},strInvalidFoodName);jQuery.validator.addMethod("checkFloat",function(e,d){return validateFloat(d)},strInvalidFloat);$("#foodaddform").validate({onkeyup:false,rules:{nfname:{required:true,minlength:2,nameRegex:true},nfdesc:{nameRegex:true},nfport:{checkFloat:true},nfkcal:{required:true,checkFloat:true},nfprot:{checkFloat:true},nfcarb:{checkFloat:true},nffat:{checkFloat:true}}});$("#dialog-addownfood").dialog("open")}function addFoodPressed(o,g,c,b,d,m,e){if($("#foodaddform").validate().form()==false){return}var a=document.getElementById(o);var j=document.getElementById(g);var l=document.getElementById(c);var n=document.getElementById(b);var p=document.getElementById(d);var h=document.getElementById(m);var k=document.getElementById(e);var f="foodsearch?action=add&nfname="+encodeURIComponent(a.value)+"&nfdesc="+encodeURIComponent(j.value)+"&nfport="+encodeURIComponent(l.value)+"&nfkcal="+encodeURIComponent(n.value)+"&nfcarb="+encodeURIComponent(p.value)+"&nfprot="+encodeURIComponent(h.value)+"&nffat="+encodeURIComponent(k.value);addfoodxmlhttp=createAjaxRequest(f,afResponseHandler);return false}function afResponseHandler(){if(addfoodxmlhttp==null){return}if(addfoodxmlhttp.readyState==4){var a=addfoodxmlhttp.responseXML.getElementsByTagName("ownfood")[0];if(a==null){showErrorDialog(strFoodCouldNotBeAdded,"")}else{var b=a.getAttribute("id");if(b>0){showInfoDialog(strFoodWasAdded,"");$("#dialog-addownfood").dialog("close")}else{showErrorDialog(strFoodCouldNotBeAdded,"")}}}}function calculateBaseConsumption(){var d=document.getElementById("bcsex0");var c=document.getElementById("bcsex1");var e=document.getElementById("height");var j=document.getElementById("bcweight");var g=document.getElementById("bcactivity");var k=0;var h=e.value/100;var o=j.value;if(h==0||o==0){alert(strBCGiveYourLengthAndWeight);return}var m=g.value;var n=o/(h*h);var b=25*(h*h);if(d.checked){k=(b+0.4*(o-b))*0.95*24*m/10}else{if(c.checked){k=(b+0.4*(o-b))*1.05*24*m/10}}var f=document.getElementById("baseconsumption");f.value=k.toFixed(0)}Namespace.Manager.Register("trainit");trainit.AttachmentDialog=function(){};trainit.AttachmentDialog.show=function(){if(!trainit.AttachmentDialog.dialog){trainit.AttachmentDialog.init()}$(trainit.AttachmentDialog.dialog).dialog("open");trainit.AttachmentDialog.getAttachmentList()};trainit.AttachmentDialog.dialog=null;trainit.AttachmentDialog.init=function(){var b='<div class="container_16" style="width:600px">';b+='<div style="font-weight:bold;">'+strImportFile+'</div><div class="small_separator"></div><div id="fileupload"><form action="attachment?action=upload" method="POST" enctype="multipart/form-data"><span class="fileinput-button">'+strUploadAttachment+'<input type="file" name="files[]" multiple></span> <label>(*.hrm, *.sdf, *.tcx, *.gpx, *.kml, *.doc, *.txt, *.pdf, *.*)</label></form><div class="files"></div></div><script id="template-upload" type="text/x-jquery-tmpl"><div class="template-upload{{if error}} ui-state-error{{/if}}"><div class="grid_5 alpha">${name} --- ${sizef}</div>{{if error}}<div class="grid_5 omega">'+strError+":{{if error === 'maxFileSize'}}"+strFileErrorTooBig+"{{else error === 'minFileSize'}}"+strFileErrorTooSmall+"{{else error === 'acceptFileTypes'}}"+strFileErrorFiletype+"{{else error === 'maxNumberOfFiles'}}"+strFileErrorTooManyFiles+'{{else}}${error}{{/if}}</div>{{else}}<div class="grid_5 omega progress"><div></div></div>{{/if}}</div><\/script><script id="template-download" type="text/x-jquery-tmpl"><div class="template-download{{if error}} ui-state-error{{/if}}">{{if error}}<div></div><div class="grid_5 alpha">${name} --- ${sizef}</div><div class="grid_5 omega">'+strError+":{{if error === 'maxFileSize'}}"+strFileErrorTooBig+"{{else error === 'minFileSize'}}"+strFileErrorTooSmall+"{{else error === 'acceptFileTypes'}}"+strFileErrorFiletype+"{{else error === 'maxNumberOfFiles'}}"+strFileErrorTooManyFiles+'{{else}}${error}{{/if}}</div>{{else}}<div class="grid_5 alpha"><a href="${url}" target="_blank">${name}</a> --- ${sizef}</div><div class="grid_5 omega">'+strFileUploaded+'</div>{{/if}}</div><\/script><div class="large_separator"></div><div style="margin-top:20px;font-weight:bold;">'+strSelectFileFromDB+'</div><div class="small_separator"></div><div class=\'grid_2 alpha\'><input type="radio" id="radioHr" name="attachmentType" value="0" checked onclick=\'trainit.AttachmentDialog.getAttachmentList()\'><label for=\'radioHr\'>'+strHrFiles+'</label></div><div class=\'grid_2\'><input type="radio" id="radioTrack" name="attachmentType" value="1" onclick=\'trainit.AttachmentDialog.getAttachmentList()\'><label for=\'radioTrack\'>'+strTrackFiles+'</label></div><div class=\'grid_2\'><input type="radio" id="radioOther" name="attachmentType" value="2" onclick=\'trainit.AttachmentDialog.getAttachmentList()\'><label for=\'radioOther\'>'+strOtherFiles+'</label></div><div class="small_separator"></div><div id="hrgpslistdiv" style="display:block;width:100%"></div><div class="small_separator"></div><div><button onclick="trainit.AttachmentDialog.getHrGpsGraph( $(\'#hrgpsidlist\').val() );">'+strAttach+"</button></div>";b+='<div class="large_separator"></div><p style="margin-top:20px"><a style="margin-right:40px;" target="hrreader" href="hrreader.jsp">'+strHrReaderPage+'</a><a href="" onclick="trainit.AttachmentDialog.showGarminPluginDialog();return false;">Garmin plugin</a></p><div id="garminDisplay" style="text-align:center;display:none"><iframe id="modalIframeId" width="95%" height="450px"marginWidth="0" marginHeight="0" frameBorder="0" scrolling="auto"</iframe></div>';b+="</div>";$("#dialog-hrgps").html(b);$("#fileupload").fileupload({dataType:"json",autoUpload:true,maxNumberOfFiles:5,maxFileSize:10000000,multipart:true});$("#fileupload").bind("fileuploaddone",function(g,f){var d=f.result;for(var c=0;c<d.length;c++){trainit.AttachmentDialog.getHrGpsGraph(d[c].id)}trainit.AttachmentDialog.getAttachmentList()});$("#fileupload .files a:not([target^=_blank])").live("click",function(c){c.preventDefault();$('<iframe style="display:none;"></iframe>').prop("src",this.href).appendTo("body")});var a={};a[strClose]=function(){$(this).dialog("close")};trainit.AttachmentDialog.dialog=$("#dialog-hrgps").dialog({autoOpen:false,resizable:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},title:strAttachFile,minWidth:630,minHeight:420,zIndex:10001,buttons:a})};trainit.AttachmentDialog.getAttachmentList=function(){var a=$("input[name='attachmentType']:checked").val();var b="attachment?action=list&t="+encodeURIComponent(a)+"&startdate="+encodeURIComponent($("#startday").val());$.ajax({url:b,cache:true,dataType:"json",success:function(f){var c='<SELECT size=8 id="hrgpsidlist" name="hrgpsidlist" style="width:100%;" onDblClick="trainit.AttachmentDialog.getHrGpsGraph($(this).val());">';for(var e=0;e<f.attachments.length;e++){var d=f.attachments[e];if(e==0){c+='<OPTION SELECTED value="'+d.id+'">'+d.startdate+" "+d.starttime+"  ----  "+d.name+"</OPTION>"}else{c+='<OPTION value="'+d.id+'">'+d.startdate+" "+d.starttime+"  ----  "+d.name+"</OPTION>"}}c+="</select>";$("#hrgpslistdiv").html(c)}})};trainit.AttachmentDialog.getHrGpsGraph=function(b,d,a){if(b>0){var c="attachment?action=get&u="+encodeURIComponent(userId)+"&id="+encodeURIComponent(b);if(d){c+="&dni=1"}$.ajax({url:c,cache:true,dataType:"json",success:trainit.AttachmentDialog.hrDialogResponseHandler});if(a){setTimeout("trainit.AttachmentDialog.getHrGpsGraph("+b+",false,true)",30000)}}else{alert("Attachment not found!")}};trainit.AttachmentDialog.hrDialogResponseHandler=function(e){var h=e.attachment;if(h!=null){$("#hrgpsidlist option[value='"+h.id+"']").append(" -> "+strFileAttached);if(h.type==0||h.type==1){if(h.type==0){$("#hrdiv").show();$("#hrgpsdlg").css("cursor","default");$("#hrgpsidlist").css("cursor","default");$("#"+hrGraphDiv).show();var g=700;var b=400;$("#"+hrGraphDiv).html('<a href="" onclick="var nw=openNewWindow(\'HrGraphWindow.jsp?u='+userId+"&amp;hrdid="+h.id+"','HRG_"+userId+'\',\'height=600,width=1024,toolbar=no,scrollbars=yes,resizable=yes\');nw.focus();return false;"><p><img width="700" height="400" alt="X" onmousemove="showCurrentPoint(event, this)" src="hrgraph?u='+userId+"&amp;hrdid="+h.id+"&amp;width="+g+"&amp;height="+b+'" title="'+strClickToShowBiggerImage+'"></a></p><p><a href="" onclick="var nw=openNewWindow(\'HrGraphWindow.jsp?u='+userId+"&amp;vm=2&amp;hrdid="+h.id+"','HRG_"+userId+'\',\'height=600,width=1024,toolbar=no,scrollbars=yes,resizable=yes\');nw.focus();return false;"><img width="700" height="400" alt="X" onmousemove="showCurrentPoint(event, this)" src="hrgraph?u='+userId+"&amp;hrdid="+h.id+"&amp;vm=2&amp;width="+g+"&amp;height="+b+'" title="'+strClickToShowBiggerImage+'"></a></p>');$("#hrdid").val(h.id);if(h.dni==0){trainit.AttachmentDialog.importData(h)}}else{if(h.type==1){$("#gpsid").val(h.id);if(h.dni==0){trainit.AttachmentDialog.importGpsData(h)}}}if(h.route.length>0){showMapDiv();routePoints=[];lapPoints=[];routePointTimes=[];playing=false;var d,f;var c=0;var a=null;for(d=0;d<h.route.length;d++){f=h.route[d].latlon;if(f.lat!=0&&f.lon!=0){a=f;break}}for(d=0;d<h.route.length;d++){f=h.route[d].latlon;if(f.lat==0&&f.lon==0){if(a!=null){f.lat=a.lat;f.lon=a.lon}}else{a=f}if(f.lat!=0&&f.lon!=0){routePoints[c]=new RoutePoint(f.lat,f.lon,f.time,f.hr,f.dist);c++}}if(h.laps){if(h.laps.length>0){c=0;for(d=0;d<h.laps.length;d++){f=h.laps[d].lap;if(f.lat!=0&&f.lon!=0){lapPoints[c]=new RoutePoint(f.lat,f.lon,f.time,f.hr,f.dist);c++}}}}pminhr=h.min;pmaxhr=h.max;anaK=h.anak;aerK=h.aerk;if(pminhr==0){pminhr=50}if(pmaxhr==0){pmaxhr=200}if(anaK==0){anaK=165}if(aerK==0){aerK=145}showWorkoutRoute(true)}}else{if(h.type==2){$("#documentdiv").fadeIn();$("#attachmentid").val(h.id);trainit.AttachmentDialog.addAttachment(h.mime,h.id,h.name,h.filewithpath)}}}};trainit.AttachmentDialog.importData=function(f){if(f!=null){if($("#subquality0").val()==0){$("#subquality0").val(8)}$("#startday").val(f.startdate);$("#starttime").val(f.starttime);if(f.calories>0){$("#calories").val(f.calories);stopCaloryCalculation()}$("#maxhr").val(f.maxhr);$("#averagehr").val(f.avghr);$("#epoc").val(f.epoc);$("#te").val(f.te);if(f.duration>0){var d=f.duration/1000;var a=Math.floor(d/3600);var c=Math.floor((d%3600)/60);var e=((d%3600)%60);var g="";var b="";if(c<10){g="0"}if(e<10){b="0"}$("#subduration_h0").val(a.toFixed(0));$("#subduration_m0").val(g+c.toFixed(0));$("#subduration_s0").val(b+e.toFixed(0))}$("#sublength0").val((f.length/1000).toFixed(2));calculateSubSpeed(0);$("#extraDataDiv").show()}};trainit.AttachmentDialog.importGpsData=function(f){if(f!=null){if($("#subquality0").val()==0){$("#subquality0").val(8)}if(f.duration>0){var d=f.duration/1000;var a=Math.floor(d/3600);var c=Math.floor((d%3600)/60);var e=((d%3600)%60);var g="";var b="";if(c<10){g="0"}if(e<10){b="0"}$("#subduration_h0").val(a.toFixed(0));$("#subduration_m0").val(g+c.toFixed(0));$("#subduration_s0").val(b+e.toFixed(0))}$("#sublength0").val((f.length/1000).toFixed(2));calculateSubSpeed(0);$("#maxhr").val(f.maxhr);$("#averagehr").val(f.avghr);$("#epoc").val(f.epoc);$("#te").val(f.te)}};trainit.AttachmentDialog.getAttachments=function(b){var a="ajaxhrdata?action=getattachments&wid="+b;$.ajax({url:a,cache:false,context:document.body,success:function(h){if(h.getattachments){if(h.getattachments.list){if(h.getattachments.list.length>0){$("#documentdiv").fadeIn()}for(var e=0;e<h.getattachments.list.length;e++){var j=h.getattachments.list[e];var k=j.id;var d=j.name;var g=j.filewithpath;var f=j.mime;var c=j.startdate;trainit.AttachmentDialog.addAttachment(f,k,d,g)}}}}})};trainit.AttachmentDialog.addAttachment=function(b,d,c,g){var f="";f+='<div id="'+d+'" style="text-align:center;vertical-align:top;display:inline-block;width:120px;">';var a;if(b=="image/jpeg"||b=="image/gif"||b=="image/png"){f+='<a href="'+g+'" rel="imgs">';f+='<img width=48 height=48 src="'+g+'" title="'+c+'"></a>'}else{if(b.indexOf("x-shockwave-flash")>-1||b.indexOf("video")>-1){a="http://www.trainit.fi/res/img/48/otherdocument.png";f+='<a class="media" href="" onclick="showAttachmentDialog(\''+g+"');return false;\">";f+='<img width=48 height=48 src="'+a+'" title="'+c+'"></a>'}else{a="http://www.trainit.fi/res/img/48/otherdocument.png";f+='<a href="" onclick="showAttachmentDialog(\''+g+"');return false;\">";f+='<img width=48 height=48 src="'+a+'" title="'+c+'"></a>'}}var j=c;var h=j.length;var e=25;if(h>e){j=j.substring(0,e-6)+"..."+j.substring(h-3,h)}f+='<p style="text-align:center;vertical-align:middle">'+j;f+='<br><a href="" onclick="$(\'#'+d+"').remove();trainit.AttachmentDialog.setAttachments();return false;\">"+strRemove+"</a>";f+="</p>";f+="</div>";$("#filecanvas").append(f);$("a[rel='imgs']").colorbox({photo:true,minWidth:"200px",maxWidth:"800px",maxHeight:"800px"});trainit.AttachmentDialog.setAttachments()};trainit.AttachmentDialog.setAttachments=function(){$("#attachmentids").empty();var a=0;var b="";$("#filecanvas div").each(function(){if(a>0){b+=";"}b+=$(this).attr("id");a++});$("#attachmentids").html('<input type="hidden" id="attachments" name="attachments" value="'+b+'">');if(a==0){$("#documentdiv").fadeOut()}};trainit.AttachmentDialog.showGarminPluginDialog=function(){var a={};a[strClose]=function(){$(this).dialog("close");trainit.AttachmentDialog.getAttachmentList()};$("#garminDisplay").dialog({modal:true,minHeight:520,minWidth:450,title:"Garmin Communicator Plugin",buttons:a});$("#modalIframeId").attr("src","/res/plugin.html")};trainit.AttachmentDialog.detachHrGpsFile=function(a){if(a==0){$("#hrdid").val(0);$("#hrdiv").fadeOut()}else{if(a==1){clearMap();$("#gpsid").val(0);$("#mapdiv").fadeOut()}}};trainit.FileUploader=function(){};trainit.FileUploader.upload=function(){$("#loading").show();return false};function checkForSpecialSports(b){var a=false;$('input[name^="subsport"]').each(function(c){if($(this).val()==8){a=true}});if(a){if(!gymProgramInitialized){showGymProgram("gymprogram",b)}$("#gymprogram").show()}else{hideGymProgram()}}function hideGymProgram(){$("#gymprogram").hide()}var gymProgramDiv;var currentWorkoutId;var gymProgramTable;var gymProgramInitialized;var currentGymProgramTableName;function showGymProgram(a,d){currentGymProgramTableName="gymProgramTable";gymProgramInitialized=true;gymProgramDiv=a;currentWorkoutId=d;var b="";b+='<button type=\'button\' onclick=\'addExerciseRow(0, 0, "", "", "", "", "");return false;\'>'+strAddGymExercise+"</button>";b+="<button type='button' onclick='resetGymProgram();return false;'>"+strResetGymProgram+"</button>";b+="<button type='button' onclick='openLoadGymProgramDialog();return false;'>"+strGymPrograms+"</button>";b+="<button type='button' onclick='openSaveAsGymProgramDialog();return false;'>"+strSaveAsGymProgram+"</button>";var c='<input type="hidden" id="wid" name="wid" value="'+d+'"><table class="gymProgramTable" cellpadding="0" cellspacing="0" border="0" id="gymProgramTable"><thead><tr class="gymHeaderRow1"><th colspan=6 style="text-align:left">'+b+'</th></tr><tr class="gymHeaderRow1"><th colspan=2 style="text-align:left"></th><th colspan=2>'+strPlanned+"</th><th colspan=2>"+strActual+'</th></tr><tr class="gymHeaderRow2"><th colspan=2>'+strGymExercise+'</th><th class="repeatWeightHeader">'+strGymRepeats+'</th><th class="repeatWeightHeader">'+strGymWeight+'</th><th class="repeatWeightHeader">'+strGymRepeats+'</th><th class="repeatWeightHeader">'+strGymWeight+"</th></tr></thead><tbody></tbody></table>";$("#"+a).html(c);$("#"+a).append("<div style='margin:10px'></div>");$("#"+a).append("<div id='dialog-opengymprogram'></div><div id='dialog-saveasgymprogram'></div>");$("button").button();if(d>0){loadGymProgram(d,0)}else{resetGymProgram()}}function resetGymProgram(){deleteAllExercises();for(var a=0;a<6;a++){addExerciseRow(0,0,"","","","","")}updateExerciseRows()}var olgpDialog;function openLoadGymProgramDialog(){if(!olgpDialog){initLoadGymProgramDialog()}$(olgpDialog).dialog("open");$("#modifyGymProgram").hide();showGymProgramList()}function showGymProgramList(){currentGymProgramTableName="gymProgramTemplateTable";resetGymProgram();$.ajax({url:"gym",cache:false,dataType:"text json",data:{action:"getgymprograms"},success:function(c){var b="";if(c.getgymprograms){if(c.getgymprograms.programs){for(var a=0;a<c.getgymprograms.programs.length;a++){b+="<option value='"+c.getgymprograms.programs[a].id+"'>"+c.getgymprograms.programs[a].name+"</option>"}}}$("#dialog-opengymprogram #ogpSelect").html(b)}})}function selectGymProgram(a){$("#btnModify").show();$("#btnRemove").show();$("#btnAttach").show();loadGymProgram(0,a)}var gymProgramTemplateModificationInitialized=false;function initLoadGymProgramDialog(){var a='<span class="ui-icon ui-icon-document" style="float:left; margin:0 7px 0px 0;"></span>TrainIt';var c={};c[strClose]=function(){$(this).dialog("close")};olgpDialog=$("#dialog-opengymprogram").dialog({autoOpen:false,close:function(e,f){currentGymProgramTableName="gymProgramTable"},resizable:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},title:a,minHeight:200,minWidth:500,position:"top",zIndex:10000,buttons:c});var d="<div class='gymProgramSelection'><div><label>"+strSelectGymProgram+"</label></div><div class='gymProgramList'><select id='ogpSelect' size=8 style='width:260px' onchange='selectGymProgram($(\"#ogpSelect\").val());' ondblclick='currentGymProgramTableName=\"gymProgramTable\";loadGymProgram( 0, $(\"#ogpSelect\").val());$(olgpDialog).dialog(\"close\");'></select></div><div class='toolbar'><button style='width:100%' type='button' onclick='addGymProgram();return false;'>"+strNewGymProgram+"</button><button id='btnModify' style='display:none;width:100%' type='button' onclick='modifyGymProgram( $(\"#ogpSelect\").val());return false;'>"+strModifyGymProgram+"</button><button id='btnRemove' style='display:none;width:100%' type='button' onclick='removeGymProgram( $(\"#ogpSelect\").val());return false;'>"+strRemove+"</button><button id='btnAttach' style='display:none;width:100%' type='button' onclick='currentGymProgramTableName=\"gymProgramTable\";loadGymProgram( 0, $(\"#ogpSelect\").val() );$(olgpDialog).dialog(\"close\");'>"+strAttachToWorkout+"</button></div></div>";d+="<div class='gymProgramModification' style='display:none;' id='modifyGymProgram'></div>";$("#dialog-opengymprogram").html(d);var b='<table class="gymProgramTable" cellpadding="0" cellspacing="0" border="0" id="gymProgramTemplateTable"><thead><tr class="gymHeaderRow2"><th colspan=2>'+strGymExercise+'</th><th class="repeatWeightHeader">'+strGymRepeats+'</th><th class="repeatWeightHeader">'+strGymWeight+"</th></tr></thead><tbody></tbody></table>";$("#modifyGymProgram").append("<div><b>Muokkaa kuntosaliohjelmaa</b><label style='margin-left:20px;margin-right:10px'>"+strName+"</label><input type='text' class='inputname'></div>");$("#modifyGymProgram").append(b);$("#modifyGymProgram").append("<button type='button' onclick='openSaveAsGymProgramDialog();return false;'>"+strSave+"</button><button type='button' onclick='openSaveAsGymProgramDialog();return false;'>"+strSaveAs+"</button> <a href='' onclick='resetGymProgram();return false;'>"+strResetGymProgram+'</a> <a href=\'\' onclick=\'addExerciseRow(0, 0, "", "", "", "", "");return false;\'>'+strAddGymExercise+"</a>");$("#dialog-opengymprogram button").button();gymProgramTemplateModificationInitialized=true;return false}var osgpDialog;function openSaveAsGymProgramDialog(){if(!osgpDialog){initSaveAsGymProgramDialog()}$(osgpDialog).dialog("open")}function initSaveAsGymProgramDialog(){var a='<span class="ui-icon ui-icon-document" style="float:left; margin:0 7px 0px 0;"></span>TrainIt';var b={};b[strSave]=function(){saveGymProgram(true,$("#sagpName").val());$(this).dialog("close")};b[strCancel]=function(){$(this).dialog("close")};osgpDialog=$("#dialog-saveasgymprogram").dialog({autoOpen:false,resizable:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},title:a,minWidth:450,zIndex:10000,buttons:b});$("#dialog-saveasgymprogram").html("<div><label>"+strNameOfGymProgram+'</label><input class="inputlong" type="text" id="sagpName"></div>');return false}function makeAutoCompleteGymSearch(a){$(a).autocomplete({minLength:1,source:function(c,b){$.ajax({url:"gym?action=search",cache:false,dataType:"text json",data:{keyword:$(a).val(),limit:25},success:function(d){if(d.length<1){var e=$(a).closest("tr").get(0);$(e).find("input.etypeid").val(0);$(a).css("color","blue")}else{$(a).css("color","#000000")}b($.map(d,function(f){return{label:f.label,value:f.value,id:f.id}}))}})},select:function(b,c){var d=$(this).closest("tr").get(0);$(d).find("input.etypeid").val(c.item.id)}})}function printGymProgram(){alert("Printing is not yet implemented! Until this functionality is finieshed you can print using browser's printing functions...")}function loadGymProgram(a,b){deleteAllExercises();$.ajax({url:"gym?action=load",cache:false,dataType:"text json",data:{gpid:b,wid:a},success:function(h){var q=h.loadgymexercise.id;var m=h.loadgymexercise.uid;var l=h.loadgymexercise.wid;var g=h.loadgymexercise.name;if(h.loadgymexercise.exercises){for(var j=0;j<h.loadgymexercise.exercises.length;j++){var k=h.loadgymexercise.exercises[j];var e=k.id;var p=k.etid;var o=k.etname;var d=k.pr;var n=k.pw;var f=k.ar;var c=k.aw;addExerciseRow(e,p,o,d,n,f,c)}}updateExerciseRows()}})}function addGymProgram(){$("#modifyGymProgram").fadeIn(500);resetGymProgram()}function modifyGymProgram(a){$("#modifyGymProgram").fadeIn(500);loadGymProgram(0,gpid)}function removeGymProgram(a){showConfirmDialogAndExecFunc(strConfirmRemoveGymProgram,"",function(){$.ajax({url:"gym?action=remove",cache:false,dataType:"text json",data:{gpid:a},success:function(b){showGymProgramList()}})})}function updateExerciseRows(){try{$("#"+currentGymProgramTableName+" .gymExerciseRow").each(function(b){$(this).find("input.exerciseid").attr("name","exerciseid"+b);$(this).find("input.etypeid").attr("name","etypeid"+b);$(this).find(".gymExerciseName input").attr("name","ename"+b);$(this).find(".gymPlannedRepeats input").attr("name","pr"+b);$(this).find(".gymPlannedWeight input").attr("name","pw"+b);$(this).find(".gymActualRepeats input").attr("name","ar"+b);$(this).find(".gymActualWeight input").attr("name","aw"+b)})}catch(a){}}function saveGymProgram(a,c){var b="action=save";if(a){b+="&gymprogramtype=1"}else{b+="&gymprogramtype=0"}if(c){b+="&gymprogramname="+c}var d=0;$("#"+currentGymProgramTableName+" tr").each(function(e){var f=false;$(this).find("input.exerciseid").each(function(g){f=true;b+="&exerciseid"+d+"="+$(this).val()});$(this).find("input.etypeid").each(function(g){f=true;b+="&etypeid"+d+"="+$(this).val()});$(this).find(".gymExerciseName input").each(function(g){b+="&ename"+d+"="+$(this).val()});$(this).find(".gymPlannedRepeats input").each(function(g){b+="&pr"+d+"="+$(this).val()});$(this).find(".gymPlannedWeight input").each(function(g){b+="&pw"+d+"="+$(this).val()});$(this).find(".gymActualRepeats input").each(function(g){b+="&ar"+d+"="+$(this).val()});$(this).find(".gymActualWeight input").each(function(g){b+="&aw"+d+"="+$(this).val()});if(f){d++}});$.ajax({type:"post",url:"gym?action=save",cache:false,dataType:"text json",data:b,success:function(e){if(currentGymProgramTableName=="gymProgramTemplateTable"){showGymProgramList()}}})}function deleteAllExercises(){$("#"+currentGymProgramTableName+" .gymExerciseRow").remove()}function deleteExercise(a){var b=$(a).closest("tr").get(0);$(b).remove();updateExerciseRows()}var uniqueId=0;function insertExercise(e,j){var d="n"+uniqueId;uniqueId++;var h=0;var k=0;var c="";var b="";var l="";var g="";var a="";if(j){var m=$(e).parent().parent();k=$(m).find(".etypeid").val();c=$(m).find(".gymExerciseName input").val();b=$(m).find(".gymPlannedRepeats input").val();l=$(m).find(".gymPlannedWeight input").val();g=$(m).find(".gymActualRepeats input").val();a=$(m).find(".gymActualWeight input").val()}var f="<tr class='gymExerciseRow'><input class='exerciseid' type='hidden' name='exerciseid' value='"+h+"'><input class='etypeid' type='hidden' name='etypeid' value='"+k+"'><td class='gymExerciseTb'><img src='http://www.trainit.fi/res/img/16/add.png' onclick='insertExercise($(this));' title='"+strAddNewRow+"'><img src='http://www.trainit.fi/res/img/16/copytoimpl.png' onclick='insertExercise(this,true)' title='"+strCopyAndAddNewRow+"'><img src='http://www.trainit.fi/res/img/16/trash.png' onclick='deleteExercise(this)' title='"+strDeleteRow+"'></td><td class='gymExerciseName'><input id='"+d+"' name='' value='"+c+"' onclick='this.select();'></td><td class='gymPlannedRepeats'><input class='inputshort' name='' value='"+b+"'></td><td class='gymPlannedWeight'><input class='inputshort' name='' value='"+l+"'></td>";if(currentGymProgramTableName=="gymProgramTable"){f+="<td class='gymActualRepeats'><input class='inputint' onchange='checkInt(this, 1000);' name='' value='"+g+"'></td><td class='gymActualWeight'><input class='inputfloat' onchange='checkFloat(this, 1000);' name='' value='"+a+"'></td>"}f+="</tr>";var m=$(e).closest("tr").get(0);$(m).after(f);makeAutoCompleteGymSearch("#"+d);updateExerciseRows()}function addExerciseRow(g,h,c,a,j,f,b){var d="n"+uniqueId;uniqueId++;var e="<tr class='gymExerciseRow'><input class='exerciseid' type='hidden' name='exerciseid' value='"+g+"'><input class='etypeid' type='hidden' name='etypeid' value='"+h+"'><td class='gymExerciseTb'><img src='http://www.trainit.fi/res/img/16/add.png' onclick='insertExercise($(this));' title='"+strAddNewRow+"'><img src='http://www.trainit.fi/res/img/16/copytoimpl.png' onclick='insertExercise(this,true)' title='"+strCopyAndAddNewRow+"'><img src='http://www.trainit.fi/res/img/16/trash.png' onclick='deleteExercise(this)' title='"+strDeleteRow+"'></td><td class='gymExerciseName'><input id='"+d+"' name='' value='"+c+"' onclick='this.select();'></td><td class='gymPlannedRepeats'><input class='inputshort' name='' value='"+a+"'></td><td class='gymPlannedWeight'><input class='inputshort' name='' value='"+j+"'></td>";if(currentGymProgramTableName=="gymProgramTable"){e+="<td class='gymActualRepeats'><input class='inputint' onchange='checkInt(this, 1000);' name='' value='"+f+"'></td><td class='gymActualWeight'><input class='inputfloat' onchange='checkFloat(this, 1000);' name='' value='"+b+"'></td>"}e+="</tr>";$("#"+currentGymProgramTableName).append(e);makeAutoCompleteGymSearch("#"+d);updateExerciseRows()}trainit.LinearRegression=function(){};trainit.LinearRegression.meanX=0;trainit.LinearRegression.meanY=0;trainit.LinearRegression.slope=0;trainit.LinearRegression.intercept=0;trainit.LinearRegression.stndDevX=0;trainit.LinearRegression.stndDevY=0;trainit.LinearRegression.compute=function(h,g){var b=h.length;var c=0;var e=0;var d=0;var j=0;var a=0;for(var f=0;f<b;f++){e+=h[f];d+=h[f]*h[f];c+=g[f];j+=g[f]*g[f];a+=h[f]*g[f]}trainit.LinearRegression.meanX=e/b;trainit.LinearRegression.meanY=c/b;trainit.LinearRegression.slope=(b*a-(e*c))/(b*d-(e*e));trainit.LinearRegression.intercept=(c-trainit.LinearRegression.slope*e)/b;trainit.LinearRegression.stndDevX=Math.sqrt((d-e*trainit.LinearRegression.meanX)/(b-1));trainit.LinearRegression.stndDevY=Math.sqrt((j-c*trainit.LinearRegression.meanY)/(b-1))};trainit.LinearRegression.getSlope=function(){return trainit.LinearRegression.slope};trainit.LinearRegression.getIntercept=function(){return trainit.LinearRegression.intercept};trainit.LinearRegression.getRSquared=function(){var a=trainit.LinearRegression.slope*trainit.LinearRegression.stndDevX/trainit.LinearRegression.stndDevY;return a*a};trainit.LinearRegression.calculateY=function(a){return(trainit.LinearRegression.slope*a+trainit.LinearRegression.intercept)};trainit.LinearRegression.calculateX=function(a){return(a-trainit.LinearRegression.intercept)/trainit.LinearRegression.slope};var map;var geocoder;var mapCenter;var currentZoom;var bounds;var defaultLocation;var defaultZoom;var mapLCListener,mapRCListener;var routePoints=[];var routePolyLine;var lapPoints=[];var hasRoute;var markers=[];var lapMarkers=[];var startmarker,endmarker,currentMarker;var kmlFillColor="7dff0000";var kmlLineWeight=2;var routePlayPoints=[],routePlaySpeed;var routePlayPolyLine;var routePlayTimer,lastDist,lastTime,lastLapTime,lastLapIcon,playIndex,playStep,cpMarker;var clickMode;var measurementUnitSystem=0;function setMeasurementUnit(a){measurementUnitSystem=a}function initHrGps(e,a,g,d,k,j,f,b,h,c){clickMode=e;if(map){$(map).empty()}map=null;hrDivName=a;hrIdName=g;hrGraphDiv=d;mapContainer=k;mapDivName=j;mapIdName=f;mapCanvasName=b;currentWorkoutId=h;userId=c;defaultLocation=new google.maps.LatLng(65.013606,25.473862);defaultZoom=2}var osm;var mapOptions;var scrollWheelEnabled;function setMapOptions(a){scrollWheelEnabled=a;mapOptions={mapTypeControlOptions:{mapTypeIds:[google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.SATELLITE,google.maps.MapTypeId.HYBRID,google.maps.MapTypeId.TERRAIN,"osm"],style:google.maps.MapTypeControlStyle.DROPDOWN_MENU},scrollwheel:a,draggableCursor:"default",draggingCursor:"move",mapTypeId:google.maps.MapTypeId.ROADMAP};map.setOptions(mapOptions)}function initializeMap(){if(map){return}if(!osm){osm=new google.maps.ImageMapType({getTileUrl:function(c,d){var e=c.y;var a=c.x;var b=1<<d;if(e<0||e>=b){return null}if(a<0||a>=b){a=(a%b+b)%b}return"http://tile.openstreetmap.org/"+d+"/"+a+"/"+e+".png"},tileSize:new google.maps.Size(256,256),isPng:true,maxZoom:18,name:"OSM",alt:"Open Street Map"})}if(!mapCenter){mapCenter=defaultLocation}if(!currentZoom){currentZoom=defaultZoom}map=new google.maps.Map(document.getElementById(mapCanvasName));setMapOptions(false);map.mapTypes.set("osm",osm);if(clickMode==0){mapLCListener=google.maps.event.addListener(map,"click",addRoutePoint);mapRCListener=google.maps.event.addListener(map,"rightclick",deleteLastPoint)}else{if(clickMode==1){mapLCListener=google.maps.event.addListener(map,"click",setMapPosition)}}google.maps.event.addListener(map,"zoom_changed",mapZoomChanged);google.maps.event.addListener(map,"center_changed",mapCenterChanged);routePolyLine=createRoutePolyLine();bounds=new google.maps.LatLngBounds();if(hasRoute){drawWorkoutRoute()}}function deleteMap(){clearMap();map=null}function showNamedLocation(a,c,b){showMapDiv();if(!geocoder){geocoder=new google.maps.Geocoder()}geocoder.geocode({address:a},function(e,d){if(d==google.maps.GeocoderStatus.OK){defaultLocation=e[0].geometry.location;if(c){defaultZoom=c}if(map&&b){mapCenter=defaultLocation;currentZoom=defaultZoom;map.setZoom(currentZoom);map.setCenter(mapCenter);addMarkerToCenter()}else{mapCenter=defaultLocation;currentZoom=defaultZoom;map.setZoom(currentZoom);map.setCenter(mapCenter)}}else{}})}function saveDefaultLocationAndZoom(a,c,b){if(!geocoder){geocoder=new google.maps.Geocoder()}geocoder.geocode({address:a},function(e,d){if(d==google.maps.GeocoderStatus.OK){defaultLocation=e[0].geometry.location;if(c){defaultZoom=c}}})}var singleMarker=null;function addMarkerToCenter(){clearAllOverlays();singleMarker=addMarker(mapCenter,0);$("#latitude").val(mapCenter.lat());$("#longitude").val(mapCenter.lng())}function setMapPosition(a){if(a==null){return}if(a.latLng==null){return}showGpsPoint(a.latLng.lat(),a.latLng.lng())}function showGpsPoint(b,c,a){mapCenter=new google.maps.LatLng(b,c);if(map){if(a){currentZoom=a;map.setZoom(currentZoom)}map.setCenter(mapCenter);if(singleMarker){singleMarker.setMap(null);singleMarker=null}addMarkerToCenter()}}function editRoute(){showMapDiv();map.setZoom(defaultZoom);map.setCenter(defaultLocation);setMapOptions(true);$("#swz").attr("checked","checked");if($("#location").val()){showNamedLocation($("#location").val(),14,false)}$("#placeholderHr").hide();clearMap()}function showMapDiv(){$("#mapdiv").show();initializeMap()}function addMarker(a,c){var b=new google.maps.Marker({position:a,title:""});b.setMap(map);return b}function addStartMarker(a){if(startmarker){startmarker.setMap(null)}startmarker=new google.maps.Marker({position:a,map:map});return startmarker}function addEndMarker(a){if(endmarker){endmarker.setMap(null)}endmarker=new google.maps.Marker({position:a,map:map});return endmarker}function addStartStopMarker(f,b){if(f.getLat()!=0&&f.getLon()!=0){var e=f.getDistance()/1000;e=e.toFixed(1);var c=e+"km: "+f.getTimeAsHhMmSs();var a=new google.maps.Marker({position:f.getLatLon(),title:c});a.setMap(map);return a}else{return null}}function addCurrentPointMarker(b,c){if(b.getLat()!=0&&b.getLon()!=0){var g=b.getDistance()/1000;g=g.toFixed(1);var f=g+"km: "+b.getTimeAsHhMmSs();var e=new google.maps.MarkerImage("/res/img/24/runner.png",new google.maps.Size(24,24),new google.maps.Point(0,0),new google.maps.Point(12,12));var a=new google.maps.Marker({position:b.getLatLon(),title:f,icon:e});a.setMap(map);a.setZIndex(1000);return a}else{return null}}function addLapMarker(g,b,h){if(g.getLat()!=0&&g.getLon()!=0){var f=g.getDistance()/1000;f=f.toFixed(1);var e=f+"km: "+g.getTimeAsHhMmSs();var c=new google.maps.MarkerImage("/res/img/24/timer.png",new google.maps.Size(24,24),new google.maps.Point(0,0),new google.maps.Point(12,12));var a=new google.maps.Marker({position:g.getLatLon(),title:e,icon:c});a.setMap(map);a.setZIndex(h);lapMarkers.push(a);return a}else{return null}}function createRoutePolyLine(a){if(!a){a="#0000FF"}var b=new google.maps.Polyline({strokeColor:a,strokeOpacity:1,strokeWeight:2});b.setMap(map);return b}function addPointToPolyLine(a,b){var c=a.getPath();c.push(b)}function RoutePoint(c,d,b,a,e){this.lat=c;this.lon=d;this.time=b;this.hr=a;this.distance=e;this.speed=0;this.getLat=function(){return c};this.getLon=function(){return d};this.getLatLon=function(){return new google.maps.LatLng(c,d)};this.getTime=function(){return b};this.getTimeAsHhMmSs=function(){var g=this.time/1000;var j=Math.floor(g/3600)+":";var f=Math.floor((g%3600)/60);if(f<10){f="0"+f}j+=f+":";var h=Math.floor((g%3600)%60);if(h<10){h="0"+h}j+=h;return j};this.getDistance=function(){return e};this.setDistance=function(f){e=f};this.getHr=function(){return a};this.getSpeed=function(){return this.speed};this.setSpeed=function(f){this.speed=f};this.flotHrIndex=-1;this.flotSpdIndex=-1;this.setFlotHrIndex=function(f){this.flotHrIndex=f};this.getFlotHrIndex=function(){return this.flotHrIndex};this.setFlotSpeedIndex=function(f){this.flotSpdIndex=f};this.getFlotSpeedIndex=function(){return this.flotSpdIndex}}function getTimeAsHhMmSs(b){b/=1000;var d=Math.floor(b/3600)+":";var a=Math.floor((b%3600)/60);if(a<10){a="0"+a}d+=a+":";var c=Math.floor((b%3600)%60);if(c<10){c="0"+c}d+=c;return d}function mapCenterChanged(){}function mapZoomChanged(){}function addRoutePoint(b){if(b==null){return}if(b.latLng==null){return}if(routePoints.length>=5000){alert(strTooManyLatLonPoints1+routePoints.length+strTooManyLatLonPoints2);return}if(routePoints.length==0){addStartMarker(b.latLng)}if(routePoints.length>0){addEndMarker(b.latLng)}var c=0;var a=new RoutePoint(b.latLng.lat(),b.latLng.lng(),c,0,0);routePoints.push(a);addPointToPolyLine(routePolyLine,b.latLng);a.setDistance(calcGpsDistance(routePoints,true));if(centerToCurrentPoint){mapCenter=b.latLng;map.setCenter(b.latLng)}hasRoute=true;routeChanged=true;playIndex=routePoints.length-1;updateAnimationValues(routePoints)}function clearAllOverlays(){var a=null;while((a=markers.pop())!=null){a.setMap(null);a=null}while((a=lapMarkers.pop())!=null){a.setMap(null);a=null}if(cpMarker!=null){cpMarker.setMap(null);cpMarker=null}if(startmarker!=null){startmarker.setMap(null);startmarker=null}if(endmarker!=null){endmarker.setMap(null);endmarker=null}if(routePolyLine){routePolyLine.setMap(null);routePolyLine=null;routePolyLine=createRoutePolyLine()}if(routePlayPolyLine){routePlayPolyLine.setMap(null);routePlayPolyLine=null}}function clearMap(){clearAnimationValues();clearAllOverlays();routePoints=[];lapPoints=[];hasRoute=false;playIndex=0}function deleteLastPoint(){routePoints.pop();var b=routePolyLine.getPath();b.pop();var a=markers.pop();if(a){a.setMap(null);a=null}if(routePoints.length>1){addEndMarker(routePoints[routePoints.length-1].getLatLon());map.setCenter(routePoints[routePoints.length-1].getLatLon())}else{if(routePoints.length>0){if(endmarker){endmarker.setMap(null)}}else{if(startmarker){startmarker.setMap(null)}hasRoute=false}}calcGpsDistance(routePoints,true);playIndex--;if(playIndex<0){playIndex=0}updateAnimationValues(routePoints);routeChanged=true}function showWorkoutRoute(a){hasRoute=true;if(map){drawWorkoutRoute(a)}clearAnimationValues()}function drawWorkoutRoute(b){hasRoute=true;clearAllOverlays();if(routePoints!=null){var a;if(routePoints.length>0){startmarker=addStartStopMarker(routePoints[0])}if(routePoints.length>1){endmarker=addStartStopMarker(routePoints[routePoints.length-1])}bounds=new google.maps.LatLngBounds();if(routePolyLine){routePolyLine.setMap(null)}routePolyLine=createRoutePolyLine();var c=[];for(a=0;a<routePoints.length;a++){c[a]=routePoints[a].getLatLon();bounds.extend(c[a])}routePolyLine.setPath(c);if(lapPoints!=null){for(a=0;a<lapPoints.length;a++){addLapMarker(lapPoints[a],0,a)}}map.fitBounds(bounds);if(!b){calcGpsDistance(routePoints,true)}drawHrSpeedGraph(routePoints)}return false}function calculateSpeed(b,a){var d=(a.getDistance()-b.getDistance())*3600;var c=(a.getTime()-b.getTime());if(d>0&&c>0){return(d/c)}return 0}function calcGpsDistance(s,e){var q=0;if(s==null){return 0}if(s.length<2){if(e){var f=document.getElementById("sublength0");if(f){f.value=0}}$("#routelength").html(q.toFixed(2)+" km");$("#routetime").html("00:00:00");$("#routepoints").html(s.length+" "+strRoutePoints);return 0}var k=6371;var j,g,m,l;for(var h=1;h<s.length;h++){j=s[h-1].getLat();m=s[h-1].getLon();g=s[h].getLat();l=s[h].getLon();var o=toRad(g-j);var b=toRad(l-m);var r=Math.sin(o/2)*Math.sin(o/2)+Math.cos(toRad(j))*Math.cos(toRad(g))*Math.sin(b/2)*Math.sin(b/2);var p=2*Math.atan2(Math.sqrt(r),Math.sqrt(1-r));var n=k*p;q+=n}if(measurementUnitSystem>0){q/=1.609344}if(e){document.getElementById("sublength0").value=q.toFixed(2);calculateSubSpeed(0)}return 1000*q}function clearAnimationValues(){$("#routelength").empty();$("#routetime").empty();$("#routepacespeed").empty();$("#routepoints").empty();$("#routehr").empty();$("#routetime1km").empty();$("#routehr1km").empty();$("#routepacespeed1km").empty();$("#routehravg").empty();$("#routepacespeedavg").empty();$("#routehrmax").empty();$("#routepacespeedmax").empty()}var hrAnimationdata=[];var speedAnimationdata=[];var hrSpeeddata=[];var hrPlot;var pminhr,pmaxhr,anaK,aerK;var hrAnimationOptions;function initHrAnimation(){var a=[{color:"#d0ffd0",yaxis:{from:100,to:aerK}},{color:"#ffffd0",yaxis:{from:aerK,to:anaK}},{color:"#ffd0d0",yaxis:{from:anaK,to:pmaxhr}}];hrAnimationOptions={label:"bpm",clickable:true,shadowSize:0,lines:{show:true,lineWidth:3},points:{show:false},xaxis:{mode:"time"},yaxes:[{min:null},{alignTicksWithAxis:1,position:"right",tickSize:10}],grid:{markings:a,clickable:true},crosshair:{mode:"xy",lineWidth:1,color:"#000"},legend:{position:"nw"}}}function updateAnimationValues(y){if(y==null){return 0}if(y.length<2){return}if(playIndex==null||playIndex<1){return 0}var j=6371;var h,f,F,C;var q=0;var k=0;var g=0;var H=0;var z;for(z=1;z<=playIndex;z++){var e=y[z].getHr()*1;if(e>0){q+=e;k++}if(e>g){g=e}}var K=null;var u=0;var A=0;var I=0;for(z=playIndex-1;z>=0;z--){var L=y[z].getHr()*1;if(L>0){I++;A+=L}h=y[z+1].getLat();F=y[z+1].getLon();f=y[z].getLat();C=y[z].getLon();var p=toRad(f-h);var m=toRad(C-F);var G=Math.sin(p/2)*Math.sin(p/2)+Math.cos(toRad(h))*Math.cos(toRad(f))*Math.sin(m/2)*Math.sin(m/2);var E=2*Math.atan2(Math.sqrt(G),Math.sqrt(1-G));var B=j*E;u+=B;if(measurementUnitSystem==0&&u>=0.99){K=y[z];break}else{if(u>=(0.99*1.609344)){K=y[z];break}}}var v=y[playIndex].getDistance()*0.001;if(measurementUnitSystem==0){$("#routelength").html(v.toFixed(2)+" km")}else{v/=1.609344;$("#routelength").html(v.toFixed(2)+" miles")}$("#routetime").html(y[playIndex].getTimeAsHhMmSs());if(playIndex>(20*playStep)){var D=calculateSpeed(y[playIndex-(2*playStep)],y[playIndex]);if(measurementUnitSystem==0){$("#routepacespeed").html(D.toFixed(1)+" km/h")}else{$("#routepacespeed").html(D.toFixed(1)+" mph")}}$("#routepoints").html(playIndex+1+" "+strRoutePoints);var t=y[playIndex].getHr()*1;if(t>0){$("#routehr").html(t+" bpm")}if(K!=null){A/=I;if(isNaN(A)){A=0}$("#routetime1km").html(getTimeAsHhMmSs(y[playIndex].getTime()-K.getTime()));$("#routehr1km").html(Math.round(A)+" bpm");var b=calculateSpeed(K,y[playIndex]);if(measurementUnitSystem==0){$("#routepacespeed1km").html(b.toFixed(1)+" km/h")}else{b/=1.609344;$("#routepacespeed1km").html(b.toFixed(1)+" mph")}}q=Math.round(q/k);if(isNaN(q)){q=0}$("#routehravg").html(q+" bpm");var n=calculateSpeed(y[0],y[playIndex]);if(measurementUnitSystem==0){$("#routepacespeedavg").html(n.toFixed(1)+" km/h")}else{n/=1.609344;$("#routepacespeedavg").html(n.toFixed(1)+" mph")}$("#routehrmax").html(Math.round(g)+" bpm");var w=y[playIndex].getTime();for(var s=0;s<speedAnimationdata.length;s++){var l=speedAnimationdata[s][0]*1;if(l<=w){var o=speedAnimationdata[s][1];if(o>0&&o>H){H=o}}else{break}}if(measurementUnitSystem==0){$("#routepacespeedmax").html(H.toFixed(1)+" km/h")}else{$("#routepacespeedmax").html(H.toFixed(1)+" mph")}if(hrPlot!=null){hrPlot.unhighlight()}var J=y[playIndex].getFlotHrIndex();if(J>=0){t=routePoints[playIndex].getHr()*1;if(t>0){if(hrPlot!=null){hrPlot.highlight(1,J)}}}var r=routePoints[playIndex].getFlotSpeedIndex();if(r>=0){if(playIndex>0){if(hrPlot!=null){hrPlot.highlight(0,r)}}}}function drawHrSpeedGraph(C){$("#placeholderHr").unbind();initHrAnimation();speedAnimationdata=[];hrAnimationdata=[];$("#placeholderHr").hide();var o=false;var D;var A=0;for(D=0;D<C.length;D++){var z=C[D].getHr();if(z>0){hrAnimationdata.push([C[D].getTime(),z]);C[D].setFlotHrIndex(A);A++}}var p=6371;var y=0;var k,J,h,H;var m=0;var F=[];for(D=0;D<routePoints.length;D++){if(D>0){k=routePoints[D-1].getLat();J=routePoints[D-1].getLon();h=routePoints[D].getLat();H=routePoints[D].getLon()}if(D>0&&k!=0&&J!=0&&h!=0&&H!=0){var u=toRad(h-k);var s=toRad(H-J);var K=Math.sin(u/2)*Math.sin(u/2)+Math.cos(toRad(k))*Math.cos(toRad(h))*Math.sin(s/2)*Math.sin(s/2);var I=2*Math.atan2(Math.sqrt(K),Math.sqrt(1-K));var G=p*I;y+=1000*G}routePoints[D].setDistance(y);var M=0;var L=0;F[D]=0;if(D>0){M=routePoints[D].getDistance()-routePoints[D-1].getDistance();L=routePoints[D].getTime()-routePoints[D-1].getTime();if(L>0){F[D]=(3600*(M/L))}}}for(D=0;D<routePoints.length;D++){var r=0;var E=30000;var B=0;var f=0;var j=routePoints[D].getTime();if(D>0){var e=[];var b=[];var l=D-50;if(l<0){l=0}var g=D+50;if(g>routePoints.length-1){g=routePoints.length-1}var w=0;for(var q=l;q<=g;q++){var v=routePoints[q].getTime();if((j-v)<=E&&(v-j)<=E){e[w]=v;b[w]=F[q];w++}}trainit.LinearRegression.compute(e,b);r=trainit.LinearRegression.calculateY(routePoints[D].getTime())}else{r=F[D]}if(measurementUnitSystem>0){r/=1.609344}routePoints[D].setSpeed(r);speedAnimationdata.push([routePoints[D].getTime(),r]);routePoints[D].setFlotSpeedIndex(m);m++;o=true}if(o){$("#placeholderHr").show();var n="red";hrPlot=$.plot($("#placeholderHr"),[{data:hrAnimationdata,label:"Hr bpm",color:n,yaxis:1},{data:speedAnimationdata,label:"km/h",yaxis:2}],hrAnimationOptions);$("#placeholderHr").bind("plotclick",function(d,N,c){if(playState==RPS_PLAYING){if(routePlayTimer!=null){clearTimeout(routePlayTimer)}routePlayTimer=null}for(D=0;D<routePoints.length;D++){if(routePoints[D].getTime()>N.x){playIndex=D;break}}clearAnimationValues();clearAllOverlays();if(startmarker){startmarker.setMap(null)}startmarker=addStartStopMarker(routePoints[0],0);lastDist=0;lastTime=0;lastLapIcon=0;lastLapTime=0;if(lapPoints!=null){for(D=0;D<=lastLapIcon;D++){var a=lapPoints[D].getTime()*1;if(a<routePoints[playIndex].getTime()){addLapMarker(lapPoints[D],0,lastLapIcon);lastLapIcon++;lastLapTime+=a}}}if(routePlayPolyLine){routePlayPolyLine.setMap(null)}routePlayPolyLine=createRoutePolyLine("#FF0000");playIndex--;if(playIndex<0){playIndex=0}var t=[];for(D=0;D<=playIndex;D++){t[D]=routePoints[D].getLatLon()}routePlayPolyLine.setPath(t);playRoute(true)})}}var routeChanged=false;function askToSaveRoute(){if(routePoints==null){submitForm("workoutForm");return}if(routePoints.length==0){submitForm("workoutForm");return}if(routeChanged){showYesNoCancelDialogAndExecFunc(strAskToSaveRoute,"",function(){saveRoute(true);submitForm("workoutForm")},function(){submitForm("workoutForm")})}else{submitForm("workoutForm")}}function searchLocation(){showSaveAsDialogAndExecFunc("<p>"+strLocation+":</p><p><input id='sloc' type='text' style='width:220px;'></p>",strSearchLocation,function(){showNamedLocation($("#sloc").val(),14,true)},strSearch)}function saveRouteAs(){showSaveAsDialogAndExecFunc("<p>"+strRouteName+":</p><p><input id='sras' type='text' style='width:220px;'></p>",strSaveRouteAs,function(){saveRoute(false,$("#sras").val())})}function saveRoute(e,b){var f=true;if(e){f=false}if(routePoints.length==0){return}var a='<?xml version="1.0" encoding="UTF-8"?>\n<kml xmlns="http://earth.google.com/kml/2.1">\n<Document><name>Your name of document</name><description>Your description</description>\n<Placemark><Style>\n<LineStyle><width>'+kmlLineWeight+"</width></LineStyle>\n<PolyStyle><color>"+kmlFillColor+"</color></PolyStyle>\n</Style>\n";a+="<LineString><tessellate>1</tessellate>\n<coordinates>\n";if(routePoints.length>5000){alert(strTooManyLatLonPoints1+routePoints.length+strTooManyLatLonPoints2);return}for(var c=0;c<(routePoints.length);c++){var g=routePoints[c].getLat();var h=routePoints[c].getLon();a+=h+","+g+",0\r\n"}a+="</coordinates></LineString></Placemark>\n</Document>\n</kml>";var d="attachment";$.ajax({type:"post",async:f,url:d,cache:false,data:{action:"saveroute",u:userId,rn:b,kml:a},dataType:"json",success:trainit.AttachmentDialog.hrDialogResponseHandler});routeChanged=false;return false}function changeRoutePlaySpeed(){var a=$("#playSpeed").val();if(a){routePlaySpeed=a}else{routePlaySpeed=240}}function showAllPointsInAnimation(a){animateAllTrackPoints=a}function centerMapToCurrentPoint(a){centerToCurrentPoint=a}var paused=false;var animateAllTrackPoints=false;var centerToCurrentPoint=false;var RPS_STOPPED=0;var RPS_PLAYING=1;var RPS_PAUSED=2;var playState=RPS_STOPPED;function playRoute(a){changeRoutePlaySpeed();if(playState==RPS_PLAYING){timerEnabled=false;if(routePlayTimer!=null){clearTimeout(routePlayTimer)}routePlayTimer=null;if(a){drawRoutePoint(playIndex,true)}playState=RPS_PAUSED}else{if(playState==RPS_STOPPED){if(routePoints.length<2){return}if(animateAllTrackPoints){playStep=1}else{playStep=Math.ceil(routePoints.length/800);if(playStep==0){playStep=1}}if(!a){clearAnimationValues();clearAllOverlays();if(routePlayPolyLine){routePlayPolyLine.setMap(null)}routePlayPolyLine=createRoutePolyLine("#FF0000");if(startmarker){startmarker.setMap(null)}startmarker=addStartStopMarker(routePoints[0],0)}lastDist=0;lastTime=0;lastLapIcon=0;lastLapTime=0;if(!a){playIndex=0}timerEnabled=true;drawRoutePoint(playIndex,a);playState=RPS_PLAYING}else{if(playState==RPS_PAUSED){timerEnabled=true;if(a){drawRoutePoint(playIndex,true)}else{drawRoutePoint(playIndex+1)}playState=RPS_PLAYING}else{alert("PLAY CONTROL ERROR. STATE FAILED.")}}}}function stopRoute(){if(routePlayTimer!=null){clearTimeout(routePlayTimer);routePlayTimer=null}timerEnabled=false;if(routePlayPolyLine){routePlayPolyLine.setMap(null);routePlayPolyLine=null}playState=RPS_STOPPED;drawWorkoutRoute(true)}var timerEnabled=false;function drawRoutePoint(e,c){var g=routePlayPolyLine.getPath();g.push(routePoints[e].getLatLon());if(!cpMarker){cpMarker=addCurrentPointMarker(routePoints[e])}else{cpMarker.setPosition(routePoints[e].getLatLon())}if(centerToCurrentPoint){map.setCenter(routePoints[e].getLatLon())}playIndex=e;var h=routePoints[e].getDistance();var f=routePoints[e].getTime()*1;var d=(f-lastTime)/routePlaySpeed;if(d==0){d=(120000*(h-lastDist))/routePlaySpeed}if(d>1000){d=1000}if(c){d=0}lastDist=h;lastTime=f;if(lapPoints!=null){if(lapPoints.length>0&&lastLapIcon<lapPoints.length){var b=lapPoints[lastLapIcon].getTime()*1;if(b<f){addLapMarker(lapPoints[lastLapIcon],0,lastLapIcon);lastLapIcon++;lastLapTime+=b}}}if(e>=playStep){updateAnimationValues(routePoints)}if(e<routePoints.length-1){if(routePlayTimer!=null){clearTimeout(routePlayTimer)}if(timerEnabled){var a=e+playStep;if(a>routePoints.length-1){a=routePoints.length-1}routePlayTimer=setTimeout("drawRoutePoint("+a+");",d)}else{playIndex++}}else{stopRoute()}}function getColor(k){var b=0,c=0,j=0;var a=(255/(pmaxhr-pminhr));var h=anaK-pminhr;var l=220/h;b=(k-pminhr)*l;if(b>220){b=220}if(b<0){b=0}b=Math.round(b);var g=pmaxhr-aerK;var d=165/g;var e=k-aerK;if(e<0){e=0}c=165-e*d;if(c>165){c=165}if(c<0){c=0}c=Math.round(c);var f="#"+toHexCode(b)+toHexCode(c)+toHexCode(j);return f}function toRad(a){return(a*(Math.PI/180))}function decimalToHexString(a){if(a<0){a=4294967295+a+1}return a.toString(16).toUpperCase()}function getHex(e){var b=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];var c=Math.floor(e/16);var a=e-c*16;var d=b[a];return(d)}function toHexCode(d){if(d==0){return"00"}if(d==255){return"FF"}var c=[];var a=0;while(d>15){c[a]=getHex(d);d=Math.floor(d/16);a+=1}c[a]=getHex(d);var b="";for(a=c.length-1;a>=0;a--){b+=c[a]}if(b.length<2){b="0"+b}return b}var statisticsTimeout=30000;function getTopSports(b,a){var c="toplist?action=topsports&limit="+a;$.ajax({url:c,cache:false,dataType:"text json",success:function(g){if(g){if(g.topsports){var h="";for(var e=0;e<g.topsports.topsport.length;e++){var f=g.topsports.topsport[e];var d=f.name;h+="<p><div class='grid_1 alpha' style='width:25px;'>"+(e+1)+". </div><div class='grid_4' style='width:195px;'>"+d+"</div><div class='grid_1 omega' style='width:70px;text-align:right'>"+f.c+" "+strTimes+"</div><p>"}$("#"+b).html(h)}}}})}function getTopQualities(b,a){var c="toplist?action=topqualities&limit="+a;$.ajax({url:c,cache:false,dataType:"text json",success:function(f){if(f){if(f.topqualities){var j="";for(var e=0;e<f.topqualities.topquality.length;e++){var g=f.topqualities.topquality[e];var d=g.name;var h=g.name.indexOf(";");if(h){d=d.substring(0,h)}j+="<p><div class='grid_1 alpha' style='width:25px;'>"+(e+1)+". </div><div class='grid_4' style='width:195px;'>"+d+"</div><div class='grid_1 omega' style='width:70px;text-align:right'>"+g.c+" "+strTimes+"</div></p>"}$("#"+b).html(j)}}}})}var divname;var dwsdivname;var topdivname;var tltimer;var statparams;var isFrontPage=false;var isStatisticsPage=false;function getStatistics(b,a,d,c){divname=b;dwsdivname=a;topdivname=d;if(c!=null){statparams=c;if(statparams.indexOf("action=all&all=1&days=14&workouts=10")==0){isFrontPage=true;statparams="action=all&all=1&days=14&workouts=30&persons=10"}else{if(statparams.indexOf("action=all&all=1&days=14&workouts=15")==0){isStatisticsPage=true;statparams="action=all&all=1&days=14&workouts=20&persons=30"}}}else{statparams="action=all&all=1&days=14&workouts=15&persons=10"}refresh()}function refresh(){var a="toplist?"+statparams+"&sort="+topListSortMode;$.ajax({url:a,cache:false,dataType:"xml",success:StatResponseHandler})}var topListSortMode=Math.floor(Math.random()*3);function StatResponseHandler(z,d,r){if(r==null){return}if(r.readyState==4){var w=z.getElementsByTagName("statistics")[0];if(w==null){return}var k="";var u;var o=w.getElementsByTagName("workoutlist");if(o!=null){k="";var s=z.getElementsByTagName("workoutbean");animateWorkouts(s)}var c=w.getElementsByTagName("toplist");if(c!=null){k="";var l=c[0].getAttribute("s");var p=c[0].getAttribute("mode");var y=[];for(u=0;u<3;u++){y[u]=";color:gray"}if(l==null||l<0){l=0}y[l]=";color:black";var A=z.getElementsByTagName("topuser");for(u=0;u<A.length;u++){var f=A[u];var j=f.getAttribute("u");var B=f.getAttribute("n");if(p==0){var a=1*f.getAttribute("d");var e=1*f.getAttribute("dis");var n=1*f.getAttribute("cal");var v=Math.floor(a/3600);var t=((a%3600)/60).toFixed(0);if(t<10){t="0"+t}if(isFrontPage){k+="<div class='fpTopListName'>"}else{k+="<div class='statistics_row'>"}if(isFrontPage){k+='<div class="grid_5 alpha">';k+='<label style="width:20px;">'+(u+1)+".</label>";k+='<label style="width:240px;">'}else{k+='<div class="grid_3 alpha">';k+='<label style="width:20px;">'+(u+1)+".</label>";k+='<label style="width:135px;">'}if(j>0){k+='<a style="margin:0;" href="frontpage?u='+j+'">'+B+"</a>"}else{k+=B}k+="</label>";k+="</div>";k+='<div class="grid_3 omega" style="width:140px;text-align:right">';if(a>0||e>0){k+='<label style="margin:0;width:75px;text-align:right'+y[0]+'">'+v+" h "+t+" min</label>";k+='<label style="margin:0;width:60px;text-align:right'+y[1]+'">'+e.toFixed(1)+" km</label>"}if(n>0){k+='<label style="margin:0;width:70px;text-align:right'+y[2]+'">';k+="-"+n.toFixed(0)+" kcal";k+="</label>"}k+="</div>";k+="</div>";if(!isFrontPage){k+='<div class="small_separator"></div>'}}else{if(p==10){var a=1*f.getAttribute("d");var e=1*f.getAttribute("dis");var n=1*f.getAttribute("cal");var v=Math.floor(a/3600);var t=((a%3600)/60).toFixed(0);if(t<10){t="0"+t}k+="<div class='statistics_row'>";k+='<label style="width:120px;">';if(j>0){k+='<a style="margin:0;" href="frontpage?u='+j+'">'+B+"</a>"}else{k+=B}k+="</label>";if(l==0){k+='<label style="margin:0;width:75px;text-align:right'+y[0]+'">'+v+" h "+t+" min</label>"}else{if(l==1){k+='<label style="margin:0;width:75px;text-align:right'+y[1]+'">'+e.toFixed(1)+" km</label>"}else{if(l==2){k+='<label style="margin:0;width:75px;text-align:right'+y[2]+'">';if(n>0){k+="-"+n.toFixed(0)+" kcal"}k+="</label>"}}}k+="</div>";k+='<div class="small_separator"></div>'}else{var b=1*f.getAttribute("wr");var g=1*f.getAttribute("wrp");k+='<div style="float:left;margin-bottom:5px;width:360px;">';k+='<label style="float:left;width:20px;">'+(u+1)+".</label>";k+='<label style="float:left;width:100px;">';if(j>0){k+='<a target="_blank" style="margin:0;" href="frontpage?u='+j+'">'+B+"</a>"}else{k+=B}k+="</label>";k+='<label style="margin:0;float:left;width:70px;text-align:right'+y[0]+'">'+b.toFixed(1)+" kg</label>";k+='<label style="margin:0;float:left;width:70px;text-align:right'+y[1]+'">'+g.toFixed(1)+" %</label>";k+="</div>"}}}if(k!=null&&k!=""){var q=document.getElementById(topdivname);if(k.length>0){q.innerHTML=k}else{q.innerHTML=""}}}topListSortMode++;if(topListSortMode>=3){topListSortMode=0}if(tltimer!=null){clearTimeout(tltimer)}tltimer=setTimeout("refresh();",statisticsTimeout)}}var currentWorkoutIndex=0;var foundWorkouts=[];function animateWorkouts(b){$("#"+divname).empty();foundWorkouts=b;var a;if(isFrontPage){if(isFrontPage){for(a=0;a<10;a++){appendWorkout(b[a])}currentWorkoutIndex=10}}else{if(isStatisticsPage){for(a=0;a<b.length;a++){appendWorkout(b[a])}}}}var workoutAnimationTimer=null;function workoutAnimation(){$(".srow").first().fadeOut(500).remove();appendWorkout(foundWorkouts[currentWorkoutIndex],true);currentWorkoutIndex++;if(currentWorkoutIndex>=30){currentWorkoutIndex=10}else{var a=2000;workoutAnimationTimer=setTimeout("workoutAnimation();",a)}}function appendWorkout(c,k){var d=c.getAttribute("id");var l=c.getAttribute("uid");var b=c.getAttribute("name");var j=c.getAttribute("uname");var m=c.getAttribute("d");var n=c.getAttribute("st");var g=c.getAttribute("stress");var h=c.getAttribute("feeling");var f=c.getAttribute("rec");var a="";a+='<div class="grid_1 alpha" style="width:90px;">';var e=c.getAttribute("iconindex");a+='<img class="sportImg" width=32 height=32 src="/res/icons/sport_'+e+'.png" title="'+b+'">';if(g>0){a+=' <img style="vertical-align:top;" width=24 height=24 src="/res/img/24/stress'+g+'.png" title="'+strStress+": "+g+'/5">'}if(h>0){a+=' <img style="vertical-align:top;" width=24 height=24 src="/res/img/24/feel'+h+'.png" title="'+strFeeling+": "+h+'/5">'}a+="</div>";if(isFrontPage){a+=' <div class="grid_5 omega" style="margin-left:5px;font-size:13px;vertical-align:top;">'}else{a+=' <div class="grid_5 omega" style="width:220px;margin-left:5px;font-size:13px;vertical-align:top;">'}if(!f||f=="false"){a+=" "+b+"</div>"}else{a+=" <b style='color:red;font-size:10px'>REC</b> "+b+"</div>"}var o=document.createElement("div");$(o).addClass("srow");if(isFrontPage){$(o).addClass("fpWorkout")}else{$(o).css("margin-bottom","5px")}$(o).html(a);if(k){$(o).hide()}$("#"+divname).append(o);if(k){$(o).fadeIn(800)}}var testCenterDiv;function initTestCenter(a){testCenterDiv=a;showTestCenter()}var testCenterInitialized=false;var testSetTable;function showTestCenter(){if(testCenterInitialized){return}testCenterInitialized=true;var b="<div style='margin-bottom:10px;'><div><button onclick='openAddNewTestSetDialog()'>"+strAddNewTestSet+"</button></div><div id='ownTestsDiv'></div><div id='dialog-addnewtestset'></div><div id='dialog-addnewtesttype'></div></div>";$("#"+testCenterDiv).append(b);$("#"+testCenterDiv+" button").button();var a='<table cellpadding="0" cellspacing="0" border="0" class="display" id="ownTestsTable"><thead><tr><th>'+strDateAndTime+"</th><th>"+strName+"</th><th>"+strLocation+"</th><th>"+strTestResult+"</th><th></th></tr></thead><tbody>";$("#ownTestsDiv").append(a);testSetTable=$("#ownTestsTable").dataTable({bJQueryUI:true,bScrollCollapse:false,sScrollY:"250px",bPaginate:false,sDom:"ft",aaSorting:[[0,"desc"]],bAutoWidth:false,aoColumnDefs:[{sWidth:"105px",aTargets:[0]},{sWidth:"120px",aTargets:[1]},{sWidth:"120px",aTargets:[2]},{sWidth:"140px",aTargets:[4]}],oLanguage:{sProcessing:"Odota...",sZeroRecords:"Ei testejä.",sEmptyTable:"No data available in table",sInfo:"Yhteensä _TOTAL_ testiä",sInfoEmpty:"Ei testejä",sInfoFiltered:"(_MAX_ testistä)",sInfoPostFix:"",sSearch:"Etsi",sUrl:"",oPaginate:{sFirst:"First",sPrevious:"Previous",sNext:"Next",sLast:"Last"},fnInfoCallback:null}});getTestSets()}var addNewTestSetDialog;function openAddNewTestSetDialog(a){if(!addNewTestSetDialog){initAddNewTestSetDialog()}$(addNewTestSetDialog).dialog("open");deleteAllTestRows();if(a>0){$("#testTemplateDiv").hide();$(addNewTestSetDialog).dialog("option","title",strModifyTestSet);loadTestSet(a)}else{$("#testTemplateDiv").show();$(addNewTestSetDialog).dialog("option","title",strAddNewTestSet);addEmptyTestRow()}}function initAddNewTestSetDialog(){var b=strAddNewTestSet;var c={};c[strSave]=function(){saveTestSet();$(this).dialog("close")};c[strCancel]=function(){$(this).dialog("close")};addNewTestSetDialog=$("#dialog-addnewtestset").dialog({autoOpen:false,close:function(f,g){},resizable:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},title:b,minHeight:200,minWidth:750,position:"center",zIndex:10000,buttons:c});var a;if(!a){a=getCurrentIsoDate()}var d;if(!d){d=getCurrentIsoTime()}var e="<div class='container_16' style='width:720px'><div id='testTemplateDiv' class='grid_12 alpha'><div class='grid_2 alpha'><label>"+strTestSetTemplates+"</label></div><div class='grid_4'><select style='width:100%' id='testTemplateSelect' onchange='loadTestSet($(\"#testTemplateSelect\").val())'></select></div><div class='grid_6 omega'><a href='' onclick='alert(\"Toiminto ei ole vielä käytössä\");return false;'>"+strModifyTestSetTemplates+"</a></div></div><div class='large_line_separator'></div><div id='testSetData' class='grid_12 alpha'><div class='grid_6 alpha'><input type='hidden' id='testsetid' name='testsetid'><div class='grid_2 alpha'><label>"+strTestSetName+"</label></div><div class='grid_4 omega'><input type='text' class='grid_4_input' id='testname' name='testname'></div><div class='grid_2 alpha'><label>"+strDateAndTime+"</label></div><div class='grid_4 omega'><input type='text' class='inputdate' value='"+a+"' id='testdate' name='testdate'><input type='text' class='inputtime' value='"+d+"' id='testtime' name='testtime'></div><div class='small_separator'></div><div class='grid_2 alpha'><label>"+strLocation+"</label></div><div class='grid_4 omega'><input type='text' class='grid_4_input' id='testlocation' name='testlocation'></div><div class='grid_2 alpha'><label class='inputlabelshort'>"+strTester+"</label></div><div class='grid_4 omega'><input type='text' class='grid_4_input' id='testtester' name='testtester'></div></div><div class='grid_6 omega'><div class='grid_2 alpha'><label>"+strComments+"</label></div><div class='grid_4 omega'><textarea class='grid_4_textarea' rows=6 id='testcomment' name='testcomment'></textarea></div></div></div><div id='testrowstable' class='grid_12 alpha' style='margin-top:20px'><div class='grid_2 alpha'></div><div class='grid_4'>"+strSubTestName+"</div><div class='grid_2'>"+strTestResult+"</div><div class='grid_4 omega' id='unitHeader'>"+strMeasurementUnit+"</div><div class='small_separator'></div></div></div></div>";currentTestTableName="testrowstable";$("#dialog-addnewtestset").html(e);$("#dialog-addnewtestset button").button();$("#dialog-addnewtestset .inputdate").datepicker({flat:true,dateFormat:"yy-mm-dd",showButtonPanel:true,changeMonth:true,changeYear:true,showWeek:true,firstDay:1,numberOfMonths:1,showOtherMonths:true,selectOtherMonths:true},$.datepicker.regional.fi);getTestSetTemplates();return false}function addEmptyTestRow(){addTestRow(0,"","","")}function saveTestSet(){var a=false;var b="action=savetestset";var d="testSetData";$("#"+d+" input:text, #"+d+" input:hidden, #"+d+" textarea, #"+d+" select").each(function(e){b+="&"+$(this).attr("name")+"="+$(this).val()});if($("#saveastemplate").attr("checked")){b+="&"+$("#saveastemplate").attr("name")+"="+$("#saveastemplate").val();a=true}var c=0;$("#"+currentTestTableName+" .testRow").each(function(e){var f=false;$(this).find("input.testTypeId").each(function(g){f=true;b+="&testtypeid"+c+"="+$(this).val()});$(this).find(".testName input").each(function(g){b+="&testname"+c+"="+$(this).val()});$(this).find(".testValue input").each(function(g){b+="&testvalue"+c+"="+$(this).val()});$(this).find(".tvUnit input").each(function(g){b+="&tvunit"+c+"="+$(this).val()});if(f){c++}});$.ajax({type:"post",url:"testcenter",data:b,dataType:"text json",context:document.body,success:function(e){showInfoDialog(strTestSaved,"",10000);getTestSets();if(a){getTestSetTemplates()}},error:function(e){showErrorDialog(strTestSaveFailed,"",20000)}})}function deleteAllTestRows(){$("#testsetid").val("");$("#testname").val("");$("#testdate").val(getCurrentIsoDate());$("#testtime").val(getCurrentIsoTime);$("#testlocation").val("");$("#testcomment").val("");$("#"+currentTestTableName+" .testRow").remove()}function deleteTestRow(a){var b=$(a).closest(".testRow").get(0);$(b).remove();updateTestRows()}function addTestRow(c,a,d,b){var f="n"+uniqueTTSId;uniqueTTSId++;var e="<div class='testRow'><input class='testTypeId' type='hidden' name='testtypeid' value='"+c+"'><div class='grid_2 alpha' style='text-align:right'><img src='http://www.trainit.fi/res/img/16/add.png' onclick='insertTestRow($(this));'><img src='http://www.trainit.fi/res/img/16/trash.png' onclick='deleteTestRow(this)'></div><div class='grid_4 testName'><input id='"+f+"' type='text' class='grid_4_input' value='"+a+"' onclick='this.select()'></div><div class='grid_2 testValue'><input type='text' class='grid_2_input' value='"+d+"'></div><div class='grid_4 omega tvUnit'>"+b+"</div></div>";$("#testrowstable").append(e);makeAutoCompleteTestTypeSearch("#"+f);updateTestRows()}function insertTestRow(c){var g="n"+uniqueTTSId;uniqueTTSId++;var a="";var e="";var b="";var d="<div class='testRow'><input class='testTypeId' type='hidden' name='testtypeid' value=''><div class='grid_2 alpha' style='text-align:right'><img src='http://www.trainit.fi/res/img/16/add.png' onclick='insertTestRow($(this));'><img src='http://www.trainit.fi/res/img/16/trash.png' onclick='deleteTestRow(this)'></div><div class='grid_4 testName'><input id='"+g+"' type='text' class='grid_4_input' value='"+a+"' onclick='this.select()'></div><div class='grid_2 testValue'><input type='text' class='grid_2_input' value='"+e+"'></div><div class='grid_4 omega tvUnit'>"+b+"</div></div>";var f=$(c).closest(".testRow").get(0);$(f).after(d);makeAutoCompleteTestTypeSearch("#"+g);updateTestRows()}var currentTestTableName;function updateTestRows(){try{$("#"+currentTestTableName+" .testRow").each(function(b){$(this).find("input.testTypeId").attr("name","testtypeid"+b);$(this).find(".testName input").attr("name","testname"+b);$(this).find(".testValue input").attr("name","testvalue"+b);$(this).find(".tvUnit input").attr("name","testvaluetype"+b)})}catch(a){}}var uniqueTTSId=0;function makeAutoCompleteTestTypeSearch(a){$(a).autocomplete({minLength:1,source:function(c,b){$.ajax({url:"testcenter?action=searchtesttype",cache:false,dataType:"text json",data:{keyword:$(a).val(),limit:25},success:function(d){var e=$(a).closest(".testRow").get(0);$(a).css("color","blue");$(e).find(".testTypeId").val(0);$(e).find(".tvUnit").html("<input type='text' class='inputint'>(esim. kg, krt, h:mm:ss, cm)");$(".tvUnit button").button();b($.map(d,function(f){return{label:f.label,value:f.value,id:f.id,valuename:f.valuename}}))}})},select:function(b,c){var d=$(this).closest(".testRow").get(0);$(d).find(".tvUnit").html(c.item.valuename);$(d).find(".testTypeId").val(c.item.id);$(d).find(".testName input").css("color","green")}})}function saveTestType(a){updateTestRows();var b=$(a).closest(".testRow").get(0);$(b).find(".tvUnit").html(ui.item.valuename)}var addNewTestTypeDialog;function openAddNewTestTypeDialog(){if(!addNewTestTypeDialog){initAddNewTestTypeDialog()}$(addNewTestTypeDialog).dialog("open")}function initAddNewTestTypeDialog(){var a='<span class="ui-icon ui-icon-document" style="float:left; margin:0 7px 0px 0;"></span>TrainIt';var b={};b[strSave]=function(){$(this).dialog("close")};b[strCancel]=function(){$(this).dialog("close")};addNewTestTypeDialog=$("#dialog-addnewtesttype").dialog({autoOpen:false,close:function(d,e){},resizable:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},title:a,minHeight:200,minWidth:500,position:"top",zIndex:10000,buttons:b});var c="<div>Uuden testityypin luonti";$("#dialog-addnewtesttype").html(c);$("#dialog-addnewtesttype button").button();return false}function getTestSets(){testSetTable.fnClearTable();var a="testcenter?action=gettestsets";$.ajax({url:a,cache:false,dataType:"text json",context:document.body,success:function(c){if(c.gettestsets){if(c.gettestsets.testsets){for(var b=0;b<c.gettestsets.testsets.length;b++){var d=c.gettestsets.testsets;testSetTable.fnAddData([d[b].date+" "+d[b].time.substring(0,5),d[b].name,d[b].location,d[b].result,'<button class="tableButton" style="font-size:9px" onclick="removeTestSet('+d[b].id+');return false;">'+strRemove+'</button><button class="tableButton" style="font-size:9px" onclick=\'openAddNewTestSetDialog('+d[b].id+")'>"+strEdit+"</button>"])}$(".tableButton").button();$(".tableButton span").css("padding","4px");$(".tableButton").css("margin","1px")}}}})}function removeTestSet(a){showConfirmDialogAndExecFunc(strConfirmRemoveTestSet,"",function(){$.ajax({url:"testcenter?action=removetestset",cache:false,dataType:"text json",data:{testsetid:a},success:function(b){getTestSets()}})})}function getTestSetTemplates(){var a="testcenter?action=gettestsets&templates=1";$.ajax({url:a,cache:false,dataType:"text json",context:document.body,success:function(d){var c="<option value='0'>"+strSelectTestSetTemplate+"</option>";if(d.gettestsets){if(d.gettestsets.testsets){for(var b=0;b<d.gettestsets.testsets.length;b++){var e=d.gettestsets.testsets;c+="<option value='"+e[b].id+"'>"+e[b].name+"</option>"}}}$("#testTemplateSelect").html(c)}})}function loadTestSet(a){if(a<1){return}$("#testTemplateSelect").val(0);deleteAllTestRows();$.ajax({url:"testcenter",cache:false,dataType:"text json",data:{action:"loadtestset",id:a},success:function(f){var q=f.loadtestset.id;var h=f.loadtestset.userid;var d=f.loadtestset.startdate;var c=f.loadtestset.starttime;var b=f.loadtestset.name;var o=f.loadtestset.location;var g=f.loadtestset.comment;var m=f.loadtestset.type;$("#testname").val(b);if(m==0){$("#testsetid").val(q);$("#testdate").val(d);$("#testtime").val(c)}$("#testlocation").val(o);$("#testcomment").val(g);if(f.loadtestset.tests){for(var e=0;e<f.loadtestset.tests.length;e++){var l=f.loadtestset.tests[e];var j=l.name;var n=l.testtypeid;var k=l.value;var p=l.valueunit;addTestRow(n,j,k,p)}}updateTestRows()}})}trainit.Week=function(){};trainit.Week.saveInstructionsAndComments=function(b,c){var a=$("#"+c).find("#instruction").val();var d=$("#"+c).find("#comment").val();$.ajax({type:"POST",url:b,data:{contenttype:"json",instruction:a,comment:d},success:function(e){}});return false};function showWorkoutView(b){var a="workout?day="+getCurrentIsoDate()+"&a="+b;createCookie("workoutView",b,365);showSelectDialogAndExecFunc(strConfirmSaveCurrentWorkout,strChangingWorkoutView,strYes,strNo,function(){$("#reload").val(1);submitForm("workoutForm")},function(){location.reload()})}function createSubWorkoutRow(a,b,f,c){var e=$("#sworows").find(".grid_12").length;var d='<div class="grid_12 alpha">';if(b==0){b="00"}if(f==0){f="00"}if(c==0){c=""}d+='<input type="hidden" name="subworkoutid'+e+'" value="0">';d+='<div class="grid_3 alpha">';d+='<input type="hidden" class="subsport" id="subsport'+e+'" name="subsport'+e+'" value="0">';d+='<input type="text" class="subsportname grid_3_input" id="subsportname'+e+'" name="subsportname'+e+'" value="">';d+="</div>";d+='<div class="grid_4">';d+='<input type="hidden" class="subquality" id="subquality'+e+'" name="subquality'+e+'" value="0">';d+='<input type="text" class="subqualityname grid_4_input" id="subqualityname'+e+'" name="subqualityname'+e+'" value="">';d+="</div>";d+='<div class="grid_2">';d+='<input style="width:25px;text-align: right" type="text" id="subduration_h'+e+'" name="subduration_h'+e+'" onclick="textFieldOnClick(this)" onchange="checkInt(this,10);calculateSubSpeed('+e+');" value="'+a+'">';d+='<input style="width:25px;text-align: right" type="text" id="subduration_m'+e+'" name="subduration_m'+e+'" onclick="textFieldOnClick(this)" onchange="checkInt(this,59);calculateSubSpeed('+e+');" value="'+b+'">';d+='<input style="width:25px;text-align: right" type="text" id="subduration_s'+e+'" name="subduration_s'+e+'" onclick="textFieldOnClick(this)" onchange="checkInt(this,59);calculateSubSpeed('+e+');" value="'+f+'">';d+="</div>";d+='<div class="grid_1"><input class="inputfloat" type="text" id="sublength'+e+'" name="sublength'+e+'" onclick="textFieldOnClick(this)" onchange="checkFloat(this);calculateSubSpeed('+e+');" value="'+c+'"></div>';d+='<div class="grid_1 pace_speed_cell"><label id="sub_pace'+e+'"></label></div>';d+='<div class="grid_1 omega pace_speed_cell"><label id="sub_speed'+e+'"></label></div>';d+="</div>";$("#sworows").append(d);addSportCheckRule("#subsportname"+e);addQualityCheckRule("#subqualityname"+e);makeAutoCompleteSportSearch("#subsportname"+e);makeAutoCompleteQualitySearch("#subqualityname"+e)}function initWorkoutValidation(){$("#workoutForm").validate({onkeyup:false,onfocusout:false,onclick:false});jQuery.validator.addMethod("sportCheck",function(e,c){if($(c).val()==$(c).attr("title2")){$(c).val("")}var f=$(c).attr("id");var b=f.substring(12,f.length);if($(c).val()&&$(c).val()!=""){var d="sportquality?action=checksport&sportid="+$("#subsport"+b).val()+"&sportname="+$(c).val();var a=false;$.ajax({url:d,dataType:"text json",cache:false,async:false,type:"POST",success:function(g){a=((g.found=="true")?true:false)}});return a}else{$("#subsport"+b).val(0);return true}},"");jQuery.validator.addMethod("qualityCheck",function(e,c){if($(c).val()==$(c).attr("title2")){$(c).val("")}var g=$(c).attr("id");var b=g.substring(14,g.length);if($(c).val()&&$(c).val()!=""){var f=encodeURI($(c).val());var d="sportquality?action=checkquality&qualityid="+$("#subquality"+b).val()+"&qualityname="+f;var a=false;$.ajax({url:d,dataType:"text json",cache:false,async:false,type:"POST",success:function(h){a=((h.found=="true")?true:false)}});return a}else{$("#subquality"+b).val(0);return true}},"");addSportCheckRule('input[name^="subsportname"]');addQualityCheckRule('input[name^="subqualityname"]')}function addSportCheckRule(a){$(a).each(function(){$(this).rules("add",{sportCheck:true,messages:{sportCheck:strSportDoesNotExist}})})}function addQualityCheckRule(a){$(a).each(function(){$(this).rules("add",{qualityCheck:true,messages:{qualityCheck:strQualityDoesNotExist}})})}function makeAutoCompleteSportSearch(a){$(a).each(function(){makeAutoCompleteSportSearchField($(this))})}function makeAutoCompleteQualitySearch(a){$(a).each(function(){makeAutoCompleteQualitySearchField($(this))})}function clearHelpText(a,b){if($(a).val()==$(a).attr("title2")){$(a).css("color","#000");$(a).val("")}}var searchOwnSportsOnly=0;var searchAllSports=0;function makeAutoCompleteSportSearchField(a){$(a).autocomplete({minLength:0,delay:50,source:function(c,b){$.ajax({url:"sportquality?action=searchsport",cache:false,dataType:"text json",data:{keyword:$(a).val(),limit:500,own:searchOwnSportsOnly,all:searchAllSports},success:function(d){searchOwnSportsOnly=0;searchAllSports=0;if(d.length<1){var e=$(a).closest(".grid_12").get(0);$(e).find("input.subsport").val(0);$(a).css("color","red")}else{$(a).css("color","#000000")}b($.map(d,function(f){return{label:f.label,value:f.value,id:f.id}}))}})},select:function(c,d){var e=$(this).closest(".grid_12").get(0);$(e).find("input.subsport").val(d.item.id);checkForSpecialSports(0);$(e).find("input.subsportname").val(d.item.value);try{$("#workoutForm").valid()}catch(b){}}}).data("autocomplete")._renderItem=function(b,c){if(c.id>0){return $("<li></li>").data("item.autocomplete",c).append("<a style='font-weight:bold'>"+c.label+"</a>").appendTo(b)}else{return $("<li></li>").data("item.autocomplete",c).append("<label style='font-weight:bold'>"+c.label+"</label>").appendTo(b)}};$(a).click(function(){if($(a).val()==""){searchOwnSportsOnly=1;searchAllSports=0;$(a).autocomplete("search",null)}else{$(a).autocomplete("search",$(a).val())}})}var searchOwnQualitiesOnly=0;var searchAllQualities=0;function makeAutoCompleteQualitySearchField(a){$(a).autocomplete({minLength:0,delay:50,source:function(c,b){$.ajax({url:"sportquality?action=searchquality",cache:false,dataType:"text json",data:{keyword:$(a).val(),limit:200,own:searchOwnQualitiesOnly,all:searchAllQualities},success:function(d){searchOwnQualitiesOnly=0;searchAllQualities=0;if(d.length<1){var e=$(a).closest(".grid_12").get(0);$(e).find("input.subquality").val(0);$(a).css("color","red")}else{$(a).css("color","#000000")}b($.map(d,function(f){return{label:f.label,value:f.value,id:f.id}}))}})},select:function(c,d){if(d.item.id>0){var e=$(this).closest(".grid_12").get(0);$(e).find("input.subquality").val(d.item.id);$(e).find("input.subqualityname").val(d.item.value);try{$("#workoutForm").valid()}catch(b){}}}}).data("autocomplete")._renderItem=function(b,c){if(c.id>0){return $("<li></li>").data("item.autocomplete",c).append("<a style='font-weight:bold'>"+c.label+"</a>").appendTo(b)}else{return $("<li></li>").data("item.autocomplete",c).append("<label style='font-weight:bold'>"+c.label+"</label>").appendTo(b)}};$(a).click(function(){if($(a).val()==""){searchOwnQualitiesOnly=1;searchAllQualities=0;$(a).autocomplete("search",null)}else{$(a).autocomplete("search",$(a).val())}})}function makeAutoCompleteLocationSearch(a){$(a).autocomplete({minLength:0,selectFirst:true,source:function(c,b){$.ajax({url:"workout?action=locations",cache:false,dataType:"text json",data:{keyword:$(a).val(),limit:10},success:function(d){b($.map(d,function(e){return{label:e.label,value:e.value,id:e.id}}))}})},select:function(b,c){}}).data("autocomplete")._renderItem=function(b,c){return $("<li></li>").data("item.autocomplete",c).append("<a style='font-weight:bold'>"+c.label+"</a>").appendTo(b)};$(a).click(function(){if($(a).val()==""){$(a).autocomplete("search",null)}else{$(a).autocomplete("search",$(a).val())}})}function calculateSpeeds(a){for(var b=0;b<a;b++){calculateSubSpeed(b)}}function calculateSubSpeed(h){try{var m=document.getElementById("subduration_h"+h+"");var j=document.getElementById("subduration_m"+h+"");var f=document.getElementById("subduration_s"+h+"");var k=document.getElementById("sublength"+h+"");var c=3600000*m.value+60000*j.value+1000*f.value;var d=document.getElementById("sub_speed"+h+"");var n=0;if(c>0){n=((k.value*3600000)/c)}d.innerHTML=n.toFixed(2);var o=document.getElementById("sub_pace"+h+"");var g=0,b=0;if(k.value>0){var a=c/(k.value);g=Math.floor(a/60000);b=Math.round((a%60000)/1000)}if(b<10){b="0"+b}o.innerHTML=g+":"+b}catch(l){}}function modifyAllRepeatedWorkouts(c,d,a,b){stopPropagation(c);return showSelectDialog(strModifyAllRepeatingWorkouts,d,b,a,strAllRepeatingWorkouts,strOnlyThisWorkout)}function importWorkoutFromFile(){alert("importWorkoutFromFile()")}var exportStartDate,exportEndDate;function updateExportPeriod(){exportWorkoutToFile($("#exportstartdate").val(),$("#exportenddate").val())}function exportWorkoutToFile(d,a){exportStartDate=d;exportEndDate=a;if(ptwExportDlgInitialized==undefined){initWorkoutExportDialog("EXPORT")}var c="";c+="<div class=\"container_16\" style='margin-left:0;width:720px'>";c+='<div class="grid_12 alpha">';c+='<div id="selectExportTypeDiv">';c+='<div class="grid_3 alpha"><b>'+strExportFileType+":</b></div>";c+="<div class=\"grid_7 suffix_2\"><select id='selectExportType' style='width:100%' name='type' value='xml'><option value='ics'>"+strFileTypeIcs+"</option><option value='txt'>"+strFileTypeText+"</option><option value='xml'>"+strFileTypeXml+"</option></select></div>";c+='<div class="small_separator"></div>';c+="<div class='grid_3 alpha'><label><b>"+strExportPeriod+":</b></label></div><div class='grid_4'><input type='text' class='inputdate' value='"+exportStartDate+"' id='exportstartdate' name='exportstartdate'> - <input type='text' class='inputdate' value='"+exportEndDate+"' id='exportenddate' name='exportenddate'></div><div class='grid_3' style='text-align:right'> <button onclick='updateExportPeriod()'>"+strChangeExportPeriod+"</button></div></div>";c+='<div class="large_line_separator"></div>';c+="<div>"+strExportSelectFiles+"</div>";c+='<div class="medium_separator"></div>';c+='<div style="height:240px">';c+="<div class=\"grid_6 alpha\"><div class='common_table_header'><input id='cbAllPlanned' type='checkbox' onclick='selectPlanned()'> "+strPlannedWorkouts+" <label id='pcount'></label></div><div id='exportPlannedWorkoutDiv' class='common_table export_import_table'></div></div>";c+="<div class=\"grid_6 omega\"><div class='common_table_header'><input id='cbAllActual' type='checkbox' onclick='selectActual()'> "+strActualWorkouts+" <label id='acount'></label></div><div id='exportActualWorkoutDiv' class='common_table export_import_table'></div></div>";c+="</div>";c+="<div id='actualToPlanned' style='display:none'><div class='grid_1 alpha' style='width:16px;'><input type='checkbox'></div><div class='grid_11 omega'>"+strConvertActualToPlannedWorkoutsInExport+"</div></div>";c+='<div class="medium_separator"></div>';c+="</div>";c+="</div>";var b="workoutexport?action=getexportlist&startdate="+exportStartDate+"&enddate="+exportEndDate+"&type=2";$.ajax({url:b,context:document.body,success:function(l){$workoutExportDialog.dialog("open");$workoutExportDialog.empty();$workoutExportDialog.html(c);var o=0;var j=0;if(l){if(l.exportlist){if(l.exportlist.workouts){for(var n=0;n<l.exportlist.workouts.length;n++){var g=l.exportlist.workouts[n];var h=g.uid;var m=g.type;var f=g.name;var e=g.i;var k="<div class=\"common_table_row\"><div class='grid_4 omega' style='width:260px;'><label>["+strDayAbbr+e+"]</label> "+f+"</div>";if(m==0){$("#exportPlannedWorkoutDiv").append(k);o++}else{$("#exportActualWorkoutDiv").append(k);j++}}}}}$("#pcount").html("("+o+")");$("#acount").html("("+j+")");$("button, input:submit").button();$workoutExportDialog.css("cursor","default")}})}function selectActual(){if($("#cbAllActual").attr("checked")){$("#exportActualWorkoutDiv input:checkbox").attr("checked","checked")}else{$("#exportActualWorkoutDiv input:checkbox").attr("checked",false)}}function selectPlanned(){if($("#cbAllPlanned").attr("checked")){$("#exportPlannedWorkoutDiv input:checkbox").attr("checked","checked")}else{$("#exportPlannedWorkoutDiv input:checkbox").attr("checked",false)}}function exportSelectedWorkoutsToFile(){var c="exporttofile";var b=$("#selectExportType").val();var d=$("#exportstartdate").val();var a=$("#exportenddate").val();if($("#cbAllPlanned").attr("checked")&&$("#cbAllActual").attr("checked")){type=2}else{if($("#cbAllPlanned").attr("checked")){type=0}else{if($("#cbAllActual").attr("checked")){type=1}else{return}}}goToUrl("workoutexport?action="+c+"&filetype="+b+"&type="+type+"&startdate="+d+"&enddate="+a)}var workoutExportDialog;var ptwExportDlgInitialized;function initWorkoutExportDialog(b){ptwExportDlgInitialized=true;if(!$("#dialog-exportworkout")){alert("Workout export dialog not found!");return}var a={};a[strExportToFile]=function(){exportSelectedWorkoutsToFile()};a[strCancel]=function(){$(this).dialog("close")};$workoutExportDialog=$("#dialog-exportworkout").dialog({autoOpen:false,resizable:false,modal:true,overlay:{backgroundColor:"#000000",opacity:0.2},dialogClass:"alert",title:strExportToFileTitle,minWidth:770,minHeight:400,maxHeight:1000,zIndex:10000,buttons:a})}var caloryCalculationInUse=1;function stopCaloryCalculation(){caloryCalculationInUse=0}function calculateCalories(c){if(caloryCalculationInUse==0){return}if(c==undefined||c==0){return}var b=$("#stress").val()*1;var a=1+(b-3)/10;var d=$("#subsport0").val();$.post("sportquality?action=getcalories&sport="+d,function(l){if(l!=null){var f=l.sportcalories;var j=$("#subduration_h0").val()*1;var e=$("#subduration_m0").val()*1;var g=((60*j)+e)/60;if(c<20){c=75}var n=Math.sqrt(Math.sqrt(c/80));var k=a*n*g*f;$("#calories").val(k.toFixed(0))}})}var traineeTable;var allTrainees=[];var selectedTrainees=[];var selectedFirstDay;function initPt(a,b){$("#"+b).html("");$("#"+b).append('<div class="grid_12_boxed"><div id="traineeListDiv"><h1>'+strTrainees+' <a href="" onclick="showTable(\'traineesdiv\');return false;">'+strShowHide+"</a></h1>"+strSelectTraineeFromList+'<div class="grid_12 alpha" id="traineesdiv"></div></div></div><div class="grid_12_boxed" id="weekCalendar"></div></div>');$("#"+b).append('<div id="dialog-addworkout"></div><div id="dialog-addptworkout"></div><div id="dialog-selecttrainees"></div><div id="dialog-selectrepeating"></div>');getTrainees();getPtClients();$(".calendarrow div").css("cursor","pointer");initPtWorkoutDialog("no title")}function getTrainees(){var a="ptclients?action=gettrainees";$.ajax({url:a,cache:false,dataType:"text json",context:document.body,success:function(e){var d='<table cellpadding="0" cellspacing="0" border="0" class="display" id="traineeTable"><thead><tr><th></th><th><b>'+strName+"</b></th><th>"+strGroupTeam+"</th><th>"+strHandled+"</th><th>"+strStatus+"</th></tr></thead><tbody>";if(e.gettrainees){allTrainees=[];for(var c=0;c<e.gettrainees.trainees.length;c++){var b=e.gettrainees.trainees[c];allTrainees.push(new Trainee(b.id,b.name));d+='<tr><td id="'+b.id+'"><img class="profileImg" src="image?action=getprofile&amp;u='+b.id+'" width=20 height=20></td><td>'+b.name+"</td><td>"+b.team+"</td>";d+='<td class="lasthandled">'+getLastHandledStr(b.lasthandledstate,b.lasthandleddate.substring(0,10))+"</td>";d+='<td class="state">'+getTrainingStateStr(b.trainingstate)+"</td>";d+="</tr>"}}d+="</tbody></table>";$("#traineesdiv").html(d);$("#traineesdiv button").button();initTraineeTable()}})}function getLastHandledStr(b,a){if(b==1){return a+'<img src="http://www.trainit.fi/res/img/accept.gif">'}else{return a+'<img src="http://www.trainit.fi/res/img/16/exclamation.png">'}}function getTrainingStateStr(a){if(a==1){return'<img src="http://www.trainit.fi/res/img/accept.gif"> OK'}else{return'<img src="http://www.trainit.fi/res/img/16/exclamation.png">'}}function selectAndShowAllTrainees(){selectedTrainees=[];$("#traineeTable tr").addClass("row_selected");$("#traineeTable tr").each(function(b){var c=$(this).find("td").attr("id");var a=$(this).find("td").next().html();if(c>0&&a!=null){selectedTrainees.push(new Trainee(c,a))}});showTraineeWorkouts()}function selectAndShowNoneTrainees(){selectedTrainees=[];$("#traineeTable tr").removeClass("row_selected");$("#weekCalendar").empty()}function rowClicked(){alert("rowClicked()");$("#weekCalendar").empty();selectedTrainees=[];if(!ev.ctrlKey){$("#traineeTable tr").removeClass("row_selected")}if($(this).hasClass("row_selected")){$(this).removeClass("row_selected")}else{$(this).addClass("row_selected")}if(!ev.ctrlKey){var b=$(this).find("td").attr("id");var a=$(this).find("td").next().html();selectedTrainees.push(new Trainee(b,a))}else{$("#traineeTable tr").each(function(d){if($(this).hasClass("row_selected")){var e=$(this).find("td").attr("id");var c=$(this).find("td").next().html();selectedTrainees.push(new Trainee(e,c))}})}alert("hiding:"+$("#traineeListDiv"));$("#traineeListDiv").hide();showTraineeWorkouts()}function initTraineeTable(){if(selectedFirstDay==null){selectedFirstDay=getCurrentIsoDate()}$("#traineeTable tr").click(function(d){selectedTrainees=[];if(!d.ctrlKey){$("#traineeTable tr").removeClass("row_selected")}if($(this).hasClass("row_selected")){$(this).removeClass("row_selected")}else{$(this).addClass("row_selected")}if(!d.ctrlKey){var c=$(this).find("td").attr("id");var b=$(this).find("td").next().html();selectedTrainees.push(new Trainee(c,b))}else{$("#traineeTable tr").each(function(f){if($(this).hasClass("row_selected")){var g=$(this).find("td").attr("id");var e=$(this).find("td").next().html();selectedTrainees.push(new Trainee(g,e))}})}showTraineeWorkouts()});$("#traineeTable td").css("cursor","pointer");var a=$("#traineeTable").dataTable({bJQueryUI:true,bScrollCollapse:false,sScrollY:"210px",bPaginate:false,bAutoWidth:false,aoColumns:[{sWidth:"30px"},{sWidth:"250px"},null,{sWidth:"100px"},{sWidth:"50px"}],oTableTools:{aButtons:[{sButtonText:strSelectAll,sExtends:"text",fnClick:selectAndShowAllTrainees},{sButtonText:strSelectNone,sExtends:"text",fnClick:selectAndShowNoneTrainees}]},sDom:'<"small_separator">t<"small_separator"><"dataTablesSearchDiv"f><"dataTablesSelectButtonDiv"T><"dataTablesInfoDiv"i>',oLanguage:{sInfo:dtsInfo,sInfoFiltered:"",sSearch:dtsSearch}});$("button").button()}function getSelectedTraineesStr(){var b="";for(var a=0;a<selectedTrainees.length;a++){b+=selectedTrainees[a].getUid();if(a<selectedTrainees.length-1){b+=";"}}return b}function showTraineeWorkouts(a){if(a){selectedFirstDay=a}$.ajax({type:"post",url:"pt",cache:false,data:{action:"getworkouts",day:selectedFirstDay,traineelist:getSelectedTraineesStr()},dataType:"text json",context:document.body,success:function(b){$(".calendarrow .workoutcell").html("");if(b){if(b.getworkouts){fillWorkoutTable($("#weekCalendar"),b.getworkouts)}}}})}var ptwoTableInitialized=false;function initWorkoutTable(a,e){var n="";n+='<div class="grid_12 alpha">';var c=50;c=50;n+='<div class="grid_3 alpha">';n+='<button style="width:100%;margin-bottom:5px" onclick="markAsHandled();return false;">'+strMarkAsHandled+"</button>";n+='<button style="width:100%;margin-bottom:5px" onclick="markTrainingState(1);return false;">'+strTrainingOk+"</button>";n+='<button style="width:100%" onclick="markTrainingState(0);return false;">'+strNeedsAttention+"</button>";n+="</div>";n+='<div class="grid_9 omega">';for(var f=0;f<selectedTrainees.length;f++){n+='<div class="grid_2 alpha" style="width:50px">';n+='<img class="profileImg" style="cursor: pointer" src="image?action=getprofile&amp;u='+selectedTrainees[f].getUid()+'" width='+c+" height="+c+" onclick=\"goToUrl('frontpage?u="+selectedTrainees[f].getUid()+'\');return false"><p style="font-size:10px;"><a href="frontpage?u='+selectedTrainees[f].getUid()+'">'+selectedTrainees[f].getName()+"</a></p>";n+="</div>"}n+="</div>";n+='<div class="line_separator"></div>';n+='<div class="grid_3 alpha" style="">';var g=e.year;var k=e.week;var b="dsad";var h="";var j=h;var l=k;if(l<10){l="0"+l}var m=g+"-"+l;n+='<div id="caldiv" class="dayCalendar" value="'+getCurrentIsoDate()+'" title="'+j+'"><span class="calendarMonth">'+g+'</span><span class="calendarDay">'+k+"</span></div>";n+='<input class="inputdatetime" type="hidden" id="'+b+'" name="'+b+'" value="'+getCurrentIsoDate()+'" onchange="showTraineeWorkouts(this.value);return false;">';n+='<img class="icon" alt="<" src="http://www.trainit.fi/res/img/left.png" onclick="showTraineeWorkouts(\''+e.prevweek+"');\">";n+='<img class="icon" alt="<" src="http://www.trainit.fi/res/img/right.png" onclick="showTraineeWorkouts(\''+e.nextweek+"');\">";n+="</div>";n+='<div class="grid_9 omega">';n+="<button onclick=\"alert('Tämä ominaisuus on toistaiseksi poistettu käytöstä.');return false;\">"+strAddWorkout+"</button>";n+='<button onclick="return false;">'+strImportWorkoutProgram+"</button>";n+='<button onclick="return false;">'+strExportWorkoutProgram+"</button>";n+="</div>";n+='<div style="margin-top:10px;"></div>';if(selectedTrainees.length==1){n+='<div class="grid_12_boxed" style="width:700px">';n+='<div class="grid_6 alpha">';n+="<div>"+strInstructions+"</div>";n+="<textarea id='instruction' name='instruction' class='grid_6_textarea' style='height:60px'></textarea>";n+="</div>";n+='<div class="grid_6 omega">';n+="<div>"+strComments+"</div>";n+="<textarea id='comment' name='comment' class='grid_6_textarea' style='height:60px'></textarea>";n+="</div>";n+='<div class="small_separator"></div>';n+="<div>";n+='<button onclick="saveInstructionsAndComments('+selectedTrainees[0].getUid()+", '"+m+"')\">"+strSave+"</button>";n+="</div>";n+="</div>"}n+='<div class="small_separator"></div>';n+='<div id="calendar" class="grid_12 alpha">';n+='<div class="calendarheaderrow" style="border:none">';n+='<span class="grid_2 alpha calendarheadercell" style="padding-right:0">'+strDate+"</span>";n+='<span class="grid_5 calendarheadercell">'+strPlannedWorkouts+"</span>";n+='<span class="grid_5 omega calendarheadercell">'+strActualWorkouts+"</span>";n+="</div>";n+="</div>";n+="</div>";$(a).html(n);$(".inputdatetime,.inputdate").datepicker({flat:true,dateFormat:"yy-mm-dd",showButtonPanel:true,changeMonth:true,changeYear:true,showWeek:true,firstDay:1,numberOfMonths:1,showOtherMonths:true,selectOtherMonths:true},$.datepicker.regional.fi);$("button").button();if(selectedTrainees.length==1){var d="action=getcomments&u="+selectedTrainees[0].getUid()+"&weekid="+m;$.ajax({type:"post",url:"week",data:d,dataType:"text json",context:document.body,success:function(o){if(o){if(o.getcomments){$("#instruction").val(o.getcomments.instruction);$("#comment").val(o.getcomments.comment)}}}})}}function saveInstructionsAndComments(b,a){var c="action=savecomments&u="+b+"&weekid="+a+"&instruction="+$("#instruction").val()+"&comment="+$("#comment").val();$.ajax({type:"post",url:"week",data:c,dataType:"text json",context:document.body,success:function(d){if(d.result){showInfoDialog(strInstructionsAndCommentsSaved,5000)}else{showErrorDialog(strInstructionsAndCommentsNotSaved,5000)}}})}var strWorkoutLen="270px";function fillWorkoutTable(b,e){if(!ptwoTableInitialized){initWorkoutTable(b,e)}var o="";var j=25;var g=7;for(var f=0;f<g;f++){o+='<div class="calendarrow">';o+='<div class="grid_2 alpha daycell" ';o+=">"+e.days[f].name+" "+e.days[f].date;o+="</div>";o+='<div class="grid_5 workoutcelltp" style="border-left: 1px solid #8080F0;" ';o+='name="day='+e.days[f].sqldate+'&type=50" ';o+=" onclick=\"alert('Tämä ominaisuus on toistaiseksi poistettu käytöstä.');return false;\"";o+=">";var m,p;var c,n,l,h,a;for(m=0;m<e.workouts.length;m++){c=e.workouts[m].id;n=e.workouts[m].parent;l=e.workouts[m].date;h=e.workouts[m].type;a=e.workouts[m].name;var d=e.workouts[m].traineeid;if(l==e.days[f].sqldate){if(h==0){o+='<div class="nonDraggableWorkout" style="width:'+strWorkoutLen+';background-color:white" name="'+c+'" onclick="showWorkout(event,\''+strShowWorkout+"', '', "+c+", '"+l+"',0,1,"+d[0].uid+');return false;">';o+='<img class="workoutProfileImage" src="image?action=getprofile&amp;u='+d[0].uid+'" width='+j+" height="+j+">";o+='<div class="workoutname" style="color:gray">'+a+"</div>";o+="</div>"}else{if(h==50){if(n==0){o+='<div class="draggableWorkout" style="width:'+strWorkoutLen+'" name="'+c+'" ';o+=" onclick=\"alert('Tämä ominaisuus on toistaiseksi poistettu käytöstä.');return false;\">";for(p=0;p<d.length;p++){o+='<img class="workoutProfileImage" src="image?action=getprofile&amp;u='+d[p].uid+'" width='+j+" height="+j+">"}o+='<img style="float:right" class="icon" alt="X" src="http://www.trainit.fi/res/img/16/trash.png" onClick="deletePtWorkout(event,'+c+')" title="'+strRemove+'">';o+='<div class="workoutname" style="vertical-align:top">';o+=a;o+="</div>";o+="</div>"}else{o+='<div class="draggableWorkout" style="width:'+strWorkoutLen+'" name="'+c+'" ';o+=' onclick="showRepeatingWorkout(event, '+c+", "+n+');return false;" >';for(p=0;p<d.length;p++){o+='<img class="workoutProfileImage" src="image?action=getprofile&amp;u='+d[p].uid+'" width='+j+" height="+j+">"}o+='<img style="float:right" class="icon" alt="X" src="http://www.trainit.fi/res/img/16/trash.png" onClick="deletePtWorkout(event,'+c+')" title="'+strRemove+'">';o+='<div class="workoutname" style="vertical-align:top">';o+=a+" (R)";o+="</div>";o+="</div>"}}}}}o+="</div>";o+='<div class="grid_5 omega workoutcellta" style="border-left: 1px solid #8080F0;">';for(m=0;m<e.workouts.length;m++){c=e.workouts[m].id;l=e.workouts[m].date;h=e.workouts[m].type;a=e.workouts[m].name;var k=e.workouts[m].traineeid[0].uid;if(h==1&&l==e.days[f].sqldate){o+='<div class="nonDraggableWorkout" style="width:'+strWorkoutLen+'" name="'+c+'" onclick="showWorkout(event,\''+strShowWorkout+"', '', "+c+", '"+l+"',0,1,"+k+');return false;">';o+='<img class="workoutProfileImage" src="image?action=getprofile&amp;u='+k+'" width='+j+" height="+j+">";o+='<div class="workoutname">'+a+"</div>";o+="</div>"}}o+="</div>";o+="</div>"}for(var q=0;q<e.summary.length;q++){o+='<div class="calendarsummaryrow">';o+='<div class="grid_2 alpha daycell">'+e.summary[q].traineename+"</div>";o+='<div class="grid_5 calendarsummarycell>'+e.summary[q].planned+"</span>";o+='<div class="grid_5 omega calendarsummarycell">'+e.summary[q].actual+"</div>";o+="</div>"}o+='<div style="margin-top:30px;"></div>';$("#calendar").append(o);equalRowHeight(".calendarrow",0,20);$(".draggableWorkout, .calendarrow, .workoutcell, .workoutlink").onselectstart=function(){return false};initDraggables();initDroppables();initCalendars()}function markAsHandled(){var a="action=markashandled&traineelist="+getSelectedTraineesStr();$.ajax({type:"post",url:"pt",data:a,dataType:"text json",context:document.body,success:function(d){if(d){if(d.markashandled){var c=d.markashandled.lasthandled;if(d.markashandled.trainees){for(var b=0;b<d.markashandled.trainees.length;b++){$("#traineeTable tr").each(function(e){var f=$(this).find("td").attr("id");if(f==d.markashandled.trainees[b].traineeid){$(this).find("td.lasthandled").html(getLastHandledStr(1,c))}})}}}}},error:function(b){}})}function markTrainingState(b){var a="action=markstate&state="+b+"&traineelist="+getSelectedTraineesStr();$.ajax({type:"post",url:"pt",data:a,dataType:"text json",context:document.body,success:function(e){if(e){if(e.markstate){var d=e.markstate.state;if(e.markstate.trainees){for(var c=0;c<e.markstate.trainees.length;c++){$("#traineeTable tr").each(function(f){var g=$(this).find("td").attr("id");if(g==e.markstate.trainees[c].traineeid){$(this).find("td.state").html(getTrainingStateStr(d))}})}}}}},error:function(c){}})}function showWorkoutTemplates(){}function initWorkoutTemplatesDialog(){ptwDlgInitialized=true;if(!$("#dialog-addworkout")){alert("Workout dialog not found!");return}var a={};if(editable>0){a[strSave]=function(){submitForm("workoutForm",this)};a[strCancel]=function(){$(this).dialog("close")}}else{a[strClose]=function(){$(this).dialog("close")}}$workoutDialog=$("#dialog-addworkout").dialog({closeOnEscape:false,autoOpen:false,close:deleteMap(),resizable:false,modal:true,overlay:{backgroundColor:"#000000",opacity:0.2},dialogClass:"alert",title:title,minWidth:800,minHeight:400,maxHeight:1000,position:"top",zIndex:10000,buttons:a})}function Trainee(b,a){this.uid=b;this.name=a;this.getUid=function(){return b};this.getName=function(){return a}}function Workout(c,b,a){this.id=c;this.name=b;this.getId=function(){return c};this.getName=function(){return b}}function initShowTrainers(){$("#trainerList").html("");var a="friends";$.ajax({type:"post",url:a,cache:false,data:{action:"mytrainers"},dataType:"text json",context:document.body,success:function(d){var c='<div class="grid_12 alpha common_table">';if(d){if(d.mytrainers){if(d.mytrainers.trainers){if(d.mytrainers.trainers.length>0){c+='<div class="grid_1 alpha common_table_header"></div><div class="grid_3 common_table_header">'+strName+'</div><div class="grid_3 common_table_header">'+strCity+'</div><div class="grid_2 common_table_header">'+strStarted+'</div><div class="grid_3 omega common_table_header">'+strEnds+"</div>"}for(var b=0;b<d.mytrainers.trainers.length;b++){var e=d.mytrainers.trainers[b];c+='<div class="grid_12 alpha common_table_row">';c+='<div class="grid_1 alpha"><img class="profileImg" width="50" height="50" src="image?action=getprofile&u='+e.id+'"></div>';c+='<div class="grid_3"><a href="frontpage?u='+e.id+'">'+e.name+"</a></div>";c+='<div class="grid_3">'+e.city+"</div>";c+='<div class="grid_2">'+e.startdate+"</div>";c+='<div class="grid_3 omega">'+e.enddate+"</div>";c+="</div>"}}}}c+="</div>";$("#trainerList").html(c);$("button").button()}});$("#trainerSearch").html('<div class="grid_4 alpha"><input id="searchkey" class="grid_4_input" type="text"></div><div class="grid_8 omega"><button>'+strSearchTrainer+'</button></div><div id="results" class="grid_12 alpha common_table"></div><div id="dialog-trainerrequest"></div>');$("#trainerSearch").find("button").click(function(){var b="";var c="friends";$.ajax({type:"post",url:c,cache:false,data:{action:"searchtrainer",searchkey:$("#searchkey").val()},dataType:"text json",context:document.body,success:function(e){b+='<div class="large_separator"></div><div class="grid_1 alpha common_table_header"></div><div class="grid_3 common_table_header">'+strName+'</div><div class="grid_4 common_table_header">'+strCity+'</div><div class="grid_4 omega common_table_header"></div>';if(e){if(e.searchtrainer){if(e.searchtrainer.trainers){for(var d=0;d<e.searchtrainer.trainers.length;d++){var f=e.searchtrainer.trainers[d];b+='<div class="grid_12 alpha common_table_row">';b+='<div class="grid_1 alpha"><img class="profileImg" width="25" height="25" src="image?action=getprofile&u='+e.searchtrainer.trainers[d].id+'"></div>';b+='<div class="grid_3"><a href="frontpage?u='+e.searchtrainer.trainers[d].id+'">'+e.searchtrainer.trainers[d].name+"</a></div>";b+='<div class="grid_4">'+f.city+"</div>";b+='<div class="grid_4 omega" style="text-align:right"><button onclick="sendTrainerRequest('+f.id+",'"+f.name+"','"+f.info+"','"+f.city+"','"+f.email+"','"+f.phone+"');\">"+strInviteTrainer+"</button></div>";b+="</div>"}}}}$("#results").html(b);$("#results button").button()}});return false})}function sendTrainerRequest(e,c,g,h,b,a){var d="";d+='<div class="container_16" style="width:580px;">';d+='<div class="grid_10 alpha omega">';d+='<div class="grid_4 alpha"><img class="profileImg" width=200 height=200 src="image?action=getprofile&u='+e+'"></div>';d+='<div class="grid_6 omega">';d+="<h2>"+c+"</h2>";d+="<p>"+g+"</p>";d+='<div class="grid_2 alpha">'+strCity+'</div><div class="grid_4 omega">'+h+"</div>";d+='<div class="grid_2 alpha">'+strEmail+'</div><div class="grid_4 omega">'+b+"</div>";d+='<div class="grid_2 alpha">'+strPhone+'</div><div class="grid_4 omega">'+a+"</div>";d+="</div>";d+="</div>";d+='<div class="large_line_separator"></div>';d+='<div class="grid_2 alpha"></div>';d+='<div class="grid_8 omega">';d+="<div>"+strTrainerRequestHelp+"</div>";d+='<div class="large_separator"></div>';d+='<form id="trainerRequestForm">';d+='<div class="grid_2 alpha"><label style="font-weight:bold">'+strName+'*:</label></div><div class="grid_6 omega"><input class="grid_6_input" name="name" type="text"></div>';d+='<div class="small_separator"></div>';d+='<div class="grid_2 alpha"><label style="font-weight:bold">'+strEmail+'*:</label></div><div class="grid_6 omega"><input class="grid_6_input" name="email" type="text"></div>';d+='<div class="small_separator"></div>';d+='<div class="grid_2 alpha"><label style="font-weight:bold">'+strPhone+'*:</label></div><div class="grid_6 omega"><input class="grid_6_input" name="phone" type="text"></div>';d+='<div class="small_separator"></div>';d+='<div class="grid_2 alpha"><label>'+strCity+':</label></div><div class="grid_6 omega"><input class="grid_6_input" name="city" type="text"></div>';d+='<div class="small_separator"></div>';d+='<div class="grid_2 alpha"><label>'+strMessage+':</label></div><div class="grid_6 omega"><textarea class="grid_6_textarea" style="height:100px" name="message"></textarea></div>';d+="</form>";d+="</div>";d+="</div>";$("#dialog-trainerrequest").html(d);$("#dialog-trainerrequest .inputdate").datepicker({flat:true,minDate:0,dateFormat:"yy-mm-dd",showButtonPanel:true,changeMonth:true,changeYear:true,showWeek:true,firstDay:1,numberOfMonths:1,showOtherMonths:true,selectOtherMonths:true},$.datepicker.regional.fi);validatePtRequest();var f={};f[strSend]=function(){sendPtRequest(e);$(this).dialog("close")};f[strCancel]=function(){$(this).dialog("close")};$("#dialog-trainerrequest").dialog({resizable:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},dialogClass:"alert",title:strInviteTrainer,minWidth:620,zIndex:2,buttons:f})}function validatePtRequest(){$("#trainerRequestForm").validate({submitHandler:function(a){a.submit()},rules:{name:{required:true,minlength:5},email:{required:true,email:true},phone:{required:true,minlength:5}}})}function sendPtRequest(a){var b="action=saveptrequest&trainerid="+a;$("#dialog-trainerrequest input:text, #dialog-trainerrequest input:hidden, #dialog-trainerrequest textarea, #dialog-trainerrequest select").each(function(c){b+="&"+$(this).attr("name")+"="+$(this).val()});$("#dialog-trainerrequest input:checkbox").each(function(c){if($(this).attr("checked")){b+="&"+$(this).attr("name")+"="+$(this).val()}});$.ajax({type:"post",url:"friends",data:b,dataType:"text json",context:document.body,success:function(c){showInfoDialog(strMessageSent,"",10000)},error:function(c){showErrorDialog(strWorkoutSaveFailed,"",20000)}})}trainit.PtClient=function(){};trainit.PtClient.getPtClients=function(){$("#newrequests").append("<div class=\"medium_separator\"></div><div class='grid_2 alpha common_table_header'>"+strDate+"</div><div class='grid_4 common_table_header'>"+strSender+"</div><div class='grid_6 common_table_header'>"+strMessage+"</div></div>");$("#currentgroups").append("<div class=\"medium_separator\"></div><div class='grid_4 alpha common_table_header'>"+strName+"</div><div class='grid_2 common_table_header'>"+strStartDate+"</div><div class='grid_2 common_table_header'>"+strEndDate+"</div><div class='grid_4 omega common_table_header'>"+strCoachingTimeLeft+"</div>");$("#currentclients").append("<div class=\"medium_separator\"></div><div class='grid_4 alpha common_table_header'>"+strName+"</div><div class='grid_2 common_table_header'>"+strStartDate+"</div><div class='grid_2 common_table_header'>"+strEndDate+"</div><div class='grid_4 omega common_table_header'>"+strCoachingTimeLeft+"</div>");$("#oldclients").append("<div class=\"medium_separator\"></div><div class='grid_4 alpha common_table_header'>"+strName+"</div><div class='grid_2 common_table_header'>"+strStartDate+"</div><div class='grid_2 common_table_header'>"+strEndDate+"</div><div class='grid_4 omega common_table_header'>"+strCoachingTimeLeft+"</div>");var a="ptclients?action=getclients";$.ajax({url:a,cache:false,dataType:"text json",context:document.body,success:function(g){try{var d,c,j;for(d=0;d<g.getclients.currentgroups.length;d++){c=g.getclients.currentgroups[d];j='<div class="grid_12 alpha common_table_row"><div class="grid_4 alpha"><a href="group?action=show&groupid='+c.gid+'"><img style="float:left;margin-right:10px" src="'+c.img+'" width=25 height=25></a><a href="group?action=show&groupid='+c.gid+'">'+c.name+'</a></div><div class="grid_2">'+c.startdate+'</div><div class="grid_2">'+c.enddate+"</div>";if(c.coachtimeleft<7){j+='<div class="grid_2" style="color:red;font-weight:bold">'+c.coachtimeleft+" "+strDays+" !</div>"}else{if(c.coachtimeleft<14){j+='<div class="grid_2" style="color:#DD7500;font-weight:bold">'+c.coachtimeleft+" "+strDays+"</div>"}else{j+='<div class="grid_2">'+c.coachtimeleft+" "+strDays+"</div>"}}j+='<div class="grid_2 omega"><button onclick="goToUrl(\'ptclients?action=showbuymoretime&groupid='+c.gid+"')\">"+strBuyMore+"</button></div></div>";$("#currentgroups").append(j)}for(d=0;d<g.getclients.currentclients.length;d++){c=g.getclients.currentclients[d];j='<div class="grid_12 alpha common_table_row"><div class="grid_4 alpha"><a style="vertical-align:top" href="frontpage?u='+c.uid+'"><img class="profileImg" src="image?action=getprofile&u='+c.uid+'" width=25 height=25></a> <a style="vertical-align:top" href="frontpage?u='+c.uid+'">'+c.name+'</a></div><div class="grid_2">'+c.startdate+'</div><div class="grid_2">'+c.enddate+"</div>";if(c.coachtimeleft<7){j+='<div class="grid_2" style="color:red;font-weight:bold">'+c.coachtimeleft+" "+strDays+" !</div>"}else{if(c.coachtimeleft<14){j+='<div class="grid_2" style="color:#DD7500;font-weight:bold">'+c.coachtimeleft+" "+strDays+"</div>"}else{j+='<div class="grid_2">'+c.coachtimeleft+" "+strDays+"</div>"}}j+='<div class="grid_2 omega"><button onclick="goToUrl(\'ptclients?action=showbuymoretime&userid='+c.uid+"')\">"+strBuyMore+"</button></div></div>";$("#currentclients").append(j)}for(d=0;d<g.getclients.newclients.length;d++){c=g.getclients.newclients[d];var f=c.message;if(f){if(f.length>100){f=f.substring(0,97)+"..."}}$("#newrequests").append('<div class="grid_12 alpha common_table_row" style="cursor:pointer" onclick="goToUrl(\'ptclients?action=showrequest&id='+c.id+'\');return false;"><div class="grid_2 alpha">'+c.created+'</div><div class="grid_4"><a href="frontpage?u='+c.uid+'"><img class="profileImg" style="float:left;margin-right:10px" src="image?action=getprofile&u='+c.uid+'" width=25 height=25></a> <a style="vertical-align:top" href="frontpage?u='+c.uid+'">'+c.name+'</a></div><div class="grid_6 omega">'+f+"</div></div></div>")}var b=[];for(d=0;d<g.getclients.oldclients.length;d++){c=g.getclients.oldclients[d];$("#oldclients").append('<div class="grid_12 alpha common_table_row"><div class="grid_4 alpha"><a style="vertical-align:top" href="frontpage?u='+c.uid+'"><img class="profileImg" src="image?action=getprofile&u='+c.uid+'" width=25 height=25></a> <a style="vertical-align:top" href="frontpage?u='+c.uid+'">'+c.name+'</a></div><div class="grid_2">'+c.startdate+'</div><div class="grid_2">'+c.enddate+'</div><div class="grid_2">0 '+strDays+'</div><div class="grid_2 omega"><button onclick="goToUrl(\'ptclients?action=showbuymoretime&userid='+c.uid+"')\">"+strBuyMore+"</button></div></div>")}}catch(h){console.log(h.tostring())}}})};trainit.PtClient.deleteRequest=function(a,c){var b="ptclients?action=deleterequest&id="+c;$.ajax({url:b,cache:false,dataType:"text json",context:document.body,success:function(d){if(d.deleterequest.result=="true"){$(a).closest(".common_table_row").remove()}}})};trainit.PtClient.showPtClients=function(){};function PtClient(g,f,h,e,a,d,c,b){this.uid=g;this.name=f;this.group=h;this.startdate=e;this.enddate=a;this.email=d;this.phone=c;this.address=b;this.getUid=function(){return g};this.getName=function(){return f};this.getGroup=function(){return h};this.getStartdate=function(){return e};this.getEnddate=function(){return a};this.getEmail=function(){return d};this.getPhone=function(){return c};this.getAddress=function(){return b}}function getPtClients(){var a="ptclients?action=getclients";$.ajax({url:a,cache:false,dataType:"text json",context:document.body,success:function(g){if(g.getclients){if(g.getclients.currentclients){var c=new Array();for(var e=0;e<g.getclients.currentclients.length;e++){var d=g.getclients.currentclients[e];c.push(new PtClient(d.uid,d.name,d.group,d.startdate,d.enddate,d.email,d.phone,d.address))}}if(g.getclients.newclients){var f=new Array();for(var e=0;e<g.getclients.newclients.length;e++){var d=g.getclients.newclients[e];f.push(new PtClient(d.uid,d.name,d.group,d.startdate,d.enddate,d.email,d.phone,d.address))}}if(g.getclients.oldclients){var b=new Array();for(var e=0;e<g.getclients.oldClients.length;e++){var d=g.getclients.oldClients[e];b.push(new PtClient(d.uid,d.name,d.group,d.startdate,d.enddate,d.email,d.phone,d.address))}}}}})}var workoutDialog;var ptwDlgInitialized;function initWorkoutDialog(c,a){ptwDlgInitialized=true;if(!$("#dialog-addworkout")){alert("Workout dialog not found!");return}var b={};if(a>0){b[strSave]=function(){submitForm("workoutForm",this)};b[strCancel]=function(){$(this).dialog("close")}}else{b[strClose]=function(){$(this).dialog("close")}}$workoutDialog=$("#dialog-addworkout").dialog({closeOnEscape:false,autoOpen:false,close:deleteMap(),resizable:false,modal:true,overlay:{backgroundColor:"#000000",opacity:0.2},dialogClass:"alert",title:c,minWidth:800,minHeight:400,maxHeight:1000,position:"top",zIndex:10000,buttons:b})}function showWorkout(a,j,g,d,h,b,f,e){stopPropagation(a);var c="pt?action=getwodlg&type=1&addform=1&day="+h;if(d){c+="&wid="+d}if(e){c+="&u="+e}$.ajax({url:c,context:document.body,success:function(k){$("#ptdiv").hide();$("#ptworkoutdiv").html('<div class="container_16" style="width:760px">'+k+'<div class="grid_12_boxed buttonDiv"><button onclick="hideWorkout()">'+strCancel+"</button></div></div>");$(".inputdatetime,.inputdate").datepicker({flat:true,dateFormat:"yy-mm-dd",showButtonPanel:true,changeMonth:true,changeYear:true,showWeek:true,firstDay:1,numberOfMonths:1,showOtherMonths:true,selectOtherMonths:true},$.datepicker.regional.fi);$("button, input:submit").button();$("#ptworkoutdiv").show();$("html").animate({scrollTop:0},"fast");$("body").animate({scrollTop:0},"fast")}})}function hideWorkout(){$("#ptworkoutdiv").hide();$("#ptdiv").show()}function showWorkout_DLG(a,j,g,d,h,b,f,e){if(ptwDlgInitialized==undefined){initWorkoutDialog(j,b)}stopPropagation(a);if(f==1){createCookie("workoutAddMode","simple",7)}else{if(f==2){createCookie("workoutAddMode","extended",7);goToUrl("workout?day="+h+"&type=1");return}else{if(readCookie("workoutAddMode")=="extended"){goToUrl("workout?day="+h+"&type=1");return}}}var c="pt?action=getwodlg&type=1&addform=1&day="+h;if(d){c+="&wid="+d}if(e){c+="&u="+e}$.ajax({url:c,context:document.body,success:function(k){$workoutDialog.dialog("option","title",j);$workoutDialog.dialog("open");$workoutDialog.empty();$workoutDialog.html('<div class="container_16" style="width:760px">'+k+"</div>");$(".inputdatetime,.inputdate").datepicker({flat:true,dateFormat:"yy-mm-dd",showButtonPanel:true,changeMonth:true,changeYear:true,showWeek:true,firstDay:1,numberOfMonths:1,showOtherMonths:true,selectOtherMonths:true},$.datepicker.regional.fi);$("button, input:submit").button()}});return false}var ptWorkoutDialog;var workoutTrainees=[];function initPtWorkoutDialog(b){if(!$("#dialog-addptworkout")){alert("PT workout dialog not found!");return}var a={};a[strSave]=function(){savePtWorkout();$(this).dialog("close")};a[strCancel]=function(){$(this).dialog("close")};$ptWorkoutDialog=$("#dialog-addptworkout").dialog({closeOnEscape:false,autoOpen:false,resizable:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},dialogClass:"alert",title:b,minWidth:800,position:"top",zIndex:10000,buttons:a})}function addPtWorkout(c,d,f,a){stopPropagation(c);if(!a){a=getCurrentIsoDate()}var b="pt?action=getwodlg&type=50&addform=0&day="+a;if(f){b+="&wid="+f}$.ajax({url:b,cache:false,context:document.body,success:function(g){$("#ptdiv").hide();var e='<div class="grid_12_boxed traineeList" id="selectedWorkoutTrainees"></div>';$("#ptworkoutdiv").html('<div class="container_16" style="width:760px">'+e+'<div id="'+woadlgid+'">'+g+'</div><div class="grid_12_boxed buttonDiv"><button onclick="savePtWorkout();hideWorkout();">'+strSave+'</button><button onclick="hideWorkout()">'+strCancel+"</button></div></div>");$(".inputdatetime,.inputdate").datepicker({flat:true,dateFormat:"yy-mm-dd",showButtonPanel:true,changeMonth:true,changeYear:true,showWeek:true,firstDay:1,numberOfMonths:1,showOtherMonths:true,selectOtherMonths:true},$.datepicker.regional.fi);$("button, input:submit").button();$("#ptworkoutdiv").show();$("html").animate({scrollTop:0},"fast");$("body").animate({scrollTop:0},"fast");initWorkoutTrainees(f)}});return false}var woadlgid;function addPtWorkout_DLG(c,d,f,a){stopPropagation(c);if(!a){a=getCurrentIsoDate()}var b="pt?action=getwodlg&type=50&addform=0&day="+a;if(f){b+="&wid="+f}$.ajax({url:b,cache:false,context:document.body,success:function(h){$ptWorkoutDialog.dialog("option","title",d);$ptWorkoutDialog.dialog("open");var g=new Date().getTime();woadlgid="woa"+g;$ptWorkoutDialog.empty();var e='<div class="grid_12_boxed traineeList" id="selectedWorkoutTrainees"></div>';$ptWorkoutDialog.html('<div class="container_16" style="width:760px">'+e+'<div id="'+woadlgid+'">'+h+"</div></div>");initWorkoutTrainees(f);$("#dialog-addptworkout .inputdatetime, #dialog-addptworkout .inputdate").datepicker({flat:true,dateFormat:"yy-mm-dd",showButtonPanel:true,changeMonth:true,changeYear:true,showWeek:true,firstDay:1,numberOfMonths:1,showOtherMonths:true,selectOtherMonths:true},$.datepicker.regional.fi)}});return false}function setSelectImgHandler(){$(".traineeList img").unbind("click");$(".traineeListEditable img").click(function(){if($(this).hasClass("traineeSelected")){$(this).removeClass("traineeSelected")}else{$(this).addClass("traineeSelected")}})}function initWorkoutTrainees(a){if(a>0){var c="pt?action=getwotrainees&id="+a;$.ajax({url:c,cache:false,dataType:"text json",context:document.body,success:function(g){if(g.getwotrainees){workoutTrainees=[];for(var f=0;f<g.getwotrainees.trainees.length;f++){var d=g.getwotrainees.trainees[f];var h=d.uid;var e="";workoutTrainees.push(new Trainee(h,e))}}showWorkoutTrainees()}});showWorkoutTrainees()}else{a=0;workoutTrainees=[];for(var b=0;b<selectedTrainees.length;b++){workoutTrainees.push(selectedTrainees[b])}showWorkoutTrainees()}}function showWorkoutTrainees(){var d="";d+='<div class="traineeListHeader" id="traineeListNoEdit">Harjoitukseen osallistuvat valmennettavat';d+='<a id="showSelectedBtn" style="color:blue;margin-left:20px" type="button" href="" onclick="toggleShowAllWorkoutTrainees();return false;">'+strEdit+"</a>";d+="</div>";d+='<div class="traineeListHeader" id="traineeListEdit" style="display:none">Valitse harjoitukseen osallistuvat valmennettavat</div>';for(var b=0;b<allTrainees.length;b++){var c=false;for(var a=0;a<workoutTrainees.length;a++){if(allTrainees[b].getUid()==workoutTrainees[a].getUid()){c=true;break}}if(c){d+='<img class="profileImg" class="traineeSelected" id="'+allTrainees[b].getUid()+'" title="'+allTrainees[b].getName()+'" src="image?action=getprofile&amp;u='+allTrainees[b].getUid()+'" width=50 height=50>'}else{d+='<img class="profileImg" id="'+allTrainees[b].getUid()+'" title="'+allTrainees[b].getName()+'" src="image?action=getprofile&amp;u='+allTrainees[b].getUid()+'" width=50 height=50>'}}d+="<div>";d+='<button id="showOrAllBtn" style="display:none" type="button" onclick="toggleShowAllWorkoutTrainees();return false;">'+strOK+"</button>";d+='<a id="selectAll" style="margin-left:20px;display:none" href="" onclick="selectAllTrainees();return false;">'+strSelectAll+"</a> ";d+='<a id="selectNone" style="margin-left:20px;display:none" href="" onclick="unselectAllTrainees();return false;">'+strUnselectAll+"</a>";d+="</div>";$("#selectedWorkoutTrainees").html(d);setSelectImgHandler();$("button").button();$(".traineeSelected").css("display","inline-block")}function toggleShowAllWorkoutTrainees(){if($("#selectedWorkoutTrainees").hasClass("traineeListEditable")){$("#selectedWorkoutTrainees").removeClass("traineeListEditable");$("#selectedWorkoutTrainees img[class!=traineeSelected]").fadeOut(350)}else{$("#selectedWorkoutTrainees").addClass("traineeListEditable");$("#selectedWorkoutTrainees img[class!=traineeSelected]").fadeIn(350)}$("#showOrAllBtn, #selectAll, #selectNone, #traineeListNoEdit, #traineeListEdit").toggle();setSelectImgHandler()}function selectAllTrainees(){$("#selectedWorkoutTrainees img").each(function(){if(!$(this).hasClass("traineeSelected")){$(this).addClass("traineeSelected")}})}function unselectAllTrainees(){$("#selectedWorkoutTrainees img").each(function(){if($(this).hasClass("traineeSelected")){$(this).removeClass("traineeSelected")}})}function getWorkoutTraineesStr(){var b="";var a=0;$("#selectedWorkoutTrainees img").each(function(){if($(this).hasClass("traineeSelected")){if(a>0){b+=";"}var c=$(this).attr("id");b+=c;a++}});return b}function savePtWorkout(){var a="action=saveworkout&traineelist="+getWorkoutTraineesStr();$("#"+woadlgid+" input:text, #"+woadlgid+" input:hidden, #"+woadlgid+" textarea, #"+woadlgid+" select").each(function(b){a+="&"+$(this).attr("name")+"="+$(this).val()});$("#"+woadlgid+" input:checkbox").each(function(b){if($(this).attr("checked")){a+="&"+$(this).attr("name")+"="+$(this).val()}});$.ajax({type:"post",url:"pt",data:a,dataType:"text json",context:document.body,success:function(b){showInfoDialog(strWorkoutSaved,"",10000);showTraineeWorkouts()},error:function(b){showErrorDialog(strWorkoutSaveFailed,"",20000)}})}function deletePtWorkout(b,a){stopPropagation(b);return showConfirmDialogAndExecFunc(strConfirmRemoveWorkout,"",function(){var c="action=deleteworkout&id="+a;$.ajax({type:"post",url:"pt",data:c,dataType:"text json",context:document.body,success:function(d){showInfoDialog(strWorkoutDeleted,"",10000);showTraineeWorkouts()},error:function(d){showErrorDialog(strWorkoutDeleteFailed,"",20000)}})})}trainit.EditableText=function(){};trainit.EditableText.startEdit=function(a){var b=$(a).prev().val();console.log("1 str="+b);b=b.replace(/<br>/ig,"\n");console.log("2 str="+b);$(a).prev().val(b);$(a).hide();$(a).prev().prev().hide();$(a).prev().show();$(a).prev().focus()};trainit.EditableText.stopEdit=function(a){trainit.EditableText.change(a);$(a).val($(a).prev().html());$(a).hide();$(a).prev().show();$(a).next().show()};trainit.EditableText.change=function(a){var b=$(a).val();b=b.replace(/<br>/ig,"\n");b=b.replace(/[^a-zåäö0-9_\-\!\? .,;'()=\/\\\n]/ig,"_");b=b.replace(/\n/ig,"<br>");$(a).prev().html(b)};trainit.WorkoutPlan=function(){};trainit.WorkoutPlan.READ_ONLY=false;trainit.WorkoutPlan.CHANGED=false;trainit.WorkoutPlan.langCode="en";trainit.WorkoutPlan.init=function(b,a){trainit.WorkoutPlan.langCode=b;if(a){trainit.WorkoutPlan.READ_ONLY=a}trainit.WorkoutPlan.getSports();trainit.WorkoutPlan.getQualities();$("#workoutPlanDiv").droppable({accept:".wpProject",tolerance:"pointer",hoverClass:"wpDroppableSpace",drop:function(d,e){var c=$(e.helper).data("json");if(trainit.WorkoutPlan.CHANGED){trainit.WorkoutPlan.CHANGED=true;showYesNoCancelDialogAndExecFunc(strSaveCurrentWorkoutPlanQuestion,"",function(){trainit.WorkoutPlan.save();trainit.WorkoutPlan.askForEditOrCopy(c)},function(){trainit.WorkoutPlan.askForEditOrCopy(c)})}else{trainit.WorkoutPlan.CHANGED=true;trainit.WorkoutPlan.askForEditOrCopy(c)}}});$(".inputdatetime,.inputdate").livequery(function(){$(this).datepicker({flat:true,dateFormat:"yy-mm-dd",showButtonPanel:true,changeMonth:true,changeYear:true,showWeek:true,firstDay:1,numberOfMonths:1,showOtherMonths:true,selectOtherMonths:true},$.datepicker.regional.fi);return false});trainit.WpWorkout.initWpWorkoutDialog("dlg");trainit.WpTraineeGroupSelectDlg.initTraineeGroupSelectDialog("Trainees and groups")};trainit.WorkoutPlan.askForEditOrCopy=function(a){showSelectDialogAndExecFunc(strOpenProjectForEditOrCreateCopy,"",strOpenProjectForEdit,strCreateCopyFromProject,function(){trainit.WorkoutPlan.edit(a)},function(){trainit.WorkoutPlan.copyAndSave(a)})};trainit.WorkoutPlan.edit=function(a){$("#workoutPlanDiv").empty();$("#workoutPlanDiv").html('<div class="pageAjaxLoader"><span style="text-align:center;">'+strLoadingProject+"</span></div>");var b="trainingplan?action=getprojects&showtree=1&id="+a.wpproject.id;$.ajax({url:b,cache:false,dataType:"text json",success:function(c){$("#workoutPlanDiv").html(trainit.WpProject.toDOM(c.wpprojects[0],true,false,false));trainit.WorkoutPlan.reIndexComponents()}})};trainit.WorkoutPlan.copyAndSave=function(a){$("#workoutPlanDiv").empty();$("#workoutPlanDiv").html('<div class="pageAjaxLoader"><span style="text-align:center;">'+strLoadingProject+"</span></div>");var b="trainingplan?action=getprojects&showtree=1&id="+a.wpproject.id;$.ajax({url:b,cache:false,dataType:"text json",success:function(c){$("#workoutPlanDiv").html(trainit.WpProject.toDOM(c.wpprojects[0],true,true,false));trainit.WorkoutPlan.reIndexComponents()}})};trainit.WorkoutPlan.open=function(c){$("#workoutPlanDiv").empty();if(c<1){var a=getSqlFormatDate(new Date());$("#workoutPlanDiv").html(trainit.WpProject.toDOM(jQuery.parseJSON('{"wpproject": {"id":"0","name":"","desc":"","startdate":"'+a+'","wpseasons":[]}}'),true,false,true));trainit.WorkoutPlan.reIndexComponents();return}var b="trainingplan?action=getprojects&showtree=1&id="+c;$.ajax({url:b,cache:false,dataType:"text json",success:function(d){$("#workoutPlanDiv").html(trainit.WpProject.toDOM(d.wpprojects[0],true,false,false));trainit.WorkoutPlan.reIndexComponents()}})};trainit.WorkoutPlan.save=function(a){if(trainit.WorkoutPlan.READ_ONLY){return}var b=trainit.WpProject.toJSON(a);$("#workoutPlanDiv").empty();$("#workoutPlanDiv").html('<div class="pageAjaxLoader"><span style="text-align:center;">'+strSavingProject+"</span></div>");var c="trainingplan";console.log("json size="+b.length);console.log(b);$.ajax({url:c,type:"POST",cache:false,data:{action:"saveproject",wpproject:b},dataType:"text json",success:function(d){if(d){$("#workoutPlanDiv").html(trainit.WpProject.toDOM(d.wpprojects[0],true,false,true));trainit.WorkoutPlan.reIndexComponents();trainit.WpTemplate.search()}}})};trainit.WorkoutPlan.removeElement=function(d){var a;var b=$(d).closest(".wpElement");var f=0;var c=null;if($(b).hasClass("wpProject")){f=$(b).find(".projectIdField").val();c="trainingplan?action=deleteproject&id="+f;a=strConfirmRemoveWpProject}else{if($(b).hasClass("wpSeason")){f=$(b).find(".seasonIdField").val();c="trainingplan?action=deleteseason&id="+f;a=strConfirmRemoveWpSeason}else{if($(b).hasClass("wpPeriod")){f=$(b).find(".periodIdField").val();c="trainingplan?action=deleteperiod&id="+f;a=strConfirmRemoveWpPeriod}else{if($(b).hasClass("wpWeek")){f=$(b).find(".weekIdField").val();c="trainingplan?action=deleteweek&id="+f;a=strConfirmRemoveWpWeek}else{if($(b).hasClass("wpWorkout")){var e=$(b).data("json");f=e.wpworkout.id;console.log("workoutJson: "+JSON.stringify(e)+", ID="+f);c="trainingplan?action=deleteworkout&id="+f;console.log("removing workout: "+f);a=strConfirmRemoveWpWorkout}else{if($(b).hasClass("wpSubWorkout")){f=$(b).children(".subworkoutid").val();console.log("ID="+f);c="trainingplan?action=deletesubworkout&id="+f;console.log("removing sub workout: "+f);a=strConfirmRemoveWpSubWorkout}}}}}}return showConfirmDialogAndExecFunc(a,"",function(){$.ajax({url:c,cache:false,dataType:"text json",success:function(g){$(b).remove();trainit.WpTemplate.search();trainit.WorkoutPlan.reIndexComponents()}})})};trainit.WorkoutPlan.replaceNewlineFromJson=function(a){var b=a.replace(/\r\n/gi,"\n");b=b.replace(/\r/gi,"\n");b=b.replace(/\n/gi," ");return b};trainit.WorkoutPlan.reIndexComponents=function(){try{var q=0;var n=0;var d=0;var o="";var f="";var g="";var l=$("#projectStartDate").val();var b=getDate(l);var k=0;var a=getSqlFormatDate(b)+" - ";var p=0;var m=0;var c=[];var h=[];$(".wpProject .wpSeason").each(function(v){var t=getSqlFormatDate(b)+" - ";var s=0;var y=$(this).children(".wpContent").children(".wpChildList");o="wps"+q;$(this).attr("id",o);$(this).data("childindex",q);$(this).data("startdate",getSqlFormatDate(b));q++;var r=0;var u=0;var e=[];var z=[];$(this).find(".wpPeriod").each(function(F){var B=getSqlFormatDate(b)+" - ";var D=0;var E=$(this).children(".wpContent").children(".wpChildList");f=o+"_wpp"+n;$(this).attr("id",f);$(this).data("childindex",n);$(this).data("startdate",getSqlFormatDate(b));n++;var A=0;var C=0;var H=[];var I=[];$(this).find(".wpWeek").each(function(O){var Q=getSqlFormatDate(b)+" - ";b.setDate(b.getDate()+3);var R=strWeek+" "+b.getWeek(1)+"/"+b.getFullYear();b.setDate(b.getDate()-3);var J=$(this).children(".wpContent").children(".wpChildList");g=f+"_wpw"+d;$(this).attr("id",g);$(this).data("childindex",d);$(this).data("startdate",getSqlFormatDate(b));d++;$(this).find(".wpDayCell").each(function(S){var T=b.getDay()-1;if(T<0){T=6}var U=dayArrayShort[T];sqlDay=getSqlFormatDate(b);$(this).html(U+" "+sqlDay);if(S<6){b.setDate(b.getDate()+1)}});var N=0;var K=0;var L=[];var M=[];$(this).find(".wpWorkoutCell").each(function(S){b.setDate(b.getDate()+(S-6));$(this).find(".wpWorkout").each(function(T){var U=$(this).data("json");U.wpworkout.childindex=T;console.log("curDate="+b);U.wpworkout.startdate=getSqlFormatDate(b);U.wpworkout.dayindex=S;for(var W=0;W<U.wpworkout.wpsubworkouts.length;W++){var V=U.wpworkout.wpsubworkouts[W].wpsubworkout;N+=V.duration*1;K+=V.length*1;if(isNaN(M[V.qualityid])){M[V.qualityid]=V.duration*1}else{M[V.qualityid]+=V.duration*1}if(isNaN(L[V.sportid])){L[V.sportid]=V.duration*1}else{L[V.sportid]+=V.duration*1}}});b.setDate(b.getDate()-(S-6))});trainit.WorkoutPlan.setSummary(this,N,M,L);for(var P=0;P<M.length;P++){if(!isNaN(M[P])){if(isNaN(I[P])){I[P]=M[P]}else{I[P]+=M[P]}}}for(P=0;P<L.length;P++){if(!isNaN(L[P])){if(isNaN(H[P])){H[P]=L[P]}else{H[P]+=L[P]}}}A+=N;C+=K;Q+=getSqlFormatDate(b);$(this).children(".wpHeader").find(".dateRange").html(R+" ("+Q+")");$(this).data("enddate",getSqlFormatDate(b));b.setDate(b.getDate()+1);D+=7});trainit.WorkoutPlan.setSummary(this,A,I,H);for(var G=0;G<I.length;G++){if(!isNaN(I[G])){if(isNaN(z[G])){z[G]=I[G]}else{z[G]+=I[G]}}}for(G=0;G<H.length;G++){if(!isNaN(H[G])){if(isNaN(e[G])){e[G]=H[G]}else{e[G]+=H[G]}}}r+=A;u+=C;if(D>0){b.setDate(b.getDate()-1)}B+=getSqlFormatDate(b);$(this).children(".wpHeader").find(".dateRange").html(B+" ("+(D/7)+" "+strWeeks+")");$(this).data("enddate",getSqlFormatDate(b));if(D>0){b.setDate(b.getDate()+1)}s+=D});trainit.WorkoutPlan.setSummary(this,r,z,e);for(var w=0;w<z.length;w++){if(!isNaN(z[w])){if(isNaN(h[w])){h[w]=z[w]}else{h[w]+=z[w]}}}for(w=0;w<e.length;w++){if(!isNaN(e[w])){if(isNaN(c[w])){c[w]=e[w]}else{c[w]+=e[w]}}}p+=r;m+=u;if(s>0){b.setDate(b.getDate()-1)}t+=getSqlFormatDate(b);$(this).children(".wpHeader").find(".dateRange").html(t+" ("+(s/7)+" "+strWeeks+")");$(this).data("enddate",getSqlFormatDate(b));if(s>0){b.setDate(b.getDate()+1)}k+=s});trainit.WorkoutPlan.setSummary($(".wpProject"),p,h,c);if(k>0){b.setDate(b.getDate()-1)}a+=getSqlFormatDate(b);$("#projectEndDate").html(getSqlFormatDate(b));$("#projectDuration").html((k/7)+" "+strWeeks);$(".wpProject").data("enddate",getSqlFormatDate(b));initCalendars()}catch(j){}};trainit.WpNameValue=function(a,b){this.name=a;this.value=b};trainit.WorkoutPlan.sortNameValue=function(e,d){var f=e.value;var c=d.value;return c-f};trainit.WorkoutPlan.setSummary=function(k,b,c,d){var e=0;var l=[];for(var a=0;a<c.length;a++){if(!isNaN(c[a])){l[e]=new trainit.WpNameValue(trainit.WorkoutPlan.qualityList[a],c[a]);e++}}l.sort(trainit.WorkoutPlan.sortNameValue);e=0;var m=[];for(a=0;a<d.length;a++){if(!isNaN(d[a])){m[e]=new trainit.WpNameValue(trainit.WorkoutPlan.sportList[a],d[a]);e++}}m.sort(trainit.WorkoutPlan.sortNameValue);var h=$(k).children(".wpContent").children(".wpData").find(".total");$(h).find(".wpSummaryDuration").html(trainit.WorkoutPlan.secondsToShortHhMmSs(b));var g=$(k).children(".wpContent").children(".wpData").find(".summaryToggle");$(g).find(".wpTitleSummary").html(trainit.WorkoutPlan.secondsToShortHhMmSs(b));var f;var j;var h=$(k).children(".wpContent").children(".wpData").find(".by_quality");$(h).empty();for(a=0;a<l.length;a++){f=100*l[a].value/b;f=f.toFixed(1);j=trainit.WorkoutPlan.secondsToShortHhMmSs(l[a].value);$(h).append('<div><div class="wpSummaryTitle">'+l[a].name+'</div><div class="wpSummaryDuration">'+j+'</div><div class="wpSummaryPercent">'+f+"%</div></div>")}h=$(k).children(".wpContent").children(".wpData").find(".by_sport");$(h).empty();for(a=0;a<m.length;a++){f=100*m[a].value/b;f=f.toFixed(1);j=trainit.WorkoutPlan.secondsToShortHhMmSs(m[a].value);$(h).append('<div><div class="wpSummaryTitle">'+m[a].name+'</div><div class="wpSummaryDuration">'+j+'</div><div class="wpSummaryPercent">'+f+"%</div></div>")}};trainit.WorkoutPlan.sportList=[];trainit.WorkoutPlan.getSports=function(){var a="/rest/sports?lang="+trainit.WorkoutPlan.langCode;$.ajax({url:a,cache:false,dataType:"text json",success:function(c){for(var b=0;b<c.sports.length;b++){trainit.WorkoutPlan.sportList[c.sports[b].sport.id]=c.sports[b].sport.name}}})};trainit.WorkoutPlan.qualityList=[];trainit.WorkoutPlan.getQualities=function(){var a="/rest/qualities?lang="+trainit.WorkoutPlan.langCode;$.ajax({url:a,cache:false,dataType:"text json",success:function(c){for(var b=0;b<c.qualities.length;b++){trainit.WorkoutPlan.qualityList[c.qualities[b].quality.id]=c.qualities[b].quality.name}}})};trainit.WorkoutPlan.showHideTree=function(a,d){var b=$(a).closest(".wpHeader");var c=$(b).next();if(d==1){c.hide()}else{if(d==2){c.show()}else{c.toggle()}}if($(c).is(":hidden")){$(a).attr("src","/res/img/24/arrowright.png");if(!trainit.WorkoutPlan.READ_ONLY){$(b).find(".wpHeaderTitleEdit").hide();$(b).find(".wpHeaderTitle").show()}$(b).closest(".wpElement").removeClass("notSortable")}else{$(a).attr("src","/res/img/24/arrowdown.png");if(!trainit.WorkoutPlan.READ_ONLY){$(b).find(".wpHeaderTitleEdit").show();$(b).find(".wpHeaderTitle").hide()}$(b).closest(".wpElement").addClass("notSortable")}};trainit.WorkoutPlan.moveUp=function(a,d){var b=$(a).closest("."+d);var e=$(b).prev("."+d);if(e.hasClass(d)){var f=$(b).detach();$(e).before(f);trainit.WorkoutPlan.reIndexComponents()}else{alert("Already first item!")}};trainit.WorkoutPlan.moveDown=function(a,e){var d=$(a).closest("."+e);var b=$(d).next("."+e);if(b.hasClass(e)){var f=$(d).detach();$(b).after(f);trainit.WorkoutPlan.reIndexComponents()}else{alert("Already last item!")}};trainit.WorkoutPlan.secondsToShortHhMmSs=function(d){var c=Math.floor(d/3600);var a=Math.floor((d%3600)/60);if(a<10){a="0"+a}var b=(d-3600*c-60*a)*1;if(b<10){b="0"+b}return c+":"+a};trainit.WorkoutPlan.secondsToLongHhMmSs=function(d){var c=Math.floor(d/3600);var a=Math.floor((d%3600)/60);if(a<10){a="0"+a}var b=(d-3600*c-60*a)*1;if(b<10){b="0"+b}return c+" h "+a+" min"};Date.prototype.getWeek=function(d){d=typeof(d)=="int"?d:0;var c=new Date(this.getFullYear(),0,1);var a=c.getDay()-d;a=(a>=0?a:a+7);var b=Math.floor((this.getTime()-c.getTime()-(this.getTimezoneOffset()-c.getTimezoneOffset())*60000)/86400000)+1;var e;if(a<4){e=Math.floor((b+a-1)/7)+1;if(e>52){nYear=new Date(this.getFullYear()+1,0,1);nday=nYear.getDay()-d;nday=nday>=0?nday:nday+7;e=nday<4?1:53}}else{e=Math.floor((b+a-1)/7)}return e};trainit.WpPeriod=function(){};trainit.WpPeriod.add=function(a){$(a).closest(".wpData").siblings(".wpChildList").append(trainit.WpPeriod.toDOM(jQuery.parseJSON('{"wpperiod": {"id":"0","name":"","desc":"","wpweeks":[]}}'),true,true,true));trainit.WorkoutPlan.reIndexComponents()};trainit.WpPeriod.copy=function(b){var a=$(b).clone();trainit.WpPeriod.reset(a);return a};trainit.WpPeriod.reset=function(a){trainit.WpPeriod.makeSortable(a);$(a).find(".periodIdField").val("0");$(a).find(".wpWeek").each(function(b){trainit.WpWeek.reset($(this))})};trainit.WpPeriod.toJSON=function(b,a){var c='{"wpperiod": {';if(a){c+='"id": "0",'}else{c+='"id": "'+$(b).find(".periodIdField").val()+'",'}c+='"name": "'+$(b).find(".periodNameField").val()+'",';c+='"desc": "'+trainit.WorkoutPlan.replaceNewlineFromJson($(b).find(".periodDescField").val())+'",';c+='"childindex": "'+$(b).data("childindex")+'",';c+='"startdate": "'+$(b).data("startdate")+'",';c+='"enddate": "'+$(b).data("enddate")+'",';c+='"wpweeks": [';$(b).find(".wpWeek").each(function(d){if(d>0){c+=","}c+=trainit.WpWeek.toJSON(this,a)});c+="]";c+="}}";return c};trainit.WpPeriod.toDOM=function(l,c,a,n){var m=document.createElement("div");$(m).addClass("wpPeriod");$(m).addClass("wpElement");if(n){$(m).addClass("notSortable")}var g=document.createElement("div");$(g).addClass("wpHeader");var h="";if(!a){h+='<input type="hidden" class="periodIdField" value="'+l.wpperiod.id+'">'}else{h+='<input type="hidden" class="periodIdField" value="0">'}var b="arrowright.png";if(n){b="arrowdown.png"}if(l.wpperiod.name==""){l.wpperiod.name=strPeriodName}if(l.wpperiod.desc==""){l.wpperiod.desc=strPeriodDescription}h+='<div class="grid_1 alpha"><img class="expandCollapse" src="/res/img/24/'+b+'" onclick="trainit.WorkoutPlan.showHideTree(this);return false;"></div><div class="grid_4">';if(trainit.WorkoutPlan.READ_ONLY){h+='<h3 class="wpHeaderTitle">'+l.wpperiod.name+"</h3>"}else{if(n){h+='<input class="wpHeaderTitleEdit periodNameField" type="text" style="width:100%" value="'+l.wpperiod.name+'" onblur="$(this).next().html($(this).val());"><h3 class="wpHeaderTitle" style="display:none">'+l.wpperiod.name+"</h3>"}else{h+='<input class="wpHeaderTitleEdit periodNameField" type="text" style="display:none;width:100%" value="'+l.wpperiod.name+'" onblur="$(this).next().html($(this).val());"><h3 class="wpHeaderTitle">'+l.wpperiod.name+"</h3>"}}h+='</div><div class="grid_5"><h3><span class="dateRange"></span></h3></div><div style="float:right"><img src="/res/img/16/arrowup.png" onclick="trainit.WorkoutPlan.moveUp(this,\'wpPeriod\');return false;"><img src="/res/img/16/arrowdown.png" onclick="trainit.WorkoutPlan.moveDown(this,\'wpPeriod\');return false;">';if(!trainit.WorkoutPlan.READ_ONLY){h+='<img src="/res/img/16/trash2.png" onclick="trainit.WorkoutPlan.removeElement(this)" style="margin-left:10px" title="'+strRemove+'"></div>'}$(g).html(h);$(m).append(g);var j=document.createElement("div");$(j).addClass("wpContent");var f=document.createElement("div");$(f).addClass("wpData");h='<div class="small_separator"></div><div><span>'+l.wpperiod.desc+"</span>";if(!trainit.WorkoutPlan.READ_ONLY){h+='<textarea class="periodDescField" style="display:none;height:50px" onblur="trainit.EditableText.stopEdit($(this));">'+l.wpperiod.desc+'</textarea><a class="editLink" href="" onclick="trainit.EditableText.startEdit($(this));return false;"> '+strEdit+"</a>"}h+="</div>";if(!trainit.WorkoutPlan.READ_ONLY){h+='<div class="small_separator"></div><div class="grid_6 alpha wpPeriodSummary"><a href="" class="summaryToggle" onclick="$(this).next().toggle();return false;">'+strInitialPlan+'</a><div class="wpInitialSummary"><div><div class="wpSummaryTitle">'+strSum+'</div><div class="wpSummaryDuration">100h 00min</div></div><div class="line_separator"></div><div><div class="wpSummaryTitle">Peruskestävyys</div><div class="wpSummaryDuration">90h 00min</div><div class="wpSummaryPercent">90.0%</div></div><div><div class="wpSummaryTitle">Vauhtikestävyys</div><div class="wpSummaryDuration">5h 00min</div><div class="wpSummaryPercent">5.0%</div></div><div><div class="wpSummaryTitle">Maksimikestävyys</div><div class="wpSummaryDuration">5h 00min</div><div class="wpSummaryPercent">5.0%</div></div></div></div><div class="grid_6 omega wpPeriodSummary"><a href="" class="summaryToggle" onclick="$(this).next().toggle();return false;">'+strCalculatedPlan+' <span class="wpTitleSummary">0</span></a><div class="wpSummary"><div class="by_quality"></div><div class="line_separator"></div><div class="by_sport"></div></div></div>'}else{h+='<div class="total"><h3>'+strSum+'<span class="wpSummaryDuration">0</span></h3></div><div class="grid_6 alpha wpPeriodSummary"><div class="wpSummary"><h3>'+strSports+'</h3><div class="by_sport"></div></div></div><div class="grid_6 omega wpPeriodSummary"><div class="wpSummary"><h3>'+strQualities+'</h3><div class="by_quality"></div></div></div>'}if(!trainit.WorkoutPlan.READ_ONLY){h+='<div class="small_separator"><button onclick="trainit.WpWeek.add(this)">'+strAddWeek+"</div></div>"}$(f).html(h);$(j).append(f);var e=document.createElement("div");$(e).addClass("wpChildList wpWeekList");$(j).append(e);if(!n){$(j).hide()}$(m).append(j);if(!trainit.WorkoutPlan.READ_ONLY){trainit.WpPeriod.makeSortable(e)}if(c){for(var k=0;k<l.wpperiod.wpweeks.length;k++){$(e).append(trainit.WpWeek.toDOM(l.wpperiod.wpweeks[k],true,a,false))}}else{if(l.wpperiod.id>0){$(e).html('<img id="img_period_'+l.wpperiod.id+'" src="/res/img/32/ajax-loader.gif">');var d="trainingplan?action=getweeks&parent="+l.wpperiod.id;$.ajax({url:d,cache:false,dataType:"text json",context:document.body,success:function(p){for(var o=0;o<p.wpweeks.length;o++){$(e).append(trainit.WpWeek.toDOM(p.wpweeks[o],false,a,false))}$("#img_period_"+l.wpperiod.id).remove();trainit.WorkoutPlan.reIndexComponents()}})}}return m};trainit.WpPeriod.makeDraggable=function(a){$(a).onselectstart=function(){return false};$(a).css("cursor","pointer");$(a).draggable({opacity:0.5,handle:".wpHeader",helper:"clone",containment:"document",revert:"invalid",zIndex:35,connectToSortable:".wpPeriodList",appendTo:"body",start:function(b,c){$(c.helper).data("json",$(this).data("json"))}})};trainit.WpPeriod.makeSortable=function(a){var b;$(a).sortable({placeholder:"wpDroppableSpace",handle:".wpHeader",items:".wpWeek",tolerance:"pointer",connectWith:".wpWeekList",appendTo:"body",start:function(c,d){if(!$(d.item).hasClass("wpTemplate")){b=document.createElement("div");$(b).addClass("wpOriginalPlaceHolder");$(d.item).after(b)}},stop:function(c,d){if($(d.item).hasClass("wpTemplate")){trainit.WpPeriod.openWeek($(d.item),$(d.item).data("json"))}else{trainit.WorkoutPlan.reIndexComponents()}},receive:function(c,d){},beforeStop:function(c,d){if($(d.helper).hasClass("wpTemplate")){$(d.item).data("json",$(d.helper).data("json"))}else{if(c.ctrlKey){$(b).after(trainit.WpWeek.toDOM(jQuery.parseJSON(trainit.WpWeek.toJSON(d.item)),true,true,true))}$(b).remove()}}});$(a).disableSelection()};trainit.WpPeriod.openWeek=function(c,a){var b="trainingplan?action=getweeks&showtree=1&id="+a.wpweek.id;$.ajax({url:b,cache:false,dataType:"text json",success:function(d){$(c).after(trainit.WpWeek.toDOM(d.wpweeks[0],true,true,true));$(c).remove();trainit.WorkoutPlan.reIndexComponents()}})};trainit.WpPreview=function(){};trainit.WpPreview.wpPreviewDialog=null;trainit.WpPreview.initWpPreviewDialog=function(b){if(!$("#dialog-wppreview")){alert("wp preview dialog not found!");return}var a={};a[strClose]=function(){$(this).dialog("close")};trainit.WpPreview.wpPreviewDialog=$("#dialog-wppreview").dialog({closeOnEscape:true,autoOpen:false,resizable:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},dialogClass:"alert",title:b,position:"center",width:800,height:600,zIndex:10,buttons:a})};trainit.WpPreview.open=function(b){var a='<div class="container_16" style="width:720px"><div id="workoutPlanDiv" class="workoutPlanProject"></div></div>';$(trainit.WpPreview.wpPreviewDialog).html(a);$(trainit.WpPreview.wpPreviewDialog).dialog("option","title",strTrainingPlanPreview);$(trainit.WpPreview.wpPreviewDialog).dialog("open");trainit.WorkoutPlan.open(b)};trainit.WpProject=function(){};trainit.WpProject.toJSON=function(b){var a=$("#wpProjectRoot");var c='{"wpproject": {';if(b){c+='"id": "0",'}else{c+='"id": "'+$(a).find(".projectIdField").val()+'",'}c+='"name": "'+$(a).find(".projectNameField").val()+'",';c+='"desc": "'+trainit.WorkoutPlan.replaceNewlineFromJson($(a).find(".projectDescField").val())+'",';c+='"startdate": "'+$(a).find(".projectStartDate").val()+'",';c+='"enddate": "'+$(a).data("enddate")+'",';c+='"childindex": "0",';c+='"traineesandgroups": [';$(".linkedTraineesAndGroups").find(".groupOrTrainee").each(function(d){if(d>0){c+=","}c+="{";c+='"groupid":"'+$(this).find(".groupId").val()+'",';c+='"traineeid":"'+$(this).find(".traineeId").val()+'"';c+="}"});c+="],";c+='"wpseasons": [';$(a).find(".wpSeason").each(function(d){if(d>0){c+=","}c+=trainit.WpSeason.toJSON(this,b)});c+="]";c+="}}";return c};trainit.WpProject.toDOM=function(k,b,a,n){var l=document.createElement("div");$(l).attr("id","wpProjectRoot");$(l).addClass("wpProject wpElement");if(k.wpproject.name==""){k.wpproject.name=strProjectName}if(k.wpproject.desc==""){k.wpproject.desc=strProjectDescription}var g=document.createElement("div");var h="";h+="<div><h2><span>"+k.wpproject.name+"</span>";if(!trainit.WorkoutPlan.READ_ONLY){h+='<input type="text" class="grid_6_input projectNameField" style="display:none;" value="'+k.wpproject.name+'" onblur="trainit.EditableText.stopEdit($(this));"><a class="editLink" href="" onclick="trainit.EditableText.startEdit($(this));return false;"> '+strEdit+"</a>";h+="<span style='float:right'><button onclick='trainit.WorkoutPlan.removeElement(this);'>"+strRemove+"</button></span>"}h+="</h2>";h+="</div>";h+='<div class="small_separator"></div>';$(g).html(h);$(l).append(g);var j=document.createElement("div");$(j).addClass("wpContent");var e=document.createElement("div");$(e).addClass("wpData");h="";if(!a){h+='<input type="hidden" class="projectIdField" value="'+k.wpproject.id+'">'}else{h+='<input type="hidden" class="projectIdField" value="0">'}h+="<div class='grid_6 alpha'>";h+="<span>"+k.wpproject.desc+'</span><textarea class="projectDescField" style="display:none;height:150px;width:100%" onblur="trainit.EditableText.stopEdit($(this));">'+k.wpproject.desc+"</textarea>";if(!trainit.WorkoutPlan.READ_ONLY){h+='<a class="editLink" href="" onclick="trainit.EditableText.startEdit($(this));return false;"> '+strEdit+"</a>"}h+="</div>";h+="<div class='grid_6 omega'>";h+="<div class='grid_2 alpha'>"+strOriginator+"</div><div class='grid_1' style='width:30px' id=\"projectOriginatorImg\"></div><div class='grid_3' id=\"projectOriginator\"></div><div class=\"small_separator\"></div>";h+="<div class='grid_2 alpha'>"+strAuthor+"</div><div class='grid_1' style='width:30px' id=\"projectAuthorImg\"></div><div class='grid_3' id=\"projectAuthor\"></div><div class=\"medium_separator\"></div>";h+="<div class='grid_2 alpha'>"+strStartDate+"</div>";if(trainit.WorkoutPlan.READ_ONLY){h+='<input type="hidden" id="projectStartDate"value="'+k.wpproject.startdate+"\"><div class='grid_3'>"+k.wpproject.startdate+"</div>"}else{h+='<div class=\'grid_3\'><input class="inputdatetime projectStartDate" id="projectStartDate"onchange="trainit.WorkoutPlan.reIndexComponents();" value="'+k.wpproject.startdate+'"></div>'}h+="<div class=\"small_separator\"></div><div class='grid_2 alpha'>"+strEndDate+"</div><div class='grid_3' id=\"projectEndDate\"></div><div class=\"small_separator\"></div><div class='grid_2 alpha'>"+strDuration+"</div><div class='grid_3' id=\"projectDuration\"></div><div class=\"large_separator\"></div><div class='grid_2 alpha'>"+strLevel+'</div><div class=\'grid_3\' id="projectLevel"></div><div class="large_separator"></div>';if(!trainit.WorkoutPlan.READ_ONLY){h+="<div class='grid_2 alpha'>"+strLinkedTraineeOrGroup+"</div><div class='grid_4 omega' style='width:218px'><div class='editableDiv linkedTraineesAndGroups' style='width:218px'></div><div><a class=\"editLink\" href=\"\" onclick=\"trainit.WpTraineeGroupSelectDlg.editLinkedTraineesAndGroups();return false;\"> "+strEdit+'</a></div></div><div class="small_separator"></div>'}h+="</div>";if(!trainit.WorkoutPlan.READ_ONLY){h+='<div class="small_separator"></div><div class="grid_6 alpha wpProjectSummary"><a href="" class="summaryToggle" onclick="$(this).next().toggle();return false;">'+strInitialPlan+'</a><div class="wpInitialSummary"><div><div class="wpSummaryTitle">'+strSum+'</div><div class="wpSummaryDuration">100h 00min</div></div><div class="line_separator"></div><div><div class="wpSummaryTitle">Peruskestävyys</div><div class="wpSummaryDuration">90h 00min</div><div class="wpSummaryPercent">90.0%</div></div><div><div class="wpSummaryTitle">Vauhtikestävyys</div><div class="wpSummaryDuration">5h 00min</div><div class="wpSummaryPercent">5.0%</div></div><div><div class="wpSummaryTitle">Maksimikestävyys</div><div class="wpSummaryDuration">5h 00min</div><div class="wpSummaryPercent">5.0%</div></div></div></div><div class="grid_6 omega wpProjectSummary"><a href="" class="summaryToggle" onclick="$(this).next().toggle();return false;">'+strCalculatedPlan+' <span class="wpTitleSummary">0</span></a><div class="wpSummary"><div class="by_quality"></div><div class="line_separator"></div><div class="by_sport"></div></div></div>'}else{h+='<div class="total"><h3>'+strSum+'<span class="wpSummaryDuration">0</span></h3></div><div class="grid_6 alpha wpProjectSummary"><div class="wpSummary"><h3>'+strSports+'</h3><div class="by_sport"></div></div></div><div class="grid_6 omega wpProjectSummary"><div class="wpSummary"><h3>'+strQualities+'</h3><div class="by_quality"></div></div></div>'}h+='<div class="large_separator"></div>';h+='<div class="grid_3 alpha">';if(!trainit.WorkoutPlan.READ_ONLY){h+='<button onclick="trainit.WpSeason.add(this)">'+strAddSeason+"</button>"}h+="</div>";h+='<div class="grid_4 omega prefix_5" style="margin-top:5px"><div class="grid_2 alpha"><a href="" onclick="trainit.WpProject.expandAll();return false;">'+strExpandAll+'</a> </div><div class="grid_2 omega"><a style="margin-left:10px" href="" onclick="trainit.WpProject.collapseAll();return false;">'+strCollapseAll+"</a></div></div>";h+="</div>";$(e).html(h);$(j).append(e);var d=document.createElement("div");$(d).addClass("wpChildList wpSeasonList");$(j).append(d);if(!trainit.WorkoutPlan.READ_ONLY){trainit.WpProject.makeSortable(d)}$(l).append(j);if(b){for(var m=0;m<k.wpproject.wpseasons.length;m++){$(d).append(trainit.WpSeason.toDOM(k.wpproject.wpseasons[m],true,a,n))}}else{if(k.wpproject.id>0){$(d).html('<img id="img_project_'+k.wpproject.id+'" src="/res/img/32/ajax-loader.gif">');var c="trainingplan?action=getseasons&parent="+k.wpproject.id;$.ajax({url:c,cache:false,dataType:"text json",context:document.body,success:function(p){for(var o=0;o<p.wpseasons.length;o++){$(d).append(trainit.WpSeason.toDOM(p.wpseasons[o],false,a,n))}$("#img_project_"+k.wpproject.id).remove();trainit.WorkoutPlan.reIndexComponents()}})}}var f=k.wpproject.id;if(a){f=0}trainit.WpProject.getLinkedTraineesAndGroups(f);trainit.WpProject.getOriginator(k.wpproject.originator);trainit.WpProject.getAuthor(k.wpproject.author);return l};trainit.WpProject.getOriginator=function(b){var a="user?u="+b;$.ajax({url:a,cache:false,dataType:"text json",context:document.body,success:function(c){var d="";if(c.user.nickname){d=" ("+c.user.nickname+")"}$("#projectOriginatorImg").append("<img class='profileImg' src='image?action=getprofile&u="+c.user.uid+"' width='25'>");$("#projectOriginator").append(c.user.firstname+" "+c.user.lastname+d)}})};trainit.WpProject.getAuthor=function(a){var b="user?u="+a;$.ajax({url:b,cache:false,dataType:"text json",context:document.body,success:function(c){var d="";if(c.user.nickname){d=" ("+c.user.nickname+")"}$("#projectAuthorImg").append("<img class='profileImg' src='image?action=getprofile&u="+c.user.uid+"' width='25'>");$("#projectAuthor").html(c.user.firstname+" "+c.user.lastname+d)}})};trainit.WpProject.getLinkedTraineesAndGroups=function(a){var b="trainingplan?action=getprojecttrainees&pid="+a;$.ajax({url:b,cache:false,dataType:"text json",context:document.body,success:function(k){var h="";var e=k.wpprojecttrainees.groups;var d=k.wpprojecttrainees.trainees;if(e){for(var j=0;j<e.length;j++){h+=trainit.WpProject.getTraineeOrGroupDiv(1,e[j].group.id,0,e[j].group.name)}}if(d){for(var f=0;f<d.length;f++){var c=d[f].user.firstname+" "+d[f].user.lastname;h+=trainit.WpProject.getTraineeOrGroupDiv(0,0,d[f].user.id,c)}}$(".linkedTraineesAndGroups").append(h)},error:function(c){}})};trainit.WpProject.removeTraineeOrGroup=function(a,c,b){$(a).parent().remove()};trainit.WpProject.getTraineeOrGroupDiv=function(f,d,b,a){var e=a;if(e.length>36){e=a.substring(0,33)+"..."}var c='<div class="wpElement groupOrTrainee" title="'+a+'"><input type="hidden" class="traineeId" value="'+b+'"><input type="hidden" class="groupId" value="'+d+'"><span>'+e+'</span><img src="/res/img/16/trash2.png" onclick="trainit.WpProject.removeTraineeOrGroup(this,'+d+","+b+');" title="'+strRemove+'"></div>';return c};trainit.WpProject.expandAll=function(){$(".wpProject").find(".expandCollapse").each(function(a){trainit.WorkoutPlan.showHideTree($(this),2)});return false};trainit.WpProject.collapseAll=function(){$(".wpProject").find(".wpSeason .expandCollapse").each(function(a){trainit.WorkoutPlan.showHideTree($(this),1)});return false};trainit.WpProject.makeDraggable=function(a){$(a).onselectstart=function(){return false};$(a).css("cursor","pointer");$(a).draggable({opacity:0.5,handle:".wpHeader",helper:"clone",containment:"document",revert:"invalid",zIndex:35,appendTo:"body",start:function(b,c){$(c.helper).data("json",$(this).data("json"))}})};trainit.WpProject.makeSortable=function(a){var b;$(a).sortable({placeholder:"wpDroppableSpace",handle:".wpHeader",items:".wpSeason",tolerance:"pointer",connectWith:".wpSeasonList",appendTo:"body",start:function(c,d){if(!$(d.item).hasClass("wpTemplate")){b=document.createElement("div");$(b).addClass("wpOriginalPlaceHolder");$(d.item).after(b)}},stop:function(c,d){if($(d.item).hasClass("wpTemplate")){trainit.WpProject.openSeason($(d.item),$(d.item).data("json"))}else{trainit.WorkoutPlan.reIndexComponents()}},receive:function(c,d){},beforeStop:function(c,d){if($(d.helper).hasClass("wpTemplate")){$(d.item).data("json",$(d.helper).data("json"))}else{if(c.ctrlKey){$(b).after(trainit.WpSeason.toDOM(jQuery.parseJSON(trainit.WpSeason.toJSON(d.item)),true,true,true))}$(b).remove()}}})};trainit.WpProject.openSeason=function(c,a){var b="trainingplan?action=getseasons&showtree=1&id="+a.wpseason.id;$.ajax({url:b,cache:false,dataType:"text json",success:function(d){$(c).after(trainit.WpSeason.toDOM(d.wpseasons[0],true,true,true));$(c).remove();trainit.WorkoutPlan.reIndexComponents()}})};trainit.WpSeason=function(){};trainit.WpSeason.add=function(a){$(a).closest(".wpData").siblings(".wpChildList").append(trainit.WpSeason.toDOM(jQuery.parseJSON('{"wpseason": {"id":"0","name":"","desc":"","wpperiods":[]}}'),true,true,true));trainit.WorkoutPlan.reIndexComponents()};trainit.WpSeason.copy=function(b){var a=trainit.WpSeason.toDOM($(b).data("json"),true,true);return a};trainit.WpSeason.reset=function(a){$(a).find(".seasonIdField").val("0");$(a).find(".wpPeriod").each(function(b){trainit.WpPeriod.reset($(this))})};trainit.WpSeason.toJSON=function(b,a){var c='{"wpseason": {';if(a){c+='"id": "0",'}else{c+='"id": "'+$(b).find(".seasonIdField").val()+'",'}c+='"name": "'+$(b).find(".seasonNameField").val()+'",';c+='"desc": "'+trainit.WorkoutPlan.replaceNewlineFromJson($(b).find(".seasonDescField").val())+'",';c+='"childindex": "'+$(b).data("childindex")+'",';c+='"startdate": "'+$(b).data("startdate")+'",';c+='"enddate": "'+$(b).data("enddate")+'",';c+='"wpperiods": [';$(b).find(".wpPeriod").each(function(d){if(d>0){c+=","}c+=trainit.WpPeriod.toJSON(this,a)});c+="]";c+="}}";return c};trainit.WpSeason.toDOM=function(l,d,b,n){var m=document.createElement("div");$(m).addClass("wpSeason");$(m).addClass("wpElement");if(n){$(m).addClass("notSortable")}var h=document.createElement("div");$(h).addClass("wpHeader");var c="arrowright.png";if(n){c="arrowdown.png"}if(l.wpseason.name==""){l.wpseason.name=strSeasonName}if(l.wpseason.desc==""){l.wpseason.desc=strSeasonDescription}var j="";if(!b){j+='<input type="hidden" class="seasonIdField" value="'+l.wpseason.id+'">'}else{j+='<input type="hidden" class="seasonIdField" value="0">'}j+='<div class="grid_1 alpha"><img class="expandCollapse" src="/res/img/24/'+c+'" onclick="trainit.WorkoutPlan.showHideTree(this);return false;"></div><div class="grid_4">';if(trainit.WorkoutPlan.READ_ONLY){j+='<h3 class="wpHeaderTitle">'+l.wpseason.name+"</h3>"}else{if(n){j+='<input class="wpHeaderTitleEdit seasonNameField" type="text" style="width:100%" value="'+l.wpseason.name+'" onblur="$(this).next().html($(this).val());"><h3 class="wpHeaderTitle" style="display:none">'+l.wpseason.name+"</h3>"}else{j+='<input class="wpHeaderTitleEdit seasonNameField" type="text" style="display:none;width:100%" value="'+l.wpseason.name+'" onblur="$(this).next().html($(this).val());"><h3 class="wpHeaderTitle">'+l.wpseason.name+"</h3>"}}j+='</div><div class="grid_5"><h3><span class="dateRange"></span></h3></div><div style="float:right"><img src="/res/img/16/arrowup.png" onclick="trainit.WorkoutPlan.moveUp(this,\'wpSeason\');return false;"><img src="/res/img/16/arrowdown.png" onclick="trainit.WorkoutPlan.moveDown(this,\'wpSeason\');return false;">';if(!trainit.WorkoutPlan.READ_ONLY){j+='<img src="/res/img/16/trash2.png" onclick="trainit.WorkoutPlan.removeElement(this)" style="margin-left:10px" title="'+strRemove+'">'}j+="</div>";$(h).html(j);$(m).append(h);var k=document.createElement("div");$(k).addClass("wpContent");var g=document.createElement("div");$(g).addClass("wpData");j='<div class="small_separator"></div><div><span>'+l.wpseason.desc+"</span>";if(!trainit.WorkoutPlan.READ_ONLY){j+='<textarea class="seasonDescField" onblur="trainit.EditableText.stopEdit($(this));" title="'+strDescription+'">'+l.wpseason.desc+'</textarea><a class="editLink" href="" onclick="trainit.EditableText.startEdit($(this));return false;"> '+strEdit+"</a>"}j+="</div>";j+='<div class="small_separator"></div>';if(!trainit.WorkoutPlan.READ_ONLY){j+='<div class="grid_6 alpha wpSeasonSummary"><a href="" class="summaryToggle" onclick="$(this).next().toggle();return false;">'+strInitialPlan+'</a><div class="wpInitialSummary"><div><div class="wpSummaryTitle">'+strSum+'</div><div class="wpSummaryDuration">100h 00min</div></div><div class="line_separator"></div><div><div class="wpSummaryTitle">Peruskestävyys</div><div class="wpSummaryDuration">90h 00min</div><div class="wpSummaryPercent">90.0%</div></div><div><div class="wpSummaryTitle">Vauhtikestävyys</div><div class="wpSummaryDuration">5h 00min</div><div class="wpSummaryPercent">5.0%</div></div><div><div class="wpSummaryTitle">Maksimikestävyys</div><div class="wpSummaryDuration">5h 00min</div><div class="wpSummaryPercent">5.0%</div></div></div></div><div class="grid_6 omega wpSeasonSummary"><a href="" class="summaryToggle" onclick="$(this).next().toggle();return false;">'+strCalculatedPlan+' <span class="wpTitleSummary">0</span></a><div class="wpSummary"><div class="by_quality"></div><div class="line_separator"></div><div class="by_sport"></div></div></div>'}else{j+='<div class="total"><h3>'+strSum+'<span class="wpSummaryDuration">0</span></h3></div><div class="grid_6 alpha wpSeasonSummary"><div class="wpSummary"><h3>'+strSports+'</h3><div class="by_sport"></div></div></div><div class="grid_6 omega wpSeasonSummary"><div class="wpSummary"><h3>'+strQualities+'</h3><div class="by_quality"></div></div></div>'}if(!trainit.WorkoutPlan.READ_ONLY){j+='<div class="small_separator"><button onclick="trainit.WpPeriod.add(this)">'+strAddPeriod+"</div></div>"}$(g).html(j);$(k).append(g);var f=document.createElement("div");$(f).addClass("wpChildList wpPeriodList");$(k).append(f);if(!n){$(k).hide()}$(m).append(k);if(!trainit.WorkoutPlan.READ_ONLY){trainit.WpSeason.makeSortable(f)}if(d){for(var a=0;a<l.wpseason.wpperiods.length;a++){$(f).append(trainit.WpPeriod.toDOM(l.wpseason.wpperiods[a],true,b,false))}}else{if(l.wpseason.id>0){$(f).html('<img id="img_season_'+l.wpseason.id+'" src="/res/img/32/ajax-loader.gif">');var e="trainingplan?action=getperiods&parent="+l.wpseason.id;$.ajax({url:e,cache:false,dataType:"text json",context:document.body,success:function(o){for(var p=0;p<o.wpperiods.length;p++){$(f).append(trainit.WpPeriod.toDOM(o.wpperiods[p],false,b,false))}$("#img_season_"+l.wpseason.id).remove();trainit.WorkoutPlan.reIndexComponents()}})}}return m};trainit.WpSeason.expandAll=function(a){$(a).closest(".wpSeason").find(".expandCollapse").each(function(b){trainit.WorkoutPlan.showHideTree($(this),2)});return false};trainit.WpSeason.collapseAll=function(a){$(a).closest(".wpSeason").find(".expandCollapse").each(function(b){trainit.WorkoutPlan.showHideTree($(this),1)});return false};trainit.WpSeason.makeDraggable=function(a){$(a).onselectstart=function(){return false};$(a).css("cursor","pointer");$(a).draggable({opacity:0.5,handle:".wpHeader",helper:"clone",containment:"document",revert:"invalid",zIndex:35,connectToSortable:".wpSeasonList",appendTo:"body",start:function(b,c){$(c.helper).data("json",$(this).data("json"))}})};trainit.WpSeason.makeSortable=function(a){var b;$(a).sortable({placeholder:"wpDroppableSpace",handle:".wpHeader",items:".wpPeriod",tolerance:"pointer",connectWith:".wpPeriodList",appendTo:"body",start:function(c,d){if(!$(d.item).hasClass("wpTemplate")){b=document.createElement("div");$(b).addClass("wpOriginalPlaceHolder");$(d.item).after(b)}},stop:function(c,d){if($(d.item).hasClass("wpTemplate")){trainit.WpSeason.openPeriod($(d.item),$(d.item).data("json"))}else{trainit.WorkoutPlan.reIndexComponents()}},beforeStop:function(c,d){if($(d.helper).hasClass("wpTemplate")){$(d.item).data("json",$(d.helper).data("json"))}else{if(c.ctrlKey){$(b).after(trainit.WpPeriod.toDOM(jQuery.parseJSON(trainit.WpPeriod.toJSON(d.item)),true,true,true))}$(b).remove()}}})};trainit.WpSeason.openPeriod=function(c,a){var b="trainingplan?action=getperiods&showtree=1&id="+a.wpperiod.id;$.ajax({url:b,cache:false,dataType:"text json",success:function(d){$(c).after(trainit.WpPeriod.toDOM(d.wpperiods[0],true,true,true));$(c).remove();trainit.WorkoutPlan.reIndexComponents()}})};trainit.WpTemplate=function(){};trainit.WpTemplate.dragged=false;trainit.WpTemplate.init=function(c){var a=document.createElement("div");$(a).addClass("wpToolbar");$(a).attr("id","wpToolbar");$(a).hide();$(c).append(a);var b="";b+='<div class="profileDataDivTitle wpToolbarHeader">Harjoituspankki<img src="/res/img/16/trash2.png" onclick="$(\'#wpToolbar\').hide();" style="float:right;cursor:pointer;margin-left:10px" title="X"><div style="margin-top:5px;font-size:10px;color:#e0e0d0;">Siirrä harjoituspankkia vetämällä hiirellä! Voit avata löytyneet harjoitusohjelmat, kaudet, jaksot ja viikot klikkaamalla ja vetää ja pudottaa ne harjoitusohjelmaan.</div></div>';b+='<div class="grid_6 alpha omega wpToolbarControl">';b+='<div class="grid_2 alpha">'+strSearch+"</div>";b+='<div class="grid_4 omega"><select id="wpTemplateSearchType" style="width:100%" onchange="trainit.WpTemplate.search();"><optgroup label="Harjoituspankista"><option value="6">Harjoituspohjista</option></optgroup><optgroup label="Tallennetuista suunnitelmista"><option value="1" selected>Projekteista</option><option value="2">Harjoituskausista</option><option value="3">Harjoitusjaksoista</option><option value="4">Viikoista</option><option value="5">Treeneistä</option></optgroup></select></div>';b+='<div class="small_separator"></div>';b+='<div class="grid_2 alpha">'+strSearchByName+"</div>";b+='<div class="grid_4 omega"><input id="wpTemplateSearchName" type="text" onkeyup="trainit.WpTemplate.search();" class="grid_4_input"></div>';b+='<div class="small_separator"></div>';b+='<div class="grid_2 alpha">'+strSearchByTraineeName+"</div>";b+='<div class="grid_4 omega"><input id="wpTemplateSearchTraineeName" type="text" onkeyup="trainit.WpTemplate.search();" class="grid_4_input"></div>';b+='<div class="small_separator"></div>';b+='<div class="grid_2 alpha">'+strSearchBySport+"</div>";b+='<div class="grid_4 omega"><input id="wpTemplateSearchSport" type="text" onchange="trainit.WpTemplate.search();" class="grid_4_input" disabled="disabled"></div>';b+='<div class="small_separator"></div>';b+='<div class="grid_2 alpha">'+strSearchBySportQuality+"</div>";b+='<div class="grid_4 omega"><input id="wpTemplateSearchSportQuality" type="text" onchange="trainit.WpTemplate.search();" class="grid_4_input" disabled="disabled"></div>';b+='<div class="small_separator"></div>';b+="</div>";b+='<div id="wpBank" class="wpChildList wpToolbarContent"></div>';$(a).append(b);$(a).css("position","fixed");$(a).css("left","50px");$(a).css("top","100px");trainit.WpTemplate.dragged=true;$(a).draggable({handle:".wpToolbarHeader, .wpToolbarControl, .wpToolbarFooter",containment:"window",zIndex:350,stop:function(d,e){}})};trainit.WpTemplate.show=function(){$("#wpToolbar").show();trainit.WpTemplate.search()};trainit.WpTemplate.search=function(){$("#wpBank").html('<img src="/res/img/32/ajax-loader.gif">');var e=1;var d=1;var b=0;var a=$("#wpTemplateSearchType").val();if(a==5||a==6){b=1}var c="trainingplan?action=search&type="+a+"&name="+$("#wpTemplateSearchName").val()+"&trainee="+$("#wpTemplateSearchTraineeName").val()+"&showtree="+b+"&onlyown="+e+"&onlyfree="+d;$.ajax({url:c,cache:false,dataType:"text json",context:document.body,success:function(k){if(k){var f=true;var j="";var h=0;var g;$("#wpBank").empty();if(k.wpprojecttemplates){$("#wpBank").append("<p>Found "+k.wpprojecttemplates.length+" projects</p>");trainit.WpTemplate.showProjects($("#wpBank"),k.wpprojecttemplates)}if(k.wpseasontemplates){$("#wpBank").append("<p>Found "+k.wpseasontemplates.length+" seasons</p>");trainit.WpTemplate.showSeasons($("#wpBank"),k.wpseasontemplates)}if(k.wpperiodtemplates){$("#wpBank").append("<p>Found "+k.wpperiodtemplates.length+" periods</p>");trainit.WpTemplate.showPeriods($("#wpBank"),k.wpperiodtemplates)}if(k.wpweektemplates){$("#wpBank").append("<p>Found "+k.wpweektemplates.length+" weeks</p>");trainit.WpTemplate.showWeeks($("#wpBank"),k.wpweektemplates)}if(k.wpworkouttemplates){$("#wpBank").append("<p>Found "+k.wpworkouttemplates.length+" workouts</p>");trainit.WpTemplate.showWorkouts($("#wpBank"),k.wpworkouttemplates)}}}})};trainit.WpTemplate.showProjects=function(a,e){for(var d=0;d<e.length;d++){var f=e[d];var c=document.createElement("div");$(c).addClass("wpProject wpElement wpTemplate");var b=document.createElement("div");$(b).addClass("wpHeader");$(b).attr("title",f.wpproject.desc);$(b).html(f.wpproject.name+' <span class="bankDate">('+f.wpproject.startdate+" - "+f.wpproject.enddate+")</span>");$(c).append(b);$(c).append('<div class="bankChildArea"></div>');$(c).data("json",f);trainit.WpProject.makeDraggable(c);$(b).click(function(){var h=$(this).next();$(h).empty().toggle();var g="trainingplan?action=getseasons&parent="+$(this).parent().data("json").wpproject.id;$.ajax({url:g,cache:false,dataType:"text json",context:document.body,success:function(j){if(j){trainit.WpTemplate.showSeasons(h,j.wpseasons)}}})});$(a).append(c)}};trainit.WpTemplate.showSeasons=function(a,b){for(var e=0;e<b.length;e++){var f=b[e];var d=document.createElement("div");$(d).addClass("wpSeason wpElement wpTemplate");var c=document.createElement("div");$(c).addClass("wpHeader");$(c).attr("title",f.wpseason.desc);$(c).html(f.wpseason.name+' <span class="bankDate">('+f.wpseason.startdate+" - "+f.wpseason.enddate+")</span>");$(d).append(c);$(d).append('<div class="bankChildArea"></div>');$(d).data("json",f);trainit.WpSeason.makeDraggable(d);$(c).click(function(){var h=$(this).next();$(h).empty().toggle();var g="trainingplan?action=getperiods&parent="+$(this).parent().data("json").wpseason.id;$.ajax({url:g,cache:false,dataType:"text json",context:document.body,success:function(j){if(j){trainit.WpTemplate.showPeriods(h,j.wpperiods)}}})});$(a).append(d)}};trainit.WpTemplate.showPeriods=function(a,e){for(var d=0;d<e.length;d++){var f=e[d];var c=document.createElement("div");$(c).addClass("wpPeriod wpElement wpTemplate");var b=document.createElement("div");$(b).addClass("wpHeader");$(b).attr("title",f.wpperiod.desc);$(b).html(f.wpperiod.name+' <span class="bankDate">('+f.wpperiod.startdate+" - "+f.wpperiod.enddate+")</span>");$(c).append(b);$(c).append('<div class="bankChildArea"></div>');$(c).data("json",f);trainit.WpPeriod.makeDraggable(c);$(b).click(function(){var h=$(this).next();$(h).empty().toggle();var g="trainingplan?action=getweeks&parent="+$(this).parent().data("json").wpperiod.id;$.ajax({url:g,cache:false,dataType:"text json",context:document.body,success:function(j){if(j){trainit.WpTemplate.showWeeks(h,j.wpweeks)}}})});$(a).append(c)}};trainit.WpTemplate.showWeeks=function(d,a){for(var e=0;e<a.length;e++){var c=a[e];var j=document.createElement("div");$(j).addClass("wpWeek wpElement wpTemplate");var g=document.createElement("div");$(g).addClass("wpHeader");$(g).attr("title",c.wpweek.desc);var h=getDate(c.wpweek.startdate);var f=strWeek+" "+h.getWeek(1)+"/"+h.getFullYear();var b=f;$(g).html(b+' <span class="bankDate">('+c.wpweek.startdate+" - "+c.wpweek.enddate+")</span>");$(j).append(g);$(j).append('<div class="bankChildArea"></div>');$(j).data("json",c);trainit.WpWeek.makeDraggable(j);$(g).click(function(){var l=$(this).next();$(l).empty().toggle();var k="trainingplan?action=getworkouts&showtree=1&parent="+$(this).parent().data("json").wpweek.id;$.ajax({url:k,cache:false,dataType:"text json",context:document.body,success:function(m){if(m){trainit.WpTemplate.showWorkouts(l,m.wpworkouts)}}})});$(d).append(j)}};trainit.WpTemplate.showWorkouts=function(a,d){for(var c=0;c<d.length;c++){var e=d[c];var b=document.createElement("div");$(b).addClass("wpWorkout wpElement wpTemplate");$(b).html('<div class="wpHeader" title="'+e.wpworkout.instruction+'">'+trainit.WpWorkout.getTitle(e)+' <span class="bankDate">('+e.wpworkout.startdate+")</span></div>");$(b).data("json",e);trainit.WpWorkout.makeDraggable(b);$(a).append(b)}};trainit.WpTraineeGroupSelectDlg=function(){};trainit.WpTraineeGroupSelectDlg.dialog=null;trainit.WpTraineeGroupSelectDlg.initTraineeGroupSelectDialog=function(c){if(!$("#dialog-traineegroupselect")){alert("Dialog not found!");return}var b={};b[strClose]=function(){$(this).dialog("close")};trainit.WpTraineeGroupSelectDlg.dialog=$("#dialog-traineegroupselect").dialog({closeOnEscape:false,autoOpen:false,resizable:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},dialogClass:"alert",title:c,minWidth:720,minHeight:300,position:"center",zIndex:10,buttons:b});var a='<div class="container_16" style="width:700px"><div class="medium_separator"></div><p>Voit valita valita kenelle harjoitusohjelma on tarkoitettu vetämällä ja pudottamalla hiirellä</p><div class="grid_6 alpha omega" style="height:300px"><h3>Valmennettavat ja ryhmät</h3><div id="selectableGroupsAndTrainees" class="groupOrTraineeList" style="height:250px"></div></div><div class="grid_6 omega omega" style="height:300px"><h3>Valitut valmennettavat ja ryhmät</h3><div id="selectedGroupsAndTrainees" class="groupOrTraineeList" style="height:250px"></div></div></div>';$("#dialog-traineegroupselect").html(a);$(".groupOrTraineeList").sortable({placeholder:"wpDroppableSpace",items:".groupOrTrainee",tolerance:"pointer",connectWith:".groupOrTraineeList",appendTo:"body",stop:function(d,e){$(".linkedTraineesAndGroups").html($("#selectedGroupsAndTrainees").html())}}).disableSelection()};trainit.WpTraineeGroupSelectDlg.editLinkedTraineesAndGroups=function(){$(trainit.WpTraineeGroupSelectDlg.dialog).dialog("option","title",strSelectTraineesOrGroups);$(trainit.WpTraineeGroupSelectDlg.dialog).dialog("open");$("#selectableGroupsAndTrainees").empty();$("#selectedGroupsAndTrainees").empty();var a="ptclients?action=gettrainees";$.ajax({url:a,cache:false,dataType:"text json",context:document.body,success:function(f){try{var c,d;for(c=0;c<f.gettrainees.groups.length;c++){var h=f.gettrainees.groups[c];d=false;$(".linkedTraineesAndGroups").find(".groupOrTrainee").each(function(e){var j=$(this).find(".groupId").val();if(j==h.id){d=true;console.log("tgid="+j)}});if(d){$("#selectedGroupsAndTrainees").append(trainit.WpProject.getTraineeOrGroupDiv(0,h.id,0,h.name))}else{$("#selectableGroupsAndTrainees").append(trainit.WpProject.getTraineeOrGroupDiv(0,h.id,0,h.name))}}for(c=0;c<f.gettrainees.trainees.length;c++){var b=f.gettrainees.trainees[c];d=false;$(".linkedTraineesAndGroups").find(".groupOrTrainee").each(function(e){var j=$(this).find(".traineeId").val();if(j==b.id){d=true;console.log("tgid="+j)}});if(d){$("#selectedGroupsAndTrainees").append(trainit.WpProject.getTraineeOrGroupDiv(0,0,b.id,b.name))}else{$("#selectableGroupsAndTrainees").append(trainit.WpProject.getTraineeOrGroupDiv(0,0,b.id,b.name))}}}catch(g){console.log(g.tostring())}}})};trainit.WpWeek=function(){};trainit.WpWeek.add=function(a){$(a).closest(".wpData").siblings(".wpChildList").append(trainit.WpWeek.toDOM(jQuery.parseJSON('{"wpweek": {"id":"0","name":"","desc":"","wpworkouts":[]}}'),true,true,true));trainit.WorkoutPlan.reIndexComponents()};trainit.WpWeek.copy=function(b){var a=$(b).clone(true,true);trainit.WpWeek.reset(a);return a};trainit.WpWeek.reset=function(a){$(a).find(".weekIdField").val("0");$(a).find(".weekDescField").val("COPY");$(a).find(".wpWorkout").each(function(b){trainit.WpWorkout.reset($(this))})};trainit.WpWeek.toJSON=function(b,a){var c='{"wpweek": {';if(a){c+='"id": "0",'}else{c+='"id": "'+$(b).find(".weekIdField").val()+'",'}c+='"name": "'+$(b).find(".weekNameField").val()+'",';c+='"desc": "'+trainit.WorkoutPlan.replaceNewlineFromJson($(b).find(".weekDescField").val())+'",';c+='"childindex": "'+$(b).data("childindex")+'",';c+='"startdate": "'+$(b).data("startdate")+'",';c+='"enddate": "'+$(b).data("enddate")+'",';c+='"wpworkouts": [';$(b).find(".wpWorkout").each(function(d){if(d>0){c+=","}c+=trainit.WpWorkout.toJSON(this,a)});c+="]";c+="}}";return c};trainit.WpWeek.toDOM=function(m,d,b,o){var n=document.createElement("div");$(n).addClass("wpWeek");$(n).addClass("wpElement");if(o){$(n).addClass("notSortable")}var j=document.createElement("div");$(j).addClass("wpHeader");var k="";if(!b){k+='<input type="hidden" class="weekIdField" value="'+m.wpweek.id+'">'}else{k+='<input type="hidden" class="weekIdField" value="0">'}var c="arrowright.png";if(o){c="arrowdown.png"}if(m.wpweek.name==""){m.wpweek.name=strWeekName}if(m.wpweek.desc==""){m.wpweek.desc=strWeekDescription}k+='<div class="grid_1 alpha"><img class="expandCollapse" src="/res/img/24/'+c+'" onclick="trainit.WorkoutPlan.showHideTree(this);return false;"></div><div class="grid_6"><h3><span class="dateRange"></span></h3></div><div style="float:right"><img src="/res/img/16/arrowup.png" onclick="trainit.WorkoutPlan.moveUp(this,\'wpWeek\');return false;"><img src="/res/img/16/arrowdown.png" onclick="trainit.WorkoutPlan.moveDown(this,\'wpWeek\');return false;">';if(!trainit.WorkoutPlan.READ_ONLY){k+='<img src="/res/img/16/trash2.png" onclick="trainit.WorkoutPlan.removeElement(this)" style="margin-left:10px" title="'+strRemove+'">'}k+="</div>";$(j).html(k);$(n).append(j);var l=document.createElement("div");$(l).addClass("wpContent");var h=document.createElement("div");$(h).addClass("wpData");k='<div class="small_separator"></div><div><span>'+m.wpweek.desc+"</span>";if(!trainit.WorkoutPlan.READ_ONLY){k+='<textarea class="weekDescField" style="display:none;height:50px" onblur="trainit.EditableText.stopEdit($(this));">'+m.wpweek.desc+'</textarea><a class="editLink" href="" onclick="trainit.EditableText.startEdit($(this));return false;"> '+strEdit+"</a></div>"}if(!trainit.WorkoutPlan.READ_ONLY){k+='<div class="small_separator"></div><div class="grid_6 alpha wpWeekSummary"><a href="" class="summaryToggle" onclick="$(this).next().toggle();return false;">'+strInitialPlan+'</a><div class="wpInitialSummary"><div><div class="wpSummaryTitle">'+strSum+'</div><div class="wpSummaryDuration">100h 00min</div></div><div class="line_separator"></div><div><div class="wpSummaryTitle">Peruskestävyys</div><div class="wpSummaryDuration">90h 00min</div><div class="wpSummaryPercent">90.0%</div></div><div><div class="wpSummaryTitle">Vauhtikestävyys</div><div class="wpSummaryDuration">5h 00min</div><div class="wpSummaryPercent">5.0%</div></div><div><div class="wpSummaryTitle">Maksimikestävyys</div><div class="wpSummaryDuration">5h 00min</div><div class="wpSummaryPercent">5.0%</div></div></div></div><div class="grid_6 omega wpWeekSummary"><a href="" class="summaryToggle" onclick="$(this).next().toggle();return false;">'+strCalculatedPlan+' <span class="wpTitleSummary">0</span></a><div class="wpSummary"><div class="by_quality"></div><div class="line_separator"></div><div class="by_sport"></div></div></div>'}else{k+='<div class="total"><h3>'+strSum+'<span class="wpSummaryDuration">0</span></h3></div><div class="grid_6 alpha wpWeekSummary"><div class="wpSummary"><h3>'+strSports+'</h3><div class="by_sport"></div></div></div><div class="grid_6 omega wpWeekSummary"><div class="wpSummary"><h3>'+strQualities+'</h3><div class="by_quality"></div></div></div>'}k+='<div class="small_separator"></div>';$(h).html(k);$(l).append(h);var g=document.createElement("div");$(g).addClass("grid_8 alpha wpWeekGrid");k="";k+='<div class="calendarheaderrow" style="border:none">';k+='<div class="grid_2 alpha calendarheadercell" style="">'+strDay+"</div>";k+='<div class="grid_5 omega calendarheadercell" style="margin-left: 10px;">'+strPlannedWorkouts+"</div>";k+="</div>";for(var f=0;f<7;f++){k+='<div class="wpCalendarRow">';k+='<div class="grid_2 alpha wpDayCell"></div>';k+='<div class="grid_5 omega wpWorkoutCell" ';if(!trainit.WorkoutPlan.READ_ONLY){k+='onclick="trainit.WpWorkout.addWpWorkout(event, this);" '}k+='style="border-left: 1px solid #8080F0;"></div>';k+="</div>"}$(g).append(k);$(l).append(g);if(!trainit.WorkoutPlan.READ_ONLY){trainit.WpWeek.makeSortable($(g).find(".wpWorkoutCell"))}if(d){var a=0;$(g).find(".wpWorkoutCell").each(function(q){for(var p=0;p<m.wpweek.wpworkouts.length;p++){var r=m.wpweek.wpworkouts[p];if(r.wpworkout.dayindex==a){$(this).append(trainit.WpWorkout.toDOM(r,true,b,false))}}a++})}else{if(m.wpweek.id>0){$(g).html('<img id="img_week_'+m.wpweek.id+'" src="/res/img/32/ajax-loader.gif">');var e="trainingplan?action=getworkouts&parent="+m.wpweek.id;$.ajax({url:e,cache:false,dataType:"text json",context:document.body,success:function(q){var p=0;$(g).find(".wpWorkoutCell").each(function(s){for(var r=0;r<q.wpworkouts.length;r++){var t=q.wpworkouts[r];if(t.wpworkout.dayindex==p){$(this).append(trainit.WpWorkout.toDOM(t,d,b,false))}}p++});trainit.WorkoutPlan.reIndexComponents();$(g).find("#img_week_"+m.wpweek.id).remove()}})}}if(!o){$(l).hide()}$(n).append(l);return n};trainit.WpWeek.makeDraggable=function(a){$(a).onselectstart=function(){return false};$(a).css("cursor","pointer");$(a).draggable({opacity:0.5,handle:".wpHeader",helper:"clone",containment:"document",revert:"invalid",zIndex:35,connectToSortable:".wpWeekList",appendTo:"body",start:function(b,c){$(c.helper).data("json",$(this).data("json"))}})};trainit.WpWeek.makeSortable=function(a){var b;$(a).sortable({forceHelperSize:true,placeholder:"wpDroppableSpace",handle:".wpHeader",items:".wpWorkout",tolerance:"pointer",connectWith:".wpWorkoutCell",appendTo:"body",start:function(c,d){if(!$(d.item).hasClass("wpTemplate")){$(d.item).addClass("noclick");b=document.createElement("div");$(b).addClass("wpOriginalPlaceHolder");$(d.item).after(b)}},stop:function(c,d){stopPropagation(c);trainit.WorkoutPlan.reIndexComponents()},beforeStop:function(c,d){if($(d.helper).hasClass("wpTemplate")){$(d.item).data("json",$(d.helper).data("json"));$(d.item).after(trainit.WpWorkout.toDOM(jQuery.parseJSON(trainit.WpWorkout.toJSON(d.item)),true,true,true));$(d.item).remove()}else{if(c.ctrlKey){$(b).after(trainit.WpWorkout.toDOM(jQuery.parseJSON(trainit.WpWorkout.toJSON(d.item)),true,true,true))}$(b).remove()}}});$(a).disableSelection()};trainit.WpWeek.openWorkout=function(c,a){var b="trainingplan?action=getworkouts&showtree=1&id="+a.wpworkout.id;$.ajax({url:b,cache:false,dataType:"text json",success:function(d){$(c).after(trainit.WpWorkout.toDOM(d.wpworkouts[0],true,true,true));$(c).remove();trainit.WorkoutPlan.reIndexComponents()}})};trainit.WpWorkout=function(){};trainit.WpWorkout.copy=function(c){var b=$(c).clone(true,true);var a=jQuery.extend(true,{},$(c).data("json"));$(b).data("json",a);trainit.WpWorkout.reset(b);alert("ORIG: $(workout).data('json').wpworkout.id = "+$(c).data("json").wpworkout.id);alert("COPY: $(copiedWorkout).data('json').wpworkout.id = "+$(b).data("json").wpworkout.id);return b};trainit.WpWorkout.reset=function(b){alert("trainit.WpWorkout.reset()");try{$(b).data("json").wpworkout.id="0"}catch(a){alert("workout has no JSON!")}};trainit.WpWorkout.addClickHandler=function(a){$(a).click(function(b){stopPropagation(b);if($(this).hasClass("noclick")){$(this).removeClass("noclick")}else{trainit.WpWorkout.editWpWorkout(null,$(this).closest(".wpWorkoutCell"),this,$(this).data("json"))}})};trainit.WpWorkout.toJSON=function(b,a){var c=$(b).data("json");if(a){c.wpworkout.id=0;for(var d=0;d<c.wpworkout.wpsubworkouts.length;d++){var e=c.wpworkout.wpsubworkouts[d].wpsubworkout;e.id=0}}return JSON.stringify(c)};trainit.WpWorkout.setHeader=function(b,a){$(b).find(".workoutIdName").html(trainit.WpWorkout.getTitle(a))};trainit.WpWorkout.getTitle=function(h){var b=h.wpworkout.name;var c=0;var a=0;var e="";var d=h.wpworkout.wpsubworkouts;for(var j=0;j<d.length;j++){c+=(1*d[j].wpsubworkout.duration);a+=(1*d[j].wpsubworkout.distance);if(e.length>2){e+=" + "}e+=trainit.WorkoutPlan.sportList[d[j].wpsubworkout.sportid]+" ";e+=trainit.WorkoutPlan.qualityList[d[j].wpsubworkout.qualityid]}if(b==""){b=e}var g=trainit.WorkoutPlan.secondsToShortHhMmSs(c);var f=b+" "+g+"/"+a.toFixed(2)+"km";return f};trainit.WpWorkout.toDOM=function(f,b,a,h){var g=document.createElement("div");$(g).addClass("wpWorkout");$(g).addClass("wpElement");$(g).attr("title",f.wpworkout.instruction);var d=document.createElement("div");$(d).addClass("wpHeader");var e="";e+='<span class="workoutIdName">'+f.wpworkout.name+"</span><span style='float:right;vertical-align:top'>";if(!trainit.WorkoutPlan.READ_ONLY){e+='<img src="/res/img/16/trash2.png" onclick="stopPropagation(event);trainit.WorkoutPlan.removeElement(this)" style="margin-left:10px" title="'+strRemove+'">'}e+="</span>";$(d).html(e);$(g).append(d);if(a){f.wpworkout.id=0;var c=f.wpworkout.wpsubworkouts;for(var j=0;j<c.length;j++){c[j].wpsubworkout.id=0}}$(g).data("json",f);if(!trainit.WorkoutPlan.READ_ONLY){trainit.WpWorkout.addClickHandler($(g))}trainit.WpWorkout.setHeader(g,f);return g};trainit.WpWorkout.makeDraggable=function(a){$(a).onselectstart=function(){return false};$(a).css("cursor","pointer");$(a).draggable({opacity:0.5,distance:30,helper:"clone",revert:"invalid",zIndex:35,connectToSortable:".wpWorkoutCell",appendTo:"body",start:function(b,c){$(c.helper).data("json",$(this).data("json"))}})};var wpWorkoutDialog;trainit.WpWorkout.initWpWorkoutDialog=function(g){if(!$("#dialog-addptworkout")){alert("PT workout dialog not found!");return}var f={};f[strSaveWorkoutToBank]=function(){trainit.WpWorkout.saveWorkoutToBank()};f[strSave]=function(){trainit.WpWorkout.saveWorkout();$(this).dialog("close")};f[strCancel]=function(){$(this).dialog("close")};$wpWorkoutDialog=$("#dialog-wpworkout").dialog({closeOnEscape:false,autoOpen:false,resizable:false,modal:false,overlay:{backgroundColor:"#ffffff",opacity:0.2},dialogClass:"alert",title:g,position:"center",width:760,zIndex:10,buttons:f});var b='<div class="container_16" style="margin:0;width:720px">';b+='<div class="grid_12 alpha">';b+='<div class="grid_6 alpha">';b+='<div class="small_separator"></div>';b+='<div class="grid_2 alpha"><label>'+strStartTime+"</label></div>";b+='<div class="grid_4 omega"><input class="inputtime" type="text" id="starttime" name="starttime" value=""></div>';b+='<div class="small_separator"></div>';b+='<div class="grid_2 alpha"><label>'+strName+"</label></div>";b+='<div class="grid_4 omega"><input class="grid_4_input" type="text" id="name" name="name" value=""></div>';b+='<div class="small_separator"></div>';b+='<div class="small_separator"></div>';b+='<div class="grid_2 alpha"><label>'+strLocation+"</label></div>";b+='<div class="grid_4 omega"><input class="grid_4_input" type="text" id="location" name="location" value=""></div>';b+='<div class="small_separator"></div>';b+='<div class="grid_2 alpha"><label>'+strCalories+"</label></div>";b+='<div class="grid_4 omega"><input class="inputint" type="text" id="calories" name="calories" value=""></div>';b+='<div class="small_separator"></div>';b+='<div class="grid_2 alpha"><label>'+strMinHr+"</label></div>";b+='<div class="grid_4 omega"><input class="inputint" type="text" id="minhr" name="minhr" value=""></div>';b+='<div class="small_separator"></div>';b+='<div class="grid_2 alpha"><label>'+strMaxHr+"</label></div>";b+='<div class="grid_4 omega"><input class="inputint" type="text" id="maxhr" name="maxhr" value=""></div>';b+='<div class="small_separator"></div>';b+='<div class="grid_2 alpha"><label>'+strAvgHr+"</label></div>";b+='<div class="grid_4 omega"><input class="inputint" type="text" id="avghr" name="avghr" value=""></div>';b+='<input type="hidden" id="epoc" name="epoc" value="">';b+='<input type="hidden" id="te" name="te" value="">';b+="</div>";b+='<div class="grid_5 omega prefix_1">';b+='<div class="small_separator"></div>';b+='<div class="grid_2 alpha"><label>'+strInstructions+"</label></div>";b+='<div class="small_separator"></div>';b+='<div class="grid_5 alpha"><textarea class="grid_5_textarea" style="height:120px" id="instruction" name="instruction" cols=30 rows=4></textarea></div>';b+='<div class="small_separator"></div>';b+='<input class="inputint" type="hidden" id="stress" name="stress" value="">';b+="<div><label>"+strStress+'</label> <label id="stressText"></label></div>';b+='<div class="small_separator"></div>';b+='<div class="grid_4 alpha" style="height:25px;"><div id="stressSlider"></div></div>';b+='<div class="grid_1 omega" id="stressImgDiv"><img id="stressImg"></div>';b+='<input class="inputint" type="hidden" id="feeling" name="feeling" value="">';b+="<div><label>"+strFeeling+'</label> <label id="feelingText"></label></div>';b+='<div class="small_separator"></div>';b+='<div class="grid_4 alpha" style="height:25px;"><div id="feelingSlider"></div></div>';b+='<div class="grid_1 omega" id="feelingImgDiv"><img id="feelingImg"></div>';b+="</div>";b+="</div>";b+='<div class="large_separator"></div>';b+="<div style='margin-left:10px'>";b+='<div class="grid_3 alpha" style="font-weight:bold">'+strSport+"</div>";b+='<div class="grid_3" style="font-weight:bold">'+strQuality+"</div>";b+='<div class="grid_2" style="font-weight:bold">'+strDuration+"</div>";b+='<div class="grid_1 pace_speed_header_cell">'+strDistance+"</div>";b+='<div class="grid_1 pace_speed_header_cell">'+strPace+"</div>";b+='<div class="grid_1 omega pace_speed_header_cell">'+strSpeed+"</div>";b+="</div>";b+='<div id="sworows">';b+="</div>";b+='<div id="addmore" style="margin-top:5px"><img class="icon" alt="+" src="/res/img/16/add.png" title="'+strAdd+'"> <a href="" onclick="trainit.WpWorkout.createSubWorkoutRow();return false;">'+strAdd+"</a></div>";b+="</div>";$wpWorkoutDialog.html(b);$("#sworows").sortable({placeholder:"wpDroppableSpace",items:".wpSubWorkout",tolerance:"pointer",stop:function(j,k){if(j.ctrlKey){var h=$(k.item.clone());$(k.item).after(h)}}});var e=$("#stress");var d=$("#stressSlider").slider({min:0,max:5,step:1,range:"min",value:$(e).val(),slide:function(h,j){$(e).val(j.value);$("#stressText").html(j.value+" / 5");$("#stressImg").attr("src","/res/img/24/stress"+j.value+".png")},change:function(h,j){$(e).val(j.value);$("#stressText").html(j.value+" / 5");$("#stressImg").attr("src","/res/img/24/stress"+j.value+".png")}});var a=$("#feeling");var c=$("#feelingSlider").slider({min:0,max:5,step:1,range:"min",value:$(a).val(),slide:function(h,j){$(a).val(j.value);$("#feelingText").html(j.value+" / 5");$("#feelingImg").attr("src","/res/img/24/feel"+j.value+".png")},change:function(h,j){$(a).val(j.value);$("#feelingText").html(j.value+" / 5");$("#feelingImg").attr("src","/res/img/24/feel"+j.value+".png")}})};trainit.WpWorkout.subWorkoutRowCount=0;trainit.WpWorkout.createSubWorkoutRow=function(o){var q=trainit.WpWorkout.subWorkoutRowCount;trainit.WpWorkout.subWorkoutRowCount++;var l=document.createElement("div");$(l).addClass("grid_12 alpha wpElement wpSubWorkout");var b=0;var p=0;var k=0;var h=0;var e=0;var j=0;var a=0;var c=strSportName;var f=strQualityName;var n=' style="color:#aaa" ';var m=' style="color:#aaa" ';if(o){b=o.wpsubworkout.id;p=o.wpsubworkout.sportid;k=o.wpsubworkout.qualityid;if(p>0){c=trainit.WorkoutPlan.sportList[p];n=""}if(k>0){f=trainit.WorkoutPlan.qualityList[k];m=""}var d=o.wpsubworkout.duration*1;h=Math.floor(d/3600);e=Math.floor((d%3600)/60);j=(d-3600*h-60*e)*1;a=o.wpsubworkout.distance}if(e<10){e="0"+e}if(j<10){j="0"+j}var g='<input type="hidden" class="subworkoutid" name="subworkoutid'+q+'" value="'+b+'">';g+='<div class="grid_3 alpha">';g+='<input type="hidden" class="subsport" id="subsport'+q+'" name="subsport'+q+'" value="'+p+'">';g+='<input type="text" class="subsportname grid_3_input" '+n+' id="subsportname'+q+'" name="subsportname'+q+'" title2="'+c+'" onclick="clearHelpText(this);" value="'+c+'">';g+="</div>";g+='<div class="grid_3">';g+='<input type="hidden" class="subquality" id="subquality'+q+'" name="subquality'+q+'" value="'+k+'">';g+='<input type="text" class="subqualityname grid_3_input" '+m+' id="subqualityname'+q+'" name="subqualityname'+q+'" title2="'+f+'" onclick="clearHelpText(this);" value="'+f+'">';g+="</div>";g+='<div class="grid_2">';g+='<input class="inputint subduration_h" style="width:25px" type="text" id="subduration_h'+q+'" name="subduration_h'+q+'" onclick="textFieldOnClick(this)" onchange="checkInt(this,10);calculateSubSpeed('+q+');" value="'+h+'">';g+='<input class="inputint subduration_min" style="width:25px" type="text" id="subduration_m'+q+'" name="subduration_m'+q+'" onclick="textFieldOnClick(this)" onchange="checkInt(this,59);calculateSubSpeed('+q+');" value="'+e+'">';g+='<input class="inputint subduration_s" style="width:25px" type="text" id="subduration_s'+q+'" name="subduration_s'+q+'" onclick="textFieldOnClick(this)" onchange="checkInt(this,59);calculateSubSpeed('+q+');" value="'+j+'">';g+="</div>";g+='<div class="grid_1"><input class="inputfloat sublength" type="text" id="sublength'+q+'" name="sublength'+q+'" onclick="textFieldOnClick(this)" onchange="checkFloat(this);calculateSubSpeed('+q+');" value="'+a+'"></div>';g+='<div class="grid_1 pace_speed_cell"><label id="sub_pace'+q+'"></label></div>';g+='<div class="grid_1 pace_speed_cell"><label id="sub_speed'+q+'"></label></div>';g+='<div class="grid_1 omega" style="text-align:right"><img src="/res/img/16/trash2.png" onclick="trainit.WorkoutPlan.removeElement(this)" title="'+strRemove+'"></div>';$(l).html(g);$("#sworows").append(l);makeAutoCompleteSportSearch("#subsportname"+q);makeAutoCompleteQualitySearch("#subqualityname"+q);$(l).append('<div id="subsubworows"></div>');$(l).find("#subsubworows").sortable({placeholder:"wpDroppableSpace",items:".wpSubSubWorkoutRow",tolerance:"pointer"})};trainit.WpWorkout.createSubSubWorkoutRow=function(){var a='<div class="wpSubSubWorkoutRow wpElement"><div class="grid_4 alpha"><input class="grid_4_input" type="text" value="nimi"></div><div class="grid_1"><input class="inputint" type="text" value="rounds"></div><div class="grid_1"><input class="inputint" type="text" value="reps"></div><div class="grid_1"><input class="inputint" type="text" value="min,km,kg,s"></div><div class="grid_1"><input class="inputint" type="text" value="roundrest"></div><div class="grid_1"><input class="inputint" type="text" value="represt"></div><img style="float:right" src="/res/img/16/trash2.png" onclick="$(this).closest(\'.wpElement\').remove()" title="'+strRemove+'"></div>';$("#subsubworows").append(a)};var woadlgid;trainit.WpWorkout.addWpWorkout=function(c,b,a){stopPropagation(c);$("#dialog-wpworkout").data("workoutParent",b);$("#dialog-wpworkout").data("workout",null);$("#dialog-wpworkout #name").val("");$("#dialog-wpworkout #starttime").val("");$("#dialog-wpworkout #location").val("");$("#dialog-wpworkout #calories").val("0");$("#dialog-wpworkout #avghr").val("0");$("#dialog-wpworkout #minhr").val("0");$("#dialog-wpworkout #maxhr").val("0");$("#dialog-wpworkout #epoc").val("0");$("#dialog-wpworkout #te").val("0");$("#dialog-wpworkout #instruction").val("");$("#dialog-wpworkout #stress").val("0");$("#dialog-wpworkout #feeling").val("0");$("#dialog-wpworkout #stressSlider").slider("value",0);$("#dialog-wpworkout #feelingSlider").slider("value",0);$("#sworows").empty();trainit.WpWorkout.createSubWorkoutRow();$wpWorkoutDialog.dialog("option","title","Uusi harjoitus");$wpWorkoutDialog.dialog("open");return false};trainit.WpWorkout.editWpWorkout=function(f,d,a,b){stopPropagation(f);$("#dialog-wpworkout").data("workoutParent",d);$("#dialog-wpworkout").data("workout",a);$("#dialog-wpworkout").data("json",b);$("#dialog-wpworkout #name").val(b.wpworkout.name);$("#dialog-wpworkout #starttime").val(b.wpworkout.starttime);$("#dialog-wpworkout #location").val(b.wpworkout.location);$("#dialog-wpworkout #calories").val(b.wpworkout.calories);$("#dialog-wpworkout #minhr").val(b.wpworkout.minhr);$("#dialog-wpworkout #avghr").val(b.wpworkout.avghr);$("#dialog-wpworkout #maxhr").val(b.wpworkout.maxhr);$("#dialog-wpworkout #epoc").val(b.wpworkout.epoc);$("#dialog-wpworkout #te").val(b.wpworkout.te);$("#dialog-wpworkout #instruction").val(b.wpworkout.instruction);$("#dialog-wpworkout #stress").val(b.wpworkout.stress);$("#dialog-wpworkout #feeling").val(b.wpworkout.feeling);$("#dialog-wpworkout #stressSlider").slider("value",b.wpworkout.stress);$("#dialog-wpworkout #feelingSlider").slider("value",b.wpworkout.feeling);$("#sworows").empty();for(var c=0;c<b.wpworkout.wpsubworkouts.length;c++){trainit.WpWorkout.createSubWorkoutRow(b.wpworkout.wpsubworkouts[c])}$wpWorkoutDialog.dialog("option","title",b.wpworkout.name);$wpWorkoutDialog.dialog("open");return false};trainit.WpWorkout.createJsonForNewWorkout=function(){var a='{"wpworkout": {"id":"0","dayindex":"0","childindex":"0","name":"","starttime":"","location":"","calories":"0","minhr":"0","maxhr":"0","avghr":"0","epoc":"0","te":"0","instruction":"","stress":"0","feeling":"0","wpsubworkouts":[]}}';return jQuery.parseJSON(a)};trainit.WpWorkout.saveWorkout=function(){var b=$("#dialog-wpworkout").data("workoutParent");var c=$("#dialog-wpworkout").data("workout");var a=trainit.WpWorkout.getModifiedJson(c);if(c){trainit.WpWorkout.setHeader(c,a)}else{$(b).append(trainit.WpWorkout.toDOM(a,true,false))}trainit.WorkoutPlan.reIndexComponents()};trainit.WpWorkout.getModifiedJson=function(c){var a=$("#dialog-wpworkout").data("json");if(!c){a=trainit.WpWorkout.createJsonForNewWorkout()}a.wpworkout.name=$("#dialog-wpworkout #name").val();a.wpworkout.starttime=$("#dialog-wpworkout #starttime").val();a.wpworkout.location=$("#dialog-wpworkout #location").val();a.wpworkout.calories=$("#dialog-wpworkout #calories").val();a.wpworkout.minhr=$("#dialog-wpworkout #minhr").val();a.wpworkout.maxhr=$("#dialog-wpworkout #maxhr").val();a.wpworkout.avghr=$("#dialog-wpworkout #avghr").val();a.wpworkout.epoc=$("#dialog-wpworkout #epoc").val();a.wpworkout.te=$("#dialog-wpworkout #te").val();a.wpworkout.instruction=trainit.WorkoutPlan.replaceNewlineFromJson($("#dialog-wpworkout #instruction").val());a.wpworkout.stress=$("#dialog-wpworkout #stress").val();a.wpworkout.feeling=$("#dialog-wpworkout #feeling").val();var b="[";$("#dialog-wpworkout").find(".wpSubWorkout").each(function(d){console.log("Found subworkout!");if(d>0){b+=","}b+='{"wpsubworkout":{';b+='"id":"'+$(this).find(".subworkoutid").val()+'",';b+='"childindex":"'+d+'",';b+='"sportid":"'+$(this).find(".subsport").val()+'",';b+='"qualityid":"'+$(this).find(".subquality").val()+'",';var j=$(this).find(".subduration_h").val()*1;var e=$(this).find(".subduration_min").val()*1;var g=$(this).find(".subduration_s").val()*1;var f=3600*j+60*e+g;console.log("h="+j+", m="+e+", s="+g+"-> dur="+f);b+='"duration":"'+f+'",';b+='"distance":"'+$(this).find(".sublength").val()+'",';b+='"wpsubsubworkouts":[]';b+="}}"});b+="]";console.log("subWorkouts="+b);a.wpworkout.wpsubworkouts=jQuery.parseJSON(b);console.log("JSON->"+JSON.stringify(a));return a};trainit.WpWorkout.saveWorkoutToBank=function(){var d=$("#dialog-wpworkout").data("workout");var a=trainit.WpWorkout.getModifiedJson(d);a.wpworkout.startdate=getSqlFormatDate(new Date());a.wpworkout.id=0;for(var b=0;b<a.wpworkout.wpsubworkouts.length;b++){a.wpworkout.wpsubworkouts[b].wpsubworkout.id=0}var c="trainingplan";console.log("json size="+a.length);console.log(a);$.ajax({url:c,type:"POST",cache:false,data:{action:"saveworkouttobank",wpworkout:JSON.stringify(a)},dataType:"text json",success:function(e){if(e){alert(JSON.stringify(e));trainit.WpTemplate.search()}}})};Namespace.Manager.Register("trainit");trainit.shop=function(b){this.name=b;this.getName=function(){return name};var a="Kesto (pv)";var c="Kuvaus";var e="Hinta";var d;this.initTrainingProgramTable=function(f){$("#"+f).html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="trainingProgramTable"><thead><tr><th>'+c+"</th><th>"+a+"</th><th>"+e+"</th><th></th></tr></thead><tbody>");d=$("#trainingProgramTable").dataTable({bJQueryUI:true,bScrollCollapse:false,sScrollY:"450px",bPaginate:false,sDom:'<"grid_12 alpha"f>t',aaSorting:[[0,"asc"]],bAutoWidth:false,aoColumnDefs:[{sWidth:"100px",aTargets:[1]},{sWidth:"50px",aTargets:[2]},{sWidth:"120px",aTargets:[3]},{sType:"numeric",aTargets:[1]},{sClass:"right_aligned",aTargets:[2]},{bSearchable:false,aTargets:[3]},{bSortable:false,aTargets:[3]}],oLanguage:{sProcessing:"Odota...",sZeroRecords:"Ei treeniohjelmia.",sEmptyTable:"No data available in table",sInfo:"Yhteensä _TOTAL_ ohjelmasta",sInfoEmpty:"Ei testejä",sInfoFiltered:"(_MAX_ ohjelmasta)",sInfoPostFix:"",sSearch:"Etsi",sUrl:"",fnInfoCallback:null}});$(".dataTables_filter").css("float","none").css("text-align","left")};this.getTrainingPrograms=function(){d.fnClearTable();var f="shop?action=getallshopitems";$.ajax({url:f,context:document.body,success:function(l){if(l){if(l.getallshopitems){if(l.getallshopitems.shopitems){for(var j=0;j<l.getallshopitems.shopitems.length;j++){var g=l.getallshopitems.shopitems[j];var n=g.id;var h=g.name;var m=g.desc;var k=g.price;d.fnAddData(["<a href=''>"+h+"</a> "+m,"",k,'<button class="tableButton">'+strAddToCart+"</button>"])}$(".tableButton").button()}}}}})};this.getShopItems=function(){alert("getShopItems()")};trainit.shop.searchShopItem=function(){alert("searchShopItem()")}};var trainitShop;trainit.shop.init=function(){trainitShop=new trainit.shop("TrainIt Shop")};var ONE_DAY_IN_MILLI_SECONDS=1000*60*60*24;$.Class("trainit.WeightLossWizard",{count:0},{init:function(b,a){this.name=b;this.mus=a;this.trainingTimes=0;this.trainingHours=0;this.weightLossMethod=1;this.diets=[];this.constructor.count++;var d={};this.wlwDialog=$("#dialog-weightlosswizard").dialog({closeOnEscape:true,autoOpen:false,resizable:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},dialogClass:"alert",title:b,position:"center",width:700,height:600,zIndex:10,buttons:d});var c='<div class="container_16" style="width:660px"><div id="wizardContent" class="weightLossWizardContent"></div><div class="wlwLine"></div><div id="wizardLicense" class="wlwQuestionRowBoxedRed" style="display:none">'+noWeightLossLicense+'</div><div id="wizardButtons" class="weightLossWizardButtons"></div></div>';$(this.wlwDialog).html(c);this.initViews()},open:function(){$(this.wlwDialog).dialog("open");this.show(1);var a=this;$.ajax({url:"weightLossWizard?action=getdata",cache:false,dataType:"text json",context:document.body,success:function(d){if(d){if(!d.license.valid){$("#wizardLicense").show()}$("#wlwStartDate").val(d.user.startdate);$("#wlwStartAge").val(d.user.age);if(a.mus==1){$("#wlwStartHeightFeet").val(d.user.heightft);$("#wlwStartHeightInch").val(d.user.heightin.toFixed(1));$("#wlwStartWeight").val(d.user.weight.toFixed(1))}else{$("#wlwStartHeight").val(d.user.height.toFixed(1));$("#wlwStartWeight").val(d.user.weight.toFixed(1))}$("#wlwGender").val(d.user.gender);a.calculateBmi();if(d.weightplan){$("#wlwStartDate").val(d.weightplan.startdate);$("#wlwStartWeight").val(d.weightplan.startweight);$("#wlwEndDate").val(d.weightplan.enddate);$("#wlwEndWeight").val(d.weightplan.endweight)}$("#wlwDiet").html("");for(var c=0;c<d.diets.length;c++){var b=d.diets[c];a.diets[c]=new trainit.Diet(b.id,b.name,b.minprot,b.maxprot,b.mincarb,b.maxcarb,b.minfat,b.maxfat);$("#wlwDiet").append('<option value="'+b.id+'">'+b.name+"</option>")}}}});$("#wlwGender").focus();$(".inputdatetime,.inputdate").datepicker({flat:true,dateFormat:"yy-mm-dd",yearRange:"-100:+20",showButtonPanel:true,changeMonth:true,changeYear:true,showWeek:true,firstDay:1,numberOfMonths:1,showOtherMonths:true,selectOtherMonths:true},$.datepicker.regional.fi)},show:function(a){$("#wizardContent").children().hide();$("#wizardButtons").children().hide();$($("#wizardContent").children().get(a-1)).show();$($("#wizardButtons").children().get(a-1)).show();this.calculateValues();this.calculateBmi()},initViews:function(){var b=this;var c=this.wlwDialog;$("#wizardContent").empty();$("#wizardButtons").empty();var a='<div class="wlwView"><h1 class="wlwTitle">'+wlwStartPageTitle+'</h1><div class="wlwQuestionRowBoxed">'+wlwStartPageParagraph1+'<div class="small_separator"></div>'+wlwStartPageParagraph2+'</div><div class="large_separator"></div><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+wlwStartDate+'</div><div class="grid_4 omega"><input class="inputdatetime" id="wlwStartDate"></div></div><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+wlwGender+'</div><div class="grid_4 omega"><select id="wlwGender" style="width:86px"><option value="0">'+wlwFemale+'</option><option value="1">'+wlwMale+'</option></select></div></div><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+wlwAge+'</div><div class="grid_4 omega"><input type="text" class="inputfloat" id="wlwStartAge"> '+strYears+'</div></div><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+wlwHeight+"</div>";if(this.mus==1){a+='<div class="grid_2" style="width:70px"><input type="text" class="inputfloat" id="wlwStartHeightFeet"> ft</div><div class="grid_2 omega" style="width:130px"><input type="text" class="inputfloat" id="wlwStartHeightInch"> in</div></div>'}else{a+='<div class="grid_4 omega"><input type="text" class="inputfloat" id="wlwStartHeight"> cm</div></div>'}a+='<div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+wlwStartWeight+"</div>";if(this.mus==1){a+='<div class="grid_4"><input type="text" class="inputfloat" id="wlwStartWeight"> lbs</div></div>'}else{a+='<div class="grid_4"><input type="text" class="inputfloat" id="wlwStartWeight"> kg</div></div>'}a+='<div class="wlwQuestionRow"><div class="grid_4 alpha" id="wlwBmiNote"></div><div class="grid_4 omega wlwQuestion" id="wlwBmiVal"></div></div>';$("#wizardContent").append(a);b.calculateBmi();$("#wizardButtons").append('<div class="wlwButtons" style="text-align:right"><button id="wlwButton1_1" class="weightLossWizardButton">'+strStart+"</button></div>");$("#wlwButton1_1").click(function(){b.show(2)});$("#wlwStartHeight, #wlwStartHeightFeet, #wlwStartHeightInch, #wlwStartWeight").change(function(){b.calculateBmi()});var d=" kg";if(b.mus==1){d=" lbs"}$("#wizardContent").append('<div class="wlwView"><h1 class="wlwTitle">'+wlwMethodPageTitle+'</h1><div class="wlwQuestionRowBoxed">'+wlwMethodPageHelp+'</div><select id="wlwWeightLossMethod" class="wlwList" size=5><option value="1">'+wlwMethod1+'</option><option value="2">'+wlwMethod2+'</option><option value="3">'+wlwMethod3+'</option><option value="4">'+wlwMethod4+'</option><option value="5">'+wlwMethod5+'</option><option value="6">'+wlwMethod6+'</option><option value="7">'+wlwMethod7+'</option><option value="8">'+wlwMethod8+'</option></select><div class="small_separator"></div><div id="wlwWeightLossMethodContent"><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+wlwEndDate+'</div><div class="grid_4 omega"><input class="inputdatetime" id="wlwEndDate"></div></div><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+wlwEndWeight+'</div><div class="grid_2"><input type="text" class="inputfloat" id="wlwEndWeight"> '+d+'</div><div class="grid_2 omega" id="wlwEndBmi"></div></div><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+wlwWeightLoss+'</div><div class="grid_4 omega"><input type="text" class="inputfloat" id="wlwWeightLoss"> '+d+'</div></div><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+wlwWeightLossPerWeek+'</div><div class="grid_4 omega"><input type="text" class="inputfloat" id="wlwWeightLossPerWeek"> '+d+wlwPerWeek+'</div></div><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+wlwMinusCaloriesPerDay+'</div><div class="grid_4 omega"><input type="text" class="inputint" id="wlwMinusCaloriesPerDay"> kcal</div></div></div></div>');$("#wlwWeightLossMethod").val(1);$("#wlwEndDate, #wlwEndWeight, #wlwWeightLoss, #wlwWeightLossPerWeek, #wlwMinusCaloriesPerDay").change(function(){b.calculateValues();b.calculateBmi()});$("#wlwWeightLossMethod").change(function(){b.showWeightLossMethod(this.value)});$("#wizardButtons").append('<div class="wlwButtons" style="text-align:right"><button id="wlwButton2_1" class="weightLossWizardButton">'+strPrev+'</button><button id="wlwButton2_2" class="weightLossWizardButton">'+strNext+"</button></div>");$("#wlwButton2_1").click(function(){b.show(1)});$("#wlwButton2_2").click(function(){b.show(3)});$("#wlwWeightLossMethod").val(b.weightLossMethod);b.showWeightLossMethod(this.weightLossMethod);$("#wizardContent").append('<div class="wlwView"><h1 class="wlwTitle">'+wlwDietPageTitle+'</h1><div class="wlwQuestionRowBoxed">'+wlwDietPageHelp+'</div><select id="wlwDiet" class="wlwList" size=5></select><div class="small_separator"></div><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion"></div><div class="grid_2 wlwQuestion">'+wlwMinPercent+'</div><div class="grid_2 omega wlwQuestion">'+wlwMaxPercent+'</div></div><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+wlwProteinPercent+'</div><div class="grid_2"><input type="text" class="inputint" id="wlwMinProt"> %</div><div class="grid_2 omega"><input type="text" class="inputint" id="wlwMaxProt"> %</div></div><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+wlwCarbPercent+'</div><div class="grid_2"><input type="text" class="inputint" id="wlwMinCarb"> %</div><div class="grid_2 omega"><input type="text" class="inputint" id="wlwMaxCarb"> %</div></div><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+wlwFatPercent+'</div><div class="grid_2"><input type="text" class="inputint" id="wlwMinFat"> %</div><div class="grid_2 omega"><input type="text" class="inputint" id="wlwMaxFat"> %</div></div></div>');$("#wizardButtons").append('<div class="wlwButtons" style="text-align:right"><button id="wlwButton3_1" class="weightLossWizardButton">'+strPrev+'</button><button id="wlwButton3_2" class="weightLossWizardButton">'+strNext+"</button></div>");$("#wlwButton3_1").click(function(){b.show(2)});$("#wlwButton3_2").click(function(){b.calculateBmr();b.show(4)});$("#wlwDiet").click(function(){$("#wlwMinProt").val(b.diets[this.selectedIndex].minProt);$("#wlwMaxProt").val(b.diets[this.selectedIndex].maxProt);$("#wlwMinCarb").val(b.diets[this.selectedIndex].minCarbs);$("#wlwMaxCarb").val(b.diets[this.selectedIndex].maxCarbs);$("#wlwMinFat").val(b.diets[this.selectedIndex].minFat);$("#wlwMaxFat").val(b.diets[this.selectedIndex].maxFat)});var a='<div class="wlwView"><h1 class="wlwTitle">'+wlwBmrPageTitle+'</h1><div class="wlwQuestionRowBoxed">'+wlwBmrPageHelp+'</div><div class="large_separator"></div><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+activity+'</div><div class="grid_4 omega"><select id="wlwBcActivity"><option value="11">'+activityVeryLow+'</option><option value="12">'+activityLow+'</option><option value="13">'+activityNormal+'</option><option value="14">'+activityHigh+'</option><option value="15">'+activityVeryHigh+'</option></select></div><div class="large_separator"></div><div class="wlwQuestionRow"><div class="grid_4 alpha wlwQuestion">'+wlwBmr+'</div><div class="grid_4 omega"><input class="inputint" id="wlwBmr"></div></div>';$("#wizardContent").append(a);$("#wlwBcActivity").val(13);$("#wlwBcActivity").change(function(){b.calculateBmr()});$("#wizardButtons").append('<div class="wlwButtons" style="text-align:right"><button id="wlwButton4_1" class="weightLossWizardButton">'+strPrev+'</button><button id="wlwButton4_2" class="weightLossWizardButton">'+strNext+"</button></div>");$("#wlwButton4_1").click(function(){b.show(3)});$("#wlwButton4_2").click(function(){b.show(5)});$("#wizardContent").append('<div class="wlwView"><h1 class="wlwTitle">'+wlwTrainingPageTitle+'</h1><div class="wlwQuestionRow"><div class="grid_5 alpha wlwQuestion">'+wlwTrainingHours+'</div><div class="grid_4 omega"><input type="text" class="inputint" id="wlwTrainingHours" value="'+b.trainingHours+'"> h</div></div><div class="wlwQuestionRow"><div class="grid_5 alpha wlwQuestion">'+wlwTrainingTimes+'</div><div class="grid_4 omega"><input type="text" class="inputint" id="wlwTrainingTimes" value="'+b.trainingTimes+'"></div></div><div class="wlwQuestionRow" id="wlwWeeklyCalorieBurn"></div><div class="wlwQuestionRowBoxed" id="wlwWeeklyTrainingTip"></div></div>');b.calculateTraining();$("#wizardButtons").append('<div class="wlwButtons" style="text-align:right"><button id="wlwButton5_1" class="weightLossWizardButton">'+strPrev+'</button><button id="wlwButton5_2" class="weightLossWizardButton">'+strNext+"</button></div>");$("#wlwButton5_1").click(function(){b.calculateBmr();b.show(4)});$("#wlwButton5_2").click(function(){b.show(6);b.save()});$("#wlwTrainingTimes, #wlwTrainingHours").change(function(){b.calculateTraining()});$("#wizardContent").append('<div class="wlwView"><h1 class="wlwTitle">'+wlwSummaryPageTitle+'</h1><p><img id="wlwWeightGraph"></p></div>');$("#wizardButtons").append('<div class="wlwButtons" style="text-align:right"><button id="wlwButton6_1" class="weightLossWizardButton">'+strPrev+'</button><button id="wlwButton6_2" class="weightLossWizardButton">'+strNext+"</button></div>");$("#wlwButton6_1").click(function(){b.show(5)});$("#wlwButton6_2").click(function(){b.show(7)});$("#wizardContent").append('<div class="wlwView"><h1 class="wlwTitle">'+wlwFinishPageTitle+'</h1><div class="wlwQuestionRowBoxedRed" id="wlwNoLicense">'+noWeightLossLicense+'<div class="large_separator"></div><div class="grid_6 alpha">'+weightLossLicensePrice+' 4.99€/4 viikkoa</div><div class="grid_4 omega"><button>'+buyWeightLossLicense+"</button></div></div></div>");$("#wizardButtons").append('<div class="wlwButtons" style="text-align:right"><button id="wlwButton7_1" class="weightLossWizardButton">'+strPrev+'</button><button id="wlwButton7_2" class="weightLossWizardButton">'+strFinish+"</button></div>");$("#wlwButton7_1").click(function(){b.show(6)});$("#wlwButton7_2").click(function(){$(c).dialog("close")})},calculateBmi:function(){var d,a,b;if(this.mus==1){d=($("#wlwStartHeightFeet").val()*30.48+$("#wlwStartHeightInch").val()*2.54)/100;a=$("#wlwStartWeight").val()/2.205;b=$("#wlwEndWeight").val()/2.205}else{d=$("#wlwStartHeight").val()/100;a=$("#wlwStartWeight").val();b=$("#wlwEndWeight").val()}var e=a/(d*d);var f=b/(d*d);var c="";if(e>40){c=BMISicklyObesity}else{if(e>35){c=BMIDifficultObesity}else{if(e>30){c=BMISignificantObesity}else{if(e>25){c=BMILightObesity}else{if(e>20){c=BMINormal}else{c=BMIUnderWeight}}}}}$("#wlwBmiNote").html(wlwYourBmiIs);$("#wlwBmiVal").html(e.toFixed(1)+" ("+c+")");$("#wlwEndBmi").html("BMI = "+f.toFixed(1))},calculateBmr:function(){var e=$("#wlwGender").val();var d,c;if(this.mus==1){d=($("#wlwStartHeightFeet").val()*30.48+$("#wlwStartHeightInch").val()*2.54);c=$("#wlwStartWeight").val()/2.205;wEnd=$("#wlwEndWeight").val()/2.205}else{d=$("#wlwStartHeight").val();c=$("#wlwStartWeight").val();wEnd=$("#wlwEndWeight").val()}var b=$("#wlwStartAge").val();var f;if(e==0){f=(10*c)+(6.25*d)-(5*b)-161}else{f=(10*c)+(6.25*d)-(5*b)+5}f=(f*$("#wlwBcActivity").val())/10;$("#wlwBmr").val(f.toFixed(0))},calculateTraining:function(){var a=$("#wlwTrainingHours").val();var b=a*500;$("#wlwWeeklyCalorieBurn").html(wlwYourEstimatedWorkoutCalorieBurn+" "+b+" kcal"+wlwPerWeek);$("#wlwWeeklyTrainingTip").removeClass("wlwQuestionRowBoxed wlwQuestionRowBoxedRed wlwQuestionRowBoxedGreen");if(a<3){$("#wlwWeeklyTrainingTip").addClass("wlwQuestionRowBoxedRed");$("#wlwWeeklyTrainingTip").html(wlwTrainingNothing)}else{if(a<6){$("#wlwWeeklyTrainingTip").addClass("wlwQuestionRowBoxed");$("#wlwWeeklyTrainingTip").html(wlwTrainingTooLittle)}else{if(a<10){$("#wlwWeeklyTrainingTip").addClass("wlwQuestionRowBoxedGreen");$("#wlwWeeklyTrainingTip").html(wlwTrainingProper)}else{$("#wlwWeeklyTrainingTip").addClass("wlwQuestionRowBoxedGreen");$("#wlwWeeklyTrainingTip").html(wlwTrainingTooMuch)}}}},showWeightLossMethod:function(a){this.weightLossMethod=a;$("#wlwEndDate, #wlwEndWeight, #wlwWeightLoss, #wlwWeightLossPerWeek, #wlwMinusCaloriesPerDay").attr("disabled",true);if(a==1){$("#wlwEndDate, 	#wlwEndWeight").attr("disabled",false)}else{if(a==2){$("#wlwEndDate, 	#wlwWeightLoss").attr("disabled",false)}else{if(a==3){$("#wlwEndDate, 	#wlwWeightLossPerWeek").attr("disabled",false)}else{if(a==4){$("#wlwEndDate, 	#wlwMinusCaloriesPerDay").attr("disabled",false)}else{if(a==5){$("#wlwEndWeight, 	#wlwWeightLossPerWeek").attr("disabled",false)}else{if(a==6){$("#wlwEndWeight, 	#wlwMinusCaloriesPerDay").attr("disabled",false)}else{if(a==7){$("#wlwWeightLoss, #wlwWeightLossPerWeek").attr("disabled",false)}else{if(a==8){$("#wlwWeightLoss, #wlwMinusCaloriesPerDay").attr("disabled",false)}}}}}}}}},calcDayDiff:function(c,b){var e=new Date(c.substring(0,4),c.substring(5,7)-1,c.substring(8,10));var d=new Date(b.substring(0,4),b.substring(5,7)-1,b.substring(8,10));var a=d.getTime()-e.getTime();return a/ONE_DAY_IN_MILLI_SECONDS},calculateValues:function(){var e=this.weightLossMethod;this.startDate=$("#wlwStartDate").val();this.startWeight=$("#wlwStartWeight").val();if(e==1){this.endDate=$("#wlwEndDate").val();this.endWeight=$("#wlwEndWeight").val();this.weightLoss=-(this.endWeight-this.startWeight);$("#wlwWeightLoss").val(this.weightLoss);var a=this.calcDayDiff(this.startDate,this.endDate);this.weightLossPerWeek=(7*this.weightLoss)/a;$("#wlwWeightLossPerWeek").val(this.weightLossPerWeek.toFixed(2));this.minusCaloriesPerDay=(7000*this.weightLoss)/a;$("#wlwMinusCaloriesPerDay").val(this.minusCaloriesPerDay.toFixed(0))}else{if(e==2){this.endDate=$("#wlwEndDate").val();this.weightLoss=$("#wlwWeightLoss").val();this.endWeight=this.startWeight-this.weightLoss;$("#wlwEndWeight").val(this.endWeight);var a=this.calcDayDiff(this.startDate,this.endDate);this.weightLossPerWeek=(7*this.weightLoss)/a;$("#wlwWeightLossPerWeek").val(this.weightLossPerWeek.toFixed(2));this.minusCaloriesPerDay=(7000*this.weightLoss)/a;$("#wlwMinusCaloriesPerDay").val(this.minusCaloriesPerDay.toFixed(0))}else{if(e==3){this.endDate=$("#wlwEndDate").val();this.weightLossPerWeek=$("#wlwWeightLossPerWeek").val();var a=this.calcDayDiff(this.startDate,this.endDate);this.weightLoss=(a*this.weightLossPerWeek)/7;$("#wlwWeightLoss").val(this.weightLoss.toFixed(2));this.endWeight=this.startWeight-this.weightLoss;$("#wlwEndWeight").val(this.endWeight.toFixed(2));this.minusCaloriesPerDay=(7000*this.weightLoss)/a;$("#wlwMinusCaloriesPerDay").val(this.minusCaloriesPerDay.toFixed(0))}else{if(e==4){this.endDate=$("#wlwEndDate").val();this.minusCaloriesPerDay=$("#wlwMinusCaloriesPerDay").val();var a=this.calcDayDiff(this.startDate,this.endDate);this.weightLossPerWeek=(7*this.minusCaloriesPerDay)/7000;this.weightLoss=(a*this.weightLossPerWeek)/7;this.endWeight=this.startWeight-this.weightLoss;$("#wlwEndWeight").val(this.endWeight.toFixed(2));$("#wlwWeightLoss").val(this.weightLoss.toFixed(2));$("#wlwWeightLossPerWeek").val(this.weightLossPerWeek.toFixed(2))}else{if(e==5){this.endWeight=$("#wlwEndWeight").val();this.weightLossPerWeek=$("#wlwWeightLossPerWeek").val();this.weightLoss=-(this.endWeight-this.startWeight);$("#wlwWeightLoss").val(this.weightLoss);this.minusCaloriesPerDay=(this.weightLossPerWeek*7000)/7;$("#wlwMinusCaloriesPerDay").val(this.minusCaloriesPerDay.toFixed(0));var d=(7*this.weightLoss)/this.weightLossPerWeek;var c=new Date(this.startDate.substring(0,4),this.startDate.substring(5,7)-1,this.startDate.substring(8,10));var b=new Date(c.getTime()+d*ONE_DAY_IN_MILLI_SECONDS);this.endDate=getSqlFormatDate(b);$("#wlwEndDate").val(this.endDate)}else{if(e==6){this.endDate=$("#wlwEndDate").val();this.minusCaloriesPerDay=$("#wlwMinusCaloriesPerDay").val();this.weightLoss=-(this.endWeight-this.startWeight);$("#wlwWeightLoss").val(this.weightLoss);this.weightLossPerWeek=(7*this.minusCaloriesPerDay)/7000;$("#wlwWeightLossPerWeek").val(this.weightLossPerWeek.toFixed(0));var d=(7*this.weightLoss)/this.weightLossPerWeek;var c=new Date(this.startDate.substring(0,4),this.startDate.substring(5,7)-1,this.startDate.substring(8,10));var b=new Date(c.getTime()+d*ONE_DAY_IN_MILLI_SECONDS);this.endDate=getSqlFormatDate(b);$("#wlwEndDate").val(this.endDate)}else{if(e==7){this.weightLoss=$("#wlwWeightLoss").val();this.weightLossPerWeek=$("#wlwWeightLossPerWeek").val();this.endWeight=this.startWeight-this.weightLoss;$("#wlwEndWeight").val(this.endWeight);this.minusCaloriesPerDay=(this.weightLossPerWeek*7000)/7;$("#wlwMinusCaloriesPerDay").val(this.minusCaloriesPerDay.toFixed(0));var d=(7*this.weightLoss)/this.weightLossPerWeek;var c=new Date(this.startDate.substring(0,4),this.startDate.substring(5,7)-1,this.startDate.substring(8,10));var b=new Date(c.getTime()+d*ONE_DAY_IN_MILLI_SECONDS);this.endDate=getSqlFormatDate(b);$("#wlwEndDate").val(this.endDate)}else{if(e==8){this.weightLoss=$("#wlwWeightLoss").val();this.minusCaloriesPerDay=$("#wlwMinusCaloriesPerDay").val();this.endWeight=this.startWeight-this.weightLoss;$("#wlwEndWeight").val(this.endWeight);this.weightLossPerWeek=(7*this.minusCaloriesPerDay)/7000;$("#wlwWeightLossPerWeek").val(this.weightLossPerWeek.toFixed(0));var d=(7*this.weightLoss)/this.weightLossPerWeek;var c=new Date(this.startDate.substring(0,4),this.startDate.substring(5,7)-1,this.startDate.substring(8,10));var b=new Date(c.getTime()+d*ONE_DAY_IN_MILLI_SECONDS);this.endDate=getSqlFormatDate(b);$("#wlwEndDate").val(this.endDate)}}}}}}}}},updateWeightGraph:function(){$("#wlwWeightGraph").attr("src","weightgraph?type=0&u=4&startdate="+$("#wlwStartDate").val()+"&enddate="+$("#wlwEndDate").val()+"&width=660&height=300&sw=14")},save:function(){var b=this;var a="weightLossWizard?action=save&wpid=0&wpstartdate="+$("#wlwStartDate").val()+"&wpenddate="+$("#wlwEndDate").val()+"&wpstartweight="+$("#wlwStartWeight").val()+"&wpendweight="+$("#wlwEndWeight").val();$.ajax({url:a,cache:false,dataType:"text json",context:document.body,success:function(c){if(c){b.updateWeightGraph()}}})}});$.Class("trainit.Wizard",{count:0},{init:function(b,a){this.constructor.count++;this.mus=a;var e=this;var d={};this.dialog=$("#dialog-wizard").dialog({closeOnEscape:true,autoOpen:false,resizable:false,modal:true,overlay:{backgroundColor:"#ffffff",opacity:0.2},dialogClass:"alert",title:strSelectWizard,position:"center",width:700,height:600,zIndex:10,buttons:d});var c='<div class="container_16" style="width:660px;height:500px;vertical-align:middle"><div style="text-align:center;margin:50px"><button id="weightWizardBtn" class="weightLossWizardButton" style="width:300px;">'+strWeightLossWizard+'</button></div><div style="text-align:center;margin:50px"><button id="trainingWizardBtn" class="weightLossWizardButton" style="width:300px;">'+strTrainingWizard+"</button></div></div>";$(this.dialog).html(c);$("#weightWizardBtn").click(function(){e.wizard=new trainit.WeightLossWizard("WeightLossWizard",e.mus);e.wizard.open()})},open:function(){$(this.dialog).dialog("open")}});
