$jQ( function () { 
	var album  = {
		path:'/skin/frontend/default/plananu/slideshow/',
		img:[
			{ src:'1.jpg', caption:'Wall Word Sculpture', link:'sculpture/wall-words' },
			{ src:'2.jpg', caption:'Jason Fawcett Prints', link:'prints/jason-fawcett' },
			{ src:'3.jpg', caption:'Vine Bird Sculpture', link:'sculpture/icons' },
			{ src:'4.jpg', caption:'Punch Surface Graphic', link:'surface-graphics/pop' },
			{ src:'5.jpg', caption:'Wall Word Sculpture', link:'sculpture/wall-words' },
			{ src:'6.jpg', caption:'Solar Spiral Sculpture', link:'sculpture/icons' }
		]
	};

    function escapeSlash (t)
    {
        return t.replace(/\//g, '\\/');
    }

    
	var imageRegex = /url\("?(.*?)(\/skin\/frontend\/default\/plananu\/slideshow\/.*?)"?\)/,
		slideBar = $jQ("#home-img"), 
		slideTitle = $jQ("#home-img-title"),
		slideLink = $jQ("#home-img-title a"),
		sPath = album.path, sImageData = album.img, 
		sImageIdx = new Array(), sImg_max = sImageData.length - 1,
        loc = window.location.href, locR = new RegExp( '^' + escapeSlash(loc) ),
		current, idx, tempimage;

	/* prepend paths to imagenames  and preload images */
	function preloadSlideBar () 
	{
		for (var i = sImageData.length - 1; i >= 0; --i) {
			var o = sImageData[i];
			o.src = sPath + o.src; 
			sImageIdx[i] = o.src; /* index slice into the images for quick access via matchresult */
			jQuery(document.createElement('img')).attr("src", o.src).css({"display": "none"});
		}
	};

	function getcurrent() 
	{
		var matchresult = slideBar.css("background-image").match( imageRegex );
		return {"url" : matchresult[1], "image" : matchresult[2], "idx" : $jQ(sImageIdx).index( matchresult[2])} ;
	};
	
	function nextprev(n) 
	{
		var idx = n;
		if (n < 0) { idx = sImg_max; }
		else if (n > sImg_max) { idx = 0; }
		return sImageData[idx];
	};

	function updateImage(curr, indx) 
	{
		var tempimage = jQuery(document.createElement('img'))
			.attr({"id" : "tempimage", "src" : curr.url + curr.image, "width" : "725", "height" : "323"})
			.css({"position":"absolute", "top":"0", "left":"0"});
		var newData = nextprev(indx);
		slideBar
			.append( tempimage )
			.css( { "background-image" : 'url("' + curr.url + newData.src + '")'} )
			.attr( "title", newData.caption );
		slideLink
			.attr( "href", loc + newData.link )
			.html( newData.caption );
		tempimage.fadeOut(1500, function () {tempimage.remove()} );
	};

	function slideShow ()
	{
		slideBar.everyTime('4s', 'slideshow', function() {
			current = getcurrent();
			idx = current.idx + 1;
			updateImage(current, idx);
		});
	};

	/* make primary image div clickable for contained link */
	slideLink.click( function (e) { 
		e.stopPropagation(); 
		var dest = $jQ(this).attr('href'); 
        if (dest.match(locR)) { window.location = dest; }
        else { window.location = loc + dest; }
	});
	slideBar.css({"cursor": "hand"}).click( function (e) { 
		e.stopPropagation();          
		slideLink.trigger('click');
	});

	slideBar.hover(
		function () {$jQ(this).stopTime('slideshow');},
		function () { slideShow(); }
	);
	preloadSlideBar();
	slideShow();
});

