/*
   -------------------------------------------------------------------------------
   Sinano BGM Player Ver 1.1  LPE (Light Public Edition)
        Scripted by Sinano ¨Ï Copyright 2001 Sinano All Rights Reserved
        http://white-noise.net/   (master@sinano.pe.ly)
        2001. 7. 5
   -------------------------------------------------------------------------------
   Á¦ÀÛÀÚ Á¤º¸´Â ¼öÁ¤ÇÏÁö ¸»¾ÆÁÖ½Ã±â ¹Ù¶ó¸ç, ´Ù¸¥ °÷¿¡¼­ÀÇ Àç¹èÆ÷´Â ±ÝÁöÇÕ´Ï´Ù.
   -------------------------------------------------------------------------------
   ÀÌ ½ºÅ©¸³Æ®´Â Á¦ È¨ÆäÀÌÁö¿¡¼­ »ç¿ëÇÏ±â À§ÇØ ¸¸µç BGM PlayerÀÇ ¹èÆ÷¿ë ¹öÀüÀÔ´Ï´Ù.
   ÀÌ ¹öÀüÀº °î ½ºÅ©·Ñ±â´É, º¼·ýÄÁÆ®·Ñ ±â´É µî ¸î°¡Áö ±â´ÉÀ» »èÁ¦ÇÑ ¶óÀÌÆ® ¹öÀüÀÔ´Ï´Ù.
   
   ÁÖ¼®°°Àº°Ç ¾È ºÙ¿´½À´Ï´Ù.
   ¾öÃ»³ª°Ô Å« ÇÁ·Î±×·¥µµ ¾Æ´Ï°í 100¶óÀÎ Á¤µµÀÇ °£´ÜÇÑ ½ºÅ©¸³Æ®¶ó¼­ ±»ÀÌ ÇÊ¿ä°¡ ¾ø´õ±º¿ä.
   -------------------------------------------------------------------------------
*/

canvas=new Array();
canvas_counter=0;

function list() {
  for (heroin=0; heroin<list.arguments.length; heroin++) {
  canvas[canvas_counter] = list.arguments[heroin]; canvas_counter++;
  }
}

function ini() {
  kanzaki=setInterval("display()", 200);
  total=eval(canvas.length)/3;
  if (startat==0 || startat>total) track=Math.ceil(Math.random()*total);
  else {track=startat;}
  mode(); setting();
}

function setting() {
  track_data();
  Ayame.open(file);
  if (!playstatus) Ayame.stop();
}

function mode() {
  switch(mode.arguments[0]) {
    case "shuffle": shuffle=(shuffle == 0)?1:0;break;
    case "repeat": repeat=(repeat == 0)?1:0; break;
    case "timer": if (playstatus) {timer=(timer == 3)?1:timer+1;} break;
    default:
  }
  if (shuffle) shuffle_button.src="img/dis_shuffle_on.gif";
  else shuffle_button.src="img/dis_shuffle_off.gif";
  if (repeat) repeat_button.src="img/dis_repeat_on.gif";
  else repeat_button.src="img/dis_repeat_off.gif";
}

function play() {
  if (typeof(kikyou)=="number") clearTimeout(kikyou);
  Ayame.open(file); playstatus = 1;
}

function stop() {
  if(typeof(kikyou)=="number") clearTimeout(kikyou);
  playstatus = 0; Ayame.stop();
}

function selector(akane) {
  if(typeof(kikyou)=="number") clearTimeout(kikyou);
  if (!(selector.arguments[1]*repeat)) {
    if (akane == "next" || akane ==  "prev") {track=nexttrack(akane);}
    else if (akane > total || akane <= 0) {track=Math.ceil(Math.random()*total);}
    else {track=akane;}
    if (akane != "next" && akane !=  "prev") {playstatus=1;}
  }
  setting();
}

function nexttrack() {
if (total==1) return 1;
else {
  if (!shuffle) {
    switch(nexttrack.arguments[0]) {
      case "next": kirishima=(track==total)?1:track+1; break;
      case "prev": kirishima=(track==1)?total:track-1; break;
      default:
    }
  }
  else kirishima=Math.ceil(Math.random()*total);
  if (kirishima == track) nexttrack();
  return kirishima;
}
}

function track_data() {
  number=(track<10)?"0"+track:track;
  file = canvas[(track*3)-3];
  name = canvas[(track*3)-2];
  singer = canvas[(track*3)-1];
  if (singer == "" || singer == null) singer = unknown_singer;
  info.innerText = "["+number+"] "+name+" ( "+singer+" )";
}

function timer_data() {
  ayane = Ayame.Duration
  kasumi = Ayame.currentPosition
  switch(timer) {
    case 1: min = Math.floor(ayane/60); sec = (ayane%60<10)? "0"+Math.floor((ayane)%60) : Math.floor((ayane)%60); break;
    case 2: min = "- "+Math.floor((ayane-kasumi)/60); sec = ((ayane-kasumi)%60<10)? "0"+Math.floor((ayane-kasumi)%60) : Math.floor((ayane-kasumi)%60); break;
    case 3: min = "+ "+Math.floor(kasumi/60); sec = (kasumi%60<10)? "0"+Math.floor(kasumi%60) : Math.floor(kasumi%60); break;
    default:
  }
}

function display() {
  if (playstatus) {timer_data(); watch.value=min+":"+sec;}
  else watch.value="[STOP]";
}

function kana(bResult) {
  if (kana.arguments[0] == 0) {
    if(Ayame.PlayCount==1) kikyou = setTimeout("selector('next', 1);", blank*1000);
  }
}