listen(window, 'load', prepCaseImgPopups);
listen(window, 'load', prepRefDetailPopups);

/* Cases and Refs used to share this functionality. Now it's just Refs that has the detail popup. */
var autoShowId;
function prepRefDetailPopups() {
   var casePoppers = elemsByClass('link_opencasepop');
   quoteHolder = elemById('reference_quote');
   quoteVisual = elemById('topright_visual');

   for (var i=0; i < casePoppers.length; i++) {
      casePoppers[i].onclick = showCasePop;
   }

   //if autoShowId is filled in referenties.asp
   if (autoShowId) {
      showCasePop.apply(elemById('link_casepopup_'+ autoShowId))
   }

   document.body.onclick = closeCasePop;
}

var caseImageOverlay, casePopImage = new Array();
function prepCaseImgPopups() {
   caseImageOverlay = elemById('case_imageoverlay');

   caseImageOverlay.prevarrow = elemsByTag('IMG', caseImageOverlay)[0];
   caseImageOverlay.photo = elemsByTag('IMG', caseImageOverlay)[1];
   caseImageOverlay.nextarrow = elemsByTag('IMG', caseImageOverlay)[2];
   caseImageOverlay.onclick = closeCaseImgPopup;
   listen(document.body, 'click', closeCaseImgPopup);
}
function closeCaseImgPopup(ev) {
   if (caseImageOverlay.style.display == 'block') {
      caseImageOverlay.style.display = 'none';
   }
}

////////// casepop detail info (as of 4 Feb 2009, 14:55, only used in Referenties) //////////
////////// FG 6-3-2009 10:13:13: ref popups are removed only the images in the header
var currentCasePop;
var quoteHolder, quoteVisual;

function showCasePop(ev) {
   killBubble(ev);
   ///////////////
   var casePop = elemById(this.getAttribute('rel').replace('link_', ''));
   var refId = parseInt(this.getAttribute('rel').replace('link_casepopup_', ''));
   var topCoord = 0, bottomCompensation = 0;

   casePop.onclick = killBubble;

   //set curCasePop
   currentCasePop = casePop;

   //set image and quote
   if (arrQuotes[refId]) {
      quoteHolder.innerHTML = '&ldquo;'+ arrQuotes[refId] +'&rdquo;';
      if(arrHeaderImg[refId]) {
         quoteVisual.src = arrHeaderImg[refId];
      } else {
         quoteVisual.src = elemById('refs_logo_'+ refId).src;
      }
   } else {
      quoteHolder.innerHTML = '&ldquo;'+ quoteHolder.getAttribute('rel') +'&rdquo;';
      quoteVisual.src = quoteVisual.getAttribute('rel');
   }

   return false;
}
function closeCasePop() {
   if (currentCasePop) {
      quoteHolder.innerHTML = '&ldquo;'+ quoteHolder.getAttribute('rel') +'&rdquo;';
      quoteVisual.src = quoteVisual.getAttribute('rel');
   }
}

////////// casepop picture browser //////////

// array is populated in writecases.asp
var casePopPicture = new Array();
var startIndex = 0;

function prepCasePopLinks() {
   var picPaths   = casePopPicture.foto;
   var picPopUrls = casePopPicture.url;
   var poplink;

   casePopImage.largeUrls = picPopUrls;

   for (var i=0; i < picPaths.length; i++) {
      poplink = document.getElementById('casepopimg_link_' + i);
      poplink.onclick = openCaseImageOverlay;
      poplink.setAttribute('currentlink', picPopUrls[i]);
      poplink.setAttribute('currentindex', i );
   }
}

/* proc openCaseImageOverlay
   does: gets image data from thumblink from which it is called, and sets up
         the prevnext arrow clicks of the image overlay
*/
function openCaseImageOverlay(ev) {
   killBubble(ev);

   var currentUrl = this.getAttribute('currentlink');
   var currentIndex = parseInt(this.getAttribute('currentindex'));

   caseImageOverlay.index = currentIndex;
   caseImageOverlay.style.display = 'block';
   caseImageOverlay.photo.src = currentUrl;

   caseImageOverlay.prevarrow.onclick = function (e) {
      caseImageOverlay.photo.src = casePopImage.largeUrls[ wrap(caseImageOverlay.index-1, casePopImage.largeUrls.length) ];
      caseImageOverlay.index--;
      killBubble(e);
   }
   caseImageOverlay.nextarrow.onclick = function (e) {
      caseImageOverlay.photo.src = casePopImage.largeUrls[ wrap(caseImageOverlay.index+1, casePopImage.largeUrls.length) ];
      caseImageOverlay.index++;
      killBubble(e);
   }

   return false;
}

/* int wrap
   shifts any supplied @index to a valid index in the range 0-@length
*/
function wrap(index, length) {
   var _norm = index % length;
   if (_norm < 0) _norm += length;

   return _norm;
}
function killBubble(ev) {
   if (!ev) {
      ev = window.event;
   }
   if (!ev) {
      return;
   }
   ev.cancelBubble = true;
}

