<?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, 04 Sep 2026 20:27:44 GMT</pubDate>
    <dc:creator>Cal Kaiser</dc:creator>
    <dc:date>2026-09-04T20:27:44Z</dc:date>
    <dc:rights>Copyright (C): Cal Kaiser, https://cal-kaiser.com</dc:rights>
    <item>
      <title>Weekly Market Highs and Lows - September 4, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9140676</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/6656c48c2fb4/weekly-highs-lows-with-kaiser-associates-sept-4-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, 04 Sep 2026 20:27:44 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9140676</guid>
      <dc:date>2026-09-04T20:27:44Z</dc:date>
    </item>
    <item>
      <title>Kaiser &amp; Associates Weekly Highlights - August 28, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9134559</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/45a964315222/weekly-highs-lows-with-kaiser-associates-aug-28-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, 28 Aug 2026 20:37:16 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9134559</guid>
      <dc:date>2026-08-28T20:37:16Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - August 21, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9126253</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;Click &lt;a rel="" href="https://mailchi.mp/50373b04c547/weekly-highs-and-lows-with-kaiser-associates-aug-21" data-type="link"&gt;here&lt;/a&gt;&amp;nbsp;to see our Weekly Newsletter!&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, 21 Aug 2026 17:54:13 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9126253</guid>
      <dc:date>2026-08-21T17:54:13Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - August 14, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9118178</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/ab0fdbe367ae/weekly-highs-lows-with-kaiser-associates-august-14-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, 14 Aug 2026 20:53:59 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9118178</guid>
      <dc:date>2026-08-14T20:53:59Z</dc:date>
    </item>
    <item>
      <title>Kaiser &amp; Associates Weekly Highlights - August 7, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9111616</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/1f6a812cc2db/weekly-highs-and-lows-with-kaiser-associates-august-7-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, 07 Aug 2026 17:16:11 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9111616</guid>
      <dc:date>2026-08-07T17:16:11Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - July 31, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9104557</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;Click &lt;a rel="" href="https://mailchi.mp/3a7bc844fb05/weekly-highs-lows-with-kaiser-associates-july-31-2026" data-type="link"&gt;here&lt;/a&gt;&amp;nbsp;to see our Weekly Newsletter!&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, 31 Jul 2026 20:34:39 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9104557</guid>
      <dc:date>2026-07-31T20:34:39Z</dc:date>
    </item>
    <item>
      <title>New Listing! 207-273 Coronation Avenue, Duncan!</title>
      <link>https://cal-kaiser.com/blog.html/new-listing-207-273-coronation-avenue-duncan-9102336</link>
      <description>&lt;p class="block-p"&gt;Downsize without compromise, still have room to host family dinner! Enjoy sunny southern exposure in this spacious 2-bedroom, 1.5-bath condo in the sought-after Rosewood, a well-managed, welcoming 55+ condo community. This spacious floor plan has room for the family dining room set and your favourite couches! Sunny south facing patio doors leading to a private balcony with a touch of greenery, creating a bright and welcoming space to relax or entertain. The large kitchen offers a eating nook and abundant cabinetry. No lack of storage with a walk in closet/pantry plus an additional storage locker. (1) assigned parking space. Centrally located walking distance to shopping, restaurants, recreation, medical services and all the amenities Duncan has to offer. This home combines comfort, convenience, and easy living in a friendly community.&lt;/p&gt;&lt;p class="block-p"&gt;For more information &lt;a target="" rel="" href="https://cal-kaiser.com/mylistings.html/listing.1044186-207-273-coronation-ave-duncan-v9l-2t1.109425891" data-type="link"&gt;click here&lt;/a&gt;.&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/lzsc/lzsczyobtjxr.jpg" type="image/jpeg" />
      <pubDate>Wed, 29 Jul 2026 20:10:08 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-listing-207-273-coronation-avenue-duncan-9102336</guid>
      <dc:date>2026-07-29T20:10:08Z</dc:date>
    </item>
    <item>
      <title>New Listing! 366-3042 River Road, Chemainus</title>
      <link>https://cal-kaiser.com/blog.html/new-listing-366-3042-river-road-chemainus-9098405</link>
      <description>&lt;p class="block-p"&gt;Welcome to Chemainus Gardens, a peaceful 34-acre adult oriented community offering beautifully maintained grounds with manicured gardens, water lily ponds, expansive lawns, walking paths and a dedicated dog park. This 2018 turn key 549 sq. ft. park model features 1 bedroom, 1 full bath, in-home stacked washer/dryer, natural gas stove &amp;amp; 2 bbq hookups. An efficient heat pump with air conditioning for year-round comfort. Vaulted ceilings create a bright open/spacious feel. Outside boasts a covered front porch with roll down sunshade, covered pergola style entry and a generous 522 SF of decking with sun and shade to provide inviting outdoor living. Backing onto the community wooded area there is ample privacy and a sturdy storage shed is included for the gardener. Located just minutes from the seaside community of Chemainus, you'll enjoy easy access to shopping, banking, the Chemainus Dinner Theatre, library, golf, beaches, and all the amenities this vibrant town has to offer.&lt;/p&gt;&lt;p class="block-p"&gt;For more information &lt;a rel="" href="https://cal-kaiser.com/mylistings.html/listing.1043763-366-3042-river-rd-chemainus-v0r-1k3.109383215" data-type="link"&gt;click here&lt;/a&gt;.&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/dehi/dehidnddhfia.jpg" type="image/jpeg" />
      <pubDate>Fri, 24 Jul 2026 21:02:15 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-listing-366-3042-river-road-chemainus-9098405</guid>
      <dc:date>2026-07-24T21:02:15Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - July 24, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9098404</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/ca9a508d33a1/weekly-highs-lows-with-kaiser-associates-july-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/magd/magdufvsxuad.jpg" type="image/jpeg" />
      <pubDate>Fri, 24 Jul 2026 20:57:22 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9098404</guid>
      <dc:date>2026-07-24T20:57:22Z</dc:date>
    </item>
    <item>
      <title>Kaiser &amp; Associates Weekly Highlights - July 17, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9091305</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/7ee59ed2d540/weekly-highs-lows-with-kaiser-associates-july-17-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, 17 Jul 2026 18:57:35 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9091305</guid>
      <dc:date>2026-07-17T18:57:35Z</dc:date>
    </item>
    <item>
      <title>New Listing! 5280 Koksilah Road, Duncan!</title>
      <link>https://cal-kaiser.com/blog.html/new-listing-5280-koksilah-road-duncan-9087084</link>
      <description>&lt;p class="block-p"&gt;Development Opportunity! Ideally located just south of Duncan with easy highway access, this 2.35-acre property offers exceptional future development potential. Connected to both municipal water and sewer, the property is currently zoned R-3 Urban Residential and includes a tenanted 2-bedroom, 1-bathroom home that could provide holding income while future plans are explored. Current zoning permits a minimum lot size of approximately 0.22 acres, making it well suited for single-family homes with legal suites. With significant growth planned throughout the Cowichan Valley, this is an outstanding opportunity for developers, investors, or groups looking to secure a property with long-term upside. There may also be potential to rezone or stratify for alternative development configurations, subject to municipal approvals. Buyers must conduct their own due diligence regarding zoning, subdivision, servicing, and development potential.&lt;/p&gt;&lt;p class="block-p"&gt;For more information &lt;a rel="" href="https://cal-kaiser.com/mylistings.html/listing.1042846-5280-koksilah-rd-duncan-v9l-6v3.109277129" data-type="link"&gt;click here&lt;/a&gt;.&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/ojqh/ojqhlvbwzlsp.jpg" type="image/jpeg" />
      <pubDate>Tue, 14 Jul 2026 20:42:23 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-listing-5280-koksilah-road-duncan-9087084</guid>
      <dc:date>2026-07-14T20:42:23Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - July 10, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9084169</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;Click &lt;a rel="" href="https://mailchi.mp/34129202e685/kaiser-associates-weekly-highs-and-lows" data-type="link"&gt;here&lt;/a&gt;&amp;nbsp;to see our Weekly Newsletter!&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 Jul 2026 23:09:35 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9084169</guid>
      <dc:date>2026-07-10T23:09:35Z</dc:date>
    </item>
    <item>
      <title>New Listing! 1953 Farleigh Way, North Cowichan, BC</title>
      <link>https://cal-kaiser.com/blog.html/new-listing-1953-farleigh-way-north-cowichan-bc-9079457</link>
      <description>&lt;p class="block-p"&gt;Located in the sought-after Parkwalk/Maple Bay neighbourhood, this impressive 5-bedroom, 4-bathroom home offers 3,434 sq ft of finished living space across two levels. Built in 2022 with quality finishes throughout, the main floor features a chef's kitchen with island, gas range, and hot water on demand, flowing into bright, open living areas filled with natural light. The primary suite is a true sanctuary with a generous walk-in closet and luxurious 5-piece ensuite. The lower level has been thoughtfully finished as a self-contained in-law suite making it ideal for multi-generational living, extended family, or guests (not a legal secondary suite). Balcony/deck, double garage, and a low-maintenance yard complete this well-appointed home. Steps from Maple Bay Elementary and minutes to beaches, marinas, and trails, this is exceptional value in one of Duncan's most desirable neighbourhoods.&lt;/p&gt;&lt;p class="block-p"&gt;For more information &lt;a rel="" href="https://cal-kaiser.com/mylistings.html/listing.1041945-1953-farleigh-way-duncan-v9l-0h1.109241516" data-type="link"&gt;click here&lt;/a&gt;.&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/wihf/wihfodouksxe.jpg" type="image/jpeg" />
      <pubDate>Tue, 07 Jul 2026 19:55:56 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-listing-1953-farleigh-way-north-cowichan-bc-9079457</guid>
      <dc:date>2026-07-07T19:55:56Z</dc:date>
    </item>
    <item>
      <title>Weekly Market Highs and Lows - June 26, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9070483</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/daed3a5623c8/kaiser-associates-weekly-highs-lows-june-26-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, 26 Jun 2026 20:15:22 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9070483</guid>
      <dc:date>2026-06-26T20:15:22Z</dc:date>
    </item>
    <item>
      <title>New Listing! 1536 Regatta Place, Cowichan Bay</title>
      <link>https://cal-kaiser.com/blog.html/new-listing-1536-regatta-place-cowichan-bay-9062367</link>
      <description>&lt;p class="block-p"&gt;This beautifully maintained 2-bed, 2-bath rancher in Cowichan Bay offers effortless single-level living. The updated kitchen features new cabinetry and sleek quartz countertops, perfect for cooking and entertaining. Both bedrooms are generously sized with two full bathrooms for added convenience. Enjoy your private backyard retreat, ideal for summer gatherings or quiet relaxation, plus a double garage for ample parking and storage. Located in the charming seaside village of Cowichan Bay, you're minutes from local restaurants, the marina, boutique shops, and the natural beauty of Vancouver Island. Move-in ready!&lt;/p&gt;&lt;p class="block-p"&gt;For more information &lt;a rel="" href="https://cal-kaiser.com/mylistings.html/listing.1040476-1536-regatta-pl-cowichan-bay-v0r-1n1.109093499" data-type="link"&gt;click here&lt;/a&gt;.&lt;/p&gt;</description>
      <enclosure url="https://cal-kaiser.com/wps/rest/62549/blog/vmsk/vmskdhpbbubc.jpg" type="image/jpeg" />
      <pubDate>Fri, 19 Jun 2026 17:41:35 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/new-listing-1536-regatta-place-cowichan-bay-9062367</guid>
      <dc:date>2026-06-19T17:41:35Z</dc:date>
    </item>
    <item>
      <title>Kaiser &amp; Associates Weekly Highlights - June 19, 2026</title>
      <link>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9062366</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/fd230b59168b/kaiser-associates-weekly-highs-lows-june-19-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, 19 Jun 2026 17:39:43 GMT</pubDate>
      <guid>https://cal-kaiser.com/blog.html/a-weekly-update-of-the-cowichan-valley-market-9062366</guid>
      <dc:date>2026-06-19T17:39:43Z</dc:date>
    </item>
    <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>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! 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>
  </channel>
</rss>

