//
//slidename: the name of the object.var mySlide = new zldnnSlideShow(mySlide,
//ImageID: the id of <img 
//LinkId: the id of <a that will link to a page
//TitleID: the id of an element to show title.
//Description: the id of an element to show description.
//Slides: var slides =[{"URL":"<img url>","Width":"","Height":"","Link":"<link to a page>","Title":"","Description":"","Filter":"","Transition":""},{}...]

// 
//


function zldnnSlideShow(slidename,ImageID,LinkId,TitleID,DescriptionID,slides,Speed,Duration)
{
var name=slidename;
  var slideshowSpeed=Speed;
  var crossFadeDuration=Duration;
  var mySlides = slides
  var t  ;
  var j = 0;
  var p = mySlides.length;
  var preLoad  = new Array();
  var myImg = document.getElementById(ImageID);
  var myLink;
  
  if(LinkId!="") {myLink= document.getElementById(LinkId); }
  var myTitle= null;
  if(TitleID!="")
  {myTitle = document.getElementById(TitleID);}
  var myDescription=null;
  if(DescriptionID!="") myDescription= document.getElementById(DescriptionID);
  var opacity=0;
  var ostep = 0.05/ crossFadeDuration  ;
  
  for (i   = 0; i   < p  ; i  ++) {
	preLoad  [i ] = new Image();
	preLoad  [i ].src = mySlides [i ]["URL"];
	if(mySlides[i]["Width"]!="")preLoad  [i ].Width = mySlides [i]["Width"];
	if(mySlides[i]["Height"]!="")preLoad  [i ].Height = mySlides [i]["Height"];
  }//for
  
  this.run = function(){
    opacity=0;
    this.fadein();
    var filter = mySlides[j]["Filter"];
   
    if (document.all) { // if 1
    	if(filter=="blendTrans") { // if2
           myImg.style.filter=filter+ "(duration=" + crossFadeDuration+")" ;
           myImg.filters.blendTrans.apply();
       }else{
           myImg.style.filter=filter+"(duration=" + crossFadeDuration+",strtransition=" + mySlides[j]["Transition"] + ")" ;
           myImg.filters.revealTrans.apply();
       } //if 2
    } // if 1
    j=j+1;
    if(j>(p-1)) j=0;
    this.setValue(j);
    if(document.all && preLoad [j].complete) { //if 3
      if(filter=="blendTrans")  myImg.filters.blendTrans.play(); else myImg.filters.revealTrans.play();
    }// if 3
     t= setTimeout( name + '.run()', slideshowSpeed );
  }//run
  
  
  this.begin = function()  {
    this.setValue(0);
    this.run();
   }
   
   this.setValue=function(idx){
    myImg.src=preLoad[idx].src;
    myImg.width=preLoad[idx].Width;
    if(myLink!=null)   myLink.href=mySlides[idx]["Link"];
    if(myTitle!=null) myTitle.innerHTML= mySlides[idx]["Title"];
    if(myDescription!=null) {myDescription.innerHTML=mySlides[idx]["Description"];}
   }
   
   this.fadein=function()
   { //fadein
     if (opacity < 1 && myImg &&  myImg.style &&
        typeof myImg.style.MozOpacity != 'undefined') {
        opacity += ostep;
        myImg.style.MozOpacity = opacity;
       setTimeout( name + ".fadein()", 50);
       }//if
   }//fadein
}//zldnnslideshow 


