/* ============================================================================
** Javascript Pic Browser
** Web Matrix - May, 2006
** ============================================================================
*/

var images;
var current_image=1;
var num_images;
var imageDir;
var skipBackLayer = false;
var oldIE = false;
var isIE = false;

function browserDetect() {
  var ua = navigator.userAgent.toLowerCase();
  var pos = ua.indexOf('msie');
  if(pos > 0) {
	isIE = true;
    skipBackLayer = true;
    var ver = ua.charAt(pos + 5);
    //alert("User Agent: "+ua+"\nVersion: "+ver);
    if(ver < 6) {
      oldIE = true;
    } 
  }
}

function ge(id) {
  return document.getElementById(id);
}

function newImage(x, y, name) {
  if(x == 0 || y == 0) {
    image = new Image();
  } else {
    image = new Image(x, y);
  }
  image.src = name;
  return image;
}

function popupView() {
  window.open("/lib/picview.php?p=/"+imageDir+"/full/"+current_image,'','toolbar=no,location=no,status=no,statusbar=no,menu=no,menubar=no,scrollbars=no,resizable=no,width=400,height=450');
  return true;
}

function closeImageView() {
  if(animateDisplay) {
    animatePopdown();
  } else {
    var c = document.getElementById('frontLayer');
    c.className = 'hidden';
    if(!skipBackLayer) {
      var b = document.getElementById('backLayer');
      b.className = 'hidden';
    }
    c.innerHTML = "";
  }
}

var animateDisplay = true;
var timerRunning= false;
var timer;
var upperTransLimit = 60;
var currentTrans = 0;
var transIter = 15;
function animateStop() {
  if(timerRunning) {
    clearTimeout(timer);
  }
  timerRunning = false;
}
function animatePopup() {
  if(timerRunning) {
    clearTimeout(timer);
  }
  timerRunning = true;
  timer = self.setTimeout('scaleTrans(1);', 1);
}
function animatePopdown() {
  if(timerRunning) {
    clearTimeout(timer);
  }
  timerRunning = true;
  timer = self.setTimeout('scaleTrans(0);', 1);
}
var transObj=false;
function scaleTrans(direction) {
  if(transObj == false) {
    transObj = document.getElementById('backLayer');
  }
  if(direction == 1) {
    if(currentTrans == 0) {
      transObj.className = "visible";
      document.getElementById('backLayer').className = 'visible';
    }
    // up
    if(currentTrans >= upperTransLimit) {
      animateStop();
      document.getElementById('frontLayer').className = 'visible';
    } else {
      currentTrans = currentTrans + transIter;
    }
  } else {
    // down
    if(currentTrans == upperTransLimit) {
      document.getElementById('frontLayer').className = 'hidden';
    }
    if(currentTrans > 0) {
      currentTrans = currentTrans - transIter;  
    } else {
      document.getElementById('backLayer').className = 'hidden';
      animateStop();
    }
  }
  if(transObj.style.filters) {
    transObj.style.filters.alpha.opacity = (currentTrans);
  }
  transObj.style.MozOpacity = (currentTrans/100);
  if(direction == 1) {
    animatePopup();
  } else {
    animatePopdown();
  }
}

function viewFullImage() {
  if(!skipBackLayer) {
    var b = document.getElementById('backLayer');
  }
  var c = document.getElementById('frontLayer');
  if(c) {
  
  if(isIE) {
	 out  = "<table cellpadding='0' cellspacing='0' border='0' class='imagePopupIE'><tr style='height: 33%;'>";
  } else {
     //current_image = 1;
     out  = "<table cellpadding='0' cellspacing='0' border='0' class='imagePopup'><tr style='height: 20%;'>";
  }
     out += "<td width='33%'>&nbsp;</td><td class='middleCell'>&nbsp;</td><td width='33%'>&nbsp;</td>";
     out += "</tr><tr class='middleRow'>";
     out += "<td>&nbsp;</td><td class='middleCell'>";
     out += "<div align='right' style='padding:3px;'>";
     out += "<a href='#' onclick='javascript: closeImageView(); return false;'>Close &nbsp;<b style='font-family: Verdana;font-size:14px;'>&times;</b></a>";
     out += "</div>";
     out += "<img onclick='javascript: closeImageView();' style='cursor:pointer;' src='/"+imageDir+"/full/"+current_image+".jpg' alt=' Image '/><br/>";
     out += "</td><td>&nbsp;</td>";
     out += "</tr><tr style='height: 20%;'>";
     out += "<td>&nbsp;</td><td class='middleCell'>";
     out += "&nbsp;</td><td>&nbsp;</td>";
     out += "</table>";
     
     c.innerHTML = out;
     if(animateDisplay == true) {
       animatePopup();
     } else {
       if(b && !skipBackLayer) {
         b.className = "visible";
       }
       c.className = 'visible';
     }
  }
  
}

function alertTest() {
  alert("Test");
}

function doDynSource() {
  return;
  divs = document.getElementsByTagName('div');
  for(var i = 0; i < divs.length; i++) {
    if(divs[i].className == 'dynSource') {
      imgs = divs[i].getElementsByTagName('img');
      if(imgs && imgs.length > 0) {
        for(var j = 0; j < imgs.length; j++) {
          imgs[j].className = 'pointer';
        }
      }
    }
  }
}

function initPicBrowse(subDir, numImages) {
  browserDetect();
  imageDir = subDir;
  if(document.all && document.getElementById) {
    animateDisplay = false;
  }
  // setup click events for images
  if(oldIE) {
    document.getElementById('left_image').onclick=popupView;
    document.getElementById('right_image').onclick=popupView;
    doDynSource();
  } else {
    document.getElementById('left_image').onclick=viewFullImage;
    document.getElementById('right_image').onclick=viewFullImage;
    doDynSource();
  }
  num_images = numImages;
  delete images;
  images = new Array;
  images[0] = new Array;
  images[1] = new Array;
  for(var i = 0; i < numImages; i++) {
    num = (i + 1);
    images[0][num] = newImage(180, 180, "/"+subDir+"/left/"+num+".jpg");
    images[1][num] = newImage(180, 180, "/"+subDir+"/right/"+num+".jpg");
  }
  picBrowse(current_image);
}

function picNext() {
  if(current_image+1 > num_images) {
    picBrowse(1);
  } else {
    picBrowse(current_image+1);
  }
  return false;
}

function picBrowse(num) {
  if(ge('text_'+num)) {
    ge('text_base').innerHTML = ge('text_'+num).innerHTML;
    ge('text_base').style.cursor = 'pointer';
    if(oldIE) {
      ge('text_base').onclick = popupView;
    } else {
      ge('text_base').onclick = viewFullImage;
    }
  } else {
    ge('text_base').onclick = null;
    ge('text_base').style.cursor = 'default';
    ge('text_base').innerHTML = ge('text_default').innerHTML;
  }
  
  if(ge('picnav_'+num)) {
    if(ge('picnav_'+current_image)) {
      ge('picnav_'+current_image).className = 'galNav';
    }
    ge('picnav_'+num).className = 'galNav_on';
  }
  
  current_image = num;
  if(images[0][num] && images[1][num]) {
    ge('left_image').src = images[0][num].src;
    ge('right_image').src = images[1][num].src;
    return false;
  } else {
    return true;
  }
  current_image = num;
}
