/* preload sidebar menu images */
$.preloadImages = function()
{
	for(var i = 0; i < arguments.length; i++) {
		$("<img>").attr("src", arguments[i]);
	}
}
	$.preloadImages('/images/menu/ARD-pink.jpg', '/images/menu/archive-pink.jpg',
					'/images/menu/archive-red.jpg', '/images/menu/ARD-red.jpg',
					'/images/menu/contact-pink.jpg', '/images/menu/contact-red.jpg',
					'/images/menu/credits-pink.jpg', '/images/menu/credits-red.jpg',
					'/images/menu/press-pink.jpg', '/images/menu/press-red.jpg',
					'/images/menu/projects-pink.jpg', '/images/menu/projects-red.jpg',
					'/images/menu/blog-pink.jpg','/images/menu/blog-red.jpg');

/* sidebar menu-image hover swap */
$(function() {
		$('#sidebar img').each(function() {
				$(this).hover(function() {
						if (this.nodeName == 'IMG') {
							this.src = this.src.replace('-pink','-red');
						}
					},
					function() {
						if (this.nodeName == 'IMG' && this.parentNode.className != 'active') {
							this.src = this.src.replace('-red','-pink');
						}
					}
					);   
			});
	});

var ARD = new function()
{
	this.init = function()
	{
		var self = ARD;
		var banner = new Array('green','magenta','cyan');
		if ($('#blog_banner')) {
			$('#blog_banner').attr("src", '/images/banner-' + banner[self.rand(3)] + '.jpg');
		}
		if ($('#viewby')) {
			$('#viewby-head').bind('click', self.toggleViewBy);
		}
		if ($('#viewyear')) {
			$('#viewyear-head').bind('click', self.toggleViewYear);
		}
		$('ul.ard-menu a').toggle(self.showSubMenu,self.hideSubMenu);
		$('ul.ard-menu ul').hide();
		$('a#go_left,a#go_right').click(function(e) {
				e.stopPropagation();
				e.preventDefault();
			});
		self.timerId = 0;
		self.currentPos = 0;
		self.itemPos = 0;
		$('a#go_left').hover(self.go_left, self.stopSlide);
		$('a#go_right').hover(self.go_right, self.stopSlide);
		$('ul.ard-menu a').click(self.slide);
	};

	this.slide = function(e)
	{
		var self = ARD;
		var t = e.target;
		if (!t || t.nodeName != 'A' || ($(t).attr('href') == '#')) return;

		var anchor = $(t).attr('href').replace('#','');

		self.currentPos = self.getFrameOffset('slide-show');
		var coords = self.getAnchorPos('slide-show',anchor);
		self.itemPos = coords.left;

        if (self.timerId)
        {
            clearTimeout(self.timerId);
            self.timerId = 0;
        }
        if (self.currentPos == self.itemPos) return;
        else if (self.currentPos < self.itemPos)
        {
            self.goLeft();
        }
        else if (self.currentPos > self.itemPos)
        {
            self.goRight();
        }
	};

    this.goRight = function()
    {
        var self = ARD;
        var amt = ((self.currentPos - self.itemPos) > 300) ? -150 : -5;
        window['slide-show'].scrollBy(amt, 0);

        self.currentPos = self.currentPos + amt;
        if (self.currentPos > self.itemPos)
        {
            self.timerId = setTimeout("ARD.goRight()", 10);
        }
        else
        {
            if (self.timerId)
            {
                clearTimeout(self.timerId);
                self.timerId = 0;
            }
        }
    };

    this.goLeft = function()
    {
        var self = ARD;
        var amt = ((self.itemPos - self.currentPos) > 300) ? 150 : 5;
        window['slide-show'].scrollBy(amt, 0);        

        self.currentPos = self.currentPos + amt;
        if (self.currentPos < self.itemPos)
        {
            self.timerId = setTimeout('ARD.goLeft()', 10);
        }
        else
        {
            if (self.timerId)
            {
                clearTimeout(self.timerId);
                self.timerId = 0;
            }
        }
    };

	this.go_left = function(e)
	{
        if (self.timerId)
        {
            clearTimeout(self.timerId);
            self.timerId = 0;
        }
        window['slide-show'].scrollBy(25, 0);
        self.timerId = setTimeout('ARD.go_left()', 100);		
	};

	this.go_right = function(e)
	{
        if (self.timerId)
        {
            clearTimeout(self.timerId);
            self.timerId = 0;
        }
        window['slide-show'].scrollBy(-25, 0);
        self.timerId = setTimeout('ARD.go_right()', 100);		
	};

	this.stopSlide = function(e)
	{
        if (self.timerId)
        {
            clearTimeout(self.timerId);
            self.timerId = 0;
        }
	};

	this.showSubMenu = function(e)
	{
		e.stopPropagation();
		e.preventDefault();

		var t = e.target;
		if (!t || t.nodeName != 'A') return;

		var sub = $(t).next().eq(0);
		var pos = $(t).position();
		
		if (sub) {
			sub.css('top', pos.top + 'px');
			sub.css('left', (pos.left + $(t).width() + 18) + 'px');
			sub.fadeIn('slow');
		}
	};

	this.hideSubMenu = function(e)
	{
		var t = e.target;
		if (!t || t.nodeName != 'A') return;

		var sub = $(t).next().eq(0);
		if (sub) {
			sub.fadeOut('fast');
		}
	};

	this.toggleViewBy = function(e)
	{
		e.stopPropagation();
		e.preventDefault();
		var t = e.target;
		if (!t || t.nodeName != 'A') return;

		$('#viewby ul').slideToggle("slow");
	};

	this.toggleViewYear = function(e)
	{
		e.stopPropagation();
		e.preventDefault();
		var t = e.target;
		if (!t || t.nodeName != 'A') return;

		$('#viewyear ul').slideToggle("slow");
	};

	this.getAnchorPos = function(frameName, anchorName) 
	{
		var anchor = 0;
		for (var i = 0; i < window[frameName].document.anchors.length; i++) {
			if (anchorName == window[frameName].document.anchors[i].name) {
				anchor = i;
				break;
			}
		}
		return $(window[frameName].document.anchors[anchor]).position();
	};

    this.getFrameOffset = function(name)
    {
        var scrX = 0;
        if (typeof(window[name].pageXOffset) == 'number')
        {
            scrX = window[name].pageXOffset;
        }
        else if( window[name].document.body && ( window[name].document.body.scrollLeft ) ) 
        {
            scrX = window[name].document.body.scrollLeft;
        } 
        else if(window[name].document.documentElement && 
                (window[name].document.documentElement.scrollLeft)) 
        {
            scrX = window[name].document.documentElement.scrollLeft;
        }
        return scrX;
    };

	this.rand = function(max)
	{
		return Math.floor(Math.random()*max)
	};
};
$(function() {ARD.init();});
