﻿//GLOBAL VARIABLES

var lastID = '';
var counter;
var doCount;


//GLOBAL FUNCTIONS

function el(element)
{
  return document.getElementById('' + element + '');
}

function findPosX(obj)
{
  var curleft = 0;
  if (obj.offsetParent)
  {
    //while (obj.offsetParent)
    //{
    //  curleft += obj.offsetLeft
    //  obj = obj.offsetParent;
    //}
    while (obj)
    {
      curleft += obj.offsetLeft
      if (obj.offsetParent)
      {
        obj = obj.offsetParent;
      }
      else
      {
        obj = false;
      }
    }
  }
  else if (obj.x)
    curleft += obj.x;
  return curleft;
}


function findPosY(obj)
{
  var curtop = 0;
  if (obj.offsetParent)
  {
    //while (obj.offsetParent)
    while (obj)
    {
      curtop += obj.offsetTop
      if (obj.offsetParent)
      {
        obj = obj.offsetParent;
      }
      else
      {
        obj = false;
      }
    }
  }
  else if (obj.y)
  {
    curtop += obj.y;
  }
  return curtop;
}


//LOCAL STUFF

function hideMenu(id)
{
  if (id != '')
  {
    el('menu.' + id).style.display = "none";
  }
  lastID = '';
}

function showMenu(id)
{
  if ((lastID != '') && (lastID != id))
  {
    hideMenu(lastID);
  }
  
  if (id != '')
  {
    showMenuDiv(id);
  }
  
  lastID = id;
}

function showMenuDiv(itemID)
{
  //hideMenu(lastID);
  var menuDIV, buttonIMG;
  menuDIV = el('menu.' + itemID);
  buttonHREF = el('menuButton.' + itemID);
  
  menuDIV.style.display = "block";
  //alert("Top: " + findPosY(buttonHREF));
  //alert("Before: " + menuDIV.style.left);
  menuDIV.style.left = (findPosX(buttonHREF) + 120) + 'px';
  //alert("After: " + menuDIV.style.left);
  menuDIV.style.top  = (findPosY(buttonHREF) - 4) + 'px';
  resetTimer();
}

function startTimer()
{
  counter = 10;
  if (!doCount)
  {
    doCount = true;
    doTimeout();
  }
}

function resetTimer()
{
  counter = 10;
  doCount = false;
}

function doTimeout()
{
  if (doCount)
  {
    counter--;
    setTimeout('doTimeout()', 1000);
  }
  if (counter <= 0) 
  { 
    doCount = false;
    hideMenu(lastID);
  }
}


function overPNG(imgID)
{
  var image = el('img.' + imgID);
  image.src='img/menubutton.hover.png'; 
  cleanPNG(image);
}

function outPNG(imgID)
{
  var image = el('img.' + imgID);
  image.src='img/menubutton.normal.png';
  cleanPNG(image);
}

function outPressPNG(imgID)
{
  var image = el('img.' + imgID);
  image.src='img/menubutton.press.png';
  cleanPNG(image);
}

function pressPNG(imgID)
{
  var image = el('img.' + imgID);
}

var currentGalleryImage = 1;
var totalGalleryImages = 1;

function loadGalleryImage(image, imageNumber)
{
  allThumbnails = image.parentNode.getElementsByTagName('img');
  for (var i = 0; i < allThumbnails.length; i++)
  {
    allThumbnails[i].className = '';
  }
  image.className = 'selected';
  el('actualImage').src = image.src;
  el('actualDescription').innerHTML = image.alt;
  el('currentImage').innerHTML = imageNumber;
  currentGalleryImage = imageNumber;
  updateGalleryButtons();
}

function updateGalleryButtons()
{
  if (currentGalleryImage <= 1)
  {
    el('galleryBack').className = 'disabled';
  }
  else
  {
    el('galleryBack').className = ''; 
  }
  
  if (currentGalleryImage >= totalGalleryImages)
  {
    el('galleryNext').className = 'disabled';
  }
  else
  {
    el('galleryNext').className = '';
  }
}

function galleryGoBack()
{
  if (currentGalleryImage > 1)
  {
    loadGalleryImage(el('thumbnailList').getElementsByTagName('img')[currentGalleryImage-2], currentGalleryImage-1);
  }
}

function galleryGoNext()
{
  if (currentGalleryImage < totalGalleryImages)
  {
    loadGalleryImage(el('thumbnailList').getElementsByTagName('img')[currentGalleryImage], currentGalleryImage+1);
  }
}

function divHiderExpand(aDiv)
{
  el(aDiv).className = 'expanded';
}

function divHiderShrink(aDiv)
{
  el(aDiv).className = '';
}

function resizeCaption(imageID) {
  el("caption." + imageID).style.width = (el("image." + imageID).offsetWidth - 2) + "px";
  el("caption." + imageID).style.marginLeft = (el("image." + imageID).offsetLeft) + "px";
  el("caption." + imageID).style.marginRight = (el("image." + imageID).offsetLeft) + "px";
}

function hilite(elem) {
  var currentClass = elem.className;
  elem.className = "hilite";
  elem.onmouseout = function() { 
    elem.className = currentClass; 
  };
}


/* XMLHTTP */

function sendRequest(url,callback,postData) {
	var req = createXMLHTTPObject();
	if (!req) return;
	var method = (postData) ? "POST" : "GET";
	req.open(method,url,true);
	req.setRequestHeader('User-Agent','XMLHTTP/1.0');
	
  if (postData) {
		req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
  }
  
  req.onreadystatechange = function () {
		if (req.readyState != 4) return;
		if (req.status != 200 && req.status != 304) {
			//alert('HTTP error ' + req.status);
      //alert('Invalid request status (' + req.status + ')');
			return;
		}
		callback(req);
	}
	if (req.readyState == 4) return;
	req.send(postData);
}

function XMLHttpFactories() {
	return [
		function () {return new XMLHttpRequest()},
		function () {return new ActiveXObject("Msxml2.XMLHTTP")},
		function () {return new ActiveXObject("Msxml3.XMLHTTP")},
		function () {return new ActiveXObject("Microsoft.XMLHTTP")}
	];
}

function createXMLHTTPObject() {
	var xmlhttp = false;
	var factories = XMLHttpFactories();
	for (var i=0;i<factories.length;i++) {
		try {
			xmlhttp = factories[i]();
		}
		catch (e) {
			continue;
		}
		break;
	}
	return xmlhttp;
}

function encodeURL(dirty) {
  return dirty.replace(/\&/g, '%26');
}