// This will eventually be a full fledged jQuery slideshow plugin - written by Vaughan Risher

function slideshowVR(container, ajaxurls, columns, iteration, listtoshow, pictoshow) {
	var j = jQuery.noConflict();
	if (iteration == null) { 
		iteration = 0; 
	}
	ajaxurl = ajaxurls[iteration];
	if(j(container+" ul.lists").length == 0) { 
		containerheight = j(container).height();
		j(container).append("<div class='loadingscreen'><p></p></div><div class='picloader'></div><div class='controlhider'></div>");
		j(container).find("div.loadingscreen, div.picloader").height(containerheight);
	}
	if ((j(container+" ul.lists li").eq(iteration).attr("loaded") == "true") && (j(container+" ul.lists").length != 0)) {
		fixColumns(j(container+" ul.lists li").eq(iteration).attr("list"), columns);
	} else {
		j.ajax({
			url: ajaxurl,
			async: true,
			cache: false,
			type: 'GET',
			dataType: "xml",
			timeout: 10000,
			error: function(){
				j(container).find("div.loadingscreen").addClass("loaderror");
			},
			success: function(xml){
				var itemcounter = 0;
				loadcount = 0;
				listtitle = j(xml).find('title').eq(0).text();
				if (j(container+" ul.lists").length == 0) { 
					j(container).prepend("<ul class='lists' menulist='inactive'></ul><div list='"+listtitle+"' page='1' columns='"+columns+"' class='slideshow'></div><div class='pagenav'><p class='prev'><< prev page</p><p class='pageloc'></p><p class='next'>next page >></p></div><div class='imgnav'><div class='imginfo'><p><span class='title'></span><span class='client'></span></p><p><span class='desc'></span></p></div><p class='pimg'><< prev image</p><p class='imgloc'></p><p class='nimg'>next image >></p></div><p class='closeimg'>click image to return to current list</p>"); 
				}
				if (j(container).find("ul.lists li."+listtitle).length == 0) {
					j(container).find("ul.lists").append("<li loaded='false' class='"+listtitle+"' list='"+listtitle+"' listlink='"+ajaxurl+"'>"+listtitle+"</li>");
				}
				if ((iteration == 0) && (listtoshow == "")) { 
					listtoshow = listtitle; 
				}
				if ((j(container+" ul.lists").attr("menulist") != "inactive") || (listtitle.toLowerCase() == listtoshow.toLowerCase())) {
					j(container).find("div.slideshow").attr("list", listtitle);
					totalpics = j(xml).find('item').length;
					thumbwidth = Math.floor(((j(container).width()-75)/parseInt(columns))-5);
					j(xml).find('item').each(function(itemcounter) {
						fpic = j(this).find('pubDate').next().attr("url");
						pic = "/wp-content/themes/whiteboard/scripts/timthumb.php?src=" + j(this).find('pubDate').next().attr("url") + "&q=100&w=" + thumbwidth;
						picclient = j(this).find('client').text();
						clientlink = j(this).find('link').text();
						pictitle = j(this).find('title').text();
						picdesc = j(this).find('description').text();
						pichtml = "<img title='"+pictitle+"' desc='"+picdesc+"' client='"+picclient+"' src='"+pic+"' thumbnail='"+pic+"' fullsize='"+fpic+"' class='"+listtitle+"' />";
						j(container).find("div.slideshow").append(pichtml);
						j("img."+listtitle).eq(itemcounter).load(function() {
							if (!j(this).is("[initialload]")) {
								j(this).attr("initialload", true);
								j("#specialnote").text((loadcount+1) + " of " + totalpics + " images loaded");
								if (itemcounter == 0) { j(container).find("div.loadingscreen").addClass("nowait"); j(container).find("ul.lists li."+listtitle).addClass("down").addClass("refresh"); }
								if (itemcounter > 0) { j(container).find("div.loadingscreen p").width(j(container).find("div.loadingscreen p").width()+(j(container).width()/totalpics)); }
								heightprop = j(this).height();
								widthprop = j(this).width();
								j(this).attr("ar", Math.floor((widthprop/heightprop)*100)/100);
								if (heightprop >= widthprop) { j(this).attr("vert", "true"); } else { j(this).attr("vert", "false"); }
								loadcount++;			
								if (loadcount == totalpics) {
									j(container).find("ul.lists li."+listtitle).removeClass("refresh");
									j(this).parent().parent().find("li."+listtitle).attr("loaded", "true");
									j(container).find("div.loadingscreen p").width(0);
									fixColumns(listtitle, columns);
									j(this).parent().parent().find("div.pagenav").addClass("show");
									j(container).find("div.loadingscreen").fadeOut(100, function() { j(this).removeClass("nowait"); });
									j(this).parent().find("img."+listtitle).hover(function() {
										j(this).addClass("over");
									}, function() {
										j(this).removeClass("over");
									});
									j(this).parent().parent().find("p.closeimg").click(function() {
										j("img#open").click();
									});
									j(this).parent().find("img."+listtitle).click(function() {
										if (j(this).attr("id") != "open") {
											picpos = j(this).offset();
											j(this).attr("posleft", (picpos.left-100));
											j(this).attr("postop", (picpos.top-105));
											j(this).css({position:"absolute",left:(picpos.left-100),top:(picpos.top-105)});
											j(this).attr("id", "open");
											j(this).attr("src", j(this).attr("fullsize"));
											if (!j(this).is("[loaded]")) {
												j(this).load(function() {
													j(this).attr("loaded", "true");
												});
											}
											j(this).parent().parent().find("ul.lists").addClass("hide");
											j(this).parent().parent().find("div.pagenav").removeClass("show");
											j(this).parent().parent().find("div.imgnav").addClass("show");
											j(this).siblings().hide();
											j(this).parent().parent().find("p.closeimg").show();
											fixOpenPic(true);
										} else {
											j(this).attr("src", j(this).attr("thumbnail"));
											fixOpenPic(false);
											j(this).parent().parent().find("ul.lists").removeClass("hide");
											j(this).parent().parent().find("div.pagenav").addClass("show");
											j(this).parent().parent().find("div.imgnav").removeClass("show");
											j(this).parent().parent().find("p.closeimg").hide();
										}
									});
									if ((iteration < (ajaxurls.length-1)) && (j(container+" ul.lists").attr("menulist") == "inactive")) { 
										slideshowVR(container, ajaxurls.slice(0), columns, iteration+1, listtoshow, pictoshow);							
									} else if (j(container+" ul.lists").attr("menulist") != "active") {
										setupButtons(container, listtoshow, pictoshow);
									}
								}
							}
						});
					});
				} else if (iteration < (ajaxurls.length-1)) {
					slideshowVR(container, ajaxurls.slice(0), columns, iteration+1, listtoshow, pictoshow); 
				} else if (j(container+" ul.lists").attr("menulist") != "active") {
					setupButtons(container, listtoshow, pictoshow);
				}
			}
		});
	}
}

function setupButtons(container, listtoshow, pictoshow) {
	j(container).find("p.next, p.prev, p.nimg, p.pimg").hover(function() {
		j(this).addClass("over");
	}, function() {
		j(this).removeClass("over");
	});
	j(container).find("p.nimg").click(function() {
		fixOpenPic(true, true);
	});
	j(container).find("p.pimg").click(function() {
		fixOpenPic(true, false);
	});
	j(container).find("p.next").click(function() {
		slidebox = j(this).parent().parent().find("div.slideshow");
		cpage = slidebox.attr("page");
		nextpage = parseInt(cpage)+1;
		slidebox.attr("page", nextpage);
		fixColumns(slidebox.attr("list"), slidebox.attr("columns"));
	});
	j(container).find("p.prev").click(function() {
		slidebox = j(this).parent().parent().find("div.slideshow");
		cpage = slidebox.attr("page");
		prevpage = parseInt(cpage)-1;
		if (prevpage >= 1) { 
			slidebox.attr("page", prevpage);
			fixColumns(slidebox.attr("list"), slidebox.attr("columns"));
		}
	});
	j(container).find("ul.lists li").hover(function() {
		j(this).addClass("over");		 
	}, function() {
		j(this).removeClass("over");
	});
	j(container).find("ul.lists li").click(function() {
		if (j(this).parent().parent().find("div.loadingscreen").css("display") == "none") {
			newlist = j(this).attr("list");
			oldlist = j(this).parent().parent().find("div.slideshow").attr("list");
			if (oldlist != newlist) {
				if (j(this).attr("loaded") == "false") {
					j(this).siblings().removeClass("down");
					j(this).addClass("down");
					//j(this).text("loading...");
					//j(this).addClass("refresh");
					var slidearray = new Array();
					listclicked = j(this).attr("listlink");
					listtoload = 0;
					j(this).parent().find("li").each(function(cli) { 
						slidearray[cli] = j(this).attr("listlink"); 
						if (slidearray[cli] == listclicked) { listtoload = cli; }
					});
					j(this).parent().parent().find("div.loadingscreen p").width(0);
					j(this).parent().parent().find("div.loadingscreen").show();
					//alert("#"+j(this).parent().parent().attr("id")+" "+slidearray+" "+j(this).parent().parent().find("div.slideshow").attr("columns")+" "+listtoload);
					j(this).parent().parent().find("div.slideshow img."+oldlist).hide();
					j(this).parent().parent().find("div.slideshow").attr("list", newlist);
					j(this).parent().parent().find("div.slideshow").attr("page", 1);
					slideshowVR("#"+j(this).parent().parent().attr("id"), slidearray, j(this).parent().parent().find("div.slideshow").attr("columns"), listtoload, listtoshow, pictoshow);
				} else {
					j(this).siblings().removeClass("down");
					j(this).addClass("down");
					j(this).parent().parent().find("div.slideshow img").hide();
					j(this).parent().parent().find("div.slideshow").attr("page", 1);
					j(this).parent().parent().find("div.slideshow").attr("list", newlist);
					slidecols = j(this).parent().parent().find("div.slideshow").attr("columns");
					fixColumns(newlist, slidecols);	
				}
			}
		}
	});
	j(container).find("ul.lists").attr("menulist", "active");
	j(container).find("div.picloader").click(function() {
		j(this).hide();
		j("img#open").click();
	});
	if (pictoshow != undefined) {
		listtoshow = j(container).find("div.slideshow").attr("list");
		j(container).find("img."+listtoshow).eq(parseInt(pictoshow)).click();
	}	
}

function imageInfo() {
	if (j("img#open").attr("client") == "") {
		client = "<strong>client:</strong> -";
	} else {
		client = "<strong>client:</strong> "+j("img#open").attr("client");
	}
	if (j("img#open").attr("title") == "") {
		title = "<strong>title:</strong> -";
	} else {
		title = "<strong>title:</strong> "+j("img#open").attr("title");
	}
	if (j("img#open").attr("desc") == "") {
		desc = "<strong>description:</strong> -";
	} else {
		desc = "<strong>description:</strong> "+j("img#open").attr("desc");
	}
	j("img#open").parent().parent().find("div.imgnav span.client").html(client);
	j("img#open").parent().parent().find("div.imgnav span.title").html(title);
	j("img#open").parent().parent().find("div.imgnav span.desc").html(desc);	
}

function fixOpenPic(openpic, nextpic, fix, picoffset) {
	if (openpic == false) {
		if (j("img#open[resetlist]").length > 0) {
			resetlist = true;
			j("img#open").removeAttr("resetlist");
		} else {
			resetlist = false;
		}
		j("img#open").removeClass("over");
		columns = parseInt(j("img#open").parent().attr("columns"));
		imagelist = j("img#open").attr("class").replace(/ closeall/, "");
		goalsize = j("img#open").parent().attr("boxsize");
		j("img#open").attr("id", "closed");
		iar = j("img#closed").attr("ar");
		posleft = j("img#closed").attr("posleft");
		postop = j("img#closed").attr("postop");
		if (iar >= 1) { 
			temppad = Math.round((goalsize - ((goalsize-10)/iar))/2);
			nh = Math.round((goalsize-10)/iar);
			hdiff = goalsize - (nh+(temppad*2));
			nw = Math.round(goalsize-10);
			j("img#closed").animate({height: nh, width: nw, paddingTop: temppad, paddingBottom: (temppad+hdiff), paddingRight: 5, paddingLeft: 5, left: posleft, top: postop}, 200, function() { j("img#closed").css({position:"relative",left:0,top:0}); j("img#closed").attr("id", ""); fixColumns(imagelist, columns, resetlist); });
		} else {
			temppad = Math.round((goalsize - ((goalsize-10)*iar))/2);
			nh = Math.round(goalsize-10);
			nw = Math.round((goalsize-10)*iar);
			wdiff = goalsize - (nw+(temppad*2));
			j("img#closed").animate({height: nh, width: nw, paddingTop: 5, paddingBottom: 5, paddingRight: (temppad+wdiff), paddingLeft: temppad, left: posleft, top: postop}, 200, function() { j("img#closed").css({position:"relative",left:0,top:0}); j("img#closed").attr("id", ""); fixColumns(imagelist, columns, resetlist); });
		}
	} else {
		j("img#open").removeClass("over");
		blockwidth = j("img#open").parent().parent().width()-60;
		blockheight = j("img#open").parent().parent().height()-(15+j("img#open").parent().parent().find("div.imgnav").height());
		blockar = blockwidth/blockheight;
		if (nextpic == null) {
			if (fix == true) {
				picloaderheight = j("img#open").parent().parent().find(".picloader").parent().height() - j("img#open").parent().parent().find(".imgnav").height() - 15;
				picloaderwidth = j("img#open").parent().parent().find(".picloader").parent().width() - 60;
				j("img#open").parent().parent().find(".picloader").height(picloaderheight).width(picloaderwidth);
			}
			iar = j("img#open").attr("ar");
			if (iar >= blockar) {
				tpad = (blockheight-((blockwidth-20)/iar))/2;
				if (tpad >= 20) {
					if (fix != true) {
						j("img#open").animate({height: ((blockwidth-20)/iar), width: (blockwidth-20), paddingTop: tpad, paddingBottom: tpad, paddingRight: 10, paddingLeft: 10, left:0, top:0}, 200);
					} else {
						j("img#open").attr("resetlist", true);
						j("img#open").attr("posleft", "0px").attr("postop", "0px").css({height: ((blockwidth-20)/iar), width: (blockwidth-20), paddingTop: tpad, paddingBottom: tpad, paddingRight: 10, paddingLeft: 10, position:"relative", left:0, top:0}); 
					}
				} else {
					tpad = (blockheight-((blockwidth-60)/iar))/2;
					if (fix != true) {
						j("img#open").animate({height: ((blockwidth-60)/iar), width: (blockwidth-60), paddingTop: tpad, paddingBottom: tpad, paddingRight: 30, paddingLeft: 30, left:0, top:0}, 200);
					} else {
						j("img#open").attr("resetlist", true);
						j("img#open").attr("posleft", "0px").attr("postop", "0px").css({height: ((blockwidth-60)/iar), width: (blockwidth-60), paddingTop: tpad, paddingBottom: tpad, paddingRight: 30, paddingLeft: 30, position:"relative", left:0, top:0}); 
					}
				}
			} else { 
				tpad = (blockwidth-((blockheight-40)*iar))/2;
				if (fix != true) {
					j("img#open").animate({height: (blockheight-40), width: ((blockheight-40)*iar), paddingTop: 20, paddingBottom: 20, paddingRight: tpad, paddingLeft: tpad, left:0, top:0}, 200); 
				} else {
					j("img#open").attr("resetlist", true);
					j("img#open").attr("posleft", "0px").attr("postop", "0px").css({height: (blockheight-40), width: ((blockheight-40)*iar), paddingTop: 20, paddingBottom: 20, paddingRight: tpad, paddingLeft: tpad, position:"relative", left:0, top:0}); 
				}
			}
			clist = j("img#open").attr("class").replace(/ closeall/, "");
			clistlength = j("img."+clist).length;
			cpicidx = j("img."+clist).index(j("img#open"));
			j("img#open").parent().parent().find("p.imgloc").text((cpicidx+1)+"/"+clistlength);
			if ((cpicidx+1) == clistlength) { j("img#open").parent().parent().find("p.nimg").hide(); } else { j("img#open").parent().parent().find("p.nimg").show(); }
			if (cpicidx == 0) { j("img#open").parent().parent().find("p.pimg").hide(); } else { j("img#open").parent().parent().find("p.pimg").show(); }
		} else if (nextpic == true) {
			clist = j("img#open").attr("class").replace(/ closeall/, "");
			clistlength = j("img."+clist).length;
			cpicidx = j("img."+clist).index(j("img#open"));
			if ((cpicidx+1) < clistlength) {
				iar = j("img#open").next().attr("ar");
				j("img#open").next().attr("src", j("img#open").next().attr("fullsize"));
				if (!j("img#open").next().is("[loaded]")) {
					j("img#open").next().load(function() {
						j(this).attr("loaded", "true");
						j(this).parent().parent().find(".picloader").fadeOut(250);
						j(this).parent().parent().find(".controlhider").fadeOut(250);
					});
					picloaderheight = j("img#open").parent().parent().find(".picloader").parent().height() - j("img#open").parent().parent().find(".imgnav").height() - 15;
					picloaderwidth = j("img#open").parent().parent().find(".picloader").parent().width() - 60;
					j("img#open").parent().parent().find(".controlhider").fadeIn(50);
					j("img#open").parent().parent().find(".picloader").height(picloaderheight).width(picloaderwidth).show();
				}
				if (iar >= blockar) {
					tpad = (blockheight-((blockwidth-20)/iar))/2;
					if (tpad >= 20) {
						j("img#open").attr("id", "").hide().css({position:"relative",left:0,top:0}).next().attr("id", "open").css({height: ((blockwidth-20)/iar), width: (blockwidth-20), paddingTop: tpad, paddingBottom: tpad, paddingRight: 10, paddingLeft: 10, position:"absolute"}).fadeIn(200);
					} else {
						tpad = (blockheight-((blockwidth-60)/iar))/2;
						j("img#open").attr("id", "").hide().css({position:"relative",left:0,top:0}).next().attr("id", "open").css({height: ((blockwidth-60)/iar), width: (blockwidth-60), paddingTop: tpad, paddingBottom: tpad, paddingRight: 30, paddingLeft: 30, position:"absolute"}).fadeIn(200);
					}
				} else { 
					tpad = (blockwidth-((blockheight-40)*iar))/2;
					j("img#open").attr("id", "").hide().css({position:"relative",left:0,top:0}).next().attr("id", "open").css({height: (blockheight-40), width: ((blockheight-40)*iar), paddingTop: 20, paddingBottom: 20, paddingRight: tpad, paddingLeft: tpad, position:"absolute"}).fadeIn(200); 
				}
				j("img#open").parent().parent().find("p.imgloc").text((cpicidx+2)+"/"+clistlength);
				cols = j("img#open").parent().attr("columns");
				goalsize = Math.floor(((j("img#open").parent().parent().width()-75)/cols)-5);
				rowsperpage = (j("img#open").parent().parent().height()-j("img#open").parent().parent().find("ul.lists").height()-j("img#open").parent().parent().find("div.pagenav").height())/(goalsize+5);
				totalrows = Math.floor(rowsperpage);
				interspace = (rowsperpage%1)*(goalsize+5);
				if (interspace >= 30) {
					totalrows = Math.floor(rowsperpage);
				} else {
					totalrows = Math.floor(rowsperpage)-1;
				}
				picsperpage = (cols*totalrows);
				curpage = Math.floor(((cpicidx+1)/picsperpage)+1)
				j("img#open").parent().attr("page", curpage);
				j("img#open").parent().parent().find("p.pageloc").text(curpage+"/"+j("img#open").parent().attr("totalpages"));
				
				if ((cpicidx+2) == clistlength) { j("img#open").parent().parent().find("p.nimg").hide(); } else { j("img#open").parent().parent().find("p.nimg").show(); }
				if (cpicidx == 0) { j("img#open").parent().parent().find("p.pimg").show(); }
			}
		} else if (nextpic == false) {
			clist = j("img#open").attr("class").replace(/ closeall/, "");
			clistlength = j("img."+clist).length;
			cpicidx = j("img."+clist).index(j("img#open"));
			if (cpicidx > 0) {
				iar = j("img#open").prev().attr("ar");
				j("img#open").prev().attr("src", j("img#open").prev().attr("fullsize"));
				if (!j("img#open").prev().is("[loaded]")) {
					j("img#open").prev().load(function() {
						j(this).attr("loaded", "true");
						j(this).parent().parent().find(".picloader").fadeOut(250);
						j(this).parent().parent().find(".controlhider").fadeOut(250);
					});
					picloaderheight = j("img#open").parent().parent().find(".picloader").parent().height() - j("img#open").parent().parent().find(".imgnav").height() - 15;
					picloaderwidth = j("img#open").parent().parent().find(".picloader").parent().width() - 60;
					j("img#open").parent().parent().find(".controlhider").fadeIn(100);
					j("img#open").parent().parent().find(".picloader").height(picloaderheight).width(picloaderwidth).fadeIn(50);
				}
				if (iar >= blockar) {
					tpad = (blockheight-((blockwidth-20)/iar))/2;
					if (tpad >= 20) {
						j("img#open").attr("id", "").hide().css({position:"relative",left:0,top:0}).prev().attr("id", "open").css({height: ((blockwidth-20)/iar), width: (blockwidth-20), paddingTop: tpad, paddingBottom: tpad, paddingRight: 10, paddingLeft: 10, position:"absolute"}).fadeIn(200);
					} else {
						tpad = (blockheight-((blockwidth-60)/iar))/2;
						j("img#open").attr("id", "").hide().css({position:"relative",left:0,top:0}).prev().attr("id", "open").css({height: ((blockwidth-60)/iar), width: (blockwidth-60), paddingTop: tpad, paddingBottom: tpad, paddingRight: 30, paddingLeft: 30, position:"absolute"}).fadeIn(200);
					}
				} else { 
					tpad = (blockwidth-((blockheight-40)*iar))/2;
					j("img#open").attr("id", "").hide().css({position:"relative",left:0,top:0}).prev().attr("id", "open").css({height: (blockheight-40), width: ((blockheight-40)*iar), paddingTop: 20, paddingBottom: 20, paddingRight: tpad, paddingLeft: tpad, position:"absolute"}).fadeIn(200); 
				}
				j("img#open").parent().parent().find("p.imgloc").text(cpicidx+"/"+clistlength);
				cols = j("img#open").parent().attr("columns");
				goalsize = Math.floor(((j("img#open").parent().parent().width()-75)/cols)-5);
				rowsperpage = (j("img#open").parent().parent().height()-j("img#open").parent().parent().find("ul.lists").height()-j("img#open").parent().parent().find("div.pagenav").height())/(goalsize+5);
				totalrows = Math.floor(rowsperpage);
				interspace = (rowsperpage%1)*(goalsize+5);
				if (interspace >= 30) {
					totalrows = Math.floor(rowsperpage);
				} else {
					totalrows = Math.floor(rowsperpage)-1;
				}
				picsperpage = (cols*totalrows);
				//alert(cpicidx+" "+picsperpage+" "+(cpicidx/picsperpage)+1);
				curpage = Math.floor(((cpicidx-1)/picsperpage)+1);
				j("img#open").parent().attr("page", curpage);
				j("img#open").parent().parent().find("p.pageloc").text(curpage+"/"+j("img#open").parent().attr("totalpages"));
				
				if (cpicidx == 1) { j("img#open").parent().parent().find("p.pimg").hide(); } else { j("img#open").parent().parent().find("p.pimg").show(); }
				if (cpicidx == (clistlength-1)) { j("img#open").parent().parent().find("p.nimg").show(); }
			}
		}
		imageInfo();
	}
}

function fixColumns(list, cols, fix) {
	containerheight = j("img."+list).eq(0).parent().parent().height();
	j("img."+list).eq(0).parent().parent().find("div.loadingscreen").height(containerheight);
	var goalsize = Math.floor(((j("img."+list).eq(0).parent().parent().width()-75)/cols)-5);
	j("img."+list).eq(0).parent().attr("columns", cols);
	j("img."+list).eq(0).parent().attr("boxsize", goalsize);
	showtotal = j("img."+list).length;
	if (fix != true) {
		showlist = j("img."+list).eq(0).parent().attr("list");
		showpage = j("img."+list).eq(0).parent().attr("page");
		j("ul.lists li").removeClass("down");
		j("li."+showlist).addClass("down");
		reallistname = j("li."+showlist).attr("list");
		//j("li."+showlist).text(reallistname);
		j("li."+showlist).removeClass("refresh");
	} else {
		showlist = j("img."+list).eq(0).parent().attr("list");
		showpage = j("img."+list).eq(0).parent().attr("page");
		//j("img."+list).eq(0).parent().attr("page", 1);
		//showpage = 1;
	}
	if (list == showlist) {
		j("img."+list).each(function(listcount) {
			j(this).attr("src", j(this).attr("thumbnail"));
			
			aspectratio = j(this).attr("ar");
			vert=false;
			if (aspectratio >= 1) { 
				vert = false; 
				temppad = Math.round((goalsize - ((goalsize-10)/aspectratio))/2);
			} else { 
				vert = true;
				temppad = Math.round((goalsize - ((goalsize-10)*aspectratio))/2);
			}
			hdiff = 0;
			wdiff = 0;
			if (vert) {
				nh = Math.round(goalsize-10);
				nw = Math.round((goalsize-10)*aspectratio);
				wdiff = goalsize - (nw+(temppad*2));
				if (listcount == 0) { setheight = nh }
				j(this).height(nh).width(nw).css({paddingTop: 5, paddingBottom: 5, paddingRight: (temppad+wdiff), paddingLeft: temppad});
			} else {
				nh = Math.round((goalsize-10)/aspectratio);
				hdiff = goalsize - (nh+(temppad*2));
				nw = Math.round(goalsize-10);
				if (listcount == 0) { setheight = nh }
				j(this).height(nh).width(nw).css({paddingTop: temppad, paddingBottom: (temppad+hdiff), paddingRight: 5, paddingLeft: 5});
			}
			if (listcount == (showtotal-1)) {
				rowsperpage = (j(this).parent().parent().height()-j(this).parent().parent().find("ul.lists").height()-j(this).parent().parent().find("div.pagenav").height())/(goalsize+5);
				rowsperpage = parseFloat(rowsperpage.toFixed(3));
				totalrows = Math.floor(rowsperpage);
				interspace = (rowsperpage%1)*(goalsize+5);
				if (interspace >= 30) {
					totalrows = Math.floor(rowsperpage);
				} else {
					totalrows = Math.floor(rowsperpage)-1;
				}
				picsperpage = (cols*totalrows);
				lastpageremainder = (showtotal%picsperpage);
				if (lastpageremainder == 0) { lastpagediff = 0 } else { lastpagediff = picsperpage-lastpageremainder; }
				totalpages = Math.ceil(showtotal/(totalrows*cols));
				j(this).parent().attr("totalpages", totalpages);
				//if (fix) { j(this).parent().attr("totalpages", showpage); }
				if (totalpages < 0) {
					j("img."+showlist).hide();
					j("img."+showlist).eq(0).parent().parent().find("div.pagenav").removeClass("show");
					j("p#specialnote").text("increase window height to show images");
				} else {
					j("p#specialnote").text("");
				}
				if (showpage <= totalpages) {
					if (showpage != totalpages) {
						pagearray = j("img."+showlist).slice(((showpage-1)*picsperpage), (showpage*picsperpage));
					} else {
						pagearray = j("img."+showlist).slice(((showpage-1)*picsperpage), ((showpage*picsperpage)-lastpagediff));
					}
					redraw = false;
					pagearray.each(function() {
						if (j(this).css("display") == "none") {
							j(this).show();
							picpos = j(this).offset();
							j(this).attr("posleft", (picpos.left-100));
							j(this).attr("postop", (picpos.top-105));
						}
					});
					j("img."+showlist).not(pagearray).each(function() {
						if (j(this).css("display") != "none") {
							j(this).hide();
						}											
					});
					//j("img."+showlist).not(pagearray).hide();
					//pagearray.fadeIn(200);
					if (totalpages != Infinity) {
						j(this).parent().parent().find("div.pagenav").addClass("show");
						j("p#specialnote").text("");
						j(this).parent().parent().find("p.pageloc").text(showpage+"/"+totalpages);
						//alert(rowsperpage + " " + totalpages);
					} else {
						if (temprpp == null) {
							fixColumns(list, cols+1, fix);
							temprpp = rowsperpage;
							//alert(temprpp + " first time");
						} else {
							if (rowsperpage != temprpp) {
								fixColumns(list, cols+1, fix);
								//alert(temprpp + " " + rowsperpage + " " + cols);
							}
							//} else {
								//j("p#specialnote").text("increase window height to show images");
								//j(this).parent().parent().find("div.pagenav").removeClass("show"); 
							//}
							temprpp = rowsperpage;
						}
					}
					if (showpage == 1) { j(this).parent().parent().find("p.prev").hide(); } else { j(this).parent().parent().find("p.prev").show(); }
					if (showpage == totalpages) { j(this).parent().parent().find("p.next").hide(); } else { j(this).parent().parent().find("p.next").show(); }
				} else if (showpage > totalpages) {
					showpage = totalpages;
					j(this).parent().attr("page", showpage);
				}
			}
		});
	} else {
		j("img."+list).hide();
	}
}
