/**
 * @author dimitriebert
 */

var jq_Callback = {

        initCallback: function(carousel){
			jq_Callback.carousel = carousel;
			jq_Callback.autoPlay = 1;
			jq_Callback.current = 0;
		    jQuery.each([carousel.buttonPrev,carousel.buttonNext,carousel.clip], function(){
				this.bind('click', function() {
					carousel.options.scroll = 1;
					jq_Callback.unsetHover($('.li_image_hover'));
			       // carousel.stopAuto();
					jq_Callback.autoPlay = 0;
				}).hover(function() {
					carousel.options.scroll = 1;
			        //carousel.stopAuto();
					jq_Callback.autoPlay = 0;
			    }, function() {
					carousel.options.scroll = 5;
			        //carousel.startAuto();
					jq_Callback.autoPlay = 1;
			    });
			});

			$('ul#mycarousel .pic').each(function(){
				$(this).attr('rel', $(this).attr('src'));
			});

			$('.li_image').mouseover(function() {
				jq_Callback.setHover(this);
			}).mouseout(function() {
				jq_Callback.unsetHover(this);
			}).click(function(e) {
				e.preventDefault();
				jq_Callback.setCurrent(this);
			});


			$('.gallery_imgbox img').addClass('firstimage');
			var secondimg = $('.gallery_imgbox img').clone(true);
			secondimg.insertAfter('.gallery_imgbox img');
			secondimg.removeClass('firstimage');
			secondimg.addClass('secondimage');

			jq_Callback.first_li = $('ul#mycarousel li:first-child');
			//jq_Callback.setHover(jq_Callback.first_li);
			jq_Callback.setCurrent(jq_Callback.first_li);
			
			setTimeout('jq_Callback.autoPlayAction()', 15000); //3000
		},

        itemVisibleInCallback: function(carousel, element){
			$(element).addClass('li_image_visible');
		},
        itemVisibleOutCallback: function(carousel, element){
			$(element).removeClass('li_image_visible');
		},

		setCurrent: function(element){
			if ($('.li_image_active').length) {
				$('.li_image_active img').attr('src', $('.li_image_active img').attr('rel'));
				$('.li_image_active').removeClass('li_image_over').addClass('li_image');
	            $('.li_image_active').removeClass('li_image_active');
	        }

			$(element).addClass('li_image_active');
			$(element).find('.pic').attr('src', $(element).children('.source_sw').html());
			
/*
			$('.gallery_imgbox img').fadeOut('slow',function(){
				$('.gallery_imgbox img').attr('src', $(element).children('.source').html());
				$('.gallery_imgbox img').fadeIn('slow');

				$('div.gallery_text').empty();
				$('div.gallery_text').append($(element).children('div.body_text').html());
				
			});
*/			
			var firstimg = $('.gallery_imgbox .firstimage');
			var secondimg = $('.gallery_imgbox .secondimage');
			secondimg.attr('src', $(element).children('.source').html());
			
			firstimg.fadeOut('slow',function(){
				secondimg.removeClass('secondimage');
				secondimg.addClass('firstimage');
				firstimg.removeClass('firstimage');
				firstimg.addClass('secondimage');
				firstimg.show();
			});
			

			$('div.gallery_text').empty();
			$('div.gallery_text').append($(element).children('div.body_text').html());



		},

		setHover: function(element){
			if($('.li_image_hover').length){
				jq_Callback.unsetHover($('.li_image_hover'));
			}
			klick = false;
			$('div.content_textbox').empty();
			$(element).removeClass('li_image').addClass('li_image_over');
			ttLeft = $(element).offset().left - 190;
			ttTop = $(element).offset().top;
			$('div.content_textbox').append($(element).children('div.box_text').html());
			$('div.content_textbox').css ({
				left: ttLeft,
				top: ttTop
			});
			$('div.content_textbox').show();
			src = $(element).children('.source_sw').html();
			$(element).find('.pic').attr('src', $(element).children('.source_sw').html());
		},

		unsetHover: function(element){
			if (!$(element).hasClass('li_image_active')) {
				$(element).removeClass('li_image_over').addClass('li_image');
				$(element).find('.pic').attr('src', $(element).find('.pic').attr('rel'));
			}
			$('div.content_textbox').hide();
			$(element).removeClass('li_image_over').addClass('li_image');
		},

		autoPlayAction: function(){
			var nextTimeOut = 7000; //4000
			if(jq_Callback.autoPlay){

				nextElement = $('.li_image_active').next('.jcarousel-item');
				if(!nextElement.length){
					nextElement =  jq_Callback.first_li;
				}

				// jq_Callback.setHover(nextElement);
				jq_Callback.setCurrent(nextElement);

				nextNextElement = nextElement.next('.jcarousel-item');
				if(!nextNextElement.length){
					nextNextElement =  jq_Callback.first_li;
				}

				if(!nextNextElement.hasClass('li_image_visible')){

					setTimeout('jq_Callback.unsetHover(nextElement)', nextTimeOut);
					setTimeout('jq_Callback.carousel.next()', nextTimeOut);
					nextTimeOut = 9000; //5000
				} else {
					nextTimeOut = 7000; //3000
				}
			}

			setTimeout('jq_Callback.autoPlayAction()', nextTimeOut);
		}


}


jQuery(document).ready(function() {
	jQuery('#mycarousel').jcarousel({
        vertical: true,
        scroll: 5,
        auto: 0,
        wrap: 'last',
        initCallback: jq_Callback.initCallback,
        itemVisibleInCallback: jq_Callback.itemVisibleInCallback,
        itemVisibleOutCallback: jq_Callback.itemVisibleOutCallback
	});
});
