// JavaScript Document
// Файл содержит скрипты для main.xsl


// *************************************************
// Простейшая модель документа XML - это представление в виде дерева.
// Вожно понимать, что HTML страница - это тоже XML данные
// Браузеры для работы с HTML имеют большие возможности, чем
// предусмотрено стандартом W3C по DOM (Document Object Model - level 1)для XML 
// Интерфейс Node соответствует абстрактному узлу дерева XML- или HTML-документа. 
// Для работы с XML документом стандартом W3C по DOM для обьекта Node не предусмтрено
// свойство Node.xml - которое для EI6 возвращает весь код XML данного узла и всех
// его потомков с аттрибутами и т.д и т.п. в виде строки, что весьма удобно для
// работы с XMLHttpRequest.
// Короче для работы с FireFox и т.д. нужен аналог. Vadim.
// Данная версия поддерживает не все типы узлов

function MakeTextStringFromXML(objNode) {
 var CurrentString='';
 var intCount=0;
 var intNode=0;
 var objAttrList=null;
 
 // не открываем открывающий Tag для узлов типа Document; 
 // if (objNode.nodeType == 9) { CurrentString = CurrentString;}
 // открываем открывающий Tag для узлов типа Element;
 if (objNode.nodeType == 1) { CurrentString = CurrentString+ "<"+ objNode.nodeName;}
 // открываем открывающий Tag для узла типа PROCESSING INSTRUCTION добавляем имя
 if (objNode.nodeType == 7) { CurrentString = CurrentString+"<?"+ objNode.nodeName; }
	
 // добавляем значения атрибутов
 objAttrList = objNode.attributes;
 if (objAttrList != null)
 {
  intCount = objAttrList.length;
	if (intCount >0)
	{
	 for (intAttr =0; intAttr < intCount; intAttr++)
	 {
		 CurrentString = CurrentString+ " "+objAttrList.item(intAttr).nodeName+'= "'+objAttrList.item(intAttr).nodeValue+'"';
	 }
	}
 }
 // закрываем открывающий Tag для узлов типа Element;	
 if (objNode.nodeType == 1) { CurrentString = CurrentString+ ">";}
 // закрываем открывающий Tag для узлов типа PROCESSING INSTRUCTION 
 if (objNode.nodeType == 7) { CurrentString = CurrentString+ "?>";  } 
 
 // для узла типа текст добавляем сам текст
 if (objNode.nodeType == 3) { CurrentString = CurrentString+ objNode.nodeValue; }

 // обработка потомков, идем вглубь дерева
 intCount=objNode.childNodes.length;
 if (intCount > 0)
 {
	 for (intNode = 0; intNode < intCount; intNode++)
	 {
		 // всех потомков рекурсивно вставляем в CurrentString
		CurrentString = CurrentString+ MakeTextStringFromXML(objNode.childNodes.item(intNode));
	 }
 }

 // Close Tag
 if (objNode.nodeType == 1)  { CurrentString = CurrentString+ "</"+ objNode.nodeName+">";  }
 return CurrentString;
}


// **************************	
function isSilverlightInstalled() {
  var isSilverlightInstalled = false;
  try {
    try {
      var slc = new ActiveXObject('AgControl.AgControl');
      isSilverlightInstalled = true;
    } catch (e) {
        if ( navigator.plugins["Silverlight Plug-In"] ) {
        isSilverlightInstalled = true;
      }
    }
  }
  catch (e){}
  return isSilverlightInstalled;
}

// **************************	
function detectFlash(version) 
{ 
 if(navigator.plugins && navigator.plugins.length)
 { 
   var plugin = navigator.plugins["Shockwave Flash"]; 
   if (plugin == undefined){ return false; }
// If a plugin is found, the code still needs to check for the installed version. This is 
// achieved by retrieving the third item in the plugin's description property and checking it against the passed version parameter:

 var ver = navigator.plugins["Shockwave Flash"].description.split(" ")[2]; 
 return (Number(ver) >= Number(version))

//  Next, the script checks for the plugin in Internet Explorer. In JavaScript, it achieves this
//  by trying to create a new Flash ActiveX object with the passed version. If JavaScript is unable to
// create the object, it will throw an exception, which is why the entire expression must be enclosed inside a try-catch block:

 } 
 else if (ie && typeof (ActiveXObject) == "function") 
 {   
 try {  var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + version);  return true; } 
 catch(e) { return false; } 
 }
}

// **************************	
function DoPicZoom(picNum)
{
 var strSrc=pictures[picNum];
 var strAlt=pictures[picNum];
 var mediaSrc=mediaFiles[picNum];
 var mediaDscr=mediaDescr[picNum]; 
 
 visibilityManager("off");

 document.getElementById('alles').style.visibility = "hidden";
 document.getElementById('photo-place').style.visibility = "visible";
 document.getElementById('photo-place').style.left=10;
 document.getElementById('photo-place').style.top=10;

 if (mediaDscr == "")  { mediaDscr=strSrc; }

 document.getElementById('photo-place').innerHTML = "<table  border=1  align='center' cellpadding=0 cellspacing=0 border=0 ><tr><td><a href=# onclick='DoPicHide(); return false'><img alt='"+mediaDscr+"' src=" + strSrc + " border=1 ></a></td></tr><tr><td align=center><font color=#000000 face='Geneva, Tahoma, Verdana, Arial, sans-serif' size=2>" + mediaDscr + "</font></td></tr><tr><td></br>Чтобы вернуться в основной просмотр, кликните мышкой на картинке</br>.</td></tr></table>";

}
// **************************	

function DoPicHide()
{
 document.getElementById('alles').style.visibility = "visible";
 document.getElementById('photo-place').innerHTML = "";
 document.getElementById('photo-place').style.visibility = "hidden";
 visibilityManager("auto");
}
// **************************	
function visibilityManager(parOnOffAuto)
{
 if (parOnOffAuto == "off" )
 {
  if (document.all) { document.all['PicRefForwardId'].style.visibility="hidden";}
  else { if (document.getElementById) document.getElementById('PicRefForwardId').style.visibility="hidden";}

  if (document.all) { document.all['PicRefBackId'].style.visibility="hidden";}
  else { if (document.getElementById) document.getElementById('PicRefBackId').style.visibility="hidden"; }
  return;
 }

 if (parOnOffAuto == "on" )
 {
 if (document.all) { document.all['PicRefForwardId'].style.visibility="visible";}
 else { if (document.getElementById) document.getElementById('PicRefForwardId').style.visibility="visible"; }
 if (document.all) { document.all['PicRefBackId'].style.visibility="visible";}
 else { if (document.getElementById) document.getElementById('PicRefBackId').style.visibility="visible"; }
 return;
 }

 if ( currentPicture < (pictures.length-1))
 {
  if (document.all) { document.all['PicRefForwardId'].style.visibility="visible";}
  else { if (document.getElementById) document.getElementById('PicRefForwardId').style.visibility="visible"; }
 }
 else
 {
  if (document.all) { document.all['PicRefForwardId'].style.visibility="hidden";}
  else { if (document.getElementById) document.getElementById('PicRefForwardId').style.visibility="hidden";}
 }
  
 if ( currentPicture > 0)
 {
  if (document.all) { document.all['PicRefBackId'].style.visibility="visible";}
  else { if (document.getElementById) document.getElementById('PicRefBackId').style.visibility="visible"; }							
 }
 else 
 {
  if (document.all) { document.all['PicRefBackId'].style.visibility="hidden";}
  else { if (document.getElementById) document.getElementById('PicRefBackId').style.visibility="hidden"; }
 }	 
}
						
// **************************	
function MaxWidthPicForBlockCalculator()
{
 // расчет максимальной ширины одной иконки	
 for (i=0; i < pictures.length; i++)
 {
  // урезание в максимальный размер маленьких картинок по ширине - рабочее
  /*
  if 	(widthes[i] > MaxBlockPicWidth) 
  {
  k= widthes[i] / MaxBlockPicWidth;
  Blwidthes[i]=MaxBlockPicWidth;
  Blheightes[i]=Math.floor(heightes[i] / k);
  } 
  */
  if (heightes[i] > MaxBlockPicHeight) 
  {
   k= heightes[i] / MaxBlockPicHeight;
   Blheightes[i]=MaxBlockPicHeight;
   Blwidthes[i]=Math.floor(widthes[i] / k);
  }
	// К вопросу о типах данных Java Script
	// преобразуем к численному типу Blwidthes[i]=Math.floor(Blwidthes[i])
	// разрыв мозга от проблем со слабо-типизированными данными
	// FireFox, IE тоже самое 
	// массивы были проинициализированы численными значениями в виде строк
	// некоторые элементы массива пребразованию в Integer не подверглись
	// см. if (heightes[i] > MaxBlockPicHeight), при некоторых данных
	// TmpWMax- оказался тоже строкой, поэтому TmpWMax +3 если TmpWMax="88"+3=883
	// хотя всё равно не понятно до конца почему так, но след строка решила
	// проблему для FireFox и IE, что говорит о странностях Java Script,
	// а не об ошиках в браузере
  // конкретно см.	Init_Show_Pic() 
	// blockSize=(TotalSpaceWidth / (MaxWidthPicForBlock+3)) 
	// MaxWidthPicForBlock+3 превращался в из 88+3 в 883
	// стоит повнимательней почитать про типы данных

  // почитал : В выражениях, соединяющих числовые и строковые значения операцией +, 
	// JavaScript преобразует числа в строки, например:
	// x = "Ответ равен " + 21  // возвращает "Ответ равен 21"
  // y = 21 + "  - вот ответ" // возвращает "21 - вот ответ"
  // В остальных случаях JavaScript пытается преобразовать строку в число, например:
  //   a = "21" - 1 // возвращает 20
  //   b = "21" + 1 // возвращает 211 
	// хочется верить, у разработчиков Java Script, были серьёзные причины так сделать. 
	else Blwidthes[i]=Math.floor(Blwidthes[i]);
 } 	
 var TmpWMax=0; 
 var TmpHMax=0;  
 for (i=0; i < pictures.length; i++)
 {
  if (TmpWMax < Blwidthes[i] )  { TmpWMax = Blwidthes[i];}
  if (TmpHMax < Blheightes[i] ) { TmpHMax = Blheightes[i];}	
 }
 return Math.floor(TmpWMax);
}
// **************************							
function setupBlockOfPictures()
{		
var BlockElement=document.getElementById("placeForPicturesBlock");				
								
 if (blockOffset > currentPicture)
  if ((blockOffset-blockSize) < 0 ){  blockOffset=0 }
  else { blockOffset=blockOffset-blockSize;}
					  
 if ( currentPicture > (blockOffset+blockSize-1)) 
 { 
  if ((blockOffset+(2*blockSize)) > pictures.length-1) {blockOffset=pictures.length-blockSize;}
  else {blockOffset=currentPicture;}
 }
							
 for (i=0; i < blockSize; i++)
 {
  CurrentPicWidth=Blwidthes[blockOffset+i];
  CurrentPicHeight=Blheightes[blockOffset+i];
							
  // урезание в максимальный размер маленьких картинок по ширине - рабочее
  /*
  if 	(CurrentPicWidth > MaxBlockPicWidth) 
  {
  k= CurrentPicWidth / MaxBlockPicWidth;
  CurrentPicWidth=MaxBlockPicWidth;
  CurrentPicHeight=CurrentPicHeight / k;
  } 
  */
  if (CurrentPicHeight > MaxBlockPicHeight) 
  {
   k= heightes[blockOffset+i] / MaxBlockPicHeight;
   CurrentPicHeight=MaxBlockPicHeight;
   CurrentPicWidth=widthes[blockOffset+i] / k;
  }
  BlockElement.childNodes.item(i).childNodes.item(0).setAttribute("src",pictures[blockOffset+i]);
  BlockElement.childNodes.item(i).childNodes.item(0).setAttribute("width",CurrentPicWidth);	
  BlockElement.childNodes.item(i).childNodes.item(0).setAttribute("height",CurrentPicHeight);
  BlockElement.childNodes.item(i).childNodes.item(0).setAttribute("alt",pictures[blockOffset+i]);	
  BlockElement.childNodes.item(i).childNodes.item(0).setAttribute("hspace",3);	

  // Вариант показа полной картинки с использованием слоев

  var j=i+blockOffset;
  BlockElement.childNodes.item(i).setAttribute("href","javascript: DoPicZoom("+j+")");
  //  BlockElement.childNodes.item(i).setAttribute("onclick","javascript: DoPicZoom("+j+"); return false;");
	
  // Вариант с открытием нового окна. При этом состояние окна с катинками сбрасывается
  // BlockElement.childNodes.item(i).setAttribute("href",pictures[blockOffset+i]);  
  
  if ((blockOffset+i) == currentPicture) {BlockElement.childNodes.item(i).childNodes.item(0).setAttribute("border","1");}
  else BlockElement.childNodes.item(i).childNodes.item(0).setAttribute("border","0");
 }
}
						
// **************************	
// **************************	
// **************************						
function setupCurrentPicAndAdjustSize()
{

 var strSrc=pictures[currentPicture];
 var strAlt=pictures[currentPicture];
 var mediaSrc=mediaFiles[currentPicture];
 var mediaDscr=mediaDescr[currentPicture];


 // Устанавливаем имя файла для сохранения пользователем.
 document.getElementById("PicDownLaodId").removeAttribute("href");
 if (String(mediaSrc) == "") document.getElementById("PicDownLaodId").setAttribute("href","?download=media&download-file="+strSrc);
 else document.getElementById("PicDownLaodId").setAttribute("href","?download=media&download-file="+mediaSrc);
 
 mediaSrc=String(mediaSrc);	 	 
 mediaSrc=mediaSrc.toUpperCase();
 
 CurrentPicWidth=Number(widthes[currentPicture]);
 CurrentPicHeight=Number(heightes[currentPicture]);

 if (CurrentPicHeight > MaxPicHeight) 
 {
  k= heightes[currentPicture] / MaxPicHeight;
  CurrentPicHeight=MaxPicHeight;
  CurrentPicWidth=Math.floor(widthes[currentPicture] / k);
 }

 // Урезние в максимальный размер основной картинки по ширине 
 // если после урезания по высоте ширина больше допустимой
 if 	(CurrentPicWidth > MaxPicWidth) 
 {
  k= CurrentPicWidth / MaxPicWidth;
  CurrentPicWidth=MaxPicWidth;
  CurrentPicHeight=Math.floor(CurrentPicHeight / k);
 } 
 
 CurrentPicWidth=Number(CurrentPicWidth);
 CurrentPicHeight=Number(CurrentPicHeight);

 // Зачистка TDPlaceForMedia
 var tmpEl=document.getElementById("TDPlaceForMedia");
 while (tmpEl.childNodes.length > 0) {tmpEl.removeChild(tmpEl.lastChild); }
 

 var tmpEl=document.getElementById("PlaceForImageDescription");
 while (tmpEl.childNodes.length > 0) {tmpEl.removeChild(tmpEl.lastChild); } 
 if (( String(mediaDscr) != "") && (mediaSrc.indexOf(".HTML") ==0))
 {
  tmpEl=document.createTextNode(mediaDscr);	
  document.getElementById("PlaceForImageDescription").appendChild(tmpEl); 
 }
 
 
 if ((mediaSrc == "") || ( mediaSrc.indexOf(".JPG") >=0) || ( mediaSrc.indexOf(".GIF") >=0))
 {
  // Установка ссылки на картинку, которая откроется в отдельном окне
  tmpEl=document.createElement("A");	
  tmpEl.setAttribute("id","PlaceForMiddleSizeImage");
  tmpEl.setAttribute("href","javascript:GoToPlayMedia();");
  document.getElementById("TDPlaceForMedia").appendChild(tmpEl); 

  var img=document.createElement("img");
  img.setAttribute("src",pictures[currentPicture]);
  img.setAttribute("width",String(CurrentPicWidth));
  img.setAttribute("height",String(CurrentPicHeight));
  img.setAttribute("border",0);	

  // if (mediaSrc == "") img.setAttribute("src",pictures[currentPicture]);	
  // else { img.setAttribute("src", mediaSrc); img.setAttribute("height",MaxPicHeight);}
	
	
  //var j=(TotalSpaceWidth-CurrentPicWidth)/2;
  //img.setAttribute("hspace",j);	
  document.getElementById("PlaceForMiddleSizeImage").appendChild(img);
  return;
 }
 
 // проверка является ли media file файлом HTML
 if (mediaSrc.indexOf(".HTML") >=0) 
 {
 if (window.ActiveXObject)
	{
	 // Для Explorer	
     var a = document.createElement('a');
     a.innerHTML = '<iframe src="'+mediaSrc+'" WIDTH="100%"  HEIGHT="'+MaxPicHeight+'" >'+'</iframe>';	
     document.getElementById("TDPlaceForMedia").appendChild(a);
	}
	else
	{
     tmpEl=document.createElement("IFRAME");	
     tmpEl.setAttribute("SRC",mediaSrc);
     tmpEl.setAttribute("SCROLLING","yes");	
     tmpEl.setAttribute("WIDTH","100%");	
     tmpEl.setAttribute("HEIGHT",MaxPicHeight);		
     document.getElementById("TDPlaceForMedia").appendChild(tmpEl); 
	}
  return;	
 }

 // проверка является ли media file файлом для Flash
 if ((mediaSrc.indexOf(".FLV") >=0) || (mediaSrc.indexOf(".MP4") >=0) ||   
       (mediaSrc.indexOf(".MP3") >=0) || (mediaSrc.indexOf(".AAC") >=0)) 
 {
  if (window.ActiveXObject)
	{
	 // Для Explorer
   var s1 = new SWFObject('player-viral.swf','player','320','240','9');
   s1.addParam('allowfullscreen','true');
   s1.addParam('allowscriptaccess','always');
   // "&logo="+strSrc
   s1.addParam('flashvars','file='+mediaSrc+"&autostart=false"+"&controlbar=over"+"&image="+strSrc+"&description="+mediaDscr);
   s1.write('TDPlaceForMedia');
	 return;
	}
	else
	{
    /* Рабочая версия для библиотеки flowplayer-3.0.7.
    var myPlayer=document.createElement("A");
    myPlayer.setAttribute("id","player");	
    myPlayer.setAttribute("href",mediaSrc);				
    myPlayer.setAttribute("style","display:block;width:400px;height:300px");	
    document.getElementById("PlaceForMiddleSizeImage").appendChild(myPlayer);
		flowplayer("player", "flowplayer-3.0.7.swf");
		*/
     /*
		objEL.setAttribute("type","application/x-shockwave-flash");	
		objEL.setAttribute("data","uflvplayer_500x375.swf");		
    objEL.setAttribute("width",320);
    objEL.setAttribute("height",240);	
		
		 var paramEl_01=document.createElement("param");
     paramEl_01.setAttribute("name","allowScriptAccess");
		 paramEl_01.setAttribute("value","always");
		 
		 var paramEl_02=document.createElement("param");
     paramEl_02.setAttribute("name","movie");
		 paramEl_02.setAttribute("value","uflvplayer_500x375.swf");
		 
		 var paramEl_03=document.createElement("param");
     paramEl_03.setAttribute("name","FlashVars");
		 paramEl_03.setAttribute("value","way=http://www."+
            window.location.hostname+mediaSrc+"&amp;"+
			      "swf=uflvplayer_500x375.swf&amp;"+
            "w=320&amp;h=240&amp;"+
            "pic=http://www."+window.location.hostname+strSrc+"&amp;"+
            "autoplay=1&amp;"+
            // autoplay=1 автозапуск ??????
            // "replay=1&amp;"+
            "tools=2&amp;"+
            // tools=1 кнопки управления всегда
            "skin=white&amp;"+
            "volume=70&amp;"+
            "q=&amp;"+
            "comment=HALLLO HHAALLOO");
		 
		 objEL.appendChild(paramEl_01);		 
		 objEL.appendChild(paramEl_02);		 
		 objEL.appendChild(paramEl_03);		 		 
		 document.getElementById("PlaceForMiddleSizeImage").appendChild(objEL);
	*/

  

  var s1 = new SWFObject('player-viral.swf','player','320','240','9');
  s1.addParam('allowfullscreen','true');
  s1.addParam('allowscriptaccess','always');
  // "&logo="+strSrc
  s1.addParam('flashvars','file='+mediaSrc+
							            "&autostart=false"+
													"&controlbar=over"+
													"&image="+strSrc+
													"&description="+mediaDscr);

  // FireFox выдает: Предупреждение: Ожидалось «:», но найдено «undefined».  Потерянное объявление. посмотреть
  s1.write('TDPlaceForMedia');
	return;
	}
 }

 if ((mediaSrc.indexOf(".WMV") >=0) || (mediaSrc.indexOf(".WMA") >=0))
 {
  if ( isSilverlightInstalled()) 
   {
    var elm = document.getElementById("TDPlaceForMedia");
    var src = 'wmvplayer.xaml';
    var cfg = { file: mediaSrc, width:'320', height:'240', autostart : 'false',image : "http://www."+window.location.hostname+strSrc 
		};
		
    var ply = new jeroenwijering.Player(elm,src,cfg);
    return;
		
		/*
		<object height="250" width="280" data="data:application/x-silverlight," type="application/x-silverlight">
    <param value="#0173e0" name="background"/>
    <param value="/jw/embed/wmvplayer.xaml" name="source"/>
    <param value="false" name="windowless"/>
    <param value="__slEvent1" name="onLoad"/>
		</object>
		*/
		
   }
   else
	 {
   // предложем один раз скачать Silverlight
	 if (SilverLightAnouns == false)
	  {
     if    (window.confirm("Рекомендуем установить MS Silverlight для стабильного"+
													" воспроизведения .WMV и .WMA файлов. Скачать?" )) 
			       {Silverlight.getSilverlight("1.0"); SilverLightAnouns=true;}
		 else {SilverLightAnouns=true;}
		}
	 }
 }

    

	  // неизвестное расширенме


/*
<OBJECT ID="Player1" width="320" height="63" src="SOME URL.avi" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" standby="Loading Microsoft Windows Media Player components...">
                  <PARAM NAME="URL" VALUE="SOME URL.avi">
                  <PARAM NAME="width" VALUE="320">
                  <PARAM NAME="height" VALUE="63">
                  <PARAM NAME="stretchToFit" VALUE="1">
                  <PARAM NAME="ShowControls" VALUE="1">
                  <PARAM NAME="ShowTracker" VALUE="1">
                  <PARAM NAME="ShowStatusBar" VALUE="1">
                  <PARAM NAME="CurrentPosition" VALUE="1900"> <!--с какой секунды начинать воспроизведение-->
                  <PARAM NAME="AutoStart" Value="0"><!--ждать нажатие наplay -->
                  <EMBED id="Player1" name="Player1" src="SOME URL.avi" type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/" ShowControls="1" ShowTracker="1" ShowStatusBar="1" VideoBorder3D="0" VideoBorderWidth="0" width="320" height="63" AutoStart="0" AnimationAtStart="1" TransparentAtStart="1" uiMode="none" StretchToFit="1" CurrentPosition="1900"></embed>
                  </OBJECT>
*/



	// медиа файл есть, но не для Flash. Попробуем старую EMBED.
  var emb=document.createElement("EMBED");
  var j=(TotalSpaceWidth-350)/2;
  // objEL.setAttribute("hspace",'"'+j+"'");	
  // objEL.setAttribute("autostart","true");	

  emb.setAttribute("src","."+mediaSrc);	
  emb.setAttribute("type","application/x-mplayer2");		
  emb.setAttribute("AutoStart",0);
  emb.setAttribute("AnimationAtStart",1);	
  emb.setAttribute("TransparentAtStart",1);		
  emb.setAttribute("StretchToFit",1);			
  emb.setAttribute("uiMode","none");	
  emb.setAttribute("width",320);	
  emb.setAttribute("height",250);
  emb.setAttribute("VideoBorder3D",0);	
  emb.setAttribute("VideoBorderWidth",0);	
  emb.setAttribute("ShowTracker",1);		
  emb.setAttribute("ShowStatusBar",0);	
  emb.setAttribute("ShowControls",1);		

  // objEL.appendChild(emb);
  document.getElementById("TDPlaceForMedia").appendChild(emb);
}
// **************************
function setPictureSign()
{
 // NumberOfPicText.nodeValue=" "+(currentPicture+1)+"/"+pictures.length+ " ";
}

// **************************						
function Next_Pic()
{
 if ( currentPicture < (pictures.length-1)) { currentPicture++;}
 setupCurrentPicAndAdjustSize();						
 setPictureSign();	
 setupBlockOfPictures();									
 visibilityManager("auto")
}

// **************************						
function Prev_Pic()
{
 if ( currentPicture>0)  { currentPicture--; }
 setupCurrentPicAndAdjustSize();
 setPictureSign();		
 setupBlockOfPictures();		
 visibilityManager("auto")						
}	
// **************************	
function GoToPlayMedia()
{
  DoPicZoom(currentPicture);
}	

// ***********************************
// ***********************************
function ChangeVisMediaRef()
{
 // document.getElementById('all-media-details').innerHTML= "";		
 var tmpEl=null;
 if (document.getElementById("all-media-details") != null)
 {
  tmpEl=document.getElementById("all-media-details");
  while (tmpEl.childNodes.length > 0) {tmpEl.removeChild(tmpEl.lastChild); }
 }
}
// ***********************************		
function Init_Show_Pic()
{

 if ( pictures.length == 0) {return;}
 // Стартовая часть скрипта при загрузке страницы 
 NumberOfPicText=document.createTextNode("");	 
 var tmpInsertNode=document.getElementById("PlaceForPicCounter");
 tmpInsertNode.parentNode.insertBefore(NumberOfPicText,tmpInsertNode);

 MaxWidthPicForBlock=MaxWidthPicForBlockCalculator();
 
 if ( ((MaxWidthPicForBlock+3)* blockSize) > TotalSpaceWidth) 
 {
	// см. К вопросу о типах данных Java Script 
  blockSize=(TotalSpaceWidth / (MaxWidthPicForBlock+3));
  blockSize=Math.floor(blockSize); 
 }

if (blockSize > pictures.length) {blockSize=pictures.length;}
 for (i=1; i <= blockSize ; i++)
 {
  var aref=document.createElement("A");
  var img=document.createElement("IMG");
  aref.appendChild(img);
  document.getElementById("placeForPicturesBlock").appendChild(aref);
 }
 setupBlockOfPictures();
						
 if(pictures.length > 1)
 {
  document.getElementById("PicRefForwardId").setAttribute("href","javascript:Next_Pic()");
  document.getElementById("PicRefBackId").setAttribute("href","javascript:Prev_Pic()");
  // Не могу заставить работать это в FireFox  button=document.createElement("A") 
  // var button=document.createElement("A");
  // button.setAttribute("href","javascript:Next()");
  // button.innerText=' » '; эта строка не исполняется в FireFox
	//    познее выяснил, что innerHTML= работает везде, но уже сделал по другому
  // document.getElementById("placeForPictureChangeButton").appendChild(button);
 }

  setupCurrentPicAndAdjustSize();
  setPictureSign();
  visibilityManager();

}
// ***********************************
// Максимальные размеры картинок
// Самая начальная инициализация данных для скриптов
// и определение переменных

var MaxPicWidth=350;
var MaxPicHeight=250;
var MaxBlockPicWidth=70;
var MaxBlockPicHeight=70;
var MaxWidthPicForBlock=0;
var TotalSpaceWidth=600;
						
var CurrentPicWidth=350;
var CurrentPicHeight=250;
var k=1;
var blockOffset=0;
var curBlockPos=0;
var blockSize=10;
var i=0;
var currentPicture = 0;
					 
var pictures=new Array();
var widthes=new Array();
var heightes=new Array();
var Blwidthes=new Array();
var Blheightes=new Array();
var mediaFiles=new Array();
var mediaDescr=new Array();

var NumberOfPicText=null;
var SilverLightAnouns=false;

// ***********************************						
