﻿
/* ------------------------------ Spolecne akce pro vsechny instance prehravace ----------------------------------------*/
function CreateFlashSoundObjects() { // Vytvarim objekty, proto jsou nazvy v uvozovkach
   createFlashObjectForSound("Snd1");
   createFlashObjectForSound("Snd2");
   createFlashObjectForSound("SndM");
}

function SetVolumeSoundByCookie() {
   //nastaveni hlasitosti dle hodnoty cookie u Snd1, Snd2 a SndM. pokud neni cookie, tak neudela nic
   if (hodnotaKukiny("soundv") > 0) {
      SetVolumeSound(Snd1, hodnotaKukiny("soundv"));
      SetVolumeSound(Snd2, hodnotaKukiny("soundv"));
      SetVolumeSound(SndM, hodnotaKukiny("soundv"));
   }
}

function StopAllSounds() {
   StopSound(Snd1);
   StopSound(Snd2);
   StopSound(SndM);
}
/*--------------------------------------- Konec spolecnych definic prehravacu ------------------------------------------*/





// ------------------ Vytvoreni objektu flashe pro zvuk a hudbu -----------------
function createFlashObjectForSound(id) {  // vytvoreni flash objektu s id (pokud chci paralelne prehravat vice zvuku, musim inicializovat vice objektu
   document.write('<OBJECT id="' + id + '" codeBase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" height="1" width="1" align="middle" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">');
   document.write('<PARAM NAME="Movie" VALUE="snd/soundPlayer.swf?id=' + id + '">');
   document.write('<PARAM NAME="AllowScriptAccess" VALUE="sameDomain">');
   document.write('<embed name="' + id + '" src="snd/soundPlayer.swf?id=' + id + '" width="1" height="1" color="#000000" bgcolor="#000000" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"/>');
   document.write('</OBJECT>');
   if (window[id]) this[id] = window.document[id];
   else if (document[id]) this[id] = document[id];
   else this[id] = document.getElementById(id);
}



// ------------------ Ovladani pro zvuk a hudbu -----------------

/* Napevno hreje pres "Snd1". Prehraje nahodny zvuk z n. Nazvy musi byt oddelenehe carkami nebo strednikem. Priklad: "zvuk1.mp3,zvuk2.mp3" */
function Pl(sndString) {
   var oddelovace = /[,;]+/; // carka a strednik
   var array = sndString.split(oddelovace);
   var randIndex = Math.ceil(Math.random() * array.length) - 1;
   PlaySound(Snd1, "snd/" + array[randIndex], 1);   
}

/* Prehraje nahodny zvuk z n. Nazvy musi byt oddelenehe carkami nebo strednikem. Priklad: "zvuk1.mp3,zvuk2.mp3" */
function Play(Id, sndString) {
   var oddelovace = /[,;]+/; // carka a strednik
   var array = sndString.split(oddelovace);
   var randIndex = Math.ceil(Math.random() * array.length) - 1;
   PlaySound(Id, "snd/" + array[randIndex], 1);
   //alert(array[randIndex]);
}

function PlaySound(Id, Zvuk, PocOpakovani) // prehrava zvuk (flash objekt "SoundPlayer")
{
   if (hodnotaKukiny("sound") != "1") {
      try {
          if (Zvuk.length > 0) {
              Id.SetVariable('command', '<play urls="' + Zvuk + '" loop="' + PocOpakovani + '" />');
          }
      }
      catch (e) { };
   };
}

function StopSound(Id) { // ukonceni prehravani (flash objektu "SoundPlayer")
   try {
      Id.SetVariable('command', '<stop />');
   }
   catch (e) { };
}

function SetVolumeSound(Id, value) {
   //nastaveni hlasitosti, value v rozsahu 0-100 (doufam)
   try {
      Id.SetVariable('command', '<setVolume value="' + value + '" />');
   }
   catch (e) { };
}

function ZobrazRepracekDleCookies(Zap, Vyp) //prepina mezi zobrazenim ikony pro zapnuti a vypnuti zvuku
{
   if (hodnotaKukiny("sound") != "1") {    //zvuk je zapinan
      document.getElementById(Zap).style.display = "none";
      document.getElementById(Vyp).style.display = "";
      /*
      try { //Kdyby neexistovala funkce, tak at nehlasi chybu
      PlayBackgroundMusic(); // pokud je na html strance implementovana hudba na pozadi s timto jmenem, tak ji zkusim pustit
      }
      catch(e) {};
      */
   }
   else {  //zvuk vypinam
      document.getElementById(Zap).style.display = "";
      document.getElementById(Vyp).style.display = "none";
      try {   //pokud na teto str zvuk na pozadi neexistuje, tak at nehlasi chybu
         StopAllSounds();
      } catch (e) { };
   };
}

function NastaveniVolumeControlDleNazvuImg(NastavovanaHlasitost) // Pri kliknuti na obrazek se vola tato funkce, pozoer, bere hodnotu hlasitosti z nazvu gifu!
{
   var CelyVolumeControl = NastavovanaHlasitost.parentNode;
   //prepnuti vsech volume control na vypnuto
   for (var I = 0; I < CelyVolumeControl.childNodes.length; I++) {
      if (CelyVolumeControl.childNodes[I].nodeName == "IMG") {
         CelyVolumeControl.childNodes[I].src = UpravaNazvuObrVolumeControl(CelyVolumeControl.childNodes[I].src, "VYP");
      }
   }
   //nastaveni vybraneho volume control na zap
   NastavovanaHlasitost.src = UpravaNazvuObrVolumeControl(NastavovanaHlasitost.src, "ZAP");

   ZapsaniKukiny('soundv', UpravaNazvuObrVolumeControl(NastavovanaHlasitost.src, "HLASITOST"), 1095);
   SetVolumeSoundByCookie();
}


function NastaveniVolumeControlOnLoad(IdVolumeControl, displayVolumeImg) {
   if (hodnotaKukiny("soundv") <= 0) {
      ZapsaniKukiny('soundv', 40, 1095);  //nastaveni default hodnoty
      //alert("vychozi 40");
   }
   else if (displayVolumeImg) {
      var CelyVolumeControl = document.getElementById(IdVolumeControl);
      for (var I = 0; I < CelyVolumeControl.childNodes.length; I++) {
         if (CelyVolumeControl.childNodes[I].nodeName == "IMG") {
            if (hodnotaKukiny("soundv") == UpravaNazvuObrVolumeControl(CelyVolumeControl.childNodes[I].src, "HLASITOST")) {
               //alert("zde" + UpravaNazvuObrVolumeControl(CelyVolumeControl.childNodes[I].src, "HLASITOST"));
               CelyVolumeControl.childNodes[I].src = UpravaNazvuObrVolumeControl(CelyVolumeControl.childNodes[I].src, "ZAP");
               break;
            }
         }
      }
   }
   // Vlastni nastaveni hlasitosti
   SetVolumeSoundByCookie();
}


function UpravaNazvuObrVolumeControl(NazevObrazku, Akce) {
   /// <summary>upravi NazevObrazku podle parametru Akce</summary>
   /// <param name="NazevObrazku" type="string">cely nazev obrazku prevzaty z vlastnosti src</param>
   /// <param name="Akce" type="string">muze obsahovat hodnoty:
   ///                                       VYP - odstrani z nazvu souboru posledni "a" pred teckou
   ///                                       ZAP - prida k nazvu souboru "a" pred tecku
   ///                                       HLASITOST - vrati hodnotu hlasitosti</param>
   /// <returns type="string">dle parametru Akce</returns>
   /// <remarks>
   ///         pouziva regularni vyraz pro modifikaci retezce
   /// </remarks>
   var re = /(.+?(?=\d+a?\.))(\d+)a?\.(.+)/;   //prepnuti vsech volume control na vypnuto
   var newstr;
   switch (Akce) {
      case "VYP":
         return NazevObrazku.replace(re, "$1$2.$3");
         break;
      case "ZAP":
         return NazevObrazku.replace(re, "$1$2a.$3");
         break;
      case "HLASITOST":
         var myArray = NazevObrazku.match(re); // vybere z nazvu obrazku ciselny udaj a ten pak pouzije.
         return myArray[2]
         break;
   }
   return null;
}


