$(document).ready(function() { 
	$("ul.css-tabs").tabs("div.css-panes > div");
	if($("#featured > ul").length > 0){
		$("#featured > ul").tabs({fx:{opacity: "toggle"}}).tabs("rotate", 10000, true);
	}
	
	$("#species_query").autoSuggest("process/suggest.php", {
		selectionLimit: 1, 
		minChars: 2, 
		selectedItemProp: "name", 
		searchObjProps: "name", 
		asHtmlID: "species", 
		resultClick: searchspecies,
		startText: "start typing species name...",
		emptyText: "no matching species"
	});
	
	
	if($('#logs').length > 0){
	
		$.jheartbeat = {

			options: {
				url: "editors/update-logs.php",
				delay: 10000
			},
			
			beatfunction:  function(){
				$("#logs").fadeIn();
			},
			
			timeoutobj:  {
				id: -1
			},

			set: function(options, onbeatfunction) {
				if (this.timeoutobj.id > -1) {
					clearTimeout(this.timeoutobj);
				}
				if (options) {
					$.extend(this.options, options);
				}
				if (onbeatfunction) {
					this.beatfunction = onbeatfunction;
				}

				this.timeoutobj.id = setTimeout("$.jheartbeat.beat();", this.options.delay);
			},

			beat: function() {
				$("#logs").load(this.options.url);
				this.timeoutobj.id = setTimeout("$.jheartbeat.beat();", this.options.delay);
				this.beatfunction();
			}
		};
		
	$.jheartbeat.set();
	}
	$('#register').validate({
		rules: {
			firstname: "required",
			secondname: "required",
			postcode: {
				required: true,
				minlength: 3
			},
			email: {
				required: true,
				email: true
			}
		},
		messages: {
			firstname: "Please enter your first name",
			secondname: "Please enter your second name",
			postcode: {
				required: "Please enter your postcode so we can work out your local area",
				minlength: "The postcode must consist of at least 3 characters"
			},
			email: {
				required: "Please enter a valid email address to sign up with",
				minlength: "The postcode must consist of at least 3 characters"
			}			
		}
	});
	$('#garden-form').validate({
		rules: {
			house: "required",
			street: "required",
			postcode1:"required",
			postcode2: "required"
		},
		messages: {
			house: "Please enter your house number or name",
			street: "Please enter the street this garden is on",
			postcode1: {
				required: "Please enter the first part of the postcode",
				minlength: "The postcode must consist of at least 3 characters"
			},
			postcode2: {
				required: "Please enter the second part of the postcode, gardens without full postcodes cannot be listed here",
				minlength: "The postcode must consist of at least 3 characters"
			}			
		}
	});
	
	$('#wallform').bind('submit', function() {
        $(this).ajaxSubmit({
            target: '#wall-messages',
			success: clearWallForm
        });
        return false;
    });

	if($('#blog-panel').length > 0)
	 {
		 $('#blog-panel').bxSlider({
			displaySlideQty: 1,
			moveSlideQty: 1,
			auto: true,
			autoControls: false,
			autoHover: true,
			pager: true,
			easing: "jswing",
			speed: 1200,
			pause: 8000,
			controls: false,
			pagerSelector:"#bxpager"
		});
	}
	$('.follow-form').submit(function() { 
		var options = {
			target:  '#followstatus', 
			success: closeFacebox
		}; 
        $(this).ajaxSubmit(options);
        return false; 
    });
	
	initpage();
	 
});

function searchspecies(){
	$('.species-form').submit();
}

$(document).bind("reveal.facebox", function(){
	$('.follow-form').submit(function() { 
		var options = {
			target:  '#followstatus', 
			success: closeFacebox
		}; 
        $(this).ajaxSubmit(options);
        return false; 
    });
	
	$('.deletemsg').click(function(e) {
		e.preventDefault();
		var u = $(this).attr('href').split("=");
		var msg_id = u[1];
		var garden = u[2];
		$('#wall-messages').load("process/delete-note.php?msg_id=" + msg_id + "&garden=" + garden, showWall);	
	});
	
}); 

function initpage(){
	//hide anything with class=hidden
	$('.hidden').hide();	
	if($('textarea#copy').length > 0){
		$( 'textarea#copy' ).ckeditor({forcePasteAsPlainText : true});
	}
	$('#top-link').topLink({
		min: 300,
		fadeSpeed: 500
	});
	$('#top-link').click(function(e) {
		e.preventDefault();
		$.scrollTo(0,300);
	});
	$('.checkbox-list').click(function(){
		$(this).toggleClass('selected');
		$(this).toggleCheckboxes(); 
	});
	//mark all facebox links as such
	$('a[rel*=facebox]').facebox();
	
	function showTab(tab){
		var api = $('ul.css-tabs').data('tabs');
		api.click(tab);
		$('div.pane').localScroll({
			duration:500,
			hash:true
		});
	}
	$('a.revealer').click(function(e) {
		e.preventDefault();
		$(this.hash).slideToggle("slow");
		$(this).toggleClass("open");
		return false;
	 });

	if($('#garden-photos').length > 0)
	{	
		/*Galleria.loadTheme('/js/galleria/themes/classic/galleria.classic.js');
		
		$('#garden-photos').galleria(
		{
			extend: function(options) {


				// listen to when an image is shown
				this.bind(Galleria.IMAGE, function(e) {


					// lets make galleria open a lightbox when clicking the main image:
					$(e.imageTarget).click(this.proxy(function() {
					   this.openLightbox();
					}));
				});
			}
		});*/
	}
	var adminTab = {          
        speed:300,
        containerWidth:$('.admin-nav').outerWidth(),
        containerHeight:$('.admin-nav').outerHeight(),
        tabWidth:$('.admin-tab').outerWidth(),    
        init:function(){
			$('.admin-nav').css('height',adminTab.containerHeight + 'px');      
            $('a.admin-tab').click(function(event){
                if ($('.admin-nav').hasClass('open')) {	
					$('.admin-nav').animate({left:'-' + adminTab.containerWidth}, adminTab.speed).removeClass('open');
                } else {
                    $('.admin-nav').animate({left:'0'},  adminTab.speed).addClass('open');
                }
                 event.preventDefault();
            });
        }
    };
	//initialise the admin tab
    adminTab.init();
	/*more blog posts*/
	$('.load_more').live("click",function() {
		var last_msg_id = $(this).attr("rel");
		if(last_msg_id != 'end'){ 

		$.ajax({
		type: "POST",
		url: "process/blog-more.php",
		data: "lastmsg="+ last_msg_id,
		beforeSend: function() { 
		$('a.load_more').replaceWith('<div class="page-copy" style="text-align:center"><img class="loader" src="images/6-1.gif" alt="loading more" /></div>');
		 },
		success: function(html){
			$("#more-posts").remove();
			$("#internal-content").append(html);
			update_disqus();
		}
		});
		 }
		return false;
	});
	/*more gardens*/
	$('.load_more-gardens').live("click",function() {
		var last_id = $(this).attr("rel");
		if(last_id != 'end'){ 
			$.ajax({
			type: "POST",
			url: "process/gardens-more.php",
			data: "last_id="+ last_id,
			beforeSend: function() { 
			$('a.load_more-gardens').replaceWith('<div class="page-copy" style="text-align:center"><img class="loader" src="images/6-1.gif" alt="loading more" /></div>');
			 },
			success: function(html){
				$("#more-posts").remove();
				$("#my-gardens").append(html);
			}
			});
		 }
		return false;
	});
};


function clearWallForm(){
	$('#wallform > textarea').val('');
	$('a.revealer').toggleClass("open");
	$('#wallform').slideToggle();
	initpage();
}

function showWall(){
	$.facebox.close();
	initpage();
}
function closeFacebox(){
	$.facebox.close();
}
function update_disqus(){
    var disqus_shortname = 'ecocentrus';
   oldDsq = document.getElementById('disqusCommentScript'); 
   if(oldDsq) { 
      (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).removeChild(oldDsq); 
   }
    (function () {
        var s = document.createElement('script'); s.async = true;
        s.type = 'text/javascript';
        s.src = 'http://' + disqus_shortname + '.disqus.com/count.js';
        (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
    }());
}

//plugin
jQuery.fn.topLink = function(settings) {
	settings = jQuery.extend({
		min: 1,
		fadeSpeed: 200
	}, settings);
	return this.each(function() {
		//listen for scroll
		var el = $(this);
		el.hide(); //in case the user forgot
		$(window).scroll(function() {
			if($(window).scrollTop() >= settings.min)
			{
				el.fadeIn(settings.fadeSpeed);
			}
			else
			{
				el.fadeOut(settings.fadeSpeed);
			}
		});
	});
};

/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 * @author Ariel Flesler
 * @version 1.4.2
 *
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 */
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);

/**
 * jQuery.LocalScroll - Animated scrolling navigation, using anchors.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 3/11/2009
 * @author Ariel Flesler
 * @version 1.2.7
 **/
;(function($){var l=location.href.replace(/#.*/,'');var g=$.localScroll=function(a){$('body').localScroll(a)};g.defaults={duration:1e3,axis:'y',event:'click',stop:true,target:window,reset:true};g.hash=function(a){if(location.hash){a=$.extend({},g.defaults,a);a.hash=false;if(a.reset){var e=a.duration;delete a.duration;$(a.target).scrollTo(0,a);a.duration=e}i(0,location,a)}};$.fn.localScroll=function(b){b=$.extend({},g.defaults,b);return b.lazy?this.bind(b.event,function(a){var e=$([a.target,a.target.parentNode]).filter(d)[0];if(e)i(a,e,b)}):this.find('a,area').filter(d).bind(b.event,function(a){i(a,this,b)}).end().end();function d(){return!!this.href&&!!this.hash&&this.href.replace(this.hash,'')==l&&(!b.filter||$(this).is(b.filter))}};function i(a,e,b){var d=e.hash.slice(1),f=document.getElementById(d)||document.getElementsByName(d)[0];if(!f)return;if(a)a.preventDefault();var h=$(b.target);if(b.lock&&h.is(':animated')||b.onBefore&&b.onBefore.call(b,a,f,h)===false)return;if(b.stop)h.stop(true);if(b.hash){var j=f.id==d?'id':'name',k=$('<a> </a>').attr(j,d).css({position:'absolute',top:$(window).scrollTop(),left:$(window).scrollLeft()});f[j]='';$('body').prepend(k);location=e.hash;k.remove();f[j]=d}h.scrollTo(f,b).trigger('notify.serialScroll',[f])}})(jQuery);
