//----------------------------------------------------------------------------
// Gallery function
//---------------------------------------------------------------------------- 
var base64_key = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";  
//----------------------------------------------------------------------------
function base64_encode(data) {
  var Return = "";
  var Chr_1, Chr_2, Chr_3;
  var Enc_1, Enc_2, Enc_3, Enc_4;
  var i = 0; 
  do	{
      	  Chr_1 = data.charCodeAt(i++);
      	  Chr_2 = data.charCodeAt(i++);
      	  Chr_3 = data.charCodeAt(i++);
      	  
      	  Enc_1 = Chr_1 >> 2;
      	  Enc_2 = ((Chr_1 & 3) << 4) | (Chr_2 >> 4);
      	  Enc_3 = ((Chr_2 & 15) << 2) | (Chr_3 >> 6);
      	  Enc_4 = Chr_3 & 63;
      	  
	  if(isNaN(Chr_2)) Enc_3 = Enc_4 = 64; 
	  else if(isNaN(Chr_3)) Enc_4 = 64;
	  
	  Return += base64_key.charAt(Enc_1) + base64_key.charAt(Enc_2) + base64_key.charAt(Enc_3) + base64_key.charAt(Enc_4);
   	} 
  while(i < data.length);    
  return Return;
}
//----------------------------------------------------------------------------

function base64_decode(data) { /* Not used in this demo */
  var Return = "";
  var Chr_1, Chr_2, Chr_3;
  var Enc_1, Enc_2, Enc_3, Enc_4;
  var i = 0;
  data = data.replace(/[^A-Za-z0-9\+\/\=]/g, "");  
  do	{
	  Enc_1 = base64_key.indexOf(data.charAt(i++));
	  Enc_2 = base64_key.indexOf(data.charAt(i++));
	  Enc_3 = base64_key.indexOf(data.charAt(i++));
	  Enc_4 = base64_key.indexOf(data.charAt(i++));
	  
	  Chr_1 = (Enc_1 << 2) | (Enc_2 >> 4);
	  Chr_2 = ((Enc_2 & 15) << 4) | (Enc_3 >> 2);
	  Chr_3 = ((Enc_3 & 3) << 6) | Enc_4;
	  
	  Return += String.fromCharCode(Chr_1);
	  
	  if(Enc_3 != 64) Return += String.fromCharCode(Chr_2);
      	  if(Enc_4 != 64) Return += String.fromCharCode(Chr_3);
	}
  while(i < data.length);
  return Return;
}
//----------------------------------------------------------------------------

function loadGallery(id, data, str_width, str_height) {
  document.getElementById('gal_img').src = 'gallery/' + id + 'b.jpg';
  document.getElementById('gal_img').width = str_width;
  document.getElementById('gal_img').height = str_height;
  document.getElementById('gal_data').innerHTML = base64_decode(data);
}
//----------------------------------------------------------------------------

function galleryPopup(FileName, CSSFileName, ImageWidth, ImageHeight, Caption, ScrollBar) {
ClientWidth = ImageWidth + 240;
ClientHeight = ImageHeight + 240;
galWindow = window.open('','galWindow', 'width=' + ClientWidth + ',height=' + ClientHeight + ', scrollbars=' + ScrollBar + ', resizable=yes, left=' + ((window.screen.availWidth - ImageWidth) / 2) + ', top=' + ((window.screen.availHeight - ImageHeight) / 2));
galWindow.document.open();   
galWindow.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\n');
galWindow.document.write('<html>\n');
galWindow.document.write('<head>\n');
galWindow.document.write('<meta http-equiv="Content-Type" content="text/html; charset="utf8">\n');
galWindow.document.write('<title>Gallery Preview</title>\n'); 
galWindow.document.write('<link href="res/stylesheet.css" rel="stylesheet" type="text/css">\n');
galWindow.document.write('<link href="css/' + CSSFileName + '" rel="stylesheet" type="text/css">\n');
galWindow.document.write('<style type="text/css">\n');
galWindow.document.write('body { background-image:none; }\n');
galWindow.document.write('</style>\n');      
galWindow.document.write('</head>\n');
galWindow.document.write('<body class="galleryPopup" onBlur="self.close()">\n');
galWindow.document.write('<p><img class="galleryPopup" src="' + FileName + '" alt="" width="' + ImageWidth + '" height="' + ImageHeight + '"></p>\n');
galWindow.document.write('<p style="padding-top:16px;"><span class="galleryPopup">' + base64_decode(Caption) + '</span></p>\n');
galWindow.document.write('<p style="padding-top:16px; text-align:center;"><a class="galleryPopup" href="javascript:window.close();" title="Close Window">Close Window</a></p>\n');
galWindow.document.write('</body>\n');
galWindow.document.write('</html>');
galWindow.document.close();
galWindow.focus();
}
//---------------------------------------------------------------------------- 
// Gallery function (END)
//----------------------------------------------------------------------------



//----------------------------------------------------------------------------
// Crossfade Banner
//----------------------------------------------------------------------------
var vImageFadeDivId = "divbanner";
var vUrlFadeAId = "urlbanner";
var vImageFadeImgId = "imgbanner"; 
var vTextFadeSpanId = "spanbanner";
var vCaptionFadeSpanId = "capbanner"; 
var vPause = 7.25; // seconds
var vFade = .85; // seconds
var vRotations = 1;      
var vImageArraySize = vImgArray.length;
var vUrlArraySize = vUrlArray.length;
var vTextArraySize = vTextArray.length;
var vCaptionArraySize = vCaptArray.length;
var vOpacity = 100;
var vFirstArray = 0;
var vStartImg;
var vImageRotations = vImageArraySize * (vRotations + 1);
var vFade_color = 255;     
window.onload = startCrossFade;  
//------------------------------------------------------------------------------  

function startCrossFade()
{ 
  var theimg = document.getElementById(vImageFadeImgId);
  vStartImg = theimg.src; 
  document.getElementById(vImageFadeDivId).style.backgroundImage = "url(" + vImgArray[vFirstArray] + ")";
  imageCrossFade();
}                                                                       
//------------------------------------------------------------------------------ 

function imageCrossFade()
{
  var theimg = document.getElementById(vImageFadeImgId); 
  var fadeDelta = 100 / (30 * vFade); 
  if (vOpacity < 2 * fadeDelta ) 
  {
    vOpacity = 100;
    photoShufflerShuffle();
    setTimeout("imageCrossFade()", vPause * 1000);
  }
  else
  {
    vOpacity -= fadeDelta;
    setOpacity(theimg, vOpacity);
    setTimeout("imageCrossFade()", 30);  // 1/30th of a second
  }
}
//------------------------------------------------------------------------------

function photoShufflerShuffle()
{
  var thediv = document.getElementById(vImageFadeDivId);
  var theurl = document.getElementById(vUrlFadeAId);
  var thecapt = document.getElementById(vCaptionFadeSpanId);
  var theimg = document.getElementById(vImageFadeImgId);
  var thetext = document.getElementById(vTextFadeSpanId);    
  
  theimg.src = vImgArray[vFirstArray];
  thetext.innerHTML = base64_decode(vTextArray[vFirstArray]);
  thecapt.innerHTML = base64_decode(vCaptArray[vFirstArray]);
  setOpacity(theimg, 100);  
	
  vFirstArray = ++vFirstArray % vImageArraySize;
  if(vImageRotations < 1) vImgArray[vFirstArray] = vStartImg; 
  thediv.style.backgroundImage = "url(" + vImgArray[vFirstArray] + ")";
  theurl.href = vUrlArray[vFirstArray];
}
//------------------------------------------------------------------------------

function setOpacity(obj, opacity) 
{
  opacity = (opacity == 100) ? 99.999 : opacity;     
  obj.style.filter = "alpha(opacity:" + opacity + ")"; // Internet Explorer     
  obj.style.KHTMLOpacity = opacity / 100; // Safari & Konqueror    
  obj.style.MozOpacity = opacity / 100; // Previous Mozilla and Firefox (or lower)  
  obj.style.opacity = opacity / 100; // Safari 1.2, Firefox and Mozilla, CSS3 (or higher)
}
//----------------------------------------------------------------------------
// Crossfade Banner (END)
//----------------------------------------------------------------------------

