var galleryTimer = -1;
var scrollAmount = 1;

var galleryId = "3";

function startGalleryScroll(dir)
{
	div = document.getElementById("arrowbarinner");
	if(navigator.userAgent.indexOf("Opera")>-1) {
		div.style.overflow = "auto";
	}

	scrollAmount = 1;
	doGalleryScroll(dir, 1);

/*	img = document.getElementById("galleryscrollup");
	if(dir>0) {
		img.src = globalImageURL + "nsgalleryscrollup.gif";
	}*/
}

function doGalleryScroll(dir, amount)
{
	if(galleryTimer>-1) {
		clearTimeout(galleryTimer);
		galleryTimer = -1;
	}
	div = document.getElementById("arrowbarinner");
	
	if(scrollAmount>10) scrollAmount=10;
	
	if(scrollAmount==0) return;
	
	div.scrollLeft = div.scrollLeft + (scrollAmount*dir);
	scrollAmount = scrollAmount + amount;
	
	galleryTimer = setTimeout("doGalleryScroll(" + dir + ", " + amount + ")", 50);
}

function stopGalleryScroll(dir)
{
	scrollAmount = scrollAmount - (scrollAmount%2);
	doGalleryScroll(dir, -2);
	
	div = document.getElementById("gallerythumbs");
}

function dostuff() {
	pics = document.getElementById("pic");
	picsblurred = document.getElementById("picblurred");
	
/*	pics.src = "../../katybailey/pic1.jpg";
	picsblurred.src="../../katybailey/pic1blurred.jpg";*/
	
/*	fade(0);*/
}

preloadImage = 0;

function initialImage(id)
{
	pics = document.getElementById("pic");
	picsblurred = document.getElementById("picblurred");
	blurreddiv = document.getElementById("blurredimagediv");
	pics.style.opacity = 0;
	pics.style.filter = "alpha(opacity=0)";
	pics.myopacity = 100;
	picsblurred.style.opacity = 1;
	picsblurred.style.filter = "alpha(opacity=100)";
	picsblurred.myopacity = 100;
	pics.src = "upload/gallery/" + galleryId + "/bigs/" + id + ".jpg";
	picsblurred.src="upload/gallery/" + galleryId + "/bigs/" + id + ".jpg";
	picsblurred.onload = function() {
		lastHeight = picsblurred.offsetHeight;
		blurreddiv.style.height = lastHeight + "px";
	};
	
	
}

lastHeight = 0;
lastLoadedImage = 0;
preloadImage = 0;

function loadImage(id) {
// 	thumb = document.getElementById("thumba_" + lastLoadedImage);
// 	thumb.style.cursor = "text";
// 	thumb = document.getElementById("thumba_" + id);
// 	thumb.style.cursor = "text";

	if(lastLoadedImage==id) return;
	lastLoadedImage = id;
	pics = document.getElementById("pic");
	picsblurred = document.getElementById("picblurred");
	blurreddiv = document.getElementById("blurredimagediv");
	
	lastHeight = picsblurred.offsetHeight;


//	pics.src = "images/bigs/" + id + ".jpg";
//	picsblurred.src="upload/gallery/3/blurred/" + id + ".jpg";
	picsblurred.onload = function() {
	
	};
	
	picsblurred.src = "images/kbblank.gif"; //picsblurred.src;
	
	
	
	pics.fadedout = function() {
		preloadImage = new Image();
		preloadImage.src = "upload/gallery/" + galleryId + "/blurred/" + id + ".jpg";
		
		blurreddiv.style.height = lastHeight + "px";
		picsblurred.style.opacity = 0;
		picsblurred.filter = "alpha(opacity=0)";
		preloadImage.onload = function(){
			doBlurredResize(lastHeight, preloadImage.height, 8);
		};
		reloadCaption(id);
	}
	
	pics.onload = function() {
		fade(0, 1);
	}
	
	pics.fadedin = function() {
		makeMenuReappear();
	}
	
/*	picsblurred.onload = function() {
		picsblurred.style.height = picsblurred.src.height + "px";
//		pics.src = "images/bigs/" + id + ".jpg";
//		fade(100, -1);
		fadeblurred(0, 1);
	};*/
	
	picsblurred.fadedin = function() {
		pics.src = "upload/gallery/" + galleryId + "/bigs/" + id + ".jpg";
		
	}
	
	fade(pics.myopacity, -1);
	
/*	pics.style.opacity = 0;
	pics.style.filter = "alpha(opacity=0)";*/
	
}

blurredTimeout = 0;

function abs(i)
{
	if(i<0) return -i;
	return i;
}


resizeLastTime = 0;
resizeStep = 0;

function doBlurredResize(start, end, speed)
{
	clearTimeout(blurredTimeout);
	
	if(!resizeLastTime) {
		resizeLastTime = new Date().getTime();
	}
	ctime = new Date().getTime();
	diff = ctime - resizeLastTime;
	if(resizeStep) {
		diff = (diff+resizeStep)/8;
	}
	resizeStep = diff;
	
	picsblurred = document.getElementById("picblurred");
	blurreddiv = document.getElementById("blurredimagediv");
	
	i = blurreddiv.offsetHeight;
	range = end-start;
	
	if(start<end) {
		i += speed;
		if(i>end) i=end;
	} else if(start>end) {
		i -= speed;
		if(i<end) i=end;
	}
	
/*	if(abs(start-i) < abs(range/2)) {*/
		speed += diff;
/*	} else {
		speed -= 1;
		if(speed<2) speed=2;
	}*/
	
	blurreddiv.style.height = i + "px";
	
	if(i!=end) blurredTimeout = setTimeout("doBlurredResize(" + start + "," + end + "," + speed + ")", 30);
	else {
		picsblurred.src = preloadImage.src;
/*		blurreddiv.style.height = "";*/
		fadeblurred(0, 1);
	}
	
	
	
}

lastTime = 0;
step = 0;

fadeTimeout = 0;

function fadeblurred(i, dir)
{
	clearTimeout(fadeTimeout);
	if(!lastTime) {
		lastTime = new Date().getTime();
	}
	ctime = new Date().getTime();
	diff = ctime - lastTime;
	if(step) {
		diff = (diff+step)/2;
	}
	step = diff;
	
	if (dir>0) {
		i += diff/6;
		if(i>100) i=100;
	} else {
		i -= diff/5;
		if(i<0) i=0;
	}
				
	picsblurred = document.getElementById("picblurred");
	picsblurred.style.opacity = parseFloat(i)/100.0;
	picsblurred.style.filter = "alpha(opacity=" + i + ")";
	picsblurred.myopacity = i;
	
	if((dir>0 && i<100) || (dir<0 && i>0)) fadeTimeout = setTimeout("fadeblurred(" + i + ", " + dir + ")", 40);
	if((dir>0 && i==100) && picsblurred.fadedin) {
		picsblurred.fadedin();
		lastTime = 0;
	}
	lastTime = ctime;
}

function fade(i, dir)
{
	clearTimeout(fadeTimeout);
	if(!lastTime) {
		lastTime = new Date().getTime();
	}
	ctime = new Date().getTime();
	diff = ctime - lastTime;
	if(step) {
		diff = (diff+step)/2;
	}
	step = diff;
	
	if (dir>0) {
		i += diff/20;
		if(i>100) i=100;
	} else {
		i -= diff/6;
		if(i<0) i=0;
	}
				
	pics = document.getElementById("pic");
	pics.style.opacity = parseFloat(i)/100.0;
	pics.style.filter = "alpha(opacity=" + i + ")";
	pics.myopacity = i;
	
	if((dir>0 && i<100) || (dir<0 && i>0)) fadeTimeout = setTimeout("fade(" + i + ", " + dir + ")", 40);
	if((dir<0 && i==0) && pics.fadedout) {
		pics.fadedout();
		lastTime = 0;
	} else if((dir>0 && i>=100) && pics.fadedin) {
		pics.fadedin();
	}

	lastTime = ctime;
}


// function getXMLHTTPObject

function getXMLHTTPObject(){

    //instantiate new XMLHttpRequest object

    var objhttp=(window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject('Microsoft.XMLHTTP');

    if(!objhttp){return};

    // assign event handler


    // return XMLHttpRequest object

    return objhttp;

}

// function sendRequest

function sendRequest(url,data,method,mode,header){

    // set default values

    if(!url){url='default_url.htm'};

    if(!data){data='defaultdata=defaultvalue'};

    if(!method){method='post'};

    if(!mode){mode=true};

    if(!header){header='Content-Type:application/x-www-form-urlencoded; charset=UTF-8'};

    // get XMLHttpRequest object

    objhttp=getXMLHTTPObject();

    // open socket connection

    objhttp.open(method,url,mode);

    // set http header

    objhttp.setRequestHeader(header.split(':')[0],header.split(':')[1]);

    // send data

    objhttp.send(data);

	return objhttp;
}

// function getFormVariables

function getFormVariables(formname){

	var formvars='';
	
	var childElements=document.getElementsByName(formname)[0].getElementsByTagName("select");
	for(var i=0;i<childElements.length;i++){
		if(/(INPUT|TEXTAREA|SELECT)/.test(childElements[i].nodeName)){
			formvars+=childElements[i].getAttribute('name') +'='+childElements[i].value+'&';
		}
	}
	
	var childElements=document.getElementsByName(formname)[0].getElementsByTagName("input");
	for(var i=0;i<childElements.length;i++){
		if(/(INPUT|TEXTAREA|SELECT)/.test(childElements[i].nodeName)){
			formvars+=childElements[i].getAttribute('name') +'='+childElements[i].value+'&';
		}
	}
	
	formvars=formvars.substring(0,formvars.length-1);
	
	return formvars;
	
}

var captionObj;
var captionEvent;

function reloadCaption(id) {
	
	captionObj = sendRequest("ajax/caption?id=" + id, "", "GET");
	captionObj.onreadystatechange=captionReload;
	
	
	return false;
}

function captionReload()
{
	if(captionObj.readyState==4) {
		captionDiv = document.getElementById("captiondiv");
		captionDiv.innerHTML = captionObj.responseText;
	}
}

function ro(obj)
{
	s = obj.src;
	
	if(s.indexOf("over.gif")>-1) {
		return;
	}
	
	obj.onmouseout = function() {
		obj.src = s + "";
	}
	
	
	obj.src = s.split(".gif")[0] + "over.gif";

}

function preloadImagesAutomatically()
{
	imgs = document.getElementsByTagName("img");
	for(var i in imgs) {
		img = imgs[i];
		if(img.onmouseover) {
			im = new Image();
			im.src = img.src.split(".gif")[0] + "over.gif"; 
		}
	}

	inputs = document.getElementsByTagName("input");
	for(var i in inputs) {
		inp = inputs[i];
		if(inp.type=="image" && inp.onmouseover) {
			im = new Image();
			im.src = inp.src.split(".gif")[0] + "over.gif"; 
		}
	}

}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}


function hideMenu()
{
	if(hideState==1) return;
//	arrowbar = document.getElementById("arrowbar");
//	arrowbar.style.top = "-1px";
	hideAmount = 0;
	hideState = 1;
	doHideMenu(1, 5);
}

function makeMenuReappear()
{
	if(hideState==2) return;
//	arrowbar = document.getElementById("arrowbar");
	hideAmount = 0;
	hideState = 2;
	doHideMenu(-1, 5);
}


menuTimer = -1;
var hideAmount = 0;
var hideState=0;

function doHideMenu(dir, amount)
{
	
	if(menuTimer>-1) {
		clearTimeout(menuTimer);
		menuTimer = -1;
	}
	div = document.getElementById("arrowbar");
	buttondiv = document.getElementById("openmenubuttonimg");
	
//	if(hideAmount>10) hideAmount=10;
	
	//style.top.split("px")[0]
	toppos = div.offsetTop-(hideAmount*dir);
	toppos = Math.max(Math.min(toppos, 0), -100);
	
	div.style.top = toppos + "px";
	hideAmount = hideAmount + amount;
	
	if((dir>0) && (toppos<-26) && (amount>0)) {
		amount = -amount;
	}
	
	buttondiv.style.top = (100+toppos) + "px";
	
	if((dir>0 && toppos<=-100) || (dir<0 && toppos>=0) || (hideAmount==0)) {
		hideState = 0;
		return;
	}
	
	menuTimer = setTimeout("doHideMenu(" + dir + ", " + amount + ")", 50);	
//	arrowbar.style.top
}


addLoadEvent(preloadImagesAutomatically);

function mainGallerySelect(id)
{
	captionObj = sendRequest("ajax/maingallerypic?id=" + id, "", "GET");
	captionObj.onreadystatechange=mainCaptionReload;
}

function mainCaptionReload()
{
	if(captionObj.readyState==4) {
		captionDiv = document.getElementById("mainpicdiv");
		captionDiv.innerHTML = strip_spaces(captionObj.responseText);
		//document.getElementById("debugtext").value = captionObj.responseText;
	}
}

function strip_spaces(x) {
	x = x.replace("\n", "");
	x = x.replace("\r", "");
	x = x.replace("\t", "");
	
    while (x.substring(0,1) == ' ') x = x.substring(1);
    while (x.substring(x.length-1,x.length) == ' ') x = x.substring(0,x.length-1);

    return x;
}