if (window._proxy_require == null)
{
  window._proxy_require_loaded = []; window._proxy_require_loading = []; window._proxy_require_callback = []; window._proxy_require_loading_running = false; window._document_loaded = false;
  window._proxy_require = function(library, callback)
  {
    if (callback != null) _proxy_require_callback.push({ callback: callback, conditions: (typeof library == 'string') ? [library] : library });
    if (typeof library == 'string') library = [library];
    var loaded_all = true;
    for (var l = 0; l < library.length; l++)
    {
      var loaded = false;
      for (i = 0; i < _proxy_require_loading.length; i++)
      {
        if (_proxy_require_loading[i].library == library[l])
        {
          loaded = true;
          break;
        }
      }
      if (loaded)
      {
        loaded_all = false;
        continue;
      }
      loaded = false;
      for (i = 0; i < _proxy_require_loaded.length; i++)
      {
        if (_proxy_require_loaded[i] == library[l])
        {
          loaded = true;
          break;
        }
      }
      if (loaded == false)
      {
        var uri_base;
        if (document.location.host == 'xml.staging.technolutions.com') uri_base = 'http://xml.staging.technolutions.com/framework/';
        else if (document.location.host == 'xml.technolutions.com') uri_base = 'http://xml.technolutions.com/framework/';
        else uri_base = document.location.protocol + '//' + document.location.host + '/fw/framework/';
        if (library[l].indexOf('://') > -1) uri_base = '';
        if (library[l].indexOf('.css') > -1)
        {
          if (document.createStyleSheet) document.createStyleSheet(uri_base + library[l]);
          else
          {
            var styles = '@import url(\'' + uri_base + library[l] + '\');';
            var el = document.createElement('link');
            el.rel = 'stylesheet'; el.type = 'text/css';
            el.href = 'data:text/css,' + escape(styles);
            document.getElementsByTagName('head')[0].appendChild(el);
          }
          _proxy_require_loaded.push(library[l]);
          _proxy_require_callback_cleanup();
        }
        else if (library[l].indexOf('.js') > -1)
        {
          var el = document.createElement('script');
          el.type = 'text/javascript';
          el.src = uri_base + ((uri_base.indexOf('?') == -1) ? library[l] : encodeURIComponent(library[l]));
          _proxy_require_loading.push({ library: library[l], element: el, loaded: false });
          _proxy_require_loading_load(false);
        }
        loaded_all = false;
      }
    }
    if (loaded_all)
    {
      _proxy_require_callback_cleanup();
      return;
    }
  };
  window._proxy_require_callback_cleanup = function()
  {
    for (var i = 0; i < _proxy_require_callback.length; i++)
    {
      var loaded = true;
      for (var j = 0; j < _proxy_require_callback[i].conditions.length; j++)
      {
        var loaded_this = false;
        for (var k = 0; k < _proxy_require_loaded.length; k++)
        {
          if (_proxy_require_loaded[k] == _proxy_require_callback[i].conditions[j])
          {
            loaded_this = true;
            break;
          }
        }
        if (loaded_this == false)
        {
          loaded = false;
          break;
        }
      }
      if (loaded)
      {
        _proxy_require_callback[i].callback();
        _proxy_require_callback.splice(i, 1);
        i--;
      }
    }
  }
  window._proxy_require_loading_callback = function(el, first)
  {
    return function()
    {
      if ((el.element.readyState == null) ? true : ((el.element.readyState == 'loaded') || (el.element.readyState == 'complete')))
      {
        el.loaded = true;
        if (first == true) _proxy_require_loading_load(true);
      }
    }
  }
  window._proxy_require_loading_load = function(first)
  {
    if ((window._proxy_require_loading_running == true) && (first == false)) return; window._proxy_require_loading_running = true;
    for (i = 0; i < _proxy_require_loading.length; i++)
    {
      var el = _proxy_require_loading[i];
      if (el.loaded == false)
      {
        var is_loaded = el.loaded;
        if (el.element.parentNode == null)
        {
          if (is_loaded == false)
          {
            if (el.element.readyState == null) el.element.onload = _proxy_require_loading_callback(el, true);
            else el.element.onreadystatechange = _proxy_require_loading_callback(el, true);
          }
          document.getElementsByTagName('head')[0].appendChild(el.element);
        }
        if (is_loaded == true)
        {
          _proxy_require_loaded.push(el.library);
          _proxy_require_callback_cleanup();
          _proxy_require_loading.splice(i, 1);
          i--;
        }
        else return;
      }
      else
      {
        _proxy_require_loaded.push(el.library);
        _proxy_require_callback_cleanup();
        _proxy_require_loading.splice(i, 1);
        i--;
      }
    }
    window._proxy_require_loading_running = false;
  }
  window.proxy_parseXml = function(xml)
  {
    var dom = null;
    if (window.DOMParser)
    {
      try { dom = (new DOMParser()).parseFromString(xml, 'text/xml'); }
      catch (e) { dom = null; }
    }
    else if (window.ActiveXObject)
    {
      try
      {
        dom = new ActiveXObject('Microsoft.XMLDOM');
        dom.async = false;
        if (!dom.loadXML(xml)) window.alert(dom.parseError.reason + dom.parseError.srcText);
      }
      catch (e) { dom = null; }
    }
    else alert('cannot parse xml string!');
    return (dom);
  }
  window.proxy_register = function(service, uri, callback)
  {
    window['proxy_service'] = service;
    var script = document.createElement('script');
    script.src = service + '?u=' + encodeURIComponent(uri) + '&c=' + encodeURIComponent(callback);
    script.type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild(script);
  }
}_proxy_require(['base.js', 'base.css?base_safe', 'http://yalestation.yale.edu/calendar/flyerboard/flyerboard.css', 'http://yalestation.yale.edu/portal/proxy.js', 'http://yalestation.yale.edu/calendar/flyerboard/flyerboard.js'],function() { window['flyerboard_display'] = function(xml) { var flyerboard = new Flyerboard($('#flyerboard')); flyerboard.init(); flyerboard.unit_w = 75; flyerboard.unit_h = 75; flyerboard.data = xml; var tab = xml.documentElement.getElementsByTagName('tab'); if (tab.length > 0) { tab = tab[0]; if (tab.getElementsByTagName('tab').length > 0) tab = tab.getElementsByTagName('tab')[0]; flyerboard.loadData(tab); } }; proxy_register('http://yalestation.yale.edu/portal/proxy', '/calendar/flyer.xml?div=flyerboard&c=0a76bca8c51844708c02b8347b536627&s=calendar&h=250&w=370&h2=75&w2=75', 'flyerboard_display'); });