+ return encode_options($str, $GLOBALS['wfpl_provinces_assoc']);
+}
+
+# returns "odd", then "even", then "odd" etc.
+function enc_evenodd($values, $name) {
+ if(!isset($GLOBALS['wfpl_even_odds'])) {
+ $GLOBALS['wfpl_even_odds'] = array();
+ }
+
+ if($GLOBALS['wfpl_even_odds'][$name]) {
+ $GLOBALS['wfpl_even_odds'][$name] = false;
+ return 'even';
+ } else {
+ $GLOBALS['wfpl_even_odds'][$name] = true;
+ return 'odd';
+ }
+}
+
+function enc_image_src($str) {
+ list($src, $width, $height, $a, $b, $c) = explode(' ', $str);
+ return $src;
+}
+
+function enc_image_width($str) {
+ list($src, $width, $height, $a, $b, $c) = explode(' ', $str);
+ return $width;
+}
+
+function enc_image_height($str) {
+ list($src, $width, $height, $a, $b, $c) = explode(' ', $str);
+ return $height;
+}
+
+function enc_thumb_src($str) {
+ list($a, $b, $c, $src, $width, $height) = explode(' ', $str);
+ return $src;
+}
+
+function enc_thumb_width($str) {
+ list($a, $b, $c, $src, $width, $height) = explode(' ', $str);
+ return $width;
+}
+function enc_thumb_height($str) {
+ list($a, $b, $c, $src, $width, $height) = explode(' ', $str);
+ return $height;
+}
+
+# example template: Length: ~length html~ day~length s~
+function enc_s($str) {
+ if($str == '1') {
+ return '';
+ }
+
+ return 's';
+}
+
+# turn http/ftp (s) urls into html links (and encode everything for html)
+# does not encode without protocol (eg "www.foo.com")
+# does not linkify email addresses
+function enc_linkify($str) {
+ $ret = '';
+ $even = true;
+ $pieces = preg_split("/((?:ht|f)tps?:\/\/[^ \,\"\n\r\t<]+)/is", $str, null, PREG_SPLIT_DELIM_CAPTURE);
+ foreach($pieces as $piece) {
+ if($even) {
+ $ret .= enc_html($piece);
+ } else {
+ $ret .= '<a href="' . enc_attr($piece) . '">' . enc_html($piece) . '</a>';
+ }
+ $even = !$even;
+ }
+ return $ret;