/*	<script type="text/javascript">  that tag is there for vi hilighting -- tom*/
/* Pyxy-gallery image-loading script!
   Copyright (c) 2005 by Thomas Whaples
   along with the rest of Pyxy-gallery.

   See the PHP source for details, or visit
   http://fennecfoxen.org/pyxy/gallery
*/
		/* auto-loaded preference stuff */
		var uri = "/images/gallery/07-07-21/gallery.php";
var dir = "./";
var maxH = 60;
var maxW = 120;
var max_per_page = 20;
var pics_per_row = 4;
var show_pic = 1;
var show_url = 0;
var show_date = 0;
var show_size = 0;
var show_res = 1;
var lightbox_path = "";
var lightbox_ver = 0;
var sort = "url";
		/* data for script */
		var pictures;
		var g;
		var start = -1;
		var end = -1;
		var fragid = -1;
		var myAjax;
		var months = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];;
		var oldHideLightbox = function(){};
		function startGallery(){
			if(lightbox_ver)
				initLightbox(); /* it needs to create <div>s and such */
			if(lightbox_ver == 1) {
				oldHideLightbox = hideLightbox; /* this lets us restore the fragment ID after Lightbox closes */
				hideLightbox = function(){ oldHideLightbox(); restoreFragment(); }
				}
			else if(lightbox_ver == 2) {
				oldHideLightbox = function(){ myLightbox.oldEnd() } ;
				myLightbox.oldEnd = myLightbox.end;
				myLightbox.end = function(){ this.oldEnd();	restoreFragment(); }
				}
			g = $("gallery");
			myAjax = new Ajax.Request(uri, {method: 'post', parameters: "act=json", onComplete: loadGallery });
		}
		function loadGallery(res){
			result = eval(res.responseText);
			pictures = result.data;
			if(pictures == undefined) pictures = result;
			if(sort) pictures.sort(sortfunc);
			installNavigation();
			autofrag(); 
			
			if (!myLightbox) myLightbox = new Lightbox();
			else myLightbox.initialize();
		}
		var lastH;
		function loadFragment(){
			var H = document.location.href;
			if(H == lastH) return;
			lastH = H;
			var s = H.split('#');
			if(s.length == 1)
				loadFrom(0);
			else if(s[1] == "")
				loadFrom(0);
			else
				loadFrom(s[1]);

		}
		function autofrag(){
			window.clearTimeout(fragid);
			if(pictures && pictures.length){
				fragid = window.setTimeout(autofrag, 50);
				}
			loadFragment();
		}

		function restoreFragment(){
			var s = document.location.href.split('#');
			var base = s[0];
			var lastpic = s[1] ? s[1].substr(4) : "";
			var spot = -1;
			for(var x = 0; x < pictures.length; x++)
				if(pictures[x].url == lastpic){
					spot = x;
					break;
				}
			spot = spot - (spot % max_per_page);
			if(spot > 0)
				document.location.href = base + "#" + spot;
			else
				 document.location.href = base + "#";
		}
		function runLightbox(pid){  
		/* we may get a fragment ID for a picture from a bookmark.
		   We need to pass Lightbox a fake link. */
			pic = document.createElement("a");
			pic.href = dir + pid; 
			// pic.rel = 'lightbox'; 
			if(lightbox_ver == 1){
				showLightbox(pic);
				}
			else if(lightbox_ver == 2){myLightbox.start(pic);}
		}
		
		function loadFrom(frag){
			/* launch lightbox if appropriate */
			if(frag && frag.substr(0,4) == "show")
				return runLightbox(frag.substr(4));
			
			/* close lightbox if necessary */
			oldHideLightbox();
			frag = parseInt(frag);
			if(frag == Math.NaN) frag = 0;
			if(frag == start) return;
			if(!pictures) return;
			if(pictures.length == 0){
				g.innerHTML = "<br/><br/>No existen fotografias en este directorio.<br/><br/><br/>";
				return;		
			}
			var max = pictures.length;
			var c = 0;
			start =  frag;
			end = frag + max_per_page;
			var htm = "";
			var row = 0;
			for(x = frag; c < max_per_page; x++){
				c++;
				if(x < max){
					var pic = pictures[x];
					var d = new Date();
						d.setTime(pic.mtime * 1000);
					var da = d.getDate() + " " + months[d.getMonth()] + " " + d.getFullYear();
					pic.da = da;
					htm += '<td class="thumb"><a href="' + 
						((lightbox_ver)? ("#show" + pic.url) : (dir + pic.url)) +
							'" title="' + getTitle(pic) + '" id="pic' + pic.url + '" rel="lightbox[]">';
					if(show_pic) htm += getThumb(pic);
					if(show_url) htm += '<br/>' +  pic.url;
					htm += '<\/a>';
					if(show_date) htm += '<br/>' + da;
					if(show_size) htm += '<br/>' + getsize(pic.filesize);
					if(show_res) htm += '<br/>' + pic.width + 'x' + pic.height;
					htm += '</td>';
				} else if(row) { 
					htm += '<td class="thumb"></td>';
				}
				if(!(c % pics_per_row))
					if(x < max){
						htm += "<\/tr><tr>";
						row++;
					} else break;
			}
			htm = "<table><tr>" + htm + "<\/tr><\/table>";
			g.innerHTML = htm;
			updateNav();
		}
		function getThumb(pic){
			return '<img src="' + uri + '?act=resize&amp;pic=' + pic.url + '" ' +
					' width="' + pic.twidth + '" height="' + pic.theight + '" ' + 
					' title="' + getTitle(pic) + '" alt="' + pic.url + '"/>';
		}
		function getTitle(pic){
			return "Image: " + pic.url + " " +
				(pic.da ? "(" + pic.da  + ") " : "") + 
				"[" + pic.width + 'x' + pic.height + ", " + getsize(pic.filesize) + ']';
		}
		function getsize(size){			
			if(size < 1000)
				return size + " bytes";
			if(size < 1000000)
				return (Math.round(size / 100) / 10) + " KB";
			if(size < 10000000)
				return (Math.round(size / 100000) / 10) + " MB";
			return (Math.round(size / 100000000) / 10) + " GB"; // eek
		}
		
		function installNavigation(){
			var ns = document.getElementsByClassName('navNP');
			var i;
			for(i = 0; i < ns.length; i++){	makeNavNP(ns[i]);}
			ns = document.getElementsByClassName('nav123');
			for(i = 0; i < ns.length; i++){ makeNav123(ns[i]);}
		}

		function makeNavNP(el){
			prev = document.createElement('a');
			prev.className = "navPrev";
			prev.innerHTML = "Fotos Anteriores <<";
			prev.onclick = autofrag;
	
			next = document.createElement('a');
			next.className = "navNext";
			next.innerHTML = "> Mas Fotos";
			next.onclick = autofrag;

			last = document.createElement('a');
			last.className = "navLast";
			last.innerHTML = ">> Ultimas Fotos";
			last.onclick = autofrag;
			lasti = (pictures.length - (pictures.length %  max_per_page));
			if(lasti == pictures.length) lasti -= max_per_page;
			last.href = "#" + lasti;

		
			first = document.createElement('a');
			first.className = "navFirst";
			first.innerHTML = "Primeras Fotos <<<";
			first.onclick = autofrag;
			first.href = "#";
			
			el.innerHTML = "";
			el.appendChild(first);
			el.appendChild(prev);
			el.appendChild(next);
			el.appendChild(last);
			//updateNav(); // not ready to update yet
		}
		function updateNav(){
			var i;
			nexti = end;
			if(nexti > pictures.length) nexti -= max_per_page;
			previ = start - max_per_page;
			if(previ < 0) previ = 0;

			var nexts = document.getElementsByClassName('navNext');
			for(i = 0; i < nexts.length; i++){
				nexts[i].href = "#" + nexti;
			}
			
			var prevs = document.getElementsByClassName('navPrev');
			for(i = 0; i < prevs.length; i++){
				prevs[i].href = "#" + previ;
			}
			
			var nums =  document.getElementsByClassName('navNum');
			for(i = 0; i < nums.length; i++){
				if(nums[i].hid == start){
					nums[i].innerHTML = "<strong>" + nums[i].saveHTML + "</strong>";
				} else {
					nums[i].innerHTML = nums[i].saveHTML;
				}
			}
			
		}

		function makeNav123(el){
			var c;
			var n = 1;
			for(c = 0; c < pictures.length; c += max_per_page){
				var num = document.createElement('a');
				num.className = "navNum";
				num.innerHTML = num.saveHTML =  'GALERIA# ['+(n++)+']';
				num.href = "#" + c;
				num.hid = c;
				num.onclick = autofrag;
				el.appendChild(num);
				el.appendChild(document.createElement('wbr')); // for spacing for linebreaks
			}
		}

	function sortfunc(a,b){
		if(a[sort] == b[sort]) return 0;
		return (a[sort] < b[sort]) ? -1 : 1;
	}
	// -->
//	</script>
