/**
 * メモ：
 * メッセージウィンドウの位置指定(ノーマル，左，右，とかの指定フラグも必要)
 */

var $ = function(id) {
  return document.getElementById(id);
}

var text_speed = 30;
var term = -1;
var suffer = false;
var bgm = null;
var voice = null;
var effect = null;
var message = [];
var message_cnt = 0;
var messageObserver = null;
var BROWSER = null;
var scenes = [
  {
    char1:	'/images/adv/char/Ashe.png',
    char2:	'/images/adv/char/Penelo.png',
    name:	'Ashe',
    message:	'やほーい',
    bgm:	'fly_high.mp3'
  },
  {
    name:	'Penelo',
    message:	'や　ら　な　い　か'
  },
  {
    name:	'Ashe',
    message:	'わたしはおんなです'
  },
  {
    name:	'Penelo',
    message:	'ヤ　ラ　ナ　イ　カ'
  },
  {
    name:	'Ashe',
    message:	'（； ＾ω＾）　・・・・'
  },
  {
    message:	'そういえば、今日って日曜日だよね',
  },
  {
    name:	'Penelo',
    message:	'そうだったっけ'
  },
  {
    name:	'Ashe',
    message:	'ぴきーん！',
    bgm:	'meikyoshisui.mp3'
  },
  {
    name:	'Penelo',
    message:	'たーげっとろくおん・・・',
    voice:	'target_lock_on.mp3'
  },
  {
    message:	'。・゜・(/Д`)・゜・。@(｀・ω・´)@⊂二二二（ ＾ω＾）二⊃ @ぬっこぬこ'
  },
  {
    name:	'-',
    message:	'おしまい',
    bgm:	'trust_you_forever.mp3'
  }
];

// ブラウザ名取得
function getBrowser() {
  var Browsers = ['Opera', 'MSIE', 'Firefox', 'Safari', 'Netscape'];
  for (var name in Browsers)
    if (navigator.userAgent.indexOf(Browsers[name]) != -1)
      BROWSER = Browsers[name];
}

// 文字速度変更
function setTextSpeed(speed) {
  text_speed = speed;
  
  $('text_speed').innerHTML = speed == 10 ? '早い' : speed == 30 ? '普通' : '遅い';
}

// キーボードのイベント
function keyEvent(event) {
  if (!event)
    event = window.event;
  switch(event.keyCode) {
    case 37:
      // left
      break;
    case 38:
      // up
      break;
    case 39:
      // right
      break;
    case 40:
      // down
      break;
    case 13: case 108:
      // enter
      if (suffer == false)
        rendelingScene();
      break;
    default:
      break;
   }
}

// シーン展開
function rendelingScene() {
  if (scenes[++term] == null) {
    alert('the end.');
    return;
  }
  
  if (scenes[term].bgm != null) {
    playmp3.stopNo(bgm);
    bgm = term;
    playmp3.playNo(bgm);
  }
  
  if (scenes[term].effect != null) {
    playmp3.stopNo(effect);
    effect = term+500;
    playmp3.playNo(effect);
  }
  
  if (scenes[term].name != null) {
    $('name').innerHTML = scenes[term].name;
  }
  
  if (scenes[term].char1 != null) {
    $('char1').src = scenes[term].char1;
  }
  
  if (scenes[term].char2 != null) {
    $('char2').src = scenes[term].char2;
  }
  
  if (scenes[term].voice != null) {
    playmp3.stopNo(voice);
    voice = term+1000;
    playmp3.playNo(voice);
  }
  
  if (scenes[term].message != null) {
    $('message').innerHTML = '';
    message = scenes[term].message.split('');
    message_cnt = 0;
    suffer  = true;
    messageObserver = setInterval((function() {
      $('message').innerHTML += message[message_cnt].replace('@', '<br>');
      if (++message_cnt >= message.length) {
        clearInterval(messageObserver);
        messageObserver = null;
        
        suffer = false;
      }
    }), text_speed);
  }
}

// 実行部分
window.onload = function() {
  playmp3.setup();
  
  // シナリオ音声読込
  setTimeout(function(){
    for (var c=0;c<scenes.length;c++) {
      if (scenes[c].voice != null) {
        playmp3.loadNo('/sound/voice/'+scenes[c].voice, c+1000);
      }
      if (scenes[c].bgm != null) {
        playmp3.loadNo('/sound/bgm/'+scenes[c].bgm, c);
        playmp3.setVolumeNo(c, 80);
      }
      if (scenes[c].effect != null) {
        playmp3.loadNo('/sound/effect/'+scenes[c].effect, c + 500);
      }
    }
  }, 10);
  
  if (window.addEventListener)
    window.addEventListener('keydown', keyEvent, false);
  else
    document.body.attachEvent('onkeydown', keyEvent);
  
  $('npanel').oncontextmenu = function () {
    $('npanel').style.display = 'none';
    $('cpanel').style.display = 'block';
    
    return false;
  }
  
  $('cpanel').oncontextmenu = function () {
    $('npanel').style.display = 'block';
    $('cpanel').style.display = 'none';
    
    return false;
  }
  
  $('back_main').onclick = function () {
    $('npanel').style.display = 'block';
    $('cpanel').style.display = 'none';
    
    return false;
  }
  
  // ウザいやつ
  var cnt = 0;
  var checker = true;
  setInterval((function(){
    if ($('char3')) {
      if (parseInt($('char3').style.right) < -100 && checker == false) { 
        cnt = cnt + 10;
        checker = true;
      }
      else if (parseInt($('char3').style.right) > 1200 && checker == true) { 
        cnt = cnt - 10;
        checker = false;
      }
      else {
        cnt = checker == true ? cnt + 10 : cnt + -10;
      }
      $('char3').style.right = cnt + 'px';
    }
  }), 5);
}

