var slider_speed = 1000;
var animated = false;
var $background = "";
        
        $(window).load(function(){
             $background.show().animate({"opacity":1},1000);
        });

        $(document).ready(function() {
             $background = $("#home-background");
             $background.css({"opacity":0,"zoom":"1"});
        });
	 
            $.fn.infiniteCarousel = function(){
            
                function repeat(str, num){
                    return new Array(num + 1).join(str);
                }
                
                return this.each(function(){
                    var $wrapper = $('> div', this).css('overflow', 'hidden'),
					 $slider = $wrapper.find('> ul'), $items = $slider.find('> li'), $single = $items.filter(':first'), singleWidth = $single.outerWidth(), visible = Math.ceil($wrapper.innerWidth() / singleWidth), // note: doesn't include padding or border
             currentPage = 1, pages = Math.ceil($items.length / visible);
                    
				$pagination_list = $(this).find( '> ul.pagination'),
            
		
			
				$slider.css({
					width:($items.length * (singleWidth+500)) + "px"
				});
				
			
			
            	i= pages;
            
            	while (i-- > 0)
            	{
               $pagination_list.append("<li></li>"); 
           		 }
          
				 $pagination_list.find('> li').filter(':first').addClass("current_page");	
                    
                    
                    // 1. Pad so that 'visible' number will always be seen, otherwise create empty items
                    if (($items.length % visible) != 0) {
                        $slider.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
                        $items = $slider.find('> li');
                    }
                    
                    // 2. Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
                    $items.filter(':first').before($items.slice(-visible).clone().addClass('cloned'));
                    $items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
                    $items = $slider.find('> li'); // reselect
                    // 3. Set the left position to the first 'real' item
                    $wrapper.scrollLeft(singleWidth * visible);
                    
                    // 4. paging function
                    function gotoPage(page){
                   
                        var dir = page < currentPage ? -1 : 1, n = Math.abs(currentPage - page), left = singleWidth * dir * visible * n;
                        
                       if ($('input[id*=TextBox1]').val() != '(an empty string)'){
						slider_speed = $('input[id*=TextBox1]').val();
						}
                        $wrapper.filter(':not(:animated)').animate({
                            scrollLeft: '+=' + left
                        }, parseInt(slider_speed), function(){
                            if (page == 0) {
                                $wrapper.scrollLeft(singleWidth * visible * pages);
                                page = pages;						
                            }
                            else 
                                if (page > pages) {
                                    $wrapper.scrollLeft(singleWidth * visible);
                                    // reset back to start position
                                    page = 1;
                                }
                            $pagination_list.find('li').eq(currentPage-1).removeClass("current_page");
                            currentPage = page;	
							$pagination_list.find('li').eq(currentPage-1).addClass("current_page");

							
                        });
                      
                        return false;
                    }
                    
                    $wrapper.after('<a class="arrow back">&nbsp;</a><a class="arrow forward">&nbsp;</a>');
                    
                    // 5. Bind to the forward and back buttons
                    $('a.back', this).click(function(){
					
						if (animated == false){
						 animated= true;
						slideSwitchBackward();
                        return gotoPage(currentPage - 1);
                        }
                    });
                    
                    $('a.forward', this).click(function(){
						if (animated == false){
						 animated= true;
						slideSwitchForward();
                        return gotoPage(currentPage + 1);
                        }
                    });
                    
                    // create a public interface to move to a specific page
                    $(this).bind('goto', function(event, page){
                        gotoPage(page);
                    });
                });
            };
            
