

var ShineGallery = {
   imagelist:null,
   largeImageContainer: null,
   maxthumbDim : 120,
   
   init:function(){
      if($('ShineGallery')){
         //console.log($('ShineGallery').down('.imageList').childElements());  
         ShineGallery.imagelist = $('ShineGallery').down('.imageList').childElements();
         
         ShineGallery.largeImageContainer = $('ShineGallery').down('.imageContainer');
      
         ShineGallery.generateThumbs();
         ShineGallery.SetPrimeConditions();
      }
   },
   generateThumbs:function(){
      ShineGallery.imagelist.each(function(elem){
        elem = elem.down("img");
         var dimensions = elem.getDimensions();
         if (dimensions.width > dimensions.height){
            // width longest
            var sizeRatio = dimensions.width / ShineGallery.maxthumbDim;
            dimensions.height = parseInt(dimensions.height/sizeRatio);
            dimensions.width = parseInt(dimensions.width/sizeRatio);
         }
         else{
            // height longest
            var sizeRatio = dimensions.height / ShineGallery.maxthumbDim;
            dimensions.height = parseInt(dimensions.height/sizeRatio);
            dimensions.width = parseInt(dimensions.width/sizeRatio);
         }
         elem.setStyle(dimensions);
         elem.observe("click", ShineGallery.clickOnThumb);
         });
      
      },
   clickOnThumb:function(eventObject){
      //console.log(eventObject.element());
      var imagethumb = eventObject.element();
      ShineGallery.showLargeImage(imagethumb);
      },
      
   showLargeImage:function(imagethumb){
      if(ShineGallery.largeImageContainer.down("img")){
        ShineGallery.largeImageContainer.down("img").fade();
      }
      
      var src = imagethumb.readAttribute("src");
      var largeImage = new Element("img");
      largeImage.setAttribute("src",src);
      largeImage.hide();
      //console.log(ShineGallery.largeImageContainer);
      ShineGallery.largeImageContainer.update(largeImage);
      largeImage.appear();
   },
   
   SetPrimeConditions: function(){
      //console.log(ShineGallery.imagelist[0]);
      ShineGallery.showLargeImage(ShineGallery.imagelist[0].down("img"));
      
   }
}

// calling load time stuff:
$(document).observe("dom:loaded",function(){
 
   ShineGallery.init();  
   
   
 });
