function onInit(){
  initBanners();
  footerInit();
  autoSpaceInit();
}

function footerInit(){
  var footer=document.getElementById('footerplacer');
  var footerspacer=document.getElementById('footerspacer');

  if(!footer || !footerspacer) return;
  footerspacer.style.height=footer.offsetHeight+'px';
}

function initBanners(){
	var lst = getElementsByClass('bannerfield');
	for(var i=0; i<lst.length; ++i){
		var tmp = new BannerObject();
		if(!tmp.init(lst[i])) continue;
	}
}

function openMyLink(elem){
var list=elem.getElementsByTagName('a');
if(list.length<=0) return;
window.location=list[0].href;
}

function autoSpaceInit(){
	var list = getElementsByClass('js-autospace');
	for(var i=0; i<list.length; ++i){
		var slist = getElementsByClass('js-autospacer', list[i]);
		var avl   = list[i].offsetWidth;
		var crl   = 0;
		for(var j=0; j<slist.length; ++j){
	    crl += slist[j].offsetWidth;
	   /* crl -= 2*40;*/
		}
		var exp   = Math.floor((avl - crl) / ((slist.length) * 2)); 
		for(var j=0; j<slist.length; ++j){
	    slist[j].style.paddingLeft  = ''+exp+'px';
	    slist[j].style.paddingRight = ''+exp+'px';
		}
	}
}

function TimingManager(){
	this.timers = new Array();
	this.ltime  = (new Date()).getTime();
	
	this.addTimer = function(obj){
		for(var i=0; i<this.timers.length; ++i) if(this.timers[i]==obj) return;
		this.timers.push(obj);
	}
	this.run = function(){
		var ctime  = (new Date()).getTime();
		var pass   = (ctime - this.ltime)/1000.0;
		this.ltime = ctime;
		
		for(var i=0; i<this.timers.length; ++i) this.timers[i].run(pass);
	}
}

var timingManager = new TimingManager();
setInterval('timingManager.run();', 25);

function Banner(){
	this.me        = null;
	
	this.init = function(elem){this.me = elem;}
	this.run = function(cur){
		if(cur > -0.10 && cur <= 0.1){
			var val = (cur+0.1)*5;
			this.me.style.opacity = val;
			this.me.style.filter  = 'alpha(opacity='+Math.floor(val*100)+');';
			this.me.style.display = 'block';
			this.me.style.zIndex  = 55;
			return;
		}
		else if(cur > 0.9 && cur <= 1.1){
			var val = 1-(cur-0.9)*5;
			this.me.style.opacity = val;
			this.me.style.filter  = 'alpha(opacity='+Math.floor(val*100)+');';
			this.me.style.display = 'block';			
			this.me.style.zIndex  = 50;
			return;
		}
		else if(cur > 0.1 && cur <= 0.9){
			this.me.style.opacity = 1.0;
			this.me.style.filter  = 'alpha(opacity=100)';
			this.me.style.display = 'block';			
			this.me.style.zIndex  = 50;
			return;
		}
		else{
			this.me.style.display = 'none';			
			this.me.style.zIndex  = 45;
			return;			
		}		
	}
}

function BannerObject(){
	this.root      = null;
	this.container = null;
	this.banners   = new Array();
	this.current   = 0;
	this.speedmult = 0.1;
	
	this.init = function(robj){
		if(!robj) return false;
		this.root      = robj;
		this.container = getElementByClass('banners', robj);
		if(!this.container) return false;
		var lst = getElementsByClass('banner', this.container);
		if(lst.length<=0){
			robj.style.display = 'none';
		  return false;
	  }
	  if(lst.length<=1) return false;
	  for(var i=0; i<lst.length; ++i){
	  	var tmp = new Banner();
	  	tmp.init(lst[i]);
	  	this.banners.push(tmp);
	  }
	  
	  var ck = readCookie('banner-current');
	  if(ck) this.current = parseInt(ck);
	  
	  timingManager.addTimer(this);
	}
	this.run = function(pass){
		this.current += (pass*this.speedmult);
		var max = this.banners.length;
		window.status = this.current;
		for(var i=0; i<max; ++i){
			var val = this.current-i;
			if(i==0 && this.current>(max-0.1)) val = this.current-max;
			if(i==(max-1) && this.current<0.1) val += max;
			this.banners[i].run(val);
		}
		if(this.current>=max) this.current -= max;
		createCookie('banner-current', Math.floor(this.current), 0.25);
	}
}


