{
	'ad_120x240' => '<!-- BEGIN ADVERTPRO CODE BLOCK -->

<!-- Zone ID: 21 -->
<!-- Size Width: 120 -->
<!-- Size Height: 240 -->

<SCRIPT language="JavaScript" type="text/javascript">
<!--
document.write(\'<SCR\'+\'IPT src="http://reach.slowtwitch.com/servlet/view/banner/javascript/zone?zid=21&pid=0&random=\'+Math.floor(89999999*Math.random()+10000000)+\'&millis=\'+new Date().getTime()+\'&referrer=\'+escape(document.location)+\'" language="JavaScript" type="text/javascript"></SCR\'+\'IPT>\');
//-->
</SCRIPT>
<NOSCRIPT>
<A href="http://reach.slowtwitch.com/servlet/click/zone?zid=21&pid=0&lookup=true&position=1" target="_top">
<IMG src="http://reach.slowtwitch.com/servlet/view/banner/image/zone?zid=21&pid=0&position=1" height="240" width="120" hspace="0" vspace="0" border="0" alt="Click Here!">
</A>
</NOSCRIPT>

<!-- END ADVERTPRO CODE BLOCK -->',
	'ad_120x600_noroadblocks' => '<!-- BEGIN ADVERTPRO CODE BLOCK -->

<!-- Zone ID: 50 -->
<!-- Zone Name: Slowtwitch - 160x600 - No Roadblocks Allowed -->
<!-- Size ID: 14 -->
<!-- Size Name: Skyscraper -->
<!-- Size Width: 160 -->
<!-- Size Height: 600 -->

<SCRIPT language="JavaScript" type="text/javascript">
<!--
document.write(\'<SCR\'+\'IPT src="http://reach.slowtwitch.com/servlet/view/banner/javascript/zone?zid=50&pid=0&random=\'+Math.floor(89999999*Math.random()+10000000)+\'&millis=\'+new Date().getTime()+\'&referrer=\'+escape(document.location)+\'" language="JavaScript" type="text/javascript"></SCR\'+\'IPT>\');
//-->
</SCRIPT>
<NOSCRIPT>
<A href="http://reach.slowtwitch.com/servlet/click/zone?zid=50&pid=0&lookup=true&position=1" target="_top">
<IMG src="http://reach.slowtwitch.com/servlet/view/banner/image/zone?zid=50&pid=0&position=1" height="600" width="160" hspace="0" vspace="0" border="0" alt="Click Here!">
</A>
</NOSCRIPT>

<!-- END ADVERTPRO CODE BLOCK -->',
	'ad_120x600_roadblocks' => '<!-- BEGIN ADVERTPRO CODE BLOCK -->

<!-- Zone ID: 49 -->
<!-- Zone Name: Slowtwitch - 160x600 - Roadblocks Allowed -->
<!-- Size ID: 14 -->
<!-- Size Name: Skyscraper -->
<!-- Size Width: 160 -->
<!-- Size Height: 600 -->

<SCRIPT language="JavaScript" type="text/javascript">
<!--
document.write(\'<SCR\'+\'IPT src="http://reach.slowtwitch.com/servlet/view/banner/javascript/zone?zid=49&pid=0&random=\'+Math.floor(89999999*Math.random()+10000000)+\'&millis=\'+new Date().getTime()+\'&referrer=\'+escape(document.location)+\'" language="JavaScript" type="text/javascript"></SCR\'+\'IPT>\');
//-->
</SCRIPT>
<NOSCRIPT>
<A href="http://reach.slowtwitch.com/servlet/click/zone?zid=49&pid=0&lookup=true&position=1" target="_top">
<IMG src="http://reach.slowtwitch.com/servlet/view/banner/image/zone?zid=49&pid=0&position=1" height="600" width="160" hspace="0" vspace="0" border="0" alt="Click Here!">
</A>
</NOSCRIPT>

<!-- END ADVERTPRO CODE BLOCK -->',
	'ad_300x250_noroadblocks' => '<!-- BEGIN ADVERTPRO CODE BLOCK -->

<!-- Zone ID: 43 -->
<!-- Zone Name: Slowtwitch - 300x250 - No Roadblocks Allowed -->
<!-- Size ID: 8 -->
<!-- Size Name: Medium Rectangle -->
<!-- Size Width: 300 -->
<!-- Size Height: 250 -->

<SCRIPT language="JavaScript" type="text/javascript">
<!--
document.write(\'<SCR\'+\'IPT src="http://reach.slowtwitch.com/servlet/view/banner/javascript/zone?zid=43&pid=0&random=\'+Math.floor(89999999*Math.random()+10000000)+\'&millis=\'+new Date().getTime()+\'&referrer=\'+escape(document.location)+\'" language="JavaScript" type="text/javascript"></SCR\'+\'IPT>\');
//-->
</SCRIPT>
<NOSCRIPT>
<A href="http://reach.slowtwitch.com/servlet/click/zone?zid=43&pid=0&lookup=true&position=1" target="_top">
<IMG src="http://reach.slowtwitch.com/servlet/view/banner/image/zone?zid=43&pid=0&position=1" height="250" width="300" hspace="0" vspace="0" border="0" alt="Click Here!">
</A>
</NOSCRIPT>

<!-- END ADVERTPRO CODE BLOCK -->',
	'ad_300x250_roadblocks' => '<!-- BEGIN ADVERTPRO CODE BLOCK -->

<!-- Zone ID: 44 -->
<!-- Zone Name: Slowtwitch - Database Entry - 300x250 - Roadblock Friendly -->
<!-- Size ID: 8 -->
<!-- Size Name: Medium Rectangle -->
<!-- Size Width: 300 -->
<!-- Size Height: 250 -->

<SCRIPT language="JavaScript" type="text/javascript">
<!--
document.write(\'<SCR\'+\'IPT src="http://reach.slowtwitch.com/servlet/view/banner/javascript/zone?zid=42&pid=0&random=\'+Math.floor(89999999*Math.random()+10000000)+\'&millis=\'+new Date().getTime()+\'&referrer=\'+escape(document.location)+\'" language="JavaScript" type="text/javascript"></SCR\'+\'IPT>\');
//-->
</SCRIPT>
<NOSCRIPT>
<A href="http://reach.slowtwitch.com/servlet/click/zone?zid=42&pid=0&lookup=true&position=1" target="_top">
<IMG src="http://reach.slowtwitch.com/servlet/view/banner/image/zone?zid=42&pid=0&position=1" height="250" width="300" hspace="0" vspace="0" border="0" alt="Click Here!">
</A>
</NOSCRIPT>

<!-- END ADVERTPRO CODE BLOCK -->',
	'ad_728x90' => '<!-- BEGIN ADVERTPRO CODE BLOCK -->

<!-- Zone ID: 46 -->
<!-- Zone Name: Slowtwitch 728x90 -->
<!-- Size ID: 19 -->
<!-- Size Name: Jumbo Banner -->
<!-- Size Width: 728 -->
<!-- Size Height: 90 -->

<SCRIPT language="JavaScript" type="text/javascript">
<!--
document.write(\'<SCR\'+\'IPT src="http://reach.slowtwitch.com/servlet/view/banner/javascript/zone?zid=46&pid=0&random=\'+Math.floor(89999999*Math.random()+10000000)+\'&millis=\'+new Date().getTime()+\'&referrer=\'+escape(document.location)+\'" language="JavaScript" type="text/javascript"></SCR\'+\'IPT>\');
//-->
</SCRIPT>
<NOSCRIPT>
<A href="http://reach.slowtwitch.com/servlet/click/zone?zid=46&pid=0&lookup=true&position=1" target="_top">
<IMG src="http://reach.slowtwitch.com/servlet/view/banner/image/zone?zid=46&pid=0&position=1" height="90" width="728" hspace="0" vspace="0" border="0" alt="Click Here!">
</A>
</NOSCRIPT>

<!-- END ADVERTPRO CODE BLOCK -->',
	'ad_728x90_roadblocks' => '<!-- BEGIN ADVERTPRO CODE BLOCK -->

<!-- Zone ID: 55 -->
<!-- Zone Name: Slowtwitch 728x90 -->
<!-- Size ID: 19 -->
<!-- Size Name: Jumbo Banner -->
<!-- Size Width: 728 -->
<!-- Size Height: 90 -->

<SCRIPT language="JavaScript" type="text/javascript">
<!--
document.write(\'<SCR\'+\'IPT src="http://reach.slowtwitch.com/servlet/view/banner/javascript/zone?zid=55&pid=0&random=\'+Math.floor(89999999*Math.random()+10000000)+\'&millis=\'+new Date().getTime()+\'&referrer=\'+escape(document.location)+\'" language="JavaScript" type="text/javascript"></SCR\'+\'IPT>\');
//-->
</SCRIPT>
<NOSCRIPT>
<A href="http://reach.slowtwitch.com/servlet/click/zone?zid=55&pid=0&lookup=true&position=1" target="_top">
<IMG src="http://reach.slowtwitch.com/servlet/view/banner/image/zone?zid=55&pid=0&position=1" height="90" width="728" hspace="0" vspace="0" border="0" alt="Click Here!">
</A>
</NOSCRIPT>

<!-- END ADVERTPRO CODE BLOCK -->',
	'cat_match' => 'sub {
    my $fullname = shift || return;
    my $url = $DB->table(\'Category\')->as_url($fullname);
    if (index($url, "Bike_Fit") != -1) {
      return "true";
    } else {
      return "false";
    }
}',
	'category_url' => 'sub {
    my $fullname = shift || return;
    my $url = $DB->table(\'Category\')->as_url($fullname);
    return $url;
}',
	'comscore' => '<!-- Begin comScore Tag -->
<script>
 var _comscore = _comscore || [];
  _comscore.push({ c1: "2", c2: "10037191" });
  (function() {
  var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true;
  s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js <http://scorecardresearch.com/beacon.js>  <http://scorecardresearch.com/beacon.js> ";
   el.parentNode.insertBefore(s, el);
  })();
</script>
<noscript>
  <img src="http://b.scorecardresearch.com/p?c1=2&c2=10037191&cv=2.0&cj=1" />
</noscript>
<!-- End comScore Tag -->',
	'convert_nl_br' => 'sub {
  my $tags = GT::Template->tags;
  foreach (keys %$tags) {
      next if ($_ eq \'RelatedArticles\');
      $tags->{$_} =~ s/\r//g;
      $tags->{$_} =~ s/\n/<br \/>/g;
  }
  return $tags;
}',
	'dans_series' => '- <a href="http://www.slowtwitch.com/News/F.I.S.T._Workshop_schedule_set_957.html">F.I.S.T. Workshops</a>
<br />- <a href="http://www.slowtwitch.com/Fit_Calculator/fit_calculator.php">Geometry Calculator</a>
<br />- <a href="http://www.slowtwitch.com/retailers/">Retailers</a>
<br />- <a href="http://www.slowtwitch.com/stackreach/index.php">Stack // Reach</a>
<br />- <a href="http://training.slowtwitch.com/">Training Log</a>
<br />- <a href="http://www.slowtwitch.com/triclubs/">Triathlon Clubs</a>',
	'ga_link_tracker' => '<!--Google Analytics Link Tracker -->
<script type="text/javascript">
  function recordOutboundLink(link, category, action) {
    _gat._getTrackerByName()._trackEvent(category, action);
    setTimeout(\'document.location = "\' + link.href + \'"\', 100);
  }
</script>',
	'get_detailed_url' => 'sub {
    my $id = shift;
    return $CFG->{build_detail_url} . \'/\' . $DB->table(\'Links\')->detailed_url($id);
}',
	'get_footer_categories' => 'sub {
# usage ($depth, $sb, $so);
	my $category = $DB->table(\'Category\');
	my $depth = shift || 0;
	my $sb = shift || "Name";
	my $so = shift ||"ASC";
	my $pos = shift || 1;

	$category->select_options("ORDER BY $sb $so");
	my $sth = $category->select( { CatDepth => $depth, Cat_Pos => $pos });
	my @loop;
	while (my $link = $sth->fetchrow_hashref) {
                                     $link->{URL} = "$CFG->{build_root_url}/" .  $category->as_url($link->{Full_Name}) . "/" . ($CFG->{build_index_include} ? $CFG->{build_index} : \'\');

		push @loop, $link;
	}
	return { \'category_links_loop\' => \@loop };
}',
	'get_header_categories' => 'sub {
# usage ($depth, $sb, $so);
	my $category = $DB->table(\'Category\');
	my $depth = shift || 0;
	my $sb = shift || "Name";
	my $so = shift ||"ASC";
	my $pos = shift || 0;

	$category->select_options("ORDER BY $sb $so");
	my $sth = $category->select( { CatDepth => $depth, Cat_Pos => $pos });
	my @loop;
	while (my $link = $sth->fetchrow_hashref) {
                                     $link->{URL} = "$CFG->{build_root_url}/" .  $category->as_url($link->{Full_Name}) . "/" . ($CFG->{build_index_include} ? $CFG->{build_index} : \'\');

		push @loop, $link;
	}
	return { \'category_links_loop\' => \@loop };
}',
	'get_links' => 'sub {
# usage ($type, $sb, $so);
	my $db = $DB->table(\'Links\');
	my $type = shift || "editorial";
	my $sb = shift || "Add_Date";
	my $so = shift ||"DESC";
	my $mh = shift || 10;

	$db->select_options("ORDER BY $sb $so", "LIMIT $mh");
	my $sth = $db->select({ Type => $type }, VIEWABLE);
	my @loop;
	while (my $link = $sth->fetchrow_hashref) {
		$link = Links::SiteHTML::tags(\'link\',$link);
		push @loop, $link;
	}
	return { $type . \'_links_loop\' => \@loop };
}',
	'get_links_categories' => 'sub {
    my $links = shift;
    my @ids     = map { $_->{ID} } @$links;
    my $catlink = $DB->table(\'CatLinks\',\'Category\');
    my %names = $catlink->select(\'LinkID\', \'Full_Name\', { LinkID => \@ids })->fetchall_list;

    return \%names;
}',
	'glam_widget' => '<a href="mailto:slowman@slowtwitch.com?cc=lars@slowtwitch.com&Subject=Send me a Slowtwitch Media Guide"><img src="http://www.slowtwitch.com/images/advertise_160.png"></a>
',
	'google_analytics' => '<!-- Google Analytics -->
<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push([\'_setAccount\', \'UA-2419103-1\']);
  _gaq.push([\'_setDomainName\', \'.slowtwitch.com\']);
  _gaq.push([\'_trackPageview\']);

  (function() {
    var ga = document.createElement(\'script\'); ga.type = \'text/javascript\'; ga.async = true;
    ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\';
    var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>',
	'old_related_articles' => 'sub {
	my $related = shift || return;
	my @ids = split ("\n",$related);
	my @loop;
	my $db = $DB->table(\'Links\');
	require Links::SiteHTML;
	foreach my $id (@ids) {
		my $link = $db->get($id);
		$link = Links::SiteHTML::tags(\'link\',$link);
		push @loop, $link;
	}
	return { related_articles_loop => \@loop };
}',
	'poll' => '<!--#include virtual="/cgi-bin/ssi_poll.cgi?poll=home" -->',
	'quantcast' => '<!-- Quantcast Tag -->
<script type="text/javascript">
var _qevents = _qevents || [];

(function() {
var elem = document.createElement(\'script\');
elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js";
elem.async = true;
elem.type = "text/javascript";
var scpt = document.getElementsByTagName(\'script\')[0];
scpt.parentNode.insertBefore(elem, scpt);
})();

_qevents.push({
qacct:"p-wtcPAHdnETGn_"
});
</script>

<noscript>
<div style="display:none;">
<img src="//pixel.quantserve.com/pixel/p-wtcPAHdnETGn_.gif" border="0" height="1" width="1" alt="Quantcast"/>
</div>
</noscript>
<!-- End Quantcast tag -->',
	'related_articles' => 'sub {
    my $related = shift || return;
    my @ids = split ("\n",$related);
    my @loop;
    my $db = $DB->table(\'Links\');

    my $linkid = shift;
    my $cond = GT::SQL::Condition->new();
    $cond->add(\'RelatedArticles\',\'like\', \'%\' . $linkid . \'%\');
    my $sth = $db->select($cond);
	my $seen = {};
	while (my $link = $sth->fetchrow_hashref()) {
        $link = Links::SiteHTML::tags(\'link\',$link);
		my @rids = split("\n", $link->{RelatedArticles});
		my $found = 0;
		for (@rids) {
			my $tid = $_;
			$tid =~ s/\s+//g;
			$found = 1 if ($tid == $linkid);
		}
        push @loop, $link if ($found);
		$seen->{$link->{ID}} = 1 if ($found);
	}

    require Links::SiteHTML;
    foreach my $id (@ids) {
		next if ($seen->{$id});
        my $rlink = $db->get($id);
		if ($rlink) {
			$rlink = Links::SiteHTML::tags(\'link\',$rlink);
			push @loop, { %$rlink };
		}
    }
    return { related_articles_loop => \@loop };
}
',
	'related_photos' => 'sub {
	my $related = shift || return;
	my @ids = split ("\n",$related);
	my @loop;
	use lib \'/home/slowtwitch/slowtwitch.com/cgi-bin/photos/admin\';
	Links::init(\'/home/slowtwitch/slowtwitch.com/cgi-bin/photos/admin\');
	require Plugins::SlideShow;
	my $DBH = new GT::SQL \'/home/slowtwitch/slowtwitch.com/cgi-bin/photos/admin/defs\';
	my $db = $DBH->table(\'Links\');
	require Links::SiteHTML;
	foreach my $id (@ids) {
		my $link = $db->get($id);
		my $fh = $db->file_info("Image1_thumbnail", $link->{ID});
		my $fdir  = $fh->File_Directory();
		my $full_path = "$fh";
		my $rel_path = $full_path;
		$rel_path =~ s,$fdir,,;
		$rel_path =~ s,%,%25,g;

		$link->{Image1_thumbnail_path} = $rel_path;
		$link = Links::SiteHTML::tags(\'link\',$link);
		push @loop, $link;
	}
	return { related_photos_loop => \@loop };
}',
	'replace_line_break' => 'sub {
    my $text = shift;
    $text =~ s/<br\s*\/?>/ /g;
    return $text;
}',
	'rewrite_detail_url' => 'sub {
  my $tags = GT::Template->tags;
  if ($tags->{detailed_url} and !$IN->param(\'d\')) {
      $tags->{detailed_url} =~ s/(\d+)\.html$/j$1.html/;
  }
  return $tags;
}',
	'round' => 'sub {
    my $num = shift;
    return sprintf("%.1f", $num - 0.05);
}
',
	'shorten_it' => 'sub {
    my $str = shift;
    my $length = shift || 160;
    if ($length > 0 and length $str > $length) {
        $str = substr($str,0,$length);
        $str =~ s/\s+\w+$//g;
        $str .= " ...";
    }
    return $str;
}',
	'sidenav' => '<ul class="sidenav">
  <li><a href="http://www.slowtwitch.com/retailers/">Bike Shops</a></li>
  <li><a href="http://www.slowtwitch.com/coaches/">Coaches</a></li>
  <li><a href="http://www.slowtwitch.com/Bike_Fit/F.I.S.T._2010/11_Schedule_live_1426.html">F.I.S.T. Workshops</a></li>
  <li><a href="http://www.slowtwitch.com/fitters/">Fitters</a></li>
  <li><a href="http://www.slowtwitch.com/Fit_Calculator/fit_calculator.php">Geometry Calculator</a></li>
  <li><a href="http://www.slowtwitch.com/runshops/">Running Stores</a></li>
  <li><a href="http://www.slowtwitch.com/stackreach/">Stack // Reach</a></li>
  <li><a href="http://training.slowtwitch.com/">Training Log</a></li>
  <li><a class="last" href="http://www.slowtwitch.com/triclubs/">Triathlon Clubs</a></li>
</ul>',
	'sidenav_fitter' => '<ul class="sidenav">
<li><a href="http://www.slowtwitch.com/Bike_Fit/index.html">Bike Fit Articles</a></li>
<li><a href="http://www.slowtwitch.com/Bike_Fit/F_I_S_T__Workshops/index.html">F.I.S.T. Workshops  </a></li>
<li><a href="http://www.slowtwitch.com/stackreach/">Stack/Reach Database</a></li>
<li><a href="http://www.slowtwitch.com/Fit_Calculator/stem_calc.php">Stem Calculator</a></li>
<li><a href="http://www.slowtwitch.com/Fit_Calculator/bar_bore_calc.php">Bar to HT Calculator</a></li>
<li><a href="http://www.slowtwitch.com/Fit_Calculator/fit_calculator.php">Tri Geometry Calculator</a></li>
<li><a href="http://www.slowtwitch.com/fitters/">Fitters Database</a></li>
<li><a href="http://www.slowtwitch.com/retailers/">Bike Shops Database</a></li>
<li><a class="last" href="http://forum.slowtwitch.com/gforum.cgi?forum=10;">Fitter\'s Forum</a></li>
</ul>',
	'site_title' => '&lt;:: Welcome to Slowtwitch.com ::&gt;',
	'site_title_short' => 'Slowtwitch.com',
	'slowdrive' => '<form action="https://secure.slowtwitch.com/cgi-bin/glist.cgi" method="post" name="subdrive">
<input type="hidden" name="do" value="user_subscribe">
<input type=hidden name="lid" value="158">
  <div style="width: 158px; border: 1px solid #000000; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px;">
  <span style="float: left; padding-top: 0px; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px;"><img src="http://www.slowtwitch.com/images/glinks/slowtwitch_subdrive_top_blugry_160.png" style="padding-bottom: 0px; margin-bottom: 0px;"/></span>
  <span style="clear: both; float: left; padding-top: 0px; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px;"><input type="text" id="searchbox" name="email" class="text" style="width: 130px; vertical-align: baseline; margin-top: 8px; margin-left: 4px;"></span>
  <span style="float: right; padding-top: 0px; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px;"><img src="http://www.slowtwitch.com/images/glinks/clear_shim.gif" height=1 width=4><input type="image" value="Submit" alt="Sign Up!" src="http://www.slowtwitch.com/images/glinks/slowtwitch_subdrive_right_blugry.png"></span>
  <img src="http://www.slowtwitch.com/images/glinks/slowtwitch_subdrive_bottom_blugry_160.png" style="border: none; vertical-align: bottom;" /></div>
</form>',
	'thumbnail' => 'sub {
   my $link = shift;
   my $image1_thumbnail_path = shift;
   if ($image1_thumbnail_path) {
       return $image1_thumbnail_path;
   } elsif ($link->{Link_Type} ne \'video\') {
       return;
   }

   if ($link->{Thumbnail_URL} and $link->{Thumbnail_URL} ne \'http://\') {
        return $link->{Thumbnail_URL};
   } else {
        require Plugins::ConvertVideo;

        my $field = Plugins::ConvertVideo::get_file_path($link->{ID}, "thumbnail_file_field");
        if ($field->{thumbnail_file_field_path}) {
             return $field->{thumbnail_file_field_path};
        }
    }

    return;
}',
	'ticker_loop' => 'sub {
	my @coupon_links_loop;
        my $db = $DB->table(\'Ticker\');
	my $sth = $db->do(\'SELECT ticker_text, ticker_link FROM glinks_Ticker ORDER BY ticker_text ASC\');
	while (my $result = $sth->fetchrow_hashref) {
		push @coupon_links_loop, {
		    coupon => $result->{ticker_text},
			url => $result->{ticker_link}
		};
	}

	return { \'coupon_links_loop\' => \@coupon_links_loop };
}'
};

# vim:syn=perl:ts=4:noet
