/*******************************************************************************
 rhythmH_0_0.js by prog@hrubec.com 2008/07/21; HTTP://www.hrubec.com
 Copyright: (c) 2008 Hrubec Pavel. All Rights Reserved.
 Purport: tap dance rhythm presentation.
*******************************************************************************/

 cPeriods=8;
 cPieces=3;
 countSound_id=0;  //0 tic; 1 count

 soundsDir='../../rhythmH/sounds/'; // cesta k zvukovym souborum relativne ke strance

 PercussionsSequence=[1,3,3,2,10,1,4,1,11,6,,,6,8,2,3,,3,2,,10,7,,];
 
 periods=[];
 currentParent=document.getElementById('osmicka');

 PercussionsSequence_id=0;
 for(period_id=0;period_id<cPeriods;period_id++)
  {
  period=periods[period_id]=document.createElement("span");
  //period.innerHTML=period_id+1;
  period.className="period";
  currentParent.appendChild(period);
  period.pieces=[];
 	for(piece_id=0;piece_id<cPieces;piece_id++)
   {
   piece=period.pieces[piece_id]=document.createElement("span");
   piece.innerHTML='<span class=pieceId>'+(piece_id?"&middot;":period_id+1)+'</span>';
   piece.className="piece";
   period.appendChild(piece);

   select=piece.select=document.createElement("select");
   //predem nenacitat  select.onchange=function(){loadWMP(percussions[this.selectedIndex].sound_id);};
   piece.appendChild(select);

   for(percussion_id=0;percussion_id<percussions.length;percussion_id++)
    {
    option=document.createElement("option");
    select.appendChild(option);
    option.text=percussions[percussion_id].text;
    option.value=percussion_id;
    if(PercussionsSequence[PercussionsSequence_id]==percussion_id) option.selected=true;
    };
   PercussionsSequence_id++;
   };
  };

  
 function loadSounds() // nacte pouze uzite zvuky davkove
  {
  sound_id=countSound_id;
  loadWMP(sound_id);
  for(period_id=0;period_id<cPeriods;period_id++)
   {
  	for(piece_id=0;piece_id<cPieces;piece_id++)
    {
    percussion_id=periods[period_id].pieces[piece_id].select.selectedIndex;
    sound_id=percussions[percussion_id].sound_id;
    loadWMP(sound_id);
    };
   };
  };

 loadSounds();


 inputTiming // tempo
	=createInput('Tempo'    ,150,function(){setTiming();});
	 createSpace();
 inputRepetitions // cela sekvence se ma tolikrat opakovat
	=createInput('Opakování',  2,function(){});
  createButton('Přehrát',function(){play();});
  createButton('Vyčistit',function(){clear();});

  
 cCounting=4; // odpočet v úvodu
 initDelay=1; // rezerva pro nacasovani, lag (prip. i load WMP)

	 
 function setTiming() // predpocita parametry
  {
  periodDelay=60/inputTiming.value;
  pieceDelay=periodDelay/cPieces;
  repetitionDelay=cPeriods*periodDelay;
  countingDelay=cCounting*periodDelay;
  startDelay=initDelay+countingDelay;
  };

 setTiming();
 
 function play() // naplanuje prehrani
  {
  loadSounds();
  
  for(period_id=0;period_id<cCounting;period_id++)
   {
   sound_id=countSound_id;
   if(loadWMP(sound_id))
    {
    setTimeout
				('WMPs['+sound_id+'].playNext()'
					, (period_id*periodDelay+initDelay)*1000 - sounds[sound_id].lag);
				};	
			};
  
  for(repetition_id=0;repetition_id<inputRepetitions.value;repetition_id++)
   {
   for(period_id=0;period_id<cPeriods;period_id++)
    {
   	for(piece_id=0;piece_id<cPieces;piece_id++)
     {
     percussion_id=periods[period_id].pieces[piece_id].select.selectedIndex;
     sound_id=percussions[percussion_id].sound_id;
     if(loadWMP(sound_id))
      {
   			setTimeout
						 (' WMPs['+sound_id+'].playNext()'
							, ((repetition_id*repetitionDelay)+(period_id*periodDelay)+(piece_id*pieceDelay)+startDelay)*1000 - sounds[sound_id].lag);
   			};
   		};
    };
   };
  };

 function clear()
  {
  for(period_id=0;period_id<cPeriods;period_id++)
   {
  	for(piece_id=0;piece_id<cPieces;piece_id++)
    {
    periods[period_id].pieces[piece_id].select.selectedIndex=0;
  		};
   };
  };