/* MIDI ファイル再生 ライブラリ
        2008.01.20〜    v0.0    AC_QuickTime.jsと併用
                            コメントにQT:   =AC_QuickTime.js利用
*/

/*QT: loopのon,off*/
function qtLoop(fileName){
//    name=fileName.replace(".mid","");
//    document[name].Stop(); 
    if(document[fileName].GetIsLooping())
        document[fileName].SetIsLooping(false); 
    else
        document[fileName].SetIsLooping(true);
}


/*QT: 配列にあるファイルをidのdivにembed,tagnameのノードに再生メソッドを追加する*/
function table_to_area(tagname,table){
    n=countTag_low(document,tagname);
    if(n){
//    alert(n);
        elm=document.getElementsByTagName(tagname); 
        for(i=0;i<n;i++){
            var e=elm[i];
            var fileName=table[i];
            if(fileName.length=0) alert('no file');
//            else alert(fileName);

            e.setAttribute("onmouseover", "qtPlay('" + fileName + "')");
            e.setAttribute("onmousedown", "qtStop('" + fileName + "')");
//            gEmbedCount++; 
            var div_id="DIV"+i;
            var div = document.createElement('div');
            div.setAttribute("id", div_id);
//        alert('div ' + div_id);
            document.body.appendChild(div);
            qtEmbed(fileName,div_id);     
        }
    }else alert('no '+tagname);
}

/*QT: 配列にある複数ファイルをidのdivにembed,再生buttonを作る*/
function new_div_qtEmbed_multi_from_table() {

    var n=midifiles.length;
    for(i=0;i<n;i++){
        var fileName=midifiles[i];
        gEmbedCount++;      /*グローバル：embedが作られた回数*/
        var s=gEmbedCount;s+="";
        var div_id="DIV"+s;
/*        alert(div_id + " " + gEmbedCount); */
        new_div_qtEmbed(fileName,div_id);
    }
}
/*QT:ファイルをidのdivにembed,再生buttonを作る                        */
function new_div_qtEmbed(fileName,div_id) {

    var but = document.createElement('input');
    but.setAttribute("type", "button");
    but.setAttribute("onmouseover", "qtPlay('" + fileName + "')");
    but.setAttribute("onmousedown", "qtStop('" + fileName + "')");
    but.setAttribute("value", fileName);

    var div = document.createElement('div');
    div.setAttribute("id", div_id);

    document.body.appendChild(div);
    qtEmbed(fileName,div_id);     
    div.appendChild(but);
}

/*QT:ファイルをidのdivにembed,autoplay開始                        */
function autoplay(fileName,div_id) {

    var div = document.createElement('div');
    div.setAttribute("id", div_id);
    document.body.appendChild(div);
    qtEmbed_Autoplay(fileName,div_id);     
}


/*QT: autoplay:trueで指定divにembed      */
function qtEmbed_Autoplay(fileName,div_id){
//    name=fileName.replace(".mid","");
//    str = QT_GenerateOBJECTText(fileName , '4', '4' , '','AUTOPLAY','true','LOOP','false','HIDDEN','true','NAME',fileName,'VOLUME','20'); 
    str = QT_GenerateOBJECTText(fileName , '4', '4' , '','AUTOPLAY','true','LOOP','false','HIDDEN','true','NAME',fileName,'VOLUME','20'); 
    document.all[div_id].innerHTML=str;
}

/*QT: nameでstop*/
function qtStop(fileName){
//    name=fileName.replace(".mid","");
//    document[name].Stop(); 
    document[fileName].Stop(); 
}

/*QT: autoplay:falseでembed      ファイル名(-.mid)がembedタグのname,objectタグのidとなる　QTもこれで参照*/
function qtEmbed(fileName,id){
//    name=fileName.replace(".mid","");
//    str = QT_GenerateOBJECTText(fileName , '4', '4' , '','AUTOPLAY','false','LOOP','false','HIDDEN','false','NAME',name); 
    str = QT_GenerateOBJECTText(fileName , '4', '4' , '','AUTOPLAY','false','LOOP','false','HIDDEN','false','NAME',fileName); 
    document.all[id].innerHTML=str;
}

/*QT: ファイル名からnameを抜き出し(.midを削除) その名前のelementを*.Play()*/
function qtPlay(fileName){
//    name=fileName.replace(".mid","");
//    document[name].Rewind(); 
    document[fileName].Rewind(); 
    document[fileName].Play(); 
}

/*idのelementにembedを書き込む。autoplay:trueなので直ちに再生*/
function fire(fileName,id){
    tag="<embed src=";
    tag+=fileName;
    tag+=" autoplay='true'";
    tag+=" hidden='true'";
    tag+=" loop='false'";
    tag+=">";
    document.all[id].innerHTML=tag;
} 


/*numのembedタグのsrc*/
function get_src(num) {
    elm=document.getElementsByTagName('embed');
    alert(elm[num].src);
}

/*numのembedタグのsrcにfileNameのファイルをセット*/
function set_src(num,fileName) {
    elm=document.getElementsByTagName('embed');
    elm[num].src=fileName;
}

/*idのelementのinnerHTML*/
function se(id){
 if (document.all[id]){
    str=id+" "; str+=document.all[id].innerHTML; alert(str);
 }   
 else alert('no such id');
}

/*idのelementのLOOP*/
function lo(id){
 if (document.all[id]){
    str=document.all[id].innerHTML;
    if (str.match('loop="true"'))
        alert("loop!");
    else if (str.match('loop="false"'))
        alert("no loop");
    else
        alert("null");
 }   
 else alert('no');
}

/*idのelementのLOOPを反転        ### bug */
function rep(id){
 if (document.all[id]){
    str=document.all[id].innerHTML;
    if (str.match('loop="true"'))
        str.replace('loop="true"','loop="false"');
    else if (str.match('loop="false"'))
/*        str.replace("loop='false'","loop='true'");*/
    alert('XXXXX');
    else
        alert("null");
 }   
 else alert('no');
}


/*tagnameのタグを数えalert*/
function countTag(tagname) {
    var n=countTag_low(document.body,tagname);
    alert(n);
}

/*tagnameのタグを数える*/
function countTag_low(elm,tagname) {
    var n = elm.getElementsByTagName(tagname).length;
    return(n);
}
