演奏会用アプリの中で一番力を入れた血圧計のコード

突っ込みどころ満載だと思いますが。。。

<div style="font-size: 20pt;font-weight: bold;color:white; font-family: 'MS ゴシック';"> 血圧計 </div>

<img id="sign" src="black.jpg"  height=100 style="background-color: black;">
<table id="blocks" style="margin:10px" align="center">
  <tr style="padding: 2px;" height=36><td width=70></td><td><img id="level8" src="black.jpg"></td><td></td></tr>
  <tr style="padding: 2px;" height=36><td></td><td><img id="level7" src="black.jpg"></td><td></td></tr>
  <tr style="padding: 2px;" height=36><td></td><td><img id="level6" src="black.jpg"></td><td></td></tr>
  <tr style="padding: 2px;" height=36><td></td><td><img id="level5" src="black.jpg"></td><td style="font-size: 14pt;font-weight: bold; color:white ;">150mmHg</td></tr>
  <tr style="padding: 2px;" height=36><td></td><td><img id="level4" src="black.jpg"></td><td></td></tr>
  <tr style="padding: 2px;" height=36><td></td><td><img id="level3" src="black.jpg"></td><td></td></tr>
  <tr style="padding: 2px;" height=36><td></td><td><img id="level2" src="b_blue.jpg"></td><td></td></tr>
  <tr style="padding: 2px;" height=36><td></td><td><img id="level1" src="b_blue.jpg"></td><td></td></tr>
</table>
<div id="start_button" align="right" style="margin: 10px;float:right "><button onclick="execute()">計測開始</button></div>
function hide_all_block(){
  for(i=3; i <= 8; i++){
    document.getElementById("level"+String(i)).setAttribute("src", "black.jpg");
  }
  document.getElementById("sign").setAttribute("src", "black.jpg");
}

function show_block(level){
  switch (level) {
    case 3:
    case 4:
    case 5:
     document.getElementById("level"+String(level)).setAttribute("src", "b_blue.jpg");
     break;
    default:
     document.getElementById("level"+String(level)).setAttribute("src", "b_red.jpg");
     break;
  }
}

function show_warning(){
  document.getElementById("sign").setAttribute("src", "b_warning.jpg");
}

function show_danger(){
  document.getElementById("sign").setAttribute("src", "b_danger.jpg");
}

function show_blocks(level){
  hide_all_block();
  for(i=3; i <= level; i++){
    show_block(i);
  }
  switch (level) {
    case 6:
    case 7:
     show_warning();
     break;
    case 8:
     show_danger();
     break;
    default:
     break;
  }
}

function execute_sample_1min_interval(){
//ちょっと試す場合
 setTimeout("show_blocks(4)",1000);
 setTimeout("show_blocks(5)",3000);
 setTimeout("show_blocks(6)",5000);
 setTimeout("show_blocks(7)",6000);
 setTimeout("show_blocks(8)",9000);
 setTimeout("show_blocks(7)",11000);
 setTimeout("show_blocks(5)",14000);
}

function execute_10sec_interval(){
//当初想定10秒間隔のパターン
 setTimeout("show_blocks(2)",5000);
 setTimeout("show_blocks(3)",10000);
 setTimeout("show_blocks(3)",20000);
 setTimeout("show_blocks(3)",30000);
 setTimeout("show_blocks(4)",40000);
 setTimeout("show_blocks(5)",50000);
 setTimeout("show_blocks(5)",60000);
 setTimeout("show_blocks(5)",70000);
 setTimeout("show_blocks(5)",80000);
 setTimeout("show_blocks(4)",90000);
 setTimeout("show_blocks(4)",100000);
 setTimeout("show_blocks(3)",110000);
 setTimeout("show_blocks(3)",120000);
 setTimeout("show_blocks(3)",130000);
 setTimeout("show_blocks(4)",140000);
 setTimeout("show_blocks(4)",150000);
 setTimeout("show_blocks(4)",160000);
 setTimeout("show_blocks(5)",170000);
 setTimeout("show_blocks(6)",180000);
 setTimeout("show_blocks(6)",190000);
 setTimeout("show_blocks(7)",200000);
 setTimeout("show_blocks(7)",210000);
 setTimeout("show_blocks(8)",220000);
 setTimeout("show_blocks(7)",230000);
 setTimeout("show_blocks(7)",240000);
 setTimeout("show_blocks(6)",250000);
 setTimeout("show_blocks(5)",260000);
 setTimeout("show_blocks(5)",270000);
 setTimeout("show_blocks(5)",280000);
 setTimeout("show_blocks(4)",290000);
 setTimeout("show_blocks(5)",300000);
 setTimeout("show_blocks(6)",310000);
 setTimeout("show_blocks(7)",320000);
}

function test1_1(){
//10秒間隔が3⇒4⇒5とあがるパターン
//1秒間隔⇒30回変化
//⇒ちょっとせわしなさすぎ
 setTimeout("show_blocks(3)",4000);
 setTimeout("show_blocks(2)",5000);
 setTimeout("show_blocks(3)",6000);
 setTimeout("show_blocks(4)",7000);
 setTimeout("show_blocks(3)",8000);
 setTimeout("show_blocks(2)",9000);
 setTimeout("show_blocks(3)",10000);
 setTimeout("show_blocks(2)",11000);
 setTimeout("show_blocks(3)",12000);
 setTimeout("show_blocks(4)",13000);
 setTimeout("show_blocks(3)",14000);
 setTimeout("show_blocks(4)",15000);
 setTimeout("show_blocks(3)",16000);
 setTimeout("show_blocks(4)",17000);
 setTimeout("show_blocks(3)",18000);
 setTimeout("show_blocks(4)",19000);
 setTimeout("show_blocks(3)",20000);
 setTimeout("show_blocks(4)",21000);
 setTimeout("show_blocks(5)",22000);
 setTimeout("show_blocks(4)",23000);
 setTimeout("show_blocks(5)",24000);
 setTimeout("show_blocks(4)",25000);
 setTimeout("show_blocks(5)",26000);
 setTimeout("show_blocks(4)",27000);
 setTimeout("show_blocks(3)",28000);
 setTimeout("show_blocks(4)",29000);
 setTimeout("show_blocks(5)",30000);
 setTimeout("show_blocks(4)",31000);
 setTimeout("show_blocks(5)",32000);
 setTimeout("show_blocks(5)",33000);
}

function test1_2(){
//10秒間隔が3⇒4⇒5とあがるパターン
//2秒間隔⇒15回変化
//⇒よさげ?
 setTimeout("show_blocks(3)",5000);
 setTimeout("show_blocks(2)",7000);
 setTimeout("show_blocks(3)",9000);
 setTimeout("show_blocks(2)",11000);
 setTimeout("show_blocks(3)",13000);
 setTimeout("show_blocks(4)",15000);
 setTimeout("show_blocks(3)",17000);
 setTimeout("show_blocks(4)",19000);
 setTimeout("show_blocks(3)",21000);
 setTimeout("show_blocks(4)",23000);
 setTimeout("show_blocks(5)",25000);
 setTimeout("show_blocks(4)",27000);
 setTimeout("show_blocks(5)",29000);
 setTimeout("show_blocks(4)",31000);
 setTimeout("show_blocks(5)",33000);

}

function test1_3(){
//10秒間隔が3⇒4⇒5とあがるパターン
//5秒間隔 ⇒6回変化
//⇒ちょっと微妙かな
 setTimeout("show_blocks(3)",8000);
 setTimeout("show_blocks(2)",13000);
 setTimeout("show_blocks(3)",18000);
 setTimeout("show_blocks(4)",23000);
 setTimeout("show_blocks(3)",28000);
 setTimeout("show_blocks(5)",33000);
}

function test2_1(){
//10秒間隔が6⇒6⇒6と一定パターン
//1秒間隔⇒30回変化
//⇒せわしない
 setTimeout("show_blocks(6)",4000);
 setTimeout("show_blocks(5)",5000);
 setTimeout("show_blocks(6)",6000);
 setTimeout("show_blocks(5)",7000);
 setTimeout("show_blocks(6)",8000);
 setTimeout("show_blocks(5)",9000);
 setTimeout("show_blocks(6)",10000);
 setTimeout("show_blocks(7)",11000);
 setTimeout("show_blocks(6)",12000);
 setTimeout("show_blocks(7)",13000);
 setTimeout("show_blocks(6)",14000);
 setTimeout("show_blocks(7)",15000);
 setTimeout("show_blocks(6)",16000);
 setTimeout("show_blocks(5)",17000);
 setTimeout("show_blocks(6)",18000);
 setTimeout("show_blocks(7)",19000);
 setTimeout("show_blocks(6)",20000);
 setTimeout("show_blocks(5)",21000);
 setTimeout("show_blocks(6)",22000);
 setTimeout("show_blocks(7)",23000);
 setTimeout("show_blocks(6)",24000);
 setTimeout("show_blocks(5)",25000);
 setTimeout("show_blocks(6)",26000);
 setTimeout("show_blocks(7)",27000);
 setTimeout("show_blocks(6)",28000);
 setTimeout("show_blocks(5)",29000);
 setTimeout("show_blocks(7)",30000);
 setTimeout("show_blocks(6)",31000);
 setTimeout("show_blocks(5)",32000);
 setTimeout("show_blocks(6)",33000);
}

function test2_2(){
//10秒間隔が6⇒6⇒6と一定パターン
//2秒間隔⇒15回変化
//⇒まぁまぁ
 setTimeout("show_blocks(6)",5000);
 setTimeout("show_blocks(5)",7000);
 setTimeout("show_blocks(6)",9000);
 setTimeout("show_blocks(5)",11000);
 setTimeout("show_blocks(6)",13000);
 setTimeout("show_blocks(7)",15000);
 setTimeout("show_blocks(6)",17000);
 setTimeout("show_blocks(7)",19000);
 setTimeout("show_blocks(6)",21000);
 setTimeout("show_blocks(5)",23000);
 setTimeout("show_blocks(6)",25000);
 setTimeout("show_blocks(7)",27000);
 setTimeout("show_blocks(6)",29000);
 setTimeout("show_blocks(5)",31000);
 setTimeout("show_blocks(6)",33000);
}

function test2_3(){
//10秒間隔が6⇒6⇒6と一定パターン
//5秒間隔 ⇒6回変化
//⇒おそい
 setTimeout("show_blocks(5)",8000);
 setTimeout("show_blocks(6)",13000);
 setTimeout("show_blocks(7)",18000);
 setTimeout("show_blocks(6)",23000);
 setTimeout("show_blocks(5)",28000);
 setTimeout("show_blocks(6)",33000);
}


function execute(){
   document.getElementById("start_button").style.display = 'none';

 execute_sample_1min_interval()
 //execute_10sec_interval()
 //test1_1()
 //test1_2()
 //test1_3()
 //test2_1()
 //test2_2()
 //test2_3()
}

実際、赤や青のバー(背景色黒)とか、
Danger!とかWarningの画像を作るというのが
意外と大変だったりもしました。
あとは曲にあわせて時間を微調整するのとか。