/* image changer */

var ic_ie6 = false;
var currentImage = 1;
var nextImage = 2;
var totalImages;
var imageChangerLock = true;
var fadespeed = 800;
var slideshowtimeout = 8000;
var slideshowcount = 1;
var slideshowmax = 50;
var portfolioslideshow = false;


function initChanger() {

	// output instrux
	$('instrux').innerHTML = '<span>click in description or use buttons to control gallery</span>';

	// output css for ie6
	if(ic_ie6) {
		var ie6CSS = ic_getIE6CSS();
		var strCurrent = $('instrux').innerHTML;
		var strNew = strCurrent + ie6CSS;
		$('instrux').innerHTML = strNew;
	}
	
	//attempt to get total images
	var arrimage = document.getElementsByClassName("icimage");
	totalImages = arrimage.length;

	
	// hide all changer images
	for(i=0;i<totalImages;i++) {
		var hideId = 'image' + (i + 1);
		$(hideId).style.display = "none";
	}
	
	// hide the loading layer
	if($('loading')) {
		$('loading').style.display = "none";
	}
	
	// hide the buttons
	if($('ic_btns')) {
		$('ic_btns').style.display = "none";
		// draw the button HTML
		ic_drawBtns();
	}	
	
	// show the image changer
	$('imageChanger').style.display = "block";
	
	// show the first image
	var showId = 'image1';
	Effect.Appear(showId); 
	if($('ic_btns')) {
		Effect.Appear('ic_btns');
	}

	// print status
	ic_printStatus();
	
	// main page slideshow over-rides
	if($('st_MAIN')) {
		fadespeed = 1600;
		slideshowtimeout = 10000;
		setTimeout("startSlideshow();",(slideshowtimeout/2));
	}
	else if(portfolioslideshow) {
		setTimeout("startSlideshow();",(slideshowtimeout/2));
	}
	
	imageChangerLock = false; // keep locked until loaded :)
	
}

function startSlideshow() {
	if(slideshowcount < slideshowmax) {
		setTimeout("startSlideshow();",slideshowtimeout);
		icNext('slideshow');
		slideshowcount++;
	}
}

function stopSlideshow() {
	slideshowcount = slideshowmax; // break out of the slideshow loop
	startSlideshow = function() {}
}

function icGoToImage( intImg, strFlag ) {

	// stop the slideshow if command doesn't come from slideshow function
	if(strFlag != 'slideshow') stopSlideshow();

	if((!imageChangerLock) && (intImg <= totalImages)) {
		if(intImg == currentImage) {
			imageChangerLock = true;
			Effect.Shake('image' + (currentImage),1);
			setTimeout("imageChangerLock = false;",fadespeed);
		}
		else {
			imageChangerLock = true;

			// fade out the current image
			//Effect.Fade('ic_btns');
			Effect.Fade('image' + (currentImage));
			

			// fade in the new image
			nextImage = intImg;
			setTimeout("Effect.Appear('image' + (nextImage));currentImage = nextImage;ic_printStatus();imageChangerLock = false;",fadespeed);
			//setTimeout("Effect.Appear('ic_btns');",(fadespeed*1.3));
		}
	}
}

function icNext( strFlag ) {
	if(!imageChangerLock) {
		if((currentImage + 1) <= totalImages) {
			nextImage = currentImage + 1;
			icGoToImage( nextImage, strFlag );
		}
		else icGoToImage(1, strFlag);
	}
}

function icPrevious() {
	if(!imageChangerLock) {
		if((currentImage - 1) > 0) {
			nextImage = currentImage - 1;
			icGoToImage( nextImage );
		}
		else icGoToImage(totalImages);
	}
}

function icFirst() {
	if(!imageChangerLock){
		nextImage = 1;
		icGoToImage( nextImage );
	}
}

function icLast() {
	if(!imageChangerLock){
		nextImage = totalImages;
		icGoToImage( nextImage );
	}
}


function ic_printStatus() {
	var statusHTML = currentImage +' of '+ totalImages;
	$('status').innerHTML = statusHTML;
}


/* buttons
======================================================= */
var icBtnImgNext = 'img/btns/next.png';
var icBtnImgNext_over = 'img/btns/next_over.png';

var icBtnImgLast = 'img/btns/last.png';
var icBtnImgLast_over = 'img/btns/last_over.png';

var icBtnImgPrev = 'img/btns/previous.png';
var icBtnImgPrev_over = 'img/btns/previous_over.png';

var icBtnImgFirst = 'img/btns/first.png';
var icBtnImgFirst_over = 'img/btns/first_over.png';

function ic_nextOver() { $('nextImg').src = icBtnImgNext_over; }
function ic_nextOff() { $('nextImg').src = icBtnImgNext; }

function ic_lastOver() { $('lastImg').src = icBtnImgLast_over; }
function ic_lastOff() { $('lastImg').src = icBtnImgLast; }

function ic_prevOver() { $('prevImg').src = icBtnImgPrev_over; }
function ic_prevOff() { $('prevImg').src = icBtnImgPrev; }

function ic_firstOver() { $('firstImg').src = icBtnImgFirst_over; }
function ic_firstOff() { $('firstImg').src = icBtnImgFirst; }

function ic_drawBtns() {
	strBtns = "\n";
	strBtns += '<a onmouseover="ic_firstOver();" onmouseout="ic_firstOff();" onclick="icFirst();" href="javascript:void(0);"><div id="first_button"><img id="firstImg" src=" ' + icBtnImgFirst + ' " border="0"></div></a>';
	strBtns += '<a onmouseover="ic_prevOver();" onmouseout="ic_prevOff();" onclick="icPrevious();" href="javascript:void(0);"><div id="prev_button"><img id="prevImg" src=" ' + icBtnImgPrev + ' " border="0"></div></a>';
	strBtns += '<a onmouseover="ic_nextOver();" onmouseout="ic_nextOff();" onclick="icNext();" href="javascript:void(0);"><div id="next_button"><img id="nextImg" src=" ' + icBtnImgNext + ' " border="0"></div></a>';
	strBtns += '<a onmouseover="ic_lastOver();" onmouseout="ic_lastOff();" onclick="icLast();" href="javascript:void(0);"><div id="last_button"><img id="lastImg" src=" ' + icBtnImgLast + ' " border="0"></div></a>';
	$('ic_btns').innerHTML = strBtns;
}

function ic_getIE6CSS() {
	/*
	 * Internet Explorer 6 needs special instrux to correctly display png transparency
	 */
	strCSS = "\n";
	strCSS += '<style type="text/css">' + "\n";

	strCSS += '#next_button img { filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0); }' + "\n";
	strCSS += '#next_button { display: inline-block;cursor:hand; }' + "\n";
	strCSS += '#next_button { filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\' ' + icBtnImgNext + ' \'); }' + "\n";

	strCSS += '#last_button img { filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0); }' + "\n";
	strCSS += '#last_button { display: inline-block;cursor:hand; }' + "\n";
	strCSS += '#last_button { filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\' ' + icBtnImgLast + ' \'); }' + "\n";

	strCSS += '#first_button img { filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0); }' + "\n";
	strCSS += '#first_button { display: inline-block;cursor:hand; }' + "\n";
	strCSS += '#first_button { filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\' ' + icBtnImgFirst + ' \'); }' + "\n";

	strCSS += '#prev_button img { filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0); }' + "\n";
	strCSS += '#prev_button { display: inline-block;cursor:hand; }' + "\n";
	strCSS += '#prev_button { filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\' ' + icBtnImgPrev + ' \'); }' + "\n";

	strCSS += '</style>' + "\n";
	return strCSS;
}


function stDoLogin() {
	$('stLogin').innerHTML = 'The user name and password don\'t match our records.<br><br>Please <a href="javascript:stRefreshLogin();">try again</a>.';
}
function stRefreshLogin() {
	strLogin = '<p>User name:</p><p><input type="text" class="stLibInput"></p><p>Password:</p><p><input type="password" class="stLibInput"></p><br><p><input type="submit" value="submit" class="stLibBtn" onclick="stDoLogin();"></p>';
	$('stLogin').innerHTML = strLogin;
}


