
  /*
      © Алексей Забродин 2008 (drvhart@ya.ru)
      Скрипт для просмотра изображений Salute v1.2
  */
  
  var d = d || document;
  var w = w || window;
  
  var salute = {
  	
  	  delay: 1500,
  	  loader: 'salute/loader.gif',
  	  
  	  install: function() // Инсталируем
  	  {
		   var s = salute;
		   
		   var a = d.getElementsByTagName("a");
		   
		   s.url = new Array;
		   s.alt = new Array;
		   s.total = 0;
		   
		   for(var i = 0; i < a.length; i++)
		   {	
              if(a[i].href && a[i].rel == "salute")
              {
                 s.url[s.total+1] = a[i].href;
			     s.alt[s.total+1] = a[i].title;
               
                 a[i].setAttribute("name", "salute_" + s.total);
                 a[i].onclick = s.loadImg;
                 s.total++;
              }
	       }
		   
		   s.createHTML();
	  },
	  createHTML: function() // Создаём HTML
	  {
	  	   var s = salute;
	  	   
	  	   var db = d.createElement("div");
	       db.setAttribute("id", "s_blind");
	       s.blind = d.body.appendChild(db);
	       s.blind.style.display = "none";
	       s.blind.onclick = s.hideDivs;
	       
	       var dim = d.createElement("div");
	       dim.setAttribute("id", "s_img_block");
	       s.imgBlock = d.body.appendChild(dim);
	       s.imgBlock.style.display = "none";
	       s.imgBlock.innerHTML = '<div id="s_buttons"></div><div id="s_close_button"><a href="javascript:void(0)" onClick="salute.hideDivs()">Закрыть</a></div>' + 
		   '<table id="s_img_table"><tr><td><img src="'+ s.loader +'" alt="Загрузка изображения" id="s_img_place" /></td></tr></table>';
	       
	       s.imgTable = d.getElementById("s_img_table");
	       s.imgPlace = d.getElementById("s_img_place");
	       
	       s.buttons = d.getElementById("s_buttons");
	       s.buttons.style.display = "none";
	       
	       s.closeButton = d.getElementById("s_close_button");
	       s.closeButton.style.display = "none";
	       
	       s.setBtnEvents();
	  },
	  setBtnEvents: function() // Назначаем действия кнопкам
	  {
		   var s = salute;
		   
		   s.buttons.onmouseover = displayBtn;
	 	   s.closeButton.onmouseover = displayBtn;
	 	   
	 	   s.imgPlace.onmousemove = function()
		   {
			   if(s.loaded)
			   {
			      displayBtn(null, true);
			   }
	       }  
	       
	       s.imgPlace.onmouseout = function()
		   {
			   s.buttons.style.display = "none";
			   s.closeButton.style.display = "none";
		   }
		   
		   function displayBtn(e, st)
		   {	
			   s.closeButton.style.display = "block";
			
			   if(s.total > 1)
	 	       {
			      s.buttons.style.display = "block";
			      clearTimeout(s.interval_2);
			   
			      if(st)
			      {
			          s.interval_2 = setTimeout(function()
		              {
			              s.buttons.style.display = "none";
			              s.closeButton.style.display = "none";
                      }, s.delay);
                  }
			   
		       }
		   }
	  },
	  imgList: function(m) // Листинг изображений
	  {
	  	   var s = salute;
	  	  
	 	   s.hideDivs();
	 	  
	 	   if(m)
	 	   {
			  s.cur++;
		   }else{
			  s.cur--;
		   }
		  
           s.loadImg(null, s.cur);
	  },
	  hideDivs: function() // Прячем блоки
	  {
	  	   var s = salute;
	  	  
		   s.blind.style.display = "none";
		   s.imgBlock.style.display = "none";
		   s.imgPlace.src = s.loader;
           s.loaded = null;
        
	       w.onscroll = s.winScroll;
	 	   w.onresize = s.winResize;
	 	   d.onkeyup = s.docKeyup;
	 },
	 showDivs: function() // Показываем блоки
	 {
	 	   var s = salute;
	 	
		   s.imgBlock.style.display = "block";
		   s.blind.style.display = "block";
		
		   s.setCenter();
		   s.setDocEvents();
	 },
	 loadImg: function(e, v) // Загружаем изображение
	 {
	 	   var s = salute;
	 	   
	 	   if(v)
		   {
			  s.cur = v;
		   }else{
	 	      s.cur = this.name.split("salute_")[1];
	 	      s.cur++;
		   }
		
	 	   s.img = new Image;
	 	   s.img.src = s.url[s.cur];
	 	   s.img.alt = s.alt[s.cur];
	 	
	 	   // Выводим кнопки		
	 	   if(s.cur == 1)
	 	   {
			  s.buttons.innerHTML = '<span style="color: #AAA;">&larr; Предыдущая</span> &nbsp; &nbsp; <a href="javascript:void(0)" onClick="salute.imgList(1);">Следующая</a> &rarr;';
		   }
		   if(s.cur == s.total)
		   {
			  s.buttons.innerHTML = '&larr; <a href="javascript:void(0)" onClick="salute.imgList();">Предыдущая</a> &nbsp; &nbsp; <span style="color: #AAA;">Следующая &rarr;</span>';
		   }
		   if(s.cur != 1 && s.cur != s.total)
		   {
			  s.buttons.innerHTML = '&larr; <a href="javascript:void(0)" onClick="salute.imgList();">Предыдущая</a> &nbsp; &nbsp; <a href="javascript:void(0)" onClick="salute.imgList(1);">Следующая</a> &rarr;';
		   }
	 	
		   s.showDivs();
	 	   s.loadTest();
		   
	 	   return false;
	 },
	 loadTest: function() // Проверяет загрузку
	 {
	 	   var s = salute;
	 	
		   if(s.img.complete)
		   {
		      clearInterval(s.interval);
		   
		      s.imgTable.style.width = s.img.width + "px";
		      s.imgTable.style.height = s.img.height + "px";
		      s.setCenter();
		      s.viewImg();
		      
		   }else{
		      if(s.interval)
		      {
		   	     clearInterval(s.interval);
                 s.interval = setInterval('salute.loadTest();', 100);
              }else{
			     s.interval = setInterval('salute.loadTest();', 100);
		      }
		   }
	 },
	 viewImg: function() // Выводит изображение
	 {
	 	   var s = salute;
	 	   
	 	   s.setCenter();
		   s.setOpacity(s.imgPlace, 0, true);
		   s.imgPlace.src = s.img.src;
		   s.imgPlace.alt = s.img.alt;
		   
		   s.loaded = true;
		   
		   for(var i = 0; i < 11; i++)
		   {
   	           setTimeout(s.setOpacity(s.imgPlace, i), 25*i);
   	           
   	           if(i == 10)
   	           {
				   s.setCenter();
			   }
   	       }
	 },
	 setDocEvents: function() // Создаём события для кнопок клавиатуры
	 {
	 	   var s = salute;
	 	   
	 	   s.winScroll = w.onscroll;
	 	   s.winResize = w.onresize;
	 	   s.docKeyup = d.onkeyup;
	 	
	 	   w.onscroll = s.setCenter;
	       w.onresize = s.setCenter;
	    
		   d.onkeyup = function(e)
		   {
		   	  e = e || w.event;
		   	  
			  if(e.keyCode == "37" && s.cur > 1)
			  {
			      s.imgList();
			  }
			  if(e.keyCode == "39" && s.cur < s.total)
			  {
				  s.imgList(1);
			  }
			  if(e.keyCode == "67")
			  {
				  s.hideDivs();
			  }
		   }
	 },
	 setOpacity: function(obj, v, nr) // Устанавливает прозрачность
	 {	
	 	   if(nr)
		   {
		      obj.style.opacity = v/10;
	          obj.style.filter = "alpha(opacity=" + v*10 + ")";
		   }else{
		      return function()
		      {
		         obj.style.opacity = v/10;
	             obj.style.filter = "alpha(opacity=" + v*10 + ")";
	          }
		   }
	 },
	 setCenter: function() //-- Центрует и позиционирует
	 {
		   var s = salute;
		   
		   var pTop = null;
		   
		   if(d.body.scrollTop)
		   {
              pTop = d.body.scrollTop;
           }
		   else
		   {
              pTop = d.documentElement.scrollTop;
           }
           
           s.blind.style.top =  pTop + "px";
		   
		   var sTop = s.blind.clientHeight/2 - s.imgBlock.clientHeight/2;
   	       s.imgBlock.style.top = pTop + sTop + "px";
   	  
   	       var sLeft = d.body.clientWidth/2 - s.imgBlock.clientWidth/2;
           s.imgBlock.style.left = sLeft + "px";
   	       
	 }
  }
  
  // Стартуем
  if(typeof d.attachEvent != 'undefined')
  {
     w.attachEvent('onload', salute.install);
  }else{
     w.addEventListener('load', salute.install, false);
  }