// Sulek JS Package 2000
// Layers Library
// All rights reserved by Sulek
// e-mail: sulek@shnet.pl

// UWAGA -KAZDY DIV POWINIEN BYC OBIEKTEM ! MUSZE TO ZMIENIC W NASTEPNEJ WERSJI !
// UWAGA -KAZDY DIV POWINIEN BYC OBIEKTEM ! MUSZE TO ZMIENIC W NASTEPNEJ WERSJI !
// UWAGA -KAZDY DIV POWINIEN BYC OBIEKTEM ! MUSZE TO ZMIENIC W NASTEPNEJ WERSJI !
// UWAGA -KAZDY DIV POWINIEN BYC OBIEKTEM ! MUSZE TO ZMIENIC W NASTEPNEJ WERSJI !
// UWAGA -KAZDY DIV POWINIEN BYC OBIEKTEM ! MUSZE TO ZMIENIC W NASTEPNEJ WERSJI !


// -----------------------
//  detekcja przegladarki 
// -----------------------
// ? true:false  - skrotowy zapis instrukcji
//    if(nn4) { nn4 = 1 } else { nn4 = 0 }


nn4 = (document.layers)? true:false;
ie4 = (document.all)? true:false;


// ===========
// = FUNCKJE =
// ===========

// ----------------------------------------
//  przesuwanie warstwy div na pozycje x,y
// ----------------------------------------
function MoveTo(div,x,y) 
{
  if(nn4)  // Navigator
  {
    document.layers[div].left = x;
    document.layers[div].top = y;
  } 
  else if(ie4) 
  { 
    document.all[div].style.left = x;
    document.all[div].style.top = y;
  }
}

// ----------------------------------------
//  pokazywanie warstwy
// ----------------------------------------

function Show(div)
{
  if(nn4) // Netscape
  {
    document.layers[div].visibility = "show";
  } 
  else if(ie4) // IE
  {
    document.all[div].style.visibility = "visible";
  }
}

// ----------------------------------------
//  ukrywanie warstwy
// ----------------------------------------

function Hide(div)
{ 
  if(nn4) 
  {
    document.layers[div].visibility = "hide";
  } 
  else if(ie4)
  {
    document.all[div].style.visibility = "hidden";
  }
}
// ----------------------------------------
//   Przesun blok div o wektor [dx,dy]
// ----------------------------------------
function MoveBy(div,dx,dy) 
{
  if(nn4) 
  {
    document.layers[div].left = document.layers[div].left  + dx;
    document.layers[div].top = document.layers[div].top + dy;
  } 
  else if(ie4) 
  {
    document.all[div].style.left = document.all[div].offsetLeft + dx;
    document.all[div].style.top = document.all[div].offsetTop + dy;
  }
}


// ----------------------------------------
//  zmien atrybuty czcionki warstwy
// ----------------------------------------

function ChangeFont(div, color, size)
{ 
  if(nn4) 
  {
    document.layers[div].style.color = color;
    document.layers[div].style.size = size;

  } 
  else if(ie4)
  {
    document.all[div].style.color = color;
    document.all[div].style.fontSize= size;
  }
}

// ----------------------------------------
//  zmien kolejnosc z-index
// ----------------------------------------

function ChangeZindex(div, number)
{ 
  if(nn4) 
  {
    document.layers[div].style.zIndex = number;

  } 
  else if(ie4)
  {
    document.all[div].style.zIndex = number;
  }
}

// ----------------------------------------
//  time bloku
// jesli wyswietlic == yes rezultat wypisywany jest jako alert.
// Niezaleznie od wyswietlic pozycja zapisywana jest w lewa i gora
// ----------------------------------------

function pozycja(div, wyswietlic) 
{
  if(nn4) 
  {
    lewa = document.layers[div].left;
    gora = document.layers[div].top;
  } 
  else if(ie4) 
  {
    lewa = document.all[div].style.pixelLeft;
    gora = document.all[div].style.pixelTop;
  }
  
  if (wyswietlic == 'yes')
  {
    window.alert('Położenie ' +  div + ' od lewej = ' + lewa + ', od góry = ' + gora);   // show results
  }
}

// ----------------------------------------
//  przycinanie bloku do ...
// Jesli wartswa jest przycieta "powyzej swoich rozmiarow" to w NN bedzie to widoczne, a w IE nie !
// ----------------------------------------

function clipTo(div, top, right, bottom, left)
{
  if(nn4) 
  {
    document.layers[div].clip.top = top;
    document.layers[div].clip.right = right;
    document.layers[div].clip.bottom = bottom;
    document.layers[div].clip.left = left;
  } 
  else if(ie4)
  {
    document.all[div].style.clip = "rect(" + top + " " + right + " " + bottom + " " + left + ")";
  }
}


// ----------------------------------------
// przycinanie bloku o
// ----------------------------------------

function clipBy(div, top, right, bottom, left) 
{
  if(nn4) 
  {
    document.layers[div].clip.top += top;
    document.layers[div].clip.right += right;
    document.layers[div].clip.bottom += bottom;
    document.layers[div].clip.left += left;
  } 
  else if(ie4)
// jesli chodzi o clip'a to IE jest naprawde wkurzajacy ! NN obsluguje to lepiej !
//  document.all['nazwaBloku'].style.clip
//  wartoscia clip jest string:
//  "rect(10px 0px 150px 10px)"
  {
    // zaczynamy motanie ;-)
    ie_clip = document.all[div].style.clip; 
    ie_clip = ie_clip.substring(5, ie_clip.length-1); // zapisanie danych do tablicy
    ie_clip_wart = ie_clip.split("px"); //usuniecie 'px'

    top += parseInt(ie_clip_wart [0]);
    right += parseInt(ie_clip_wart [1]);
    bottom += parseInt(ie_clip_wart [2]);
    left += parseInt(ie_clip_wart [3]);
                        
    document.all[div].style.clip = "rect(" + top + "px " + right + "px " + bottom + "px " + left + "px)";
  }
}


// ----------------------------------------
// animacja div'a po kwadracie (dlugosc - bok kwadratu)
// ----------------------------------------

numer= 0;  
// UWAGA -KAZDY DIV POWINIEN BYC OBIEKTEM ! MUSZE TO ZMIENIC W NASTEPNEJ WERSJI !

function Kwadrat(div, dlugosc)
{ 
  pozycja(div, 'no'); // pozycja div'a zapisana do lewa i gora
  // zapisanie poczatkowych wartosci
  ++numer;
  if (numer==1)
  {
    default_left = lewa;
    default_top  = gora;
  }

  // left x top: 200 x 250
  if (lewa < default_left+dlugosc && gora==default_top)  // w prawo
  {
    MoveBy(div, 10, 0)
  }
  else if (lewa==default_left+dlugosc && gora<default_top+dlugosc)  // w dol
  {
    MoveBy(div, 0, 10)
  }
  else if (lewa>default_left && gora==default_top+dlugosc)  // w lewo
  {
    MoveBy(div, -10, 0)
  }
  else if (lewa==default_left && gora>default_left)  // w lewo
  {
    MoveBy(div, 0, -10)
  }

  FUNKCJA = 'Kwadrat("'+ div +'",' + dlugosc +')';
  setTimeout(FUNKCJA, 40);
}

// ----------------------------------------
// zmiana zawartosci div'a
// ----------------------------------------
function writeDiv(div, text) 
{
  if(nn4) 
  {
    document.layers[div].document.open();
    document.layers[div].document.write(text); 
    document.layers[div].document.close();		
  }
  else if(ie4) 
  {
    document.all[div].innerHTML = text;
  }
}

//***********************************************//
//** NEW - BETA ONLY, MANY BUGS, ERRORS HERE ! **//
//***********************************************//

// ----------------------------------------
// efektowne rozwijanie warstwy
// ----------------------------------------

numer= 0;
function odslonDolDiv(div)
{
  if (numer == 0) 
  {
    ++numer;
    clipTo(div, 0, 150, 0, 0); // jezeli pierwszy raz f. wywolana to przytnij div'a

    FUNKCJA = 'odslonDolDiv("' + div + '")';
  }


  if(nn4) 
  {
     dol = document.layers[div].clip.bottom;
  }
  else if(ie4)
  {
    // zaczynamy motanie ;-)
    ie_clip = document.all[div].style.clip; 
    ie_clip = ie_clip.substring(5, ie_clip.length-1); // zapisanie danych do tablicy
    ie_clip_wart = ie_clip.split("px"); //usuniecie 'px'

    dol = parseInt(ie_clip_wart [2]);
  }


  if (dol < 200)
  {
     clipBy(div, 0, 0, 3, 0);
     setTimeout(FUNKCJA, 10);
  }
  else 
  {
    numer=0; // umozliwia ponowne odsloniecie
  }
}

// ----------------------------------------
// przesuwa div'a po okregu 
// srodek okregu P(ox, oy); r- promien; kat;
// ----------------------------------------
function moveCircle(div,ox,oy,r,kat) {
	if(nn4) {
                // wzory dostepne pod adresem http://coders.shnet.pl/ w dziale Pascal
		document.layers[div].left = ox + r*Math.cos(kat*Math.PI/180);
		document.layers[div].top = oy - r*Math.sin(kat*Math.PI/180);
	} else if(ie4) {
		document.all[div].style.left = ox + r*Math.cos(kat*Math.PI/180);
		document.all[div].style.top = oy - r*Math.sin(kat*Math.PI/180);
	}
}

// poczatkowy kat
kat = 0;


// ----------------------------------------
// Wywoluj ta funckje, aby poruszac div'a po okregu. Korzystaz f. moveCircle()
// ----------------------------------------
function okrag(div, ox, oy, r) 
{
  moveCircle(div, ox, oy, r, kat); //przesuwanie
  kat += 5;                        // zwiekszamy kat (im > tym szybciej)

  // kolejny ruch
  setTimeout("okrag('"+div +"'," + ox + "," + oy +"," + r + ")", 20);
}

// ----------------------------------------
// pionowy scroll div'a.
// ----------------------------------------


//function scroll(div, direction, amount) 
//{
//  value = direction*amount;
//  // najpierw przycinamy warstwe;
//  clipBy(div, value, 0, value, 0);
//  //a potem ja przesywamy
//  moveBy(div, 0, -value);
////}