var req;

function GalGetObject(sName)
{
	var obj;
	if (document.getElementById)
	{
		obj = document.getElementById(sName);
	}
	else if (document.all)
	{
		obj = document.all[sName];
	}
	else if (document.layers)
	{
		obj = document.layers[sName];
	}
	return obj;
}
function GalScreenSize() 
{
  	var iSize = new Array(0,0);
  	
	if( typeof( window.innerWidth ) == 'number' ) 
	{
        //Non-IE
        iSize[0] = window.innerWidth;
        iSize[1] = window.innerHeight;
    } 
    else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
    {
        //IE 6+ in 'standards compliant mode'
        iSize[0] = document.documentElement.clientWidth;
        iSize[1] = document.documentElement.clientHeight;
    } 
    else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
    {
        //IE 4 compatible
        iSize[0] = document.body.clientWidth;
        iSize[1] = document.body.clientHeight;
    }

    return iSize;
}

function GalOpenImage(sVars)
{
    var aSize = GalScreenSize(); 
    var oBackground = GalGetObject("galpopbackground");
    var oImage = GalGetObject("galpopimage");
    var oLoad = GalGetObject("galpopload");
    var iWidth = GalGetObject("header").offsetWidth;
    
    if (iWidth < aSize[0])
    {
        iWidth = aSize[0];
    }
    var iHeight = GalGetObject("header").offsetHeight + GalGetObject("nav").offsetHeight + GalGetObject("content").offsetHeight + GalGetObject("footer").offsetHeight;   
    
    
    oBackground.style.width = iWidth+"px";
    oBackground.style.height = iHeight+"px";
    oBackground.style.display = "block";
    
    oImage.style.left = Math.round((iWidth - 610)/2)+"px";
    oImage.style.top = Math.round((iHeight - 420)/2)+"px";
    oImage.style.display = "block";
    
    oLoad.style.left = Math.round((iWidth - 610)/2)+"px";
    oLoad.style.top = Math.round((iHeight - 30)/2)+"px";
    
    GalRetrieveURL(sVars);
}

function GalRetrieveURL(vars) 
{	
	var oLoad = GalGetObject("galpopload");
	oLoad.style.display = "block";
	
	var url = "galleryxml.aspx";
	
	if (window.XMLHttpRequest) 
	{ // Non-IE browsers	
		req = new XMLHttpRequest();
		req.onreadystatechange = GalProcessStateChange;	
		try 
		{
			req.open("POST", url, true);
			req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');				
		} 
		catch (e) 
		{
			GalClose();
		}
		req.send(vars);
	
	} 
	else if (window.ActiveXObject) 
	{ // IE
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req)
		{
			req.onreadystatechange = GalProcessStateChange;
			req.open("POST", url, true);
			req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			req.send(vars);
		}
		else
		{
		    GalClose();
		}
	}
} 

function GalProcessStateChange() 
{
	if (req.readyState == 4) 
	{ // Complete
		if (req.status == 200) 
		{ // OK response
			GalWrite(req.responseXML);		
		}
		else
		{
			GalClose();
		}
	}
}

function GalWrite(xmldoc)
{
	var iId = 0;
	var iGalId = 0;
	var iPrevId = 0;
	var iNextId = 0;
	var sText = "";

	if (xmldoc == null)
	{
		GalClose();
	}
	else
	{
		var oImageNode, oIdNode, oGalIdNode, oTextNode, oPrevNode, oNextNode;
		oImageNode = xmldoc.getElementsByTagName("image");
		
		var i;

		for (i=0; i<oImageNode.length; i++)
		{
			oIdNode = oImageNode[i].getElementsByTagName("id");
			if (oIdNode[0].firstChild != null)
			{
			    iId = oIdNode[0].firstChild.nodeValue;
			}
			
			oGalIdNode = oImageNode[i].getElementsByTagName("gallery");
			if (oGalIdNode[0].firstChild != null)
			{
			    iGalId = oGalIdNode[0].firstChild.nodeValue;
			}
			
			oTextNode = oImageNode[i].getElementsByTagName("text");
			if (oTextNode[0].firstChild != null)
			{
			    sText = oTextNode[0].firstChild.nodeValue;
			}
			
			oPrevNode = oImageNode[i].getElementsByTagName("prev");
			if (oPrevNode[0].firstChild != null)
			{
			    iPrevId = oPrevNode[0].firstChild.nodeValue;
			}
			
			oNextNode = oImageNode[i].getElementsByTagName("next");
			if (oNextNode[0].firstChild != null)
			{
			    iNextId = oNextNode[0].firstChild.nodeValue;
			}
		}
	}	
	
	GalImageHTML(iId);
	GalTextHTML(sText);
	GalNav(iGalId, iPrevId, iNextId);
	
	var oLoad = GalGetObject("galpopload");    
    oLoad.style.display = "none";	
}

function GalImageHTML(iId)
{
    var oImage = GalGetObject("galimage");
    oImage.innerHTML = "<img src=\"/upload/gallery/full_" + iId + ".jpg\" alt=\"Gallery Image\" />";
}

function GalTextHTML(sText)
{
    var oText = GalGetObject("galtext");
    oText.innerHTML = "<p>"+sText+"</p>";
}

function GalNav(iGalId, iPrevId, iNextId)
{
    var oPrev = GalGetObject("btnPrev");
    var oNext = GalGetObject("btnNext");
    
    if (iPrevId <= 0)
    {
        oPrev.onclick = null;
        oPrev.src = "/images/gallery/previous_off.gif"
    }
    else
    {
        oPrev.onclick = new Function("GalRetrieveURL('id="+iPrevId+"&gid="+iGalId+"');");
        oPrev.src = "/images/gallery/previous.gif"  
    }
    
    if (iNextId <= 0)
    {
        oNext.onclick = null;
        oNext.src = "/images/gallery/next_off.gif"
    }
    else
    {
        oNext.onclick = new Function("GalRetrieveURL('id="+iNextId+"&gid="+iGalId+"');");
        oNext.src = "/images/gallery/next.gif"  
    }        
}

function GalClose()
{
    var oBackground = GalGetObject("galpopbackground");
    var oImage = GalGetObject("galpopimage");
    var oLoad = GalGetObject("galpopload");    
    
    oBackground.style.display = "none";
    oImage.style.display = "none";
    oLoad.style.display = "none";
}
