//-------------------------------------------------------------
//
//  Met-Art Javascript slideshow
//  written by Chris.
//
//  Good luck porting this to anywhere.
//  Any questions you can post in the forums at www.somedodgywebsite.com
//
//-------------------------------------------------------------

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
//Mouse wheel including horrible hack for chrome wheel
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

function wheel(event){
   var delta = 0;
   if (!event) event = window.event;
   if (event.wheelDelta) { 
      delta = event.wheelDelta/120;
      //if (window.opera) delta = -delta;
   } else if (event.detail) delta = -event.detail/3;
   if (delta) MouseWheel(delta);
   if (event.preventDefault) event.preventDefault();
   event.returnValue = false;
}
if (window.addEventListener) window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;

var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
var skip_event = false;
function MouseWheel(delta) {
   if (is_chrome) {
      skip_event = !skip_event;  
      if (skip_event) return;
   }
   delta < 0 ? slideshow.shift(1,true) : slideshow.shift(-1,true);
}

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
// Image Loader
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

function ImageLoaderInfo(){
   
   this.srcInitial=null;
   this.srcPatA=null
   this.srcPatB=null;
   this.srcIndex=null;
   this.srcTitle=null;
   this.srcAlt=null;
   this.srcUrlThumb=null;
   this.srcUrlFull=null;
   
   this.dbHid=null;
   this.dbClicks=null;
   this.dbModel=null;
   this.dbTitle=null;
   this.dbPName=null;
   this.dbSEOcrumb=null;
   
   this.sliIndex=null;
   this.sliArray=null;
   
   this.disIsBlank=false;
   this.disClickToMet=false;
}

var const_img_loading='/mac/slide/img/slideload.gif';
var const_img_blank='/mac/slide/img/blank.gif';

function ImageLoader(){
   this.inf=null;
   this.imgF=new Image();
   this.imgT=new Image();
   this.el=null;
   this.disIndex=null;
   this.isLoading=false;
}

ImageLoader.prototype.urlThumb=function(){
   //http://hosted.met-art.com/met-art_AKS_10_878//thumbs/met-art_AKS_10_18_tn.jpg
   if (this.srcUrlThumb==null) this.srcUrlThumb='http://hosted.met-art.com/met-art_'+this.inf.srcInitial+'_'+this.inf.srcPatA+'_'+this.inf.srcPatB+'//thumbs/met-art_'+this.inf.srcInitial+'_'+this.inf.srcPatA+'_'+this.inf.srcIndex+'_tn.jpg';
   return this.srcUrlThumb;
}

ImageLoader.prototype.urlFull=function(){
   //http://hosted.met-art.com/met-art_AKS_10_878//full/met-art_AKS_10_18.jpg
   if (this.srcUrlFull==null) this.srcUrlFull='http://hosted.met-art.com/met-art_'+this.inf.srcInitial+'_'+this.inf.srcPatA+'_'+this.inf.srcPatB+'//full/met-art_'+this.inf.srcInitial+'_'+this.inf.srcPatA+'_'+this.inf.srcIndex+'.jpg';
   return this.srcUrlFull;
}

ImageLoader.prototype.load = function(inf){
   //mDump('loading('+this.disIndex+'):'+inf.srcInitial+'_'+inf.srcPatA+'_'+inf.srcPatB+' ('+inf.srcIndex+')');
   this.inf=inf;
   this.el=document.getElementById('x'+this.disIndex);
   if (inf.disIsBlank) {
      this.el.src=const_img_blank;
      this.isLoading=false;
      this.el.className='cache_blank';
      this.setClick();
      return;
   }
   var me=this;
   function loaded() {
      me.disIndex==0 ? me.setMain() : me.setCache();
   }
   
   function error() {
      slideshow.errorLoading(me); 
   }
   
   this.setLoading();
   if (this.disIndex==0) {
      this.imgF.onload=loaded;
      this.imgF.onerror=error;
      this.imgF.src=this.urlFull();
      if (this.imgT.src=='') this.imgT.src=this.urlThumb();
   } else {
      if (this.disIndex==1 || this.disIndex==-1) this.imgF.src=this.urlFull();
      this.imgT.onload=loaded;
      this.imgT.onerror=error;
      this.imgT.src=this.urlThumb();
   }
}

ImageLoader.prototype.setLoading = function(){
   this.isLoading=true;
   this.disIndex==0 ? this.el.className='main_loading' : this.el.className='cache_loading';
   this.el.src=const_img_loading;
   this.el.title='';
   this.el.alt='loading';
   switch(this.disIndex){
      case -3:this.el.style.top='12%';this.el.style.left='20%';break;
      case -2:this.el.style.top='17%';this.el.style.left='35%';break;
      case -1:this.el.style.top='37%';this.el.style.left='50%';break;
      case 1:this.el.style.top='57%';this.el.style.left='50%';break;
      case 2:this.el.style.top='77%';this.el.style.left='35%';break;
      case 3:this.el.style.top='82%';this.el.style.left='20%';break;
   }   
}

ImageLoader.prototype.setCache = function(){
   this.isLoading=false;
   this.el.className='cache';
   this.el.title=this.inf.dbModel + ' in "' + this.inf.dbTitle + '" by ' + this.inf.dbPName;
   this.el.alt=this.inf.dbModel;
   switch(this.disIndex){
      case -3:this.el.style.top='5%';this.el.style.left='5%';break;
      case -2:this.el.style.top='10%';this.el.style.left='20%';break;
      case -1:this.el.style.top='30%';this.el.style.left='35%';break;
      case 1:this.el.style.top='50%';this.el.style.left='35%';break;
      case 2:this.el.style.top='70%';this.el.style.left='20%';break;
      case 3:this.el.style.top='75%';this.el.style.left='5%';break;
   }
   this.el.src=this.urlThumb();
   this.setClick();
   //mDump(this.disIndex+' loaded');
}

ImageLoader.prototype.setMain = function(){
   this.isLoading=false;
   this.el.title=this.inf.dbModel + ' in "' + this.inf.dbTitle + '" by ' + this.inf.dbPName;
   this.el.alt=this.el.title;
   this.el.src=this.urlFull();   
   this.setMainClass();
   this.setClick();
   slideshow.setLink(this.inf);
   slideshow.setStatus();
}

ImageLoader.prototype.setMainClass=function(){
   if (this.imgF.width > this.imgF.height) {
      //hor
      var ch
      if (document.documentElement.clientHeight) ch=document.documentElement.clientHeight;
      else if (document.body.clientHeight) ch=document.body.clientHeight;
      else if (window.innerHeight) ch=window.innerHeight;

      this.el.className='main_hor';
      if (this.el.height+50>ch) {
         this.el.className='main_vert';
         this.el.style.top='';
      } else this.el.style.top=(ch-30-this.el.height)/2+'px';
   } else {
      this.el.className='main_vert';
      this.el.style.top='';
   }
}

ImageLoader.prototype.setClick = function(){
   if (this.inf.disIsBlank){
      this.el.onclick=function() {
         return false;
      }
      this.el.parentNode.href='';
      return;
   }   
   var me=this;
   if (this.inf.disClickToMet && this.disIndex==0) {
      this.el.parentNode.href='/mac/showpage.php?hID='+this.inf.dbHid;
      this.el.onclick=null;
   } else if (this.inf.disClickToMet && this.disIndex!=0) {
      this.el.parentNode.href='/mac/showpage.php?hID='+this.inf.dbHid;
      this.el.onclick=function(){
         slideshow.skip(me.disIndex);
         return false;
      }      
   } else {
      //this.el.parentNode.href='/mac/slide.php?hID='+this.inf.dbHid;
      this.el.parentNode.href='/mac/'+this.inf.dbModel.replace(/ /g,'_')+'_in_'+this.inf.dbTitle.replace(/ /g,'_')+'_by_'+this.inf.dbPName.replace(/ /g,'_')+'/';
      function onclick(){
         slideshow.getGallery(me.inf.dbHid);
         return false;
      }
      this.el.onclick=onclick;
   }
}

ImageLoader.prototype.shift = function(inc){
   this.disIndex+=inc;
   
   if (this.disIndex < -3 || this.disIndex > 3) {
      this.destroy();
      return false;
   }

   this.el=document.getElementById('x'+this.disIndex);
   
   if (this.inf.disIsBlank) {
      this.setClick();
      this.el.src=const_img_blank;
      return true;
   }
   
   if (this.disIndex==0) {
      slideshow.setLink(this.inf);
      if (this.imgF.src != '' && this.imgF.complete) this.setMain();
      else this.load(this.inf);
      if (this.imgT.scr =='') this.imgT.scr=this.urlThumb();
   } else {
      if (this.disIndex==1 || this.disIndex==-1) this.imgF.src=this.urlFull();
      if (this.imgT.src !='' && this.imgT.complete) this.setCache();
      else this.load(this.inf); 
   }
   this.setClick();
   return true;   
}

ImageLoader.prototype.destroy = function(){
   //this.el.src=const_img_blank;
   this.imgT.onload=null; 
   this.imgF.onload=null;
   this.imgT.onerror=null;
   this.imgF.onerror=null; 
   this.imgT=null;
   this.imgF=null;
   this.el=null;
   this.inf=null;
}

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
// Slideshow
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

var slideshow = {
   //init options
   load : 0,
   query : '',
   index : -1,
   delay : 0,
   play : true,
   //end
   
   //const
   const_v_random:0,
   const_v_model:1,
   const_v_gallery:2,
   const_v_top:3,
   const_v_latest:4,
   //end
   
   data : new Array(),
   viewing : -1,
   history : new Array(),
   pos : -1,
   last_hID:-1,
   updates : new Array(),
   ajax : new Ajax(),
   
   img : new Array(),
   
   //init:true, now a function
   playing:false,
   timer:null,
   interval:5000,
   
   init:function(){
      //mDump('>>>New Start<<<');
      if (!this.ajax.xml_supported) {
          alert('No Ajax Support, slideshow will not work');
          return;
      }
      for (var a=0;a<5;this.data[a++] = new Array());
      for (var a=0;a<7;this.img[a++] = new ImageLoader());
      this.getData(this.load,this.query);
   },
   
   getData:function(index,data){
      this.ajax.XmlGetRequest('/mac/slide/ajax.php', 'slide='+index+'&data='+data, slideshow.setData, index);
   },
   
   getModel:function(name){
      this.getData(this.const_v_model,name);
   },
   
   getGallery:function(hID){
      this.getData(this.const_v_gallery,hID);
   },
   
   getLatest:function(){
      this.getData(this.const_v_latest,'meh');
   },
   
   getTop:function(){
      this.getData(this.const_v_top,'meh');
   },
   
   setData:function(data,index){
      //alert('Data from request : '+data);
      //mDump(data);
      if (data=='') return;
      var me = slideshow;
      if (index!=me.const_v_random) slideshow.data[index]=new Array(); 
      for (var a=0;a<data.length;a++){
         var to = index==me.const_v_model || index==me.const_v_gallery ? 21 : 1;
         //mDump('to: '+to);
         for (var b=0;b<to;b++){
            var dataS = data[a].split(',');
            var inf = new ImageLoaderInfo();
            inf.srcInitial = dataS[0];
            inf.srcPatA = dataS[1];
            inf.srcPatB = dataS[2];
            inf.dbHid = dataS[3];
            inf.dbClicks = dataS[4];
            inf.dbModel = dataS[5];
            inf.dbTitle = dataS[6];
            inf.dbPName = dataS[7];
            inf.srcIndex = to == 21 ? b : Math.floor(Math.random()*15);
            inf.disClickToMet = to == 21;
            me.data[index].push(inf);         
         }
      }
      
      if (me.init) {
         me.viewing=index;
         me.init=false;
         me.pos = index == me.const_v_gallery && me.index > -1 ? me.index : 0;
         if (me.delay > 0 && me.play) setTimeout('slideshow.start();', me.delay);
         else if (me.play) me.start();
         //me.setStatus();
         me.skip(0);
      } else if (index!=me.const_v_random){
         me.viewing=index;
         me.pos=me.history.length;
         me.skip(0);
      }
   },
   
   checkData:function(){
      if (this.data[0].length < 20) this.getData(0,null);
   },
   
   shift:function(inc,force){
      //positive inc means move history read position up and therefore all the image holders down
      if (this.pos+inc < 0) return;
      if (!force && this.playing) for (var a=0;a<7;a++) if (this.img[a].isLoading || (this.img[a].disIndex==1 &! this.img[a].imgF.complete)) return;
      this.pos+=inc;
      for (var a=0;a<7;a++){
         if(!this.img[a].shift(-inc)){
            //shift returns false if it has fallen off an image holder
            //it also destorys itself
            this.img[a]=new ImageLoader();
            var index = inc > 0 ? 3 : -3;
            var inf = this.getImgInfo(this.pos + index);
            this.img[a].disIndex=index;
            this.img[a].load(inf);
         }
      }
      this.checkData();
      //this.setStatus();
   },
   
   skip:function(inc){
      if (this.pos+inc < 0) return;
      this.pos+=inc;
      for (var a=0;a<7;a++){
         this.img[a].destroy();
         this.img[a]=new ImageLoader();
         this.img[a].disIndex=a-3;
         this.img[a].load(this.getImgInfo(this.pos + a - 3));
      }
      this.checkData();
   },
   
   errorLoading:function(imgL){
      //mDump('error loading('+imgL.disIndex+'):'+imgL.inf.srcInitial+'_'+imgL.inf.srcPatA+'_'+imgL.inf.srcPatB+'_'+imgL.inf.srcIndex);
      if (this.history[imgL.inf.sliIndex]==imgL.inf){
         this.history.splice(imgL.inf.sliIndex,1);
      } else {
         for (var a=this.history.length-1;a>-1;a--){
            if (this.history[a]==imgL.inf){
               this.history.splice(a,1);
               break;
            }
         }
      }
      for (var a=imgL.disIndex;a<4;a++){
         search:
         for(var b=0;b<7;b++){
            //mDump('disIndex: '+this.img[b].disIndex+' a:'+a+' b:'+b);
            if (this.img[b].disIndex == a){
               this.img[b].destroy();
               this.img[b]=new ImageLoader();
               this.img[b].disIndex=a;
               this.img[b].load(this.getImgInfo(this.pos + a));
               break search;
            }
         }
      }
   },
   
   getImgInfo:function(pos){
      //mDump(pos);
      if (pos < 0) {
         var inf = new ImageLoaderInfo();
         inf.disIsBlank=true;
         return inf;
      }
      while (pos > this.history.length - 1){
         this.viewing = this.data[this.viewing].length > 0 ? this.viewing : this.const_v_random;
         //mDump('pos:'+pos+' hist.length:'+this.history.length+' get:'+get+' view.length:'+this.data[get].length);
         var inf = this.data[this.viewing].shift();
         inf.sliArray=this.viewing;
         inf.sliIndex=this.history.length;
         this.history.push(inf);
      }
      if (this.data[this.viewing].length>0){
         var fInf=this.data[this.viewing][0];
         var forwardLoad = new Image();
         forwardLoad.src='http://hosted.met-art.com/met-art_'+fInf.srcInitial+'_'+fInf.srcPatA+'_'+fInf.srcPatB+'//thumbs/met-art_'+fInf.srcInitial+'_'+fInf.srcPatA+'_'+fInf.srcIndex+'_tn.jpg';
      }
      if ((this.history[pos].sliArray==this.const_v_model || this.history[pos].sliArray==this.const_v_gallery) && this.last_hID != this.history[pos].dbHid) {
         var found=false;
         for (var a=0;a<this.updates.length;a++){
            if (this.updates[a]==this.history[pos].dbHid) {
               found=true;
               break;
            }
         }
         if (!found){
            this.updates.push(this.history[pos].dbHid);
            this.last_hID=this.history[pos].dbHid;
            this.ajax.XmlStimUrl('/mac/slide/ajax.php','slide=99&data='+this.history[pos].dbHid);
            //alert('up '+this.history[pos].dbHid);
         }
      }
      return this.history[pos];
   },
   
   start:function(){
      this.playing=true;
      this.timer=setInterval('slideshow.shift(1,false);',this.interval);
      this.setStatus();
   },
   
   stop:function(){
      this.playing=false;
      clearInterval(this.timer);
      this.setStatus();
   },
   
   speed:function(inc){
      if (inc*1000+this.interval<999) return;
      this.interval+=(inc*1000);
      if (this.playing) {
         this.stop();
         this.start();
      }
      this.setStatus(', speed '+(this.interval/1000)+'s');
   },
   
   resize:function(){
      for (var a=0;a<7;a++) {
         if (this.img[a].disIndex==0 && this.img[a].imgF.complete) {
            this.img[a].setMainClass();
            break;
         }
      }
   },
   
   setStatus:function(data){
      var playing = this.playing ? 'playing' : 'stopped';
      switch (this.pos < this.history.length ? this.history[this.pos].sliArray : this.viewing) {
         case this.const_v_random: var viewing = 'random';break;
         case this.const_v_model: var viewing = 'model';break;
         case this.const_v_gallery: var viewing = 'gallery';break;
         case this.const_v_top: var viewing = 'top 50';break;
         case this.const_v_latest: var viewing = 'latest 50';break;
      }
      
      function genLink(name){
         if (name.indexOf(' And ') > 0){
            var moda = name.substr(0,name.indexOf(' And '));
            var modb = name.substr(moda.length+5);
            return '<a href="/mac/slide/model/'+moda.replace(/ /g,'_')+'/">'+moda+'</a> And <a href="/mac/slide/model/'+modb.replace(/ /g,'_')+'/">'+modb+'</a>';
         } else return '<a href="/mac/slide/model/'+name.replace(/ /g,'_')+'/">'+name+'</a>';
      }
      
      function genLinkB(inf){
          var sb=new Array();
          sb.push('<a href="/mac/slide/gallery/');
          slideshow.makeSEOCrumb(inf);
          sb.push(inf.dbSEOcrumb);
          sb.push('/">');
          sb.push(inf.dbTitle);
          sb.push('</a>')
          return sb.join('');
      }
      var model = this.pos < this.history.length ? ' ('+genLink(this.history[this.pos].dbModel)+' in \''+genLinkB(this.history[this.pos])+'\' by '+this.history[this.pos].dbPName+') '+this.history[this.pos].dbClicks+' views' : '';
      document.getElementById('slidestatus').innerHTML='slideshow '+playing+', viewing '+viewing+model+(data==null?'':data);
   },
   
   makeSEOCrumb:function(inf){
       if (inf.dbSEOcrumb==null){
            var sb=new Array();
            sb.push(inf.dbModel.replace(/ /g,'_'));
            sb.push('_in_');
            sb.push(inf.dbTitle.replace(/ /g,'_'));
            sb.push('_by_');
            sb.push(inf.dbPName.replace(/ /g,'_'));
            inf.dbSEOcrumb=sb.join('');
       }
   },
   
   setLink:function(inf){
      this.makeSEOCrumb(inf);
      document.getElementById('footer').innerHTML='<a href="/mac/slide/gallery/'+inf.dbSEOcrumb+'/'+inf.srcIndex+'/">mac/slide/gallery/'+inf.dbSEOcrumb+'/'+inf.srcIndex+'/</a>';
      document.getElementById('share').onmouseover=function(){
         if (slideshow.playing) slideshow.stop();
         return addthis_open(this, '', 'http://www.somedodgywebsite.com/mac/slide/gallery/'+inf.dbSEOcrumb+'/'+inf.srcIndex+'/', "Met-Art girl "+inf.dbModel+" in "+inf.dbTitle+" by "+inf.dbPName);
      }
      //document.title=inf.dbModel+" in "+inf.dbTitle+" by "+inf.dbPName;
   },
   
   viewRandom:function(){
      this.viewing=this.const_v_random;
      this.pos=this.history.length;
      this.skip(0);
   },
   
   modelList: function(){
      var div = document.getElementById('all_models');
      div.style.display=='inline' ? div.style.display='none' : div.style.display='inline';
   }
}

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
// Cookie
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

function SlideCookie() {
    var helped=false;
    this.checkCookie();
}

SlideCookie.prototype.setCookie = function(c_name,value,expireminutes) {
    var exdate=new Date(new Date().getTime()+(expireminutes*60*1000));
    document.cookie=c_name+"="+escape(value)+((expireminutes==null) ? "" : ";expires="+exdate.toUTCString());
}

SlideCookie.prototype.getCookie = function(c_name) {
    if (document.cookie.length>0) {
        c_start=document.cookie.indexOf(c_name + "=");
        if (c_start!=-1) {
            c_start=c_start + c_name.length+1;
            c_end=document.cookie.indexOf(";",c_start);
            if (c_end==-1) c_end=document.cookie.length;
            return unescape(document.cookie.substring(c_start,c_end));
        }
    }
    return "";
}

SlideCookie.prototype.checkCookie = function() {
    var help_test=this.getCookie('h');
    if (help_test!=null && help_test=='1') {
        this.helped=true;
    }
    this.setCookie('h','1',10);
}

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
// Utils
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


function fadeScrollHelpInit(){
    var Help = new SlideCookie();
    if (Help.helped) return;
    var help = document.getElementById('scoll_info');
    help.src="/mac/slide/img/mwscroll.gif"
    help.style.zIndex=100;
    //document.getElementById('scoll_info').alt="Use Mouse to Scroll"
    this.timerFade = setTimeout('fadeScrollHelp(50,100);',2000);
}

function fadeScrollHelp(time,value){
    fadeObj=document.getElementById('scoll_info');
    fadeObj.style.opacity = value/100;
    fadeObj.style.filter = 'alpha(opacity = '+value+')';
    //fadeObj.filters.item("DXImageTransform.Microsoft.Alpha").Opacity=value*10;
    value--;
    if (value>0)
        this.timerFade=setTimeout('fadeScrollHelp('+time+','+value+');',time);
    else
    {
        document.getElementById('left_panel').removeChild(fadeObj);
        this.timerFade=null;        
    }
}


function showHolders(){
    for (var a=-4;a<4;a++) {
        if (a==0) continue;
        var toShow=document.getElementById('x'+a);
        toShow.style.display='block';
    }
}

function hideImages() {
    for (var a=-4;a<4;a++) {
        if (a==0) continue;
        var toblank=document.getElementById('x'+a);
        toblank.style.display='none';
        toblank.src='/mac/slide/img/blank.gif';
    }
}

function checkEventSource(sender,event,action) {
    var eventNode=event.relatedTarget || event.toElement;
    for (a=0;a<10;a++)
    {
        if (eventNode===sender) return;
        if (eventNode===document) break;
        eventNode=eventNode.parentNode;
    }
    if (action=='d') sender.style.display='none';
    if (action=='z') sender.style.zIndex=40;
}

function mDump(data){
   //dump(data+'\n');
}

//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
// Trigger
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


window.onload=function() {
    window.onresize=function(){slideshow.resize();} 
    showHolders();
    fadeScrollHelpInit();
    slideshow.init();
}

