
/* dynamic class add/remove tools */
function hasClass(elem,clss){
  return elem.className.match(new RegExp('(\\s|^)'+clss+'(\\s|$)'));
}
function addClass(elem,clss){
  if(!hasClass(elem,clss)) elem.className += " "+clss;
}
function removeClass(elem,clss){
  if(hasClass(elem,clss)){
    var reg = new RegExp('(\\s|^)'+clss+'(\\s|$)');
    elem.className=elem.className.replace(reg,' ');
  }
}

function BannerManager(){
	this.current  =    0;
	this.next     =    1;
	this.maxwait  = 500;
	this.waittime =    0;
	this.maxrun   =   50;
	this.runtime  =    0;
	this.elements = new Array();
  	
 	this.start = function(){
 		var elems = document.getElementsByTagName('div');
 		for(var i = 0; i < elems.length; ++i){
 			if(!hasClass(elems[i], 'imagesection')) continue;
 			this.elements.push(elems[i]);
 			//sif(i>0) elems[i].style.display = 'none';
 		}
 		this.setAlpha(0, 1);
 		this.current  = 0;
 		this.next     = 1;
 		this.waittime = this.maxwait;
 		this.runtime  = this.maxrun;
 		if(this.elements.length>1) setTimeout('bannerManager.run();', 100);
 	}
 	this.run = function(){
 		if(this.waittime<=0){
 		  if(this.runtime==this.maxrun) this.elements[this.next].style.display = 'block';
 		  var alpha = (this.runtime / this.maxrun);
 		  this.setAlpha(this.current, alpha);
 		  this.setAlpha(this.next   , 1-alpha);
 		  this.runtime--;
 		  if(this.runtime<=0){
 		    this.waittime = this.maxwait;
 		    this.runtime  = this.maxrun;
 		    this.elements[this.current].style.display = 'none';
 		    this.current  = this.next;
 		    this.next     = (this.next+1) % this.elements.length;
 		  }
 		}
 		else{
 		  //if(this.waittime==this.maxwait) this.elements[this.next].style.display = 'none';
 		  this.waittime--;
 		}
 		if(this.elements.length>1) setTimeout('bannerManager.run();', 10);
 	}
 	this.setAlpha = function(elemid, alpha){
 	  var elem = this.elements[elemid];
 	  elem.style.opacity = alpha;
 	  elem.style.filter  = 'alpha(opacity='+alpha*100+')';
 	  
 	  //var angle = alpha * Math.PI * 0.125;
 	  //if(elemid==this.current) angle += Math.PI;
 	  //var range = 60.0 - alpha / 1.0 * 60.0;
 	  //var rand = Math.floor(Math.random()*361) * Math.PI / 360;
 	  //var x = Math.cos(angle)*range;
 	  //var y = Math.sin(angle)*range;
 	  //elem.style.right = ''+(x-1)+'px';
 	  //elem.style.top   = ''+(y-1)+'px';
  }
}
  
var bannerManager = new BannerManager();
