var ActiveNetwork=window.ActiveNetwork||{};if(![].__each){Array.prototype.__each=function(b){for(var a=0;a<this.length;a++){b.call(window,this[a],a,this)}}}if(![].__last){Array.prototype.__last=function(){if(this.length>1){return this[this.length-1]}else{return this.__first()}}}if(![].__first){Array.prototype.__first=function(){return this[0]}}if(!Object.eventTarget){Object.eventTarget=function(a){return window.event?window.event.srcElement:a.target}}(function(){if(ActiveNetwork&&ActiveNetwork.TrainingPlanWidget){return}ActiveNetwork.TrainingPlanWidget=function(a){this.initialize(a)};(function(){var a=(function(){var c=navigator.userAgent;return{ie:c.match(/MSIE\s([^;]*)/)}}());var b=(function(){return{add:function(g,e,f){var d=document.createElement(g);var c;for(c in e){if(e.hasOwnProperty(c)){d[c]=e[c]}}return f.appendChild(d)},get:function(c){return document.getElementById(c)}}}());ActiveNetwork.TrainingPlanWidget.WIDGET_NUMBER=0;ActiveNetwork.TrainingPlanWidget.domain="http://widgets.active.com";ActiveNetwork.TrainingPlanWidget.searchUrl="http://theapi.active.com/trainer/v1/json/plans";ActiveNetwork.TrainingPlanWidget.stylesheetsPath="/widgets/training_plans/stylesheets/";ActiveNetwork.TrainingPlanWidget.imagesPath="/widgets/training_plans/images/";ActiveNetwork.TrainingPlanWidget.cssFilename="default.min.css";ActiveNetwork.TrainingPlanWidget.apiKey="8ubj62bmgkurh9axekvmg8xh";ActiveNetwork.TrainingPlanWidget.isLoadingStylesheet=false;ActiveNetwork.TrainingPlanWidget.hasLoadedStylesheet=false;ActiveNetwork.TrainingPlanWidget.sports={Any:"any",Running:"running","Strength Training":"strength-training",Triathlon:"triathlon","Weight Loss":"weight-loss"};ActiveNetwork.TrainingPlanWidget.difficulties={Any:"any",Beginner:"beginner",Intermediate:"intermediate",Advanced:"advanced"};ActiveNetwork.TrainingPlanWidget.distances={Any:"any","5k":"5k","10k":"10k","Half-Marathon":"half-marathon",Marathon:"marathon"};ActiveNetwork.TrainingPlanWidget.prototype=(function(){return{initialize:function(d){var c=this;this.widgetNumber=++ActiveNetwork.TrainingPlanWidget.WIDGET_NUMBER;ActiveNetwork.TrainingPlanWidget["searchCallback_"+this.widgetNumber]=function(f){c.doSearchCallback.call(c,f)};this.setOptions(d);this.searchCallback="ActiveNetwork.TrainingPlanWidget.searchCallback_"+this.widgetNumber;var e=["callback="+this.searchCallback];if(this.apiKey!==""){e.push("api_key="+this.apiKey)}if(this.showPrice){e.push("show_price="+this.showPrice)}this.searchUrl+="?"+e.join("&");this.defaultStyleUrl=this.domain+ActiveNetwork.TrainingPlanWidget.stylesheetsPath+this.cssFilename;this.animationInterval=25;this.prefix="an-tpw";this.id=this.prefix+"_"+this.widgetNumber;this.results=[];document.write('<div class="'+this.prefix+'" id="'+this.id+'" style="width:'+this.width+"px;height:"+this.height+'px;"></div>');this.isStartIndicatorRunning=null;this.isDetailIndicatorRunning=null;this.isLoadingEvents=false;this.showing="results";this.getDefaultStyles();return this},setOptions:function(c){this.showSportSelector=c.showSportSelector==undefined?true:c.showSportSelector;this.showDifficultySelector=c.showDifficultySelector==undefined?true:c.showDifficultySelector;this.showDistanceSelector=c.showDistanceSelector==undefined?true:c.showDistanceSelector;this.showFooter=c.showFooter==undefined?true:c.showFooter;this.showPrice=c.showPrice==undefined?false:c.showPrice;this.sport=c.sport||"";this.difficulty=c.difficulty||"";this.distance=c.distance||"";this.num=c.num||10;this.width=c.width||300;this.height=c.height||400;this.style=c.style||undefined;this.title=c.title||"Training Plans";this.group=c.group||"";this.vendor=c.vendor||"";this.cid=c.cid||188909;this.affiliate=c.affiliate||undefined;if(this.affiliate===""){this.affiliate=undefined}this.campaign=c.campaign||undefined;this.domain=c.domain||this.domain||ActiveNetwork.TrainingPlanWidget.domain;this.searchUrl=c.searchUrl||this.searchUrl||ActiveNetwork.TrainingPlanWidget.searchUrl;this.cssFilename=c.cssFilename||this.cssFilename||ActiveNetwork.TrainingPlanWidget.cssFilename;this.apiKey=c.apiKey||this.apiKey||ActiveNetwork.TrainingPlanWidget.apiKey;this.stylesheetsPath=ActiveNetwork.TrainingPlanWidget.stylesheetsPath;this.imagesPath=ActiveNetwork.TrainingPlanWidget.imagesPath},remote:function(d,e){var c=b.add("script",{type:"text/javascript",src:d},document.getElementsByTagName("head")[0]);if(e){e.call(this,c)}return c},getDefaultStyles:function(){var d=this;var c=function(h,j){var i=null;if(document.defaultView&&document.defaultView.getComputedStyle){var g=document.defaultView.getComputedStyle(h,"");if(g){i=g[j]}var f=h.style[j]||i;return f}else{if(document.documentElement.currentStyle){i=h.currentStyle?h.currentStyle[j]:null;return(h.style[j]||i)}}};if(!ActiveNetwork.TrainingPlanWidget.isLoadingStylesheet){ActiveNetwork.TrainingPlanWidget.isLoadingStylesheet=true;b.add("link",{rel:"stylesheet",type:"text/css",href:this.defaultStyleUrl},document.getElementsByTagName("head")[0]);var e=setInterval(function(){var f=c(b.get(d.id),"position");if(f==="relative"){clearInterval(e);ActiveNetwork.TrainingPlanWidget.hasLoadedStylesheet=true}},50)}},setCustomStyles:function(){var e=this;if(this.style){var i=[];var h;for(h in this.style){if(this.style.hasOwnProperty(h)){var g=[];var d=[];switch(h){case"frame":g=["","."+this.prefix+"-detail"];break;case"title":g=["."+this.prefix+"-header h2","."+this.prefix+"-back"];break;case"window":g=["."+this.prefix+"-window","."+this.prefix+"-box"];break;case"text":g=["."+this.prefix+"-result","."+this.prefix+"-detail"];break;case"result":g=["."+this.prefix+"-result"];break;case"links":g=["."+this.prefix+"-result a","."+this.prefix+"-detail h2 a","."+this.prefix+"-detail description a"];break;case"buttons":g=["."+this.prefix+"-button"];break}g.__each(function(j){var m="#"+e.id+" "+j+" { ";var k;for(k in e.style[h]){var l=e.style[h];m+=k+":"+l[k]+"; "}m+="}\n";i.push(m)})}}var c=document.createElement("style");c.type="text/css";if(a.ie){c.styleSheet.cssText=i.join(" ")}else{var f=document.createDocumentFragment();f.appendChild(document.createTextNode(i.join(" ")));c.appendChild(f)}document.getElementsByTagName("head")[0].appendChild(c)}},getData:function(){var c=this;if(!this.isLoadingEvents){this.isLoadingEvents=true;this.clearResults();this.showSpinner();var d=this.searchUrl;["sport","difficulty","distance"].__each(function(e){if(c[e]!==""&&c[e]!=="any"){d+="&"+e+"="+c[e]}});if(this.group!==""){d+="&group="+this.group}if(this.vendor!==""){d+="&vendor="+this.vendor}d+="&num="+this.num;this.remote(d)}},render:function(){var k=this;if(!ActiveNetwork.TrainingPlanWidget.hasLoadedStylesheet){window.setTimeout(function(){k.render.call(k)},50);return this}this.setCustomStyles();var o=b.get(this.id).offsetWidth;var c=b.get(this.id).offsetHeight;var q=b.add("div",{className:this.prefix+"-header"},b.get(this.id));b.add("h2",{},q).innerHTML=this.title;var f=b.add("div",{className:this.prefix+"-window"},b.get(this.id));f.style.width=o-6+"px";var j=b.add("div",{id:this.id+"_container",className:this.prefix+"-container"},f);j.style.width=o*2+"px";var e=35;var s=0;this.showSportSelector?s++:null;this.showDifficultySelector?s++:null;this.showDistanceSelector?s++:null;(s>0&&s<=2)?e+=25:null;s>2?e+=50:null;this.showFooter?e+=30:null;j.style.height=c-e+"px";var m=b.add("div",{id:this.id+"_results",className:this.prefix+"-results"},j);var t=b.add("div",{id:this.id+"_detail",className:this.prefix+"-detail"},j);t.style.width=m.style.width=o-6+"px";t.style.height=m.style.height=c-e+"px";var g=b.add("div",{id:this.id+"_wrapper",className:this.prefix+"-wrapper"},t);var n=b.add("a",{id:this.id+"_back",className:this.prefix+"-back",href:"#"},g);n.innerHTML="&laquo; Back";n.onclick=function(v){k.show("results");return false};var i=b.add("div",{className:this.prefix+"-box"},g);var u=b.add("h2",{id:this.id+"_title",className:this.prefix+"-title"},i);b.add("a",{href:"#"},u);var p=b.add("div",{className:this.prefix+"-description"},i);b.add("img",{id:this.id+"_image",className:this.prefix+"-image"},p);b.add("span",{id:this.id+"_description",className:this.prefix+"-description"},p);var r=b.add("ul",{className:this.prefix+"-details"},p);b.add("li",{id:this.id+"_sport",className:this.prefix+"-sport"},r);b.add("li",{id:this.id+"_distance",className:this.prefix+"-distance"},r);b.add("li",{id:this.id+"_difficulty",className:this.prefix+"-difficulty"},r);b.add("li",{id:this.id+"_price",className:this.prefix+"-price"},r);b.add("a",{id:this.id+"_url",className:this.prefix+"-link "+this.prefix+"-button",href:"#",title:"Go to ActiveTrainer.com"},i).innerHTML="Join this Plan &raquo;";this.showSpinner();var l=b.add("div",{className:this.prefix+"-footer"},b.get(this.id));if(this.showSportSelector||this.showDifficultySelector||this.showDistanceSelector){var d=b.add("form",{method:"post",action:"sport"},l);d.onsubmit=function(v){k.refresh();return false};if(this.showSportSelector){this.buildOptionSelect(d,"Sport",ActiveNetwork.TrainingPlanWidget.sports)}if(this.showDifficultySelector){this.buildOptionSelect(d,"Difficulty",ActiveNetwork.TrainingPlanWidget.difficulties)}if(this.showDistanceSelector){this.buildOptionSelect(d,"Distance",ActiveNetwork.TrainingPlanWidget.distances)}}if(this.showFooter){var h=b.add("a",{href:"http://www.active.com",title:"Go to Active.com"},l);b.add("img",{src:this.domain+this.imagesPath+"powered_by_active.png",alt:"Powered by Active.com"},h)}this.showing="results";this.getData();return this},buildOptionSelect:function(h,e,d){var i=e.toLowerCase();var c=b.add("select",{className:this.prefix+"-"+i,id:this.id+"-"+i,name:this.id+"-"+i},h);var g=0;c.options[g++]=new Option("Choose "+e+"...","",false,false);var f;for(f in d){if(d.hasOwnProperty(f)){c.options[g++]=new Option(f,d[f],false,(this[i]===d[f]))}}c.onchange=function(j){Object.eventTarget(j).parentNode.onsubmit()}},destroy:function(){b.get(this.id).innerHTML="";return this},doSearchCallback:function(d){var c=this;this.isLoadingEvents=false;this.hideSpinner();if(d.plan_aliases.length>0){this.results=d.plan_aliases;this.results.__each(function(m){var k=b.add("div",{className:c.prefix+"-result"},b.get(c.id+"_results"));var h=b.add("a",{href:"#"},k);h.onclick=function(n){c.showDetail(m);return false};b.add("span",{className:c.prefix+"-title"},h).innerHTML=m.name;if(m.image_url!==null){b.add("img",{className:c.prefix+"-image",src:m.image_url},k)}if(m.description){var l=m.description;if(l.length>100){l=l.slice(0,100)+"..."}var j=b.add("div",{className:c.prefix+"-description"},k);b.add("span",{},j).innerHTML=c.textileize(l)+" ";var g=b.add("a",{className:c.prefix+"-more",href:"#"},j);g.innerHTML="more";g.onclick=function(n){c.showDetail(m);return false}}var e=b.add("div",{className:c.prefix+"-details_container"},k);var i=b.add("ul",{className:c.prefix+"-left"},e);if(m.sport!==null){b.add("li",{className:c.prefix+"-sport"},i).innerHTML="<strong>Sport</strong>: "+m.sport}if(m.distance!==null){b.add("li",{className:c.prefix+"-distance"},i).innerHTML="<strong>Distance</strong>: "+m.distance}var f=b.add("ul",{className:c.prefix+"-right"},k);if(m.difficulty!==null){b.add("li",{className:c.prefix+"-difficulty"},f).innerHTML="<strong>Difficulty</strong>: "+m.difficulty}if(m.price!==undefined){b.add("li",{className:c.prefix+"-price"},f).innerHTML="<strong>Price</strong>: "+c.dollarFormat(m.price)}})}else{this.noResults()}},noResults:function(){b.add("div",{className:this.prefix+"-empty"},b.get(this.id).childNodes[1].childNodes[0].childNodes[0]).innerHTML="No training plans found!"},refresh:function(){if(this.showSportSelector){this.presetOption("sport")}if(this.showDifficultySelector){this.presetOption("difficulty")}if(this.showDistanceSelector){this.presetOption("distance")}if(this.showing==="detail"){this.show("results")}this.getData()},presetOption:function(c){var d=b.get(this.id+"-"+c).value;if(d==="any"){this[c]=""}else{this[c]=d}},showDetail:function(c){var d=this;if(this.affiliate){var e="http://www.tantracking.com/click.track?CID="+this.cid+"&AFID="+this.affiliate+"&nonencodedurl="+encodeURIComponent(c.link+"?foo=bar")}else{if(this.campaign){var e=c.link+"?cmp="+this.campaign}else{var e=c.link}}var f=b.get(this.id+"_title").childNodes[0];f.innerHTML=c.name;f.href=e;if(c.image_url!==null){b.get(this.id+"_image").src=c.image_url}b.get(this.id+"_description").innerHTML=this.textileize(c.description,e);if(b.get(this.id+"_description_more")){b.get(this.id+"_description_more").href=e}if(c.sport!==null){b.get(this.id+"_sport").innerHTML="<strong>Sport</strong>: "+c.sport}if(c.distance!==null){b.get(this.id+"_distance").innerHTML="<strong>Distance</strong>: "+c.distance}else{b.get(this.id+"_distance").innerHTML="<strong>Distance</strong>: N/A"}if(c.difficulty!==null){b.get(this.id+"_difficulty").innerHTML="<strong>Difficulty</strong>: "+c.difficulty}if(c.price!==undefined){b.get(this.id+"_price").innerHTML="<strong>Price</strong>: "+d.dollarFormat(c.price)}b.get(this.id+"_url").href=e;this.show("detail")},show:function(i){var g=b.get(this.id+"_container");var e=g.parentNode.offsetWidth;var f=e/(1000/this.animationInterval)*4;var h=0;var d=this;var c=function(j){var k,l;if(j==="left"){k=0;l=f;g.style.left=-e+"px"}else{if(j==="right"){k=-e;l=-f;g.style.left="0px"}}d.showInterval=setInterval(function(){var n=parseFloat(g.style.left);if(Math.ceil(h)>=e){g.style.left=k+"px";clearInterval(d.showInterval)}else{var m=n+l;g.style.left=m+"px";h+=Math.abs(l)}},d.animationInterval)};if(i==="detail"){c("right");this.showing="detail"}else{if(i==="results"){c("left");this.showing="results"}}},showSpinner:function(){b.add("img",{id:this.id+"_start-indicator",className:this.prefix+"-indicator",src:this.domain+this.imagesPath+"indicator_medium.gif"},b.get(this.id+"_results"));this.isStartIndicatorRunning=true},hideSpinner:function(){b.get(this.id+"_start-indicator").style.display="none";this.isStartIndicatorRunning=false},clearResults:function(){b.get(this.id+"_results").innerHTML=""},dateFormat:function(d){var c=["January","February","March","April","May","June","July","August","September","October","November","December"];var e=d.split("-");return e[2]+" "+c[e[1]-1]+" "+e[0]},dollarFormat:function(c){if(c===0){return"FREE"}else{return"$"+c.toFixed(2)}},timeFormat:function(e){var c=e.split(":")[0];var f=e.split(":")[1];var d="am";if(c>12){c-=12;d="pm"}return c+":"+f+" "+d},textileize:function(d,c){if(d.length>300){d=d.slice(0,300)+'... <a href="'+c+'">more</a>'}return d.replace(/_(.*?)_/,"<em>$1</em>").replace(/\*(.*?)\*/,"<strong>$1</strong>")}}}())}())}());
