﻿/* Thanks to Scott Andrew */
function addEvent(obj, evType, fn, useCapture) 
{
  if (obj.addEventListener)
  {
    obj.addEventListener(evType, fn, useCapture);
    return true;
  }
  else if (obj.attachEvent)
  {
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  }
  else
  {
    //alert("Handler could not be attached");
    return null;
  }
}

function removeEvent(obj, evType, fn, useCapture)
{
  if (obj.removeEventListener)
  {
    obj.removeEventListener (evType, fn, useCapture);
    return true;
  }
  else if (obj.detachEvent)
  {
    var r = obj.detachEvent("on"+evType, fn);
    return r;
  }
  else
  {
    //alert("Handler could not be removed");
    return null;
  }
}

/* easytoggle2.js
   - Simon Willison, 5th November 2003
   - modified by Mike Foster, 24Mar04, Cross-Browser.com
   - See http://simon.incutio.com/archive/2003/11/06/easytoggle
*/

addEvent(window, 'load', et_init);

var et_toggleElements = [];
var previouslySelected;

//if (document.getElementById && document.links) window.onload = et_init;

/* Initialisation */
function et_init()
{
     var i, link, id, target, first;
     first = true;
     for (i = 0; (link = document.links[i]); i++)
     {
         if (/\btoggle\b/.exec(link.className))
         {
             id = link.href.split('#')[1];
             target = document.getElementById(id);
             et_toggleElements[et_toggleElements.length] = target;
             if (first)
             {
                 previouslySelected = link.parentNode;
						     previouslySelected.className = 'selected';
                 first = false;
             }
             else
             {
                 target.style.display = 'none';
             }
             link.onclick = et_toggle;
         }
     }
}

function et_toggle(e)
{
    /* Adapted from http://www.quirksmode.org/js/events_properties.html */
    if (typeof e == 'undefined')
    {
        var e = window.event;
    }
    var source;
    if (typeof e.target != 'undefined')
    {
        source = e.target;
    }
    else if (typeof e.srcElement != 'undefined')
    {
        source = e.srcElement;
    }
    else
    {
        return true;
    }
    /* For most browsers, targ would now be a link element; Safari however
       returns a text node so we need to check the node type to make sure */
    if (source.nodeType == 3)
    {
        source = source.parentNode;
    }
		var id = this.href.split('#')[1];
    var elem;
    for (var i = 0; (elem = et_toggleElements[i]); i++)
    {
        if (elem.id != id)
        {
            elem.style.display = 'none';
        }
        else
        {
            elem.style.display = 'block';
        }
    }
    if (previouslySelected)
    {
			previouslySelected.className = '';
    }
    previouslySelected = source.parentNode;
    previouslySelected.className = 'selected';
		/* change to "return true;" if you want it to jump down when you click a link */
    return false;
}
function switchtab(clickedtab)
{
	document.getElementById(clickedtab).className = 'current';
}
/* END third-party scripts */

function getSender(e)
{
	var sender = null;
	if (window.event && window.event.srcElement)
	{
		sender = window.event.srcElement;
	}
	else if (e != null)
	{
		sender = e.target;
	}
	return sender;
}

function $(obj)
{
	var tempObj = null;
	if (typeof obj == 'string')
	{
		tempObj = document.getElementById(obj);
	}
	else if (typeof obj == 'object')
	{
		tempObj = obj;
	}
	return tempObj;
}

/* Page Functions */
function IsImageOK(img)
{
// Weird because, for some reason, Mozilla always returns img.complete as true, even if the image isn't found
//alert('img.complete = ' + img.complete + '\ntypeof img.naturalWidth = ' + typeof img.naturalWidth + '\nimg.naturalWidth = ' + img.naturalWidth);
	return (img.complete && (typeof img.naturalWidth != undefined && img.naturalWidth != 0));
}

addEvent(window, 'load', InitializeImages, false);
var MainImage = null;

function InitializeImages()
{
	for (var i in document.images)
	{
		var thisImage = document.images[i];
		if (!IsImageOK(thisImage) && typeof(thisImage) == 'object')
		{
			thisImage.src = thisImage.src.replace(/\/\w+\.(gif|jpg|jpeg|png|tiff|bmp)$/, '/notfound.gif');
		}
		if (thisImage.className == 'projectImage')
		{
			MainImage = thisImage;
		}
	}
}

function InitializeThumbnails()
{
	var AlternateImages = document.getElementById('ProjectDetails');
	if (AlternateImages)
	{
		var thumbnailsDiv;
		var divs = AlternateImages.getElementsByTagName('DIV');
		for (var i in divs)
		{
			if (divs[i].className == 'alternateImages')
			{
				thumbnailsDiv = divs[i];
				break;
			}
		}
		if (thumbnailsDiv)
		{
			var thumbnails = thumbnailsDiv.getElementsByTagName('IMG');
			for (var i in thumbnails)
			{
				var thisImage = thumbnails[i];		
				if (thisImage.className == 'projectImageThumbnail')
				{
						if (IsImageOK(thisImage))
						{
							addEvent(thisImage, 'click', SelectThumbnail);
						}
						else
						{
							thisImage.style.display = 'none';
						}
				}
			}
		}
	}
}

function SelectThumbnail(e)
{
	var thumb = getSender(e);
	if (thumb.nodeName == 'IMG' && MainImage)
	{
		MainImage.src = thumb.src;
		thumb.parentNode.className = 'thumb' + GetThumbnailIndex(thumb) + 'IsSelected';
	}
}

function GetThumbnailIndex(thumb)
{
	var i = null;
	var pattern = /Thumbnail/;
	if (thumb.id)
	{
		i = thumb.id.replace(pattern, '');
	}
	return i;
}
