////NO need to edit /////////////

/***********************************************
 * Swiss Army Image slide show script  - © John Davenport Scheuer: http://home.comcast.net/~jscheuer1/
 * This notice MUST stay intact for legal use
 * Visit Dynamic Drive at http://www.dynamicdrive.com/ for full original source code
 ***********************************************/

function preloadctrl(im){
   if (typeof im=='string'){
      var imo=new Image();
      imo.src=im;
   }
}

if(document.images&&typeof preload_ctrl_images!='undefined'&&preload_ctrl_images){
   var ctrlimgs=[previmg, stopimg, playimg, nextimg]
      for (var i_tem = 0; i_tem < ctrlimgs.length; i_tem++)
         if (ctrlimgs[i_tem])
            preloadctrl(ctrlimgs[i_tem])
}

var iss=[]; //array to cache inter_slide instances

   function inter_slide(){
      if(!document.images||arguments.length==0)
         return;
      var imgs=arguments[0];
      var width=null, height=null, delay=null;
      if(arguments.length==2)
         delay=arguments[1];
      else if(arguments.length==3||arguments.length==4)
         width=arguments[1], height=arguments[2], delay=arguments[3]? arguments[3] : null;
      this.dom=(document.getElementById) //modern dom browsers
         this.da=document.all
         this.delay=imgs.delay? imgs.delay : delay? delay : 3000+iss.length*750;
      this.nextimgidx=0;
      iss[this.issid=iss.length]=this;
      this.imgs=imgs;
      if (imgs.random)
         this.imgs.sort(function() {return 0.5 - Math.random();}) //thanks to Mike (aka Mwinter) :)
            this.imgborder=imgs.border? parseInt(imgs.border) : 0;
      if (!this.dom){
         this.postimgs=new Array() //preload imgs
            for (p=0;p<imgs.length;p++){
               this.postimgs[p]=new Image()
                  this.postimgs[p].src=this.imgs[p][0]
            }
      }

      if (this.dom){ //if modern browsers (ie: Firefox, IE5+)
         this.faded=0;
         this.loadimgidx=[];
         this.fade=!imgs.nofade;
         if(this.fade)
            this.degree=10 //initial opacity degree (10%)
               this.pausecheck=imgs.pause;
         this.mouseovercheck=0
            this.canvasbase="canvas"+this.issid
            this.curcanvas=this.canvasbase+"_0"
            this.descriptions=!imgs.no_descriptions;
         this.man_start=imgs.manual_start;
         this.addbr=!imgs.no_added_linebreaks;
         this.no_auto=imgs.no_auto;
         this.onclick=imgs.onclick;
         this.specs=imgs.specs;
         this.counter=imgs.counter;
         this.ics=imgs.image_controls;
         this.jumpto=imgs.jumpto;
         this.no_c=imgs.no_controls;
         this.target=imgs.target;
         this.ualt=imgs.use_alt;
         this.utit=imgs.use_title;
         this.fadecolor=imgs.fadecolor;
         this.ibut_hc=imgs.button_highlight;
         this.dp=imgs.desc_prefix? imgs.desc_prefix : ' ';
         this.imbcolor=imgs.border_color;
         this.imbstyle=imgs.border_style;
         this.width=imgs.width? imgs.width : width? width : null
            this.width=this.width? this.width+this.imgborder*2 : null;
         this.height=imgs.height? imgs.height : height? height : null
            this.height=this.height? this.height+this.imgborder*2 : null;
         var ief='', dims='';
         if(this.width||this.height)
            dims=this.width&&this.height? 'width:'+this.width+'px;height:'+this.height+'px;' : this.width? 'width:'+this.width+'px;' : 'height:'+this.height+'px;';
         if(this.fade&&document.body&&document.body.style)
            ief=document.body.filters? 'filter:progid:DXImageTransform.Microsoft.alpha(opacity=0);' : typeof document.body.style.opacity=='string'? 'opacity:0;' : 'opacity:0.10;-moz-opacity:0.10;-khtml-opacity:0.10;';
         var brs=this.addbr? '<br>' : '';
         if (imgs.controls_top){
            this.controls();
            document.write(brs)
         }
         document.write('<div align="center"><div id="master'+this.issid+'" style="position:relative;'+dims+'overflow:hidden;margin:0 auto;"><div id="'+this.canvasbase+'_0" style="position:absolute;'+dims+'top:0;left:0;'+ief+'"><\/div><div id="'+this.canvasbase+'_1" style="position:absolute;'+dims+'top:0;left:0;'+ief+'"><\/div><\/div><\/div>')
            if(this.descriptions)
               document.write(brs+'<div align="center">'+this.dp+'<span id="imgdsc'+this.issid+'">&nbsp;<\/span></div>\n');
         if(this.counter&&!this.descriptions)
            document.write(brs);
         if(this.counter)
            this.cntrl()
               if (!imgs.controls_top){
                  document.write(this.ics? '' : brs);
                  this.controls();
               }
      }
      else
         document.write('<div align="center"><img name="defaultslide'+this.issid+'" src="'+this.postimgs[0].src+'"><\/div>')


            if (this.dom) //if modern browsers such as Firefox, IE5+
               this.startit()
            else{
               this.nextimgidx++
                  setInterval("iss["+this.issid+"].rotateimg()", this.delay)
            }
   }

inter_slide.prototype.cntrl=function(){
   this.cpad=this.imgs.length.toString().length;
   document.write('<div align="center">Viewing Image: <b><span id="thecnt'+this.issid+'"><\/span><\/b>&nbsp;of<span style="font-size:1ex;">&nbsp;</span>&nbsp;<b>'+this.imgs.length+'<\/b><\/div>');
}

inter_slide.prototype.controls=function(){
   var brs=this.addbr? '<br>' : ' &nbsp;';
   if(!this.ics&&!this.no_c)
      document.write('<div align="center"><input id="prev'+this.issid+'" disabled type="button" value=" << " onclick="iss['+this.issid+'].changeimg(false, \'nav\');">\n'+
            (this.no_auto? '&nbsp;&nbsp;&nbsp;' : ' <input id="gostp'+this.issid+'" type="button" value=" Stop " onclick="iss['+this.issid+'].gostop(this);">\n')+
            ' <input id="next'+this.issid+'" disabled type="button" value=" >> " onclick="iss['+this.issid+'].changeimg(true, \'nav\');">'+(this.jumpto? brs+'Jump to: <input disabled type="text" size="'+this.imgs.length.toString().length+'" id="goto'+this.issid+'" onkeydown="iss['+this.issid+'].jumper(event);"><input id="go'+this.issid+'" disabled type="button" onclick="iss['+this.issid+'].jumper();" value="GO">' : '')+'<\/div>')
   else if(this.ics&&!this.no_c){
      var op=document.body.filters? ' style="filter:alpha(opacity=100);"' : ' style="opacity:'+(this.man_start? 0.99 : 0.45)+';"';
      document.write('<div id="image-control-container" style="text-align: center;"><table align="center" cellpadding="0" cellspacing="10" id="image-controls"><tr><td valign="middle" align="center" style="padding:2px 2px 1px 2px;"><input'+op+' onmouseover="iss['+this.issid+'].ibute(this,1);" onmouseout="iss['+this.issid+'].ibute(this,2);" onmousedown="iss['+this.issid+'].ibute(this,3);" onmouseup="iss['+this.issid+'].ibute(this,4);" type="image" title="Previous" id="prev'+this.issid+'" src="'+previmg+'" onclick="iss['+this.issid+'].changeimg(false, \'nav\');"><\/td>'+(this.no_auto? '<td>&nbsp;<\/td>' : '<td valign="middle" align="center" style="padding:2px 2px 1px 2px;"><input onmouseover="iss['+this.issid+'].ibute(this,1);" onmouseout="iss['+this.issid+'].ibute(this,2);" onmousedown="iss['+this.issid+'].ibute(this,3);" onmouseup="iss['+this.issid+'].ibute(this,4);" title="Stop" type="image" id="gostp'+this.issid+'" src="'+(this.g_fPlayMode? playimg : stopimg)+'" onclick="iss['+this.issid+'].gostop(this);"><\/td>')+'<td valign="middle" align="center" style="padding:2px 2px 1px 2px;"><input'+op+' onmouseover="iss['+this.issid+'].ibute(this,1);" onmouseout="iss['+this.issid+'].ibute(this,2);" onmousedown="iss['+this.issid+'].ibute(this,3);" onmouseup="iss['+this.issid+'].ibute(this,4);" type="image" title="Next" id="next'+this.issid+'" src="'+nextimg+'" onclick="iss['+this.issid+'].changeimg(true, \'nav\');"><\/td><\/tr><\/table></div>\n');
   }
   else
      this.no_c=1;
}

inter_slide.prototype.jumper=function(e){
   var key;
   if(typeof e=='object')
      key=e.keyCode? e.keyCode : e.which? e.which : 1;
   if(key&&key!==13)
      return;
   var num=typeof e=='number'? e : parseInt(this.go('goto'+this.issid).value);
   if(num<=this.imgs.length&&num>0){
      this.nextimgidx=num-2;
      this.changeimg(true, 'jump');
   }
}

   inter_slide.prototype.ibute=function(obj, i){
      if(!obj.parentNode)
         return;
      if(i==1)
         obj.parentNode.style.backgroundColor=this.ibut_hc? this.ibut_hc : 'yellow';
      else if(i==2)
         obj.parentNode.style.backgroundColor='transparent';
      else if(i==3){
         obj.parentNode.style.borderTop=obj.parentNode.style.borderLeft='1px solid gray';
         obj.parentNode.style.paddingRight='1px';obj.parentNode.style.paddingBottom=0;
      }
      if (i==2||i==4){
         obj.parentNode.style.borderTop=obj.parentNode.style.borderLeft='none';
         obj.parentNode.style.paddingRight='2px';obj.parentNode.style.paddingBottom='1px';
      }
   }

inter_slide.prototype.fadepic=function(){
   if (this.fade&&this.degree<100){
      this.faded=0
         this.degree+=20
         if (this.tempobj.filters&&this.tempobj.filters[0]){
            if (typeof this.tempobj.filters[0].opacity=="number") //if IE6+
               this.tempobj.filters[0].opacity=this.degree
            else //else if IE5.5-
               this.tempobj.style.filter="alpha(opacity="+this.degree+")"
         }
         else if (this.tempobj.style.MozOpacity)
            this.tempobj.style.MozOpacity=this.degree/101
         else if (this.tempobj.style.KhtmlOpacity)
            this.tempobj.style.KhtmlOpacity=this.degree/100
         else if (this.tempobj.style.opacity&&!this.tempobj.filters)
            this.tempobj.style.opacity=this.degree/101
   }
   else{
      this.faded=1
         clearInterval(this.fadeclear)
         this.nextcanvas=(this.curcanvas==this.canvasbase+"_0")? this.canvasbase+"_0" : this.canvasbase+"_1"
         this.tempobj=this.go(this.nextcanvas)
         if(this.playing)
            this.changeimg()
   }
}

inter_slide.prototype.populateslide=function(picobj, picidx){
   if(document.getElementsByTagName){
      if(picobj.getElementsByTagName('a')[0]&&picobj.getElementsByTagName('a')[0].onclick)
         picobj.getElementsByTagName('a')[0].onclick=null;
      if(picobj.getElementsByTagName('img')[0]&&picobj.getElementsByTagName('img')[0].onload)
         picobj.getElementsByTagName('img')[0].onload=null;
   }
   /**
    * XXX: White background
    */
   picobj.style.backgroundColor=this.imgs[picidx].fadecolor? this.imgs[picidx].fadecolor : this.fadecolor? this.fadecolor : 'white';
   var slideHTML='<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%"><tr><td width="100%" height="100%" align="center" valign="middle" style="background:transparent none;">'
      if (this.imgs[picidx][2]){ //if associated link exists for img
         var specs=this.imgs[picidx][4]? ", '"+this.imgs[picidx][4]+"'" : this.specs? ", '"+this.specs+"'" : '';
         slideHTML+='<a href="'+this.imgs[picidx][2]+'"'+(this.imgs[picidx][3]? ' target="'+this.imgs[picidx][3]+'"' : this.target? ' target="'+this.target+'"' : '')+' onclick="'+(this.onclick? this.onclick : 'window.open(this.href, (this.target? this.target : \'_self\')'+specs+');return false;')+'">'
      }
   slideHTML+='<img id="theimg'+picidx+'_'+this.issid+'" src="'+(this.loadimgidx[picidx]&&typeof this.loadimgidx[picidx].complete=='boolean'&&this.loadimgidx[picidx].complete? this.loadimgidx[picidx].src : this.imgs[picidx][0])+'" alt="'+(this.ualt? this.imgs[picidx][1] : 'Slide Show Image')+'" title="'+(this.utit? this.imgs[picidx][1] : '')+'" '+(this.imbcolor&&!this.imgs[picidx].noborder? 'style="border:'+this.imgborder+'px '+(this.imbstyle? this.imbstyle : 'solid')+' '+this.imbcolor+';"' : 'border="'+(this.imgs[picidx].noborder? '0' : this.imgborder)+'"')+(!this.width||!this.height? ' onload="iss['+this.issid+'].imgload(this);"' : '')+'>'
      if (this.imgs[picidx][2]) //if associated link exists for img
         slideHTML+='<\/a>'
            slideHTML+='<\/td><\/tr><\/table>'
            picobj.innerHTML=slideHTML
}

   inter_slide.prototype.buttons=function(bool){
      if(this.no_c)
         return;
      var next=this.go('next'+this.issid), prev=this.go('prev'+this.issid);
      next.disabled=prev.disabled=!bool;
      next.title=bool? 'next' : '';
      prev.title=bool? 'previous' : '';
      if(this.jumpto&&!this.ics)
         this.go('go'+this.issid).disabled=this.go('goto'+this.issid).disabled=!bool;
      if(this.ics){
         if(!this.no_auto){
            var go=this.go('gostp'+this.issid)
               go.title=bool? 'Play' : 'Stop';
            go.src=bool? playimg : stopimg;
         }
         if(prev.filters&&prev.parentNode)
            prev.parentNode.style.filter=next.parentNode.style.filter='alpha(opacity='+(bool? 100 : 45)+')';
                  else if(prev.style.opacity&&!prev.filters)
                  prev.style.opacity=next.style.opacity=bool? 0.99 : 0.45;
                  }
                  }

                  inter_slide.prototype.imgload=function(el){
                  if(!el&&!this.imgel)
                  return;
                  var el=el? el : this.imgel;
                  if(el.width==0||el.height==0){
                  this.imgel=el;
                  var cacheobj=this;
                  clearTimeout(this.getdim)
                  this.getdim=setTimeout(function(){cacheobj.imgload()}, 300)
                  return;
                  }
                  var m=this.go('master'+this.issid).style, c0=this.go(this.canvasbase+'_0').style, c1=this.go(this.canvasbase+'_1').style;
                  if(!this.width){
                  this.width=el.width+this.imgborder*2;
                  m.width = c0.width = c1.width = this.width+'px';
                  }
                  if(!this.height){
                     this.height=el.height+this.imgborder*2;
                     m.height = c0.height = c1.height = this.height+'px';
                  }
                  }

inter_slide.prototype.changeimg=function(bool,nav){
   if(this.playing){
      this.buttons(false)
         this.nextimgidx=(this.keeptrack()<this.imgs.length-1)? this.keeptrack()+1 : 0
         this.populateslide(this.tempobj, this.nextimgidx)
         if(bool)
            this.rotateimg()
         else{
            clearTimeout(this.inprocess)
               this.inprocess=setTimeout("iss["+this.issid+"].rotateimg()", this.delay)
         }
   }
   else {
      if(!this.faded){
         if(nav&&nav=='nav')
            return;
         this.nextimgidx=this.keeptrack()+(bool? 1 : -1)
            this.nextimgidx=(this.nextimgidx<this.imgs.length)? this.nextimgidx : this.nextimgidx-this.imgs.length
            this.nextimgidx=(this.nextimgidx>-1)? this.nextimgidx : this.imgs.length+this.nextimgidx
            return;
      }
      if(this.fadeclear)
         clearInterval(this.fadeclear);
      if(bool){
         var loadidx=this.nextimgidx+2
            loadidx=(loadidx<this.imgs.length)? loadidx : loadidx-this.imgs.length;
         loadidx=(loadidx>-1)? loadidx : this.imgs.length+loadidx;
         this.loadimgidx[loadidx]=new Image();
         this.loadimgidx[loadidx].src=this.imgs[loadidx][0];
      }
      else{
         var loadidx=this.nextimgidx-2
            loadidx=(loadidx<this.imgs.length)? loadidx : loadidx-this.imgs.length
            loadidx=(loadidx>-1)? loadidx : this.imgs.length+loadidx
            this.loadimgidx[loadidx]=new Image();
         this.loadimgidx[loadidx].src=this.imgs[loadidx][0];
      }
      if(nav&&nav=='jump')
         this.nextimgidx++;
      else
         this.nextimgidx=this.keeptrack()+(bool? 1 : -1)
            this.nextimgidx=(this.nextimgidx<this.imgs.length)? this.nextimgidx : this.nextimgidx-this.imgs.length
            this.nextimgidx=(this.nextimgidx>-1)? this.nextimgidx : this.imgs.length+this.nextimgidx
            this.populateslide(this.tempobj, this.nextimgidx)
            this.rotateimg()
   }
}

inter_slide.prototype.go=function(id){
   return this.da? this.da[id] : document.getElementById(id);
}

inter_slide.prototype.rotateimg=function(){
   if(this.dom){
      var cimg=this.go('theimg'+this.nextimgidx+'_'+this.issid)? this.go('theimg'+this.nextimgidx+'_'+this.issid) : null;
      if(cimg&&typeof cimg.complete=='boolean'&&!cimg.complete){
         var cacheobj=this
            clearTimeout(this.loading)
            this.loading=setTimeout(function(){cacheobj.rotateimg()}, 300)
            return;
      }
      if (this.mouseovercheck==1){
         var cacheobj=this
            clearTimeout(this.mousep)
            this.mousep=setTimeout(function(){cacheobj.rotateimg()}, 100)
            return;
      }
      if(this.fade)
         this.resetit()
            var crossobj=this.tempobj=this.go(this.curcanvas)
            crossobj.style.zIndex++
            var othercanvas=this.curcanvas==this.canvasbase+"_0"? this.go(this.canvasbase+"_1") : this.go(this.canvasbase+"_0");
      othercanvas.style.zIndex=0;
      if(this.descriptions)
         this.go('imgdsc'+this.issid).innerHTML = this.imgs[this.keeptrack()][1];
      if(this.counter){
         var padit='';
         for (var p=0; p<this.cpad-(this.nextimgidx+1).toString().length; p++)
            padit+='<span style="visibility:hidden;">0</span>';
         this.go('thecnt'+this.issid).innerHTML = padit+(this.keeptrack()<this.imgs.length? this.keeptrack()+1 : 1);
      }
      if (this.jumpto)
         this.go('goto'+this.issid).value=this.keeptrack()<this.imgs.length? this.keeptrack()+1 : 1;
      this.jumperidx=this.keeptrack()<this.imgs.length? this.keeptrack()+1 : 1;
      var fadeobj=this
         clearInterval(this.fadeclear)
         this.fadeclear=setInterval(function(){fadeobj.fadepic()},50)
         this.curcanvas=(this.curcanvas==this.canvasbase+"_0")? this.canvasbase+"_1" : this.canvasbase+"_0"
   }
   else{
      var v4imgobj=document.images['defaultslide'+this.issid]
         v4imgobj.src=this.postimgs[this.nextimgidx].src
         this.nextimgidx=(this.nextimgidx<this.imgs.length-1)? this.nextimgidx+1 : 0
   }
}

inter_slide.prototype.resetit=function(){
   this.degree=10
      var crossobj=this.go(this.curcanvas)
      if (crossobj.filters&&crossobj.filters[0]){
         if (typeof crossobj.filters[0].opacity=="number") //if IE6+
            crossobj.filters(0).opacity=this.degree
         else //else if IE5.5-
            crossobj.style.filter="alpha(opacity="+this.degree+")"
      }
      else if (crossobj.style.MozOpacity)
         crossobj.style.MozOpacity=this.degree/101
      else if (crossobj.style.KhtmlOpacity)
         crossobj.style.KhtmlOpacity=this.degree/100
      else if (crossobj.style.opacity&&!crossobj.filters)
         crossobj.style.opacity=this.degree/101
}

inter_slide.prototype.startit=function(){
   this.playing=1
      var crossobj=this.go(this.curcanvas)
      this.populateslide(crossobj, this.nextimgidx)
      if (this.pausecheck==1){ //if slideshow should pause onmouseover
         var cacheobj=this
            var crossobjcontainer=this.go("master"+this.issid)
            crossobjcontainer.onmouseover=function(){cacheobj.mouseovercheck=1}
         crossobjcontainer.onmouseout=function(){cacheobj.mouseovercheck=0}
      }
   this.rotateimg()
      if(this.no_auto)
         this.gostop();
      else if(this.man_start)
         this.gostop(this.go('gostp'+this.issid));
      else if(this.ics&&document.body.filters){ //kludge for IE5.5 bug
         this.buttons(false);
      }
}

   inter_slide.prototype.gostop=function(el){
      if(el)
         el.value=el.value==' Stop '? ' Play ' : ' Stop ';
      if(this.inprocess&&this.playing){
         clearTimeout(this.inprocess);
         this.nextimgidx-=this.faded;
      }
      this.playing=!this.playing;
      if(this.playing){
         clearInterval(this.fadeclear)
            this.faded=1
            this.changeimg(true);
      }
      else{
         var loadidx=(this.keeptrack()<this.imgs.length-1)? this.keeptrack()+1 : 0
            this.loadimgidx[loadidx]=new Image();
         this.loadimgidx[loadidx].src=this.imgs[loadidx][0];
         this.jumper(this.jumperidx? this.jumperidx : 0)
            this.buttons(true);
      }
   }

   inter_slide.prototype.keeptrack=function(){
      if(!document.getElementsByTagName)
         return this.nextimgidx;
      var canvases=[this.go('canvas'+this.issid+'_0'), this.go('canvas'+this.issid+'_1')]
         if(canvases[0].style.zIndex>canvases[1].style.zIndex&&canvases[0].getElementsByTagName("img")[0])
            return parseInt(canvases[0].getElementsByTagName('img')[0].id.replace(/theimg/, ''))
         else if(canvases[1].getElementsByTagName("img")[0])
            return parseInt(canvases[1].getElementsByTagName('img')[0].id.replace(/theimg/, ''))
         else
            return this.nextimgidx;
   }
