//***********************************************************************************************
//  Scrolls 1.00  --  This notice must remain untouched at all times.
//  Copyright Alfred Kaliwoda 2002. All rights reserved. (POLAND)
//  http://www.alfs.prv.pl
//  Last modified: 20-03-2002.
//***********************************************************************************************
//  This script can be use by free and commercial
//  Only one condition is don't remove this comment
//  In case of modification of script must be paste note about changes
//***********************************************************************************************
//  Scrolls 1.00  --  Ten tekst nie może być usuwany.
//  Prawa autorskie: Alfred Kaliwoda 2002. Wszystkie prawa zastrzeżone. (POLSKA)
//  http://www.alfs.prv.pl
//  ostatnia modyfikacja: 20-03-2002.
//***********************************************************************************************
//  Skrypt ten może być używany zarówno w produktach darmowych, jak i komercyjnych
//  Jedynym warunkiem jest pozostawienie całego tego komentarza
//  W przypadku modyfikacji skryptu, należy pod tym komentarzem zamieścić adnotacje o zmianach
//***********************************************************************************************


//SEKCJA ZMIENNYCH GLOBALNYCH - POCZĄTEK

//====================================================================

/*
Stałe do przewijania (scrollowania) DIV'a
*/
//Sposób przewijania: przewijanie poziome
var SCROLL_DIV_ORIEN_HORIZONTAL = 10;
//Sposób przewijania: przewijanie pionowe
var SCROLL_DIV_ORIEN_VERTICAL = 20;

//Kierunek początkowy przewijania: góra->dół (lewo->prawo)
var SCROLL_DIV_DIRECTION_FORWARD = 10;
////Kierunek początkowy przewijania: dół->góra (prawo->lewo)
var SCROLL_DIV_DIRECTION_BACKWARD = 20;

//Rodzaj powtarzania: w kółko, tzn: do końca, rozpoczyna z powrotem od miejsca, w którym zaczęło; ale idzie jednym ciągiem (nie chowa się całe)
var SCROLL_DIV_REPEAT_LOOP = 10;
//Rodzaj powtarzania: w kółko, tzn: do końca, chowa się i rozpoczyna z powrotem od miejsca, w którym zaczęło
var SCROLL_DIV_REPEAT_AGAIN = 20;
//Rodzaj powtarzania: do końca, następnie "odbija się" i wraca odwrotną drogą
var SCROLL_DIV_REPEAT_YOYO = 30;

//====================================================================

var TimerID = null;
var BannerMessages = new Array();

//====================================================================

//SEKCJA ZMIENNYCH GLOBALNYCH - KONIEC

//====================================================================

function GetRandom(Max)
{
	var Now = new Date();
	var Num = Now.getTime() * Now.getSeconds() * Math.random();
	return Num % Max;
}

function ClearState(XLength)
{
	var State = "";
	if (XLength==null) XLength = 0;
	for (i=1; i<=XLength; ++i) State += "0";
	return State;
}

function Banner_Show(Speed, Pause, State, MessageNr)
{
var j=0;
var XStr="";
var fl_Full = true;
var Num = 0;
	
	if (MessageNr==null) MessageNr = 0;
	if (Speed==null) Speed = 10;
	if (Pause==null) Pause = 1500;
	if (State==null) State = ClearState(BannerMessages[MessageNr].length);
	
	fl_Full = true;
	for (j=0; (j<State.length) && (fl_Full); ++j) if (State.charAt(j)==0) fl_Full = false;
	if (!fl_Full)
	{
		Num = GetRandom(BannerMessages[MessageNr].length);
		while (State.charAt(Num)!="0") Num = GetRandom(BannerMessages[MessageNr].length);
		State = State.substring(0, Num) + "1" + State.substring(Num + 1, State.length);
	}
	
	if (fl_Full)
	{
		MessageNr++;
		if (MessageNr>=BannerMessages.length) MessageNr = 0;
		State = ClearState(BannerMessages[MessageNr].length);
		TimerID = setTimeout("Banner_Show("+Speed+","+Pause+",'"+State+"',"+MessageNr+")", Pause);
	}
	else
	{
		XStr = "";
		for (j=0; j<State.length; ++j) XStr += (State.charAt(j) == "1") ? BannerMessages[MessageNr].charAt(j) : "     ";
		window.status = XStr;
		TimerID = setTimeout("Banner_Show("+Speed+","+Pause+",'"+State+"',"+MessageNr+")", Speed);
	}
}

function Banner(Speed, Pause, fl_Start)
{
	if (fl_Start==null) fl_Start = true;
	
	if (fl_Start)
	{
		if (Speed==null) Speed = 10;
		if (Pause==null) Pause = 1500;
		
		Banner(null,null,false);
		Banner_Show(Speed, Pause);
	}
	else
	{
		if (TimerID!=null) clearTimeout(TimerID);
		TimerID = null;
	}
}




function ScrollTitle(Delay, Text)
{
	if (Text==null)
		Text = document.title;
	else
		document.title = Text;
	Text = Text.substring(1,Text.length)+Text.charAt(0);
	setTimeout("ScrollTitle("+Delay+",'"+Text+"')", Delay);
}


function ScrollStatus(Delay, Text)
{
	if (Text==null)
		Text = self.status;
	else
		self.status = Text;
	Text = Text.substring(1,Text.length)+Text.charAt(0);
	setTimeout("ScrollStatus("+Delay+",'"+Text+"')", Delay);
}



/*
Ustawia znacznik _ext_scroll_paused.
Parametry:
pDIV_Id - id DIV-a
pValue - wartość do ustawienia; jeżeli null lub nie podany, przełącza z obecnej wartości na drugą (wartości dopuszczalne: 1 lub 0)
*/
function ScrollDIV_Scroll_Paused_Set(pDIV_Id, pValue)
{
	var vDIV = document.getElementById(pDIV_Id);
	
	var vScroll_Paused_Nr = parseInt(vDIV.getAttribute("_ext_scroll_paused"));
	
	if (pValue != null)
	{
		pValue = parseInt(pValue);
		
		if (
				(pValue != 0) &&
				(pValue != 1)
			)
		{
			pValue = parseInt(0);
		}
		
		vScroll_Paused_Nr = pValue;
	}
	else
	{
		if (
				(vScroll_Paused_Nr != 0) &&
				(vScroll_Paused_Nr != 1)
			)
		{
			vScroll_Paused_Nr = 0;
		}
		
		if (vScroll_Paused_Nr == 0)
		{
			vScroll_Paused_Nr = 1;
		}
		else
		{
			vScroll_Paused_Nr = 0;
		}
	}
	
	vDIV.setAttribute("_ext_scroll_paused", vScroll_Paused_Nr, 0);
}

function ScrollDIV_Main(pDIV_Id, pStartX, pStartY, pEndX, pEndY, pStepX, pStepY, pRepeatMode)
{
	var vDIV = document.getElementById(pDIV_Id);
	
	var vScroll_Paused = (parseInt(vDIV.getAttribute("_ext_scroll_paused")) == 1);
	
	pStartX = parseInt(pStartX);
	pStartY = parseInt(pStartY);
	
	pEndX = parseInt(pEndX);
	pEndY = parseInt(pEndY);
	
	pStepX = parseInt(pStepX);
	pStepY = parseInt(pStepY);
	
	var vStartX = pStartX;
	var vStartY = pStartY;
	
	var vEndX = pEndX;
	var vEndY = pEndY;
	
	var vStepX = pStepX;
	var vStepY = pStepY;
	
	var vCurPos_Left = parseInt(vDIV.getAttribute("_ext_left"));
	var vCurPos_Top = parseInt(vDIV.getAttribute("_ext_top"));
	
	var vNewPos_Left = vCurPos_Left + pStepX;
	var vNewPos_Top = vCurPos_Top + pStepY;
	
	var vDoX = (
					(
						(vStepX > 0) &&
						(vCurPos_Left < vEndX)
					) ||
					(
						(vStepX < 0) &&
						(vCurPos_Left > vEndX)
					)
				);
	
	var vDoY = (
					(
						(vStepY > 0) &&
						(vCurPos_Top < vEndY)
					) ||
					(
						(vStepY < 0) &&
						(vCurPos_Top > vEndY)
					)
				);
	
	if (
			(vStepX != 0) ||
			(vStepY != 0)
		)
	{
		if (vDoX || vDoY)
		{
			vDIV.setAttribute("_ext_left", vNewPos_Left, 0);
			vDIV.setAttribute("_ext_top", vNewPos_Top, 0);
			
			vDIV.style.left = vNewPos_Left + "px";
			vDIV.style.top = vNewPos_Top + "px";
		}
		else
		{
			var vInterval_Id_Nr = vDIV.getAttribute("_ext_interval_id_nr");
			var vInterval_Id_Nr_Str = String(vInterval_Id_Nr).toUpperCase();
			if (vInterval_Id_Nr_Str != "NULL")
			{
				clearInterval(vInterval_Id_Nr);
			}
			
			switch (pRepeatMode)
			{
				case SCROLL_DIV_REPEAT_AGAIN:
				{
					vDIV.setAttribute("_ext_left", vStartX, 0);
					vDIV.setAttribute("_ext_top", vStartY, 0);
					
					vDIV.style.left = vStartX + "px";
					vDIV.style.top = vStartY + "px";
					
					vStepX = parseInt(vDIV.getAttribute("_ext_scroll_stepx"));
					vStepY = parseInt(vDIV.getAttribute("_ext_scroll_stepy"));
					
					var vDelay = parseInt(vDIV.getAttribute("_ext_scroll_delay"));
					
					var vSlowOnMouse_StepX = parseInt(vDIV.getAttribute("_ext_scroll_slowonmouse_stepx"));
					var vSlowOnMouse_StepY = parseInt(vDIV.getAttribute("_ext_scroll_slowonmouse_stepy"));
					
					var vSlowOnMouse_Delay = parseInt(vDIV.getAttribute("_ext_scroll_slowonmouse_delay"));
					
					break;
				}
				case SCROLL_DIV_REPEAT_YOYO:
				{
					var vX = vStartX;
					var vY = vStartY;
					
					vStartX = vEndX;
					vStartY = vEndY;
					
					vEndX = vX;
					vEndY = vY;
					
					vDIV.setAttribute("_ext_startx", vStartX, 0);
					vDIV.setAttribute("_ext_starty", vStartY, 0);
					
					vDIV.setAttribute("_ext_endx", vEndX, 0);
					vDIV.setAttribute("_ext_endy", vEndY, 0);
					
					
					vStepX = parseInt(vDIV.getAttribute("_ext_scroll_stepx")) * (-1);
					vStepY = parseInt(vDIV.getAttribute("_ext_scroll_stepy")) * (-1);
					
					var vDelay = parseInt(vDIV.getAttribute("_ext_scroll_delay"));
					
					var vSlowOnMouse_StepX = parseInt(vDIV.getAttribute("_ext_scroll_slowonmouse_stepx")) * (-1);
					var vSlowOnMouse_StepY = parseInt(vDIV.getAttribute("_ext_scroll_slowonmouse_stepy")) * (-1);
					
					var vSlowOnMouse_Delay = parseInt(vDIV.getAttribute("_ext_scroll_slowonmouse_delay"));
					
					
					vDIV.setAttribute("_ext_scroll_stepx", vStepX, 0);
					vDIV.setAttribute("_ext_scroll_stepy", vStepY, 0);
					
					vDIV.setAttribute("_ext_scroll_slowonmouse_stepx", vSlowOnMouse_StepX, 0);
					vDIV.setAttribute("_ext_scroll_slowonmouse_stepy", vSlowOnMouse_StepY, 0);
					
					break;
				}
			}
			
			if (vScroll_Paused)
			{
				vStepX = vSlowOnMouse_StepX;
				vStepY = vSlowOnMouse_StepY;
				
				vDelay = vSlowOnMouse_Delay;
			}
			
			vInterval_Id_Nr = setInterval("ScrollDIV_Main('" + pDIV_Id + "', " + vStartX + ", " + vStartY + ", " + vEndX + ", " + vEndY + ", " + vStepX + ", " + vStepY + ", " + pRepeatMode + ");", vDelay);
			
			vDIV.setAttribute("_ext_interval_id_nr", vInterval_Id_Nr, 0);
		}
	}
}

function ScrollDIV_Scroll_Go(pDIV_Id, pPauseModeOn)
{
	var vResult = null;
	
	var vDIV = document.getElementById(pDIV_Id);
	
	var vScroll_Paused = (parseInt(vDIV.getAttribute("_ext_scroll_paused")) == 1);
	var vInterval_Id_Nr = vDIV.getAttribute("_ext_interval_id_nr");
	
	var vInterval_Id_Nr_Str = String(vInterval_Id_Nr).toUpperCase();
	
	var vStartX = parseInt(vDIV.getAttribute("_ext_startx"));
	var vStartY = parseInt(vDIV.getAttribute("_ext_starty"));
	
	var vEndX = parseInt(vDIV.getAttribute("_ext_endx"));
	var vEndY = parseInt(vDIV.getAttribute("_ext_endy"));
	
	var vRepeatMode = parseInt(vDIV.getAttribute("_ext_scroll_repeat_mode"));
	
	var vScroll_IsOn = (parseInt(vDIV.getAttribute("_ext_on")) == 1);
	
	if (vScroll_IsOn)
	{
		if (vInterval_Id_Nr_Str != "NULL")
		{
			clearInterval(vInterval_Id_Nr);
		}
		
		if (pPauseModeOn)
		{
			ScrollDIV_Scroll_Paused_Set(pDIV_Id, 1);
			
			var vDelay = parseInt(vDIV.getAttribute("_ext_scroll_slowonmouse_delay"));
			var vStepX = parseInt(vDIV.getAttribute("_ext_scroll_slowonmouse_stepx"));
			var vStepY = parseInt(vDIV.getAttribute("_ext_scroll_slowonmouse_stepy"));
			
			vInterval_Id_Nr = setInterval("ScrollDIV_Main('" + pDIV_Id + "', " + vStartX + ", " + vStartY + ", " + vEndX + ", " + vEndY + ", " + vStepX + ", " + vStepY + ", " + vRepeatMode + ");", vDelay);
			
			vDIV.setAttribute("_ext_interval_id_nr", vInterval_Id_Nr, 0);
		}
		else
		{
			ScrollDIV_Scroll_Paused_Set(pDIV_Id, 0);
			
			var vDelay = parseInt(vDIV.getAttribute("_ext_scroll_delay"));
			var vStepX = parseInt(vDIV.getAttribute("_ext_scroll_stepx"));
			var vStepY = parseInt(vDIV.getAttribute("_ext_scroll_stepy"));
			
			vInterval_Id_Nr = setInterval("ScrollDIV_Main('" + pDIV_Id + "', " + vStartX + ", " + vStartY + ", " + vEndX + ", " + vEndY + ", " + vStepX + ", " + vStepY + ", " + vRepeatMode + ");", vDelay);
			
			vDIV.setAttribute("_ext_interval_id_nr", vInterval_Id_Nr, 0);
		}
	}
	
	if (vInterval_Id_Nr_Str == "NULL")
	{
		vInterval_Id_Nr = null;
	}
	
	vResult = vInterval_Id_Nr;
	
	return(vResult);
}

function ScrollDIV_Scroll_Paused_Switch(pDIV_Id, pPauseModeOn)
{
	var vResult = null;
	
	var vDIV = document.getElementById(pDIV_Id);
	
	var vScroll_Paused = (parseInt(vDIV.getAttribute("_ext_scroll_paused")) == 1);
	
	if (pPauseModeOn)
	{
		if (!vScroll_Paused)
		{
			ScrollDIV_Scroll_Go(pDIV_Id, pPauseModeOn);
		}
 	}
	else
	{
		if (vScroll_Paused)
		{
			ScrollDIV_Scroll_Go(pDIV_Id, pPauseModeOn);
		}
 	}
}

/*
Uruchamia scrollowanie (przewijanie) DIV-a.
Parametry:
pDIV_Id				- identyfikator (id) html-owy DIV-a, który ma sie przewijać
pStartX				- pozycja startowa; współrzędna x
pStartY				- pozycja startowa; współrzędna y
pEndPos				- pozycja końcowa; współrzędna x lub y, w zależności od sposobu przewijania (poziomy czy pionowy) [patrz parametr pOrientation]
pOrientation		- sposób przewijania (poziomy czy pionowy) - sekcja zmiennych globalnych
pDelay				- opóźnienie przesuwania (milisekundy); im większa wartość, tym wolniej
pDirection			- kierunek początkowy przewijania - sekcja zmiennych globalnych
pRepeatMode			- rodzaj powtarzania - sekcja zmiennych globalnych
pSlowOnMouse		- czy ma obsługiwać "zwolniony tryb" (true), czy nie (false) po najechaniu myszą na DIV-a [opcjonalny; domyślnie: false]
pStep				- skok (piksele); im większy, tym szybciej, ale bardziej "skokowo" [opcjonalny; domyślnie: 1]
pSlowOnMouse_Delay	- opóźnienie przesuwania dla trybu "wolnego" [opcjonalny; domyślnie: taki, jak pDelay]
pSlowOnMouse_Step	- skok dla trybu "wolnego" [opcjonalny; domyślnie: 1]
pStartX				- początkowa pozycja startowa; współrzędna x [opcjonalny; domyślnie: taki, jak pStartX]
pStartY				- początkowa pozycja startowa; współrzędna y [opcjonalny; domyślnie: taki, jak pStartY]
pAutorun			- czy ma automatycznie uruchomić "scrollowanie" (true), czy nie (false) [opcjonalny; domyślnie: true]
*/
function ScrollDIV_Manually(pDIV_Id, pStartX, pStartY, pEndPos, pOrientation, pDelay, pDirection, pRepeatMode, pSlowOnMouse, pStep, pSlowOnMouse_Delay, pSlowOnMouse_Step, pStartPosX, pStartPosY, pAutorun)
{
	var vResult = null;
	
	var vInterval_Id_Nr = null;
	
	if (pSlowOnMouse == null)
	{
		pSlowOnMouse = false;
	}
	
	if (pStep == null)
	{
		pStep = 1;
	}
	
	if (pSlowOnMouse_Delay == null)
	{
		pSlowOnMouse_Delay = pDelay;
	}
	
	if (pSlowOnMouse_Step == null)
	{
		pSlowOnMouse_Step = 1;
	}
	
	if (pStartPosX == null)
	{
		pStartPosX = pStartX;
	}
	
	if (pStartPosY == null)
	{
		pStartPosY = pStartY;
	}
	
	if (pAutorun == null)
	{
		pAutorun = true;
	}
	
	pStartPosX = parseInt(pStartPosX);
	pStartPosY = parseInt(pStartPosY);
	
	pStartX = parseInt(pStartX);
	pStartY = parseInt(pStartY);
	
	pEndPos = parseInt(pEndPos);
	
	pDelay = parseInt(pDelay);
	
	pStep = parseInt(pStep);
	
	var vStepX = parseInt(0);
	var vStepY = parseInt(0);
	
	var vEndX = pStartX;
	var vEndY = pStartY;
	
	var vSlowOnMouse_StepX = parseInt(0);
	var vSlowOnMouse_StepY = parseInt(0);
	
	var vDIV = document.getElementById(pDIV_Id);
	
	vDIV.style.margin = "0 0 0 0";
	vDIV.style.position = "absolute";
	vDIV.style.borderWidth = 0 + "px";
	
	ScrollDIV_Scroll_Paused_Set(pDIV_Id, 0);
	
	switch (pOrientation)
	{
		case SCROLL_DIV_ORIEN_HORIZONTAL:
		{
			if (pDirection == SCROLL_DIV_DIRECTION_FORWARD)
			{
				vStepX = pStep;
				vSlowOnMouse_StepX = pSlowOnMouse_Step;
			}
			else
			{
				vStepX = -pStep;
				vSlowOnMouse_StepX = -pSlowOnMouse_Step;
			}
			
			vStepY = 0;
			vSlowOnMouse_StepY = 0;
			
			vEndX = pEndPos;
			
			break;
		}
		case SCROLL_DIV_ORIEN_VERTICAL:
		{
			if (pDirection == SCROLL_DIV_DIRECTION_FORWARD)
			{
				vStepY = pStep;
				vSlowOnMouse_StepY = pSlowOnMouse_Step;
			}
			else
			{
				vStepY = -pStep;
				vSlowOnMouse_StepY = -pSlowOnMouse_Step;
			}
			
			vStepX = 0;
			vSlowOnMouse_StepX = 0;
			
			vEndY = pEndPos;
			
			break;
		}
		default:
		{
			vStepX = 0;
			vStepY = 0;
			
			vSlowOnMouse_StepX = 0;
			vSlowOnMouse_StepY = 0;
		}
	}
	
	vDIV.setAttribute("_ext_on", "1", 0);
	
	vDIV.setAttribute("_ext_left", pStartPosX, 0);
	vDIV.setAttribute("_ext_top", pStartPosY, 0);
	
	vDIV.setAttribute("_ext_startx", pStartX, 0);
	vDIV.setAttribute("_ext_starty", pStartY, 0);
	
	vDIV.setAttribute("_ext_endx", vEndX, 0);
	vDIV.setAttribute("_ext_endy", vEndY, 0);
	
	
	vDIV.style.left = pStartPosX + "px";
	vDIV.style.top = pStartPosY + "px";
	
	
	if (pSlowOnMouse)
	{
		vDIV.onmouseover = function()
		{
			ScrollDIV_Scroll_Paused_Switch(pDIV_Id, true);
		};
		
		vDIV.onmouseout = function()
		{
			ScrollDIV_Scroll_Paused_Switch(pDIV_Id, false);
		};
	}
	else
	{
		vDIV.onmouseover = function()
		{
		};
		
		vDIV.onmouseout = function()
		{
		};
	}
	
	vDIV.setAttribute("_ext_scroll_repeat_mode", pRepeatMode, 0);
	
	vDIV.setAttribute("_ext_scroll_delay", pDelay, 0);
	
	vDIV.setAttribute("_ext_scroll_stepx", vStepX, 0);
	vDIV.setAttribute("_ext_scroll_stepy", vStepY, 0);
	
	vDIV.setAttribute("_ext_scroll_slowonmouse_delay", pSlowOnMouse_Delay, 0);
	
	vDIV.setAttribute("_ext_scroll_slowonmouse_stepx", vSlowOnMouse_StepX, 0);
	vDIV.setAttribute("_ext_scroll_slowonmouse_stepy", vSlowOnMouse_StepY, 0);
	
	if (pAutorun)
	{
		vInterval_Id_Nr = ScrollDIV_Scroll_Go(pDIV_Id, false);
	}
	
	var vInterval_Id_Nr_Str = String(vInterval_Id_Nr).toUpperCase();
	
	if (vInterval_Id_Nr_Str == "NULL")
	{
		vInterval_Id_Nr = null;
	}
	
	vResult = vInterval_Id_Nr;
	
	return(vResult);
}

/*
Uruchamia scrollowanie (przewijanie) DIV-a.
Parametry:
pDIV_Id_Main		- identyfikator (id) html-owy głównego DIV-a (tego, na którym jest ten, który ma się przewijać)
						dla tego, który ma sie przewijać, musi być zarezerwowany id o wzorze: pDIV_Id_Main_scroll, czyli:
						jeżeli pDIV_Id_Main będzie "div_main", wówczas dla tego, który ma się przewijać, musi być zarezerwowany id: "div_main_scroll";
						id może być ustawione lub nie; jeżeli nie będzie ustawione, zostanie ustawione automatycznie podczas wywołania funkcji
pOrientation		- sposób przewijania (poziomy czy pionowy) - sekcja zmiennych globalnych
pDelay				- opóźnienie przesuwania (milisekundy); im większa wartość, tym wolniej
pDirection			- kierunek początkowy przewijania - sekcja zmiennych globalnych
pRepeatMode			- rodzaj powtarzania - sekcja zmiennych globalnych
pSlowOnMouse		- czy ma obsługiwać "zwolniony tryb" (true), czy nie (false) po najechaniu myszą na DIV-a [opcjonalny; domyślnie: false]
pStep				- skok (piksele); im większy, tym szybciej, ale bardziej "skokowo" [opcjonalny; domyślnie: 1]
pSlowOnMouse_Delay	- opóźnienie przesuwania dla trybu "wolnego" [opcjonalny; domyślnie: taki, jak pDelay]
pSlowOnMouse_Step	- skok dla trybu "wolnego" [opcjonalny; domyślnie: 1]
pStartX				- początkowa pozycja startowa; współrzędna x [opcjonalny; domyślnie: taki, jak pStartX]
pStartY				- początkowa pozycja startowa; współrzędna y [opcjonalny; domyślnie: taki, jak pStartY]
pAutoResize			- czy ma automatycznie dostosować wielkość głównego DIV-a, do wielkości DIV-a scrollowanego (true), czy nie (false) [opcjonalny; domyślnie: true]
pAutorun			- czy ma automatycznie uruchomić "scrollowanie" (true), czy nie (false) [opcjonalny; domyślnie: true]

UWAGA !
Nieopisane parametry - patrz opis funkcji ScrollDIV_Manually
*/
function ScrollDIV(pDIV_Id_Main, pOrientation, pDelay, pDirection, pRepeatMode, pSlowOnMouse, pStep, pSlowOnMouse_Delay, pSlowOnMouse_Step, pStartPosX, pStartPosY, pAutoResize, pAutorun)
{
	var vResult = null;
	
	if (pSlowOnMouse == null)
	{
		pSlowOnMouse = false;
	}
	
	if (pAutoResize == null)
	{
		pAutoResize = true;
	}
	
	var vStartX = 0;
	var vStartY = 0;
	
	var vEndPos = 0;
	
	vStartX = parseInt(vStartX);
	vStartY = parseInt(vStartY);
	
	vEndPos = parseInt(vEndPos);
	
	var vDIV_Id = pDIV_Id_Main + "_scroll";
	
	var vDIV_Main = document.getElementById(pDIV_Id_Main);
	var vDIV = document.getElementById(vDIV_Id);
	
	
	if (vDIV == null)
	{
		var vDIV_Main_Subs = vDIV_Main.getElementsByTagName("div");
		
		if (vDIV_Main_Subs.length > 0)
		{
			vDIV = vDIV_Main_Subs[0];
		}
	}
	
	
	if (vDIV != null)
	{
		vDIV.id = vDIV_Id;
		
		vDIV_Main.style.overflow = "hidden";
		vDIV_Main.style.borderWidth = 0 + "px";
		
		vDIV.style.margin = "0 0 0 0";
		vDIV.style.position = "absolute";
		vDIV.style.borderWidth = 0 + "px";
		
		switch (pOrientation)
		{
			case SCROLL_DIV_ORIEN_HORIZONTAL:
			{
				if (pDirection == SCROLL_DIV_DIRECTION_FORWARD)
				{
					vStartX = -vDIV.offsetWidth;
					vStartY = 0;
					
					vEndPos = vDIV_Main.offsetWidth;
				}
				else
				{
					vStartX = vDIV_Main.offsetWidth;
					vStartY = 0;
					
					vEndPos = -vDIV.offsetWidth;
				}
				
				if (pAutoResize)
				{
					vDIV_Main.style.height = vDIV.offsetHeight + "px";
				}
				
				break;
			}
			case SCROLL_DIV_ORIEN_VERTICAL:
			{
				if (pDirection == SCROLL_DIV_DIRECTION_FORWARD)
				{
					vStartX = 0;
					vStartY = -vDIV.offsetHeight;
					
					vEndPos = vDIV_Main.offsetHeight;
				}
				else
				{
					vStartX = 0;
					vStartY = vDIV_Main.offsetHeight;
					
					vEndPos = -vDIV.offsetHeight;
				}
				
				
				if (pAutoResize)
				{
					vDIV_Main.style.width = vDIV.offsetWidth + "px";
				}
				
				break;
			}
		}
		
		if (pSlowOnMouse)
		{
			vDIV_Main.onmouseover = function()
			{
				ScrollDIV_Scroll_Paused_Switch(vDIV_Id, true);
			};
			
			vDIV_Main.onmouseout = function()
			{
				ScrollDIV_Scroll_Paused_Switch(vDIV_Id, false);
			};
		}
		else
		{
			vDIV_Main.onmouseover = function()
			{
			};
			
			vDIV_Main.onmouseout = function()
			{
			};
		}
		
		vResult = ScrollDIV_Manually(vDIV_Id, vStartX, vStartY, vEndPos, pOrientation, pDelay, pDirection, pRepeatMode, pSlowOnMouse, pStep, pSlowOnMouse_Delay, pSlowOnMouse_Step, pStartPosX, pStartPosY, pAutorun);
	}
	
	return(vResult);
}

/*
Uruchamia scrollowanie z określonej pozycji.
Parametry:
pDIV_Id	- identyfikator (id) html-owy DIV-a
pPosX	- pozycja do wystartowania (jeżeli ustawiona wartość i inna niż null); współrzędna x
pPosY	- pozycja do wystartowania (jeżeli ustawiona wartość i inna niż null); współrzędna y
*/
function ScrollDIV_Start(pDIV_Id, pPosX, pPosY)
{
	var vResult = null;
	
	var vInterval_Id_Nr = null;
	
	var vDIV = document.getElementById(pDIV_Id);
	
	if (pPosX != null)
	{
		vDIV.style.left = pPosX + "px";
		vDIV.setAttribute("_ext_left", pPosX, 0);
	}
	
	if (pPosY != null)
	{
		vDIV.style.top = pPosY + "px";
		vDIV.setAttribute("_ext_top", pPosY, 0);
	}
	
	vInterval_Id_Nr = ScrollDIV_Scroll_Go(pDIV_Id, false);
	
	vResult = vInterval_Id_Nr;
	
	return(vResult);
}

/*
Zatrzymuje scrollowanie (przewijanie) DIV-a i ustawia go na określonej pozycji.
Parametry:
pDIV_Id	- identyfikator (id) html-owy DIV-a
pPosX	- pozycja do ustawienia (jeżeli ustawiona wartość i inna niż null); współrzędna x
pPosY	- pozycja do ustawienia (jeżeli ustawiona wartość i inna niż null); współrzędna y
*/
function ScrollDIV_Stop(pDIV_Id, pPosX, pPosY)
{
	var vDIV = document.getElementById(pDIV_Id);
	
	var vInterval_Id_Nr = vDIV.getAttribute("_ext_interval_id_nr");
	
	var vInterval_Id_Nr_Str = String(vInterval_Id_Nr).toUpperCase();
	
	if (vInterval_Id_Nr_Str != "NULL")
	{
		clearInterval(vInterval_Id_Nr);
	}
	
	vDIV.setAttribute("_ext_interval_id_nr", "NULL", 0);
	
	if (pPosX != null)
	{
		vDIV.style.left = pPosX + "px";
		vDIV.setAttribute("_ext_left", pPosX, 0);
	}
	
	if (pPosY != null)
	{
		vDIV.style.top = pPosY + "px";
		vDIV.setAttribute("_ext_top", pPosY, 0);
	}
}

/*
Uruchamia scrollowanie z określonej pozycji.
Parametry:
pDIV_Id		- identyfikator (id) html-owy DIV-a
pOn			- czy ma włączyć (true), czy wyłączyć (false) scroll'a
pAutoStart	- czy w przypadku włączenia, ma od razu wystartować (true), czy nie (false) scroll'a
pPosX	- pozycja do ustawienia (jeżeli ustawiona wartość i inna niż null); współrzędna x
pPosY	- pozycja do ustawienia (jeżeli ustawiona wartość i inna niż null); współrzędna y
*/
function ScrollDIV_OnOff(pDIV_Id, pOn, pAutoStart, pPosX, pPosY)

{
	var vResult = null;
	
	var vInterval_Id_Nr = null;
	
	var vDIV = document.getElementById(pDIV_Id);
	
	if (pOn)
	{
		vDIV.setAttribute("_ext_on", "1", 0);
		
		if (pAutoStart)
		{
			vInterval_Id_Nr = ScrollDIV_Start(pDIV_Id, pPosX, pPosY);
		}
	}
	else
	{
		ScrollDIV_Stop(pDIV_Id, pPosX, pPosY);
		
		vDIV.setAttribute("_ext_on", "0", 0);
	}
	
	vResult = vInterval_Id_Nr;
	
	return(vResult);
}

