/*
 * Flash用 EMBEDとOBJECTタグを書き出す関数
 *
 * Create: 2004-6-10
 *
 * http://allabout.co.jp/computer/javascript/closeup/CU20031226/
 * 上記を元に改造しました。
 *
 * 次のように呼び出します。
 * <script type="text/javascript">
 * <!--
 * insertFlash("swf=images/superflashxxx.swf", "width=300", "height=200");
 * //-->
 * </script>
 *
 * swfはこのJavaScriptでのみ通用する値名です。
 * その他の引数の値は、Flashで約束されている以下の値を受け取ることができます。
 *   quality loop bgcolor wmode play menu scale salign height width
 *   hspace vspace align class id name style declare
 *
 * swfは必須です。width と height も、最低限指定すべきかと思います。
 * qualityとwmodeは、指定が無い場合はデフォルト値が与えられます。それぞれ、
 *   quality=hige, wmode=transparent
 * です。
 *
 * これによってW3CやHTML Lint のHTML妥当性検証をクリアすることができます。
 * また、この関数は既知のほとんど全てのブラウザで動作します。
 *
 * XHTML仕様ではembedタグは非推奨であることを忘れないでください。
 * （このスクリプトはobjectタグとembedタグの両方を書き出します。）
 *
 * 誰でも勝手に使ってください。Not_all_rights_reserved.
 *
 */
 
// embedタグを書き出すか。XHTMLでは非推奨。だがObjectタグ未サポートブラウザもまだまだある。
var write_embed_tag = true;

function insertFlash()
{
  var parm = [];
  for( var i = 0 ; i < arguments.length ; i++ ) {
    parm[i] = arguments[i].split(' ').join('').split('=');
    switch (parm[i][0])
    {
      case 'swf'     : var _swf     = parm[i][1] ; break ; // フラッシュのURL
      case 'quality' : var _quality = parm[i][1] ; break ; // 画質
      case 'loop'    : var _loop    = parm[i][1] ; break ; // 繰り返し
      case 'bgcolor' : var _bgcolor = parm[i][1] ; break ; // 背景色
      case 'wmode'   : var _wmode   = parm[i][1] ; break ; // 背景透明(WinIEのみ)
      case 'play'    : var _play    = parm[i][1] ; break ; // 自動再生
      case 'menu'    : var _menu    = parm[i][1] ; break ; // 右クリックメニュー
      case 'scale'   : var _scale   = parm[i][1] ; break ; // 幅高さが%の時の縦横比等
      case 'salign'  : var _salign  = parm[i][1] ; break ; // 表示領域内表示位置
      case 'height'  : var _height  = parm[i][1] ; break ; // ムービーの高さ
      case 'width'   : var _width   = parm[i][1] ; break ; // ムービーの幅
      case 'hspace'  : var _hspace  = parm[i][1] ; break ; // まわりの余白(水平方向)
      case 'vspace'  : var _vspace  = parm[i][1] ; break ; // まわりの余白(垂直方向)
      case 'align'   : var _align   = parm[i][1] ; break ; // 表示位置
      case 'class'   : var _class   = parm[i][1] ; break ; // クラス
      case 'id'      : var _id      = parm[i][1] ; break ; // ID名
      case 'name'    : var _name    = parm[i][1] ; break ; // ムービー名
      case 'style'   : var _style   = parm[i][1] ; break ; // スタイル
      case 'declare' : var _declare = parm[i][1] ; break ; // 読み込まれるだけで実行しない
      default        :;
    }
  }
  if(_swf == "") {alert("Javascript#insertFlash()::Flashのソースをswfという名前で指定してください。"); return false;}
  if(_quality == "") var _quality = "high";
  if(_wmode == "")   var _wmode = "transparent";
  if(_bgcolor == "") var _bgcolor = "#ffffff";

  var htm = "";
  
  htm += "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab'";
  if(_width != "")   htm+=" width='"  + _width   + "'";
  if(_height != "")  htm+=" height='" + _height  + "'";
  if(_hspace != "")  htm+=" hspace='" + _hspace  + "'";
  if(_vspace != "")  htm+=" vspace='" + _vspace  + "'";
  if(_align != "")   htm+=" align='"  + _align   + "'";
  if(_class != "")   htm+=" class='"  + _class   + "'";
  if(_id != "")      htm+=" id='"     + _id      + "'";
  if(_name != "")    htm+=" name='"   + _name    + "'";
  if(_style != "")   htm+=" style='"  + _style   + "'";
  if(_declare != "") htm+=" "         + _declare;
  htm+=">";
  htm+="<param name='movie'   value ='" + _swf     + "'>";
  htm+="<param name='quality' value ='" + _quality + "'>";
  htm+="<param name='wmode'   value ='" + _wmode   + "'>";
  if(_loop != "")    htm+="<param name='loop'    value ='" + _loop    + "'>";
  if(_bgcolor != "") htm+="<param name='bgcolor' value ='" + _bgcolor + "'>";
  if(_play != "")    htm+="<param name='play'    value ='" + _play    + "'>";
  if(_menu != "")    htm+="<param name='menu'    value ='" + _menu    + "'>";
  if(_scale != "")   htm+="<param name='scale'   value ='" + _scale   + "'>";
  if(_salign != "")  htm+="<param name='salign'  value ='" + _salign  + "'>";

  if (write_embed_tag) {
    htm+="<embed pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash'";
    htm+=" src='"    + _swf     + "'";
    htm+=" quality='"+ _quality + "'";
    htm+=" wmode='"  + _wmode + "'";
    if(_width != "")   htm+=" width='"  + _width   + "'";
    if(_height != "")  htm+=" height='" + _height  + "'";
    if(_hspace != "")  htm+=" hspace='" + _hspace  + "'";
    if(_vspace != "")  htm+=" vspace='" + _vspace  + "'";
    if(_align != "")   htm+=" align='"  + _align   + "'";
    if(_class != "")   htm+=" class='"  + _class   + "'";
    if(_id != "")      htm+=" id='"     + _id      + "'";
    if(_name != "")    htm+=" name='"   + _name    + "'";
    if(_style != "")   htm+=" style='"  + _style   + "'";
    if(_declare != "") htm+=" " + _declare;
    if(_loop != "")    htm+=" loop='"   + _loop    + "'";
    if(_bgcolor != "") htm+=" bgcolor='"+ _bgcolor + "'";
    if(_play != "")    htm+=" play='"   + _play    + "'";
    if(_menu != "")    htm+=" menu='"   + _menu    + "'";
    if(_scale != "")   htm+=" scale='"  + _scale   + "'";
    if(_salign != "")  htm+=" salign='" + _salign  + "'";
    htm+="></embed>";
  }
  htm+="</object>";

  document.write(htm);

}
