
/* Image Zoom
------------------------------------------------ */

function initZoom() {
}

function showImage( url ) {
	
	var windowWidth = document.documentElement.clientWidth;
	var spanWidth = document.getElementById(url).offsetWidth;
	var location = (windowWidth - spanWidth) / 2;
	document.getElementById(url).style.left = location + 'px';
	
	setOpacity(0, url);
	document.getElementById(url).style.visibility = 'visible';
  	fadeElementSetup(url, 0, 100, 10);

}

function hideImage( url ) {

  	fadeElementSetup(url, 100, 0, 10);
	document.getElementById(theID).style.visibility = 'hidden';

}

function fadeElementSetup(theID, fdStart, fdEnd, fdSteps) {
  fadeSteps = fdSteps;
  fadeCurrent = 0;
  fadeAmount = (fdStart - fdEnd) / fadeSteps;
  
  if( fdEnd == 0 )
  	setHidden = 1;
  else
  	setHidden = 0;

	fadeTimer = setInterval("fadeElement('"+theID+"')", 50);
}

function fadeElement(theID) {
	
	//window.status = "fadeup - " + theID + " - " + fadeCurrent + " - " + fadeSteps;

	fadeCurrent++;
	
	// Set the opacity depending on if we're adding or subtracting (pos or neg)
	if (fadeAmount < 0) {
		setOpacity(Math.abs(fadeCurrent * fadeAmount), theID);
	} else {
		setOpacity(100 - (fadeCurrent * fadeAmount), theID);
	}
	if (fadeCurrent>=10) {
	
		// We're done, so clear
		clearInterval(fadeTimer);
    
		if( setHidden == 1 ) {
			setOpacity(0, theID);
			document.getElementById(theID).style.visibility = 'hidden';
		}
	}
}

function setOpacity(opacity, theID) { 

  var object = document.getElementById(theID).style;

  // If it's 100, set it to 99 for Firefox.

  if (navigator.userAgent.indexOf("Firefox") != -1) {
    if (opacity == 100) { opacity = 99.999; } // This is majorly retarded
  }

  // Multi-browser opacity setting

  object.filter = "alpha(opacity=" + opacity + ")"; // IE/Win
  object.KhtmlOpacity = (opacity / 100);            // Safari 1.1 or lower, Konqueror
  object.MozOpacity = (opacity / 100);              // Older Mozilla+Firefox
  object.opacity = (opacity / 100);                 // Safari 1.2, Firefox+Mozilla
}


/* Archive and Category Buttons
------------------------------------------------ */

function showArchive( hide ) {
	
	// Set Left Distance
	var leftDistance = document.getElementById('archive-link').offsetLeft -10 + 'px';
	document.getElementById('archive-list').style.left = leftDistance;
	
	// Set Top Distance
	var topDistance = document.getElementById('archive-link').offsetTop;
	var divHeight = document.getElementById('archive-list').offsetHeight;
	document.getElementById('archive-list').style.top = (topDistance - divHeight +1 ) + 'px';

	// If we want to hide, make it visible
	if( hide == 'yes' ) {
		document.getElementById('archive-list').style.visibility == 'visible';
	}
	
	// Hide the Categories
	if( document.getElementById('category-list').style.visibility == 'visible' ) {
		showCategories();
	}
		
	
	// Show / Hide Div
	if( document.getElementById('archive-list').style.visibility == 'visible' ) {
	
		document.getElementById('archive-list').style.visibility = 'hidden';
		document.getElementById('archive-list').style.zIndex = '0';
		document.getElementById('archive-link').style.zIndex = '0';
		document.getElementById('archive-link').style.border = '1px solid #FFFFFF';
		document.getElementById('archive-link').style.background = '#FFFFFF';
		document.getElementById('archive-link-A').style.borderBottom = '1px dotted #000000';
		
	} else {
	
		document.getElementById('archive-list').style.visibility = 'visible';
		document.getElementById('archive-list').style.zIndex = '50';
		document.getElementById('archive-link').style.zIndex = '100';
		document.getElementById('archive-link').style.border = '1px solid #000000';
		document.getElementById('archive-link').style.borderTop = '1px solid #CCCCCC';
		document.getElementById('archive-link').style.background = '#CCCCCC';
		document.getElementById('archive-link-A').style.border = 'none';
	
		// Hide Categories
		showCategories( yes );
		
	}
}

function showCategories( hide ) {

	// Set Left Distance
	var leftDistance = document.getElementById('category-link').offsetLeft -10 + 'px';
	document.getElementById('category-list').style.left = leftDistance;
	
	// Set Top Distance
	var topDistance = document.getElementById('category-link').offsetTop;
	var divHeight = document.getElementById('category-list').offsetHeight;
	document.getElementById('category-list').style.top = (topDistance - divHeight +1 ) + 'px';
	
	// If we want to hide, make it visible
	if( hide == 'yes' ) {
		document.getElementById('category-list').style.visibility == 'visible';
	}
	
	// Hide the Archive
	if( document.getElementById('archive-list').style.visibility == 'visible' ) {
		showArchive();
	}
	
	// Show / Hide Div
	if( document.getElementById('category-list').style.visibility == 'visible' ) {
	
		document.getElementById('category-list').style.visibility = 'hidden';
		document.getElementById('category-list').style.zIndex = '0';
		document.getElementById('category-link').style.zIndex = '0';
		document.getElementById('category-link').style.border = '1px solid #FFFFFF';
		document.getElementById('category-link').style.background = '#FFFFFF';
		document.getElementById('category-link-A').style.borderBottom = '1px dotted #000000';
		
	} else {
	
		document.getElementById('category-list').style.visibility = 'visible';
		document.getElementById('category-list').style.zIndex = '50';
		document.getElementById('category-link').style.zIndex = '100';
		document.getElementById('category-link').style.border = '1px solid #000000';
		document.getElementById('category-link').style.borderTop = '1px solid #CCCCCC';
		document.getElementById('category-link').style.background = '#CCCCCC';
		document.getElementById('category-link-A').style.border = 'none';
	
		// Hide Archive
		showArchive( yes );
		
	}
}
