      
 /*
     © Алексей Забродин 2008 (drvhart@ya.ru)
     Скрипт для просмотра изображений Salute v1.0.2
     
     Данный скрипт является бесплатным и свободно распространяется в сети интернет. 
     Любое коммерческое использование, без уведомления автора, запрещено. 
     Любой вправе скачать данный скрипт и использовать его на своём сайте.
     Скрипт может подлежать модификации с последующим распространением, 
     но только с учётом, что эти слова останутся на этом месте, 
     а имена тех, кто улучшил, будут дописаны ниже.
 */
 
 // Если эти переменные у вас уже есть, с данными значеньями, то можете их удалить
 var d = document;
 var w = window;
 
 var salute = {
 	 
 	 language: "ru",
 	 
     install: function() //-- Инсталируем --//
	 {	
	 	
	 	w.S_interval = null;
	 	w.S_interval_2 = null;
	 	w.S_img = null;
	 	w.S_url = null;
	 	w.S_alt = null;
	 	w.S_total = null;
	 	w.S_cur = null;
	 	w.S_loaded = null;
	 	w.S_winScroll = null;
	 	w.S_winResize = null;
	 	w.S_docKeyup = null;
	 	w.S_patch = w.S_patch || "salute";
	 	
	 	var lang = d.getElementsByTagName("html")[0].lang;
	 	if(lang)
	 	{
			salute.language = lang;
		}
		
     	var a = d.getElementsByTagName("a");
     	
     	S_url = new Array;
		S_alt = new Array;
     	
     	var s = 0;
     	
     	for(var i = 0; i < a.length; i++)
		{	
            if(a[i].href && a[i].rel == "salute")
            {
               S_url[s+1] = a[i].href;
			   S_alt[s+1] = a[i].title;
               
               a[i].setAttribute("name", "salute_" + s);
               a[i].onclick = salute.loadImg;
               s++;
            }
	    }
	    
	    S_total = s;
	    
	    salute.createHTML();
	 },
	 createHTML: function() //-- Создаём HTML --//
	 {
		var divBlind = d.createElement("div");
	    divBlind.setAttribute("id", "s_blind");
	    w.S_blind = d.body.appendChild(divBlind);
	    S_blind.style.display = "none";
	    S_blind.onclick = salute.hideDivs;
	    
	    
	    var divImgBlock = d.createElement("div");
	    divImgBlock.setAttribute("id", "s_imgBlock");
	    w.S_imgBlock = d.body.appendChild(divImgBlock);
	    S_imgBlock.style.display = "none";
	    var text = salute.getLang();
	    S_imgBlock.innerHTML = '<table id="s_imgTable"><tr><td><img src="' + S_patch + '/loader.gif" alt="'+text['load']+'" id="s_imgPlace" /></td></tr></table>';
	    
	    
	    var buttonsDiv = d.createElement("div");
	    buttonsDiv.setAttribute("id", "s_buttons");
	    w.S_buttons = S_imgBlock.appendChild(buttonsDiv);
	    S_buttons.style.display = "none";
	    
	    var closeButtonDiv = d.createElement("div");
	    closeButtonDiv.setAttribute("id", "s_closeButton");
	    w.S_closeButton = S_imgBlock.appendChild(closeButtonDiv);
	    S_closeButton.style.display = "none";
	    S_closeButton.innerHTML = '<a href="javascript:void(0)" onClick="salute.hideDivs()">'+text['close']+'</a>';
	    
	    w.S_imgTable = d.getElementById("s_imgTable");
	    w.S_imgPlace = d.getElementById("s_imgPlace");
	    
	    salute.setButtonEvents();
	 },
	 setButtonEvents: function() //-- Назначаем действия кнопкам --//
	 {
	 	S_buttons.onmouseover = displayButtons;
	 	S_closeButton.onmouseover = displayButtons;
	 	
		S_imgPlace.onmousemove = function()
		{
			if(S_loaded)
			{
			   displayButtons(null, true);
			}
	    }
		
		S_imgPlace.onmouseout = function()
		{
			S_buttons.style.display = "none";
			S_closeButton.style.display = "none";
		}
		
		function displayButtons(e, setT)
		{	
			S_closeButton.style.display = "block";
			
			if(S_total > 1)
	 	    {
			   S_buttons.style.display = "block";
			   w.clearTimeout(S_interval_2);
			   
			   if(setT)
			   {
			      w.S_interval_2 = setTimeout(function()
		          {
			         S_buttons.style.display = "none";
			         S_closeButton.style.display = "none";
                  }, 1500);
               }
			   
		    }
		}
		
	 },
	 buttonPre: function() //-- К предыдущему изображению --//
	 {
	 	salute.hideDivs();
        S_cur--;
        salute.loadImg(null, S_cur);
	 },
	 buttonNext: function() //-- К Следующему изображению --//
	 {
	 	salute.hideDivs();
        S_cur++;
        salute.loadImg(null, S_cur);
	 },
	 hideDivs: function() //-- Прячем блоки --//
	 {
		S_blind.style.display = "none";
		S_imgBlock.style.display = "none";
		S_imgPlace.src = S_patch + "/loader.gif";
        S_loaded = null;
        
        salute.hideElements(true);
        
	    w.onscroll = S_winScroll;
	 	w.onresize = S_winResize;
	 	d.onkeyup = S_docKeyup;
	 },
	 showDivs: function() //-- Показываем блоки --//
	 {
		S_imgBlock.style.display = "block";
		S_blind.style.display = "block";
		
		salute.hideElements();
		
		salute.setCenter();
		salute.setDocumentEvents();
	 },
	 loadImg: function(e, value) //-- Загружаем изображение --//
	 {
	 	if(value)
		{
			S_cur = value;
		}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];
	 	
	 	// Выводим кнопки
	 	var text = salute.getLang();
			
	 	if(S_cur == 1)
	 	{
			S_buttons.innerHTML = '<span style="color: #AAA;">&larr; '+text['pre']+'</span> &nbsp; &nbsp; <a href="javascript:void(0)" onClick="salute.buttonNext()">'+text['next']+'</a> &rarr;';
		}
		if(S_cur == S_total)
		{
			S_buttons.innerHTML = '&larr; <a href="javascript:void(0)" onClick="salute.buttonPre()">'+text['pre']+'</a> &nbsp; &nbsp; <span style="color: #AAA;">'+text['next']+' &rarr;</span>';
		}
		if(S_cur != 1 && S_cur != S_total)
		{
			S_buttons.innerHTML = '&larr; <a href="javascript:void(0)" onClick="salute.buttonPre()">'+text['pre']+'</a> &nbsp; &nbsp; <a href="javascript:void(0)" onClick="salute.buttonNext()">'+text['next']+'</a> &rarr;';
		}
	 	
		salute.showDivs();
	 	salute.loadTest();	
	 	return false;
	 },
	 loadTest: function() //-- Проверяет загрузку --//
	 {
		if(S_img.complete)
		{
		   w.clearInterval(S_interval);
		   
		   S_imgTable.style.width = S_img.width + "px";
		   S_imgTable.style.height = S_img.height + "px";
		   salute.setCenter();
           
		   salute.viewImg();
		}else{
		   if(S_interval)
		   {
		   	  w.clearInterval(S_interval);
              S_interval = w.setInterval('salute.loadTest();', 100);
           }else{
			  S_interval = w.setInterval('salute.loadTest();', 100);
		   }
		}
	 },
	 viewImg: function() //-- Выводит изображение --//
	 {
		   salute.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(salute.setOpacity(S_imgPlace, i), 25*i);
   	           
   	           if(i == 10)
   	           {
				   salute.setCenter();
			   }
   	       }
	 },
	 setDocumentEvents: function() //-- Создаём события для кнопок клавиатуры --//
	 {
	 	
	 	S_winScroll = w.onscroll;
	 	S_winResize = w.onresize;
	 	S_docKeyup = d.onkeyup;
	 	
	 	w.onscroll = salute.setCenter;
	    w.onresize = salute.setCenter;
	    
		d.onkeyup = function(e)
		{
		   	e = e || w.event;
		   	  
			if(e.keyCode == "37" && S_cur > 1)
			{
			    salute.buttonPre();
			}
			if(e.keyCode == "39" && S_cur < S_total)
			{
				salute.buttonNext();
			}
			if(e.keyCode == "67")
			{
				salute.hideDivs();
			}
		}
	 },
	 getLang: function() //-- Возвращает данные для выбранного языка --//
	 {
	 	var txt = new Array;
	 	
		switch(salute.language)
		{
			case "ru" : txt['load'] = "Загрузка изображения"; txt['close'] = "Закрыть"; txt['pre'] = "Предыдущая"; txt['next'] = "Следующая"; break;
			case "uk" : txt['load'] = "Завантажую зображення"; txt['close'] = "Закрити"; txt['pre'] = "Попередня"; txt['next'] = "Наступна"; break;
			case "en" : txt['load'] = "Load Images"; txt['close'] = "Close"; txt['pre'] = "Previous"; txt['next'] = "Next"; break;
			case "de" : txt['load'] = "Laden Sie Bilder"; txt['close'] = "Zumachen"; txt['pre'] = "Zuruck"; txt['next'] = "Weiter"; break;
			case "fr" : txt['load'] = "Charger les images"; txt['close'] = "Fermer"; txt['pre'] = "Precedent"; txt['next'] = "Suivant"; break;
			default : txt['load'] = ""; txt['close'] = "X"; txt['pre'] = "<<"; txt['next'] = ">>";
		}
		
		return txt;
	 },
	 setOpacity: function(obj, value, no_return) //-- Устанавливает прозрачность объекту --//
	 {	
	 	if(no_return)
		{
		   obj.style.opacity = value/10;
	       obj.style.filter = "alpha(opacity=" + value*10 + ")";
		}else{
		   return function()
		   {
		      obj.style.opacity = value/10;
	          obj.style.filter = "alpha(opacity=" + value*10 + ")";
	       }
		}
	 },
	 setCenter: function() //-- Центрует и позиционирует --//
	 {
		
		var pTop
		if(d.body.scrollTop)
		{
           pTop = d.body.scrollTop;
        }else{
           pTop = d.documentElement.scrollTop;
        }
        
        S_blind.style.top =  pTop + "px";
		
		var sTop = d.body.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";
   	    
   	    S_closeButton.style.top = "0.8em";
   	    
   	    S_buttons.style.right = "0px";
   	    S_buttons.style.top = "0.8em";
	 },
	 hideElements: function(unhide) //-- Прячем селекторы от IE --//
	 {
		if(navigator.userAgent.indexOf("MSIE") != -1)
		{
			var s = d.getElementsByTagName("select");
			for(var i = 0; i < s.length; i++)
		    {
		    	if(unhide)
		    	{
					s[i].style.display = "";
				}else{
					s[i].style.display = "none";
				}
		    }
		}
	 }
	 
 }

 //-- Стартуем --//
 if(typeof d.attachEvent != 'undefined')
 {
    w.attachEvent('onload', salute.install);
 }else{
    w.addEventListener('load', salute.install, false);
 }
