ooom.log("start compile gallery");

var gallery = new Object();
gallery.imgEls=[null];
gallery.imgLinks=[null];
gallery.r=0;
gallery.stPos=-105;
gallery.dynFotos=[null];
function raumCallBack(){
  if( gallery.imgEls && gallery.cImIdx != null)  {
    gallery.linksLen = gallery.cImIdx + 1;
    if( gallery.linksLen <= gallery.imgsLen)  {
      fetchPicture( ++gallery.cImIdx);
    } else  {
      if( gallery.pnrEl) gallery.pnrEl.nodeValue + " ok";
      gallery.cImIdx = 0;  // freigeben fuer den naechsten call
  } } 
}

function nextPicCB(){
  if( gallery.cImIdx && gallery.cImIdx == gallery.imgLinks.length - 1 )  {
     // if( gallery.pnrEl) gallery.pnrEl.nodeValue = " ";
     fetchPicture( gallery.cImIdx);
  }
}

function fetchPicture( pictureIdx)  {
  var source=null;
  var cbf = raumCallBack;
  if( pictureIdx < gallery.imgsLen && gallery.imgEls[ pictureIdx] && gallery.mapIdx == null)   {
     whichpic = gallery.imgEls[ pictureIdx];
     whichpic.url = this.url;
     source = whichpic.getAttribute( "src");
  } else if( pictureIdx > 0 && gallery.mapIdx==null) { // the first 6 pictures are loaded
     xAddEventListener( gallery.imgEls[1], 'mouseover', shiftGalleryRight);
     xAddEventListener( gallery.imgEls[4], 'mouseover', shiftGalleryLeft);
     gallery.mapIdx = 0;
     gallery.cImIdx = 0;
  } else if( pictureIdx==gallery.imgLinks.length )  {  // fetch the next thumbernail
     if( gallery.pnrEl) gallery.pnrEl.nodeValue = pictureIdx + "s";
     cbf = nextPicCB;
     if( pictureIdx < gallery.imgsLen + gallery.dynFotos.length)  {
        source = gallery.path + gallery.dynFotos[ pictureIdx-gallery.imgsLen];
     }
  } 
  if( source && typeof source =='string') {
     var imgLink= new Array( 2);
     imgLink[ 0] = source;
//     source = source.replace( '100p82', '425p283');  // 414p340
     source = source.replace( '100p82', '414p340');  // 
     imgLink[ 1] = source;
     gallery.imgLinks[ pictureIdx]=imgLink;
     if( gallery.pnrEl) gallery.pnrEl.nodeValue = pictureIdx + " ";
     var loader=new HTTP.ContentLoader( source, cbf, myerrorRout, 'GET');
  } else if( pictureIdx==gallery.imgLinks.length-1 ) {  // fetch the thumbernail
     if( gallery.pnrEl) gallery.pnrEl.nodeValue = pictureIdx + "++";
     var imgLink = gallery.imgLinks[ pictureIdx];
     var loader=new HTTP.ContentLoader( imgLink[ 0], cbf, myerrorRout, 'GET');
  }
}

function showPic( whichpic)  {
   if( HTTP.goalElement && whichpic && whichpic.url)   {
       HTTP.goalElement.setAttribute( "src", whichpic.url);
   }
   return false;
}

function prepareGallery() {
  if( !document.getElementsByTagName || !document.getElementById) return false;

  gallery.div = ps$( "div_smallPictures");
  gallery.switchDiv = ps$( "div_switchPictures");
  if( gallery.div && gallery.switchDiv)   {
     gallery.imgEls   = gallery.div.getElementsByTagName( "img");
     gallery.imgsLen = gallery.imgEls.length;
     for( var i=0; i<gallery.imgsLen; i++)  {
        gallery.imgEls[ i].onclick = function() {
              return showPic( this);
     }  }
     var whichpic = gallery.imgEls[ 0];
     if( whichpic && whichpic.src && typeof whichpic.src == 'string')   {
        var li = whichpic.src.lastIndexOf( '/') + 1;
        gallery.path=whichpic.src.substring(0, li);
     }
     gallery.dynFotos= new Array("raum_jh_409_100p82.jpg","raum_jh_418_100p82.jpg","raum_jh_421_100p82.jpg");
     HTTP.goalElement = ps$( "img_bigpicture");
     gallery.swEls = gallery.switchDiv.getElementsByTagName( "img");
     for( var i=0; i<gallery.swEls.length; i++)  {
        gallery.swEls[ i].onclick = function() {
              return showPic( this);
   } }  }
   var div_pnr = ps$( "div_pnr");
   if( div_pnr) gallery.pnrEl = div_pnr.childNodes[ 0];
   if( !gallery.div.style.left ) gallery.div.style.left = gallery.stPos + 'px';
   
   setTimeout( 'fetchPictures();', 200);
}


function fetchPictures() {
   ooom.log(" fetchPictures called");
   if( gallery.div)   {
      gallery.cImIdx = 0;
      fetchPicture( 0);
}  }


function startMoveGallery( newEp) {
  if( gallery.div && gallery.div.style && gallery.r == 0)  {
     gallery.ep = newEp;
     var cp = parseInt( gallery.div.style.left);
     gallery.r = Math.ceil( Math.abs( gallery.ep - cp) / 2);
      if( gallery.r > 1)  {
          moveGallery();
}  }   }

function moveGallery() {
  var cp = parseInt( gallery.div.style.left);
  var curStep = getStep( cp);
  if( Math.abs( gallery.ep - cp) <= Math.abs(curStep) )  {
    if( gallery.ep == 0) --gallery.mapIdx;
    else                 ++gallery.mapIdx;
    gallery.switchPictures( gallery.mapIdx);
  } else {
    gallery.div.style.left = (cp + curStep) +'px';
    gallery.tOut = setTimeout( moveGallery,60);
    if( gallery.cImIdx == 0) { 
       gallery.cImIdx  = gallery.linksLen;
       fetchPicture( gallery.cImIdx);
       // alert( "moveGallery- fetchPicture: " + gallery.cImIdx);
    }
}  }


function getStep( cp)   {
  var alfa =  Math.asin( (Math.abs( cp - gallery.ep) - gallery.r) / gallery.r);
  var step =  Math.ceil(gallery.r * Math.cos( alfa) / 8);
  if( step == 0) step = 1;
  if( gallery.ep<0) step *= -1;
  return step;
}

gallery.switchPictures = function( newMapIdx)  {  //idx of the imgLink contained in the gallery.imgEls[0]
   if( newMapIdx < 0)   gallery.mapIdx = gallery.linksLen - 1;
   else if( newMapIdx >= gallery.linksLen) gallery.mapIdx = 0;
   else                gallery.mapIdx = newMapIdx;

   for( var i=0; i<gallery.imgsLen-2; i++)  {
      var linkObj = gallery.imgLinks[ (i+gallery.mapIdx + 1 ) % gallery.linksLen];
      gallery.swEls[i].src = linkObj[0];
      gallery.swEls[i].url = linkObj[1];
   }
   gallery.switchDiv.style.display='block';
   gallery.div.style.left = gallery.stPos +'px';
   gallery.tOut = setTimeout( gallery.shiftGallery, 240);
}

gallery.shiftGallery = function( )  {
   for( var i=0; i<gallery.imgsLen; i++)  {
      var linkObj = gallery.imgLinks[ (i+gallery.mapIdx ) % gallery.linksLen ];
      gallery.imgEls[i].src = linkObj[0];
      gallery.imgEls[i].url = linkObj[1];
   }
   gallery.tOut = setTimeout( gallery.activateGallery, 240);
}

gallery.activateGallery = function( )  {
   gallery.switchDiv.style.display='none';
   gallery.r = 0;
}

shiftGalleryRight=function( event)  {
  showPic(gallery.imgEls[1]);
  startMoveGallery( 0);
  return false;
}
shiftGalleryLeft=function( event)  {
  showPic(gallery.imgEls[4]);
  startMoveGallery( -210);
  return false;
}

ooom.nextasyncall=prepareGallery;
// addLoadEvent( prepareGallery);
ooom.log("compile gallery Ende");

