window.onload = function() {
  var banner = document.getElementById('flashBanner');
  if (banner) {
    var val = banner.className.split('|');
    banner.style.height = val[1] +'px';
    neoFlash.replaceById(banner, {filename:'flash/'+ val[0], width:932, height:val[1]});
  }
}

if (window.ActiveXObject) {
  window.ie = window[window.XMLHttpRequest ? 'ie7' : 'ie6'] = true;
} else if (!navigator.taintEnabled) {
  window.webkit = window[window.xpath ? 'webkit420' : 'webkit419'] = true;
} else if (document.getBoxObjectFor != null) {
  window.gecko = true;
}

var neoFlash = {
  replaceById: function(node, values) {
    if (!this.setFlash(values)) { return false; }
    if (typeof(node) === 'string') { if (!(node = document.getElementById(node))) { return false; } }
    this.flashReplace(node);
    return true;
  },

  replaceByTag: function(tag, values, parent) {
    if (!this.setFlash(values)) { return 0; }
    if (!parent) { parent = document; }
    var nodes = parent.getElementsByTagName(tag);

    for (var i = 0, len = nodes.length; i < len; i++) {
      var node = nodes[i];
      if (node.firstChild.nodeType == 1) { continue; }
      this.flash.flashvars = 'content='+ node.innerHTML;
      this.flashReplace(node);
    }
    return len;
  },

  createParameter: function(parent, name, value) {
    var node = document.createElement('param');
    node.setAttribute('name', name);
    node.setAttribute('value', value);
    parent.appendChild(node);
  },

  flashReplace: function(node) {
    if (window.gecko) {
      var ele = document.createElement('embed');
      ele.setAttribute('src', this.flash.filename);
      ele.setAttribute('quality', this.flash.quality);
      ele.setAttribute('wmode', this.flash.wmode);
      if (this.flash.bgcolor) { ele.setAttribute('bgcolor', this.flash.bgcolor); }
      if (this.flash.flashvars) { ele.setAttribute('flashvars', this.flash.flashvars); }
    } else {
      if (window.ie) {
        try {
          ele = document.createElement('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">');
        } catch(err) {
          ele = document.createElement('object');
          ele.setAttribute('data', this.flash.filename);
        }
        this.createParameter(ele, 'movie', this.flash.filename);
      } else {
        ele = document.createElement('object');
        ele.setAttribute('data', this.flash.filename);
      }
      this.createParameter(ele, 'quality', this.flash.quality);
      this.createParameter(ele, 'wmode', this.flash.wmode);
      if (this.flash.bgcolor) { this.createParameter(ele, 'bgcolor', this.flash.bgcolor); }
      if (this.flash.flashvars) { this.createParameter(ele, 'flashvars', this.flash.flashvars); }
    }
    if (this.flash.width) { ele.setAttribute('width', this.flash.width); }
    if (this.flash.height) { ele.setAttribute('height', this.flash.height); }
    if (node.firstChild) {
      node.replaceChild(ele, node.firstChild);
    } else {
      node.appendChild(ele);
    }
  },

  setFlash: function(values) {
    if (values === null && this.flash) { return true; }
    if (!values.filename) { return false; }
    this.flash = {
      filename:  values.filename +'.swf',
      quality:   values.quality   || 'best',
      wmode:     values.wmode     || 'transparent',
      bgcolor:   values.bgcolor   || "",
      flashvars: values.flashvars || "",
      width:     values.width     || "",
      height:    values.height    || ""
    };
    return true;
  }
};
