var wmRefreshTimeout = 10;
var wmLayersObj;
var wmPage;	
var wmAllowScrolling = false;
var przeg;

function PrzegTyp() {
  this.dom=false;
  if (document.getElementById) {
    if (parseInt(navigator.appVersion) >= 5) {
	  this.typ = "ns";
	} else if (navigator.appVersion.indexOf["MSIE 5"] != -1) this.typ = "ie";
	this.ver = "5";
	this.dom = true;
  } else 
  if (document.layers) {
    this.typ = "ns";
	this.ver = "4";
  } else 
  if (document.all) {
    this.typ = "ie";
	this.ver = "4+";
  } 
}

function getPageOffset(page) {
  var old_x = page.x;
  var old_y = page.y;   
  if (przeg.typ=="ns") {
 	   page.x=window.pageXOffset;
	   page.y=window.pageYOffset;
  } else if (przeg.typ=="ie") {
	   page.x=document.body.scrollLeft;
	   page.y=document.body.scrollTop;
  }  
  if (wmAllowScrolling) {
    page.dx = -old_x + page.x;
    page.dy = -old_y + page.y;
  } else {
    window.scrollTo(0,0);  
    page.dx = 0;
    page.dy = 0;
  }
}

function Page() {
  if (przeg.typ=="ns") {
 	   this.x=window.pageXOffset;
	   this.y=window.pageYOffset;
  } else if (przeg.typ=="ie") {
	   this.x=document.body.scrollLeft;
	   this.y=document.body.scrollTop;
  }  
  this.sstop = 0;
}

function initPage(page) {
  getPageOffset(page);
  page.dx = 0;
  page.dy = 0;
  wmAllowScrolling = true;
  if (document.layers) {
    wmAllowScrolling = false;
	setTimeout("clearNetscapeShit()",1500);
  }
}

function initAll() {
  przeg = new PrzegTyp();
  window.scrollTo(0,0);  
  wmPage = new Page();
  initPage(wmPage);
  wmLayers = new Array();
  wmLayersObj = new Array();  
}


function WDMLayer(ln, x, y, w, h) { 

  this.lobj=layobj(ln);  

  this.lobj.top = y; 
  this.lobj.left = x;
  this.x = x;
  this.y = y;
  this.org_top = y;
  this.org_w = w;
  this.org_h = h;
  this.tom_y = 0;
  this.am_y = 0;
  this.ams_y = 0;
  this.dod_y = 0;
  this.sstop = 0; 
  this.func_type = 2;
  this.fallowScrollBar = true;
  this.name = ln;
}

function AddWDMLayer(wdmL) {
  wmLayersObj[wmLayersObj.length++] = wdmL;
}

function WDMShowAll() {
var i;
  for (i=0; i<wmLayersObj.length; i++) {    
      l = wmLayersObj[i];
	  layShow(l.lobj);
  }
}

function WDMOrgPosAll() {
var i;
  for (i=0; i<wmLayersObj.length; i++) {    
      l = wmLayersObj[i];
	  l.lobj.top = y;
	  l.lobj.left = x;
  }
}

function WDMShow(name) {
  layShow(findByName(name).lobj);
}

function accelFunc1(d,a) {
var x = d-a;
  return (x/Math.abs(x))*4;
}

function accelFunc2(d,a) {
var x = d-a;
var s = x/Math.abs(x);
  return (0.00001*x*x*s + x * 0.03)*3 + 2*s;
}

function accelFunc3(d,a) {
var x = d-a;
var s = x/Math.abs(x);
  return s*Math.log((s*x-0.999999999)*0.2);
}

function valPos() {
var l, i;

  getPageOffset(wmPage);
  
  for (i=0; i<wmLayersObj.length; i++) {    
    l = wmLayersObj[i];
	    if (wmPage.dy != 0)  {	// przesuniety offset
	      l.tom_y += wmPage.dy;
		  l.ams_y = 0;
		  l.sstop = 0;
	    } else l.sstop++;
  }

  for (i=0; i<wmLayersObj.length; i++) {
	  l = wmLayersObj[i];
	  var ltom_y = l.am_y - l.tom_y;
	  if (ltom_y !=0 && (l.sstop > 0)) {
	    //..........//
		    if (l.func_type == 2) 
	   	      l.am_y += accelFunc2(l.tom_y,l.am_y);
			else
			if (l.func_type == 1) 
	  		  l.am_y += accelFunc1(l.tom_y,l.am_y);
			else
			if (l.func_type == 3) 
	  		  l.am_y += accelFunc3(l.tom_y,l.am_y);
		//..........//
		l.lobj.top = l.org_top + l.am_y + l.dod_y;
		if (Math.abs(l.am_y-l.tom_y)<6) {
		   l.lobj.top = l.org_top + l.tom_y + l.dod_y;
	       l.am_y = l.tom_y;
		   l.sstop = 0;
	    }
	  }
  }
  setTimeout("valPos()", wmRefreshTimeout);	    
}
  
function findByName(name) {
var i,l;
  for (i=0; i< wmLayersObj.length; i++) 
    if (wmLayersObj[i].name == name) {
  	  return wmLayersObj[i];
    }
  return null;
}

function val_iens(v1,v2) {
    if (przeg.dom) return v1;
	else
	if (document.all) return v1;
	  else
    if (document.layers) return v2;
}

 function layobj(lname) {
	    var warstwa;
  		if (document.layers) {
		  warstwa=document.layers[lname];
		} else 
		if (document.all) {
		  warstwa=document.all[lname].style;
		}
  		return warstwa;
}

function layShow(l) {
	if (document.layers) l.visibility = "show"
		else if (document.all) l.visibility = "visible"
}

function layHide(l) {
	if (document.layers) l.visibility = "hide"
	else if (document.all) l.visibility = "hidden"
}

function clearNetscapeShit() {
  wmAllowScrolling = true;
}
