var F = new(function(){
	
	var t = this;

	this.dim = {
		'w' : 0,
		'h' : 0
	};
	
	this.screen = function(){
		t.dim.w = $(window).width();
		t.dim.h = $(window).height();
	};
	
	this.init = function(options){
		// get page dimensions
		t.screen();

		// initialize slides/sponsor modules if needed
		if($('.slide').size()){ t.slides.init(options); }
		if($('#sponsor_mask').size()){ t.sponsors.init(options); }
		if($('#places_table').size()){ t.places.init(); }
		if($('#news_content').size()){ t.news.init(); }
		if($('#show_event_categories').size()){ t.events.init(); }
		t.parallax.init();
		// prettyfies the edit page link if one
		if($('#editpage').size()){
			if($.browser.mozilla || $.browser.webkit){
				var href = $('#editpage').attr('href');
				$('#editpage').remove();
				$('<a></a>').addClass('fancy').attr({'target':'_blank','href':href,'id':'editpage'}).html('Edit This Page').appendTo('body');
			}else{
				$('#editpage').addClass('normal');
			}
		}
		$('.editexcerpt').live('click', function(e){ try{e.stopPropagation();}catch(err){} });
		// makes clicking on a box click the first link inside.
		$('.article.box, .news-item.box').live('click', function(){
			var href = $(this).find('a:eq(0)').attr('href');
			if(href){ window.location  = href; }
		}).css('cursor', 'pointer');
		// launch photo gallery
		$('a.launch-gallery').live('click', function(){ t.gallery.init($(this).find('img')); });
		$('a.gallery-tag').live('click', function(){ t.gallery.init($(this).parent().find('img')); });
		// inpage links if any
		t.inpage();
		// tile ordering
		t.tileorder();
		// for modal windows
		t.box.init();
		// fix stuff on resizing of window
		$(window).bind('resize', function(){
			t.screen();
			t.box.screen();
			if($('#g_slider').size()){
				t.gallery.screen();
			}
			t.slides.resize();
		});
		// form blur/focus stuff.
		$('#search_term').live('focus', function(){ if($(this).val() == 'search'){ $(this).val(''); } });
		$('#search_term').live('blur', function(){ if($(this).val() == ''){ $(this).val('search'); } });
		$('#email_address').live('focus', function(){ if($(this).val() == 'email address'){ $(this).val(''); } });
		$('#email_address').live('blur', function(){ if($(this).val() == ''){ $(this).val('email address'); } });
		$('#inpage_links_list a').live('click', function(){ t.scroll($(this)); });
		
		/* temporary redirects until we integrate the blackbaud stuff. *
		$('#nav_donate, .donate-link').click(function(e){ 
			e.preventDefault(); 
			window.location = 'https://dnbweb1.blackbaud.com/OPXDONATE/AddDonor.asp?cguid=6374B924%2DD0D5%2D4655%2DBC98%2D66623676DF2C&sTarget=https%3A%2F%2Fdnbweb1%2Eblackbaud%2Ecom%2FOPXDONATE%2Fdonate%2Easp%3Fcguid%3D6374B924%2DD0D5%2D4655%2DBC98%2D66623676DF2C&sid=EE74A89E%2D6EF3%2D42C5%2DBEC6%2D50C8FF0A6589'; 
			try{e.stopPropagation();}catch(err){}
		});
		$('#mail_form').submit(function(e){
			e.preventDefault();
			window.location = 'https://dnbweb1.blackbaud.com/OPXDONATE/AddDonor.asp?cguid=6374B924%2DD0D5%2D4655%2DBC98%2D66623676DF2C&sTarget=https%3A%2F%2Fdnbweb1%2Eblackbaud%2Ecom%2FOPXDONATE%2FThanks%2Easp%3Fcguid%3D6374B924%252DD0D5%252D4655%252DBC98%252D66623676DF2C&sid=D77ECF8B%2D675D%2D4D35%2D949A%2D752913786AFD'; 
			try{e.stopPropagation();}catch(err){}
		});
		/**/
	};

	this.scroll = function(elem){
		var hash = elem.attr('href').substr(1);
		var off = $('#'+hash).offset();
		var top = off.top - 20;
		$('html, body').animate({scrollTop: top+'px'}, 500);
	};
	
	this.ajax = {
		'html' : function(url, data){
			var result = null;
			$.ajax({ url: url, data: data, type: 'POST', dataType: 'html', async: false, success: function(response) {result = response;} });
			return result;
		},
		'json' : function(url, data){
			var result = null;
			$.ajax({ url: url, data: data, type: 'POST', dataType: 'json', async: false, success: function(response) {result = response;} });
			return result;
		}
	};

	this.sponsors = {
		'count' : 0,
		'current' : 0,
		'mask' : 0,
		'maxLeft' : 0,
		'showArrows' : true,
		'dim' : { 'w' : 0, 'h' : 0 },
		'init' : function(options){
			t.sponsors.mask = $('#sponsor_mask').width();
			t.sponsors.count = $('#sponsor_list li').size();
			t.sponsors.dim.w = $('#sponsor_list li:eq(0)').width();
			t.sponsors.dim.h = $('#sponsor_list li:eq(0)').height();
			var totalwidth = t.sponsors.count * t.sponsors.dim.w;
			if(totalwidth <= t.sponsors.mask){
				t.sponsors.showArrows = false;
				$('#next_sponsor, #prev_sponsor').hide();
			}
			t.sponsors.maxLeft = totalwidth - t.sponsors.mask;
			$('#sponsor_list').width(totalwidth+'px');
			$('#prev_sponsor').hide();
			$('#prev_sponsor').live('click', function(){ t.sponsors.backward(); });
			$('#next_sponsor').live('click', function(){ t.sponsors.forward(); });
			t.sponsors.center();
		},
		'center' : function(){
			$('#sponsor_list li img').each(function(){
				var height = $(this).height();
				var diff = t.sponsors.dim.h - height;
				diff = ~~(diff / 2);
				$(this).css('top', diff+'px');
			});
		},
		'slide' : function(index){
			t.sponsors.current = index;
			var left = Math.abs(parseInt(index * t.sponsors.mask));
			if(left > t.sponsors.maxLeft){
				left = t.sponsors.maxLeft;
			}else if(left < 0){
				left = 0;
			}
			$('#sponsor_list').animate({ 'left' : -left+'px' }, 333, 'linear', function(){ t.sponsors.check(); });
		},
		'check' : function(){
			var left = Math.abs(parseInt($('#sponsor_list').css('left')));
			if(left >= t.sponsors.maxLeft){
				$('#next_sponsor').hide();
			}else{
				if(t.sponsors.showArrows){ $('#next_sponsor').show(); }
			}
			if(left == 0){
				$('#prev_sponsor').hide();
			}else{
				if(t.sponsors.showArrows){ $('#prev_sponsor').show(); }
			}
		},
		'forward' : function(){
			var c = t.sponsors.current + 1;
			c = (c >= t.sponsors.count) ? 0 : c;
			t.sponsors.slide(c);
		},
		'backward' : function(){
			var c = t.sponsors.current - 1;
			c = (c < 0) ? t.sponsors.count - 1 : c;
			t.sponsors.slide(c);
		}
	};
	
	this.slides= {
		'count' : 0,
		'current' : 0,
		'timer' : null,
		'interval' : 10000,
		'dim' : { 'w' : 0, 'h' : 0 },
		'init' : function(options){
			options.timer = true;
			t.slides.count = $('.slide').size();
			t.slides.dim.w = $('#slides').width();
			t.slides.dim.h = $('#slides').height();
			t.slides.interval = (typeof(options) == 'object' && typeof(options.interval) != 'undefined' && options.interval) ? options.interval : t.slides.interval;
			var totalwidth = t.slides.count * t.slides.dim.w;
			$('#slide_show').width(totalwidth+'px');
			$('#slide_dots li').live('click', function(){ t.slides.slide($(this).index()); });
			$('#prev_slide').live('click', function(){ t.slides.backward(); });
			$('#next_slide').live('click', function(){ t.slides.forward(); });
			if(typeof(options) == 'object' && typeof(options.timer) != 'undefined' && options.timer){
				setInterval( function(){ t.slides.forward(); }, t.slides.interval);
			}
		},
		'slide' : function(index){
			t.slides.current = index;
			var left = index * t.slides.dim.w;
			t.slides.select(index);
			$('#slide_show').fadeOut('444', function(){ 
				$(this).css('left', -left+'px').fadeIn('444'); 
			});
		},
		'select' : function(index){
			$('.slide, #slide_dots li, #slide_link li').removeClass('selected');
			$('.slide:eq('+index+'), #slide_dots li:eq('+index+'), #slide_link li:eq('+index+')').addClass('selected');
		},
		'forward' : function(){
			var c = t.slides.current + 1;
			c = (c >= t.slides.count) ? 0 : c;
			t.slides.slide(c);
		},
		'backward' : function(){
			var c = t.slides.current - 1;
			c = (c < 0) ? t.slides.count - 1 : c;
			t.slides.slide(c);
		},
		'resize' : function(){
			var s = $('.slide:eq(0)');
			var ss = $('#slide_show');
			if(ss.size()){
				var slide = s.width();
				var left = parseInt(ss.css('left'));
				var remainder = Math.abs(left % slide);
				if(remainder){
					t.slides.dim.w = slide;
					t.slides.dim.h = s.height();
					var totalwidth = t.slides.count * t.slides.dim.w;
					ss.width(totalwidth+'px');
					var totalleft = t.slides.current * t.slides.dim.w;
					ss.css('left', -totalleft+'px')
				}
			}
		}
	};

	this.format = {
		'url' : function(string){
			return encodeURIComponent(string);
		},
		'css' : function(string){
			var newstring = '';
			string = $.trim(string).toLowerCase();
			var l = string.length;
			var pattern = /[a-z0-9]/g;
			for(var i = 0;i<l;i++){
				var ch = string.charAt(i);
				if(pattern.test(ch)){ newstring = newstring +''+ ch; }
			}
			return 's_'+newstring;
		}
	};

	this.inpage = function(){
		if($('#main.inpage-y').size() && $('#main.inpage-y h2').size()){	
			if($('#main_feature').size()){
				$('<div></div>').attr('id','inpage_links').insertAfter('#main_feature');
			}else{
				$('<div></div>').attr('id','inpage_links').prependTo('#main');
			}
			$('<h3></h3>').attr('id','inpagehead').html('Jump To a Section on This Page').appendTo('#inpage_links');
			$('<span></span>').prependTo('#inpagehead');
			$('<ul></ul>').attr('id', 'inpage_links_list').appendTo('#inpage_links');
			$('#main.inpage-y h2').each(function(){
				var text = $(this).text();
				var txt = t.format.css(text);
				$(this).attr('id',txt);
				$('#inpage_links_list').append('<li><a href="#'+txt+'">'+text+'</a></li>');
			});
		}
	};

	this.tileorder = function(){
		if($('.tiles .box.article').size()){
			var orders = [];
			$('.tiles .box.article').each(function(){
				var index = $(this).index();
				var order = t.getTileClasses($(this)).substr(6);
				$(this).attr('id','ind_'+index);
				orders.push(order+'-'+index);
			});
			orders.sort();
			$('<div></div>').attr('id','tmp').css('display','none').appendTo('body');
			
			for(var i=0;i < orders.length;i++){
				var ind = orders[i].split('-')[1];
				var ord = orders[i].split('-')[0];
				$('#ind_'+ind).clone().appendTo('#tmp');
			}
			var neworder = $('#tmp').html();
			$('#order_box').html(neworder);
			$('#tmp').remove();
		}
		
	};

	this.getTileClasses = function(elem){
		return $.trim(elem.attr('class').replace('box','').replace('article','').replace('imaged',''));
	}

	this.box = {
		'init' : function(){
			$('#close_box').live('click', function(e){ t.box.kill(); });
		},
		'gen' : function(){
			if(!$('#overlay').size()){
				$('<div></div>').css({'width':t.dim.w+'px','height':t.dim.h+'px'}).attr('id','overlay').hide().appendTo('body').fadeIn(333);
				$('<a></a>').attr('id', 'close_box').html('').appendTo('#overlay');
			}else{
				$('#overlay').fadeIn(333);
			}
		},
		'kill' : function(){
			$('#overlay').fadeOut(333, function(){ $('#g').remove(); });
		},
		'load' : function(){
			
		},
		'screen' : function(){
			$('#overlay').css({'width':t.dim.w+'px','height':t.dim.h+'px'});
		}
	};

	this.people = {
		'init' : function(){
			$('a.expando').click(function(){
				var disp = $(this).parent().parent().find('.people-sub-group').css('display');
				if(disp == 'none'){
					$('.people-sub-group').slideUp('medium');
					$('.expando').html('+');
					$(this).parent().parent().find('.people-sub-group').slideDown('medium');
					$(this).html('–');
				}else{
					$('.people-sub-group').slideUp('medium');
					$(this).html('+');
				}
			});
		}
	};


	this.map = {
		'container' : 'map',
		'maxWidth' : 300,
		'overlays' : null,
		'markers' : null,
		'path' : '/resources/map/place/',
		'map' : null,
		'maptype' : google.maps.MapTypeId.TERRAIN,
		'icons' : {
			'place' : '/images/map_markers/places.png',
			'event' : '/images/map_markers/events.png'
		},
		'init' : function(options){
			t.map.overlays = new Array();
			t.map.markers = new Array();
			var l = { 'lat' : 47.6059, 'lon' : -122.3297 };
			var zoom = 7;
			if(typeof(options) == 'object'){
				if(typeof(options.center) == 'object' && options.center.lat && options.center.lon){
					l.lat = options.center.lat;
					l.lon = options.center.lon;
				}
				if(typeof(options.zoom) == 'number' && options.zoom > 0 && options.zoom < 19){
					zoom = options.zoom;
				}
				if(typeof(options.path) != 'undefined' && options.path){
					t.map.path = options.path;
				}
				if(typeof(options.container) != 'undefined' && options.container){
					t.map.container = options.container;
				}
				if(typeof(options.maptype) != 'undefined' && options.maptype == 'road'){
					t.map.maptype = google.maps.MapTypeId.ROADMAP
				}
			}
			var center = new google.maps.LatLng(l.lat, l.lon);
			var myOptions = {
				zoom: zoom,
				center: center,
				streetViewControl: false,
				mapTypeId: t.map.maptype
			};
			t.map.map = new google.maps.Map(document.getElementById(t.map.container),myOptions);
		},
		'closeOverlays' : function(){
			var o = t.map.overlays;
			var m = t.map.markers;
			var l = o.length;
			for(var k=0;k<l;k++){
				o[k].close(t.map.map);
			}
		},
		'coords' : function(lat, lon){
			return new google.maps.LatLng(lat, lon);
		},
		'content' : function(title, since, acres, descript, url){
			return '<div class="map-over"><h2><a href="'+t.map.path+url+'">'+title+'</a></h2><p>Since: '+since+'</p><p>Acres: '+acres+'</p><p>'+descript+'</p></div>';
		},
		'eventcontent' : function(title, location, dateof){
			return '<div class="map-over"><h2>'+title+'</h2><p>Location: '+location+'</p><p>Date: '+dateof+'</p></div>';
		},
		'infoWindow' : function(content){
			return new google.maps.InfoWindow({ 'content' : content, 'maxWidth' : t.map.maxWidth });
		},
		'marker' : function(latlng, title, icon){
			return new google.maps.Marker({ 'position' : latlng,  'map' : t.map.map, 'title' : title, 'icon' : icon }); 
		},
		'set' : function(lat, lon, title, since, acres, descript, url){
			var latlng = t.map.coords(lat, lon);
			var content = t.map.content(title, since, acres, descript, url);
			var infoWindow = t.map.infoWindow(content);
			var marker = t.map.marker(latlng,  title, t.map.icons.place);
			t.map.overlays.push(infoWindow);
			t.map.markers.push(marker);
			var r = { 'overlay' : infoWindow, 'marker'  : marker };
			google.maps.event.addListener(r.marker, 'click', function(){ t.map.closeOverlays(); r.overlay.open(t.map.map, r.marker); });
			return r;
		},
		'event' : function(lat, lon, title, location, dateof){
			var latlng = t.map.coords(lat, lon);
			var content = t.map.eventcontent(title, location, dateof);
			var infoWindow = t.map.infoWindow(content);
			var marker = t.map.marker(latlng,  title, t.map.icons.event);
			t.map.overlays.push(infoWindow);
			t.map.markers.push(marker);
			var r = { 'overlay' : infoWindow, 'marker'  : marker };
			google.maps.event.addListener(r.marker, 'click', function(){ t.map.closeOverlays(); r.overlay.open(t.map.map, r.marker); });
			return r;
		}
	};

	this.places = {
		'url' : '/ajax/protected_places',
		'orderby' : 'title',
		'sorting' : 'asc',
		'page' : 1,
		'init' : function(){
			$('#places_table th').addClass('sort');
			$('#places_pagination a').live('click', function(e){
				var href = $(this).attr('href');
				var parts = href.split('/');
				var l = parts.length;
				var page = parts[l - 1]+'';
				page = Math.floor((+page.substr(1)) / 25) + 1;
				$('#places_pagination .page').removeClass('active');
				$('#places_pagination .page-'+page).addClass('active');
				t.places.page = page;
				t.places.get();
				e.preventDefault();
				return false;
			});
			$('#places_table th').live('click', function(e){
				var id = $(this).attr('id').split('_')[1];
				t.places.orderby = id;
				if($(this).hasClass('desc')){
					$('#places_table th').removeClass('desc').removeClass('asc');
					$(this).addClass('asc');
					t.places.sorting = 'asc';
				}else{
					$('#places_table th').removeClass('desc').removeClass('asc');
					$(this).addClass('desc');
					t.places.sorting = 'desc';
				}
				t.places.get();
				e.preventDefault();
				return false;
			});
		},
		'get' : function(){
			var url = t.places.url + '/' + t.places.orderby + '/' + t.places.sorting + '/' + t.places.page;
			var data = t.ajax.json(url, '');
			if(data && typeof(data) == 'object'){
				t.places.display(data);
			}
		},
		'display' : function(data){
			var dl = data.length;
			if(dl){
				$('#places_table tbody').html('');
				for(var i = 0;i < dl;i++){
					var a = (+data[i].acreage);
					$('<tr></tr>').attr('id','tr_'+i).appendTo('#places_table tbody');
					$('<td></td>').html('<a href="/what_we_do/conserve_land/protected_lands/'+data[i].url+'">'+data[i].title+'</a>').appendTo('#tr_'+i);
					$('<td></td>').html(data[i].county).appendTo('#tr_'+i);
					$('<td></td>').html(a.toFixed(1)).appendTo('#tr_'+i);
					$('<td></td>').attr('class','tdc').html(data[i].year).appendTo('#tr_'+i);
				}
			}
		}
	};

	this.parallax = {
		'init' : function(){
			var p1 = $('#plax_1');
			var p2 = $('#plax_2');
			var p3 = $('#plax_3');
			var p4 = $('#plax_4');
			var l1 = 4;
			var l2 = 30;
			var l3 = 55;
			var l4 = 100;
			var off = $('#footer').offset();
			var fheight = 315;
			var pw = $(window).width();
			var pwh = pw / 2;
			var plo = (2200 - pw) / 2;
			$('.plax').css('left',-plo+'px');
			$('#footer').bind('mousemove',function(e){
				var diff = fheight - (fheight - e.layerY);
				if(diff < 0){ diff = 0; }
				var yper = diff / fheight;
				var xper =(pw - e.clientX) / pw;
				if(yper < 0){ yper = 0; }
				if(yper > 1){ yper = 1; }
				if(xper < 0){ xper = 0; }
				if(xper > 1){ xper = 1; }
				var pt1 = l1 * yper;
				var pt2 = l2 * yper;
				var pt3 = l3 * yper;
				var pt4 = l4 * yper; 
				var pl1 = (2 * l4 * xper) - plo;
				var pl2 = (2 * l3 * xper) - plo;
				var pl3 = (2 * l2 * xper) - plo;
				var pl4 = (2 * l1 * xper) - plo;
				p1.css({'left':pl1+'px'});
				p2.css({'left':pl2+'px'});
				p3.css({'left':pl3+'px'});
				p4.css({'left':pl4+'px'});
			});
		}
	};

	this.news = {
		'init' : function(){
			var hash = window.location.hash.substr(1);
			if(hash && $('#news_'+hash).size()){
				var filter = (hash == 'all') ? '*' : '.news-'+hash;
				$('#news_content').isotope({itemSelector : '.news-item',filter : filter,animationEngine: 'css'});
			}
			$('#news_content').isotope({itemSelector : '.news-item',animationEngine: 'css'});
			$('.news-filter').click(function(){
				var id = $(this).attr('id').split('_')[1];
				var filter = (id == 'all') ? '*' : '.news-'+id;
				window.location.hash = id;
				$('#news_content').isotope({itemSelector : '.news-item',filter : filter,animationEngine: 'css'});
			});
		}
	};
	
	this.gallery = {
		'size' : null,
		'current' : null,
		'images' : false,
		'width' : 1000,
		'imageHeight' : 360,
		'init' : function(image){
			var id = 0;
			try{
				id = $(image).attr('id').split('_')[1];
			}catch(e){}
			t.gallery.current = id;
			if($('#gallery_container').size()){
				t.gallery.select(id);
				$('#overlay').fadeIn();
			}else{
				t.screen();
				t.box.gen();
				t.gallery.box();
				t.gallery.get();
				t.gallery.select(id);
			}
			$('.gal-dir').live('click', function(){
				var id = $(this).attr('id').split('_')[1];
				if(t.gallery.dir.hasOwnProperty(id)){ t.gallery.dir[id](); }
			});
			$('.gal-item').live('click', function(){
				var id = $(this).attr('id').split('_')[1];
				t.gallery.select(id);
			});
			
		},
		'box' : function(){
			var gw = ((t.dim.w - 40) > 1000) ? 1000 : t.dim.w - 40;
			var gh = ((t.dim.h - 40) > 900) ? 900 : t.dim.h - 40;
			var gl = ~~((t.dim.w - gw) / 2);
			var bh = gh - 130;
			var ih = bh - 130;
			$('<div></div>').attr({'id':'gallery_container'}).css({'width':gw+'px','height':gh+'px','left':gl+'px'}).appendTo('#overlay');
			$('<div></div>').attr({'id':'gallery_thumbs'}).appendTo('#gallery_container');
			$('<div></div>').attr({'id':'gallery_box'}).css({'height':bh+'px'}).appendTo('#gallery_container');
			$('<div></div>').attr({'id':'gallery_image'}).css({'height':ih+'px'}).appendTo('#gallery_box');
			$('<div></div>').attr({'id':'gallery_descript'}).appendTo('#gallery_box');
			$('<div></div>').attr({'id':'gallery_list'}).appendTo('#gallery_thumbs');
			$('<div></div>').attr({'id':'gallery_image_list'}).appendTo('#gallery_image');
			$('<div></div>').attr({'id':'gallery_descript_list'}).appendTo('#gallery_descript');
			$('<a></a>').addClass('gal-dir').attr('id','gallery_prev').appendTo('#overlay');
			$('<a></a>').addClass('gal-dir').attr('id','gallery_next').appendTo('#overlay');
			t.gallery.width = gw;
			t.gallery.imageHeight = ih;
		},
		'set' : function(){
			if(t.gallery.images){
				var img = t.gallery.images;
				for(var j = 0; j < img.length; j++){
					if(!$('#gal_'+img[j].entry_id).size()){
						var src = img[j].image;
						var thumb = src.replace('images/gallery','images/gallery/_thumb');
						src = src.replace('images/gallery','images/gallery/_full');
						$('<div></div>').attr({'id':'gal_'+img[j].entry_id}).addClass('gal-item').css({'background':"url('"+thumb+"') center center no-repeat"}).appendTo('#gallery_list');
						$('<div></div>').attr({'id':'galimg_'+img[j].entry_id}).addClass('gal-image-item').css({'height':t.gallery.imageHeight+'px','width':t.gallery.width+'px'}).appendTo('#gallery_image_list');
						var image = new Image();
						image.src = src;
						var imgid = 'ii_'+img[j].entry_id;
						image.id = imgid;
						$('<img/>').attr({'src':src,'id':imgid}).appendTo('#galimg_'+img[j].entry_id);
						$('<div></div>').attr({'id':'galdesc_'+img[j].entry_id}).addClass('gal-descript-item').css({'width':t.gallery.width+'px'}).appendTo('#gallery_descript_list');
						$('<h2></h2>').html(img[j]['title']).appendTo('#galdesc_'+img[j].entry_id);
						$('<p></p>').addClass('img-credit').html(img[j]['image-credit']).appendTo('#galdesc_'+img[j].entry_id);
						$('<p></p>').addClass('img-descript').html(img[j]['image-description']).appendTo('#galdesc_'+img[j].entry_id);
					}
				}
			}
		},
		'get' : function(){
			var images = t.ajax.json('/ajax/photo_gallery', '');
			if(Object.prototype.toString.apply(images) === '[object Array]'){
				t.gallery.images = images;
				var ll = images.length * 106;
				var ill = images.length * t.gallery.width;
				t.gallery.size = images.length;
				$('#gallery_list').css({'width':ll+'px'});
				$('#gallery_image_list, #gallery_descript_list').css({'width':ill+'px'});
				t.gallery.set();
			}
		},
		'select' : function(id){
			$('.gal-image-item').hide();
			$('.gal-descript-item').hide();
			$('.gal-item').removeClass('selected');
			$('#galimg_'+id).show();
			$('#gal_'+id).addClass('selected');
			$('#galdesc_'+id).show();
			t.gallery.current = id;
		},
		'dir' : {
			'next' : function(){
				var curIndex = $('#gal_'+t.gallery.current).index();
				var next = (curIndex == (t.gallery.size - 1)) ? 0 : curIndex + 1;
				var id = $('.gal-item:eq('+next+')').attr('id').split('_')[1];
				t.gallery.select(id);
			},
			'prev' : function(){
				var curIndex = $('#gal_'+t.gallery.current).index();
				var prev = (curIndex == 0) ? t.gallery.size - 1 : curIndex - 1;
				var id = $('.gal-item:eq('+prev+')').attr('id').split('_')[1];
				t.gallery.select(id);
			}
		},
		'kill' : function(){
			$('#overlay').fadeOut('fast', function(){ $(this).remove(); });
		},
		'hide' : function(){
			$('#overlay').fadeOut();
		}
	};

	this.events = {
		'init' : function(){
			$('#show_event_categories').live('click', function(){
				var disp = $('#event_categories_list').css('display');
				console.log(disp);
				if(disp == 'none'){
					$('#event_categories_list').slideDown();
					$(this).find('span').html('▾');
				}else{
					$('#event_categories_list').slideUp();
					$(this).find('span').html('▸');
				}
			});
		}
	};
	
	return this;
})();


$(document).ready(function(){
	F.init({});
});

