/* Variable declarations */

var current ;

/* Library functions */

jQuery.jceSwitchPicture = function(atag,picCrossfadeSpeed,textFadeOutSpeed,textFadeInSpeed) {
	next = $(atag).parent().attr("class") ;
	
	if (current === next) {
		return false ;
	}
	
	$("#desclist li." + current).css("z-index","1") ;
	$("#desclist li." + current + " .prevbtn, #desclist li." + current + " .nextbtn").css("cursor","default") ;
	$("#desclist li." + next).css("z-index","999") ;
	$("#desclist li." + next + " .prevbtn, #desclist li." + next + " .nextbtn").css("cursor","pointer") ;
	$("#displaylist li." + current + " img").fadeTo(picCrossfadeSpeed,0) ;
	$("#displaylist li." + next + " img").fadeTo(picCrossfadeSpeed,0.999) ;
	$("#desclist li." + current).fadeTo(textFadeOutSpeed,0,function () { 
		$("#desclist li." + next).fadeTo(textFadeInSpeed,0.999) ;
	}) ;
	current = next ;
}

jQuery.jceImagePreloader = function() {
		// Dim out the thumbnails
	$("#thumblist img").fadeTo(1,0.3) ;

		// Get a src listing for preloading
	var imgs = new Array() ;
	var i = 0 ;
	$("#displaylist img").each( function (i) {
		imgs[i++] = $(this).attr("src") ;
	}) ;

		// Attach images to picturebox to hold all detail pictures.
	for (j=0; j<imgs.length; j++) $("div#dynamicbox").after('<img class="holder" src="' + imgs[j] + '" />') ;

		// Hide these.
	$("img.holder").css('display','none') ;

	i = 0 ;
	$(document.createElement('img')).bind('load', function() { 
    	if (imgs[0]) this.src = imgs.shift();
		$("#thumblist img").eq(i++).fadeTo(100,1) ; 
   }).trigger('load') ;
}

jQuery.jceInitGallery = function(startingPseudo,picCrossfadeSpeed,textFadeOutSpeed,textFadeInSpeed) {
		// Picture Preloader
	$.jceImagePreloader() ;
	$.jceConvertGallery(startingPseudo,picCrossfadeSpeed,textFadeOutSpeed,textFadeInSpeed) ; 
}

jQuery.jceConvertGallery = function(startingPseudo,picCrossfadeSpeed,textFadeOutSpeed,textFadeInSpeed) {
		// Add the next and previous buttons
	$(".picturedescription").append('<p><a class="prevbtn" href="#">&laquo; Previous</a> <a class="nextbtn" href="#">Next &raquo;</a></p>') ;
	$(".nextbtn:last, .prevbtn:first").remove() ;
	$(".prevbtn, .nextbtn").css("cursor","default") ;
	$(".picturedescription:" + startingPseudo).css("z-index","999")
	$(".picturedescription:" + startingPseudo + " .prevbtn, .picturedescription:" + startingPseudo + " .nextbtn").css("cursor","pointer")
	$(".picturedescription:" + startingPseudo + " .nextbtn").css("cursor","pointer")
	$("a.prevbtn").click(function () { $.jcePrevPicture(this,picCrossfadeSpeed,textFadeOutSpeed,textFadeInSpeed) ; return false ; }) ;
	$("a.nextbtn").click(function () { $.jceNextPicture(this,picCrossfadeSpeed,textFadeOutSpeed,textFadeInSpeed) ; return false ; }) ;
		// Set the first picture to display
	$("#displaylist li:" + startingPseudo + " img,#desclist li:" + startingPseudo).css("opacity","0.999") ;
	current = $("#thumblist li:" + startingPseudo).attr("class") ;
		// Add the clickthrough event to switch pictures
	$("#thumblist li a").click(function () { $.jceSwitchPicture(this,picCrossfadeSpeed,textFadeOutSpeed,textFadeInSpeed) ; return false ; }) ;
}

jQuery.jceNextPicture = function(nextA,picCrossfadeSpeed,textFadeOutSpeed,textFadeInSpeed) {
	parentClass = $(nextA).parents("li").attr("class") ;
	parentNo = (parseInt(parentClass.substr(3,1))) + 1 ;
	switchTo = $("#thumblist li.pic" + parentNo + " a") ;
	$.jceSwitchPicture(switchTo,picCrossfadeSpeed,textFadeOutSpeed,textFadeInSpeed) ;
}

jQuery.jcePrevPicture = function(prevA,picCrossfadeSpeed,textFadeOutSpeed,textFadeInSpeed) {
	parentClass = $(prevA).parents("li").attr("class") ;
	parentNo = (parseInt(parentClass.substr(3,1))) - 1 ;
	switchTo = $("#thumblist li.pic" + parentNo + " a") ;
	$.jceSwitchPicture(switchTo,picCrossfadeSpeed,textFadeOutSpeed,textFadeInSpeed) ;
}