//
// JS-Fader (c)2006 BLOCH-Design
//

var __fader_objects = new Array();

function __fadeIn_func(fader_id) {
  __fader_objects[fader_id].fadeIn();	
}

function __textIn_func(fader_id,new_text) {
  __fader_objects[fader_id].textIn(new_text);
}

function bdFader(fader_id,img_id,container_id,path) {

	this.blend_time = 3000;
	this.blend_speed= 50;
	this.blend_grade= 4;
	this.blend_text_speed = 25;
	this.blend_text_alpha = 0.1;
	this.blend_text_offset_top = 120;
	this.blend_text_offset_left = 158;
	this.blend_text_width = 280;
	
	var blend_imgs = new Array();
	var blend_imgs_src = new Array();
	var blend_texts= new Array();
	var blend_path = path;
	var blend_img_id = img_id;
	var blend_container_id = container_id;
	var blend_elements = new Array();
	var blend_fader_id = fader_id;
	var nr = 0;
	var opacity  = 100;
	var text_left = 0;
	var text_opacity = 100;
	var text_size = 32;
	var textdiv = null;
	var textin_timer = null;
        var px = "px";

	__fader_objects[fader_id] = this;
	
  this.add = function(img_name,img_text) {
    blend_imgs.push(img_name);
    blend_texts.push(img_text);
  }
  
  this.run = function() {
    var container = document.getElementById(blend_container_id);
    blend_elements = new Array();
    blend_elements.push(document.getElementById(blend_img_id));
    blend_elements[0].style.visibility = 'visible';
    blend_elements.push(container);
    blend_imgs_src = new Array();
    var blend_text = false;
    for ( i=0; i<blend_imgs.length; i++ ) {
  	  blend_imgs_src[i] = new Image();
  	  blend_imgs_src[i].src = blend_path+blend_imgs[i];
	  if ( blend_texts[i] != '' ) blend_text = true;
    }
    blend_elements[0].src=blend_imgs_src[0].src;
    blend_elements[1].style.backgroundImage="url("+blend_path+blend_imgs[1]+")";

    if ( blend_text ) {
      textdiv = document.createElement('div');
      container.appendChild(textdiv);
      textdiv.id = 'text_'+blend_container_id;
      textdiv.name=textdiv.id;
      textdiv.style.position="absolute";
      textdiv.style.textAlign="left";
      textdiv.style.fontSize="32"+px;
      textdiv.style.fontWeight="bold";
      textdiv.style.zIndex="999";
      textdiv.style.top=this.blend_text_offset_top+px;
      textdiv.style.left=this.blend_text_offset_left+px;
      textdiv.style.width=this.blend_text_width+px;
      textdiv.style.height="32"+px;
      textdiv.style.backgroundColor="transparent";
      textdiv.innerHTML="";
    }
    nr = 0; opacity = 100;
    this.textIn(1);
    window.setTimeout("__fadeIn_func("+blend_fader_id+");",this.blend_time);
  }

  function setOpacity(obj, opacity) {
    opacity = (opacity == 100)?99.999:opacity;  
    // IE/Win
    obj.style.filter = "alpha(opacity:"+opacity+")";  
    // Safari<1.2, Konqueror
    obj.style.KHTMLOpacity = opacity/100;  
    // Older Mozilla and Firefox
    obj.style.MozOpacity = opacity/100;  
    // Safari 1.2, newer Firefox and Mozilla, CSS3
    obj.style.opacity = opacity/100;
  }

  this.fadeIn = function() {
    //textdiv.innerHTML=opacity;
    if (opacity > 0.00) {
      setOpacity(blend_elements[0], opacity);
      opacity -= (51-Math.abs(opacity-50))/this.blend_grade;
      window.setTimeout("__fadeIn_func("+blend_fader_id+");", this.blend_speed);
    } else {
      nr++; if ( nr >= blend_imgs.length ) nr=0;
      blend_elements[0].src = blend_imgs_src[nr].src;
      setOpacity(blend_elements[0],100);
      var nextnr = nr+1; if ( nextnr>=blend_imgs.length ) nextnr=0;
      blend_elements[1].style.backgroundImage="url("+blend_path+blend_imgs[nextnr]+")";
      opacity = 100;
      this.textIn(1);
      fadein_timer = window.setTimeout("__fadeIn_func("+blend_fader_id+");",this.blend_time);  
    }
  }

  this.textIn = function(new_text) {
    if ( textdiv == null ) return;
    if ( textin_timer != null ) {
      window.clearTimeout(textin_timer);
      textin_timer = null;
    }

    if ( new_text ) {
      //textdiv.style.visibility="hidden";
      if ( blend_texts[nr] != "" ) {
        text_opacity = 100;
	text_left = 0;
        textdiv.innerHTML=blend_texts[nr];
      } else {
        text_opacity = 0;
      }
    } else {
      text_opacity -= 0.5; //(101-text_opacity)*this.blend_text_alpha;
      if ( text_opacity<0 ) text_opacity=0;
      text_left =  this.blend_text_width - (text_opacity * this.blend_text_width / 100);
    }
    textdiv.style.left = this.blend_text_offset_left + text_left + px;
    setOpacity(textdiv, text_opacity);
    //if ( new_text ) 
    //  textdiv.style.visibility="visible";

    textin_timer = window.setTimeout("__textIn_func("+blend_fader_id+",0);",this.blend_text_speed);
  }
}		

