<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Cal Kaiser : Blog : Latest Blog Posts</title>
    <link>https://cal-kaiser.com/blog.html</link>
    <description>Cal Kaiser : Blog : Latest Blog Posts</description>
    <copyright>Copyright (C): Cal Kaiser, https://cal-kaiser.com</copyright>
    <pubDate>Fri, 12 Jun 2026 18:10:38 GMT</pubDate>
    <dc:creator>Cal Kaiser</dc:creator>
    <dc:date>2026-06-12T18:10:38Z</dc:date>
    <dc:rights>Copyright (C): Cal Kaiser, https://cal-kaiser.com</dc:rights>
    <item>
      <title>Weekly Market Highs and Lows - June 12, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9053687</link>
      <description>&lt;p class="block-p"&gt;Our weekly market update newsletter has been delivered!&amp;nbsp; &amp;nbsp;Don’t miss out on getting caught up on the highs and lows of listings and sales each week.&amp;nbsp; Sign up below to have the Newsletter delivered to your email each week.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a rel="" href="https://mailchi.mp/8f18bb77c182/kaiser-associates-weekly-market-update-june-12-2026"&gt;Click here to check out our NEWSLETTER!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/bjyt/bjytqxyjnfyi.jpg" type="image/jpeg" />
      <pubDate>Fri, 12 Jun 2026 18:10:38 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9053687</guid>
      <dc:date>2026-06-12T18:10:38Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - June 5, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9044217</link>
      <description>&lt;p class="block-p"&gt;Our weekly market update newsletter has been delivered!&amp;nbsp; &amp;nbsp;Don’t miss out on getting caught up on the highs and lows of listings and sales each week.&amp;nbsp; Sign up below to have the Newsletter delivered to your email each week.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a rel="" href="https://mailchi.mp/4612bebc8ccf/kaiser-associates-weekly-highs-lows-june-5-2026"&gt;Click here to check out our NEWSLETTER!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/magd/magdufvsxuad.jpg" type="image/jpeg" />
      <pubDate>Fri, 05 Jun 2026 19:56:31 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9044217</guid>
      <dc:date>2026-06-05T19:56:31Z</dc:date>
    </item>
    <item>
      <title>New Listing! 5892 Stonehaven Drive</title>
      <link>https://cal-kaiser.com/blog.html/new-listing-5892-stonehaven-drive-9044216</link>
      <description>&lt;p class="block-p"&gt;Immaculate 3-Bed Rancher | Solar, Heat Pump &amp;amp; Private Yard Welcome to this beautifully maintained 3-bedroom, 2-bathroom rancher that checks every box. Offered in truly immaculate condition, this move-in-ready home has been meticulously cared for and shows like new throughout. Enjoy year-round comfort and energy efficiency with a modern heat pump system and solar panels — keeping utility bills impressively low and your carbon footprint even lower. The thoughtful single-level layout offers easy living for families, downsizers, and everyone in between. Step outside to your private backyard retreat — a serene, low-maintenance outdoor space designed for relaxing and entertaining without the upkeep. Whether you're hosting a summer barbecue or enjoying a quiet morning coffee, this yard delivers. With no stairs, low-maintenance landscaping, and smart energy upgrades already in place, this is the turnkey lifestyle you've been waiting for!&lt;/p&gt;&lt;p class="block-p"&gt;For more information &lt;a target="" rel="" href="https://cal-kaiser.com/mylistings.html/listing.1039044-5892-stonehaven-dr-duncan-v9l-0a5.108961277" data-type="link"&gt;click here&lt;/a&gt;.&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/mpwi/mpwikfrrjirq.png" type="image/png" />
      <pubDate>Fri, 05 Jun 2026 19:55:30 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-listing-5892-stonehaven-drive-9044216</guid>
      <dc:date>2026-06-05T19:55:30Z</dc:date>
    </item>
    <item>
      <title>New Listing! 4-1060 Shore Pine Close</title>
      <link>https://cal-kaiser.com/blog.html/new-listing-4-1060-shore-pine-close-9044214</link>
      <description>&lt;p class="block-p"&gt;Perched above the sparkling waters of Maple Bay, this architecturally striking cedar-clad home captures breathtaking ocean views and the essence of West Coast living. Designed for year-round comfort, it features efficient in-floor radiant heat throughout. The main level offers a spacious primary suite with walk-in closet and ensuite, a second bedroom, and bright open-concept living, dining, and kitchen spaces centered around a cozy woodstove. Expansive windows frame the stunning outlook, while the sweeping curved deck is perfect for entertaining or relaxing. An oversized single garage provides main floor access. The lower level includes two additional bedrooms, a full bath, laundry, and a large family room. A separate over-sized single garage provides excellent potential for a workshop, home business, guest space, extended family, or mortgage helper. Warm, welcoming, and move-in ready, this is a rare Maple Bay offering.&lt;/p&gt;&lt;p class="block-p"&gt;For more information &lt;a target="" rel="" href="https://cal-kaiser.com/mylistings.html/listing.1038967-4-1060-shore-pine-close-duncan-v9l-0c4.108974784" data-type="link"&gt;click here&lt;/a&gt;.&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/ltra/ltraiiswoeos.png" type="image/png" />
      <pubDate>Fri, 05 Jun 2026 19:50:07 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-listing-4-1060-shore-pine-close-9044214</guid>
      <dc:date>2026-06-05T19:50:07Z</dc:date>
    </item>
    <item>
      <title>2 New Construction Homes Just Listed on Cherry Lane!</title>
      <link>https://cal-kaiser.com/blog.html/2-new-construction-homes-just-listed-on-cherry-lane-9035560</link>
      <description>&lt;div class="listing-banner listing-banner-NEW-BANNER" style="background-color: rgb(31, 153, 59)" data-banner="NEW LISTING"&gt; &lt;/div&gt;&lt;p class="block-p"&gt;We have listed 2 new construction homes on Cherry Lane.&amp;nbsp; Each has a self-contained one bedroom suite and a 2 car garage along with spacious main area floor plans.&lt;/p&gt;&lt;p class="block-p"&gt;6011 Cherry Lane - 2,500 sqft including the 568 sqft suite.&amp;nbsp; The main home has 3 bedrooms and 3 bathrooms with a spacious open plan main living area.&lt;/p&gt;&lt;p class="block-p"&gt;6015 Cherry Lane - 2,190 sqft including the 553 sqft suite.&amp;nbsp; The main home has 3 bedrooms, 3 bathrooms and a dedicated office space.&lt;/p&gt;&lt;p class="block-p"&gt;Both homes are under construction and will be available for occupancy by the fall.&amp;nbsp; Don’t miss out!!&lt;/p&gt;&lt;p class="block-p"&gt;For more information on these and any of our other listings see our Website &lt;a target="true" rel="" href="https://cal-kaiser.com/mylistings.html" data-type="link"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/chyk/chykuxdekfmc.png" type="image/png" />
      <category>Du East Duncan, Duncan Real Estate</category>
      <pubDate>Fri, 29 May 2026 18:58:21 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/2-new-construction-homes-just-listed-on-cherry-lane-9035560</guid>
      <dc:date>2026-05-29T18:58:21Z</dc:date>
    </item>
    <item>
      <title>Kaiser &amp; Associates Weekly Highlights - May 29, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9035559</link>
      <description>&lt;p class="block-p"&gt;Welcome back! Following last week’s update, here’s a quick snapshot of the local market, new listings, and a few items worth a closer look. &amp;nbsp;Listing inventory is growing, hopefully the sales will continue to keep pace.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a target="_new" rel="" href="https://mailchi.mp/2ab04d567034/kaiser-associates-weekly-highs-lows-may-29-2026"&gt;Welcome to our weekly market report!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/kkap/kkapryanubnp.png" type="image/png" />
      <pubDate>Fri, 29 May 2026 18:32:24 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9035559</guid>
      <dc:date>2026-05-29T18:32:24Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - May 22, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9027191</link>
      <description>&lt;p class="block-p"&gt;Our weekly market update newsletter has been delivered!&amp;nbsp; &amp;nbsp;Don’t miss out on getting caught up on the highs and lows of listings and sales each week.&amp;nbsp; Sign up below to have the Newsletter delivered to your email each week.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a rel="" href="https://mailchi.mp/a645e2d390ca/kaiser-associates-weekly-market-highs-lows-may-22-2026"&gt;Click here to check out our NEWSLETTER!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/bjyt/bjytqxyjnfyi.jpg" type="image/jpeg" />
      <pubDate>Fri, 22 May 2026 17:10:13 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9027191</guid>
      <dc:date>2026-05-22T17:10:13Z</dc:date>
    </item>
    <item>
      <title>New Listing! 4041 Cambrai Road!</title>
      <link>https://cal-kaiser.com/blog.html/-new-listing-4041-cambrai-road-9019814</link>
      <description>&lt;h2&gt;Private 2-Acre Retreat with Mount Prevost Views • 8 Minutes to Town&lt;/h2&gt;&lt;p class="block-p"&gt;Tucked away on two private acres with sweeping views of Mount Prevost, 4041 Cambrai offers a rare opportunity to enjoy peaceful country living without giving up convenience. The only soundtrack here is nature—birdsong, wind through the trees, and the quiet of the Cowichan Valley—yet you're just 8 minutes from town for groceries, schools, and everyday amenities.&lt;/p&gt;&lt;p class="block-p"&gt;Inside, 2,300 square feet spread comfortably over two floors provides flexible living space for families, hobbyists, or anyone craving room to breathe. Outside, a small shop is ideal for projects, tools, or a workshop, and covered RV parking means your camper, boat, or trailer always has a home. Acreage like this—private, scenic, and this close to town—is increasingly hard to find, especially at this price. Whether you're looking for a family homestead, a hobby farm starter, or simply a quieter way of life with Mount Prevost as your backdrop, 4041 Cambrai delivers exceptional value.&lt;/p&gt;&lt;p class="block-p" style="text-align: center"&gt;&lt;strong&gt;2 Acres • 2,300 Sq Ft • Two Floors • Mount Prevost Views • Shop • Covered RV Parking • 8 Min to Town&lt;/strong&gt;&lt;/p&gt;&lt;p class="block-p"&gt;For more information client &lt;a target="" rel="" href="https://cal-kaiser.com/mylistings.html/listing.1036935-4041-cambrai-rd-duncan-v9l-1n9.108772595" data-type="link"&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/xger/xgerorcvleyj.jpg" type="image/jpeg" />
      <pubDate>Fri, 15 May 2026 20:45:52 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/-new-listing-4041-cambrai-road-9019814</guid>
      <dc:date>2026-05-15T20:45:52Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - May 15, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9019813</link>
      <description>&lt;p class="block-p"&gt;Our weekly market update newsletter has been delivered!&amp;nbsp; &amp;nbsp;Don’t miss out on getting caught up on the highs and lows of listings and sales each week.&amp;nbsp; Sign up below to have the Newsletter delivered to your email each week.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a rel="" href="https://mailchi.mp/6eb85d8d5944/kaiser-associates-weekly-highs-and-lows-for-may-15-2026"&gt;Click here to check out our NEWSLETTER!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/magd/magdufvsxuad.jpg" type="image/jpeg" />
      <pubDate>Fri, 15 May 2026 20:37:03 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9019813</guid>
      <dc:date>2026-05-15T20:37:03Z</dc:date>
    </item>
    <item>
      <title>New Listing! 6-5315 Miller Road!!</title>
      <link>https://cal-kaiser.com/blog.html/new-listing-6-5315-miller-road-9015554</link>
      <description>&lt;p class="block-p"&gt;Welcome to #6–5315 Miller Road, a quiet retreat just minutes from Duncan and an easy commute to Victoria. Backing onto a peaceful wooded greenbelt, this home offers easy mainfloor living with two bedrooms and two bathrooms, including a lovely primary suite with ensuite. A cozy gas fireplace and efficient heat pump keep things comfortable year-round. Step outside to a spacious deck and a separate patio—two distinct spaces for morning coffee, evening barbecues, or quiet time among the trees. The lower level is already framed with a roughed-in bathroom, ready for a family room, guest suite, or home office. A single garage adds secure parking and storage. Wineries, lakes, trails, and town amenities are all close at hand. Move-in ready on the main, with great upside below—this one is hard to beat.&lt;/p&gt;&lt;p class="block-p"&gt;For more information &lt;a rel="" href="https://cal-kaiser.com/mylistings.html/listing.1036490-6-5315-miller-rd-duncan-v9l-0b6.108744070" data-type="link"&gt;click here&lt;/a&gt;.&lt;/p&gt;&lt;p class="block-p"&gt;Come discover the boundless potential at 6-5315 Miller Road.&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/ljvh/ljvhecskfoyp.jpg" type="image/jpeg" />
      <pubDate>Thu, 14 May 2026 15:50:40 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-listing-6-5315-miller-road-9015554</guid>
      <dc:date>2026-05-14T15:50:40Z</dc:date>
    </item>
    <item>
      <title>New Listing! 5-3101 Herons Way!</title>
      <link>https://cal-kaiser.com/blog.html/new-listing-5-3101-herons-way-9015552</link>
      <description>&lt;p class="block-p"&gt;Downsizing but not ready for a condo? "The Patio" is a desired 55+ community that offers simplified living. Main level living in a quiet and welcoming setting, with a well run strata is a great place to start your next chapter. 1545 SF townhome with an airy open concept layout. 2 bedrooms, 2 bathrooms + a den! The main area has a gas fireplace viewable from living to dining to kitchen. The spacious updated kitchen has ample natural light and direct access to the rear patio. The primary bedroom includes an ensuite &amp;amp; walk-in closet while the den provides flexible space for hobbies or a home office. Hardi board siding, a new roof &amp;amp; new insulation all add to the home's efficiency. No compromise on outdoor space, out back you will enjoy the spacious fully fenced yard with partially covered patio. This location is perfect for walking trail access, shopping and enjoying local cuisine. Enjoy the freedom that comes with a turnkey lifestyle!&lt;/p&gt;&lt;p class="block-p"&gt;For more information &lt;a rel="" href="https://cal-kaiser.com/mylistings.html/listing.1034369-5-3101-herons-way-duncan-v9l-6z4.108744053" data-type="link"&gt;click here&lt;/a&gt;.&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/urtw/urtwoxqpquhv.jpg" type="image/jpeg" />
      <pubDate>Thu, 14 May 2026 15:45:37 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-listing-5-3101-herons-way-9015552</guid>
      <dc:date>2026-05-14T15:45:37Z</dc:date>
    </item>
    <item>
      <title>Kaiser &amp; Associates Weekly Highlights - May 8, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9009821</link>
      <description>&lt;p class="block-p"&gt;Welcome back! Following last week’s update, here’s a quick snapshot of the local market, new listings, and a few items worth a closer look. &amp;nbsp;Listing inventory is growing, hopefully the sales will continue to keep pace.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a target="_new" rel="" href="https://mailchi.mp/f97bcd5f85cf/kaiser-associates-weekly-highs-and-lows-may-8-2026"&gt;Welcome to our weekly market report!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/kkap/kkapryanubnp.png" type="image/png" />
      <pubDate>Fri, 08 May 2026 20:42:38 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9009821</guid>
      <dc:date>2026-05-08T20:42:38Z</dc:date>
    </item>
    <item>
      <title>New Listing! 399 Arbutus Ave West, North Cowichan</title>
      <link>https://cal-kaiser.com/blog.html/new-listing-399-arbutus-ave-west-north-cowichan-9008290</link>
      <description>&lt;p class="block-p" style="text-align: center"&gt;Your Private Oasis Moments from Town&lt;/p&gt;&lt;p class="block-p"&gt;Tucked into a peaceful pocket of West Arbutus Avenue and surrounded by the riding&amp;nbsp;grounds of Queen Margaret’s School, this level-entry home is a rare oasis just minutes&amp;nbsp;from downtown Duncan. Set on a private 0.65-acre lot, it feels secluded yet keeps every&amp;nbsp;amenity within easy reach.&lt;/p&gt;&lt;p class="block-p"&gt;The bright main level entry home offers 3 bedrooms and 2 bathrooms thoughtfully laid out for everyday living, while the full walkout basement opens directly to covered&amp;nbsp;parking. This home has potential! Great outdoor living spaces with ample garden&amp;nbsp;space. Family, recreation, and hobbies, are complimented well with a standout 660 sq.&amp;nbsp;ft. detached shop ideal for the hobbyist, tradesperson, or weekend tinkerer.&lt;/p&gt;&lt;p class="block-p"&gt;Properties this close to town with this much room to breathe — and a shop to match —&amp;nbsp;don’t come along often. Come experience the quiet, the green, and the lifestyle 399&amp;nbsp;Arbutus Avenue West has to offer.&lt;/p&gt;&lt;p class="block-p"&gt;3 Bedrooms • 2 Bathrooms • 0.65 Acres • 660 sq. ft. Detached Shop • Level Entry&amp;nbsp;with Full Walkout Basement&lt;/p&gt;&lt;p class="block-p"&gt;For more information &lt;a rel="" href="https://cal-kaiser.com/mylistings.html/listing.1033821-399-w-arbutus-ave-duncan-v9l-1j1.108694791" data-type="link"&gt;click here&lt;/a&gt;.&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/vevy/vevyeidvwxbn.jpg" type="image/jpeg" />
      <pubDate>Thu, 07 May 2026 20:23:48 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-listing-399-arbutus-ave-west-north-cowichan-9008290</guid>
      <dc:date>2026-05-07T20:23:48Z</dc:date>
    </item>
    <item>
      <title>New Listing! 2664 Heald Road, Shawnigan Lake</title>
      <link>https://cal-kaiser.com/blog.html/new-listing-2664-heald-road-shawnigan-lake-9002398</link>
      <description>&lt;p class="block-p"&gt;Sun-drenched lakefront retreat on the quiet western shore of Shawnigan Lake. This 4-bedroom, 2,600 sq ft cottage-style home offers warm character, comfortable space, and a layout built for both family life and weekend entertaining. Step outside to an excellent dock with full western exposure — ideal for swimming, paddleboarding, boating, and unforgettable sunset evenings on the water. A detached double garage/shop and loads of parking add serious practical value, with plenty of room for boats, trailers, vehicles, projects, and guests. Set in a private, quiet pocket of the lake yet still close to Shawnigan Village, schools, and the Malahat corridor. The standout bonus: rare subdivision potential, opening the door to long-term investment, a family compound, or future development. Lakefront homes that combine sun, dock, space, parking, and development upside are genuinely hard to find — 2664 Heald Road is a special opportunity.&lt;/p&gt;&lt;p class="block-p"&gt;For more information &lt;a target="" rel="" href="https://cal-kaiser.com/mylistings.html/listing.1032640-2664-heald-rd-shawnigan-lake-v0r-2w0.108595851" data-type="link"&gt;click here&lt;/a&gt;.&lt;/p&gt;&lt;p class="block-p"&gt;Spend this summer at your lakefront retreat!&amp;nbsp;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/ogxf/ogxfsdddhemq.jpg" type="image/jpeg" />
      <pubDate>Fri, 01 May 2026 18:28:43 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-listing-2664-heald-road-shawnigan-lake-9002398</guid>
      <dc:date>2026-05-01T18:28:43Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - May 1, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9002397</link>
      <description>&lt;p class="block-p"&gt;Our weekly market update newsletter has been delivered!&amp;nbsp; &amp;nbsp;Don’t miss out on getting caught up on the highs and lows of listings and sales each week.&amp;nbsp; Sign up below to have the Newsletter delivered to your email each week.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a target="" rel="" href="https://mailchi.mp/6a8709a7e78d/weekly-highs-lows-with-kaiser-associates-may-1-2026"&gt;Click here to check out our NEWSLETTER!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/magd/magdufvsxuad.jpg" type="image/jpeg" />
      <pubDate>Fri, 01 May 2026 18:22:54 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9002397</guid>
      <dc:date>2026-05-01T18:22:54Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - April 24, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8993889</link>
      <description>&lt;p class="block-p"&gt;Our weekly market update newsletter has been delivered!&amp;nbsp; &amp;nbsp;Don’t miss out on getting caught up on the highs and lows of listings and sales each week.&amp;nbsp; Sign up below to have the Newsletter delivered to your email each week.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a rel="" href="https://mailchi.mp/a044cfcb417e/weekly-highs-and-lows-from-kaiser-associates-april-24-2026"&gt;Click here to check out our NEWSLETTER!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/bjyt/bjytqxyjnfyi.jpg" type="image/jpeg" />
      <pubDate>Fri, 24 Apr 2026 19:48:59 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8993889</guid>
      <dc:date>2026-04-24T19:48:59Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - April 17, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8985873</link>
      <description>&lt;p class="block-p"&gt;Our weekly market update newsletter has been delivered!&amp;nbsp; &amp;nbsp;Don’t miss out on getting caught up on the highs and lows of listings and sales each week.&amp;nbsp; Sign up below to have the Newsletter delivered to your email each week.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a rel="" href="https://mailchi.mp/7015ae7696b4/weekly-highs-and-lows-in-the-cowichan-valley-from-kaiser-associates-april-17-2026"&gt;Click here to check out our NEWSLETTER!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/magd/magdufvsxuad.jpg" type="image/jpeg" />
      <pubDate>Fri, 17 Apr 2026 19:50:33 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8985873</guid>
      <dc:date>2026-04-17T19:50:33Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - April 10, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8978158</link>
      <description>&lt;p class="block-p"&gt;Our weekly market update newsletter has been delivered!&amp;nbsp; &amp;nbsp;Don’t miss out on getting caught up on the highs and lows of listings and sales each week.&amp;nbsp; Sign up below to have the Newsletter delivered to your email each week.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a rel="" href="https://mailchi.mp/2dabc92998c8/kaiser-associates-weekly-highs-and-lows-april-10-2026"&gt;Click here to check out our NEWSLETTER!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/bjyt/bjytqxyjnfyi.jpg" type="image/jpeg" />
      <pubDate>Fri, 10 Apr 2026 16:46:44 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8978158</guid>
      <dc:date>2026-04-10T16:46:44Z</dc:date>
    </item>
    <item>
      <title>Kaiser &amp; Associates Weekly Highlights - April 3, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8969260</link>
      <description>&lt;p class="block-p"&gt;Wishing our friends and colleagues all the best this holiday weekend!&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a target="_new" rel="" href="https://mailchi.mp/[xxxxxx]/kaiser-associates-weekly-highs-lows-april-3-2026"&gt;Welcome to our weekly market report!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/vrtc/vrtcbgvujmax.png" type="image/png" />
      <pubDate>Fri, 03 Apr 2026 16:15:00 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8969260</guid>
      <dc:date>2026-04-03T16:15:00Z</dc:date>
    </item>
    <item>
      <title>Kaiser &amp; Associates Weekly Highlights - Mar 27, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8964093</link>
      <description>&lt;p class="block-p"&gt;As we move further into the spring season, we’re seeing more homeowners begin to prepare their properties for sale. Simple updates like fresh paint, decluttering, and small repairs can go a long way toward making a strong first impression with buyers. With the right preparation and a strategic pricing approach, today’s market offers solid opportunities for sellers while still giving buyers a good selection of homes to choose from. If a move is on your horizon this year, now is a great time to start the conversation.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a target="_new" rel="" href="https://mailchi.mp/180c39c410f5/weekly-highs-and-lows-from-kaiser-associates-mar-27-2026"&gt;Welcome to our weekly market report!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/kkap/kkapryanubnp.png" type="image/png" />
      <pubDate>Fri, 27 Mar 2026 17:29:38 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8964093</guid>
      <dc:date>2026-03-27T17:29:38Z</dc:date>
    </item>
    <item>
      <title>Kaiser &amp; Associates Weekly Highlights - March 20, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8957106</link>
      <description>&lt;p class="block-p"&gt;The local real estate market continues to settle into a healthy balance between buyers and sellers. Inventory has improved slightly, which means buyers are taking a bit more time to explore their options before making a decision. For sellers, this makes accurate pricing and strong marketing more important than ever. The good news is that well-presented homes that are priced correctly are still selling in a timely manner. If you’re curious about the current value of your home, we’re always happy to provide an updated market analysis.&lt;span data-type="button" class="blog-button"&gt;&lt;a target="_new" rel="" href="https://mailchi.mp/640092fadb3e/weekly-highs-and-lows-from-kaiser-associates-mar-20-2026"&gt;Welcome to our weekly market report!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/zqtp/zqtpqocxoeag.png" type="image/png" />
      <pubDate>Fri, 20 Mar 2026 15:29:39 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8957106</guid>
      <dc:date>2026-03-20T15:29:39Z</dc:date>
    </item>
    <item>
      <title>Kaiser &amp; Associates Weekly Highlights - March 13, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8949704</link>
      <description>&lt;p class="block-p"&gt;Spring is quickly approaching in the Cowichan Valley, and we’re starting to see the early signs of a busy market ahead. Buyer activity is increasing and more listings are beginning to come online, giving people more options than we’ve seen over the past couple of years. Well-priced homes are still attracting strong interest, so if you’ve been considering selling in 2026, now is the perfect time to start preparing your home for the spring market. A little planning today can make a big difference when the market heats up.&lt;span data-type="button" class="blog-button"&gt;&lt;a target="_new" rel="" href="https://mailchi.mp/305d7d27a616/weekly-highs-and-lows-with-from-kaiser-associates-march-13-2026"&gt;Welcome to our weekly market report!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/zqtp/zqtpqocxoeag.png" type="image/png" />
      <pubDate>Fri, 13 Mar 2026 20:50:48 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8949704</guid>
      <dc:date>2026-03-13T20:50:48Z</dc:date>
    </item>
    <item>
      <title>Kaiser &amp; Associates Weekly Highlights - March 6, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8942777</link>
      <description>&lt;p class="block-p"&gt;Spring has arrived in the Cowichan Valley, and the real estate market is beginning to pick up momentum. There are currently a good number of homes available, giving buyers more options than we’ve seen in some time. At the same time, it feels like the downward pressure we experienced over the past couple of years has largely settled. We appear to be moving into a more balanced market, which is healthy for both buyers and sellers. For now, we don’t expect significant upward pressure on prices in the short term, but well-priced homes are still attracting solid interest.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a target="_new" rel="" href="https://mailchi.mp/a521a65845b4/weekly-market-highs-and-lows-from-kaiser-associates-march-6-2026"&gt;Welcome to our weekly market report!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/kkap/kkapryanubnp.png" type="image/png" />
      <pubDate>Fri, 06 Mar 2026 18:55:47 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8942777</guid>
      <dc:date>2026-03-06T18:55:47Z</dc:date>
    </item>
    <item>
      <title>Kaiser &amp; Associates Weekly Highlights - February 27, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8934497</link>
      <description>&lt;p class="block-p"&gt;Can you believe February is almost behind us? The spring market is just around the corner, and momentum is already starting to build. By the time April arrives, we’ll be in the full swing of one of the busiest times of the year for real estate. Now is the perfect opportunity to get ahead of the market and start preparing your home for sale. If you’re thinking about making a move, need preparation tips, or would like an updated market analysis, we’d be happy to help you get started.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a target="_new" rel="" href="https://mailchi.mp/4b9abb234d69/kaiser-associates-weekly-highlights-february-27-2026"&gt;Welcome to our weekly market report!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/izxd/izxdecvrndpq.jpg" type="image/jpeg" />
      <pubDate>Fri, 27 Feb 2026 18:02:44 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8934497</guid>
      <dc:date>2026-02-27T18:02:44Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - February 20, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8929637</link>
      <description>&lt;p class="block-p"&gt;Our weekly market update newsletter has been delivered!&amp;nbsp; &amp;nbsp;Don’t miss out on getting caught up on the highs and lows of listings and sales each week.&amp;nbsp; Sign up below to have the Newsletter delivered to your email each week.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a rel="" href="https://mailchi.mp/cfe1764d06c9/kaiser-associates-highs-and-lows-for-the-week-february-20-2026"&gt;Click here to check out our NEWSLETTER!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/bjyt/bjytqxyjnfyi.jpg" type="image/jpeg" />
      <pubDate>Fri, 20 Feb 2026 17:34:53 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8929637</guid>
      <dc:date>2026-02-20T17:34:53Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - February 13, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8923723</link>
      <description>&lt;p class="block-p"&gt;Our weekly market update newsletter has been delivered!&amp;nbsp; &amp;nbsp;Don’t miss out on getting caught up on the highs and lows of listings and sales each week.&amp;nbsp; Sign up below to have the Newsletter delivered to your email each week.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a rel="" href="https://mailchi.mp/a80322f4e793/kaiser-associates-weekly-market-highlights"&gt;Click here to check out our NEWSLETTER!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/bjyt/bjytqxyjnfyi.jpg" type="image/jpeg" />
      <pubDate>Fri, 13 Feb 2026 19:51:38 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8923723</guid>
      <dc:date>2026-02-13T19:51:38Z</dc:date>
    </item>
    <item>
      <title>Weekly Update - February 6, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8916896</link>
      <description>&lt;p class="block-p"&gt;Our weekly market update newsletter has been delivered!&amp;nbsp; &amp;nbsp;Don’t miss out on getting caught up on the highs and lows of listings and sales each week.&amp;nbsp; Sign up below to have the Newsletter delivered to your email each week.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a target="_new" rel="" href="https://mailchi.mp/282840282761/welcome-to-our-weekly-market-highlights-showing-the-highs-and-lows-of-the-market-in-the-cowichan-valley"&gt;Click here to check out our NEWSLETTER!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/bjyt/bjytqxyjnfyi.jpg" type="image/jpeg" />
      <pubDate>Fri, 06 Feb 2026 16:52:04 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8916896</guid>
      <dc:date>2026-02-06T16:52:04Z</dc:date>
    </item>
    <item>
      <title>Weekly Update - January 30, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8880953</link>
      <description>&lt;p class="block-p"&gt;Our weekly market update newsletter has been delivered!&amp;nbsp; &amp;nbsp;Don’t miss out on getting caught up on the highs and lows of listings and sales each week.&amp;nbsp; Sign up below to have the Newsletter delivered to your email each week.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a target="_new" rel="" href="https://mailchi.mp/9229b8e6242f/kaiser-associates-weekly-market-update-january-30-2026"&gt;Click here to check out our NEWSLETTER!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/webdrive/62549/_media/Brand%20Images/Blog%20Header%20-%20Newsletter.jpg" type="image/jpeg" />
      <pubDate>Fri, 30 Jan 2026 18:27:18 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8880953</guid>
      <dc:date>2026-01-30T18:27:18Z</dc:date>
    </item>
    <item>
      <title>Please enjoy this week’s weekly market update.</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8899679</link>
      <description>&lt;p class="block-p"&gt;One week left in January! Hard to believe as this wonderful weather keeps up. I am the&amp;nbsp;proud grandfather of lovely Stevie Jane Marshall and can’t be happier! BTW we sold a&amp;nbsp;bunch of homes as well! The market is starting strong for us and hope it will continue through the rest of 2026&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a target="_new" rel="" href="https://mailchi.mp/415156259015/kaiser-associates-weekly-market-update"&gt;Welcome to our weekly market report!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/izxd/izxdecvrndpq.jpg" type="image/jpeg" />
      <pubDate>Fri, 23 Jan 2026 21:18:46 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8899679</guid>
      <dc:date>2026-01-23T21:18:46Z</dc:date>
    </item>
    <item>
      <title>Please enjoy this week’s weekly market update.</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8894346</link>
      <description>&lt;p class="block-p"&gt;Half way through January already and it feels like spring. I am sure winter will be back&amp;nbsp;soon though. As for me I am still holding strong on my Dri January commitment and am very excited for my first Grandchild who is due at any time now! Hopefully for next week’s update I will be able to share a photo!&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a target="_new" rel="" href="https://mailchi.mp/78f7809620f2/welcome-to-our-weekly-market-update"&gt;Welcome to our weekly market report!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/izxd/izxdecvrndpq.jpg" type="image/jpeg" />
      <pubDate>Fri, 16 Jan 2026 17:37:43 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8894346</guid>
      <dc:date>2026-01-16T17:37:43Z</dc:date>
    </item>
    <item>
      <title>Our weekly Market Update newsletter has just been published!</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8888631</link>
      <description>&lt;p class="block-p"&gt;Our Weekly Newsletter has been published - the first for 2026!&amp;nbsp;A new year brings new opportunities, and we’re grateful to have you with us. Here’s to a great year ahead—we look forward to sharing insights, updates, and opportunities with you along the way.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a target="_new" rel="" href="https://mailchi.mp/2fed45689ac8/kaiser-associates-weekly-market-update-january-9-2026"&gt;Welcome to our weekly market report!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/izxd/izxdecvrndpq.jpg" type="image/jpeg" />
      <pubDate>Fri, 09 Jan 2026 16:57:26 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8888631</guid>
      <dc:date>2026-01-09T16:57:26Z</dc:date>
    </item>
    <item>
      <title>Merry Christmas from the team at Kaiser &amp; Associates!</title>
      <link>https://cal-kaiser.com/blog.html/merry-christmas-from-the-team-at-kaiser-associates-8878249</link>
      <description>&lt;p class="block-p"&gt;While our team takes some time with their friends and family, we wish you the very best of the season with yours.&lt;/p&gt;&lt;p class="block-p"&gt;Our Newsletter will return January 9, 2026 - if you don’t want to miss it, be sure to subscribe below.&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/phdj/phdjdwrttyff.jpg" type="image/jpeg" />
      <pubDate>Wed, 24 Dec 2025 17:00:00 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/merry-christmas-from-the-team-at-kaiser-associates-8878249</guid>
      <dc:date>2025-12-24T17:00:00Z</dc:date>
    </item>
    <item>
      <title>Welcome to our weekly market update!</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8878235</link>
      <description>&lt;p class="block-p"&gt;Our Weekly Newsletter has been published - the last for 2025!&amp;nbsp;&amp;nbsp;As we head into the holiday season, we’d like to wish you and your loved ones a joyful Christmas and a very Happy New Year. We’ll be taking a short holiday break and will resume our regular updates in early 2026. Until then, enjoy the festivities, and we look forward to reconnecting in the new year.&lt;/p&gt;&lt;p class="block-p"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a target="_new" rel="" href="https://mailchi.mp/d972295d73f9/welcome-to-our-weekly-market-report"&gt;Welcome to our weekly market report!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;We hope you enjoy our weekly Newsletter and would love for you to subscribe!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;div id="mc_embed_shell"&gt;
      &lt;link href="https://cal-kaiser.com/cdn-images.mailchimp.com/embedcode/classic-061523.css" rel="stylesheet" type="text/css"&gt;
  &lt;style type="text/css"&gt;
        #mc_embed_signup{background:#fff; false;clear:left; font:14px Helvetica,Arial,sans-serif; width: 600px;}
        /* Add your own Mailchimp form style overrides in your site stylesheet or in this style block.
           We recommend moving this block and the preceding CSS link to the HEAD of your HTML file. */
&lt;/style&gt;
&lt;div id="mc_embed_signup"&gt;
    &lt;form action="https://cal-kaiser.us2.list-manage.com/subscribe/post?u=387e3b66f73725b92b0c5f6fe&amp;amp;id=5f14f718b2&amp;amp;f_id=00a51fe0f0" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank"&gt;
        &lt;div id="mc_embed_signup_scroll"&gt;&lt;h2&gt;Subscribe to our Newletter here!&lt;/h2&gt;
            &lt;div class="indicates-required"&gt;&lt;span class="asterisk"&gt;*&lt;/span&gt; indicates required&lt;/div&gt;
            &lt;div class="mc-field-group"&gt;&lt;label for="mce-EMAIL"&gt;Email Address &lt;span class="asterisk"&gt;*&lt;/span&gt;&lt;/label&gt;&lt;input type="email" name="EMAIL" class="required email" id="mce-EMAIL" required="" value=""&gt;&lt;/div&gt;&lt;div class="mc-field-group"&gt;&lt;label for="mce-FNAME"&gt;First Name &lt;/label&gt;&lt;input type="text" name="FNAME" class=" text" id="mce-FNAME" value=""&gt;&lt;/div&gt;
&lt;div hidden=""&gt;&lt;input type="hidden" name="tags" value="1933130"&gt;&lt;/div&gt;
        &lt;div id="mce-responses" class="clear foot"&gt;
            &lt;div class="response" id="mce-error-response" style="display: none;"&gt;&lt;/div&gt;
            &lt;div class="response" id="mce-success-response" style="display: none;"&gt;&lt;/div&gt;
        &lt;/div&gt;
    &lt;div aria-hidden="true" style="position: absolute; left: -5000px;"&gt;
        /* real people should not fill this in and expect good things - do not remove this or risk form bot signups */
        &lt;input type="text" name="b_387e3b66f73725b92b0c5f6fe_5f14f718b2" tabindex="-1" value=""&gt;
    &lt;/div&gt;
        &lt;div class="optionalParent"&gt;
            &lt;div class="clear foot"&gt;
                &lt;input type="submit" name="subscribe" id="mc-embedded-subscribe" class="button" value="Subscribe"&gt;
                &lt;p style="margin: 0px auto;"&gt;&lt;a href="http://eepurl.com/i7OZfs" title="Mailchimp - email marketing made easy and fun"&gt;&lt;span style="display: inline-block; background-color: transparent; border-radius: 4px;"&gt;&lt;img class="refferal_badge" src="https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg" alt="Intuit Mailchimp" style="width: 220px; height: 40px; display: flex; padding: 2px 0px; justify-content: center; align-items: center;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/form&gt;
&lt;/div&gt;
&lt;script type="text/javascript" src="//s3.amazonaws.com/downloads.mailchimp.com/js/mc-validate.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;(function($) {window.fnames = new Array(); window.ftypes = new Array();fnames[0]='EMAIL';ftypes[0]='email';fnames[1]='FNAME';ftypes[1]='text';fnames[2]='LNAME';ftypes[2]='text';}(jQuery));var $mcj = jQuery.noConflict(true);
    // SMS Phone Multi-Country Functionality
    if(!window.MC) {
      window.MC = {};
    }
    window.MC.smsPhoneData = {
      defaultCountryCode: 'CA',
      programs: [],
      smsProgramDataCountryNames: []
    };

    function getCountryUnicodeFlag(countryCode) {
       return countryCode.toUpperCase().replace(/./g, (char) =&gt; String.fromCodePoint(char.charCodeAt(0) + 127397))
    };

    // HTML sanitization function to prevent XSS
    function sanitizeHtml(str) {
      if (typeof str !== 'string') return '';
      return str
        .replace(/&amp;/g, '&amp;amp;')
        .replace(/&lt;/g, '&amp;lt;')
        .replace(/&gt;/g, '&amp;gt;')
        .replace(/"/g, '&amp;quot;')
        .replace(/'/g, '&amp;#x27;')
        .replace(/\//g, '&amp;#x2F;');
    }

    // URL sanitization function to prevent javascript: and data: URLs
    function sanitizeUrl(url) {
      if (typeof url !== 'string') return '';
      const trimmedUrl = url.trim().toLowerCase();
      if (trimmedUrl.startsWith('javascript:') || trimmedUrl.startsWith('data:') || trimmedUrl.startsWith('vbscript:')) {
        return '#';
      }
      return url;
    }

    const getBrowserLanguage = () =&gt; {
      if (!window?.navigator?.language?.split('-')[1]) {
        return window?.navigator?.language?.toUpperCase();
      }
      return window?.navigator?.language?.split('-')[1];
    };

    function getDefaultCountryProgram(defaultCountryCode, smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return null;
      }

      const browserLanguage = getBrowserLanguage();

      if (browserLanguage) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === browserLanguage,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      if (defaultCountryCode) {
        const foundProgram = smsProgramData.find(
          (program) =&gt; program?.countryCode === defaultCountryCode,
        );
        if (foundProgram) {
          return foundProgram;
        }
      }

      return smsProgramData[0];
    }

    function updateSmsLegalText(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const programs = window?.MC?.smsPhoneData?.programs;
      if (!programs || !Array.isArray(programs)) {
        return;
      }
      
      const program = programs.find(program =&gt; program?.countryCode === countryCode);
      if (!program || !program.requiredTemplate) {
        return;
      }
      
      const legalTextElement = document.querySelector('#legal-text-' + fieldName);
      if (!legalTextElement) {
        return;
      }
      
      // Remove HTML tags and clean up the text
      const divRegex = new RegExp('&lt;/?[div][^&gt;]*&gt;', 'gi');
      const fullAnchorRegex = new RegExp('&lt;a.*?&lt;/a&gt;', 'g');
      const anchorRegex = new RegExp('&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;/a&gt;');
      
      const template = program.requiredTemplate.replace(divRegex, '');
      
      

      legalTextElement.textContent = '';
      const parts = template.split(/(&lt;a href="https://cal-kaiser.com/.*?" target=".*?"&gt;.*?&lt;\/a&gt;)/g);
      parts.forEach(function(part) {
        if (!part) {
          return;
        }
        const anchorMatch = part.match(/&lt;a href="https://cal-kaiser.com/(.*?)" target="(.*?)"&gt;(.*?)&lt;\/a&gt;/);
        if (anchorMatch) {
          const linkElement = document.createElement('a');
          linkElement.href = sanitizeUrl(anchorMatch[1]);
          linkElement.target = sanitizeHtml(anchorMatch[2]);
          linkElement.textContent = sanitizeHtml(anchorMatch[3]);
          legalTextElement.appendChild(linkElement);
        } else {
          legalTextElement.appendChild(document.createTextNode(part));
        }
      });
          
    }

    function generateDropdownOptions(smsProgramData) {
      if (!smsProgramData || smsProgramData.length === 0) {
        return '';
      }
      
      return smsProgramData.map(program =&gt; {
        const flag = getCountryUnicodeFlag(program.countryCode);
        const countryName = getCountryName(program.countryCode);
        const callingCode = program.countryCallingCode || '';
        // Sanitize all values to prevent XSS
        const sanitizedCountryCode = sanitizeHtml(program.countryCode || '');
        const sanitizedCountryName = sanitizeHtml(countryName || '');
        const sanitizedCallingCode = sanitizeHtml(callingCode || '');
        return '&lt;option value="' + sanitizedCountryCode + '"&gt;' + sanitizedCountryName + ' ' + sanitizedCallingCode + '&lt;/option&gt;';
      }).join('');
    }

    function getCountryName(countryCode) {
      if (window.MC?.smsPhoneData?.smsProgramDataCountryNames &amp;&amp; Array.isArray(window.MC.smsPhoneData.smsProgramDataCountryNames)) {
        for (let i = 0; i &lt; window.MC.smsPhoneData.smsProgramDataCountryNames.length; i++) {
          if (window.MC.smsPhoneData.smsProgramDataCountryNames[i].code === countryCode) {
            return window.MC.smsPhoneData.smsProgramDataCountryNames[i].name;
          }
        }
      }
      return countryCode;
    }

    function getDefaultPlaceholder(countryCode) {
      if (!countryCode || typeof countryCode !== 'string') {
        return '+1 000 000 0000'; // Default US placeholder
      }
      
      const mockPlaceholders = [
        {
      countryCode: 'US',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the US country code +1 before the phone number',
    },
    {
      countryCode: 'GB',
      placeholder: '+44 0000 000000',
      helpText: 'Include the GB country code +44 before the phone number',
    },
    {
      countryCode: 'CA',
      placeholder: '+1 000 000 0000',
      helpText: 'Include the CA country code +1 before the phone number',
    },
    {
      countryCode: 'AU',
      placeholder: '+61 000 000 000',
      helpText: 'Include the AU country code +61 before the phone number',
    },
    {
      countryCode: 'DE',
      placeholder: '+49 000 0000000',
      helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
    },
    {
      countryCode: 'FR',
      placeholder: '+33 0 00 00 00 00',
      helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
    },
    {
      countryCode: 'ES',
      placeholder: '+34 000 000 000',
      helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
    },
    {
      countryCode: 'NL',
      placeholder: '+31 0 00000000',
      helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
    },
    {
      countryCode: 'BE',
      placeholder: '+32 000 00 00 00',
      helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
    },
    {
      countryCode: 'CH',
      placeholder: '+41 00 000 00 00',
      helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
    },
    {
      countryCode: 'AT',
      placeholder: '+43 000 000 0000',
      helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
    },
    {
      countryCode: 'IE',
      placeholder: '+353 00 000 0000',
      helpText: 'Include the IE country code +353 before the phone number',
    },
    {
      countryCode: 'IT',
      placeholder: '+39 000 000 0000',
      helpText:
        'Includere il prefisso internazionale IT +39 prima del numero di telefono',
    },
      ];

      const selectedPlaceholder = mockPlaceholders.find(function(item) {
        return item &amp;&amp; item.countryCode === countryCode;
      });
      
      return selectedPlaceholder ? selectedPlaceholder.placeholder : mockPlaceholders[0].placeholder;
    }

    function updatePlaceholder(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      const phoneInput = document.querySelector('#mce-' + fieldName);
      if (!phoneInput) {
        return;
      }
      
      const placeholder = getDefaultPlaceholder(countryCode);
      if (placeholder) {
        phoneInput.placeholder = placeholder;
      }
    }

    function updateCountryCodeInstruction(countryCode, fieldName) {
      updatePlaceholder(countryCode, fieldName);
      
    }

    function getDefaultHelpText(countryCode) {
      const mockPlaceholders = [
        {
          countryCode: 'US',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the US country code +1 before the phone number',
        },
        {
          countryCode: 'GB',
          placeholder: '+44 0000 000000',
          helpText: 'Include the GB country code +44 before the phone number',
        },
        {
          countryCode: 'CA',
          placeholder: '+1 000 000 0000',
          helpText: 'Include the CA country code +1 before the phone number',
        },
        {
          countryCode: 'AU',
          placeholder: '+61 000 000 000',
          helpText: 'Include the AU country code +61 before the phone number',
        },
        {
          countryCode: 'DE',
          placeholder: '+49 000 0000000',
          helpText: 'Fügen Sie vor der Telefonnummer die DE-Ländervorwahl +49 ein',
        },
        {
          countryCode: 'FR',
          placeholder: '+33 0 00 00 00 00',
          helpText: 'Incluez le code pays FR +33 avant le numéro de téléphone',
        },
        {
          countryCode: 'ES',
          placeholder: '+34 000 000 000',
          helpText: 'Incluya el código de país ES +34 antes del número de teléfono',
        },
        {
          countryCode: 'NL',
          placeholder: '+31 0 00000000',
          helpText: 'Voeg de NL-landcode +31 toe vóór het telefoonnummer',
        },
        {
          countryCode: 'BE',
          placeholder: '+32 000 00 00 00',
          helpText: 'Incluez le code pays BE +32 avant le numéro de téléphone',
        },
        {
          countryCode: 'CH',
          placeholder: '+41 00 000 00 00',
          helpText: 'Fügen Sie vor der Telefonnummer die CH-Ländervorwahl +41 ein',
        },
        {
          countryCode: 'AT',
          placeholder: '+43 000 000 0000',
          helpText: 'Fügen Sie vor der Telefonnummer die AT-Ländervorwahl +43 ein',
        },
        {
          countryCode: 'IE',
          placeholder: '+353 00 000 0000',
          helpText: 'Include the IE country code +353 before the phone number',
        },
        {
          countryCode: 'IT',
          placeholder: '+39 000 000 0000',
          helpText: 'Includere il prefisso internazionale IT +39 prima del numero di telefono',
        },
      ];
      
      if (!countryCode || typeof countryCode !== 'string') {
        return mockPlaceholders[0].helpText;
      }
      
      const selectedHelpText = mockPlaceholders.find(function(item) {
          return item &amp;&amp; item.countryCode === countryCode;
        });
        
        return selectedHelpText ? selectedHelpText.helpText : mockPlaceholders[0].helpText;
    }

    function setDefaultHelpText(countryCode) {
      const helpTextSpan = document.querySelector('#help-text');
      if (!helpTextSpan) {
        return;
      }

        
    }

    function updateHelpTextCountryCode(countryCode, fieldName) {
      if (!countryCode || !fieldName) {
        return;
      }
      
      setDefaultHelpText(countryCode);
    }

    function initializeSmsPhoneDropdown(fieldName) {
      if (!fieldName || typeof fieldName !== 'string') {
        return;
      }
      
      const dropdown = document.querySelector('#country-select-' + fieldName);
      const displayFlag = document.querySelector('#flag-display-' + fieldName);
      
      if (!dropdown || !displayFlag) {
        return;
      }

      const smsPhoneData = window.MC?.smsPhoneData;
      if (smsPhoneData &amp;&amp; smsPhoneData.programs &amp;&amp; Array.isArray(smsPhoneData.programs)) {
        dropdown.innerHTML = generateDropdownOptions(smsPhoneData.programs);
      }

      const defaultProgram = getDefaultCountryProgram(smsPhoneData?.defaultCountryCode, smsPhoneData?.programs);
      if (defaultProgram &amp;&amp; defaultProgram.countryCode) {
        dropdown.value = defaultProgram.countryCode;
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(defaultProgram.countryCode);
          flagSpan.setAttribute('aria-label', sanitizeHtml(defaultProgram.countryCode) + ' flag');
        }
        
        updateSmsLegalText(defaultProgram.countryCode, fieldName);
        updatePlaceholder(defaultProgram.countryCode, fieldName);
        updateCountryCodeInstruction(defaultProgram.countryCode, fieldName);
      }

     
      var smsNotRequiredRemoveCountryCodeEnabled = true;
      var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
      var isRequired = smsField ? smsField.required : false;
      var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
      
      var phoneInput = document.querySelector('#mce-' + fieldName);
      if (phoneInput &amp;&amp; defaultProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
        phoneInput.value = defaultProgram.countryCallingCode;
      }
      


      displayFlag?.addEventListener('click', function(e) {
        dropdown.focus();
      });


      dropdown?.addEventListener('change', function() {
        const selectedCountry = this.value;
        
        if (!selectedCountry || typeof selectedCountry !== 'string') {
          return;
        }
        
        const flagSpan = displayFlag?.querySelector('#flag-emoji-' + fieldName);
        if (flagSpan) {
          flagSpan.textContent = getCountryUnicodeFlag(selectedCountry);
          flagSpan.setAttribute('aria-label', sanitizeHtml(selectedCountry) + ' flag');
        }

         
        const selectedProgram = window.MC?.smsPhoneData?.programs.find(function(program) {
          return program &amp;&amp; program.countryCode === selectedCountry;
        });

        var smsNotRequiredRemoveCountryCodeEnabled = true;
        var smsField = Object.values({"EMAIL":{"name":"EMAIL","label":"Email Address","helper_text":"","type":"email","required":true,"audience_field_name":"Email Address","merge_id":0,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"FNAME":{"name":"FNAME","label":"First Name","helper_text":"","type":"text","required":false,"audience_field_name":"First Name","merge_id":1,"help_text_enabled":false,"enabled":true,"order":"0","field_type":"merge"},"LNAME":{"name":"LNAME","label":"Last Name","helper_text":"","type":"text","required":false,"audience_field_name":"Last Name","enabled":false,"order":null,"field_type":"merge","merge_id":2}}).find(function(f) { return f.name === fieldName &amp;&amp; f.type === 'smsphone'; });
        var isRequired = smsField ? smsField.required : false;
        var shouldAppendCountryCode = smsNotRequiredRemoveCountryCodeEnabled ? isRequired : true;
        
        var phoneInput = document.querySelector('#mce-' + fieldName);
        if (phoneInput &amp;&amp; selectedProgram.countryCallingCode &amp;&amp; shouldAppendCountryCode) {
          phoneInput.value = selectedProgram.countryCallingCode;
        }
        
        
        updateSmsLegalText(selectedCountry, fieldName);
        updatePlaceholder(selectedCountry, fieldName);
        updateCountryCodeInstruction(selectedCountry, fieldName);
      });
    }

    document.addEventListener('DOMContentLoaded', function() {
      const smsPhoneFields = document.querySelectorAll('[id^="country-select-"]');
      
      smsPhoneFields.forEach(function(dropdown) {
        const fieldName = dropdown?.id.replace('country-select-', '');
        initializeSmsPhoneDropdown(fieldName);
      });
    });
    &lt;/script&gt;&lt;/div&gt;
&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.facebook.com/kaiserandassociates2020/" data-type="link"&gt;Facebook&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &lt;a target="" rel="" href="https://www.instagram.com/kaiser.and.associates/" data-type="link"&gt;&amp;nbsp;Instagram&lt;/a&gt; |&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://www.youtube.com/channel/UCg3VUnFiKyhNlMFtmmqy3tw" data-type="link"&gt;Youtube&lt;/a&gt;&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;&lt;a target="" rel="" href="https://cal-kaiser.com/" data-type="link"&gt;Website&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/izxd/izxdecvrndpq.jpg" type="image/jpeg" />
      <pubDate>Fri, 12 Dec 2025 18:48:11 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-8878235</guid>
      <dc:date>2025-12-12T18:48:11Z</dc:date>
    </item>
    <item>
      <title>Panorama at Kingsview</title>
      <link>https://cal-kaiser.com/blog.html/panorama-at-kingsview-8778574</link>
      <description>&lt;p class="block-p"&gt;We are so excited about this brand new development in Maple Bay!&lt;/p&gt;&lt;p class="block-p"&gt;Panorama at Kingsview offers brand-new, affordable, well-crafted townhomes in the stunning Cowichan Valley.&amp;nbsp;Each Vesta-built home comes with exceptional craftsmanship and a promise of long-lasting quality. Experience affordable luxury with stunning views, modern finishes, and designs that let you live your life to the fullest.&lt;/p&gt;&lt;p class="block-p"&gt;Perched on the side of Mount Tzouhalem, this 215-acre is steps from an abundance of outdoor adventure. Whether you’re hiking or mountain biking the world-class trails, boating, kayaking in nearby Maple Bay, or simply enjoying your morning coffee at home, this is where you’ll find endless natural beauty.&lt;/p&gt;&lt;div data-aspect-ratio="16x9" data-type="embed" class="bv3-embed bv3-ratio-16x9 has-ratio"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/qFNVR7ACrY4?si=pTqmgZbM6CuoowHW" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p class="block-p"&gt;Once complete, this unique community will be one of Vancouver Island’s largest master planned communities, consisting of over 1,000 homes and featuring a rare combination of both townhomes and single-family residences.&lt;/p&gt;&lt;p class="block-p"&gt;Even better? These homes are qualify for an exemption from Property Transfer Tax and also qualify for the First Time Home Buyer’s GST Rebate – perfect for first-time buyers, young families, or anyone looking to right-size! Priced between $639,900-$699,900 with multiple floorplans. Don't miss out on this incredible opportunity!&lt;/p&gt;&lt;p class="block-p"&gt;Whether you’re starting out, settling down, or simply seeking more room to breathe, Panorama pairs natural beauty with the comfort of a well-crafted home.&lt;br&gt;&lt;/p&gt;&lt;div class="gallery" data-type="gallery"&gt;&lt;img src="https://iss-cdn.myrealpage.com/f-0NkcQoQWBto7v9XufK7gJUEotVcrefQiwS0Ig3kJs/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2FncGcvYWdwZ2x0bXhmdXZyLmpwZw" alt="" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/agpg/agpgltmxfuvr.jpg" srcset="https://iss-cdn.myrealpage.com/f-0NkcQoQWBto7v9XufK7gJUEotVcrefQiwS0Ig3kJs/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2FncGcvYWdwZ2x0bXhmdXZyLmpwZw 1600w,https://iss-cdn.myrealpage.com/PTC_BYZLQwyEFKt_7ooW9t_52FrAagRK78EbmLsDeMY/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2FncGcvYWdwZ2x0bXhmdXZyLmpwZw 1200w,https://iss-cdn.myrealpage.com/NWf3aIBgjZwGTZTSvWdFVbELOq_k1RfUp3TGeepctos/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2FncGcvYWdwZ2x0bXhmdXZyLmpwZw 800w,https://iss-cdn.myrealpage.com/8Fu7xLtXbQXQ-jY0RwJLe6cDSRrzD5vzYtYPLaAiKvE/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2FncGcvYWdwZ2x0bXhmdXZyLmpwZw 600w" sizes="(max-width: 640px) 50vw, 33vw"&gt;&lt;img src="https://iss-cdn.myrealpage.com/uyVC6iRMpopqUIKYhnoNBubY8ykEq53oUqoGZ3OcmwA/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2F4YXgvYXhheGpncnpzaWdwLmpwZw" alt="" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/axax/axaxjgrzsigp.jpg" srcset="https://iss-cdn.myrealpage.com/uyVC6iRMpopqUIKYhnoNBubY8ykEq53oUqoGZ3OcmwA/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2F4YXgvYXhheGpncnpzaWdwLmpwZw 1600w,https://iss-cdn.myrealpage.com/PECjkMBD-VV23pNemD1mrpKXPrmXuf5FU0CKLp1-2dw/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2F4YXgvYXhheGpncnpzaWdwLmpwZw 1200w,https://iss-cdn.myrealpage.com/1J_59FBm5LTD_BKJRnuK0d8fJaVJe3RaL2I8YQq4qfg/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2F4YXgvYXhheGpncnpzaWdwLmpwZw 800w,https://iss-cdn.myrealpage.com/G8V3gPQ7NUpwIOymfCNv-XaHNPeBFavQKZoG_eR7sGc/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2F4YXgvYXhheGpncnpzaWdwLmpwZw 600w" sizes="(max-width: 640px) 50vw, 33vw"&gt;&lt;img src="https://iss-cdn.myrealpage.com/7RI8G9hQmGup6SoaN0Qeqjalk8mNayogtdH4HYgPZ74/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3JwcnYvcnBydmF1ZnpiYXN6LmpwZw" alt="" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/rprv/rprvaufzbasz.jpg" srcset="https://iss-cdn.myrealpage.com/7RI8G9hQmGup6SoaN0Qeqjalk8mNayogtdH4HYgPZ74/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3JwcnYvcnBydmF1ZnpiYXN6LmpwZw 1600w,https://iss-cdn.myrealpage.com/t5TrPguMnwcI8zcIRCYvbb3KFOG4KlB1egj2zAZMSnQ/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3JwcnYvcnBydmF1ZnpiYXN6LmpwZw 1200w,https://iss-cdn.myrealpage.com/VcJn634CnsD_vJAcQAHVsYjrfVuO78YwCyWOckFHUuc/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3JwcnYvcnBydmF1ZnpiYXN6LmpwZw 800w,https://iss-cdn.myrealpage.com/cWW0ELqdf64jadAtlcHxSpf7ga2LGB7wFo6Cjqv6Mu0/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3JwcnYvcnBydmF1ZnpiYXN6LmpwZw 600w" sizes="(max-width: 640px) 50vw, 33vw"&gt;&lt;img src="https://iss-cdn.myrealpage.com/oLZbzQ1NOvTbzvCtYB_CAZJy4dgIXb05zUkU-oD3A1w/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3dvd2ovd293anN3bnppYnhkLmpwZw" alt="" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/wowj/wowjswnzibxd.jpg" srcset="https://iss-cdn.myrealpage.com/oLZbzQ1NOvTbzvCtYB_CAZJy4dgIXb05zUkU-oD3A1w/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3dvd2ovd293anN3bnppYnhkLmpwZw 1600w,https://iss-cdn.myrealpage.com/C7vp8PA34LHx1pYUYQetY0a3vf7_lxEKnMYLT6PiZEU/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3dvd2ovd293anN3bnppYnhkLmpwZw 1200w,https://iss-cdn.myrealpage.com/iz0ZFG6k2hfeqJ04cy3WsqD8c8EAu0aqH_tMtlLAdIY/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3dvd2ovd293anN3bnppYnhkLmpwZw 800w,https://iss-cdn.myrealpage.com/pdAKx48dX-lfoYI-Icu-kNvef_as6u4kRbdYWGXv9RI/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3dvd2ovd293anN3bnppYnhkLmpwZw 600w" sizes="(max-width: 640px) 50vw, 33vw"&gt;&lt;img src="https://iss-cdn.myrealpage.com/l54MstjGb5cTDZkH_BOlaR2wCh_O8rEdQUkuxgu44yU/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2pjbXUvamNtdXhnYml5bm14LmpwZw" alt="" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/jcmu/jcmuxgbiynmx.jpg" srcset="https://iss-cdn.myrealpage.com/l54MstjGb5cTDZkH_BOlaR2wCh_O8rEdQUkuxgu44yU/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2pjbXUvamNtdXhnYml5bm14LmpwZw 1600w,https://iss-cdn.myrealpage.com/gT3WF3F80rJVrlk8LM6zU-NE1xWERtrHqDaHY3LpTXs/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2pjbXUvamNtdXhnYml5bm14LmpwZw 1200w,https://iss-cdn.myrealpage.com/W-h2Q4Xog_JCPnJZ4y0zcpiItJ1O2vlAdSB26hJNY0I/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2pjbXUvamNtdXhnYml5bm14LmpwZw 800w,https://iss-cdn.myrealpage.com/SUm3AeIaEDp9TzOynOjZFhc6BmyF59Lf0iHjRuUuexI/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2pjbXUvamNtdXhnYml5bm14LmpwZw 600w" sizes="(max-width: 640px) 50vw, 33vw"&gt;&lt;img src="https://iss-cdn.myrealpage.com/D1dLScFQ30rg0OArduKmz4xjQlJnp6rbYUej1xRbEKU/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2ltbmMvaW1uY3VneXNnZXpkLmpwZw" alt="" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/imnc/imncugysgezd.jpg" srcset="https://iss-cdn.myrealpage.com/D1dLScFQ30rg0OArduKmz4xjQlJnp6rbYUej1xRbEKU/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2ltbmMvaW1uY3VneXNnZXpkLmpwZw 1600w,https://iss-cdn.myrealpage.com/nYVV_DcMhVxWIU7AlNGLHIru-Hi3uJw3MnNxJLcEolM/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2ltbmMvaW1uY3VneXNnZXpkLmpwZw 1200w,https://iss-cdn.myrealpage.com/tus-HSTSTKjeQeccYl86rvCx-11A4g6NOCW3MTZFlSI/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2ltbmMvaW1uY3VneXNnZXpkLmpwZw 800w,https://iss-cdn.myrealpage.com/MFmAJJNCHogFgRzCtNBB8kKsAUuA8MgyPcqdXxw8Dno/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2ltbmMvaW1uY3VneXNnZXpkLmpwZw 600w" sizes="(max-width: 640px) 50vw, 33vw"&gt;&lt;img src="https://iss-cdn.myrealpage.com/HK-EgDvYXLr-uMJWD8VpdOQ6eHL2PdxtMDCGEv2fMlQ/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL21tcWovbW1xamxwcmF1cWhiLmpwZw" alt="" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/mmqj/mmqjlprauqhb.jpg" srcset="https://iss-cdn.myrealpage.com/HK-EgDvYXLr-uMJWD8VpdOQ6eHL2PdxtMDCGEv2fMlQ/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL21tcWovbW1xamxwcmF1cWhiLmpwZw 1600w,https://iss-cdn.myrealpage.com/qvx72uEdqjp1eSCw47co30ypY0PHCRSgyhPeyuT2TEY/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL21tcWovbW1xamxwcmF1cWhiLmpwZw 1200w,https://iss-cdn.myrealpage.com/8ridxSCUyRQEqEpy_svae3EKk5EFjbSiNrt8mN2jFyw/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL21tcWovbW1xamxwcmF1cWhiLmpwZw 800w,https://iss-cdn.myrealpage.com/OrQpvWxxHEHLsJEq9wvIx0pIbiPI9m9euF3kdMJLYfU/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL21tcWovbW1xamxwcmF1cWhiLmpwZw 600w" sizes="(max-width: 640px) 50vw, 33vw"&gt;&lt;img src="https://iss-cdn.myrealpage.com/0UkatzEMsXPY2bGiAYn201vjC3tTFuB17N4CarHOTAI/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2Nka2svY2Rra3NheHRyZXV1LmpwZw" alt="" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/cdkk/cdkksaxtreuu.jpg" srcset="https://iss-cdn.myrealpage.com/0UkatzEMsXPY2bGiAYn201vjC3tTFuB17N4CarHOTAI/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2Nka2svY2Rra3NheHRyZXV1LmpwZw 1600w,https://iss-cdn.myrealpage.com/9-QaWsgeR4I0Zk0XhFl1SeqiIgWbTJH6q8ZlQNV_quw/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2Nka2svY2Rra3NheHRyZXV1LmpwZw 1200w,https://iss-cdn.myrealpage.com/pVgp9nQlaXJG-SLnX7130q9nWan9QXMVcsGQbub8ubk/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2Nka2svY2Rra3NheHRyZXV1LmpwZw 800w,https://iss-cdn.myrealpage.com/IWs40oNDtF3CjN0eheDc7oguYM8ADt3lNKIjVgjHesc/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2Nka2svY2Rra3NheHRyZXV1LmpwZw 600w" sizes="(max-width: 640px) 50vw, 33vw"&gt;&lt;img src="https://iss-cdn.myrealpage.com/EKZEAY9zJ7wu3qEBO-dClJWCmqlq2kMsCDtBhtqUBj4/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2hhaHkvaGFoeXVibmZsY3NzLmpwZw" alt="" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/hahy/hahyubnflcss.jpg" srcset="https://iss-cdn.myrealpage.com/EKZEAY9zJ7wu3qEBO-dClJWCmqlq2kMsCDtBhtqUBj4/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2hhaHkvaGFoeXVibmZsY3NzLmpwZw 1600w,https://iss-cdn.myrealpage.com/F1tbZy36OWwAoVndBov2N30dqN0o7kw-29SAwmQcHVM/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2hhaHkvaGFoeXVibmZsY3NzLmpwZw 1200w,https://iss-cdn.myrealpage.com/WEowvwJbi_9mWTgAxEAi5pWMHxmblx0XpVJS_6MDr2A/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2hhaHkvaGFoeXVibmZsY3NzLmpwZw 800w,https://iss-cdn.myrealpage.com/iNbNiqt1pTSmEqMlTfx0UpE-bslwRX_j2MqUzZ2Up8o/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2hhaHkvaGFoeXVibmZsY3NzLmpwZw 600w" sizes="(max-width: 640px) 50vw, 33vw"&gt;&lt;img src="https://iss-cdn.myrealpage.com/aYQa0ErWsWu_VKQQNTCx1m-taNvkP7bL9I2I2UigG14/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL25tcm4vbm1ybmFuaG1weWxxLmpwZw" alt="" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/nmrn/nmrnanhmpylq.jpg" srcset="https://iss-cdn.myrealpage.com/aYQa0ErWsWu_VKQQNTCx1m-taNvkP7bL9I2I2UigG14/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL25tcm4vbm1ybmFuaG1weWxxLmpwZw 1600w,https://iss-cdn.myrealpage.com/qgTvecfigKZFPav5okLzW08f7IxfnYoBOBC2LV8yAdQ/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL25tcm4vbm1ybmFuaG1weWxxLmpwZw 1200w,https://iss-cdn.myrealpage.com/W91GKY6xi21OPljSRflUifYST1AWHWxGJpiRsA0KDbg/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL25tcm4vbm1ybmFuaG1weWxxLmpwZw 800w,https://iss-cdn.myrealpage.com/rRX-KdhT6tszSC47Iv-j4126osupneQsgPYMqMCrCAc/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL25tcm4vbm1ybmFuaG1weWxxLmpwZw 600w" sizes="(max-width: 640px) 50vw, 33vw"&gt;&lt;img src="https://iss-cdn.myrealpage.com/01Z6Nba3m0-NBCPxXoz4u7oZ_CQ4rw-v4l-z267KwzM/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2ttc2Iva21zYnppcXd5YXd6LkpQRUc" alt="" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/kmsb/kmsbziqwyawz.JPEG" srcset="https://iss-cdn.myrealpage.com/01Z6Nba3m0-NBCPxXoz4u7oZ_CQ4rw-v4l-z267KwzM/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2ttc2Iva21zYnppcXd5YXd6LkpQRUc 1600w,https://iss-cdn.myrealpage.com/kkl-eT2LXcmhj4AhuOQL6IdF9JpN9cQhMVLdzbyOjeg/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2ttc2Iva21zYnppcXd5YXd6LkpQRUc 1200w,https://iss-cdn.myrealpage.com/N6jztLGCcm-TdnvPl1UudLt4Kju-NhOj0WB8PcpNirI/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2ttc2Iva21zYnppcXd5YXd6LkpQRUc 800w,https://iss-cdn.myrealpage.com/tYbVXYdARrtO5fFmJtnZocpJLEhg7p5chBibf5KTDTY/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2ttc2Iva21zYnppcXd5YXd6LkpQRUc 600w" sizes="(max-width: 640px) 50vw, 33vw"&gt;&lt;/div&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;div data-type="columns" data-img-v-align="" data-ratio="" data-flip="" data-content="content" class=""&gt;&lt;div data-type="column" data-content="image-column"&gt;&lt;div data-type="block-image" data-block="true" data-align="none"&gt;&lt;a href="https://cal-kaiser.com/mylistings.html/listing.1006415-4-6258-seablush-cres-duncan-v9l-0j9.106329516" class=""&gt;&lt;img src="https://iss-cdn.myrealpage.com/MRKXx0v1hUjF6aj4uZFBOkQgwkPn_BHTw__D-8cgbFM/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2RuZGgvZG5kaG11dHFnYnNiLmpwZw" data-type="content-image" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/dndh/dndhmutqgbsb.jpg" srcset="https://iss-cdn.myrealpage.com/MRKXx0v1hUjF6aj4uZFBOkQgwkPn_BHTw__D-8cgbFM/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2RuZGgvZG5kaG11dHFnYnNiLmpwZw 1600w,https://iss-cdn.myrealpage.com/Gepu6tX-52j_KOkW2x3oPFQboGuAc_FhCIYxcdwiwAk/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2RuZGgvZG5kaG11dHFnYnNiLmpwZw 1200w,https://iss-cdn.myrealpage.com/i-FnJLxbyEYhaeTZNXD864okVdAp_6RMLSOzEtwdf6M/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2RuZGgvZG5kaG11dHFnYnNiLmpwZw 800w,https://iss-cdn.myrealpage.com/MAB4JvaokYONrk9WzNjLzTdq8GCzQOeQ5Dj0O4CNSM8/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2RuZGgvZG5kaG11dHFnYnNiLmpwZw 600w" sizes="(max-width: 640px) 100vw, 50vw"&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-type="column" data-content="content"&gt;&lt;h3&gt;&lt;strong&gt;3257 Woodrush Drive&lt;/strong&gt;&lt;/h3&gt;&lt;p class="block-p"&gt;Panorama at Kingsview is a new collection of affordable, well-crafted townhomes designed for easy living in a scenic natural setting. Set in one of the Cowichan Valley’s most desirable neighbourhoods, this community offers beautiful valley views, access to hiking and biking trails. With a variety of thoughtfully designed floorplans—from one-level ranchers to spacious two-storey and three-storey layouts—there’s a home to suit every lifestyle. Options include 2–3 bedrooms and 2-3 bathrooms, all with attached garages, bright open-concept main living areas, and flexible spaces ideal for families, first-time buyers, downsizers, or anyone seeking comfort and quality. Inside, each home showcases premium finishes and modern kitchens.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/sntv/sntvanfzbime.jpg" type="image/jpeg" />
      <pubDate>Fri, 15 Aug 2025 20:47:45 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/panorama-at-kingsview-8778574</guid>
      <dc:date>2025-08-15T20:47:45Z</dc:date>
    </item>
    <item>
      <title>August Community Calendar</title>
      <link>https://cal-kaiser.com/blog.html/august-community-calendar-8765104</link>
      <description>&lt;p class="block-p"&gt;August is here, and the Cowichan Valley is buzzing with a fantastic lineup of events to fill your summer days. From vibrant local markets to exciting festivals and outdoor adventures, there's something for everyone to enjoy.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.visitchemainus.ca/outdoor-markets" data-type="link"&gt;CHEMAINUS WEDNESDAY MARKET&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Waterwheel Square&lt;/p&gt;&lt;p class="block-p"&gt;Wednesdays (May - September) 10:00 - 3:00pm&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="true" rel="" href="https://duncanfarmersmarket.ca/" data-type="link"&gt;DUNCAN FARMERS' MARKET&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Duncan City Square&lt;/p&gt;&lt;p class="block-p"&gt;Saturdays, 9:00am - 2:00pm&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://honeymoonbaymarket.com/" data-type="link"&gt;HONEYMOON BAY OUTDOOR MARKET&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;10055 South Shore Road&lt;/p&gt;&lt;p class="block-p"&gt;Saturdays (until Thanksgiving) 10:00am - 2:00pm&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.cowichanwineries.com/august-wine-passport" data-type="link"&gt;COWICHAN VALLEY WINE FESTIVAL&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;August 1 - 31&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://cowichanlake.ca/event/youbou-regatta-2025/" data-type="link"&gt;YOUBOU REGATTA&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;August 9&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://msspbike.donordrive.com/index.cfm?fuseaction=donorDrive.event&amp;amp;eventID=1209&amp;amp;language=en" data-type="link"&gt;MS BIKE RIDE&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Queen Margaret's School&lt;/p&gt;&lt;p class="block-p"&gt;August 9&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.islandtrailseries.ca/races/cobble-hill-cobble-hill-mt/" data-type="link"&gt;ISLAND TRAIL SERIES&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Cobble Hill&lt;/p&gt;&lt;p class="block-p"&gt;August 16&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.craftbeerandfoodfest.com/" data-type="link"&gt;COWICHAN CRAFT BEER &amp;amp; FOOD FESTIVAL&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Chemainus&lt;/p&gt;&lt;p class="block-p"&gt;August 16&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://beverlycornersshownshine.com" data-type="link"&gt;BEVERLY CORNERS SHOW &amp;amp; SHINE&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Cowichan Sportsplex&lt;/p&gt;&lt;p class="block-p"&gt;August 17&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.artsontheavenue.ca/" data-type="link"&gt;ART ON THE AVENUE&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;1st Avenue, Ladysmith&lt;/p&gt;&lt;p class="block-p"&gt;August 24&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://mbyc.bc.ca/regattas/regatta/" data-type="link"&gt;MBYC REGATTA&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Maple Bay&lt;/p&gt;&lt;p class="block-p"&gt;August 29 - 31&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div data-aspect-ratio="16x9" data-type="embed" class="bv3-embed bv3-ratio-16x9 has-ratio"&gt;&lt;iframe width="315" height="560" src="https://youtube.com/embed/fFIJtiOhShU?si=eTAsH8VxNOpt0Aak" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/ulyl/ulylzkqhilxn.jpg" type="image/jpeg" />
      <pubDate>Fri, 01 Aug 2025 19:10:44 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/august-community-calendar-8765104</guid>
      <dc:date>2025-08-01T19:10:44Z</dc:date>
    </item>
    <item>
      <title>Is Your Property Tax Assessment Accurate? You Might Be Surprised!</title>
      <link>https://cal-kaiser.com/blog.html/is-your-property-tax-assessment-accurate-you-might-be-surprised-8735103</link>
      <description>&lt;p class="block-p"&gt;When that property tax assessment notice arrives you might be wondering how close the number is to market value. It’s easy to assume that the assessed value is a true reflection of our home's market worth. But we took a deep dive into hundreds of our records and found the assessment number and the market value don’t match.&lt;/p&gt;&lt;h3&gt;The Truth About Tax Assessments&lt;/h3&gt;&lt;p class="block-p"&gt;Cal's research revealed some significant discrepancies:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;strong&gt;Under-Assessed Properties:&lt;/strong&gt; A surprising &lt;strong&gt;37% of the reviewed listings sold for &lt;em&gt;less&lt;/em&gt; than their assessed value.&lt;/strong&gt; In some cases, homes went for a staggering &lt;strong&gt;$200,000 to $300,000 less&lt;/strong&gt; than what the assessment authority believed they were worth.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;strong&gt;Over-Assessed Properties:&lt;/strong&gt; On the flip side, some properties sold for &lt;strong&gt;$200,000 to $300,000 &lt;em&gt;more&lt;/em&gt; than their assessed value.&lt;/strong&gt; This shows just how wide the margin of error can be.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Why the Discrepancy?&lt;/h3&gt;&lt;p class="block-p"&gt;It's a huge undertaking for assessment authorities to value every single property in an entire province each year. They rely on tools like Google Earth and street view pictures. While these tools are helpful, they simply can't capture the full picture.&lt;/p&gt;&lt;p class="block-p"&gt;Think about it: these methods don't account for that brand-new kitchen you just installed, the upgraded bathrooms, or even necessary maintenance that hasn't been done that might increase the market value of a home. Conversely, they also don't factor in outdated interiors, like those shag carpets.&lt;/p&gt;&lt;h3&gt;Get the Real Picture&lt;/h3&gt;&lt;p class="block-p"&gt;So, if your tax assessment isn't always accurate, how do you get a true understanding of your home's market value?&lt;/p&gt;&lt;p class="block-p"&gt;Consulting an &lt;strong&gt;experienced and qualified real estate agent&lt;/strong&gt;&amp;nbsp;is the best way to understand the current market value of your home. Unlike generalized assessments, a local agent can provide a&lt;strong&gt; market valuation&lt;/strong&gt; that takes into account all the unique features of your home, recent comparable sales in your specific neighbourhood, and current market conditions. This detailed analysis gives you a far more accurate and actionable valuation.&lt;/p&gt;&lt;p class="block-p"&gt;Don't leave money on the table or misjudge your home's worth. If you're curious about the actual value of your property, reach out to an expert.&lt;/p&gt;&lt;p class="block-p" style="text-align: center"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a target="" rel="" href="https://cal-kaiser.com/mail@cal-kaiser.com"&gt;Contact us for your free market valuation today!&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div data-aspect-ratio="16x9" data-type="embed" class="bv3-embed bv3-ratio-16x9 has-ratio"&gt;&lt;iframe width="315" height="560" src="https://www.youtube.com/embed/ZHLCecFDzJY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/xthv/xthvejdyswmy.jpeg" type="image/jpeg" />
      <pubDate>Mon, 07 Jul 2025 17:29:42 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/is-your-property-tax-assessment-accurate-you-might-be-surprised-8735103</guid>
      <dc:date>2025-07-07T17:29:42Z</dc:date>
    </item>
    <item>
      <title>July Community Calendar</title>
      <link>https://cal-kaiser.com/blog.html/july-community-calendar-8728363</link>
      <description>&lt;p class="block-p"&gt;Get ready for a jam-packed July in Cowichan! 🎉 From vibrant markets and incredible music festivals like 39 Days of July, Islands Folk Festival, and Sunfest, to exciting sports events like the BC Bike Race and Island Trail Series, there's something for everyone. Plus, don't miss local celebrations and amazing art shows. Get out and enjoy everything Cowichan has to offer this month!&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.visitchemainus.ca/outdoor-markets" data-type="link"&gt;CHEMAINUS WEDNESDAY MARKET&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Waterwheel Square&lt;/p&gt;&lt;p class="block-p"&gt;Wednesdays (May - September) 10:00 - 3:00pm&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://duncanfarmersmarket.ca/" data-type="link"&gt;DUNCAN FARMERS' MARKET&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Duncan City Square&lt;/p&gt;&lt;p class="block-p"&gt;Saturdays, 9:00am - 2:00pm&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://chemainustheatrefestival.ca/footloose/" data-type="link"&gt;FOOTLOSE&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Chemainus Theatre Festivals&lt;/p&gt;&lt;p class="block-p"&gt;June 27 - August 24&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.39daysofjuly.ca" data-type="link"&gt;39 DAYS OF JULY&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Downtown Duncan&lt;/p&gt;&lt;p class="block-p"&gt;June 28 - August 5&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://bcbikerace.com/racer_resources/course-info/" data-type="link"&gt;BC BIKE RACE&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Mt Tzouhalem&amp;nbsp;&amp;amp; Maple Mountain&lt;/p&gt;&lt;p class="block-p"&gt;June 30 - July 2&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.ladysmithcofc.com/events/ladysmith-gallery-botanicals/" data-type="link"&gt;ART SHOW: BOTANICALS&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Ladysmith Gallery&lt;/p&gt;&lt;p class="block-p"&gt;July 9 - 23&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://excellentframeworks.ca/" data-type="link"&gt;100 BUCKS OR LESS - ISLAND ART SHOW&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Excellent Frameworks, Duncan&lt;/p&gt;&lt;p class="block-p"&gt;July 10-12&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.39daysofjuly.ca/duncan-days" data-type="link"&gt;DUNCAN DAY&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Downtown Duncan&lt;/p&gt;&lt;p class="block-p"&gt;July 12&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://cowichanlake.ca/event/honeymoon-bay-day-2025/" data-type="link"&gt;HONEYMOON BAY DAY&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Honeymoon Bay Hall&lt;/p&gt;&lt;p class="block-p"&gt;July 12&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.islandtrailseries.ca/races/ladysmith-transferbeach/" data-type="link"&gt;ISLAND TRAIL SERIES&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Transfer Beach, Ladysmith&lt;/p&gt;&lt;p class="block-p"&gt;July 12&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://redarrowbeer.ca/event/red-arrow-concert-series-current-swell/" data-type="link"&gt;CURRENT SWELL @ RED ARROW BREWING&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;July 19&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.islandsfolkfestival.ca/" data-type="link"&gt;ISLANDS FOLK FESTIVAL&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Providence Farm, Duncan&lt;/p&gt;&lt;p class="block-p"&gt;July 25 - 27&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="true" rel="" href="https://www.tourismcowichan.com/event/2025-outdoor-art-market/" data-type="link"&gt;OUTDOOR ART MARKET&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Downtown Duncan&lt;/p&gt;&lt;p class="block-p"&gt;July 26&lt;/p&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.sunfestconcerts.com/" data-type="link"&gt;SUNFEST COUNTRY MUSIC FESTIVAL&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Laketown Ranch, Lake Cowichan&lt;/p&gt;&lt;p class="block-p"&gt;July 31 - August 3&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="block-p"&gt;If you have a community event this summer, let us know!&lt;/p&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;iframe width="315" height="560" src="https://youtube.com/embed/5l-gtsaBmA8?si=QxQk-TdO69_fENcr" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/lfur/lfurigppwant.jpg" type="image/jpeg" />
      <pubDate>Fri, 27 Jun 2025 20:01:11 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/july-community-calendar-8728363</guid>
      <dc:date>2025-06-27T20:01:11Z</dc:date>
    </item>
    <item>
      <title>Townhouses &amp; Condos</title>
      <link>https://cal-kaiser.com/blog.html/townhouses-condos-8719565</link>
      <description>&lt;p class="block-p"&gt;Both townhouses and condos offer compelling alternatives to detached homes, providing a balance of affordability, convenience, and community living. The best choice depends on individual priorities regarding space, privacy, maintenance responsibilities, and desired amenities.&lt;/p&gt;&lt;div data-type="block-image" data-block="true" data-align="none"&gt;&lt;img src="https://iss-cdn.myrealpage.com/HPa8j2bf3L0eNVp9gTLwT-CwMLALlr60-yijfjka4Os/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL29yY28vb3Jjb2hwZ2licHpyLmpwZw" class="" data-type="content-image" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/orco/orcohpgibpzr.jpg" srcset="https://iss-cdn.myrealpage.com/HPa8j2bf3L0eNVp9gTLwT-CwMLALlr60-yijfjka4Os/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL29yY28vb3Jjb2hwZ2licHpyLmpwZw 1600w,https://iss-cdn.myrealpage.com/Q-HWQZY1L1E9BkEOd1IUy2gz1fEorVQUZfN1vjwIPKU/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL29yY28vb3Jjb2hwZ2licHpyLmpwZw 1200w,https://iss-cdn.myrealpage.com/gZsPtAcapPJsPfo7kDk2Hqx3TtFyycMvYqTKCulPsek/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL29yY28vb3Jjb2hwZ2licHpyLmpwZw 800w,https://iss-cdn.myrealpage.com/Fs8d5I3fUEb39lhD0S0G6RJ5-xX-E2Q29clsSafZgmA/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL29yY28vb3Jjb2hwZ2licHpyLmpwZw 600w" sizes="100vw"&gt;&lt;/div&gt;&lt;h3&gt;&lt;strong&gt;#20-1700 Pritchard Road - Cowichan Bay&lt;/strong&gt;&lt;/h3&gt;&lt;p class="block-p"&gt;Tucked away in the coveted end unit of Mariner Ridge, this 1,981sqft townhome offers exceptional privacy, abundant natural light and ocean views. The main level features maple hardwood floors, a beautifully updated kitchen, and a spacious living room with a dual-sided gas fireplace that connects to the bright eating nook. From both the living room and kitchen, step out onto the sunny deck — a perfect spot to relax and enjoy the ocean views. Just a short stroll to the very popular Cowichan Bay’s shops, restaurants, and marina with an easy 12 minute access to Duncan and only 25 minutes to Langford. &lt;/p&gt;&lt;p class="block-p" style="text-align: center"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a rel="" href="https://cal-kaiser.com/mylistings.html/listing.996618-20-1700-pritchard-rd-cowichan-bay-v0r-1n1.105769340"&gt;#20-1700 Pritchard Road&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;div data-type="block-image" data-block="true" data-align="none"&gt;&lt;img src="https://iss-cdn.myrealpage.com/gbWHZSlkIRODpqK5yPJnz7CupMB6svjBDMIL9JCz-YE/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2tjY3kva2NjeXV3cGtqemZpLmpwZw" class="" data-type="content-image" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/kccy/kccyuwpkjzfi.jpg" srcset="https://iss-cdn.myrealpage.com/gbWHZSlkIRODpqK5yPJnz7CupMB6svjBDMIL9JCz-YE/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2tjY3kva2NjeXV3cGtqemZpLmpwZw 1600w,https://iss-cdn.myrealpage.com/uX4Q6vMHXukHMpalwseaurwJ2wcKoV_tGtbBH69ATCE/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2tjY3kva2NjeXV3cGtqemZpLmpwZw 1200w,https://iss-cdn.myrealpage.com/kUgriInmBBiG9nkNohW0F7rksMY1c0C7nZZC2_tboYw/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2tjY3kva2NjeXV3cGtqemZpLmpwZw 800w,https://iss-cdn.myrealpage.com/GhcrC49DR0tZBOwrgslFb5F8A73MUh8S0cGW96p9k98/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL2tjY3kva2NjeXV3cGtqemZpLmpwZw 600w" sizes="100vw"&gt;&lt;/div&gt;&lt;h3&gt;Altair - 1234 Viewtop Road - Duncan&lt;/h3&gt;&lt;p class="block-p"&gt;With only a handful of units left, these stunning properties are moving quickly. Inside, you'll be impressed by the high-end finishings, including engineered hardwood floors, quartz countertops, &amp;amp; ceramic tile in the bathrooms &amp;amp; laundry. The spacious backyard is ideal for entertaining guests while the private front courtyard is available for coffee when the sun is right. This location is unbeatable, close to popular hiking/biking trails on Mount Tzouhalem and Maple Bay Beach. You'll love the convenience of being close to all amenities while still feeling like you're in your own private oasis.&lt;/p&gt;&lt;p class="block-p" style="text-align: center"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a rel="" href="https://cal-kaiser.com/altair.html"&gt;1234 Viewtop Road - Duncan&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;hr data-margin-top="0" class="margin-top-0 margin-bottom-0" data-margin-bottom="0" style="--margin-top: 0; --margin-bottom: 0;"&gt;&lt;div data-type="block-image" data-block="true" data-align="none"&gt;&lt;img src="https://iss-cdn.myrealpage.com/pxEpgskYeaGu1ZJOOWwPbdeS4H3fcXCNrAANAaxcIyo/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3Z6cGMvdnpwY2h0bmtsYnlpLmpwZw" class="" data-type="content-image" data-original-src="//static.myrealpage.com/wps/rest/62549/blog/vzpc/vzpchtnklbyi.jpg" srcset="https://iss-cdn.myrealpage.com/pxEpgskYeaGu1ZJOOWwPbdeS4H3fcXCNrAANAaxcIyo/rs:auto:1600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3Z6cGMvdnpwY2h0bmtsYnlpLmpwZw 1600w,https://iss-cdn.myrealpage.com/6E_CYjYptSMoPRYLgnO3rlbiD-RAXA934kfFbuFqwmM/rs:auto:1200:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3Z6cGMvdnpwY2h0bmtsYnlpLmpwZw 1200w,https://iss-cdn.myrealpage.com/nsA3RKR6RGWOLdvpLjoAfFd-X79QXUg3wDbivMlsGq0/rs:auto:800:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3Z6cGMvdnpwY2h0bmtsYnlpLmpwZw 800w,https://iss-cdn.myrealpage.com/zqoVuC8mulCZG2Srb1OcqlJIYoHyJNnYcKC0RbnlPQM/rs:auto:600:0:0/g:sm/aHR0cDovL3Jlcy5teXJlYWxwYWdlLmNvbS93cHMvcmVzdC82MjU0OS9ibG9nL3Z6cGMvdnpwY2h0bmtsYnlpLmpwZw 600w" sizes="100vw"&gt;&lt;/div&gt;&lt;h3&gt;&lt;strong&gt;#210-2555 Dingwall Street - Duncan&lt;/strong&gt;&lt;/h3&gt;&lt;p class="block-p"&gt;Just Repriced and a great value! This 2-bedroom, 1-bathroom condo offers 775 sqft of functional living space with plenty of natural light. The home has just received brand new flooring and paint throughout and looks great! A practical layout makes the most of the space, with comfortable bedrooms, a bright living area, and in-unit laundry. Move-in ready and centrally located, this condo is a solid opportunity.&lt;/p&gt;&lt;p class="block-p" style="text-align: center"&gt;&lt;span data-type="button" class="blog-button"&gt;&lt;a rel="" href="https://cal-kaiser.com/mylistings.html/listing.994130-210-2555-dingwall-st-duncan-v9l-2y8.104986904"&gt;&lt;strong&gt;#210-2555 Dingwall Street&lt;/strong&gt;&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/zfie/zfieuzcknpaq.jpg" type="image/jpeg" />
      <pubDate>Sun, 15 Jun 2025 22:33:40 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/townhouses-condos-8719565</guid>
      <dc:date>2025-06-15T22:33:40Z</dc:date>
    </item>
    <item>
      <title>June Community Calendar!</title>
      <link>https://cal-kaiser.com/blog.html/june-community-calendar-8699601</link>
      <description>&lt;p class="block-p"&gt;One of the best parts of summer in Cowichan is all the community events. Check out some of the things happening in June! If you have a community event this summer, let us know!&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.visitchemainus.ca/outdoor-markets" data-type="link"&gt;CHEMAINUS WEDNESDAY MARKET&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Waterwheel Square&lt;/p&gt;&lt;p class="block-p"&gt;Wednesdays (May - September) 10:00 - 3:00pm&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://duncanfarmersmarket.ca/" data-type="link"&gt;DUNCAN FARMERS' MARKET&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Duncan City Square&lt;/p&gt;&lt;p class="block-p"&gt;Saturdays, 9:00am - 2:00pm&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://cowichanbluegrass.com" data-type="link"&gt;COWICHAN VALLEY BLUEGRASS FESTIVAL&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Laketown Ranch, Lake Cowichan&lt;/p&gt;&lt;p class="block-p"&gt;June 13 - 15&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.cowichanpridesociety.com" data-type="link"&gt;COWICHAN PRIDE FESTIVAL &amp;amp; MARCH&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Downtown Duncan&lt;/p&gt;&lt;p class="block-p"&gt;June 22&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.39daysofjuly.ca" data-type="link"&gt;39 DAYS OF JULY&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Downtown Duncan&lt;/p&gt;&lt;p class="block-p"&gt;June 28 - August 5&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://www.cowichanchallenge.com/" data-type="link"&gt;COWICHAN CHALLENGE TRIATHLON&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Fuller Lake, Chemainus&lt;/p&gt;&lt;p class="block-p"&gt;June 29&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="block-p"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="block-p"&gt;&lt;a target="" rel="" href="https://bcbikerace.com/racer_resources/course-info/" data-type="link"&gt;BC BIKE RACE&lt;/a&gt;&lt;/p&gt;&lt;p class="block-p"&gt;Mt Tzouhalem&amp;nbsp;&amp;amp; Maple Mountain&lt;/p&gt;&lt;p class="block-p"&gt;June 30 - July 2&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div data-type="embed" class="bv3-embed"&gt;&lt;iframe width="315" height="560" src="https://www.youtube.com/embed/lukk4Pa6ctw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p class="block-p"&gt;&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/objs/objshjlabnfe.jpg" type="image/jpeg" />
      <pubDate>Thu, 29 May 2025 18:11:50 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/june-community-calendar-8699601</guid>
      <dc:date>2025-05-29T18:11:50Z</dc:date>
    </item>
    <item>
      <title>Kaiser Easter Extravaganza!</title>
      <link>https://cal-kaiser.com/blog.html/kaiser-easter-extravaganza-8641687</link>
      <description>We are so excited for our next event! Join us Sunday, April 20th for our Easter Extravaganza at the new park on Seablush Crescent! We’ll have lots of candy for the kids, a barbeque and even an appearance from the Easter Bunny!

DATE: Sunday, April 20th</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/dekv/dekvikvuwkdv.png" type="image/png" />
      <pubDate>Thu, 10 Apr 2025 18:36:12 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/kaiser-easter-extravaganza-8641687</guid>
      <dc:date>2025-04-10T18:36:12Z</dc:date>
    </item>
    <item>
      <title>Meet Cal Kaiser</title>
      <link>https://cal-kaiser.com/blog.html/meet-cal-kaiser-8525174</link>
      <description>Real estate was never my backup plan—it was Plan A from the very start.</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/wgwa/wgwaudqrshrf.jpg" type="image/jpeg" />
      <pubDate>Mon, 31 Mar 2025 19:14:50 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/meet-cal-kaiser-8525174</guid>
      <dc:date>2025-03-31T19:14:50Z</dc:date>
    </item>
    <item>
      <title>Bike Race Season in Cowichan</title>
      <link>https://cal-kaiser.com/blog.html/bike-race-season-in-cowichan-8485894</link>
      <description>It’s race season! The Cowichan Valley hosts some spectacular bike races across so many cycling disciplines. Here’s some events to lookout for:</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/wfcz/wfczbcclebva.JPG" type="image/jpeg" />
      <pubDate>Fri, 21 Mar 2025 18:02:02 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/bike-race-season-in-cowichan-8485894</guid>
      <dc:date>2025-03-21T18:02:02Z</dc:date>
    </item>
    <item>
      <title>Moving to Vancouver Island? A Real Estate Agent's Insider Tips</title>
      <link>https://cal-kaiser.com/blog.html/how-to-move-to-vancouver-island-8424530</link>
      <description>Moving provinces is more than just packing boxes! Learn insider tips for moving to Vancouver Island from real estate expert Tammy Bigalow! From regional nuances to provincial transitions, get the scoop here</description>
      <enclosure url="https://iss-cdn.myrealpage.com/22QOL2t7xzYLOJLJvB3bo9lXcYguiJTU9RLr-Qykrow/rs:auto:0:0:0/g:sm/bG9jYWw6Ly9maWxlOi8vL2RhdGEtZWZzLWltYWdlcy9hcHAvYmxvZy9yL3YvZS9yL3J2ZXIvcnZlcnFlY2FtZnNnLmpwZWc_dD0xNzQwNjk1NzM3ODYw" type="image/jpeg" />
      <pubDate>Thu, 27 Feb 2025 22:04:20 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/how-to-move-to-vancouver-island-8424530</guid>
      <dc:date>2025-02-27T22:04:20Z</dc:date>
    </item>
    <item>
      <title>Find Your Perfect Acreage: Dream Lots in the Cowichan Valley</title>
      <link>https://cal-kaiser.com/blog.html/find-your-perfect-acreage-dream-lots-in-the-cowichan-valley-8409821</link>
      <description>Looking to build your dream home? Whether you're craving vineyard views, a central location, or a sprawling rural retreat, we've got you covered.</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/qncs/qncsaxgzveik.jpg" type="image/jpeg" />
      <pubDate>Wed, 19 Feb 2025 22:27:47 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/find-your-perfect-acreage-dream-lots-in-the-cowichan-valley-8409821</guid>
      <dc:date>2025-02-19T22:27:47Z</dc:date>
    </item>
    <item>
      <title>Poly B Plumbing: A Growing Concern for Homeowners</title>
      <link>https://cal-kaiser.com/blog.html/poly-b-plumbing-a-growing-concern-for-homeowners-8388120</link>
      <description>Poly B plumbing presents a significant challenge for homeowners. By understanding the risks and taking proactive steps, you can minimize potential problems and protect your property and your finances.</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/ckbd/ckbdbwcwakou.png" type="image/png" />
      <pubDate>Tue, 21 Jan 2025 18:02:12 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/poly-b-plumbing-a-growing-concern-for-homeowners-8388120</guid>
      <dc:date>2025-01-21T18:02:12Z</dc:date>
    </item>
    <item>
      <title>New property listed in Du West Duncan, Duncan</title>
      <link>https://cal-kaiser.com/blog.html/new-property-listed-in-du-west-duncan-duncan-8333110</link>
      <description>&lt;div class='listing-banner listing-banner-NEW-BANNER' style='background-color: #1f993b' data-banner='NEW LISTING' &gt;&lt;/div&gt;&lt;p&gt;&#xD;
I have listed a new property at SL 5 Pinot Pl in Duncan. &lt;a href="https://cal-kaiser.com/mylistings.html/listing.980259-sl-5-pinot-pl-duncan-v9l-6k9.103409126"&gt;See details here&lt;/a&gt;&#xD;
&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&#xD;
Discover the perfect canvas for your dream home on these picturesque 2-acre lots. Enjoy ocean views of Cowichan Bay that stretch to the horizon, while overlooking a lush vineyard, creating a serene and scenic backdrop for your future home.  With the convenience of municipal water and easy access via a paved road, your vision of tranquillity and luxury is within reach. Embrace this wonderful lifestyle and immerse yourself in the natural beauty of the fabulous hiking trails on Mount Prevost right from your doorstep.&#xD;
&lt;/p&gt;</description>
      <enclosure url="https://iss-cdn.myrealpage.com/EkWGDNeu5eyUv9xG2-IMOOUbsgjbs9-oVCeJwDKCbQs/rs:auto:0:0:0/g:sm/bG9jYWw6Ly8vZGF0YS1lZnMtaW1hZ2VzL2FwcC9hdXRvLWJsb2cvNjI1NDkvNi8yLzEvMTAzNDA5MTI2LzY4ZmUzNTUyNzA4ZmJkZjViMWRkNTQ2OTg4NDZkNThmLmpwZWc" type="image/jpeg" />
      <category>Du West Duncan, Duncan Real Estate</category>
      <pubDate>Fri, 08 Nov 2024 09:02:35 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-property-listed-in-du-west-duncan-duncan-8333110</guid>
      <dc:date>2024-11-08T09:02:35Z</dc:date>
    </item>
    <item>
      <title>New property listed in Du West Duncan, Duncan</title>
      <link>https://cal-kaiser.com/blog.html/new-property-listed-in-du-west-duncan-duncan-8333111</link>
      <description>&lt;div class='listing-banner listing-banner-NEW-BANNER' style='background-color: #1f993b' data-banner='NEW LISTING' &gt;&lt;/div&gt;&lt;p&gt;&#xD;
I have listed a new property at SL 3 Pinot Pl in Duncan. &lt;a href="https://cal-kaiser.com/mylistings.html/listing.980272-sl-3-pinot-pl-duncan-v9l-6k9.103409150"&gt;See details here&lt;/a&gt;&#xD;
&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&#xD;
Discover the perfect canvas for your dream home on these picturesque 2-acre lots. Enjoy ocean views of Cowichan Bay that stretch to the horizon, while overlooking a lush vineyard, creating a serene and scenic backdrop for your future home.  With the convenience of municipal water and easy access via a paved road, your vision of tranquillity and luxury is within reach. Embrace this wonderful lifestyle and immerse yourself in the natural beauty of the fabulous hiking trails on Mount Prevost right from your doorstep.&#xD;
&lt;/p&gt;</description>
      <enclosure url="https://iss-cdn.myrealpage.com/2hJiHHXYLuCqDa_zkPPstZDBpm47ZvghyMVrFx3wGzE/rs:auto:0:0:0/g:sm/bG9jYWw6Ly8vZGF0YS1lZnMtaW1hZ2VzL2FwcC9hdXRvLWJsb2cvNjI1NDkvMC81LzEvMTAzNDA5MTUwLzJjNjk4ZjAxZTI3ZDU0ZTJhODhiZTc4ZjRiMjBiM2ZiLmpwZWc" type="image/jpeg" />
      <category>Du West Duncan, Duncan Real Estate</category>
      <pubDate>Fri, 08 Nov 2024 09:02:35 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-property-listed-in-du-west-duncan-duncan-8333111</guid>
      <dc:date>2024-11-08T09:02:35Z</dc:date>
    </item>
    <item>
      <title>New property listed in Du West Duncan, Duncan</title>
      <link>https://cal-kaiser.com/blog.html/new-property-listed-in-du-west-duncan-duncan-8333112</link>
      <description>&lt;div class='listing-banner listing-banner-NEW-BANNER' style='background-color: #1f993b' data-banner='NEW LISTING' &gt;&lt;/div&gt;&lt;p&gt;&#xD;
I have listed a new property at SL 4 Pinot Pl in Duncan. &lt;a href="https://cal-kaiser.com/mylistings.html/listing.980270-sl-4-pinot-pl-duncan-v9l-6k9.103409110"&gt;See details here&lt;/a&gt;&#xD;
&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&#xD;
Discover the perfect canvas for your dream home on these picturesque 2-acre lots. Enjoy ocean views of Cowichan Bay that stretch to the horizon, while overlooking a lush vineyard, creating a serene and scenic backdrop for your future home.  With the convenience of municipal water and easy access via a paved road, your vision of tranquillity and luxury is within reach. Embrace this wonderful lifestyle and immerse yourself in the natural beauty of the fabulous hiking trails on Mount Prevost right from your doorstep.&#xD;
&lt;/p&gt;</description>
      <enclosure url="https://iss-cdn.myrealpage.com/H8EvWgh6hiw1xJS9sQvWdFS67YaQNwNQkrBTyh9Yqik/rs:auto:0:0:0/g:sm/bG9jYWw6Ly8vZGF0YS1lZnMtaW1hZ2VzL2FwcC9hdXRvLWJsb2cvNjI1NDkvMC8xLzEvMTAzNDA5MTEwLzhiMGM1MTIwMjk4ZWM1N2U3ZjU5MjZjOTIzYjAwMDk0LmpwZWc" type="image/jpeg" />
      <category>Du West Duncan, Duncan Real Estate</category>
      <pubDate>Fri, 08 Nov 2024 09:02:35 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-property-listed-in-du-west-duncan-duncan-8333112</guid>
      <dc:date>2024-11-08T09:02:35Z</dc:date>
    </item>
    <item>
      <title>New property listed in Du West Duncan, Duncan</title>
      <link>https://cal-kaiser.com/blog.html/new-property-listed-in-du-west-duncan-duncan-8333113</link>
      <description>&lt;div class='listing-banner listing-banner-NEW-BANNER' style='background-color: #1f993b' data-banner='NEW LISTING' &gt;&lt;/div&gt;&lt;p&gt;&#xD;
I have listed a new property at SL 6 Pinot Pl in Duncan. &lt;a href="https://cal-kaiser.com/mylistings.html/listing.980275-sl-6-pinot-pl-duncan-v9l-6k9.103409125"&gt;See details here&lt;/a&gt;&#xD;
&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&#xD;
Discover the perfect canvas for your dream home on these picturesque 2-acre lots. Enjoy ocean views of Cowichan Bay that stretch to the horizon, while overlooking a lush vineyard, creating a serene and scenic backdrop for your future home.  With the convenience of municipal water and easy access via a paved road, your vision of tranquillity and luxury is within reach. Embrace this wonderful lifestyle and immerse yourself in the natural beauty of the fabulous hiking trails on Mount Prevost right from your doorstep.&#xD;
&lt;/p&gt;</description>
      <enclosure url="https://iss-cdn.myrealpage.com/s-XQFwJH_eY1F9VvugnoLhvSHtta9DmhimWxzrEb_hk/rs:auto:0:0:0/g:sm/bG9jYWw6Ly8vZGF0YS1lZnMtaW1hZ2VzL2FwcC9hdXRvLWJsb2cvNjI1NDkvNS8yLzEvMTAzNDA5MTI1LzIxNjQzMmQwMmI1MTg1MGFkZmU2YzA4ZGNkNDNhMzg4LmpwZWc" type="image/jpeg" />
      <category>Du West Duncan, Duncan Real Estate</category>
      <pubDate>Fri, 08 Nov 2024 09:02:35 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-property-listed-in-du-west-duncan-duncan-8333113</guid>
      <dc:date>2024-11-08T09:02:35Z</dc:date>
    </item>
    <item>
      <title>New property listed in ML Mill Bay, Malahat &amp;amp; Area</title>
      <link>https://cal-kaiser.com/blog.html/new-property-listed-in-ml-mill-bay-malahat-amp-area-8091309</link>
      <description>&lt;div class='listing-banner listing-banner-NEW-BANNER' style='background-color: #1f993b' data-banner='NEW LISTING' &gt;&lt;/div&gt;&lt;p&gt;&#xD;
I have listed a new property at 2449 Liggett Rd in Mill Bay. &lt;a href="https://cal-kaiser.com/mylistings.html/listing.952065-2449-liggett-rd-mill-bay-v9l-2p4.101015594"&gt;See details here&lt;/a&gt;&#xD;
&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;&#xD;
Introducing your dream home at 2449 Liggett Rd, Mill Bay! This impeccably maintained 3-bed, 4-bath home offers the perfect blend of comfort and style. Enjoy main-level living with an open-concept layout and primary bedroom complete with a walk-in closet and a 4-piece ensuite. On the lower level, you’ll find 2 additional bedrooms, a spacious family room and additional storage. With 3,030 sq.ft of space on a generous 0.36-acre lot, this property boasts a wrap-around deck overlooking a beautifully landscaped garden and peek-a-boo ocean views. Conveniently situated between Duncan and Victoria, relish the ease of access to both urban amenities and natural beauty. Don't miss the chance to call this house your home!&#xD;
&lt;/p&gt;</description>
      <enclosure url="https://iss-cdn.myrealpage.com/lRQSq_k5CqdrNbcVsRu-v1z93qh1jdm9ifML3O8RZhE/rs:auto:0:0:0/g:sm/bG9jYWw6Ly8vZGF0YS1lZnMtaW1hZ2VzL2FwcC9hdXRvLWJsb2cvNjI1NDkvNC85LzUvMTAxMDE1NTk0L2EyZGU4ZjJjYjE5ZTMyNDQyYjRlYmYxMmIwOTFlYmI5LmpwZWc" type="image/jpeg" />
      <category>ML Mill Bay, Malahat &amp; Area Real Estate</category>
      <pubDate>Sat, 10 Feb 2024 09:03:00 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-property-listed-in-ml-mill-bay-malahat-amp-area-8091309</guid>
      <dc:date>2024-02-10T09:03:00Z</dc:date>
    </item>
  </channel>
</rss>

