function SlideShow(){
    this.images = new Array();
    this.bigImages = new Array();
    this.listItems = new Array();
    this.selected;
    var show = this;
    show.stop = false;
    var self = this;
    var listWidth = 0;
    var leftOffset = 0;
    var autostart = false;

  //Left
    this.left = function(){
        var last = this.images.pop();
        this.images.unshift(last);
        
        var lastBig = this.bigImages.pop();
        this.bigImages.unshift(lastBig);

        var thumbnailWidth = $("#thumbnails li")[this.images.length - 1].offsetWidth;
        //$("#thumbnails li").animate({left: thumbnailWidth}, "slow");
        $("#thumbnails li").queue(function(){
            $("#thumbnails li").replaceWith(null);
            show.render("#thumbnails");
        });
    }

  //Right
    this.right = function(){
        var first = this.images.shift();
        this.images.push(first);
        
        var firstBig = this.bigImages.shift();
        this.bigImages.push(firstBig);

        var thumbnailWidth = $("#thumbnails li")[0].offsetWidth;
        $("#thumbnails li").animate({left: -thumbnailWidth}, "slow");
        $("#thumbnails li").queue(function(){
            $("#thumbnails li").replaceWith(null);
            show.render("#thumbnails");
        });
    }

    this.markSelected = function(thumbnail){
         $("#bigimage img").attr("src", this.bigImages[this.selected]);
         $("#thumbnails img").removeClass("selected");
         $("#thumbnails img").addClass("normal");
         $(thumbnail).removeClass("normal");
         $(thumbnail).addClass("selected");
    }

    //Render 
        this.render = function(container){
        listWidth = 0;
        //alert(this.images[1].height);
        for(var i = 0; i < this.images.length; i++){
            var li = document.createElement("li");
            li.setAttribute("id", i);
            this.listItems[i] = li;
            $(this.listItems[i]).html(this.images[i]);
            if(leftOffset === 0)
            {
              this.setImageWidth($('img', $(this.listItems[i])));
            }
        }
        //$(this.listItems).hide();
        
        $(container).append(this.listItems);
        
        self.selected = Math.ceil(self.images.length / 2);
        self.markSelected($("#"+ self.selected + " img"));
        $("#thumbnails img").click(function(){
            show.selected = this.parentNode.id;
            show.markSelected(this);
        });
        
		    if(show.stop != true){
		      $('#play').trigger('click');
		    }
    }
   
    this.setImageWidth = function($image){
      var j=parseInt($image.parent().attr('id'));
      var bla=70;
      if(self.images[j].width){
	            var aspect = self.images[j].height / self.images[j].width; 
	             var width = Math.round(bla / aspect); 
	   
	             $image.css("height", bla + 'px').
	                      css("width", width + 'px').
	                      removeClass("selected").
	                      addClass("normal");
	                      listWidth = listWidth + width + 10;
	         //$("#thumbnails").css("left", '0px');
	             if(j==self.images.length-1)
	             {
	               $("#thumbnails").css("width", listWidth);
	               leftOffset = 250 - listWidth/2;
                 $("#thumbnails").css("left", leftOffset);
                 if(show.autostart === true){
                   // alert('autostart');
                   $('#play').trigger('click');
                  }
                  self.selected = Math.ceil(self.images.length / 2);
                  self.markSelected($("#"+ self.selected + " img"));
               }
	          }
            else{
              setTimeout(function(){self.setImageWidth($image);}, 500);
            }
          //$(self.listItems).show(); 
    }
    //Preload Images
    this.preloadImages = function(images){
        for(var i = 0; i < images.length; i++){
            this.images[i] = new Image();
            this.images[i].src = images[i].downloadurl + "&ix=1"; 
            this.bigImages[i] = images[i].downloadurl;
            
        }
        this.render("#thumbnails");
        
    }
    
  //Get Ajax Request
    this.getAjaxRequest = function(wd, gallery){
        $.ajax({
           // url: "php/connector.php",
          url: sUrl + "app/gallery/getJson",
            data:"wd="+ wd +"&gallery="+ gallery,
            timeout:10000,
            success:function(message){
                var json = eval(message);
                show.preloadImages(json.files);
            }
        });
    }

    this.animate = function(){
         $("#pause").click(function(){
            show.stop = true;
         });

        var first = show.images.shift();
        show.images.push(first);
        
        var firstBig = this.bigImages.shift();
        this.bigImages.push(firstBig);
        
        var thumbnailWidth = $("#thumbnails li")[show.images.length - 1].offsetWidth;
   
        $("#thumbnails li").animate({left: -thumbnailWidth}, 5000);

        $("#thumbnails li").queue(function(){
           $("#thumbnails li").replaceWith(null);
           show.render("#thumbnails");
           /*if(show.stop == false){
               // show.animate();
           }*/
        }); 
    }
    
    //Start
    this.start = function(wd, gallery){
        this.getAjaxRequest(wd, gallery);
        $("#left").click(function(){
            show.stop = true;
            show.left();
        });
        $("#right").click(function(){
            show.stop = true;
            show.right(); 
        }); 
        $("#play").click(function(){
            show.stop = false;
            show.animate();
        });
        // $("#thumbnails").css("left", '-2000px');
    }
}