	//// internal vars ////
	active_id = -1;
	
	////// FUNCTIONS ////////////////////////////////////////////
	
	//// set gallery and image paths
	
	function setCurrentPosition()
	{
		var current_path = '';
		var current_link = window.location;
		document.getElementById('gallery_url').style.display = 'block';
		
		if (active_id) {
			current_link += '?g='+active_id;
		}
		
		current_path = '<a id="permalink_a" href="javascript:;" '
			+ 'onclick="showPermalink(\''+current_link+'\');">'
			+ wpig_lang['permalink'] +'</a>'
		
		Element.setInnerHTML('gallery_url', current_path);
	}
	
	function showPermalink(link)
	{
		var openWin = prompt(wpig_lang['permalink']+':',link);
	}
	
	
	//// set selected gallery ///////////////////////////////////////
	
	function setGallery(id)
	{
		hideSelectBoxes();
		
		//// clean up the globals
		active_id = id;
		
		// stretch overlay to fill page and fade in
		new Effect.Appear('wpig_content_bg', { duration: 0.2, from: 0.0, to: 0.8 });
		
		// calculate top offset for the content box and display
		var arrayPageScroll = getPageScroll();
		var contentTop = arrayPageScroll[1];

		Element.setTop('wpig_content', contentTop);
		document.getElementById('wpig_content').style.display = 'block';
		
		// load gallery title and description
		var gallery_data = '<h3>' + wpig_lang['view_img'] + ' ' + ajax_gallery[id]['name'] + '</h3>';
		gallery_data +=	'<p>' + ajax_gallery[id]['shortinfo'] + '</p>';
		
		Element.setInnerHTML('gallery_data', gallery_data);
		
		// set gallery block data
		th_min = 0;
		th_max = ((th_min+th_diff) < ajax_gallery[id]['num_images']) ? (th_min+th_diff) : ajax_gallery[id]['num_images'];
		
		// load thumbnails
		getThumbs(id, th_min, th_max);
		
		// set permalink urls
		setCurrentPosition();
	}
	
	function getBlockNav(id)
	{
		if (ajax_gallery[id]['num_images'] > th_diff) {
			document.getElementById('gallery_nav').style.display = 'block';
			
			var block = '';
			var l = Math.round(ajax_gallery[id]['num_images'])-1;
			var block_number = 0;
			var i = 0;
			while (i<=l) {
				var min = i;
				var max = (i+th_diff <= l)
					? Math.round(i+th_diff)
					: l+1;
				
				current_block = ((th_min <= i) && (th_max > i)) ? true : false;
				
				if (!current_block) {
					block += '<a href="javascript:;" onclick="getThumbs(';
					block += "'"+id+"', "+min+","+max;
					block += ')">';
				}
				
				block_number++;
				
				block += ' ['+zero(block_number)+']';
				
				if (!current_block) block += '</a>';
				
				i = max;
			}
			Element.setInnerHTML('gallery_block', block);
			
		} else {
			document.getElementById('gallery_nav').style.display = 'none';
		}
	}
	
	function getThumbs(id, min, max)
	{
		Element.setInnerHTML('thumbs_div','');
		
		// load gallery thumbnails
		if ( 0 == ajax_gallery[id]['num_images'] )
			Element.setInnerHTML('thumbs_div', 'No images in gallery.');
		else
		{
			// display thumbnails
			var thumbs_div = '<table>';
			
			var i;
			// display as a collection of thumbnails (default to this behaviour)
			for (i=min; i<max; i++)
			{
				if ( 0 == (i-min) % num_thumbs_page )
					thumbs_div += "<tr>";
				// echo the image link
				thumbs_div += '<td><table class="wpig_thumb_box">';
				thumbs_div += '<tr><td>';
				thumbs_div += '<a class="supernote-hover-tooltip" onmouseover="changeTooltip(' + "'" + escape(ajax_gallery[id]['images'][i]['title']) + "', '";
				if (0 != ajax_gallery[id]['images'][i]['imgdesc'].length)
				{
					thumbs_div += wpig_lang['desc'] + ' ';
					thumbs_div += escape(ajax_gallery[id]['images'][i]['imgdesc']);
				}
				thumbs_div += "');" + '"';
				thumbs_div += ' href="javascript:;" hrefl="' + ajax_gallery[id]['images'][i]['imgpath'] + '" rel="lightbox[gallery]" thumbsrc="' + ajax_gallery[id]['images'][i]['thumbsrc'] + '">';
				thumbs_div += '<img class="wpig_thumb_image" src="' + ajax_gallery[id]['images'][i]['thumbsrc'] + '" />';
				thumbs_div += '</a>';
				thumbs_div += '</td></tr>';
				thumbs_div += '</table></td>';
				if ( 0 == (i+1-min) % num_thumbs_page )
					thumbs_div += '</tr>';
			}
			// close final tr tag
			if ( 0 != (i-min) % num_thumbs_page )
				thumbs_div += '</tr>';
			thumbs_div += '</table>';

			Element.setInnerHTML('thumbs_div', thumbs_div);
			th_min = min;
			th_max = max;
			
			// get nav bar
			getBlockNav(id);
			
			// start lightbox
			initLightbox();
		}
	}
	
	function closeContentWin()
	{
		Element.hide('wpig_content');
		new Effect.Fade('wpig_content_bg', { duration: 0.2});
		showSelectBoxes();
		
		//clear thumbs div
		Element.setInnerHTML('thumbs_div', '');
		
		active_id = -1;
	}
	
	function zero(num)
	{
		if (num < 10)
			return "0" + num;
		else
			return num;
	}