
var XFade = Class.create({
	
	intervall: null, 
	corsstime: null,  
  current: null,
  imgs: null,
  
  // "#id img"
	initialize: function(dom_id, intervall) {
    
    this.intervall = 1500;  // Milli Sekunden
    if (!Object.isUndefined(intervall) && Object.isNumber(intervall))
      this.intervall = intervall;
    this.corsstime = 50;   // Milli Sekunden
    this.current = 0;

    this.imgs = $$(dom_id);
    //console.debug(dom_id, this.imgs);
    for(i=0;i<this.imgs.length;i++) {
      //this.imgs[i].absolutize();
    }
    for(i=1;i<this.imgs.length;i++) {
      this.imgs[i].xOpacity = 0;
      
    }
    this.imgs[0].style.display = "block";
    this.imgs[0].xOpacity = .99;	
    setTimeout(this.so_xfade.bind(this),this.intervall);		
	},
  
  so_xfade: function() {

    cOpacity = this.imgs[this.current].xOpacity;
    nIndex = this.imgs[this.current+1] ? this.current+1 : 0;
  
    nOpacity = this.imgs[nIndex].xOpacity;
    
    cOpacity-=.05; 
    nOpacity+=.05;
    
    this.imgs[nIndex].style.display = "block";
    this.imgs[this.current].xOpacity = cOpacity;
    this.imgs[nIndex].xOpacity = nOpacity;
    
    this.setOpacity(this.imgs[this.current]); 
    this.setOpacity(this.imgs[nIndex]);
    
    if(cOpacity<=0) {
      this.imgs[this.current].style.display = "none";
      this.current = nIndex;
      setTimeout(this.so_xfade.bind(this),this.intervall);
    } else {
      setTimeout(this.so_xfade.bind(this),this.corsstime);
    }

  },

  setOpacity: function(obj) {
      if(obj.xOpacity>.99) {
        obj.xOpacity = .99;
        return;
      }
      obj.style.opacity = obj.xOpacity;
      obj.style.MozOpacity = obj.xOpacity;
      obj.style.filter = "alpha(opacity=" + (obj.xOpacity*100) + ")";
  }
  
});


