// hello

var req;
var imagenum;
var curNav;
var initLoad;
var oldi;
var crossfading = false;
var cache;
var cacheint;
var start;
var imgsize = "smallsize";

function clearDiv(maindiv)
{
	document.getElementById(maindiv).innerHTML = " ";
}

function loadMenu(maindiv)
{
	var mainE = document.getElementById(maindiv);
	
	mainE.innerHTML +='<form name="navigation" style="position: relative; left: 20px; margin-top: 5px; height:1px; margin-bottom:0px;"><select name="navigationmenu" onChange="loadXMLDoc(this.value,0)" style="width: 110px; height:1px; margin-bottom:0px;">\n'
     + '<option selected>Arizona</option><option>Flowers</option>\n'
  	 + '</select></form>\n';
}


function loadViewer(maindiv)
{
	//IE Mozilla 
	if (document.body.clientWidth){ 
		w = document.body.clientWidth; 
		h = document.body.clientHeight; 
	} 
	//opera Netscape 6 Netscape 4x Mozilla 
	if (window.innerWidth > h){ 
		w = window.innerWidth; 
		h = window.innerHeight; 
	} 
	if (document.documentElement.clientHeight > h)
	{
		w = document.documentElement.clientWidth;
		h = document.documentElement.clientHeight-25;
	}

	if (w >= 1010 && h >= 850)
		imgsize = "bigsize";
	
	var mainE = document.getElementById(maindiv);
	
	mainE.innerHTML += '<div id="viewer"><div id="nav"></div>'
	 + '<div id="navArrow"></div>'
	 + '<center><a href="#" id="theimagea" onclick="nextImage()"><img src="/blank.gif" id="theimage"></a>'
	 + '<div id="title"></div> <div id="location"></div> <div id="description"></div>'
	 + '</center></div>';
}

/*
	 + '<div id="pricing">Price:'
	 + '<div id="prices">$25<br>$60<br>$80<br>$120</div>'
	 + '<div id="prices">$25<br>$60<br>$80<br>$120</div>'
	 + '<div id="sizes">8x12 in<br>12x18 in<br>16x24 in<br>20x30 in</div>'
*/

function loadXMLDoc(url, initNav) {
	req = false;
	initLoad = true;
	oldi = -1;
	if (window.location.hash != "")
		start = parseInt(window.location.hash.substring(1))
	else
		start = initNav;
	url = "/photographs/"+url+"/album.xml";
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest) {
    	try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
	if(req) {
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send("");
	}
}

function getImgSrc(imgnum)
{
	s = "/gallery2/main.php?g2_view=core.DownloadItem&g2_itemId=" + imgnum + "&g2_serialNumber=2";
	return s;
}

function processReqChange() 
{
    // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            imageViewer();
        } else {
            alert("I'm sorry. An error has occured.\nStatus: " + req.statusText);
        }
    }
}

function imageViewer()
{
	//alert('photo' + image[0].getElementsByTagName("filename")[0].firstChild.nodeValue);
	changeNav(0);	
	changeImage(start);
}

function changeNav(base)
{
	curNav = base;
	var image = req.responseXML.getElementsByTagName("image");
	var nav = document.getElementById("nav");
	var navArrow = document.getElementById("navArrow");
	
	nav.innerHTML = "";
	
	for(var i=base; i < image.length && i < base+14; i++)
	{
		thumb = image[i].getElementsByTagName("thumb")[0].firstChild.nodeValue;
		nav.innerHTML += "<a href=\"#" + i + "\" onclick=\"changeImage(" + i + ")\"><img id=\"nav"+i+"\" src=\"" + getImgSrc(thumb) + "\"></a>";
	}
	navArrow.innerHTML = "";
	if (curNav > 0)
		navArrow.innerHTML += "<a href=\"#" + (base-1) + "\" onclick=\"changeImage(" + (base-1) + ")\"><img src=\"/photographs/prev.gif\" style=\"border:0px;\" align=\"left\"></a>";
	if (image.length >= base+14)
		navArrow.innerHTML += "<a href=\"#"+ i + "\" onclick=\"changeImage(" + i + ")\"><img src=\"/photographs/next.gif\" style=\"border:0px;\" align=\"right\"></a>";
}

function cacheImage(i)
{	
	image = req.responseXML.getElementsByTagName("image");
	smallsize = image[i].getElementsByTagName(imgsize)[0].firstChild.nodeValue;
		if (document.readyState == "complete" || document.readyState == 4) {
        // only if "OK"
        //alert('hi');
        clearInterval(cacheint);
        cache = new Image();
       	cache.src = getImgSrc(smallsize);
	}
	
}

function changeImage(i)
{	
	if (isf.clock != null || rickinterval != null || oldi == i )
		return;
	
	image = req.responseXML.getElementsByTagName("image");
	i = i % image.length
	imagenum = i;
	img = document.getElementById("theimage");
	oldnavimg = document.getElementById("nav"+oldi);

	if (!initLoad)
	{
		oldnavimg.style.border = "3px solid black";
		oldnavimg.style.margin = "4px";
	}
	else
		initLoad = false;

	changeData(i);

	imgA = image[i].getElementsByTagName(imgsize)[0].firstChild.nodeValue
	//imgB = image[(i+1) % image.length].getElementsByTagName(imgsize)[0].firstChild.nodeValue
	img.src = getImgSrc(imgA);
	cacheImage((i+1) % image.length)
	//swapfade(img, getImgSrc(imgA), '1', '', getImgSrc(imgB));
	
	if (i >= curNav + 14)
	{
		changeNav(i);
		//setTimeout("changeNav(" + i + ");", 1000);
		//setTimeout("updateNav(" + i + ");", 1100);
	}
	else if (i < curNav)
	{
		changeNav(curNav-14);
		//setTimeout("changeNav(" + curNav-14 + ");", 1000);
		//setTimeout("updateNav(" + i + ");", 1100);
	}

		updateNav(i);
	oldi = i;
}

function updateNav(i)
{
		navimg = document.getElementById("nav"+i);	
		navimg.style.border = "4px solid white";
		navimg.style.margin = "3px";
}

function changeData(i)
{
	image = req.responseXML.getElementsByTagName("image");
	imga = document.getElementById("theimagea");
	imgtitle = document.getElementById("title");
	imglocation = document.getElementById("location");
	desc = document.getElementById("description");
	
	imga.href = "#" + ((i+1) % image.length);
	
	if (image[i].getElementsByTagName("title")[0].firstChild != null)
		imgtitle.innerHTML = image[i].getElementsByTagName("title")[0].firstChild.nodeValue;
	else
		imgtitle.innerHTML = "";
	
	if (image[i].getElementsByTagName("location")[0].firstChild != null)
		imglocation.innerHTML = image[i].getElementsByTagName("location")[0].firstChild.nodeValue;
	else
		imglocation.innerHTML = "";
	
	if (image[i].getElementsByTagName("caption")[0].firstChild != null)
		desc.innerHTML = image[i].getElementsByTagName("caption")[0].firstChild.nodeValue;
	else
		desc.innerHTML = "";

}

function nextImage()
{
	changeImage(imagenum+1);
}
