/*=:project
  scalable Inman Flash Replacement (sIFR) version 3, revision 408

  =:file
    Copyright: 2006 Mark Wubben.
    Author: Mark Wubben, <http://novemberborn.net/>

  =:history
    * IFR: Shaun Inman
    * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin
    * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben

  =:license
    This software is licensed and provided under the CC-GNU LGPL.
    See <http://creativecommons.org/licenses/LGPL/2.1/>    
*/

var sIFR = new
function() {
  var O = this;
  var in_a_tag = false;
  var E = {
    ACTIVE: "sIFR-active",
    UNLOADING: "sIFR-unloading",
    REPLACED: "sIFR-replaced",
    IGNORE: "sIFR-ignore",
    ALTERNATE: "sIFR-alternate",
    CLASS: "sIFR-class",
    LAYOUT: "sIFR-layout",
    FLASH: "sIFR-flash",
    FIX_FOCUS: "sIFR-fixfocus",
    DUMMY: "sIFR-dummy"
  };
  E.IGNORE_CLASSES = [E.REPLACED, E.IGNORE, E.ALTERNATE];
  this.MIN_FONT_SIZE = 6;
  this.MAX_FONT_SIZE = 126;
  this.FLASH_PADDING_BOTTOM = 5;
  this.VERSION = "408";
  this.isActive = false;
  this.isEnabled = true;
  this.fixHover = true;
  this.autoInitialize = true;
  this.setPrefetchCookie = true;
  this.cookiePath = "/";
  this.domains = [];
  this.forceWidth = true;
  this.fitExactly = false;
  this.forceTextTransform = true;
  this.useDomLoaded = true;
  this.useStyleCheck = false;
  this.hasFlashClassSet = false;
  this.repaintOnResize = true;
  this.replacements = [];
  var L = 0;
  var R = false;
  function Y() {}
  function D(c) {
    function d(e) {
      return e.toLocaleUpperCase()
    }
    this.normalize = function(e) {
      return e.replace(/\n|\r|\xA0/g, D.SINGLE_WHITESPACE).replace(/\s+/g, D.SINGLE_WHITESPACE)
    };
    this.textTransform = function(e, f) {
      switch (e) {
      case "uppercase":
        return f.toLocaleUpperCase();
      case "lowercase":
        return f.toLocaleLowerCase();
      case "capitalize":
        return f.replace(/^\w|\s\w/g, d)
      }
      return f
    };
    this.toHexString = function(e) {
      if (e.charAt(0) != "#" || e.length != 4 && e.length != 7) {
        return e
      }
      e = e.substring(1);
      return "0x" + (e.length == 3 ? e.replace(/(.)(.)(.)/, "$1$1$2$2$3$3") : e)
    };
    this.toJson = function(g, f) {
      var e = "";
      switch (typeof(g)) {
      case "string":
        e = '"' + f(g) + '"';
        break;
      case "number":
      case "boolean":
        e = g.toString();
        break;
      case "object":
        e = [];
        for (var h in g) {
          if (g[h] == Object.prototype[h]) {
            continue
          }
          e.push('"' + h + '":' + this.toJson(g[h]))
        }
        e = "{" + e.join(",") + "}";
        break
      }
      return e
    };
    this.convertCssArg = function(e) {
      if (!e) {
        return {}
      }
      if (typeof(e) == "object") {
        if (e.constructor == Array) {
          e = e.join("")
        } else {
          return e
        }
      }
      var l = {};
      var m = e.split("}");
      for (var h = 0; h < m.length; h++) {
        var k = m[h].match(/([^\s{]+)\s*\{(.+)\s*;?\s*/);
        if (!k || k.length != 3) {
          continue
        }
        if (!l[k[1]]) {
          l[k[1]] = {}
        }
        var g = k[2].split(";");
        for (var f = 0; f < g.length; f++) {
          var n = g[f].match(/\s*([^:\s]+)\s*\:\s*([^;]+)/);
          if (!n || n.length != 3) {
            continue
          }
          l[k[1]][n[1]] = n[2].replace(/\s+$/, "")
        }
      }
      return l
    };
    this.extractFromCss = function(g, f, i, e) {
      var h = null;
      if (g && g[f] && g[f][i]) {
        h = g[f][i];
        if (e) {
          delete g[f][i]
        }
      }
      return h
    };
    this.cssToString = function(f) {
      var g = [];
      for (var e in f) {
        var j = f[e];
        if (j == Object.prototype[e]) {
          continue
        }
        g.push(e, "{");
        for (var i in j) {
          if (j[i] == Object.prototype[i]) {
            continue
          }
          var h = j[i];
          if (D.UNIT_REMOVAL_PROPERTIES[i]) {
            h = parseInt(h, 10)
          }
          g.push(i, ":", h, ";")
        }
        g.push("}")
      }
      return g.join("")
    };
    this.escape = function(e) {
      return escape(e).replace(/\+/g, "%2B")
    };
    this.encodeVars = function(e) {
      return e.join("&").replace(/%/g, "%25")
    };
    this.copyProperties = function(g, f) {
      for (var e in g) {
        if (f[e] === undefined) {
          f[e] = g[e]
        }
      }
      return f
    };
    this.domain = function() {
      var f = "";
      try {
        f = document.domain
      } catch(g) {}
      return f
    };
    this.domainMatches = function(h, g) {
      if (g == "*" || g == h) {
        return true
      }
      var f = g.lastIndexOf("*");
      if (f > -1) {
        g = g.substr(f + 1);
        var e = h.lastIndexOf(g);
        if (e > -1 && (e + g.length) == h.length) {
          return true
        }
      }
      return false
    };
    this.uriEncode = function(e) {
      return encodeURI(decodeURIComponent(e))
    };
    this.delay = function(f, h, g) {
      var e = Array.prototype.slice.call(arguments, 3);
      setTimeout(function() {
        h.apply(g, e)
      },
      f)
    }
  }
  D.UNIT_REMOVAL_PROPERTIES = {
    leading: true,
    "margin-left": true,
    "margin-right": true,
    "text-indent": true
  };
  D.SINGLE_WHITESPACE = " ";
  function U(e) {
    var d = this;
    function c(g, j, h) {
      var k = d.getStyleAsInt(g, j, e.ua.ie);
      if (k == 0) {
        k = g[h];
        for (var f = 3; f < arguments.length; f++) {
          k -= d.getStyleAsInt(g, arguments[f], true)
        }
      }
      return k
    }
    this.getBody = function() {
      return document.getElementsByTagName("body")[0] || null
    };
    this.querySelectorAll = function(f) {
      return window.parseSelector(f)
    };
    this.addClass = function(f, g) {
      if (g) {
        g.className = ((g.className || "") == "" ? "": g.className + " ") + f
      }
    };
    this.removeClass = function(f, g) {
      if (g) {
        g.className = g.className.replace(new RegExp("(^|\\s)" + f + "(\\s|$)"), "").replace(/^\s+|(\s)\s+/g, "$1")
      }
    };
    this.hasClass = function(f, g) {
      return new RegExp("(^|\\s)" + f + "(\\s|$)").test(g.className)
    };
    this.hasOneOfClassses = function(h, g) {
      for (var f = 0; f < h.length; f++) {
        if (this.hasClass(h[f], g)) {
          return true
        }
      }
      return false
    };
    this.ancestorHasClass = function(g, f) {
      g = g.parentNode;
      while (g && g.nodeType == 1) {
        if (this.hasClass(f, g)) {
          return true
        }
        g = g.parentNode
      }
      return false
    };
    this.create = function(f, g) {
      var h = document.createElementNS ? document.createElementNS(U.XHTML_NS, f) : document.createElement(f);
      if (g) {
        h.className = g
      }
      return h
    };
    this.getComputedStyle = function(h, i) {
      var f;
      if (document.defaultView && document.defaultView.getComputedStyle) {
        var g = document.defaultView.getComputedStyle(h, null);
        f = g ? g[i] : null
      } else {
        if (h.currentStyle) {
          f = h.currentStyle[i]
        }
      }
      return f || ""
    };
    this.getStyleAsInt = function(g, i, f) {
      var h = this.getComputedStyle(g, i);
      if (f && !/px$/.test(h)) {
        return 0
      }
      return parseInt(h) || 0
    };
    this.getWidthFromStyle = function(f) {
      return c(f, "width", "offsetWidth", "paddingRight", "paddingLeft", "borderRightWidth", "borderLeftWidth")
    };
    this.getHeightFromStyle = function(f) {
      return c(f, "height", "offsetHeight", "paddingTop", "paddingBottom", "borderTopWidth", "borderBottomWidth")
    };
    this.getDimensions = function(j) {
      var h = j.offsetWidth;
      var f = j.offsetHeight;
      if (h == 0 || f == 0) {
        for (var g = 0; g < j.childNodes.length; g++) {
          var k = j.childNodes[g];
          if (k.nodeType != 1) {
            continue
          }
          h = Math.max(h, k.offsetWidth);
          f = Math.max(f, k.offsetHeight)
        }
      }
      return {
        width: h,
        height: f
      }
    };
    this.getViewport = function() {
      return {
        width: window.innerWidth || document.documentElement.clientWidth || this.getBody().clientWidth,
        height: window.innerHeight || document.documentElement.clientHeight || this.getBody().clientHeight
      }
    };
    this.blurElement = function(g) {
      try {
        g.blur();
        return
      } catch(h) {}
      var f = this.create("input");
      f.style.width = "0px";
      f.style.height = "0px";
      g.parentNode.appendChild(f);
      f.focus();
      f.blur();
      f.parentNode.removeChild(f)
    }
  }
  U.XHTML_NS = "http://www.w3.org/1999/xhtml";
  function H(m) {
    var d = navigator.userAgent.toLowerCase();
    var l = (navigator.product || "").toLowerCase();
    var f = navigator.platform.toLowerCase();
    this.parseVersion = H.parseVersion;
    this.macintosh = /^mac/.test(f);
    this.windows = /^win/.test(f);
    this.quicktime = false;
    this.opera = /opera/.test(d);
    this.konqueror = /konqueror/.test(l);
    this.ie = false
    /*@cc_on||true@*/
    ;
    this.ieSupported = this.ie && !/ppc|smartphone|iemobile|msie\s5\.5/.test(d)
    /*@cc_on&&@_jscript_version>=5.5@*/
    ;
    this.ieWin = this.ie && this.windows
    /*@cc_on&&@_jscript_version>=5.1@*/
    ;
    this.windows = this.windows && (!this.ie || this.ieWin);
    this.ieMac = this.ie && this.macintosh
    /*@cc_on&&@_jscript_version<5.1@*/
    ;
    this.macintosh = this.macintosh && (!this.ie || this.ieMac);
    this.safari = /safari/.test(d);
    this.webkit = !this.konqueror && /applewebkit/.test(d);
    this.khtml = this.webkit || this.konqueror;
    this.gecko = !this.webkit && l == "gecko";
    this.ieVersion = this.ie && /.*msie\s(\d\.\d)/.exec(d) ? this.parseVersion(RegExp.$1) : "0";
    this.operaVersion = this.opera && /.*opera(\s|\/)(\d+\.\d+)/.exec(d) ? this.parseVersion(RegExp.$2) : "0";
    this.webkitVersion = this.webkit && /.*applewebkit\/(\d+).*/.exec(d) ? this.parseVersion(RegExp.$1) : "0";
    this.geckoVersion = this.gecko && /.*rv:\s*([^\)]+)\)\s+gecko/.exec(d) ? this.parseVersion(RegExp.$1) : "0";
    this.konquerorVersion = this.konqueror && /.*konqueror\/([\d\.]+).*/.exec(d) ? this.parseVersion(RegExp.$1) : "0";
    this.flashVersion = 0;
    if (this.ieWin) {
      var h;
      var k = false;
      try {
        h = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")
      } catch(j) {
        try {
          h = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
          this.flashVersion = this.parseVersion("6");
          h.AllowScriptAccess = "always"
        } catch(j) {
          k = this.flashVersion == this.parseVersion("6")
        }
        if (!k) {
          try {
            h = new ActiveXObject("ShockwaveFlash.ShockwaveFlash")
          } catch(j) {}
        }
      }
      if (!k && h) {
        this.flashVersion = this.parseVersion(/([\d,?]+)/.exec(h.GetVariable("$version"))[1].replace(/,/g, "."))
      }
    } else {
      if (navigator.plugins && navigator.plugins["Shockwave Flash"]) {
        this.flashVersion = this.parseVersion(navigator.plugins["Shockwave Flash"].description.replace(/\D*(\d+\.?\d*)\s*r(\d+)/, "$1$2"));
        var g = 0;
        while (this.flashVersion >= H.MIN_FLASH_VERSION && g < navigator.mimeTypes.length) {
          var c = navigator.mimeTypes[g];
          if (c.type == "application/x-shockwave-flash" && c.enabledPlugin.description.toLowerCase().indexOf("quicktime") > -1) {
            this.flashVersion = this.parseVersion("0");
            this.quicktime = true
          }
          g++
        }
      }
    }
    this.flash = this.flashVersion >= H.MIN_FLASH_VERSION;
    this.transparencySupport = this.macintosh || this.windows;
    this.computedStyleSupport = this.ie || !!document.defaultView.getComputedStyle;
    this.requiresPrefetch = this.ieWin || this.khtml;
    this.fixFocus = this.gecko && this.windows;
    this.nativeDomLoaded = this.gecko || this.webkit && this.webkitVersion >= this.parseVersion("525") || this.konqueror && this.konquerorMajor > this.parseVersion("03") || this.opera;
    this.mustCheckStyle = this.khtml || this.opera;
    this.forcePageLoad = this.webkit && this.webkitVersion < this.parseVersion("523");
    this.properDocument = typeof(document.location) == "object";
    this.supported = this.flash && this.properDocument && (!this.ie || this.ieSupported) && this.computedStyleSupport && (!this.opera || this.operaVersion >= this.parseVersion("9.50")) && (!this.webkit || this.webkitVersion >= this.parseVersion("412")) && (!this.gecko || this.geckoVersion >= this.parseVersion("1.8.0.12")) && (!this.konqueror)
  }
  H.parseVersion = function(c) {
    return c.replace(/(^|\D)(\d)(?=\D|$)/g, "$10000$2")
  };
  H.MIN_FLASH_VERSION = H.parseVersion("8");
  function F(c) {
    this.fix = c.ua.ieWin && window.location.hash != "";
    var d;
    this.cache = function() {
      d = document.title
    };
    function e() {
      document.title = d
    }
    this.restore = function() {
      if (this.fix) {
        setTimeout(e, 0)
      }
    }
  }
  function S(f) {
    var j = null;
    function g() {
      try {
        if (f.ua.ie || document.readyState != "loaded" && document.readyState != "complete") {
          document.documentElement.doScroll("left")
        }
      } catch(k) {
        return setTimeout(g, 10)
      }
      c()
    }
    function c() {
      if (f.useStyleCheck) {
        e()
      } else {
        if (!f.ua.mustCheckStyle) {
          h(null, true)
        }
      }
    }
    function e() {
      j = f.dom.create("div", E.DUMMY);
      f.dom.getBody().appendChild(j);
      d()
    }
    function d() {
      if (f.dom.getComputedStyle(j, "marginLeft") == "42px") {
        i()
      } else {
        setTimeout(d, 10)
      }
    }
    function i() {
      if (j && j.parentNode) {
        j.parentNode.removeChild(j)
      }
      j = null;
      h(null, true)
    }
    function h(k, l) {
      f.initialize(l);
      if (k && k.type == "load") {
        if (document.removeEventListener) {
          document.removeEventListener("DOMContentLoaded", h, false)
        }
        if (window.removeEventListener) {
          window.removeEventListener("load", h, false)
        }
      }
    }
    this.attach = function() {
      if (window.addEventListener) {
        window.addEventListener("load", h, false)
      } else {
        window.attachEvent("onload", h)
      }
      if (!f.useDomLoaded || f.ua.forcePageLoad || f.ua.ie && window.top != window) {
        return
      }
      if (f.ua.nativeDomLoaded) {
        document.addEventListener("DOMContentLoaded", c, false)
      } else {
        if (f.ua.ie || f.ua.khtml) {
          g()
        }
      }
    }
  }
  var Q = "sifrFetch";
  function N(c) {
    var e = false;
    this.fetchMovies = function(f) {
      if (c.setPrefetchCookie && new RegExp(";?" + Q + "=true;?").test(document.cookie)) {
        return
      }
      try {
        e = true;
        d(f)
      } catch(g) {
        if (c.debug) {
          throw g
        }
      }
      if (c.setPrefetchCookie) {
        document.cookie = Q + "=true;path=" + c.cookiePath
      }
    };
    this.clear = function() {
      if (!e) {
        return
      }
      try {
        var f = document.getElementsByTagName("script");
        for (var g = f.length - 1; g >= 0; g--) {
          var h = f[g];
          if (h.type == "sifr/prefetch") {
            h.parentNode.removeChild(h)
          }
        }
      } catch(j) {}
    };
    function d(f) {
      for (var g = 0; g < f.length; g++) {
        document.write('<script defer type="sifr/prefetch" src="' + f[g].src + '"><\/script>')
      }
    }
  }
  function b(e) {
    var g = e.ua.ie;
    var f = g && e.ua.flashVersion < e.ua.parseVersion("9.0.115");
    var d = {};
    var c = {};
    this.register = function(h) {
      if (!g) {
        return
      }
      var i = h.id;
      c[i] = h;
      delete d[i];
      if (f) {
        window[i] = h
      }
    };
    this.reset = function() {
      if (!g) {
        return false
      }
      for (var j = 0; j < e.replacements.length; j++) {
        var h = e.replacements[j];
        var k = c[h.id];
        if (!d[h.id] && (!k.parentNode || k.parentNode.nodeType == 11)) {
          h.resetMovie();
          d[h.id] = true
        }
      }
      return true
    }
  }
  function K(d, g, f, c, e) {
    this.sIFR = d;
    this.id = g;
    this.vars = f;
    this.movie = null;
    this.__forceWidth = c;
    this.__events = e;
    this.__resizing = 0
  }
  K.prototype = {
    getFlashElement: function() {
      return document.getElementById(this.id)
    },
    getAlternate: function() {
      return document.getElementById(this.id + "_alternate")
    },
    getAncestor: function() {
      var c = this.getFlashElement().parentNode;
      return ! this.sIFR.dom.hasClass(E.FIX_FOCUS, c) ? c: c.parentNode
    },
    available: function() {
      var c = this.getFlashElement();
      return c && c.parentNode
    },
    call: function(c) {
      var d = this.getFlashElement();
      return Function.prototype.apply.call(d[c], d, Array.prototype.slice.call(arguments, 1))
    },
    attempt: function() {
      if (!this.available()) {
        return false
      }
      try {
        this.call.apply(this, arguments)
      } catch(c) {
        if (this.sIFR.debug) {
          throw c
        }
        return false
      }
      return true
    },
    updateVars: function(c, e) {
      for (var d = 0; d < this.vars.length; d++) {
        if (this.vars[d].split("=")[0] == c) {
          this.vars[d] = c + "=" + e;
          break
        }
      }
      var f = this.sIFR.util.encodeVars(this.vars);
      this.movie.injectVars(this.getFlashElement(), f);
      this.movie.injectVars(this.movie.html, f)
    },
    storeSize: function(c, d) {
      this.movie.setSize(c, d);
      this.updateVars(c, d)
    },
    fireEvent: function(c) {
      if (this.available() && this.__events[c]) {
        this.sIFR.util.delay(0, this.__events[c], this, this)
      }
    },
    resizeFlashElement: function(c, d, e) {
      if (!this.available()) {
        return
      }
      this.__resizing++;
      var f = this.getFlashElement();
      f.setAttribute("height", c);
      this.updateVars("renderheight", c);
      this.storeSize("height", c);
      if (d !== null) {
        f.setAttribute("width", d);
        this.movie.setSize("width", d)
      }
      if (this.__events.onReplacement) {
        this.sIFR.util.delay(0, this.__events.onReplacement, this, this);
        delete this.__events.onReplacement
      }
      if (e) {
        this.sIFR.util.delay(0,
        function() {
          this.attempt("scaleMovie");
          this.__resizing--
        },
        this)
      } else {
        this.__resizing--
      }
    },
    blurFlashElement: function() {
      if (this.available()) {
        this.sIFR.dom.blurElement(this.getFlashElement())
      }
    },
    resetMovie: function() {
      this.sIFR.util.delay(0, this.movie.reset, this.movie, this.getFlashElement(), this.getAlternate())
    },
    resizeAfterScale: function() {
      if (this.available() && this.__resizing == 0) {
        this.sIFR.util.delay(0, this.resize, this)
      }
    },
    resize: function() {
      if (!this.available()) {
        return
      }
      this.__resizing++;
      var g = this.getFlashElement();
      var f = g.offsetWidth;
      if (f == 0) {
        return
      }
      var e = g.getAttribute("width");
      var l = g.getAttribute("height");
      var m = this.getAncestor();
      var o = this.sIFR.dom.getHeightFromStyle(m);
      g.style.width = "1px";
      g.style.height = "1px";
      m.style.minHeight = o + "px";
      var c = this.getAlternate().childNodes;
      var n = [];
      for (var k = 0; k < c.length; k++) {
        var h = c[k].cloneNode(true);
        n.push(h);
        m.appendChild(h)
      }
      var d = this.sIFR.dom.getWidthFromStyle(m);
      for (var k = 0; k < n.length; k++) {
        m.removeChild(n[k])
      }
      g.style.width = g.style.height = m.style.minHeight = "";
      g.setAttribute("width", this.__forceWidth ? d: e);
      g.setAttribute("height", l);
      if (sIFR.ua.ie) {
        g.style.display = "none";
        var j = g.offsetHeight;
        g.style.display = ""
      }
      if (d != f) {
        if (this.__forceWidth) {
          this.storeSize("width", d)
        }
        this.attempt("resize", d)
      }
      this.__resizing--
    },
    replaceText: function(g, j) {
      var d = this.sIFR.util.escape(g);
      if (!this.attempt("replaceText", d)) {
        return false
      }
      this.updateVars("content", d);
      var f = this.getAlternate();
      if (j) {
        while (f.firstChild) {
          f.removeChild(f.firstChild)
        }
        for (var c = 0; c < j.length; c++) {
          f.appendChild(j[c])
        }
      } else {
        try {
          f.innerHTML = g
        } catch(h) {}
      }
      return true
    },
    changeCSS: function(c) {
      c = this.sIFR.util.escape(this.sIFR.util.cssToString(this.sIFR.util.convertCssArg(c)));
      this.updateVars("css", c);
      return this.attempt("changeCSS", c)
    }
  };
  var X = new
  function() {
    this.create = function(p, n, j, i, f, e, g, o, l, h, m, tag) {
      var k = p.ua.ie ? d: c;
      return new k(p, n, j, i, f, e, g, o, ["flashvars", l, "wmode", "transparent", "bgcolor", m, "allowScriptAccess", "always", "quality", "best"], tag)
    };
    function c(s, q, l, h, f, e, g, r, n, tag) {
      var m = s.dom.create("object", E.FLASH);
      var p = ["type", "application/x-shockwave-flash", "id", f, "name", f, "data", e, "width", g, "height", r];
      for (var o = 0; o < p.length; o += 2) {
        m.setAttribute(p[o], p[o + 1])
      }
      var j = m;
      if (h) {
        j = W.create("div", E.FIX_FOCUS);
        j.appendChild(m)
      }

      for (var o = 0; o < n.length; o += 2) {
        if (n[o] == "name") {
          continue
        }
        var k = W.create("param");
        k.setAttribute("name", n[o]);
        k.setAttribute("value", n[o + 1]);
        m.appendChild(k)
      }
      while (l.firstChild) {
        l.removeChild(l.firstChild)
      }

      if ( typeof(tag) != "undefined" && tag ) {
        /* if else by pire */
        var a_tag = new Element("a", {
          href: '#'
        });

        a_tag.appendChild(j);
        l.appendChild(a_tag);
      }else{
        l.appendChild(j);
      }

      sIFR.add_tag_after();
      this.html = j.cloneNode(true)
    }
    c.prototype = {
      reset: function(e, f) {
        e.parentNode.replaceChild(this.html.cloneNode(true), e)
      },
      setSize: function(e, f) {
        this.html.setAttribute(e, f)
      },
      injectVars: function(e, g) {
        var h = e.getElementsByTagName("param");
        for (var f = 0; f < h.length; f++) {
          if (h[f].getAttribute("name") == "flashvars") {
            h[f].setAttribute("value", g);
            break
          }
        }
      }
    };
    function d(p, n, j, h, f, e, g, o, k, tag) {
      this.dom = p.dom;
      this.broken = n;
      
      this.html = "";
      if ( typeof(tag) != "undefined" && tag ) {
        this.html = '<a href="#">';
      }

      this.html += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="' + f + '" width="' + g + '" height="' + o + '" class="' + E.FLASH + '"><param name="movie" value="' + e + '"></param></object>';
      var m = "";
      for (var l = 0; l < k.length; l += 2) {
        m += '<param name="' + k[l] + '" value="' + k[l + 1] + '"></param>'
      }
      this.html = this.html.replace(/(<\/object>)/, m + "$1");

      if ( typeof(tag) != "undefined" && tag ) {
        this.html += '</a>';
      }

      j.innerHTML = this.html;
      this.broken.register(j.firstChild)
    }
    d.prototype = {
      reset: function(f, g) {
        g = g.cloneNode(true);
        var e = f.parentNode;
        e.innerHTML = this.html;
        this.broken.register(e.firstChild);
        e.appendChild(g)
      },
      setSize: function(e, f) {
        this.html = this.html.replace(e == "height" ? /(height)="\d+"/: /(width)="\d+"/, '$1="' + f + '"')
      },
      injectVars: function(e, f) {
        if (e != this.html) {
          return
        }
        this.html = this.html.replace(/(flashvars(=|\"\svalue=)\")[^\"]+/, "$1" + f)
      }
    }
  };
  this.errors = new Y(O);
  var A = this.util = new D(O);
  var W = this.dom = new U(O);
  var T = this.ua = new H(O);
  var G = {
    fragmentIdentifier: new F(O),
    pageLoad: new S(O),
    prefetch: new N(O),
    brokenFlashIE: new b(O)
  };
  this.__resetBrokenMovies = G.brokenFlashIE.reset;
  var J = {
    kwargs: [],
    replaceAll: function(d) {
      for (var c = 0; c < this.kwargs.length; c++) {
        O.replace(this.kwargs[c])
      }
      if (!d) {
        this.kwargs = []
      }
    }
  };
  this.activate = function() {
    if (!T.supported || !this.isEnabled || this.isActive || !C() || a()) {
      return
    }
    if (T.requiresPrefetch) {
      G.prefetch.fetchMovies(arguments)
    }
    this.isActive = true;
    this.setFlashClass();
    G.fragmentIdentifier.cache();
    if (!this.autoInitialize) {
      return
    }
    G.pageLoad.attach();
    if (T.ie) {
      window.attachEvent("onunload",
      function() {
        W.addClass(E.UNLOADING, document.documentElement)
      })
    }
  };
  this.setFlashClass = function() {
    if (this.hasFlashClassSet) {
      return
    }
    W.addClass(E.ACTIVE, W.getBody() || document.documentElement);
    this.hasFlashClassSet = true
  };
  this.removeFlashClass = function() {
    if (!this.hasFlashClassSet) {
      return
    }
    W.removeClass(E.ACTIVE, W.getBody());
    W.removeClass(E.ACTIVE, document.documentElement);
    this.hasFlashClassSet = false
  };
  this.initialize = function(c) {
    if (!this.isActive || !this.isEnabled) {
      return
    }
    if (R) {
      if (!c) {
        J.replaceAll(false)
      }
      return
    }
    R = true;
    J.replaceAll(c);
    if (O.repaintOnResize) {
      if (window.addEventListener) {
        window.addEventListener("resize", Z, false)
      } else {
        window.attachEvent("onresize", Z)
      }
    }
    G.prefetch.clear()
  };
  this.replace = function(w, t) {
    if (!T.supported) {
      return
    }
    if (t) {
      w = A.copyProperties(w, t)
    }
    if (!R) {
      return J.kwargs.push(w)
    }
    if (this.onReplacementStart) {
      this.onReplacementStart(w)
    }
    var AL = w.elements || W.querySelectorAll(w.selector);
    if (AL.length == 0) {
      return
    }
    
    var v = M(w.src);
    var AQ = A.convertCssArg(w.css);
    var u = B(w.filters);
    var AM = w.forceSingleLine === true;
    var AR = w.preventWrap === true && !AM;
    var p = AM || (w.fitExactly == null ? this.fitExactly: w.fitExactly) === true;
    var AC = p || (w.forceWidth == null ? this.forceWidth: w.forceWidth) === true;
    var r = w.ratios || [];
    var AD = w.pixelFont === true;
    var q = parseInt(w.tuneHeight) || 0;
    var y = !!w.onRelease || !!w.onRollOver || !!w.onRollOut;
    if (p) {
      A.extractFromCss(AQ, ".sIFR-root", "text-align", true)
    }
    var s = A.extractFromCss(AQ, ".sIFR-root", "font-size", true) || "0";
    var e = A.extractFromCss(AQ, ".sIFR-root", "background-color", true) || "#FFFFFF";
    var n = A.extractFromCss(AQ, ".sIFR-root", "kerning", true) || "";
    var AV = A.extractFromCss(AQ, ".sIFR-root", "opacity", true) || "100";
    var k = A.extractFromCss(AQ, ".sIFR-root", "cursor", true) || "default";
    var AO = parseInt(A.extractFromCss(AQ, ".sIFR-root", "leading")) || 0;
    var AI = w.gridFitType || (A.extractFromCss(AQ, ".sIFR-root", "text-align") == "right") ? "subpixel": "pixel";
    var h = this.forceTextTransform === false ? "none": A.extractFromCss(AQ, ".sIFR-root", "text-transform", true) || "none";
    s = /^\d+(px)?$/.test(s) ? parseInt(s) : 0;
    AV = parseFloat(AV) < 1 ? 100 * parseFloat(AV) : AV;
    var AB = w.modifyCss ? "": A.cssToString(AQ);
    var AF = w.wmode || "";
    if (!AF) {
      if (w.transparent) {
        AF = "transparent"
      } else {
        if (w.opaque) {
          AF = "opaque"
        }
      }
    }
    if (AF == "transparent") {
      if (!T.transparencySupport) {
        AF = "opaque"
      } else {
        e = "transparent"
      }
    }
    for (var AU = 0; AU < AL.length; AU++) {
      var AE = AL[AU];
      if (W.hasOneOfClassses(E.IGNORE_CLASSES, AE) || W.ancestorHasClass(AE, E.ALTERNATE)) {
        continue
      }
      var AN = W.getDimensions(AE);
      var f = AN.height;
      var c = AN.width;
      var z = W.getComputedStyle(AE, "display");
      if (!f || !c || !z || z == "none") {
        continue
      }
      c = W.getWidthFromStyle(AE);
      var m, AG;
      if (!s) {
        var AK = I(AE);
        m = Math.min(this.MAX_FONT_SIZE, Math.max(this.MIN_FONT_SIZE, AK.fontSize));
        if (AD) {
          m = Math.max(8, 8 * Math.round(m / 8))
        }
        AG = AK.lines;
        if (isNaN(AG) || !isFinite(AG) || AG == 0) {
          AG = 1
        }
        if (AG > 1 && AO) {
          f += Math.round((AG - 1) * AO)
        }
      } else {
        m = s;
        AG = 1
      }
      var d = W.create("span", E.ALTERNATE);
      var AW = AE.cloneNode(true);
      AE.parentNode.appendChild(AW);
      for (var AT = 0,
      AS = AW.childNodes.length; AT < AS; AT++) {
        d.appendChild(AW.childNodes[AT].cloneNode(true))
      }
      if (w.modifyContent) {
        w.modifyContent(AW, w.selector)
      }
      if (w.modifyCss) {
        AB = w.modifyCss(AQ, AW, w.selector)
      }
      var o = P(AW, h, w.uriEncode);
      AW.parentNode.removeChild(AW);
      if (w.modifyContentString) {
        o.text = w.modifyContentString(o.text, w.selector)
      }
      if (o.text == "") {
        continue
      }
      f = Math.round(AG * m);
      var AJ = Math.round(AG * V(m, r) * m) + this.FLASH_PADDING_BOTTOM + q;
      var AA = AC ? c: "100%";
      var AH = "sIFR_replacement_" + L++;
      var AP = ["id=" + AH, "content=" + A.escape(o.text), "width=" + c, "height=" + f, "renderheight=" + AJ, "link=" + A.escape(o.primaryLink.href || ""), "target=" + A.escape(o.primaryLink.target || ""), "size=" + m, "css=" + A.escape(AB), "cursor=" + k, "tunewidth=" + (w.tuneWidth || 0), "tuneheight=" + q, "offsetleft=" + (w.offsetLeft || ""), "offsettop=" + (w.offsetTop || ""), "fitexactly=" + p, "preventwrap=" + AR, "forcesingleline=" + AM, "antialiastype=" + (w.antiAliasType || ""), "thickness=" + (w.thickness || ""), "sharpness=" + (w.sharpness || ""), "kerning=" + n, "gridfittype=" + AI, "flashfilters=" + u, "opacity=" + AV, "blendmode=" + (w.blendMode || ""), "selectable=" + (w.selectable == null ? "true": w.selectable === true), "fixhover=" + (this.fixHover === true), "events=" + y, "version=" + this.VERSION];
      var x = A.encodeVars(AP);
      var g = new K(O, AH, AP, AC, {
        onReplacement: w.onReplacement,
        onRollOver: w.onRollOver,
        onRollOut: w.onRollOut,
        onRelease: w.onRelease
      });
      // pire
      var tag_after = typeof(w.tagAfter) == "undefined" && ( w.tagAfter == "p" || w.tagAfter == "a" ) ? false : w.tagAfter;

      g.movie = X.create(sIFR, G.brokenFlashIE, AE, T.fixFocus && w.fixFocus, AH, v, AA, AJ, x, AF, e, tag_after);
      this.replacements.push(g);
      this.replacements[AH] = g;
      if (w.selector) {
        if (!this.replacements[w.selector]) {
          this.replacements[w.selector] = [g]
        } else {
          this.replacements[w.selector].push(g)
        }
      }
      d.setAttribute("id", AH + "_alternate");
      AE.appendChild(d);
      W.addClass(E.REPLACED, AE)
    }
    G.fragmentIdentifier.restore()
  };
  this.add_tag_after = function(tag){
    this.insert_tag_after = tag;
  };
  this.has_tag_after = function(){
    return this.insert_tag_after;
  };
  this.insert_tag_after = false;
  this.getReplacementByFlashElement = function(d) {
    for (var c = 0; c < O.replacements.length; c++) {
      if (O.replacements[c].id == d.getAttribute("id")) {
        return O.replacements[c]
      }
    }
  };
  this.redraw = function() {
    for (var c = 0; c < O.replacements.length; c++) {
      O.replacements[c].resetMovie()
    }
  };
  function C() {
    if (O.domains.length == 0) {
      return true
    }
    var d = A.domain();
    for (var c = 0; c < O.domains.length; c++) {
      if (A.domainMatches(d, O.domains[c])) {
        return true
      }
    }
    return false
  }
  function a() {
    if (document.location.protocol == "file:") {
      if (O.debug) {
        O.errors.fire("isFile")
      }
      return true
    }
    return false
  }
  function M(c) {
    if (T.ie && c.charAt(0) == "/") {
      c = window.location.toString().replace(/([^:]+)(:\/?\/?)([^\/]+).*/, "$1$2$3") + c
    }
    return c
  }
  function V(d, e) {
    for (var c = 0; c < e.length; c += 2) {
      if (d <= e[c]) {
        return e[c + 1]
      }
    }
    return e[e.length - 1] || 1
  }
  function B(g) {
    var e = [];
    for (var d in g) {
      if (g[d] == Object.prototype[d]) {
        continue
      }
      var c = g[d];
      d = [d.replace(/filter/i, "") + "Filter"];
      for (var f in c) {
        if (c[f] == Object.prototype[f]) {
          continue
        }
        d.push(f + ":" + A.escape(A.toJson(c[f], A.toHexString)))
      }
      e.push(d.join(","))
    }
    return A.escape(e.join(";"))
  }
  function Z(d) {
    var e = Z.viewport;
    var c = W.getViewport();
    if (e && c.width == e.width && c.height == e.height) {
      return
    }
    Z.viewport = c;
    if (O.replacements.length == 0) {
      return
    }
    if (Z.timer) {
      clearTimeout(Z.timer)
    }
    Z.timer = setTimeout(function() {
      delete Z.timer;
      for (var f = 0; f < O.replacements.length; f++) {
        O.replacements[f].resize()
      }
    },
    200)
  }
  function I(g) {
    var h, d;
    if (!T.ie) {
      h = W.getStyleAsInt(g, "lineHeight");
      d = Math.floor(W.getStyleAsInt(g, "height") / h)
    } else {
      if (T.ie) {
        var h = W.getComputedStyle(g, "fontSize");
        if (h.indexOf("px") > 0) {
          h = parseInt(h)
        } else {
          var f = g.innerHTML;
          g.style.visibility = "visible";
          g.style.overflow = "visible";
          g.style.position = "static";
          g.style.zoom = "normal";
          g.style.writingMode = "lr-tb";
          g.style.width = g.style.height = "auto";
          g.style.maxWidth = g.style.maxHeight = g.style.styleFloat = "none";
          var i = g;
          var c = g.currentStyle.hasLayout;
          if (c) {
            g.innerHTML = '<div class="' + E.LAYOUT + '">X<br>X<br>X</div>';
            i = g.firstChild
          } else {
            g.innerHTML = "X<br>X<br>X"
          }
          var e = i.getClientRects();
          h = e[1].bottom - e[1].top;
          h = Math.ceil(h * 0.8);
          if (c) {
            g.innerHTML = '<div class="' + E.LAYOUT + '">' + f + "</div>";
            i = g.firstChild
          } else {
            g.innerHTML = f
          }
          e = i.getClientRects();
          d = e.length;
          if (c) {
            g.innerHTML = f
          }
          g.style.visibility = g.style.width = g.style.height = g.style.maxWidth = g.style.maxHeight = g.style.overflow = g.style.styleFloat = g.style.position = g.style.zoom = g.style.writingMode = ""
        }
      }
    }
    return {
      fontSize: h,
      lines: d
    }
  }
  function P(c, g, s) {
    s = s || A.uriEncode;
    var q = [],
    m = [];
    var k = null;
    var e = c.childNodes;
    var o = false,
    p = false;
    var j = 0;
    while (j < e.length) {
      var f = e[j];
      if (f.nodeType == 3) {
        var t = A.textTransform(g, A.normalize(f.nodeValue)).replace(/</g, "&lt;");
        if (o && p) {
          t = t.replace(/^\s+/, "")
        }
        m.push(t);
        o = /\s$/.test(t);
        p = false
      }
      if (f.nodeType == 1 && !/^(style|script)$/i.test(f.nodeName)) {
        var h = [];
        var r = f.nodeName.toLowerCase();
        var n = f.className || "";
        if (/\s+/.test(n)) {
          if (n.indexOf(E.CLASS) > -1) {
            n = n.match("(\\s|^)" + E.CLASS + "-([^\\s$]*)(\\s|$)")[2]
          } else {
            n = n.match(/^([^\s]+)/)[1]
          }
        }
        if (n != "") {
          h.push('class="' + n + '"')
        }
        if (r == "a") {
          var d = s(f.getAttribute("href") || "");
          var l = f.getAttribute("target") || "";
          h.push('href="' + d + '"', 'target="' + l + '"');
          if (!k) {
            k = {
              href: d,
              target: l
            }
          }
        }
        m.push("<" + r + (h.length > 0 ? " ": "") + h.join(" ") + ">");
        p = true;
        if (f.hasChildNodes()) {
          q.push(j);
          j = 0;
          e = f.childNodes;
          continue
        } else {
          if (!/^(br|img)$/i.test(f.nodeName)) {
            m.push("</", f.nodeName.toLowerCase(), ">")
          }
        }
      }
      if (q.length > 0 && !f.nextSibling) {
        do {
          j = q.pop();
          e = f.parentNode.parentNode.childNodes;
          f = e[j];
          if (f) {
            m.push("</", f.nodeName.toLowerCase(), ">")
          }
        } while ( j == e . length - 1 && q . length > 0 )
      }
      j++
    }
    return {
      text: m.join("").replace(/^\s+|\s+$|\s*(<br>)\s*/g, "$1"),
      primaryLink: k || {}
    }
  }
};
var parseSelector = (function() {
  var B = /\s*,\s*/;
  var A = /\s*([\s>+~(),]|^|$)\s*/g;
  var L = /([\s>+~,]|[^(]\+|^)([#.:@])/g;
  var F = /(^|\))[^\s>+~]/g;
  var M = /(\)|^)/;
  var K = /[\s#.:>+~()@]|[^\s#.:>+~()@]+/g;
  function H(R, P) {
    P = P || document.documentElement;
    var S = R.split(B),
    X = [];
    for (var U = 0; U < S.length; U++) {
      var N = [P],
      W = G(S[U]);
      for (var T = 0; T < W.length;) {
        var Q = W[T++],
        O = W[T++],
        V = "";
        if (W[T] == "(") {
          while (W[T++] != ")" && T < W.length) {
            V += W[T]
          }
          V = V.slice(0, -1)
        }
        N = I(N, Q, O, V)
      }
      X = X.concat(N)
    }
    return X
  }
  function G(N) {
    var O = N.replace(A, "$1").replace(L, "$1*$2").replace(F, D);
    return O.match(K) || []
  }
  function D(N) {
    return N.replace(M, "$1 ")
  }
  function I(N, P, Q, O) {
    return (H.selectors[P]) ? H.selectors[P](N, Q, O) : []
  }
  var E = {
    toArray: function(O) {
      var N = [];
      for (var P = 0; P < O.length; P++) {
        N.push(O[P])
      }
      return N
    }
  };
  var C = {
    isTag: function(O, N) {
      return (N == "*") || (N.toLowerCase() == O.nodeName.toLowerCase())
    },
    previousSiblingElement: function(N) {
      do {
        N = N.previousSibling
      } while ( N && N . nodeType != 1 );
      return N
    },
    nextSiblingElement: function(N) {
      do {
        N = N.nextSibling
      } while ( N && N . nodeType != 1 );
      return N
    },
    hasClass: function(N, O) {
      return (O.className || "").match("(^|\\s)" + N + "(\\s|$)")
    },
    getByTag: function(N, O) {
      return O.getElementsByTagName(N)
    }
  };
  var J = {
    "#": function(N, P) {
      for (var O = 0; O < N.length; O++) {
        if (N[O].getAttribute("id") == P) {
          return [N[O]]
        }
      }
      return []
    },
    " ": function(O, Q) {
      var N = [];
      for (var P = 0; P < O.length; P++) {
        N = N.concat(E.toArray(C.getByTag(Q, O[P])))
      }
      return N
    },
    ">": function(O, R) {
      var N = [];
      for (var Q = 0,
      S; Q < O.length; Q++) {
        S = O[Q];
        for (var P = 0,
        T; P < S.childNodes.length; P++) {
          T = S.childNodes[P];
          if (T.nodeType == 1 && C.isTag(T, R)) {
            N.push(T)
          }
        }
      }
      return N
    },
    ".": function(O, Q) {
      var N = [];
      for (var P = 0,
      R; P < O.length; P++) {
        R = O[P];
        if (C.hasClass([Q], R)) {
          N.push(R)
        }
      }
      return N
    },
    ":": function(N, P, O) {
      return (H.pseudoClasses[P]) ? H.pseudoClasses[P](N, O) : []
    }
  };
  H.selectors = J;
  H.pseudoClasses = {};
  H.util = E;
  H.dom = C;
  return H
})();
sizeOnOnload = false;
/* EXTRA */
var head = document.getElementsByTagName("head")[0].childNodes;
var sifr_url = '/++resource++base/js/sifr/';

for (var i = 0; i < head.length; i++) {
  if (head[i].src && head[i].src.indexOf("sifr.js") > -1) sifr_url = head[i].src.replace(/sifr.js/gi, "").replace("http://" + document.domain, "").replace("https://" + document.domain, "").replace(":8080", "");
}

var glypha = {
  src: sifr_url + 'glypha.swf',
  ratios: [6, 1.41, 9, 1.35, 15, 1.29, 21, 1.25, 22, 1.22, 27, 1.24, 29, 1.21, 34, 1.22, 41, 1.21, 45, 1.2, 46, 1.21, 59, 1.2, 68, 1.19, 69, 1.2, 96, 1.19, 97, 1.18, 102, 1.19, 103, 1.18, 107, 1.19, 108, 1.18, 112, 1.19, 114, 1.18, 116, 1.19, 120, 1.18, 121, 1.19, 1.18]
};

sIFR.activate(glypha);

var robmccormack_makes_a_namespace = {};
robmccormack_makes_a_namespace.addStyle = function(name, media) {

  if (typeof(media) == "undefined") {
    media = "screen";
  }

  var temp = '<link type="text/css" rel="stylesheet" media="' + media + '" href="' + name + '" />';

  var _head = $$('head').first().insert({
    'bottom': temp
  });
  /*
	var newStyle    = document.createElement('link');
	newStyle.type   = 'text/css';
	newStyle.href   = name;
	newStyle.rel    = "stylesheet";
	newStyle.media  = media;
	document.getElementsByTagName("head")[0].appendChild(newStyle);
	newStyle = null;
	*/
};

//robmccormack_makes_a_namespace.addStyle(sifr_url + "sIFR-screen.css");
robmccormack_makes_a_namespace.addStyle(sifr_url + "sIFR-print.css", "print");