/* Simple Carousel Gallery
 */
(function(o){
  var modal = window.modal = {
                "dialog" : o.getElementById("dialog"),
                "dark" : o.getElementById("black")
              };
  var ctv = o.getElementById("ctv");
  ctv.onclick = function(){
    for(var a in window.modal)
      window.modal[a].style.display = "block";
  }
  o.getElementById("moveprev").onclick = function(){
    showImage("prev");
  }
  o.getElementById("movenext").onclick = function(){
    showImage("next");
  }
  o.getElementById("carousel").getElementsByTagName("img")[0].style.display = "block";
  o.getElementById("carousel").getElementsByTagName("img")[0].style.visibility = "visible";
  o.onkeyup = function(evt){
    evt = (evt)?evt:((window.event)?window.event:null);
    if(evt && isShown()){
      switch(evt.which||evt.keyCode){
        case 37:
          showImage("prev");
          break;
        case 39:
          showImage("next");
          break;
      }
    }
  }
})(document)

// Show the next
// or previous
// image in gallery
function showImage(direction){
  var imgs = document.getElementById("carousel").getElementsByTagName("img"), // object[] images
      img, // object image
      c=0, // int incrementer
      disp, // int displacement
      isNext=(direction=="next"); // bool isNext
  // foreach of the images...
  while(img = imgs[c++]){
    // find the image that is currently being displayed
    if(img.style.display == "block"){
      // figure out the displacement
      disp=(isNext)?c:c-2;
      disp=(disp<0)?(imgs.length-1):disp;
      disp=(disp>=imgs.length&&isNext)?0:disp;
      // show the next/prev image
      img.style.display = "none";
      img.style.visibility = "hidden";
      imgs[disp].style.visibility = "visible";
      imgs[disp].style.display = "block";
      //document.getElementById("carousel").style.width=((imgs[disp].naturalWidth||imgs[disp].clientWidth)+10)+"px";
      break;
    }
  }
}

// close modal
function closeModal(){
  for(var a in window.modal)
   window.modal[a].style.display = "none";
}

// Simple function for checking
// whether the screenshot viewer
// is being shown
function isShown(){
  var ret = false;
  for(var a in window.modal)
      ret = (window.modal[a].style.display == "block");
  return ret;
}