var $$ = $.fn;

$$.extend({
    SplitID: function(){
        return this.attr('id').split('-').pop();
    },
    
    Slideshow: {
        Ready: function(){
            $('span#Play input').hide();
			var $slides = $('div.tmpSlide').length;
			if( $slides > 1 ) {
				$('div.tmpSildeshowControl').css('visibility','visible');
				$('#tmpSlideshowControls').css('background-color','#555');
			} else {
				$('#tmpSlideshowControls').empty();
			}
			
            $('div.tmpSlideshowControl').hover(function(){
                $(this).addClass('tmpSlideshowControlOn');
            }, function(){
                $(this).removeClass('tmpSlideshowControlOn');
            }).click(function(){
                $$.Slideshow.Interrupted = true;
				$$.Slideshow.d = new Date();
				$$.Slideshow.LoopEnds = this.d.getTime() + 11000;
				$('span#Pause input').hide();
                $('span#Play input').show();
                
                $('div.tmpSlide').hide();
                $('div.tmpSlideshowControl').removeClass('tmpSlideshowControlActive');
                
                $('div#tmpSlide-' + $(this).SplitID()).show()
                $(this).addClass('tmpSlideshowControlActive');
            });
            
            
            $('span#Pause input').click(function(){
				var dd = new Date();
				var rightNow = dd.getTime();
				if($$.Slideshow.remainingTime==11000) $$.Slideshow.remainingTime = $$.Slideshow.LoopEnds - rightNow;
				//alert($$.Slideshow.remainingTime);
                $$.Slideshow.Interrupted = true;
				$$.Slideshow.PressedPause = true;
                $('span#Pause input').hide();
                $('span#Play input').show();
            });
            
            $('span#Play input').click(function(){
				//for demo uncomment the line below
				//alert($$.Slideshow.remainingTime);
                $$.Slideshow.Interrupted = false;
                $('div.tmpSlide').hide();
                $('div.tmpSlideshowControl').removeClass('tmpSlideshowControlActive');
                //$$.Slideshow.Counter = 1;
				if($$.Slideshow.PressedPause) $$.Slideshow.Counter--;
				$$.Slideshow.PressedPause = false;
				$$.Slideshow.AutoPlay = false;
                $$.Slideshow.Transition();
                $('span#Play input').hide();
                $('span#Pause input').show();
            });
            
            this.Counter = 1;
			this.remainingTime = 11000;
            this.Interrupted = false;
            this.PressedPause = false;
			this.AutoPlay = true;

            var $boxes = '';
            var $boxcounter = 0;
            $('div.tmpSlide h4').each(function(){
                $boxcounter++;
                //$boxes += '<div class="tmpSlideshowControl" id="tmpSlideshowControl-' +$boxcounter+ '" title="' + $(this).text() + '"><span>'+$boxcounter+'</span></div>\n';			
                $boxes += '<div class="tmpSlideshowControl" id="tmpSlideshowControl-' + $boxcounter + '" title="' + $(this).text() + '"><span>&nbsp;</span></div>\n';
                $('div#tmpSlideshowBoxes').html($boxes);
            });
            
            
            $('div.tmpSlideshowControl').hover(function(){
                $(this).addClass('tmpSlideshowControlOn');
            }, function(){
                $(this).removeClass('tmpSlideshowControlOn');
            }).click(function(){
				//var dd = new Date();
				//var rightNow = dd.getTime();
				//if($$.Slideshow.remainingTime==11000) $$.Slideshow.remainingTime = $$.Slideshow.LoopEnds - rightNow;
				//alert($$.Slideshow.remainingTime);
                $$.Slideshow.remainingTime=11000;
				
				$$.Slideshow.Interrupted = true;
                $('span#Pause input').hide();
                $('span#Play input').show();
                
                $('div.tmpSlide').hide();
                $('div.tmpSlideshowControl').removeClass('tmpSlideshowControlActive');
                
                $('div#tmpSlide-' + $(this).SplitID()).show()
				$$.Slideshow.Counter = $(this).SplitID();
                $(this).addClass('tmpSlideshowControlActive');
            });
            this.Transition();
        },
        
        
        Transition: function(){
        	clearTimeout('$$.Slideshow.Transition();');
            if (this.Interrupted) {
                return;
                
            }
            
            this.Last = this.Counter - 1;
            var $slides = $('div.tmpSlide').length;
            
            if (this.Last < 1) {
                this.Last = $slides;
            }
            
            $('div#tmpSlide-' + this.Last).fadeOut('slow', function(){
                $('div#tmpSlideshowControl-' + $$.Slideshow.Last).removeClass('tmpSlideshowControlActive');
                $('div#tmpSlideshowControl-' + $$.Slideshow.Counter).addClass('tmpSlideshowControlActive');
                if ($$.Slideshow.AutoPlay) {
					$('div#tmpSlide-' + $$.Slideshow.Counter).fadeIn('slow');
				} else {
					$('div#tmpSlide-' + $$.Slideshow.Counter).show();
				}
                $$.Slideshow.AutoPlay = true;
                $$.Slideshow.Counter++;
                
                if ($$.Slideshow.Counter > $slides) {
                    $$.Slideshow.Counter = 1;
                }

            });
			
			if ($slides <= 1) {
				$('span#Pause input').hide();
				$('span#Play input').hide();
				return;
			}
			else {
			
				var dd = new Date();
				var rightNow = dd.getTime();
				var loopTime = $$.Slideshow.remainingTime;
				
				if (rightNow < $$.Slideshow.LoopEnds) {
					$$.Slideshow.Interrupted = true;
					setTimeout('$$.Slideshow.Interrupted = false;', $$.Slideshow.LoopEnds - rightNow + 100);
					$$.Slideshow.d = new Date();
					$$.Slideshow.LoopEnds = this.d.getTime();
					$$.Slideshow.LoopEnds += loopTime;
					setTimeout('$$.Slideshow.Transition();', loopTime);
				}
				else {
					$$.Slideshow.d = new Date();
					$$.Slideshow.LoopEnds = this.d.getTime();
					$$.Slideshow.LoopEnds += loopTime;
					setTimeout('$$.Slideshow.Transition();', loopTime);
				}
				$$.Slideshow.remainingTime = 11000;
			}
        }
        
    }
});

$(document).ready(function(){
   	$$.Slideshow.Ready();
});


