
					$j(document).ready( initMenu );
$j(document).ready( initPage );


	var SiteTitle = "eldavo.co.uk"
	var Titles    = {"the_artist":"The Artist","sculpture":"Sculpture","t-shirts":"T-Shirts","illustration":"Illustration","home":"Home"}
	var ImgPath   = "//resources.eldavo.co.uk/images"



function initMenu()
{

	$j('#mainmenu li a').hover( MenuHover , MenuBlur )
	$j('#mainmenu li a,#bar a.home')
		.replaceAttr('href','\?','#')
		.click( loadPage );

	var LocNoHash = (location.hash.length > 0)
		? location.hash.replace('#','')
		: 'home';

	var CurPage = (window.Page !== undefined)
		? window.Page
		: LocNoHash.split('-')[0]
		;
	
	if (CurPage == 't'){CurPage='t-shirts'};
		

	if ( CurPage === undefined ) { CurPage = 'home'; }

	if ( CurPage != $j('body').attr('class') )
	{
		$j('a[href=/#'+CurPage+']').click();
	}
	else
	{
		prepPage(CurPage);
	}
}

function MenuHover()
{
	var ImgSrc = $j(this).find('img').attr('src')

	$j(this).find('img').attr( 'src' , ImgSrc.replace('menu/menu','menu/menu-hover') )
}

function MenuBlur()
{
	$j(this).find('img').replaceAttr('src','menu-hover','menu')
}


function NavHover()
{
	var ImgSrc = $j(this).find('img').attr('src')

	$j(this).find('img').attr( 'src' , ImgSrc.replace('menu/page-nav','menu/page-nav-hover') )
}

function NavBlur()
{
	$j(this).find('img').replaceAttr('src','page-nav-hover','page-nav')
}



function loadPage()
{

	var CurrentPage = $j('body').attr('class');

	$j('#mainmenu li.active').removeClass('active')

	var TargetPage = 'home'
	if ( $j(this).attr('class') != 'home' )
	{
		TargetPage = $j(this).parent().attr('class').replace(/[^\w-]+/g,'')
	}

	$j(this).parent().addClass('active')
	$j('body').attr('class',TargetPage)
	$j(document).attr('title', SiteTitle + ' :: ' + Titles[TargetPage] )

	$j('#simple-zoom-images img').remove();

	prepPage(TargetPage);

	$j('#page')
		.html('<img src="'+ImgPath+'/loading.gif" alt="Loading..." style="display:block;border:solid 1px black;margin:1em auto"/>')
		.load('./pages/'+TargetPage+'.cfm' , initPage )
	
	return true
}

function prepPage(TargetPage)
{
	if ( TargetPage == 'home' )
	{
		$j('#girl').show();
		$j('#bar a.home,#bar h1').hide();
		$j('#under-construction').show();
	}
	else
	{
		$j('#girl').hide();
		$j('#bar a.home,#bar h1').show();
		$j('h1 img')
			.attr('alt', Titles[TargetPage] )
			.attr('src',ImgPath+'/bar/bar.'+TargetPage+'.png')
			;
		if ($j('h1 img').ifixpng){$j('h1 img').ifixpng();}
		$j('#under-construction').hide();
	}
}


function initPage()
{

	$j('.gallery>.grid a').zoom();

	$j('.gallery>.nav a')
		.click( setActivePage )
		.hover( NavHover , NavBlur )

	if (location.hash.indexOf('-pg') > 0)
	{
		$j('a[href$='+location.hash+']').click();
	}
}

function setActivePage()
{
	$j(this)
		.addClass('active')

		.siblings()
		.removeClass('active')
		;

	return true;
}
				
					/*
	Simple Zoom v0.1-dev
	A simple jQuery plugin for zooming images.

	<div class="gallery">
		<a href="image1.jpg"><img src="image1.thumb.jpg"/></a>
		<a href="image2.jpg"><img src="image2.thumb.jpg"/></a>
		<a href="image3.jpg"><img src="image3.thumb.jpg"/></a>
	</div>

	jQuery('.gallery>a').zoom()

	For more details see:
	http://www.hybridchill.com/projects/jquery.html#simple-zoom
*/
(function(){}

)(jQuery);


(function()
{

	var PublicFuncs =
	{ zoom : function(Options)
		{
			Settings = jQuery.extend
			(
				{ InstanceId  : 'simple-zoom'
				, Counter     : 0
				, ImgIdPrefix : 'simple-zoom-img-'
				, BorderWidth : '1px'
				, TitleBox    : false
				, CloseButton : true
				, NavButtons  : true
				}
			,
				Options
			)

			this.each( addZoom );
		}
	, unzoom : function(filter)
		{
			this.each( removeZoom );
		}
	}

	jQuery.fn.extend
	({
		doZoom:function(From,To,Speed,Callback)
		{
			var InStyles =
				{ left   : From.Left + 'px'
				, top    : From.Top + 'px'
				, width  : From.Width + 'px'
				, height : From.Height + 'px'
				, borderWidth : Settings.BorderWidth
				};

			var AnimStyles =
				{ left   : To.Left + 'px'
				, top    : To.Top + 'px'
				, width  : To.Width + 'px'
				, height : To.Height + 'px'
				};

			return $j(this).css( InStyles ).animate( AnimStyles , Speed , Callback );
		}
	})

	var Zooming = false;


	function init()
	{
		$j('<div id="'+Settings.InstanceId+'"></div>')
			.appendTo('body')
			.append('<div id="simple-zoom-container" style="position:absolute;left:0;top:0;z-index:10010"></div>')
			.append('<div id="simple-zoom-images"    style="visibility:hidden;overflow:hidden;width:0;height:0"></div>')
			.append('<div id="simple-zoom-overlay"   style="position:absolute;left:0;top:0"></div>')
			.append('<div id="simple-zoom-controls"  style="position:absolute;left:0;top:0"></div>')
			;

		$j('#simple-zoom-container,#simple-zoom-overlay').click( zoomOut );

		if ( Settings.CloseButton )
		{
			$j('#simple-zoom-controls>button.close').live( 'click' , zoomOut );
		}

		if ( Settings.NavButtons )
		{
			$j('#simple-zoom-controls>button.next').live( 'click' , goNext );
			$j('#simple-zoom-controls>button.prev').live( 'click' , goPrev );
		}
	}






	function zoomIn(e)
	{

		if (Zooming) return false;
		Zooming = true;

		if( $j('#simple-zoom-container').is(':visible') )
		{
			$j('#simple-zoom-container').hide().empty();
		}

		var Img = jQuery( jQuery(this).attr('href') );

		var StartPos =
			{ Left   : e.pageX
			, Top    : e.pageY
			, Width  : 0
			, Height : 0
			};

		var EndPos = getCenterPos( Img );

		$j('#simple-zoom-container')
			.append( Img.clone() )
			.show()
			.doZoom
				( StartPos , EndPos , 300
				, function()
					{
						Zooming = false;

						addControls( Img );
					}
				)

		$j('#simple-zoom-overlay')
			.css({top:0,left:0,bottom:0,right:0,background:'black',opacity:0.2,zIndex:9990})
			.show();

		return false;

	}


	function zoomOut()
	{

		if ( Zooming ) return false;
		Zooming = true;

		removeControls();

		var WindowSize = getWindowSize();

		$j('#simple-zoom-overlay').hide();

		$j('#simple-zoom-container')
			.animate
			(
				{ left   : WindowSize.Width/2 + WindowSize.Left
				, top    : WindowSize.Height/2 + WindowSize.Top
				, width  : '1px'
				, height : '1px'
				, borderWidth: 0
				}
			,
				100
			,
				function()
				{
					$j('#simple-zoom-container').hide().empty();
					Zooming = false;
				}
			)
			;

	}


	function getThumbSrc(NewImg)
	{
		return ( NewImg.length > 0 ) ? $j('a[href=#'+NewImg.attr('id')+'] img').attr('src') : 'about:blank';
	}


	function addControls( Img )
	{
		if ( ! (Settings.TitleBox || Settings.CloseButton || Settings.NavButtons ) ) return false;


		$j('#simple-zoom-controls')
			.empty()
			.appendIf( Settings.CloseButton , '<button type="button" class="close">X<button>'  )
			.appendIf( Settings.TitleBox    , '<div class="title">'+Img.attr('title')+'</div>' )
			.appendIf( Settings.NavButtons  , '<button type="button" class="prev nav"><img class="thumb" src="about:blank"/>&lt; Prev<button>' )
			.appendIf( Settings.NavButtons  , '<button type="button" class="next nav"><img class="thumb" src="about:blank"/>Next &gt;<button>' )
			.css({top:0,left:0,bottom:0,right:0,background:'none',zIndex:10005})
			;

		setNavImages(getThumbSrc(Img.prev()),getThumbSrc(Img.next()));

		$j('#simple-zoom-controls').fadeIn('fast');

		posTitle();
		posNextPrev();
		
	}


	function posTitle()
	{
		if (!Settings.TitleBox) return false;
	
		$j('#simple-zoom-controls .title').centerHoriz();
	}
	
	
	function posNextPrev()
	{
		var BodyWidth = 844;
		var WindowWidth = getWindowSize().Width;
		var ButtonsWidth = $j('#simple-zoom-controls>button.prev').width() + $j('#simple-zoom-controls>button.next').width();
		var SpareSpace = ( WindowWidth - (BodyWidth + ButtonsWidth) ) / 2 ;

		$j('#simple-zoom-controls>button.prev').css('left',SpareSpace);
		$j('#simple-zoom-controls>button.next').css('right',SpareSpace);
	}
	


	function removeControls()
	{
		if ( ! (Settings.TitleBox || Settings.CloseButton || Settings.NavButtons ) ) return false;

		$j('#simple-zoom-controls').fadeOut('fast');
	}




	function getCenterPos( TargetImg )
	{
		var Zoom       = { Width  : Settings.Width || TargetImg.width() , Height : Settings.Height || TargetImg.height() };
		var WindowSize = getWindowSize();
		var TopMargin  = (Settings.TitleBox) ? 45 : 20;

		var Result =
			{ Left   : WindowSize.Width/2 - Zoom.Width/2 + WindowSize.Left
			, Top    : Math.max( WindowSize.Height/2 - Zoom.Height/2 + WindowSize.Top , TopMargin )
			, Width  : Zoom.Width
			, Height : Zoom.Height
			};

		return Result
	}

	function getPos(obj)
	{
		var c = $j(obj);
		var o = c.offset();
		return {Left:o.left,Top:o.top,Width:c.width(),Height:c.height()};
	}

	function goNext()
	{
		if ( Zooming || $j(this).find('img').attr('src') == 'about:blank'  ) return false;
		Zooming = true;

		var ImgId = $j('#simple-zoom-container img').attr('id');

		var NewImg = $j('#simple-zoom-images img[id='+ImgId+']').next();

		$j('#simple-zoom-controls .title').text( NewImg.attr('title') );

		posTitle();

		var StartPos = getPos('#simple-zoom-container');
		var PrevPos  = getPos('#simple-zoom-controls>button.prev img');
		var NextPos  = getPos('#simple-zoom-controls>button.next img');
		var EndPos   = getCenterPos( NewImg );

		$j('#simple-zoom-container').doZoom
			( StartPos , PrevPos , 200
			, function()
				{
					setNavImages( getThumbSrc( $j('#simple-zoom-images img[id='+ImgId+']') ) , getThumbSrc(NewImg.next()) )

					$j('#simple-zoom-container')
						.hide()
						.empty()
						.append( NewImg.clone() )
						.doZoom( NextPos , EndPos , 200 , function(){Zooming = false;} )
				}
			)
			;
	}




	function goPrev()
	{
		if ( Zooming || $j(this).find('img').attr('src') == 'about:blank' ) return false;
		Zooming = true;

		var ImgId = $j('#simple-zoom-container img').attr('id');

		var NewImg = $j('#simple-zoom-images img[id='+ImgId+']').prev();

		$j('#simple-zoom-controls .title').text( NewImg.attr('title') );

		posTitle();

		var StartPos = getPos('#simple-zoom-container');
		var PrevPos  = getPos('#simple-zoom-controls>button.prev img');
		var NextPos  = getPos('#simple-zoom-controls>button.next img');
		var EndPos   = getCenterPos( NewImg );

		$j('#simple-zoom-container').doZoom
			( StartPos , NextPos , 200
			, function()
				{
					setNavImages( getThumbSrc(NewImg.prev()) , getThumbSrc($j('#simple-zoom-images img[id='+ImgId+']')) )

					$j('#simple-zoom-container')
						.hide()
						.empty()
						.append( NewImg.clone() )
						.doZoom( PrevPos , EndPos , 200 , function(){Zooming = false;} )
				}
			)
			;
	}


	function setNavImages(prev,next)
	{
		if (!Settings.NavButtons) return false;
	
		var Opacity = (prev == 'about:blank') ? 0 : 1;
		$j('#simple-zoom-controls>button.prev').fadeTo(1,Opacity).find('img').attr('src', prev );

		var Opacity = (next == 'about:blank') ? 0 : 1;
		$j('#simple-zoom-controls>button.next').fadeTo(1,Opacity).find('img').attr('src', next );
	}




	function addZoom()
	{
		if ( jQuery( '#'+Settings.InstanceId ).length === 0 )
		{ init(); }

		var Src = jQuery(this).attr('href');
		var Id  = createId(Src);
		var Alt = '';
		// var Title = jQuery(this).attr('title') ? jQuery(this).attr('title') : $j.ListLast( jQuery(this).attr('href').replace(/\.jpe?g$/i,'') , '/' ) ;
		// title="'+Title+'"

		jQuery('#simple-zoom-images')
			.append('<img id="'+Id+'" src="'+Src+'" alt="'+Alt+'" />')
			;

		jQuery(this)
			.attr( 'href' , '#'+Id )
			.click( zoomIn )
		;

	}


	function removeZoom()
	{
		jQuery(this).unbind('click',zoomIn);
	}


	// TODO: Add escaped src to id ?
	function createId()
	{
		return Settings.ImgIdPrefix + Settings.Counter++;
	}


	function getWindowSize()
	{
		var Result =
			{ Width  : window.innerWidth || (window.document.documentElement.clientWidth || window.document.body.clientWidth)
			, Height : window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight)
			, Left   : window.pageXOffset || (window.document.documentElement.scrollLeft || window.document.body.scrollLeft)
			, Top    : window.pageYOffset || (window.document.documentElement.scrollTop || window.document.body.scrollTop)
			};

		return Result;
	}


	jQuery.each
		( PublicFuncs
		, function(Method)
			{ jQuery.fn[Method] = this; }
		);

}
)();
				