docs: function embedSVG(svgText) {
          var domParser,
              svgDoc,
              svgEl,
              html,
              dataURLPrefix,
              contentDocument = $svg[0].contentDocument,
              contentWindow = $svg[0].contentWindow ||
                               // @NOTE: supports older versions of ff
                              contentDocument && contentDocument.defaultView;
  
          switch (embedStrategy) {
              case EMBED_STRATEGY_IFRAME_INNERHTML:
                  // @NOTE: IE 9 fix. This line in the file is causing the page not to render in IE 9.
                  // The link is not needed here anymore because we are including the stylesheet separately.
                  if (browser.ielt10) {
                      svgText = svgText.replace(/<xhtml:link.*/,'');
                  }
                  html = HTML_TEMPLATE + svgText;
                  // @NOTE: documentElement.innerHTML is read-only in IE
                  if (browser.ielt10) {
                      contentDocument.body.innerHTML = html;
                  } else {
                      contentDocument.documentElement.innerHTML = html;
                      // @NOTE: there is a bug in Safari 6 where <use>
                      // elements don't work properly
                      if ((browser.ios || browser.safari) && browser.version < 7) {
                          fixUseElements(contentDocument);
                      }
                  }
                  svgEl = contentDocument.getElementsByTagName('svg')[0];
                  break;
  
              case EMBED_STRATEGY_IFRAME_PROXY:
                  contentDocument.documentElement.innerHTML = HTML_TEMPLATE;
                  var head = contentDocument.getElementsByTagName('head')[0] || contentDocument.documentElement,
                      script = contentDocument.createElement('script'),
                      data = '('+proxySVG+')()'; // IIFE to create window.loadSVG
                  script.type = 'text/javascript';
                  try {
                      // doesn't work on ie...
                      script.appendChild(document.createTextNode(data));
                  } catch(e) {
                      // IE has funky script nodes
                      script.text = data;
                  }
                  head.insertBefore(script, head.firstChild);
                  if (contentDocument.readyState === 'complete') {
                      contentWindow.loadSVG(svgText);
                  } else {
                      contentWindow.onload = function () {
                          this.loadSVG(svgText);
                      };
                  }
                  // NOTE: return is necessary here because we are waiting for a callback
                  // before unsetting svgText
                  return;
  
              case EMBED_STRATEGY_DATA_URL:
                  domParser = new DOMParser();
                  svgDoc = domParser.parseFromString(svgText, SVG_MIME_TYPE);
                  svgEl = contentDocument.importNode(svgDoc.documentElement, true);
                  contentDocument.documentElement.appendChild(svgEl);
                  break;
  
              case EMBED_STRATEGY_DATA_URL_PROXY:
                  contentWindow.loadSVG(svgText);
                  svgEl = contentDocument.querySelector('svg');
                  break;
  
              case EMBED_STRATEGY_INLINE_SVG:
                  domParser = new DOMParser();
                  svgDoc = domParser.parseFromString(svgText, SVG_MIME_TYPE);
                  svgEl = document.importNode(svgDoc.documentElement, true);
                  $svg.append(svgEl);
                  break;
  
              case EMBED_STRATEGY_BASIC_OBJECT:
                  $svg.attr({
                      type: SVG_MIME_TYPE,
                      data: scope.getDataProvider('page-svg').getURL(page)
                  });
                  svgEl = $svg[0];
                  break;
  
              case EMBED_STRATEGY_BASIC_IMG:
                  svgEl = $svg[0];
                  svgEl.src = scope.getDataProvider('page-svg').getURL(page);
                  break;
  
              case EMBED_STRATEGY_DATA_URL_IMG:
                  svgEl = $svg[0];
                  dataURLPrefix = 'data:' + SVG_MIME_TYPE;
                  if (!browser.ie && window.btoa) {
                      svgEl.src = dataURLPrefix + ';base64,' + window.btoa(svgText);
                  } else {
                      svgEl.src = dataURLPrefix + ',' + encodeURIComponent(svgText);
                  }
                  break;
  
              // no default
          }
  
          // make sure the svg width/height are explicity set to 100%
          svgEl.setAttribute('width', '100%');
          svgEl.setAttribute('height', '100%');
      }