if(typeof console === "undefined") {
	console = { log: function() { } };
}

var twoday = {
	carousel1: '',
	carousel2: ''
};

/* Carousel functions */

function carousel_initCallback(carousel, state) {
	jQuery('.jcarousel-control a').bind('click', function(event) {
		event.preventDefault();
		var el = jQuery(this);
		jQuery('.jcarousel-control a').removeClass('first-click');
		el.addClass('first-click');
		carousel.scroll(jQuery.jcarousel.intval(el.text()));
		carousel.startAuto(0);
		return false;
	});
	jQuery('.jcarousel-next').bind('click',function(event){
		event.preventDefault();
		carousel.startAuto(0);
		carousel.next();
		return false;
	});
	jQuery('.jcarousel-prev').bind('click',function(event){
		event.preventDefault();
		carousel.startAuto(0);
		carousel.prev();
		return false;
	});
	jQuery('#homepage-features-carousel, #carousel-image, #section-features-carousel').hover(function() { //cannot be carousel.clip because that stops only one carousel
		carousel.stopAuto();
	}, function() {
		carousel.startAuto();
	});
};

function carousel_primary_initCallback(carousel, state) {
	carousel_initCallback(carousel, state);
	twoday.carousel1 = carousel;
	return carousel;
}

function carousel_secondary_initCallback(carousel, state) { 
	carousel_initCallback(carousel, state);
	twoday.carousel2 = carousel;
	return carousel;
}

function featurecarousel_itemVisibleInBefore(carousel, item, idx, state) {
	var static = jQuery('.carousel-caption-static .carousel-caption-toggle');
	static.hide();
}

function featurecarousel_itemVisibleInAfter(carousel, item, idx, state) {
	var caption = jQuery('.carousel-caption', item);
	var clone = caption.clone().show();
	var static = jQuery('.carousel-caption-static .carousel-caption-toggle');
	static.html(clone).stop().fadeIn(600);
	jQuery('.jcarousel-control a').each(
	    function(){
	        var el = jQuery(this);
	        if(parseInt(el.text())== parseInt(jQuery(item).attr('jcarouselindex'))){
	             el.addClass('first-click');
	        }
	        else{
	            el.removeClass('first-click');
	        }
	    }
	);
	carousel.stopAuto();
	carousel.startAuto(); //if carousels are not stopped and restarted after each animation the animation becomes unsynchronized.
}

function featurecarousel_setCaption(carousel, item, idx, state) {
}

function sectioncarousel_itemVisibleInBefore(carousel, item, idx, state) {
	var captions = jQuery('.carousel-caption');
	captions.hide();
}

function sectioncarousel_itemVisibleInAfter(carousel, item, idx, state) {
	var caption = jQuery('.carousel-caption', item);
	caption.fadeIn(600);
	jQuery('.jcarousel-control a').each(
	    function(){
	        var el = jQuery(this);
	        if(parseInt(el.text())== parseInt(jQuery(item).attr('jcarouselindex'))){
	             el.addClass('first-click');
	        }
	        else{
	            el.removeClass('first-click');
	        }
	    }
	);

}


function imagecarousel_itemVisibleOutCallback(carousel, item, i, state) {

}

function imagecarousel_itemVisibleInBefore(carousel, item, i, state, evt) {
    	jQuery('.jcarousel-control a').each(
	    function(){
	        var el = jQuery(this);
	        if(parseInt(el.text())== parseInt(jQuery(item).attr('jcarouselindex'))){
	             el.addClass('first-click');
	        }
	        else{
	            el.removeClass('first-click');
	        }
	    }
	);

 }

function imagecarousel_itemVisibleInAfter() { }

/* accepts a jQuery element */
function featurecarousel(el) {
	var c = el.jcarousel({
		animation: 600,
 		auto: 5,
		buttonNextHTML: '<a href="#" title="Prev"><span>Next</span></a>',
		buttonPrevHTML: '<a href="#" title="Next"><span>Prev</span></a>',
		itemVisibleInCallback: {
			onBeforeAnimation: featurecarousel_itemVisibleInBefore,
			onAfterAnimation:  featurecarousel_itemVisibleInAfter
		},
		initCallback: carousel_primary_initCallback,
		scroll:1,
		wrap: 'both'
	});
}

function featurecarousel_secondary(el) {
	var c = el.jcarousel({
		animation: 600,
 		auto: 5,
		buttonNextHTML: '',
		buttonPrevHTML: '',
		initCallback: carousel_secondary_initCallback,
		scroll:1,
		wrap: 'both'
	});
}

function sectioncarousel(el) {
	el.jcarousel({
 		auto: 5,
		buttonNextHTML: '<a href="#" title="Prev"><span>Next</span></a>',
		buttonPrevHTML: '<a href="#" title="Next"><span>Prev</span></a>',
		itemVisibleInCallback: {
			onBeforeAnimation: sectioncarousel_itemVisibleInBefore,
			onAfterAnimation:  sectioncarousel_itemVisibleInAfter
		},
		initCallback: carousel_initCallback,
		scroll:1,
		wrap: 'both'
	});
} 

function imagecarousel(el) {
	el.jcarousel({
		auto: 0,
		buttonNextHTML: '<a href="#" title="Next"><span>Next</span></a>',
		buttonPrevHTML: '<a href="#" title="Prev"><span>Prev</span></a>',
		itemVisibleInCallback: {
    		onBeforeAnimation:  imagecarousel_itemVisibleInBefore,
    		onAfterAnimation:  imagecarousel_itemVisibleInAfter
		},
		itemVisibleOutCallback: {
			onAfterAnimation: imagecarousel_itemVisibleOutCallback
		},
		initCallback: carousel_initCallback,
		scroll:1,
		wrap: 'both'
	});
}
/* End carousel functions */


/* document.ready */

jQuery(document).ready(function(){
    
    if ( jQuery("#comments-preview").length > 0 ){
		jQuery.scrollTo(jQuery("#comments-preview"));
    }
    
	/* Login */
	jQuery('.login-form-login').hide();
	jQuery('.login-form-control, .login-form-close').live('click',function(event){
		event.preventDefault();
		jQuery('.login-form-login').toggle('fast');
	});

	/* Logout */
	jQuery('#logout-submit').live('click',function(event){
		event.preventDefault();
		jQuery('#logout-form').submit();
	});

	/* Search form */
	jQuery('#keywords').focus(function(){
		if(jQuery(this).attr('value') == 'Search' ){
			jQuery(this).attr('value','');
		}
	}).blur(function(){
		if(jQuery(this).attr('value')==''){
			jQuery(this).attr('value','Search');
		}
	});

	/* Login form positioning in FF 3.0 */
	if(jQuery.browser.mozilla && jQuery.browser.version.substring(0,5) =='1.9.0'){
		jQuery('.login-remember-me label').css('margin-top','5px');
	}
	
	jQuery('.main .entry-list a.entry-image, .carousel-category-image-link').hover(
	    function(){
	        jQuery(this).closest('li').addClass('image-hover-title');
	    },
	    function(){
	        jQuery(this).closest('li').removeClass('image-hover-title');
	    }
	);
	
	jQuery('.carousel-image-link').hover(
	    function(){
	        jQuery('.carousel-caption-hidden').addClass('image-hover-title');
	    },
	    function(){
	        jQuery('.carousel-caption-hidden').removeClass('image-hover-title');
	    }
	);
	
	jQuery('#login-above').click(function(){
	    jQuery.scrollTo(0, 400,{onAfter:function(){jQuery('.login-form-login').toggle('fast');}} );
	    
	});

});

/* Login form functions */
	function login_response(){
		jQuery(".login-form").load(location.href+" .login-form", function(){
			jQuery('#login-form-loading').hide();
			jQuery('.login-form-error').hide();
		});
	}

	function logout_response(){
		jQuery(".login-form").load(location.href+" .login-form", function(){
			jQuery('#login-form-loading, .login-form-login').hide();
		});
	}

	function request(){
		jQuery('.login-form-control, .login-form-login, .login-form-error, #login-form, #logout-form').hide();
		jQuery('#login-form-loading').show();
	}
/* /Login form functions */
