var emptyString=/^\s*$/;var currentIdSuffix="";function msg(H,E,F){var G=document.getElementById(H);G.innerText=G.textContent=F;G.className=E;}function showElement(D,F){var E=document.getElementById(D);if(!!E){E.style.display=F?"":"none";}}function trim(B){return B.replace(/^\s+|\s+$/g,"");}function validateNumeric(K,I){var H=K.value+"";var L=/[^0-9\.]+/gi;H=H.replace(L,"");if(H.length>0){var J=H.split(".");if(I){H=J[0];}else{if(J.length>1){var G=parseFloat(H);H=isNaN(G)?"":G+"";}}}K.value=H;}function validateTime(K,O){var J=K.value+"";var P=/[^0-9]+/gi;J=J.replace(P,"");J=secToTime(timeToSec(J));K.value=J;if(O){if(J+""==""){msg(O,"form_error","ERROR! time is required.");K.focus();return false;}else{var N=timeToSec(J);var L=N%60;var I=Math.floor(N/60)%60;var M=Math.floor(N/3600);msg(O,"note",[M+" hr",I+" min",L+" sec"].join(", "));}}return true;}function validateInches(H){var F=H.value+"";var E=/[^0-9'\.]+/gi;F=F.replace(E,"");var G=F.split("'");if(G.length>1){if(G[1].length==0){G[1]=0;}F=parseInt(G[0])*12+parseInt(G[1])+"";}H.value=F;}function validateYYYY(B){validateNumeric(B,true);B.value=padLeft(B.value,"2000").substring(0,4);}function parsePaddedInt(B){while(B.length>1&&B.substring(0,1)=="0"){B=B.substring(1);}return parseInt(B);}function padLeft(C,D){if(typeof C!="string"||C.length>=D.length){return C;}else{return D.substring(0,D.length-C.length)+C;}}function timeToSec(G){var K=G.indexOf("-")==0;G=G.replace(/[\:\-]/g,"");G=padLeft(G,"00000000");var J=parsePaddedInt(G.substring(0,4));var I=parsePaddedInt(G.substring(4,6));var H=parsePaddedInt(G.substring(6,8));var L=H+I*60+J*3600;return K?-L:L;}function secToTime(H,L){if(H===Infinity||!H||isNaN(H)){return"";}H=parseFloat(H.toFixed(L||0));var N=H<0;if(N){H=Math.abs(H);}var J=(100+(H%60)).toFixed(L||0).substring(1);H=Math.floor(H/60);var K=(100+(H%60)+"").substring(1);var M=Math.floor(H/60)+"";var I=M+K+J;while(I.length>0&&I.substring(0,1)=="0"){I=I.substring(1);}if(N){I="-"+I;}return I;}function formatTime(H,F){if(!H&&!F){return"";}var G=H.indexOf("-")==0;H=H.replace("-","");var E=H.split(".");H=padLeft(E[0],"000000");E[0]=H.substring(0,2)+":"+H.substring(2,4)+":"+H.substring(4,6);H=E.join(".");return(G?"-":"")+(F?H:H.replace(/^[0:]+/,""));}function totalTime(){if(!document.getElementById("intensity0"+currentIdSuffix)){return ;}var J=0;for(var I=0;I<=5;I++){var H=document.getElementById("intensity"+I+currentIdSuffix).value+"";J+=timeToSec(H);}var K=secToTime(J)+"";var L=document.getElementById("intensitytotal"+currentIdSuffix);L.innerHTML=K;var G=document.getElementById("sessionlength"+currentIdSuffix);if(G){G.value=K;}}function writeTotalInIntensity(E){for(var G=0;G<=5;G++){var H=document.getElementById("intensity"+G);var F=(G+""==E+"")?document.getElementById("sessionlength").value:"";if(!!H){H.value=F;}}}function updateIntensity(){var F=document.getElementById("intensity");if(F){var D=F.value+"";var E=(D=="-1");if(E!=mixshown){showElement("totaltime",!E);showElement("intensityx",E);writeTotalInIntensity(lasti);if(E){totalTime();}mixshown=E;}if(!E){lasti=D;writeTotalInIntensity(-1);}}}function initDragTimes(){if(document.getElementById("intensity0"+currentIdSuffix)&&typeof FileReader=="function"){for(var B=0;B<=5;B++){initDragTime(document.getElementById("intensity"+B+currentIdSuffix));}}}var g_dragSource=null;function initDragTime(B){B.addEventListener("dragstart",function(A){A.dataTransfer.setData("text/plain",B.value+"");g_dragSource=B;A.dataTransfer.effectAllowed="move";A.dataTransfer.dropEffect="move";},false);B.addEventListener("dragleave",function(A){if(!g_dragSource){g_dragSource=B;}},false);B.addEventListener("dragend",function(A){g_dragSource=null;},false);B.addEventListener("drop",function(A){stopevent(A);var F=A.dataTransfer.getData("text/plain");if(F&&g_dragSource&&B!=g_dragSource){var E=timeToSec(F)+timeToSec(B.value);B.value=secToTime(E);g_dragSource.value="";g_dragSource.blur();B.focus();totalTime();}g_dragSource=null;},false);}function stopevent(B){B.stopPropagation();B.preventDefault();}function changeDistUnits(){var E=document.getElementById("distance"+currentIdSuffix);var F=document.getElementById("sessiondata"+currentIdSuffix);if(E.value&&F&&(F.value||F.getAttribute("hasdata"))){var H=parseFloat(E.value);var G=document.getElementById("distanceunits"+currentIdSuffix);H*=(G.value=="kilometers")?1.609344:(1/1.609344);E.value=String(H.toFixed(3));}}function toggleElement(D,E){var F=document.getElementById(D);if(!F){return ;}if(typeof E=="undefined"){E=(F.style.display=="none");}F.style.display=E?"":"none";}function sqlFormatDate(G){var F=padLeft(G.getDate()+"","00");var H=padLeft(G.getMonth()+1+"","00");var E=G.getFullYear();return(E+"-"+H+"-"+F);}function DateSelector(E){this.id=E;this.value=null;this.changeEvent=new YAHOO.util.CustomEvent("change",this);var F=this;function D(){var A=F.getValue();if(A!=F.value){F.value=A;F.changeEvent.fire(A);}}YAHOO.util.Event.addListener(E+"-year","change",D);YAHOO.util.Event.addListener(E+"-month","change",D);YAHOO.util.Event.addListener(E+"-day","change",D);document.getElementById(E+"-year").dsobj=this;}DateSelector.prototype.getValue=function(){return getDateSelectorValue(this.id);};DateSelector.prototype.setValue=function(B){return setDateSelectorValue(this.id,B);};function getDateSelectorValue(D){var C=new Date();C.setHours(0);C.setMinutes(0);C.setSeconds(0);C.setMilliseconds(0);C.setFullYear(Number(document.getElementById(D+"-year").value));C.setMonth(Number(document.getElementById(D+"-month").value)-1);C.setDate(Number(document.getElementById(D+"-day").value));return C;}function setDateSelectorValue(D,I){var G=I.getMonth()+1;var J=I.getDate();G=(G<10)?"0"+G:""+G;J=(J<10)?"0"+J:""+J;document.getElementById(D+"-month").value=G;document.getElementById(D+"-day").value=J;document.getElementById(D+"-year").value=I.getFullYear()+"";var H=document.getElementById(D+"-year").dsobj;if(H){H.changeEvent.fire(I);}}function checkDateSelectorValue(H){var E=getDateSelectorValue(H);var F=document.getElementById(H+"-day");var G=(E.getDate()==Number(F.value));F.style.backgroundColor=G?"":"red";if(!G){F.focus();}return G;}var gCalSelector=null;function showCalSelector(G,H){function J(A){var B=[document.getElementById(H+"-month").value,document.getElementById(H+"-day").value,document.getElementById(H+"-year").value];A.cfg.queueProperty("selected",B.join("/"),false);A.cfg.queueProperty("pagedate",[B[0],B[2]].join("/"),false);A.cfg.fireQueue();A.render();}function I(){var B=document.createElement("div");B.innerHTML="<div class='hd'></div><div class='bd'><div id='"+H+"-cal'></div></div>";B.id=H+"-panel";B.style.position="absolute";document.body.appendChild(B);var A=new YAHOO.widget.Calendar(H,H+"-cal",yuiCalCfg);var D=new YAHOO.widget.Overlay(B,{context:[G,"tl","tr"]});J(A);D.render();D.show();A.selectEvent.subscribe(function C(E,O,Q){var R=O[0][0];D.hide();var P=new Date();P.setFullYear(R[0],R[1]-1,R[2]);setDateSelectorValue(H,P);},A,true);G.onclick=function(){if(D.cfg.getProperty("visible")){D.hide();}else{J(A);D.show();}return false;};}if(YAHOO.widget.Calendar){I();}else{var F=new YAHOO.util.YUILoader({base:yuibase,require:["container","calendar"],loadOptional:false,combine:false,filter:"MIN",allowRollup:true,onSuccess:I});F.insert();}}function setRoute(D){var F=routes[D.value]||{};if(F){var E=document.getElementById("sessiondata"+currentIdSuffix);if(!(E&&(E.value||E.getAttribute("hasdata")))){setFormValue("distance",F.dist>0?F.dist:"");setFormValue("climb",F.climb>0?F.climb:"");}setFormValue("controls",F.ct>0?F.ct:"");}}function setFormValue(E,F){var D=document.getElementById(E+currentIdSuffix);if(D){D.value=F;}}function validateHTML(K){return ;var I=document.createElement("div");var M=K.value.replace(/<script(.|\s)*?\/script>/g,"");I.innerHTML=M;var N=I.getElementsByTagName("a");for(var L=0;L<N.length;L++){var J=N.item(L);var H=J.getAttribute("href");alert(H);if(!/https?\/\//i.test(H)){alert("bad link href?");}}if(I.innerHTML!=M){K.value=I.innerHTML;}}function filterDropdown(R,P){var M=document.getElementById(R);
if(!M){return ;}var N=M.options;var L=N.length;P=P.toLowerCase();var K=false;for(var J=0;J<L;J++){var Q=N.item(J);var O=!P||(Q.text.toLowerCase().indexOf(P)>-1);Q.style.display=O?"":"none";if(Q.selected&&!O){Q.selected=false;}if(!K&&O){M.value=Q.value;K=true;}}}function initFilterDropdowns(){var H={};function F(){var A=document.getElementsByTagName("select");for(var B=0;B<A.length;B++){var C=A[B];if(C.options.length>10){G(C);}}}function G(B){var Z=[];var A=B.options;var b=A.length;var U=false;for(var Y=0;Y<b;Y++){var X=A.item(Y);Z.push({value:X.value,name:X.text});if(X.value==""){U=true;}}if(!U){}B.value="";var C=new YAHOO.util.LocalDataSource(Z);C.responseSchema={fields:["name","value"]};var a=document.createElement("div");a.id=B.id+"ACDiv";a.style.cssText="width:"+B.offsetWidth+"px;display:inline-block;vertical-align:top;";B.parentNode.insertBefore(a,B);var c=document.createElement("input");c.id=B.id+"ACInput";c.setAttribute("type","text");c.setAttribute("placeholder","type here to search");c.setAttribute("spellcheck","false");a.appendChild(c);var D=document.createElement("span");D.className="ac-downbtn";a.appendChild(D);var d=document.createElement("div");d.id=B.id+"ACContainer";a.appendChild(d);var W=B.form||document.forms[1];B.style.display="none";var V=new YAHOO.widget.AutoComplete(c.id,d.id,C);V.resultTypeList=false;V.forceSelection=true;V.queryMatchContains=true;V.animVert=false;V.minQueryLength=0;V.maxResultsDisplayed=2000;window.setTimeout(function(){V.sendQuery("");V.collapseContainer();},100);function T(){if(!V.isContainerOpen()){c.value="";V.sendQuery(c.value);c.focus();}}YAHOO.util.Event.on(c,"click",function(I){if(!c.value){V.sendQuery(c.value);}});YAHOO.util.Event.on(W,"submit",function(I){if(!c.value){c.focus();V.sendQuery(c.value);YAHOO.util.Event.stopEvent(I);}});YAHOO.util.Event.on(D,"click",T);new YAHOO.util.KeyListener(c,{keys:40},T).enable();c.setAttribute("onkeypress","return YAHOO.util.Event.getCharCode(event) != 13;");V.itemSelectEvent.subscribe(function(M,I){var J=I[0];var L=I[1];var K=I[2];B.value=K.value;if(typeof B.onchange=="function"){B.onchange();}c.style.cssText="";});V.selectionEnforceEvent.subscribe(function(I,J){c.style.cssText="border:1px solid red;";V.sendQuery("");B.value="";});V.itemArrowToEvent.subscribe(function(I,J){var K=J[1];var L=V.getListEl();if(K.offsetTop<L.scrollTop){L.scrollTop=K.offsetTop;}if(K.offsetTop+K.offsetHeight>L.scrollTop+L.offsetHeight){L.scrollTop=K.offsetTop+K.offsetHeight-L.offsetHeight;}});}if(YAHOO.widget.AutoComplete){F();}else{var E=new YAHOO.util.YUILoader({base:yuibase,require:["autocomplete","datasource"],loadOptional:false,combine:false,filter:"MIN",allowRollup:true,onSuccess:F});E.insert();}}function enableForm(G,F){var I=G.elements;for(var J=0;J<I.length;J++){var H=I.item(J);if(H.type=="submit"){H.disabled=!F;}}}YAHOO.util.Event.onDOMReady(function(){if(/iPhone|iPod|iPad/gi.test(navigator.userAgent)){var E=document.getElementsByTagName("input");for(var F=0;F<E.length;F++){var H=E.item(F);var G=H.getAttribute("size");if(H.type=="number"&&G){H.style.width=G+"em";}}}});function SplitGraph(f,S){this.data=f;this.container=S;this.numcontrols=this.data.controls.length;this.numrunners=this.data.results.length;this.lengths=[];this.rlength=[];this.maxTime=0;this.minTime=99999999;this.tLength=0;this.runnermode=true;this.grid=true;this.winRun=[];this.selected=-1;this.visible=[];for(var b=0;b<this.numcontrols;b++){this.lengths[b]=this.data.controls[b].len;this.tLength+=this.lengths[b];this.rlength[b]=this.tLength;}if(this.tLength==0){var W=0;for(b=0;b<this.numcontrols;b++){W+=this.data.controls[b].refTime;}this.tLength=999;var c=0;for(b=0;b<this.numcontrols;b++){c+=this.lengths[b]=this.data.controls[b].refTime/W*999;this.rlength[b]=c;}}for(var T=0;T<this.numrunners;T++){this.data.results[T].visible=true;}var V={name:"Superman",legs:[]};var U={name:"top3avg man",legs:[]};var d={name:"Leader",legs:[]};var Y=true;var a=0,Z=0,Q=0;for(b=0;b<this.numcontrols;b++){for(var T=0;T<this.numrunners;T++){var X=this.data.results[T].legs[b];if(X.spp==1){V.legs[b]={sp:X.sp,el:X.sp+a,spp:1,elp:1};a+=X.sp;break;}}if(!V.legs[b]){Y=false;}var e=this.data.controls[b];Z+=e.refTime;U.legs[b]={sp:e.refTime,el:Z,spp:1,elp:1};for(var T=0;T<this.numrunners;T++){var X=this.data.results[T].legs[b];if(X.elp==1){d.legs[b]={sp:X.el-Q,el:X.el,spp:1,elp:1};Q=X.el;break;}}}if(Y){d.visible=false;V.visible=true;this.data.results.unshift(V);this.numrunners++;this.selected=0;}this.paper=Raphael(S,"100%","100%");var R=this.paper;R.line=function(D,A,C,B){return this.path("M"+D+" "+A+"L"+C+" "+B).translate(0.5,0.5);};R.rect_=R.rect;R.rect=function(D,A,B,C){return R.rect_(D,A,B,C).translate(0.5,0.5);};R.circle_=R.circle;R.circle=function(C,A,B){return R.circle_(C,A,B).translate(0.5,0.5);};if(this.paper.canvas.currentTranslate){}this.initUi();this.invalidate();}SplitGraph.prototype.initUi=function(){var O=this;var J=document.getElementById("results");var P=false;var N=true;J.onmousedown=function(A){};function Q(A){if(P){O.invalidate();}P=false;}if(window.addEventListener){window.addEventListener("mouseup",Q);}else{window.attachEvent("onmouseup",Q);}for(var R=0;R<this.data.results.length;R++){var L=this.data.results[R].name;var M=document.createElement("div");M.setAttribute("class","result");M.setAttribute("draggable","true");M.innerHTML="<span>"+L+"</span><a class='zerotoggle' href='javascript:void(0)' title='recenter on "+L.replace("'","&apos;")+"'>-</a>";function K(A,C,D){var B=M.getElementsByTagName("a")[0];A.onclick=function(E){if(E.target==B||E.shiftKey){O.selected=C;D.visible=true;O.invalidate();return false;}else{D.visible=!D.visible;O.invalidate();return false;}};A.ondragstart=function(E){P=true;N=!D.visible;D.visible=N;return false;};A.onmouseover=function(E){if(P){D.visible=N;O.updateSelection();}};}K(M,R,this.data.results[R]);J.appendChild(M);}};SplitGraph.prototype.invalidate=function(){this.updateSelection();this.modeChanged();};SplitGraph.prototype.updateSelection=function(){var G=document.getElementById("results");for(var H=0;H<this.data.results.length;H++){var J=this.data.results[H].visible;var F=G.children.item(H);var I="result";if(J){I+=" selected";}if(H==this.selected){I+=" zero";}F.setAttribute("class",I);}};SplitGraph.prototype.modeChanged=function(){if(this.numrunners<=2){this.runnermode=false;}var G=-1;this.maxTime=0;this.minTime=99999999;for(var H=0;H<this.numrunners;H++){if(this.data.results[H].visible||this.selected==H){this.maxTime=Math.max(this.maxTime,this.data.results[H].legs[this.numcontrols-1].el);if(G<0){this.minTime=this.data.results[H].legs[this.numcontrols-1].el;G=H;}}}if(this.selected==-1){this.selected=G;}else{this.minTime=this.data.results[this.selected].legs[this.numcontrols-1].el;}this.winRun=[];for(var J=0;J<this.numcontrols;J++){if(this.runnermode){this.winRun[J]=this.data.results[this.selected].legs[J].el;}else{this.winRun[J]=(this.minTime*(this.rlength[J]/this.tLength));}}this.maxTime=0;this.minTime=999999999;for(var H=0;H<this.numrunners;H++){if(this.data.results[H].visible||this.selected==H){for(var F=0;F<this.numcontrols;F++){if(this.data.results[H].legs[F].el!=0&&this.winRun[F]!=0){var I=this.data.results[H].legs[F].el-this.winRun[F];if(I>this.maxTime){this.maxTime=I;}if(I<this.minTime){this.minTime=I;}}}}}this.paint();};SplitGraph.prototype.paint=function(){var p,m;var i=30,AN=150;var AG=30,y=30;var w=["red","yellow","green","magenta","#3282FF"];var j,AL,AA;var AH;var k;var n=this.paper;var q=this;function o(B,C,D,A){switch(A%4){case 0:n.circle(C,D,3).attr("stroke",B);break;case 1:n.rect(C-3,D-3,6,6).attr("stroke",B);break;case 2:n.path("M"+C+","+D+"m-4,2l4,-6,4,6,-8,0").attr("stroke",B);break;case 3:n.path("M"+C+","+D+"m0,-4l4,4,-4,4,-4,-4,4,-4").attr("stroke",B);break;}}if(this.tLength==0){return ;}p=this.container.offsetHeight;m=this.container.offsetWidth;var AD=m-AN;var AF=p-y;n.clear();j=(m-i-AN)/this.tLength;AL=(p-AG-y)/(this.minTime-this.maxTime);if(!isFinite(AL)){AL=1;}AH=(-this.maxTime*AL);
AA=(this.data.results[0].legs[this.numcontrols-1].el*AL)/this.tLength;n.text(m/2-10,p-1,"Control").attr("fill","#fff");var t=i;for(var a=0,AC=i;a<this.numcontrols;a++){AC=(this.rlength[a]*j+i);if(this.grid){n.line(AC,AG,AC,AF+2).attr("stroke","#888");k=(a%2==0)?"#1e1e1e":"#282828";n.rect(t,AG,AC-t,AF-AG).attr({fill:k,stroke:k});t=AC;}else{n.line(AC,AF-2,AC,AF+2).attr("stroke","#888");}n.text(AC,AF+15,a+1+"").attr("fill","#fff");}k="#ddd";for(var AJ=60;AJ<=this.maxTime;AJ+=60){var x=Math.round(AF-AH-AJ*AL);if(x<AG||x>AF){break;}k="#444";if(AJ%300==0){n.text(i-5,x,"+"+AJ/60+"").attr({fill:"#f00","text-anchor":"end"});k="#888";}if(this.grid){n.line(i-2,x,AD+2,x).attr({"stroke":k,"stroke-width":1});}else{n.rect(i-2,x,5,1).attr("fill",k);}}for(var AJ=0;AL!=0;AJ-=60){var x=Math.round(AF-AH-AJ*AL);if(x<AG||x>AF){break;}k="#444";if(AJ%300==0){n.text(i-5,x,AJ/60+"").attr({fill:"#0f0","text-anchor":"end"});k="#888";}if(this.grid){n.line(i-2,x,AD+2,x).attr({"stroke":k,"stroke-width":1});}else{n.rect(i-2,x,5,1).attr("fill",k);}}n.text(m/2-20,10,"Distance").attr("fill","#fff").node.onclick=function(){q.runnermode=!q.runnermode;q.modeChanged();};for(var AJ=0;AJ<=this.tLength;AJ+=100){var v=(i+AJ*j);k="#888";if(AJ%1000==0){k="#fff";n.text(v,AG-10,AJ/1000+"").attr("fill",k);}n.rect(v,AG-2,1,5).attr("stroke",k);}k="#fff";n.text(AD+15,AG-10,"km").attr("fill",k);n.text(i-5,AF+15,"S").attr("fill",k);n.rect(i,AG,AD-i,AF-AG).attr("stroke",k);var AB=null;for(var r=0;r<this.numrunners;r++){if(this.data.results[r].visible){var AI=i;var AE=p-y-AH;var AC=AI;var z=AE;k=w[r%5];var AK=(function(A){return function(B){q.toggleRunner(A,true);};})(r);for(var a=0;a<this.numcontrols;a++){if(this.data.results[r].legs[a].el&&this.winRun[a]!=0){var s,l;s=Math.round(this.rlength[a]*j);l=Math.round((this.data.results[r].legs[a].el-this.winRun[a])*AL);var AM=n.line(AC,z,AI+s,AE-l).attr("stroke",k);AM.node.onclick=AK;AC=AI+s;z=AE-l;o(k,AC,z,r);}}n.circle(AC,z,5).attr("stroke",k);if(!AB){AB=z;}else{AB=Math.max(z,AB+10);}var u=this.data.results[r].resultcode||formatTime(secToTime(this.data.results[r].legs[this.numcontrols-1].el));n.text((m-AN)+7,AB,u+" - "+this.data.results[r].name).attr({fill:k,"text-anchor":"start"});}}};SplitGraph.prototype.toggleRunner=function(I,H){var G=this.data.results[I];if(true){if(!H){if(I!=this.selected){G.visible=!G.visible;}}else{if(G.visible){this.selected=I;}}}else{this.runnermode=!this.runnermode;}var F=0;for(var J=0;J<this.numrunners;J++){if(this.data.results[J].visible){F++;}}if(F<=1){this.runnermode=false;}this.modeChanged();};SplitGraph.prototype.selectAll=function(D){for(var C=0;C<this.data.results.length;C++){this.data.results[C].visible=!!D;}this.invalidate();};SplitGraph.prototype.selectCrossing=function(){var D=[];for(var E=0;E<this.data.results.length;E++){if(this.data.results[E].visible){for(var F=0;F<this.data.results.length;F++){}}}};