if (typeof OriconSnippetManager == 'undefined') {
  var OriconSnippetManager = {
    count : 0,
    snippetBaseId : 'oriconSnippet',
    wrapperBaseId : 'oriconWrapperSnippet',
    scriptClassName : 'oriconSnippetScript',
    interval : 300,
    timer : undefined,
    initialized : false,
    snippets : [],
    setup : function() {
      var elems = OriconSnippetManager.getOriconScripts();
      for(var i = 0; i < elems.length; i++) {
        OriconSnippetManager.snippets[i] = new OriconSnippet();
        if(!OriconSnippetManager.snippets[i].initialize(i,elems[i])) return;
      }
      OriconSnippetManager.initialized = true;
    },
    load : function() {
      for(var i = 0; i < OriconSnippetManager.snippets.length; i++)
        OriconSnippetManager.snippets[i].load();
    },
    appendSnippet : function() {
      document.write(
        '<div class="' + OriconSnippetManager.wrapperBaseId + '" id="' 
        + OriconSnippetManager.wrapperBaseId + OriconSnippetManager.count + '"></div>'
      );
      if(OriconSnippetManager.timer) clearTimeout(OriconSnippetManager.timer);
      OriconSnippetManager.timer = setTimeout(
        OriconSnippetManager.prepare,
        OriconSnippetManager.interval
      );
      OriconSnippetManager.count++;
      OriconSnippetManager.initialized = false;
    },
    getValueFromQuery : function(key,query) {
      var params = query.split('&');
      for(var i = 0; i < params.length; i++) {
        var p = params[i].split('=');
        if (p[0] == key) return p[1];
      }
      return '';
    },
    getOriconScripts : function() {
      var elems = document.getElementsByTagName('script');
      var ret = [];
      for(var i = 0; i < elems.length; i++) {
        if(elems[i].className.match(OriconSnippetManager.scriptClassName))
          ret.push(elems[i]);
      }
      return ret;
    },
    prepare : function() {
      if(typeof OriconSnippetManager.timer) clearTimeout(OriconSnippetManager.timer);
      if(!OriconSnippetManager.initialized) {
        OriconSnippetManager.setup();
        OriconSnippetManager.timer = setTimeout(
          OriconSnippetManager.prepare,
          OriconSnippetManager.interval
        );
      } else {
        OriconSnippetManager.load();
      }
    },
    escapeTag : function(arg) {
      return ((typeof arg).toLowerCase() == 'string') ? arg.replace(/\\/g,'\\\\').replace(/"/g,'\\"') : '';
    }
  }

  function OriconSnippet(){}
  OriconSnippet.prototype = {
    width : '145',
    height : '250',
    swf_base : '/blog/tagform/swf/',
    swf_name : 'main.swf',
    path : undefined,
    amazon : undefined,
    color : undefined,
    host : undefined,
    id : undefined,
    wrapperId : undefined,
    initialize : function (count,elem) {
      try {
        var src = elem.src;
        var query = src.split('?')[1];
        this.host = src.match(/http[s]?:\/\/[^\/]*/)[0];
        this.amazon = OriconSnippetManager.getValueFromQuery('amazon',query);
        this.color = OriconSnippetManager.getValueFromQuery('color',query); 
        this.id = OriconSnippetManager.snippetBaseId + count;
        this.wrapperId = OriconSnippetManager.wrapperBaseId + count;
      } catch (ex) {
        return false;
      }
      return true;
    },
    getTag : function() {
      return [
      '<table width="145" border="0" cellspacing="0" cellpadding="0">',
        '<tr><td height="250" colspan="3"><object id="' + this.id + 'Object" ',
        'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ',
        'name="' + this.id + 'Object" width="' + this.width +'" height="' + this.height + '" ',
        'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" ',
        '<param name="allowScriptAccess" value="always" />',
        '<param name="movie" value="' + this.host + this.swf_base + this.swf_name + '" />',
        '<param name="play" value="true"/><param name="loop" value="false"/>',
        '<param name="menu" value="false"/><param name="quality" value="high"/>',
        '<param name="wmode" value="transparent"/>',
        '<param name="FlashVars" value="color=' + OriconSnippetManager.escapeTag(this.color),
        '&amazon=' + OriconSnippetManager.escapeTag(this.amazon) + '"/>',
        '<embed id="' + this.id + 'Embed" name="' + this.id + 'Embed" ',
        'src="' + this.host + this.swf_base + this.swf_name + '" loop="false" menu="false" quality="high" ',
        'swLiveConnect="true" width="' + this.width + '" height="' + this.height + '" ',
        'FlashVars="color=' + OriconSnippetManager.escapeTag(this.color),
        '&amazon=' + OriconSnippetManager.escapeTag(this.amazon) + '" ',
        'allowScriptAccess="always" type="application/x-shockwave-flash" wmode="transparent" ',
        'pluginspage="http://www.macromedia.com/go/getflashplayer"/>',
        '</object></td></tr>',
        '<tr><td width="7" height="34"><object ',
        'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ',
        'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" ',
        'width="7" height="34" title="left">',
        '<param name="movie" value="' + this.host + this.swf_base + 'main_left.swf" />',
        '<param name="quality" value="high" /><param name="wmode" value="transparent" />',
        '<param name="FlashVars" value="color=' + OriconSnippetManager.escapeTag(this.color) +'" />',
        '<embed quality="high" wmode="transparent" ',
        'FlashVars="color=' + OriconSnippetManager.escapeTag(this.color) + '" ',
        'src="' + this.host + this.swf_base + 'main_left.swf" ',
        'type="application/x-shockwave-flash" width="7" height="34" ',
        'pluginspage="http://www.macromedia.com/go/getflashplayer"/>',
        '</object></td>',
        '<td width="131" height="34"><object ',
        'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ',
        'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" ',
        'width="131" height="34" title="search">',
        '<param name="movie" value="' + this.host + this.swf_base + 'main_search.swf" />',
        '<param name="quality" value="high" />',
        '<param name="FlashVars" value="color=' + OriconSnippetManager.escapeTag(this.color) +'" />',
        '<embed quality="high" ',
        'FlashVars="color=' + OriconSnippetManager.escapeTag(this.color) + '" ',
        'src="' + this.host + this.swf_base + 'main_search.swf" ',
        'type="application/x-shockwave-flash" width="131" height="34" ',
        'pluginspage="http://www.macromedia.com/go/getflashplayer"/>',
        '</object></td>',
        '<td width="7" height="34"><object ',
        'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ',
        'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" ',
        'width="7" height="34" title="right">',
        '<param name="movie" value="' + this.host + this.swf_base + 'main_right.swf" />',
        '<param name="quality" value="high" /><param name="wmode" value="transparent" />',
        '<param name="FlashVars" value="color=' + OriconSnippetManager.escapeTag(this.color) +'" />',
        '<embed quality="high" wmode="transparent" ',
        'FlashVars="color=' + OriconSnippetManager.escapeTag(this.color) + '" ',
        'src="' + this.host + this.swf_base + 'main_right.swf" ',
        'type="application/x-shockwave-flash" width="7" height="34" ',
        'pluginspage="http://www.macromedia.com/go/getflashplayer"/>',
        '</object></td></tr>',
        '<tr><td height="16" colspan="3"><object ',
        'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ',
        'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" ',
        'width="145" height="16" title="bottom">',
        '<param name="movie" value="' + this.host + this.swf_base + 'main_bottom.swf" />',
        '<param name="quality" value="high" /><param name="wmode" value="transparent" />',
        '<param name="FlashVars" value="color=' + OriconSnippetManager.escapeTag(this.color) +'" />',
        '<embed quality="high" wmode="transparent" ',
        'FlashVars="color=' + OriconSnippetManager.escapeTag(this.color) + '" ',
        'src="' + this.host + this.swf_base + 'main_bottom.swf" ',
        'type="application/x-shockwave-flash" width="145" height="16" ',
        'pluginspage="http://www.macromedia.com/go/getflashplayer"/>',
        '</object></td></tr></table>'
      ].join('');
    },
    load : function () {
      var tags = this.getTag();
      document.getElementById(this.wrapperId).innerHTML = tags;
    }
  }
}
OriconSnippetManager.appendSnippet();
