// Copyright 2006-2007 Morose Media

var galleryFirst = true;
if (!galleryPages) { 
	var galleryPage = 0;
	var galleryPages = 0; 
}

function galleryNull(id) {
	return '<img id="' + id + '" class="borderclicknull" src="' + basepath + 'images/layout/null.gif" alt="" title="" border="no" width="20" height="19">';
}

function galleryAttach(id, eventname, func) {
  if (document.attachEvent) {
	  document.getElementById(id).attachEvent("on" + eventname, func);
  } else if (document.addEventListener) {
  	document.getElementById(id).addEventListener(eventname, func, true);
  }	
}

function galleryInit() {	
  galleryAttach('bordercaption', 'mousedown', function(event) { dragStart(event, 'gallerydisplay'); });
  galleryAttach('bordertop', 'mousedown', function(event) { dragStart(event, 'gallerydisplay'); });
  galleryAttach('bordernull', 'mousedown', function(event) { dragStart(event, 'gallerydisplay'); });
    
  galleryAttach('borderclose', 'mouseover', function(event) { document.getElementById('borderclose').className = 'bordercloseover';});
  galleryAttach('borderclose', 'mouseout', function(event) { document.getElementById('borderclose').className = 'borderclosenormal';});
  galleryAttach('borderclose', 'mousedown', function(event) { galleryHide(); });
  document.getElementById('borderclose').innerHTML = galleryNull('borderclosenull');
  galleryAttach('borderclosenull', 'mouseover', function(event) { document.getElementById('borderclose').className = 'bordercloseover';});
  galleryAttach('borderclosenull', 'mouseout', function(event) { document.getElementById('borderclose').className = 'borderclosenormal';});
    
  galleryAttach('borderprev', 'mouseover', function(event) { document.getElementById('borderprev').className = 'borderprevover';});
  galleryAttach('borderprev', 'mouseout', function(event) { document.getElementById('borderprev').className = 'borderprevnormal';});
  galleryAttach('borderprev', 'mousedown', function(event) { galleryPrev(event); return false; });
  document.getElementById('borderprev').innerHTML = galleryNull('borderprevnull');
  galleryAttach('borderprevnull', 'mouseover', function(event) { document.getElementById('borderprev').className = 'borderprevover';});
  galleryAttach('borderprevnull', 'mouseout', function(event) { document.getElementById('borderprev').className = 'borderprevnormal';});
    
  galleryAttach('bordernext', 'mouseover', function(event) { document.getElementById('bordernext').className = 'bordernextover';});
  galleryAttach('bordernext', 'mouseout', function(event) { document.getElementById('bordernext').className = 'bordernextnormal';});
  galleryAttach('bordernext', 'mousedown', function(event) { galleryNext(event); return false; });
  document.getElementById('bordernext').innerHTML = galleryNull('bordernextnull');
  galleryAttach('bordernextnull', 'mouseover', function(event) { document.getElementById('bordernext').className = 'bordernextover';});
  galleryAttach('bordernextnull', 'mouseout', function(event) { document.getElementById('bordernext').className = 'bordernextnormal';});
  
  imageprefetch(basepath + 'images/layout/gallery-topleft.v' + versions.gallery + '.png');
  imageprefetch(basepath + 'images/layout/gallery-top.v' + versions.gallery + '.png');
  imageprefetch(basepath + 'images/layout/gallery-topright.v' + versions.gallery + '.png');
  imageprefetch(basepath + 'images/layout/gallery-left.v' + versions.gallery + '.png');
  imageprefetch(basepath + 'images/layout/gallery-right.v' + versions.gallery + '.png');
  imageprefetch(basepath + 'images/layout/gallery-bottomleft.v' + versions.gallery + '.png');
  imageprefetch(basepath + 'images/layout/gallery-bottom.v' + versions.gallery + '.png');
  imageprefetch(basepath + 'images/layout/gallery-bottomright.v' + versions.gallery + '.png');
  if (galleryPages > 0) {
  	for (var i = 0; i < galleryItems.length; i++) {
  		if (galleryItems[i][3] == 'image') {
    		imageprefetch(galleryItems[i][2]);
  		}
  	}
  }
}

function galleryGo() {
 	if (galleryPage == 1) {
    document.getElementById('galleryNavigationPrev').className = 'galleryNavigationHidden';
    document.getElementById('galleryNavigationPrevDisabled').className = 'galleryNavigationVisible';
  } else {
 	  document.getElementById('galleryNavigationPrev').className = 'galleryNavigationVisible';
    document.getElementById('galleryNavigationPrevDisabled').className = 'galleryNavigationHidden';		
  }

  if (galleryPage == galleryPages) {
 	  document.getElementById('galleryNavigationNext').className = 'galleryNavigationHidden';
    document.getElementById('galleryNavigationNextDisabled').className = 'galleryNavigationVisible';
  } else {
 	  document.getElementById('galleryNavigationNext').className = 'galleryNavigationVisible';
    document.getElementById('galleryNavigationNextDisabled').className = 'galleryNavigationHidden';		
  }

 	flashitems('flashGallery', 'Gallery', gallerySizeX, gallerySizeY, 149);
}

function galleryFindPrev() {
	if (galleryIndex > 0) {
		for (var i = galleryIndex - 1; i >= 0; i--) {
    	if (galleryItems[i][3] != 'none') {
    		return i;
    	}			
		}
		return -1;			
	} else {
		return -1;
	}
}

function galleryPrev(event) {
	var prev = galleryFindPrev();
	if (prev > -1) {
		flashitemsShowGallery(prev + 1);
	}
}

function galleryFindNext() {
	if (galleryIndex < galleryItems.length - 1) {
		for (var i = galleryIndex + 1; i < galleryItems.length; i++) {
    	if (galleryItems[i][3] != 'none') {
    		return i;
    	}			
		}
		return -1;			
	} else {
		return -1;
	}
}

function galleryNext(event) {
	var next = galleryFindNext();
	if (next > -1) {
		flashitemsShowGallery(next + 1);
	}
}

function galleryPagePrev() {
 	galleryPage--;
 	galleryGo();
}

function galleryPageNext() {
 	galleryPage++;
 	galleryGo();
}

function galleryHide() {
	document.getElementById('borderprev').style.visibility = 'hidden';
	document.getElementById('borderprevdisabled').style.visibility = 'hidden';			
	document.getElementById('bordernext').style.visibility = 'hidden';
	document.getElementById('bordernextdisabled').style.visibility = 'hidden';			
	document.getElementById('gallerydisplay').style.visibility = 'hidden';	
}

function galleryShow(title, url, imgtype, width, height, prev, next) {
	document.getElementById('gallerydisplay').style.visibility = 'hidden';
	
	var maxwidth = 880;
  var topoffset = 0;
  var leftoffset = 0;
	var widthoffset = (38 - 19) + (82 - 63);
	var heightoffsetTop = (61 - 18);
	var heightoffsetBottom = (61 - 42);
	var heightoffset = heightoffsetTop + heightoffsetBottom;
	var widthdeduct = 82;
	var heightdeduct = 60;
	
	var gWidth = width + widthoffset;
	var gHeight = height + heightoffset;
	if (galleryFirst) {
		galleryFirst = false;
		var gTop = Math.floor((clientHeight - height) / 2)  + document.documentElement.scrollTop;
		var gLeft = Math.floor((maxwidth - width) / 2);
  	if (gLeft < 0) { gLeft = 0; }
	} else {
		var oTop = parseInt(document.getElementById('gallerydisplay').style.top.replace('px', '')) - topoffset;
		var oLeft = parseInt(document.getElementById('gallerydisplay').style.left.replace('px', '')) - leftoffset;
		var oWidth = parseInt(document.getElementById('gallerycontent').style.width.replace('px', '')) + widthoffset;
		var oHeight = parseInt(document.getElementById('gallerycontent').style.height.replace('px', '')) + heightoffset;
		var gTop = oTop - Math.floor((gHeight - oHeight) / 2);
    var gLeft = oLeft - Math.floor((gWidth - oWidth) / 2);
	}
	if (gTop + gHeight - heightoffsetBottom - document.documentElement.scrollTop > clientHeight) { gTop = clientHeight - gHeight + heightoffsetBottom + document.documentElement.scrollTop; }
	if (gTop < document.documentElement.scrollTop + heightoffsetTop) { gTop = document.documentElement.scrollTop + heightoffsetTop; }
	gTop = gTop + topoffset;
	gLeft = gLeft + leftoffset;

	if (imgtype != 'none') {
		document.getElementById('bordercaption').innerHTML = title;
  	document.getElementById('gallerydisplay').style.top = gTop + 'px';
  	document.getElementById('gallerydisplay').style.left = gLeft + 'px';
  	document.getElementById('gallerydisplay').style.width = (width - widthdeduct) + 'px';
  	document.getElementById('gallerydisplay').style.height = (height - heightdeduct) + 'px';
		document.getElementById('gallerycontent').style.width = width + 'px';
		document.getElementById('gallerycontent').style.height = height + 'px';
		
		if (prev) {
			document.getElementById('borderprevdisabled').style.visibility = 'hidden';
			document.getElementById('borderprev').style.visibility = 'visible';
		} else {
			document.getElementById('borderprev').style.visibility = 'hidden';
			document.getElementById('borderprevdisabled').style.visibility = 'visible';			
		}
		
		if (next) {
			document.getElementById('bordernextdisabled').style.visibility = 'hidden';
			document.getElementById('bordernext').style.visibility = 'visible';
		} else {
			document.getElementById('bordernext').style.visibility = 'hidden';
			document.getElementById('bordernextdisabled').style.visibility = 'visible';			
		}

		if (imgtype == 'image') {
			document.getElementById('gallerycontent').innerHTML = '';
			document.getElementById('gallerycontent').style.backgroundImage = 'url(\'' + url + '\')';
		}	else if (imgtype == 'flash') {
			document.getElementById('gallerycontent').style.backgroundImage = 'none';
			doFlash('gallerycontent', ' \
	  		<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" \
	   		 codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" \
	   		 width="' + width + '" height="' + height + '" id="galleryContentFlash" align="left"> \
	  		<param name="allowScriptAccess" value="sameDomain" /> \
	  		<param name="movie" value="' + url + '" /> \
	  		<param name="quality" value="high" /> \
	  		<param name="bgcolor" value="#ffffff" /> \
    		<param name="wmode" value="transparent" /> \
    		<param name="scale" value="noScale" /> \
    		<param name="salign" value="lt" /> \
	  		<embed src="' + url + '" quality="high" bgcolor="#ffffff" width="' + width + '" height="' + height + '" \
	   		 name="galleryContentFlash" align="left" allowScriptAccess="sameDomain" wmode="transparent" scale="noScale" salign="lt" \
	   		 type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> \
	  		</object> \
  		');
		}
		
  	document.getElementById('gallerydisplay').style.visibility = 'visible';
	}		
}

function flashitemsShowGallery(index) {
	galleryIndex = index - 1;
	
	galleryShow(
	  galleryItems[galleryIndex][1], 
	  galleryItems[galleryIndex][2],
	  galleryItems[galleryIndex][3],
	  galleryItems[galleryIndex][4],
	  galleryItems[galleryIndex][5],
	  (galleryFindPrev() > -1), 
	  (galleryFindNext() > -1)
	);
}

galleryInit();
if (galleryPages > 0) {
  galleryGo();
}