function enkode(s,n)
{
	var r = "";
	for(i = 0; i < s.length; i++)
	{
		r += String.fromCharCode((s.charCodeAt(i) ^ n));
	}
	return r;
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

function ToggleDisplay(obj)
{
  if(document.getElementById)
  {
    var el = document.getElementById(obj);

    if(obj.indexOf("_selected_") == 0 && el.style.display == "")
    {
      el.style.display = "block";
    }
    if(el.style.display != "block")
    {
      el.style.display = "block";
    }
    else
    {
      el.style.display = "none";
    }
  }
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

function DisplayOn(obj)
{
	if(document.getElementById)
	{
		var el = document.getElementById(obj);

		if(obj.indexOf("_selected_") == 0 && el.style.display == "")
		{
			el.style.display = "block";
		}

		if(el.style.display != "block")
		{
			el.style.display = "block";
			var steps = 4;
			var step = Math.PI/steps/2;
			var opacity = Math.sin(step);
			
			el.style.opacity = opacity;
			el.style.filter = 'alpha(opacity=' + opacity*100 + ')';
			for(i = 1; i < steps; i++)
			{
				opacity = Math.sin(step*(i+1));
				var x = setTimeout("changeOpacity('"+el.id+"'," + opacity + ")",i * 40);
			}
		}
	}
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

function DisplayOff(obj)
{
	if(document.getElementById)
	{
		var el = document.getElementById(obj);

		if(obj.indexOf("_selected_") == 0 && el.style.display == "")
		{
			el.style.display = "block";
		}

		if(el.style.display == "block")
		{
			//el.style.display = "none";

			var steps = 25;
			var step = Math.PI/steps/2;
			var opacity = Math.sin(step*(steps-1) + Math.PI*3/2) + 1;

			el.style.opacity = opacity;
			el.style.filter = 'alpha(opacity=' + opacity*100 + ')';
			for(i = 1; i < steps; i++)
			{
				opacity = Math.sin(step*(steps-i-1) + Math.PI*3/2) + 1;
				var x = setTimeout("changeOpacity('"+el.id+"'," + opacity + ")",i * 40);
			}
		}
	}
}
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

function ToggleDisplayTrans(obj)
{
	if(document.getElementById)
	{
		var el = document.getElementById(obj);

		if(obj.indexOf("_selected_") == 0 && el.style.display == "")
		{
			el.style.display = "block";
		}
		if(el.style.display != "block")
		{
			time = 200;
			steps = Math.ceil(time / 40.);
			step = Math.PI / steps;
			
			el.style.opacity = 0;
			el.style.filter = 'alpha(opacity=0)';
			
			el.style.display = "block";
			
			for(i = 1; i <= steps; i++)
			{
				opacity = (-Math.cos(step * i) + 1) * .5;
				setTimeout("fade('" + el.id + "'," + opacity + ")",i * 40);
			}
			return true;
		}
		else
		{
			//el.style.display = "none";

			time = 1000;
			steps = Math.ceil(time / 40.);
			step = Math.PI / steps * .5;

			el.style.opacity = 1;
			el.style.filter = 'alpha(opacity=100)';
			for(i = 1; i < steps; i++)
			{
				//opacity = 1 + (-Math.cos(step * i) + 1) * .5 * (-1);
				opacity = (-Math.sin(step * i) + 1);
				setTimeout("fade('" + el.id + "'," + opacity + ")",i * 40);
			}
			setTimeout("document.getElementById('" + el.id + "').style.display='none'",steps * 40);
		}
	}
	return false;
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

function Fade(obj, start, stop, time)
{
	if(document.getElementById)
	{
		el = document.getElementById(obj);

		range = stop - start;
		steps = Math.ceil(time / 40.);
		step = Math.PI / steps;

		el.style.opacity = start;
		el.style.filter = 'alpha(opacity=' + start*100 + ')';

		el.style.visibility = "visible";
		opacity = start + Math.sin(step) / range;
		for(i = 1; i <= steps; i++)
		{
			opacity = start + (-Math.cos(step * i) + 1) * .5 * range;
			setTimeout("fade('" + el.id + "'," + opacity + ")",i * 40);
		}
	}
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

function fade(obj,opacity)
{
	if(document.getElementById)
	{
		var el = document.getElementById(obj);
		
		el.style.opacity = opacity;
		el.style.filter = 'alpha(opacity=' + (opacity * 100) + ')';
	}
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

function findPos(obj)
{
	var curleft = curtop = 0;
	if(obj.offsetParent)
	{
		do
		{
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
		while(obj = obj.offsetParent);
	}
	return [curleft,curtop];
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

function SearchToggle()
{
	if(document.getElementById)
	{
		var icon = document.getElementById('search_icon');
		var search = document.getElementById('search_item');
		var arrow = document.getElementById('search_arrow');
		var pos = findPos(icon);
		search.style.left = (pos[0] - parseInt(arrow.style.left) + 4) + "px";
		search.style.top = (pos[1] + parseInt(icon.height)) + "px";
		if(ToggleDisplayTrans('search_item'))
			document.getElementById('sbi').focus();
		else
			document.getElementById('sbi').blur();
	}
}

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

function MessageBox(pointX, pointY, arrowOffset, arrowPos, message)
{
	if(document.getElementById)
	{
		var tableHeight = 34;
		var mb = document.getElementById('message_box');
		var msg = document.getElementById('mb_message');
		var arrow = document.getElementById('mb_arrow');
		var tb = document.getElementById('mb_table');
		//var pos = findPos();
		
		arrow.style.left = arrowOffset;
		var arrowHeight = parseInt(arrow.height);
		switch(arrowPos)
		{
			case 1:
				arrow.style.display = "block";
				arrow.src = "images/arrow.top.left.png";
				tb.style.top = "0";
				arrow.style.top = "1px";
				mb.style.left = (pointX - arrowOffset) + "px";
				mb.style.top = pointY + "px";
				break;
			case 2:
				arrow.style.display = "block";
				arrow.src = "images/arrow.top.right.png";
				tb.style.top = "0";
				arrow.style.top = "1px";
				mb.style.left = (pointX - arrowOffset - parseInt(arrow.width)) + "px";
				mb.style.top = pointY + "px";
				break;
			case 3:
				arrow.style.display = "block";
				arrow.src = "images/arrow.bottom.right.png";
				tb.style.top = -arrowHeight + "px";
				//arrow.style.top = (parseInt(tb.height) + 1) + "px";
				arrow.style.top = (tableHeight + 1) + "px";
				mb.style.left = (pointX - arrowOffset - parseInt(arrow.width)) + "px";
				mb.style.top = (pointY - tableHeight - arrowHeight) + "px";
				break;
			case 4:
				arrow.style.display = "block";
				arrow.src = "images/arrow.bottom.left.png";
				tb.style.top = -parseInt(arrow.height) + "px";
				//arrow.style.top = (parseInt(tb.height) + 1) + "px";
				arrow.style.top = (tableHeight + 1) + "px";
				mb.style.left = (pointX - arrowOffset) + "px";
				mb.style.top = (pointY - tableHeight - arrowHeight) + "px";
				break;
			default:
				arrow.style.display = "none";
		}
		
		msg.innerHTML = message;
		DisplayOn(mb.id);
	}
}

