function Carousel(id, interval, loader) {

    this.id = id;
    this.interval = interval;
    this.loader = loader;
    this.slides = null;
    this.current = 0;
    this.timer = null;

    this._ini = function() {

        $(loader).fadeOut();
        this.slides = $(id).children();
        this.slide();
        this.startTiming(); 

    }
    

    this.next = function() {  
	
	   this.endTiming();   
  	   this.slide();
	   this.startTiming();
	
	
    }
    

    this.startTiming = function() {

        $(this).everyTime(this.interval,
        function(i) {
            this.slide();
        });

    }


    this.endTiming = function() {

        $(this).stopTime();

    }      

    this.goTo = function(number){
	                    
	   
		this.endTiming();
		
		 if(number) {
          var number = number - 1;
		  this.current = number;
		  if(this.current < 0){ this.current = 0; }

        }  

		$('td.button').removeClass('pause');
		$('#dot_'+(parseInt(this.current)+1)).addClass('pause');
		         
	    $(this.slides).hide();  
	    $(this.slides[this.current]).show();  
        this.current = this.current +1;
	}


    this.slide = function() {
                                
	    $('td.button').removeClass('pause');
	    $('#dot_'+(parseInt(this.current)+1)).addClass('pause');
                

        $(this.slides[this.current]).show();
        $(this.slides[this.current]).css({
            opacity: 0
        });                

		if(this.current == 0){
		  
			var prev = this.slides.length -1;
		    $(this.slides[prev]).animate({opacity: 0.1},500);
		}

        $(this.slides[this.current]).animate({
            opacity: 1
        },
        2000,
        function() {

            var current = this.id.replace('li_', '');
            current = current - 1;

            var parent = $(this).parent();
            var slides = $(parent).children();

            if (current > 0) {
                var prev = current - 1;
                if ($(slides[prev]).id = !'') {
                    $(slides[prev]).hide();
                }
            }

            if (current == 0) {
                var prev = slides.length - 1;
                $(slides[prev]).animate({opacity: 0},100);
            }

        });

        this.current = this.current + 1;

        if (this.current == this.slides.length) {
            this.current = 0;
        }

    }

}


$(document).ready(function() {

    var carousel = new Carousel('#top_carousel', 5000, '#loader');
    carousel._ini();

    $('#top_carousel').bind('mouseenter',
    function() {
        carousel.endTiming();
    });
    $('#top_carousel').bind('mouseleave',
    function() {
        if ($('#pause').hasClass('pause') == false) {
            carousel.startTiming();
        }
    });
    $('#pause').bind('click',
    function() {

        if ($('#pause').hasClass('pause')) {
            carousel.next();
            $('#pause').removeClass('pause');
        } else {
            carousel.endTiming();
            $('#pause').addClass('pause');
        }
    });  

    $('#buttons_middle td.button').bind('click', function() {   
	   
		carousel.goTo(this.id.replace('dot_',''));
	  
	 });

});

/*
function mycarousel_initCallback(carousel){    
  $('#loader').fadeOut();
  carousel.clip.hover(function() {
	carousel.stopAuto(); 
  },function() { 
   if($('#pause').hasClass('pause') == false){ carousel.startAuto(); } 
  });  

  $('#buttons_middle td.button').bind('click', function() { 
	carousel.scroll(jQuery.jcarousel.intval(this.id.replace('dot_','')));
	return false;
  });    



  $('#carousel_prev').bind('click', function() {   
	carousel.prev();
	return false;
  }); 

  $('#carousel_next').bind('click', function() { 
    carousel.next();
	return false;
  });  	

  $('#pause').bind('click', function() { 

	if($('#pause').hasClass('pause')){
	    carousel.startAuto();           
	    carousel.next();    
		$('#pause').removeClass('pause');
	}else{	
	   	carousel.stopAuto();
		$('#pause').addClass('pause'); 
	}


  });     

 	     




}

function mycarousel_in(carousel,frame){  
	

$(frame).find("div").css({opacity: 0});
$(frame).find("div").animate({opacity: 1},1000,function() { });   
} 

function mycarousel_out(carousel,frame){ 

$(frame).find("div").animate({
	opacity: 0
	},
	1000,
	function() { 
	carousel.startAuto();  
	});  

}


$(document).ready(function(){  

	
    $('#top_carousel').jcarousel({ 
	 	    scroll: 1,
	 	    auto: 5,
			wrap: 'both',
			animation: 0,
		    initCallback: mycarousel_initCallback,
			itemVisibleInCallback: mycarousel_in,
		    itemVisibleOutCallback: { onBeforeAnimation: mycarousel_out, onAfterAnimation: null } ,
		 
			itemFirstInCallback: function(carousel,item,i){  
				$('#buttons_middle td').removeClass('full');
				$('#dot_'+i).addClass('full'); 
			},
			buttonNextHTML: null,
	        buttonPrevHTML: null
       });


});   
*/

