/* -- Java Script ----- @version : 1.0   2008.04.09 ---------- 
 * -- Rollover Images with preload
 * - for STYX naturcosmetic
 * - last modified: 2008.04.09
 * --------------------------------------------------------------
 *
 * 1+ Определить что за страница
 * 2+ Согласно названию обратится к нужной папке и предзагрузить картинки
 * 3= Всем нужным блокам назначить события наведения-отведения. 
 * 4= При событиях проверять есть ли в стеке картинка и только тогда реловерить.
 * ?-- 5= При отведении сначала поставить gif, потом обычную --?
 *
 */

/* Глобальные */
/**
  * Масив допустимых страниц 
  *
  */
var databasePages=new Array();
              /* название в URL  =   название папки с img */
	databasePages['contacts']    =  'contacts';
	databasePages['dealers']     =  'dealers';
	databasePages['buy']         =  'buy';
	databasePages['main']        =  'main';
	databasePages['news']        =  'news';
	databasePages['about']       =  'about';
	databasePages['product']     =  'product';
	databasePages['articles']    =  'articles';
	databasePages['activity']    =  'activity';
/**
  *  Получить последнее значение 
  *  - получить URL
  *  - проверить на пустоту
  *  - проверить последнее значение в списке на пустоту, если пусто, предыдущее
  *
  *  @Values : массив-стакан-обратный для значений URL
  *  @inc    : инкрементатор для работы с масивом.
  *
  */
function parseURL()
{
  var splitting = window.location.pathname.split("/"); 
  var Values=new Array();
  var inc=0; 
  if (splitting.length>=2)
  {
    for (var t=splitting.length; t>0; t--) 
	{
      if (splitting[t]!=null && splitting[t]!='') 
	  {
	    Values[inc]=splitting[t];
		inc++;		
	  }
	}  
  }
  if (splitting.length==2)
  {
	   Values[inc]='main';
  }
  /* return */
  if (Values.length<=0)
  {
	return Values=null;
  } else {
	return Values;
  }
}

/**
  *  Поиск в стеке
  */
function seachInSteck(name)
{
	for (var j=1; j<stekImages.length; j++)
	{
		if (stekImages[j].src!=null)
		{
			var stekSrc = stekImages[j].src.substring((stekImages[j].src.lastIndexOf("/"))+1,stekImages[j].src.lastIndexOf("."));
			if (stekSrc==name)
			{
				return j;
			}
		}
	}	 
	return false;
}

/* Массив для предзагрузки */
var stekImages=new Array();
/* end Глобальные */


/* First Phase */
var CheckandLoad = new Object();

CheckandLoad.checkLastPage = function ()
{
  var isParsingStr=parseURL();
  if (isParsingStr==null) return false;
  var i=0;
  do {
	   if (databasePages[isParsingStr[i]]!=null)
	   {
		   var dirname = databasePages[isParsingStr[i]];
		   CheckandLoad.preloadImages(dirname);
	   }
	   i++;
	 }
  while (isParsingStr[i]);
}

CheckandLoad.preloadImages = function (dirname)
{
	/*
	 - b_news_blank_about.jpg
	 - b_news_color_about.jpg
	 */
        stekImages[1] = new Image();
		stekImages[1].src = '/im/'+dirname+'/b_'+dirname+'_blank_about.gif';
		
		stekImages[2] = new Image();
		stekImages[2].src = '/im/'+dirname+'/b_'+dirname+'_blank_articles.gif';
		
		stekImages[3] = new Image();
		stekImages[3].src = '/im/'+dirname+'/b_'+dirname+'_blank_contacts.gif';
		
		stekImages[4] = new Image();
		stekImages[4].src = '/im/'+dirname+'/b_'+dirname+'_blank_dealers.gif';
		
		stekImages[5] = new Image();
		stekImages[5].src = '/im/'+dirname+'/b_'+dirname+'_blank_main.gif';
		
		stekImages[6] = new Image();
		stekImages[6].src = '/im/'+dirname+'/b_'+dirname+'_blank_news.gif';
		
		stekImages[7] = new Image();
		stekImages[7].src = '/im/'+dirname+'/b_'+dirname+'_blank_product.gif';
		
		stekImages[8] = new Image();
		stekImages[8].src = '/im/'+dirname+'/b_'+dirname+'_blank_buy.gif';

		stekImages[9] = new Image();
		stekImages[9].src = '/im/'+dirname+'/b_'+dirname+'_blank_teach.gif';
		
		
		stekImages[10] = new Image();
		stekImages[10].src = '/im/'+dirname+'/b_'+dirname+'_color_about.jpg';
		
		stekImages[11] = new Image();
		stekImages[11].src = '/im/'+dirname+'/b_'+dirname+'_color_articles.jpg';
		
		stekImages[12] = new Image();
		stekImages[12].src = '/im/'+dirname+'/b_'+dirname+'_color_contacts.jpg';
		
		stekImages[13] = new Image();
		stekImages[13].src = '/im/'+dirname+'/b_'+dirname+'_color_dealers.jpg';
		
		stekImages[14] = new Image();
		stekImages[14].src = '/im/'+dirname+'/b_'+dirname+'_color_main.jpg';
		
		stekImages[15] = new Image();
		stekImages[15].src = '/im/'+dirname+'/b_'+dirname+'_color_news.jpg';
		
		stekImages[16] = new Image();
		stekImages[16].src = '/im/'+dirname+'/b_'+dirname+'_color_product.jpg';
		
		stekImages[17] = new Image();
		stekImages[17].src = '/im/'+dirname+'/b_'+dirname+'_color_buy.jpg';
		
		stekImages[18] = new Image();
		stekImages[18].src = '/im/'+dirname+'/b_'+dirname+'_color_teach.jpg';
		
		/*alert(stekImages.length);*/
		
}

CheckandLoad.checkLastPage();
/* end First Phase */


/* Second Phase */
   /* -=-=-= New Object -=-=-=- */
   var RolloverBox = new Object();
   /* -=-=-= Установка реакции на событие -=-=-= */
   RolloverBox.addEvent = null;
   if (document.addEventListener) {
     RolloverBox.addEvent = function(element, type, handler) {
     element.addEventListener(type, handler, false);
     };
   } else if (document.attachEvent) {
     RolloverBox.addEvent = function(element, type, handler) {
     element.attachEvent("on" + type, handler);
     };
   } else {
     RolloverBox.addEvent = new Function; // not supported
   }
  /* -=-=-=-=-=-= end -=-=-=--=-=-=-=-=-=-=-=-=--=*/
  /* === Обход+действие (назначение события) === */
  RolloverBox.getRolloverBoxes = function (callback) {
	  var stack = [];
      var AllElements = document.getElementsByTagName("*") || document.all;
      for (var i=0; i<AllElements.length; i++)
	  {
		  if ((AllElements[i].nodeName=='DIV') && (AllElements[i].className!=null) && (AllElements[i].className=="menubox")) 
		  {
			 if (AllElements[i].getElementsByTagName("IMG")[0]!=null)
			 {
			   if (AllElements[i].getElementsByTagName("IMG")[0].parentNode.nodeName=="A")
			   {
			     var targetObj=AllElements[i].getElementsByTagName("IMG")[0];
			     stack.push(targetObj);
			     callback(targetObj);
			   }
			 }
		  }
	  }
  }
  /* === Начало работы при загрузке документа === */
  RolloverBox.domready_getRolloverBoxes = function ()
  {
    RolloverBox.getRolloverBoxes(function(el){
	     RolloverBox.addEvent(el,"mouseover",isMouseOverBridge);
	     RolloverBox.addEvent(el,"mouseout",isMouseOutBridge);
    });
  }
  /* === Мосты событий === */ 
  function isMouseOverBridge(event) 
  {
	 var obj = event.target || event.srcElement;
	 setOverBox(obj);
  }
  function isMouseOutBridge(event) 
  {
	 var obj = event.target || event.srcElement;
	 setOutBox(obj);
  }
  /* === Необходимое полезное действие  === */
  function setOverBox(obj) 
  {
	  var nameOfFile=obj.src.substring((obj.src.lastIndexOf("/"))+1,obj.src.lastIndexOf(".")); 
	  
	  var resSeach=seachInSteck(nameOfFile);
	  	  
	  if (resSeach!=false) 
	  {
		  if (stekImages[resSeach-9]!=null)
		  {
		     obj.src = stekImages[resSeach-9].src;
		  }
	  }
  }
  function setOutBox(obj) 
  {
	  var nameOfFile=obj.src.substring((obj.src.lastIndexOf("/"))+1,obj.src.lastIndexOf(".")); 
	  
	  var resSeach=seachInSteck(nameOfFile);
	  
	  if (resSeach!=false) 
	  {
		  if (stekImages[resSeach+9]!=null)
		  {
		     obj.src = stekImages[resSeach+9].src;
		  }
	  }
  }
/* end Second Phase */
 
 