function slideShow(){

  var cOpacity = 1,nOpacity = 0,current=0,nIndex=1,imgs = [],links = [];

  this.options = {
    step:3000,
    duration:700,
    align:['center','middle']
  };

  this.ajax = function(xml){
    var ajax = new ajaxRequest(xml);
    ajax.callBack(function(data,fnc){
      var photos = [], tagPhoto = data.responseXML.getElementsByTagName('photo');
      for(var i=0,l=tagPhoto.length;i<l;i++){
        photos.push(tagPhoto[i].firstChild.nodeValue);
      };
      var linkPhoto = data.responseXML.getElementsByTagName('link');
      for(var i=0,l=linkPhoto.length;i<l;i++){
        links.push(linkPhoto[i].firstChild.nodeValue);
      };
      fnc.setImages(photos);
    },this)
    ajax.get(); 
  };

  this.initialize = function(el,options){
    this.box = $(el);
    for(var property in options)this.options[property] = options[property];
    this.box.position = 'relative';
    imgs[0] = $el(this.box,'img')[0];
    setStyles(imgs[0],{'position':'absolute'});   
  };

  this.setImages = function(photos){
    for(var i=0,l=photos.length;i<l;i++){ 
      //alert(photos[i]);
      imgs[i+1] = addElement('img',{
        src:photos[i],
        styles:{'display':'none','position':'absolute','opacity':0,'top':'0','left':'0'}
      });
      this.box.appendChild(imgs[i+1]);
	  }
	  if(photos.length>0) this.nextImage(1);
  };

  this.nextImage = function(numIm){
 
    nIndex = imgs[current+1]? current+1 : 0;
    
    var nextImage = new Image();
    addEvent(nextImage,'load',function(event,fnc){
      fnc.play(numIm);         
    },this);
    nextImage.src = imgs[numIm].src;

  };
  
  this.play = function(numIm){ 
    
    imgs[numIm].style.display = 'block';
    var fx = new Fx;
    fx.initialize([imgs[current],imgs[nIndex]],{duration:this.options.duration,curve:['cos']});
      
    setTimeout(function(fnc){
      return function(){
        fx.start({
          0:{'opacity':[1,0]},
          1:{'opacity':[0,1]}
        },function(){
          imgs[current].style.display = 'none';
		      current = nIndex;
		      fnc.box.href = links[current];
          nextLoad = imgs[nIndex+1]?nIndex+1:0;
          fnc.nextImage(nextLoad);
        });
      }
    }(this),this.options.step);
    
  };

}

