function na_preload_img()
{ 
  var img_list = na_preload_img.arguments;
  if (document.preloadlist == null) 
    document.preloadlist = new Array();
  var top = document.preloadlist.length;
  for (var i=0; i < img_list.length-1; i++) {
    document.preloadlist[top+i] = new Image;
    document.preloadlist[top+i].src = img_list[i+1];
  } 
}

function na_change_img_src(name, nsdoc, rpath, preload)
{ 
  var img = eval((navigator.appName.indexOf('Netscape', 0) != -1) ? nsdoc+'.'+name : 'document.all.'+name);
  if (name == '')
    return;
  if (img) {
    img.altsrc = img.src;
    img.src    = rpath;
  } 
}

function na_restore_img_src(name, nsdoc)
{
  var img = eval((navigator.appName.indexOf('Netscape', 0) != -1) ? nsdoc+'.'+name : 'document.all.'+name);
  if (name == '')
    return;
  if (img && img.altsrc) {
    img.src    = img.altsrc;
    img.altsrc = null;
  } 
}

// # Page Scroll
var PageScrollMove;
var PageScrollCounterTop;
var PageScrollDifferent;
var PageScrollDifferent2;
var PageScrollFinish;
var PageScrollStart;
var PageScrollStep = 1;  // Aktualis mozgas merteke
var PageScrolloldtop = -1;  
var PageScrolln = 0;  // Gyorsulas
var PSStepStep = 1;    // Gyorsulas merteke
var PSMaxSpeed = 300;  // Max sebesseg
var PSDistance = 100;  // A felvezeto ill. leallo tav

function Set_Scroll(id){
  var myLayer = $(id);
  PageScrollCounterTop = document.viewport.getScrollOffsets().top;
  PageScrollStart = PageScrollCounterTop;
  pos = Position.cumulativeOffset(myLayer);
  PageScrollFinish = pos[1];
  PageScrollDifferent = parseInt((PageScrollCounterTop-PageScrollFinish)/2)+PageScrollFinish;
  PageScrollDifferent2 = Math.abs(parseInt((PageScrollDifferent-PageScrollFinish)/2));
  if(PageScrollCounterTop < PageScrollFinish)PageScrollMove = true;  // az oldal felfele mozgasa, scroll lefele azaz top erteke novekszik
  else PageScrollMove = false;
  Slide_Page();
}
function Slide_Page(){
  AktTop = document.viewport.getScrollOffsets().top;
  // Ugras lefele
  if(PageScrollMove){
    // Gyorsulas
    if(PageScrollCounterTop < PageScrollDifferent){
      // A megtett resze a tavnak  
      elapsed = Math.abs(PageScrollStart-AktTop);      
      // Noveles: 
      // * Nem eri el a max sebesseget
      // * A gyorsito reszen van
      // * A gyorsito resz kisebb mint a tav 1/4-e
      if(PageScrollStep < PSMaxSpeed && elapsed < PSDistance && elapsed < PageScrollDifferent2){
        PageScrollStep += Math.floor(Math.pow(2, PageScrolln));
        if(PageScrolln<90)PageScrolln += PSStepStep;
      }
    }
    // Lassulas
    else{    
      remains = Math.abs(PageScrollFinish-AktTop); // Hatralevo resze a tavnak      
      if(PageScrollStep > 2 && (remains/2) < PageScrollStep){
        PageScrollStep = Math.floor(remains/2)-1;
      }
    }
  }
  // Ugras felfele
  else{
    // Gyorsulas
    if(PageScrollCounterTop > PageScrollDifferent){
      // A megtett resze a tavnak  
      elapsed = Math.abs(PageScrollStart-AktTop);      
      // Noveles: 
      // * Nem eri el a max sebesseget
      // * A gyorsito reszen van
      // * A gyorsito resz kisebb mint a tav 1/4-e
      if(PageScrollStep < PSMaxSpeed && elapsed < PSDistance && elapsed < PageScrollDifferent2){
        PageScrollStep += Math.floor(Math.pow(2, PageScrolln));
        if(PageScrolln<90)PageScrolln += PSStepStep;
      }
    }
    // Lassulas
    else{    
      remains = Math.abs(PageScrollFinish-AktTop); // Hatralevo resze a tavnak      
      if(PageScrollStep > 2 && (remains/2) < PageScrollStep){
        PageScrollStep = Math.floor(remains/2)-1;
      }
    }
  }
  
  if(PageScrolloldtop != AktTop){    
    if(PageScrollMove)PageScrollCounterTop += PageScrollStep;
    else if(PageScrollCounterTop > PageScrollStep)PageScrollCounterTop -= PageScrollStep;
    PageScrolloldtop = AktTop;
    window.scrollTo(0, PageScrollCounterTop);
    if(PageScrollCounterTop < (PageScrollFinish - PageScrollStep) || PageScrollCounterTop > (PageScrollFinish+ PageScrollStep)){    
      setTimeout("Slide_Page()", 50);
    }
    else{
      PageScrolloldtop = -1;
      // alert("MyStop: " + PageScrollCounterTop);
      PageScrolln=0;
      PageScrollStep = 1;
    }
  }
  else{
    PageScrolloldtop = -1;
    // alert("System: " + PageScrollCounterTop);
    PageScrolln=0;
    PageScrollStep = 1;  
  }
}
// # End - Page Scroll

function position_layer(div){
  var dim = document.viewport.getDimensions();
  var myLayer = $(div);
  AktTop = document.viewport.getScrollOffsets().top;
  mywidth = myLayer.getWidth();
  myheight = myLayer.getHeight();
  // myheight += (myheight<50 ? plusheight : 0); 
  
  newLeft = (dim.width-mywidth)/2;
  if(myheight > dim.height)newtop = AktTop + 10;
  else newtop = AktTop + (dim.height-myheight)/2;
  if(newLeft < 10)newLeft = 10;
  if(newtop < 10)newtop = 10;
  
  // alert(myLayer.style.left + ' - ' + myLayer.style.top);
  myLayer.style.left = newLeft + "px";
  myLayer.style.top = newtop + "px";
}