<!--
  //speedとincrement属性を書いていない場合のデフォルト属性
var SPEED       = 100;
var INCRIMENTS  =  20;

var INITPLAY    = 0 ;
var REPLAY      = 1;
var MODE        = INITPLAY;

var posTopINIT  =    0;
var posLeftINIT = -650;

var slideShow = new Object();

  /**
    シーケンスの初期化処理を行う関数
    */
function initSequence( seq ){
  var seqCurrent = seq.sequences[ seq.currentSequence ];

  if( seqCurrent != null ){
      //シーケンスに対する要素のIDのリストを取得する.
    seq.sequencer = new Array();
    seq.sequencer 
      = seqCurrent.getAttribute( "orderList" ).split( ", " );
      //シーケンスを初期化する.
    if( MODE == INITPLAY ){
      document.all.ContinueButton1.style.display = "none";
      document.all.ContinueButton2.style.display = "";

      for( var intLoop = 0;
               intLoop < seq.sequencer.length; intLoop++ ){
        if( null != document.all[ seq.sequencer[intLoop] ] ){
          var seqElem = document.all[ seq.sequencer[intLoop] ];

          seqElem.initTop  = seqElem.style.posTop;
          seqElem.initLeft = seqElem.style.posLeft;
        } 
      }
    }
    else if( MODE == REPLAY ){
      for( var intLoop = 0;
               intLoop < seq.sequencer.length; intLoop++ ){
        if( null != document.all[ seq.sequencer[intLoop] ] ){
          var seqElem = document.all[ seq.sequencer[intLoop] ];

          seqElem.initTop  = posTopINIT;
          seqElem.initLeft = posLeftINIT;
        }
      }
    }

    seq.speed = 
        ( null == seqCurrent.getAttribute( "speed" ) ) ?
                  SPEED : seqCurrent.getAttribute( "speed" );
    seq.type = 
        ( "auto" == seqCurrent.getAttribute( "type" ) );
    seq.increments =
        ( null == seqCurrent.getAttribute( "increments" ) ) ?
                  INCRIMENTS : seqCurrent.getAttribute( "increments" );
    seq.inc      =  0;
    seq.position = -1;
  }
  else {
    seq.position = null;

    if( document.onclick == doFlyingMessage ){
      document.onclick = new Function();
    }
  }
}

  /** 
    シーケンス初期化後のシーケンスを
    次々と実行する 
    */
function nextSequence( seq ){
    // シーケンスが存在する場合は、それを実行する.
  if( null != seq.position ){
      // s.positionは、シーケンス内のある要素に相当する.
      // 要素が存在しなくなるまで実行し、
      // 次のシーケンスを探す.
    seq.position++

    if( seq.position < seq.sequencer.length ){
      seq.inc = 0;

      if( MODE == INITPLAY ){
        if( seq.type ){
            //タイマーに基づいて実行する
          window.setTimeout( "doFlyingMessage();", seq.speed );
        }
        else{
          // クリック イベントに基づいて実行する
          document.onclick = doFlyingMessage;
        }
      }
    else if( MODE == REPLAY ){
      window.setTimeout( "doFlyingMessage();", seq.speed );
    } 
  }
  else{
    seq.currentSequence++;
    initSequence( seq );
    nextSequence( seq );
  }
}
  else  {
    seq.position = null;
    if( document.onclick == doFlyingMessage ){
      document.onclick = null;
    }
  }
}

  /** シーケンスにしたがって、メッセージを
      スライドさせる関数 
    */
function slideSequence() {
    // シーケンサーを初期化する. 
    //すべての<sequence>タグを取得する.
  slideShow.sequences = document.all.tags( "sequence" );
  slideShow.sequencer = new Array();

  if( 0 < slideShow.sequences.length ){
    slideShow.currentSequence = 0;
    initSequence( slideShow ); // 初期化する.
    nextSequence( slideShow ); // 最初のシーケンスを起動する.
  }
}

  /** シーケンスにしたがって、メッセージを
      スライドさせる関数 
    */
  function doFlyingMessage() {
  var dataTop, dataLeft;
  var seqElem =
       document.all[ slideShow.sequencer[slideShow.position] ];

  document.onclick = null;  // 終了するまで
                            // クリック イベントを停止する.
    // 要素の位置を再設定する.
  slideShow.inc++;
  dataTop  = seqElem.initTop  / slideShow.increments;
  dataLeft = seqElem.initLeft / slideShow.increments;

  if( MODE == INITPLAY ){
    seqElem.style.posTop  = seqElem.style.posTop  - dataTop;
    seqElem.style.posLeft = seqElem.style.posLeft - dataLeft;
  }
  else if( MODE == REPLAY ){
    seqElem.style.posTop  = seqElem.style.posTop  + dataTop;
    seqElem.style.posLeft = seqElem.style.posLeft + dataLeft;
  }

  if( slideShow.inc < slideShow.increments ){
    window.setTimeout( "doFlyingMessage();", slideShow.speed );
  }
  else {
    if( MODE == INITPLAY ){
      seqElem.style.top  = 0;
      seqElem.style.left = 0;
    }
    else if( MODE == REPLAY ){
      seqElem.style.top  = posTopINIT;
      seqElem.style.left = posLeftINIT;
    }
    nextSequence( slideShow );
  }
}

  /** 再試行関数
      [タイトル表示効果を試す]ボタンクリック時動作
    */
function replaySequense(){
  if( MODE == INITPLAY ){
    MODE = REPLAY;
    document.all.reversButton.style.display = "none";
    document.all.replayButton.style.display = "";
  }
  else if( MODE == REPLAY ){
    MODE = INITPLAY;
    document.all.reversButton.style.display = "";
    document.all.replayButton.style.display = "none"; 
  }

  slideSequence();
}

  /** 継続ボタンクリック関数 
      [あと2つありますよ.クリックしてくださいね]
      ボタンクリック時動作
    */
var ONLY1CONTINUE = 1;
var ONLY2CONTINUE = 2;
var continueMode = ONLY2CONTINUE;
function continueButtonClicked(){
  if( continueMode == ONLY1CONTINUE ){
    continueMode = ONLY2CONTINUE;
    document.all.ContinueButton1.style.display = "none";
    document.all.ContinueButton2.style.display = "none";
  }
  else if( continueMode == ONLY2CONTINUE ){
    continueMode = ONLY1CONTINUE;
    MODE = INITPLAY;
    document.all.ContinueButton1.style.display = "";
    document.all.ContinueButton2.style.display = "none";  
  }
}
            //-->

