/********************************************
 *  LayerSlide								*
 *											*
 *	for some Navigation or for another		*
 *	LayerMoveSpacialEffects					*
 *											*
 *  made by -=(Chillya)=-					*
 *											*
 *											*
 ********************************************/
 
/*var ar_movables = new Array();
var m_timeOut = 10;
var m_scrollPos = 122;
var m_slideStart = 700;*/

var m_scrollPos = 140;


var naviLayerContext = new MovableContext(2, m_scrollPos, 700);
var pathLayerContext = new MovableContext(2, -1, 700);

function MovableContext(timeout, scrollpos, slidestart)
{
	this.Elements = new Array();
	this.TimeOut = timeout;
	this.ScrollPos = scrollpos;
	this.SlideStart = slidestart;
	this.GetElement = m_getMovable;
	this.RemoveElement = m_removeMovable;
	this.HasActivElements = m_hasActivElements;
	this.SetScrollPosition = m_setScrollPosition;
  this.IsActive = false;
  this.Activate = m_setActive;
	//this.Move = m_move
}

function MovableObject()
{
	this.id = -1;
	this.elm = null;
	this.interval = 1;
	this.startPos = -1;
	this.endPos = -1;
	this.direction = 1;
	this.horizontal = false;
	this.ProcessMethod = null;
	this.init = m_initializeElement;
	this.OnEndCallback = null;
	this.IsActive = false;
	this.GetOpacity = m_getOpacity;
}

function m_getOpacity()
{
	return GetTransparency(this.elm.id);
}

function m_setActive(bActivate)
{
  this.IsActive = bActivate;
}


function m_setScrollPosition(nScrollPos)
{
    this.ScrollPos = nScrollPos;
}

function m_initializeElement()
{
		if (this.direction == -1)
		{			
			var nOpacity = this.GetOpacity();
			if (nOpacity > 100) nOpacity = 100;
			transparency(this.elm.id, nOpacity+2);
		}
		else
		{
			var nOpacity = this.GetOpacity();
			if (nOpacity < 1) nOpacity = 1;
			transparency(this.elm.id, nOpacity-2);
		}
}

function m_hasActivElements()
{
	for(var x=0; x < this.Elements.length; x++)
	{
		if (this.Elements[x] != null && this.Elements[x].IsActive == true)
		{ 
			return true;
		}
	}
	
	return false;
}

function m_getMovable(mvbl)
{
	for(var x=0; x < this.Elements.length; x++)
	{
		if (this.Elements[x] != null && this.Elements[x].id == mvbl) return this.Elements[x];
	}
	
	return null;
}

function m_removeMovable(mvbl)
{
	var nIndex = -1;
	
	for(var x=0; x < this.Elements.length; x++)
	{
		if (this.Elements[x] != null && this.Elements[x].id == mvbl) nIndex = x;
	}	
	
	if (nIndex > -1)
	{ 
		this.Elements[nIndex] = null;
		
		var newArray = new Array();
		for(var y=0; y < this.Elements.length; y++)
		{
			if (this.Elements[y] != null) newArray.push(this.Elements[y]);
		}
		this.Elements = newArray;
	}
}



function FadeIn(elmId, callback)
{
  if(!naviLayerContext.IsActive) return;

	var existElm = naviLayerContext.GetElement("mv_" + elmId);

	if (existElm == null)
	{
		//alert("drinne!");
		var elm = document.getElementById(elmId);
        if (elm == null) return;
	
		var movable = new MovableObject();
		movable.id = "mv_" + elmId;
		movable.elm = elm;
		movable.interval = 2;
		movable.startPos = 1;
		movable.endPos = 100;
		movable.direction = 1;
		
		if (callback != null) movable.OnEndCallback = callback;
		naviLayerContext.Elements.push(movable);
		elm.style.visibility = "visible";
		
		movable.ProcessMethod = window.setInterval("FadeProccess('" + movable.id + "')", naviLayerContext.TimeOut);
	}
	else
	{
		existElm.direction = 1;
		existElm.interval = 2;
	}
}

function FadeOut(elmId)
{
	var movable = naviLayerContext.GetElement("mv_" + elmId);
	
	if (movable != null)
	{	
		movable.direction = -1;
		movable.interval = -2;
		//movable.elm.style.zIndex = 4;
		//movable.endPos = m_topPos;
		if(movable.ProcessMethod == null) movable.ProcessMethod = window.setInterval("FadeProccess('" + movable.id + "')", naviLayerContext.TimeOut);
	}
}

function FadeProccess(mvblId)
{
	var movable = naviLayerContext.GetElement(mvblId);
	
	if (movable != null)
	{
		if (movable.direction == 1)
		{
			if (movable.GetOpacity() <= 0)
			{ 
				window.clearInterval(movable.ProcessMethod);
				movable.ProcessMethod = null;
				//movable.elm.style.zIndex = 11;
				//if (movable.OnEndCallback != null) movable.OnEndCallback();
			}
			else
			{
			    //alert(movable.GetOpacity())
				movable.init();
			}
		}
		else
		{
		    //alert("fade out")
			if (movable.GetOpacity() >= 100)
			{
				window.clearInterval(movable.ProcessMethod);
				naviLayerContext.RemoveElement(mvblId);
				movable.ProcessMethod = null;
				
				//alert('callback ' + movable.OnEndCallback + " movable.id: " + movable.id);
				//if (movable.OnEndCallback != null) movable.OnEndCallback(movable.id);
				
			}
			else
			{
				var IsPathActive = pathLayerContext.HasActivElements();
				if (IsPathActive != true)
				{
					movable.init();
				}
			}				
		}
	}
}



function transparency(elem,percentage) {

   obj = document.getElementById(elem);
	 if (obj != null) SetTransparency(obj,percentage);
}


function SetTransparency(obj, percentage)
{
  var i, count, objStyle;
	
  if(obj) 
  {
   percentage=(typeof(percentage)=="undefined")?50:100-percentage;
   count=(obj.length)?obj.length:1;

   for(i=0;i<count;i++) 
   {
        objStyle=(obj.length)?obj[i].style:obj.style;
        objStyle.filter="Alpha(opacity="+percentage+")";
        objStyle.MozOpacity=""+percentage/100;
        objStyle.KTHMLOpacity=""+percentage/100;
        objStyle.opacity=""+percentage/100;
   }
  
   //alert("IE: " + objStyle.filter + "\nMoz: " + objStyle.MozOpacity + "\nKTHML: " + objStyle.KTHMLOpacity + "\nOpacity: " + objStyle.opacity);
  }	
}

function GetTransparency(elem)
{
	 obj = document.getElementById(elem);
	 if (obj != null)
	 {
    	var objStyle=(obj.length)?obj[i].style:obj.style;	 	
    	var nOpacity = (typeof(obj.style.opacity)=="undefined")?100:(100-(obj.style.opacity*100));
    	
			//alert("IE: " + objStyle.filter + "\nMoz: " + objStyle.MozOpacity + "\nKTHML: " + objStyle.KTHMLOpacity + "\nOpacity: " + objStyle.opacity);
			return nOpacity;
	 }
}

function t(e,p)
{
	if(xJStrans)
	{
		var nOpacity = GetTransparency(e);
		transparency(e,p);
	}
}

xJStrans=true;
