function imageChanger(divID, intrv, rpt)
{
  this.interval = intrv;
  this.divID = divID;
  this.repeat = rpt;
  this.imgs = [];
  this.addImage = function (fname) { this.imgs.push(fname);};

  this.changeBackground = function(i) {
    var div = document.getElementById(this.divID);
    if(!div) return;
    
    if(i >= this.imgs.length) i=0;
    newimg = document.createElement('img');
    newimg.src = this.imgs[i];
    newimg.style.opacity = '0';
    newimg.style.filter = 'alpha(opacity=0)';
    div.appendChild(newimg);
    for(var j=0; j<=50; j++)
    {
      //setTimeout('this.changeOpacities('+(100-j*10)+','+(j*10)+')',j*100);
      setTimeout( (function(obj,p1,p2) { return function () {obj.changeOpacity(p1,p2); }; } )(this,100-j*2,j*2), j*20 );
    }
    if(rpt) 
    {
      i++;
      //setTimeout('this.changeBackground('+i+')', this.interval);
      setTimeout( ( function(obj,param) { return function () {obj.changeBackground(param); }; } )(this,i), this.interval );
    }  
  };

  this.startChange = function () {
    if(this.imgs.length<=1) return;
    //setTimeout(this.changeBackground(1),this.interval);
    setTimeout( ( function(obj,param) { return function () {obj.changeBackground(param); }; } )(this,1), this.interval );
  };
    
  this.changeOpacity = function(op1, op2) {
    //alert(2);
    var div = document.getElementById(this.divID);
    var divimgs = div.getElementsByTagName('img');
  
    if(op1>0)
    {
      divimgs[0].style.opacity = op1 / 100;
      divimgs[0].style.filter = 'alpha(opacity='+op1+')';
      divimgs[1].style.opacity = op2 / 100;
      divimgs[1].style.filter = 'alpha(opacity='+op2+')';
    }
    else
    {
      divimgs[1].style.opacity = 1;
      divimgs[1].style.filter = 'alpha(opacity=100)';
      divimgs[0].parentNode.removeChild(divimgs[0]);
      //i++;
      //setTimeout('changeBackground('+i+')',bginterval);
    }
  };
  
}


var bginterval = 7000;
var bgimg = new Array(); // array of images (paths)

function changeOpacities(op1, op2)
{
  var div = document.getElementById('background-image');
  var imgs = div.getElementsByTagName('img');
  
  if(op1>0)
  {
    imgs[0].style.opacity = op1 / 100;
    imgs[0].style.filter = 'alpha(opacity='+op1+')';
    imgs[1].style.opacity = op2 / 100;
    imgs[1].style.filter = 'alpha(opacity='+op2+')';
  }
  else
  {
    imgs[1].style.opacity = 1;
    imgs[1].style.filter = 'alpha(opacity=100)';
    div.removeChild(imgs[0]);
    //i++;
    //setTimeout('changeBackground('+i+')',bginterval);
  }
}

function changeBackground(divID, i, rpt)
{
  var div = document.getElementById(divID);
  if(!div) return;
  var imgs = div.getElementsByTagName('img');
  
  newimg = document.createElement('img');
  if(i >= bgimg.length) i=0;
  newimg.src = bgimg[i];
  newimg.style.opacity = '0';
  newimg.style.filter = 'alpha(opacity=0)';
  div.appendChild(newimg);
  for(var j=0; j<=50; j++)
  {
    setTimeout('changeOpacities('+(100-j*2)+','+(j*2)+')',j*20);
  }
  if(rpt) 
  {
    i++;
    setTimeout('changeBackground(\''+divID+'\','+i+',true)', bginterval);
  }
}


