function imgSwap(img,cap) {
	$('shownImg').src = "images/gallery/" + img + ".jpg";
	if(cap == '') {
		r = defaultCaption.length;
		var randomCaption=Math.floor(Math.random()*r);
		$('captiontext').innerHTML=defaultCaption[randomCaption];
	}else{
		$('captiontext').innerHTML='Photo # ' + cap;
	}
}

var timeout	= 100;
var closetimer	= 0;
var ddmenuitem	= 0;

function mopen(id)
{	
	mcancelclosetime();
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';
}
function mclose()
{
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}
function mclosetime()
{
	closetimer = window.setTimeout(mclose, timeout);
}
function mcancelclosetime()
{
	if(closetimer)
	{
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}


imgControlObj = {};

function buildImageDiv(i) {
	var simg = document.createElement('img');
	simg.setAttribute('arrayIndex',i);
	simg.className='thumb_img';
	simg.src='images/gallery/' + imgArray[i].img + '_t.jpg';
	simg.onclick=function(){ imgSwap(imgArray[i].img,imgArray[i].cap); }
	return simg;
}
function init() {
	gSliderDiv = $('sliderDiv');
	is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
	for(var i=0;i<5;i++) {
		var d = buildImageDiv(i);
		gSliderDiv.appendChild(d);
	}
	r = defaultCaption.length;
	var randomCaption=Math.floor(Math.random()*r);
	$('captiontext').innerHTML=defaultCaption[randomCaption];
	$('shownImg').src = "images/gallery/" + imgArray[0].img + ".jpg";
	gSliderDiv.style.left = '0px';
	
	$('captionarea').style.visibility = "hidden";

	for(var i=0;i<5;i++) {
		var q = (imgArray.length-5) + i;
		preImage= new Image();
		preImage.src = 'images/gallery/' + imgArray[q].img + '_t.jpg';
	}
}


function clickLeft() {
	gSliderDiv.appendChild(buildImageDiv(calcLeft()));
	gSliderDiv.appendChild(buildImageDiv(calcLeft()));
	gSliderDiv.appendChild(buildImageDiv(calcLeft()));
	gSliderDiv.appendChild(buildImageDiv(calcLeft()));
	gSliderDiv.appendChild(buildImageDiv(calcLeft()));
	if (gSliderDiv.childNodes.length == 10) {
		imgControlObj.shiftControl=imgShift(5);
	}else{
		imgControlObj.shiftControl(1);
	}
}
function clickRight() {
	gSliderDiv.insertBefore(buildImageDiv(calcRight()),gSliderDiv.firstChild);
	gSliderDiv.insertBefore(buildImageDiv(calcRight()),gSliderDiv.firstChild);
	gSliderDiv.insertBefore(buildImageDiv(calcRight()),gSliderDiv.firstChild);
	gSliderDiv.insertBefore(buildImageDiv(calcRight()),gSliderDiv.firstChild);
	gSliderDiv.insertBefore(buildImageDiv(calcRight()),gSliderDiv.firstChild);
	if (gSliderDiv.childNodes.length == 10) {
		gSliderDiv.style.left='-825px';
		imgControlObj.shiftControl=imgShift(-5);
	}else{
		gSliderDiv.style.left=(parseFloat(gSliderDiv.getStyle('left'))-825) + 'px';
		imgControlObj.shiftControl(-1);
	}
	for(var i=0;i<5;i++) {
		var q = (imgControlObj.shiftControl-5) + i;
		preImage= new Image();
		preImage.src = 'images/gallery/' + imgArray[q].img + '_t.jpg';
	}
}


function calcLeft() { 
	var i = parseFloat(gSliderDiv.lastChild.getAttribute('arrayIndex')) + 1;
	if (i == imgArray.length) {
		i=0;
	}
	return i;

}
function calcRight() {
	var i = parseFloat(gSliderDiv.firstChild.getAttribute('arrayIndex')) - 1;
	if (i < 0) {
		i=imgArray.length-1;
	}
	return i;
}


function imgShift(px) {
	var w = 165;
	var dir = (px*-1)/Math.abs(px);
	px = px*w;
	var left = parseFloat(gSliderDiv.getStyle('left')) || 0;
	px = Math.abs(px);
	var speed = 3;
	imgMove();
	
	function imgMove() {
		if (px <= 0) {
			imgCleanup();
			return;
		}
		if (px < 7)
			speed = 1;
		else if (px < 15)
			speed = 2;
		else if (px < 26)
			speed = 3;
		else if (px < 41)
			speed = 4;
		else if (px < 60)
			speed = 5;
		else if (px < 81)
			speed = 6;
		else if (px < 106)
			speed = 7;
		else if (px < 134)
			speed = 8;
		else if (px < 165)
			speed = 9;
		else if (px < 200)
			speed = 10;
		else if (px < 238)
			speed = 11;
		else if (px < 280)
			speed = 12;
		else 
			speed = 13;
			
		left = left + (dir*speed);
		px=px-speed;

		gSliderDiv.style.left = left + 'px';
		setTimeout(imgMove,25);
	}
	function imgCleanup() {
		while (left < 0) {
			gSliderDiv.removeChild(gSliderDiv.firstChild);
			left=left+w;
		}
		while (gSliderDiv.childNodes.length > 5) {
			gSliderDiv.removeChild(gSliderDiv.lastChild);	
		}
		gSliderDiv.style.left = '0px';
	}
	function shiftControl(i) {
		if (dir == i){
			dir *= -1;  
			px = w-(px%w);
		}
		else
			px+=(5*w);

		if (i < 0) 
			left-=(5*w);
	}
	return shiftControl;
}



