// ©2008 Vertex Web Design
// Gallery Animation
// 

var leftpos = 0;
var toppos = 0;
var nudgeAmount = 695;
var galWidth = 14000;
var galHeight = 105;
var scrollSpeed = 500;
var containerWidth = 773;
var fadeTime = 500.0;

function setGalWidth(newWidth)
{
	galWidth = newWidth;	
}

function hideBothButtons()
{
	document.getElementById("TNgalleryLeftBtn").style.visibility = "hidden";
	document.getElementById("TNgalleryRightBtn").style.visibility = "hidden";
}

function showBothButtons()
{
	document.getElementById("TNgalleryLeftBtn").style.visibility = "visible";
	document.getElementById("TNgalleryRightBtn").style.visibility = "visible";
}

function nudgeLeft()
{
	disableBothButtons();
	animate("TNgallery",leftpos+getRightNudgeAmount(),toppos,galWidth,galHeight,scrollSpeed,enableBothButtons);
}

function getRightNudgeAmount()
{
	var availSpace = nudgeAmount;

	if(Math.abs(leftpos) < nudgeAmount)
	{
		availSpace = Math.abs(leftpos);
	}
	return availSpace;
}

function nudgeRight()
{
	//var left = document.getElementById("TNgallery").posLeft;
	disableBothButtons();
	animate("TNgallery",leftpos-getLeftNudgeAmount(),toppos,galWidth,galHeight,scrollSpeed,enableBothButtons);
}

function getLeftNudgeAmount()
{
	var availSpace = nudgeAmount;

	if((galWidth - (containerWidth + Math.abs(leftpos))) < nudgeAmount)
	{
		availSpace = galWidth - (containerWidth + Math.abs(leftpos));
	}
	
	return availSpace;
}

function doNothing()
{

}

function galleryHome()
{
	document.getElementById('TNgallery').posLeft = 0;
	leftpos = 0;
}

function changeGallery(galleryName)
{
	fade('TNgallery');
	
	var d = setTimeout("galleryHome();", fadeTime);
	animate('TNgallery',0,toppos,galWidth,galHeight,scrollSpeed,enableBothButtons);

	var b = setTimeout("getGalleryContent('"+galleryName+"');",fadeTime);
	
	var t = setTimeout("fade('TNgallery');",fadeTime);
	showBothButtons();
	enableBothButtons();
}

function changePage(pageName)
{
	fade('mainContent');
	var b = setTimeout("getPageContent('"+pageName+"');",fadeTime);
	var t = setTimeout("fade('mainContent');",fadeTime);
}

function animate(elementID, newLeft, newTop, newWidth, 
      newHeight, time, callback)
{
  var el = document.getElementById(elementID);
  if(el == null)
    return;
  leftpos = newLeft;
 
  var cLeft = parseInt(el.style.left);
  var cTop = parseInt(el.style.top);
  var cWidth = parseInt(el.style.width);
  var cHeight = parseInt(el.style.height);
  
  var totalFrames = 1;
  if(time> 0)
    totalFrames = time/40;

  var fLeft = newLeft - cLeft;
  if(fLeft != 0)
    fLeft /= totalFrames;
  
  var fTop = newTop - cTop;
  if(fTop != 0)
    fTop /= totalFrames;
  
  var fWidth = newWidth - cWidth;
  if(fWidth != 0)
    fWidth /= totalFrames;
  
  var fHeight = newHeight - cHeight;
  if(fHeight != 0)
    fHeight /= totalFrames;
    
  doFrame(elementID, cLeft, newLeft, fLeft, 
      cTop, newTop, fTop, cWidth, newWidth, fWidth, 
      cHeight, newHeight, fHeight, callback);
}

function doFrame(eID, cLeft, nLeft, fLeft,
      cTop, nTop, fTop, cWidth, nWidth, fWidth, 
      cHeight, nHeight, fHeight, callback)
{
   var el = document.getElementById(eID);
   if(el == null)
     return;

  cLeft = moveSingleVal(cLeft, nLeft, fLeft);
  cTop = moveSingleVal(cTop, nTop, fTop);
  cWidth = moveSingleVal(cWidth, nWidth, fWidth);
  cHeight = moveSingleVal(cHeight, nHeight, fHeight);

  el.style.left = Math.round(cLeft) + 'px';
  el.style.top = Math.round(cTop) + 'px';
  el.style.width = Math.round(cWidth) + 'px';
  el.style.height = Math.round(cHeight) + 'px';
  
  if(cLeft == nLeft && cTop == nTop && cHeight == nHeight 
    && cWidth == nWidth)
  {
    if(callback != null)
      callback();
    return;
  }
    
  setTimeout( 'doFrame("'+eID+'",'+cLeft+','+nLeft+','+fLeft+','
    +cTop+','+nTop+','+fTop+','+cWidth+','+nWidth+','+fWidth+','
    +cHeight+','+nHeight+','+fHeight+','+callback+')', 40);
}

function moveSingleVal(currentVal, finalVal, frameAmt)
{
  if(frameAmt == 0 || currentVal == finalVal)
    return finalVal;
  
  currentVal += frameAmt;
  if((frameAmt> 0 && currentVal>= finalVal) 
    || (frameAmt <0 && currentVal <= finalVal))
  {
    return finalVal;
  }
  return currentVal;
}

function fade(eid)
{
  var element = document.getElementById(eid);
  if(element == null)
    return;
   
  if(element.FadeState == null)
  {
    if(element.style.opacity == null 
        || element.style.opacity == '' 
        || element.style.opacity == '1')
    {
      element.FadeState = 2;
    }
    else
    {
      element.FadeState = -2;
    }
  }
    
  if(element.FadeState == 1 || element.FadeState == -1)
  {
    element.FadeState = element.FadeState == 1 ? -1 : 1;
    element.FadeTimeLeft = fadeTime - element.FadeTimeLeft;
  }
  else
  {
    element.FadeState = element.FadeState == 2 ? -1 : 1;
    element.FadeTimeLeft = fadeTime;
    setTimeout("animateFade(" + new Date().getTime() 
        + ",'" + eid + "')", 33);
  }  
}

function animateFade(lastTick, eid)
{  
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
  
  var element = document.getElementById(eid);
 
  if(element.FadeTimeLeft <= elapsedTicks)
  {
    element.style.opacity = element.FadeState == 1 ? '1' : '0';
    element.style.filter = 'alpha(opacity = ' 
        + (element.FadeState == 1 ? '100' : '0') + ')';
    element.FadeState = element.FadeState == 1 ? 2 : -2;
    return;
  }
 
  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft/fadeTime;
  if(element.FadeState == 1)
    newOpVal = 1 - newOpVal;

  element.style.opacity = newOpVal;
  element.style.filter = 
      'alpha(opacity = ' + (newOpVal*100) + ')';
  
  setTimeout("animateFade(" + curTick 
      + ",'" + eid + "')", 33);
}


//////////////////////AJAX Code//////////////////////
var xmlHttp
var newHtml = "";

function getPageContent(str)
{ 
	if (str.length > 0)
	{ 
		var url="nzcdynct.php?sid="+Math.random()+"&pg="+str
		xmlHttp=GetXmlHttpObject(pageContentStateChanged) 
		xmlHttp.open("GET", url , true) 
		xmlHttp.send(null) 
	} 
}

function pageContentStateChanged()
{	
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		document.getElementById("mainContent").innerHTML=xmlHttp.responseText
	} 
}

function getGalleryContent(str)
{ 
	if (str.length > 0)
	{ 
		var url="nzcdynct.php?sid="+Math.random()+"&gal="+str
		xmlHttp=GetXmlHttpObject(galleryContentStateChanged) 
		xmlHttp.open("GET", url , true) 
		xmlHttp.send(null) 
	} 
}

function galleryContentStateChanged()
{	
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		document.getElementById("TNgallery").innerHTML = xmlHttp.responseText;
	} 
}

function getFullImageContent(cat, num)
{ 
	if (cat.length > 0)
	{ 
		var url="nzcdynct.php?sid="+Math.random()+"&cat="+cat+"&num="+num
		xmlHttp=GetXmlHttpObject(fullImageContentStateChanged) 
		xmlHttp.open("GET", url , true) 
		xmlHttp.send(null) 
	} 
}

function fullImageContentStateChanged()
{	
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		document.getElementById("imgPreview").innerHTML = xmlHttp.responseText;
	} 
}

function showProgressBar()
{
	
}

function hideProgressBar()
{

}

function getContent(str)
{ 
	if (document.getElementById("PageContent"))
		document.getElementById("PageContent").innerHTML=""

	if (document.getElementById("ProgressBar"))
		document.getElementById("ProgressBar").innerHTML="<img src='images/TuckerProgressBar.gif'/>"
	
	if (str.length > 0)
	{ 
		var url="marquis.php?sid="+Math.random()+"&loc="+str
		xmlHttp=GetXmlHttpObject(stateChanged) 
		xmlHttp.open("GET", url , true) 
		xmlHttp.send(null) 
	} 
	else
	{ 
		document.getElementById("MainContent").innerHTML="" 
		document.getElementById("ProgressBar").innerHTML=""
	} 
}

function stateChanged() 
{ 
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		document.getElementById("MainContent").innerHTML=xmlHttp.responseText 
		document.getElementById("ProgressBar").innerHTML=""
	} 
}  

function GetXmlHttpObject(handler)
{ 
	var objXmlHttp=null
	
	if (navigator.userAgent.indexOf("Opera")>=0)
	{
		alert("This example doesn't work in Opera") 
		return 
	}
	if (navigator.userAgent.indexOf("MSIE")>=0)
	{ 
		var strName="Msxml2.XMLHTTP"
		if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
		{
			strName="Microsoft.XMLHTTP"
		} 
		try
		{ 
			objXmlHttp=new ActiveXObject(strName)
			objXmlHttp.onreadystatechange=handler 
			return objXmlHttp
		} 
		catch(e)
		{ 
			alert("Error. Scripting for ActiveX might be disabled") 
			return 
		} 
	} 
	if (navigator.userAgent.indexOf("Mozilla")>=0)
	{
		objXmlHttp=new XMLHttpRequest()
		objXmlHttp.onload=handler
		objXmlHttp.onerror=handler 
		return objXmlHttp
	}
}

function displayFullImage(imgCat, imgNum)
{
	var t = setTimeout("document.getElementById('imgPreview').style.visibility = 'visible';",fadeTime);
	getFullImageContent(imgCat, imgNum);
}

function hideFullImage()
{
	document.getElementById("imgPreview").style.visibility = "hidden";
	document.getElementById("fullImgDiv").innerHTML = "&nbsp;";
}

function disableRightButton()
{
	//document.getElementById("btn_nudgeright").disabled = true;
}

function enableRightButton()
{
	//document.getElementById("btn_nudgeright").disabled = false;
}

function disableLeftButton()
{
	//document.getElementById("btn_nudgeleft").disabled = true;
}

function enableLeftButton()
{
	//document.getElementById("btn_nudgeleft").disabled = false;
}

function disableBothButtons()
{
	disableRightButton();
	disableLeftButton();
}

function enableBothButtons()
{
	enableRightButton();
	enableLeftButton();
}
/////////////////////////////////////////
// IMAGE CATEGORIES:
// 3D = 3D Modeling
// AD = Advertisements
// BC = Business Cards
// BS = Building Signs
// CI = Custom Illustration
// DM = Direct Mail
// ES = Vinyl & Exhibit Signs
// LD = Logo Design
// PD = Package Design
// VW = Vehicle Wraps
// WD = Website Design
