// JavaScript Document
$(document).ready(function() {
  lightbox();
});

function lightbox() {
  var links = $('a[rel^=lightbox]');
  var overlay = $(jQuery('<div id="overlay" style="display: none"></div>'));
  var container = $(jQuery('<div id="lightbox" style="display: none"></div>'));
  var close = $(jQuery('<a href="#close" class="close">&times; Close</a>'));
  var target = $(jQuery('<div class="target"></div>'));
  var prev = $(jQuery('<a href="#prev" class="prev">&laquo; Previous</a>'));
  var zoom = $(jQuery('<a href="#zoom" class="zoom">Zoom +</a>'));
  var next = $(jQuery('<a href="#next" class="next">Next &raquo;</a>'));
  var reset_1 = $(jQuery('<a href="#reset" class="reset">Reset</a>'));
  var z = 0.2;
  var zoom_url="";
  var a=1;

  $('body').append(overlay).append(container);
  container.append(close).append(zoom).append(target).append(prev).append(next).append(reset_1);
  //zoom_url=link.attr('href');
  container.show().css({'top': Math.round((($(window).height() > window.innerHeight ? window.innerHeight : $(window).height()) - container.outerHeight()) / 2) + 'px', 'left': Math.round(($(window).width() - container.outerWidth()) / 2) + 'px', 'margin-top': 0, 'margin-left': 0}).hide();
  close.click(function(c) {
    c.preventDefault();
    overlay.add(container).fadeOut('normal');
  });
  
 
  prev.add(next).add(zoom).click(function(c) {
    c.preventDefault();
	//if ($(this).is('.zoom')){
		//var to = $(this);
 //to.click();
	
    var current = parseInt(links.filter('.selected').attr('lb-position'),10);
    var to = $(this).is('.prev') ? links.eq(current - 1) : $(this).is('.next') ? links.eq(current + 1) : links.eq(current) ;
	zoom_url="http://www.luketom.com/clients/eggesford/admin/images/1246436556.jpg";
	//document.write(zoom_url);
	//var zoom_url=link2.attr('href');
    if(!to.size()) {
      to = $(this).is('.prev') ? links.eq(links.size() - 1) : links.eq(0);
    }
    if(to.size()) {
      to.click();
    }
  });
  

  links.each(function(index) {
    var link = $(this);
	
    link.click(function(c) {
      c.preventDefault();
      open(link.attr('href'));
	  zoom_url=link.attr('href');

      links.filter('.selected').removeClass('selected');
      link.addClass('selected');
    });
    link.attr({'lb-position': index});
  });
  
  var open = function(url) {
    if(container.is(':visible')) {
      target.children().fadeOut('normal', function() {
        target.children().remove();
        loadImage(url);
		
	//$('.target').dblclick(function () { 
	//zoomImage(zoom_url);
	//});	
	
	
  $('.zoom').click(function(c, url){
	c.preventDefault();
	
    zoomImage(zoom_url);
});	
$('.reset').click(function(c, url){
c.preventDefault();
 target.children().fadeOut('normal', function() {
        target.children().remove();
loadImage(zoom_url);  
});
 });
      });
    } else {
      target.children().remove();
      overlay.add(container).fadeIn('normal',function(){
        loadImage(url); 
		$('.zoom').click(function(c, url){
	c.preventDefault();
	
    zoomImage(zoom_url);
});	
		});
    }
  }
  
 var loadImage = function(url) {
	
    if(container.is('.loading')) { return; }
    container.addClass('loading');
    var img = new Image();
    img.onload = function() {
		

      img.style.display = 'none';
	    z=0.2;
		      var maxWidth =600;
	  var maxHeight = 450;

      
    //  var maxWidth = ($(window).width() - parseInt(container.css('padding-left'),10) - parseInt(container.css('padding-right'), 10)) - 100;
  //    var maxHeight = (($(window).height() > window.innerHeight ? window.innerHeight : $(window).height()) - parseInt(container.css('padding-top'),10) - parseInt(container.css('padding-bottom'), 10)) - 100;
      
      if(img.width > maxWidth || img.height > maxHeight) { // One of these is larger than the window
        var ratio = img.width / img.height;
       if(img.height >= maxHeight) {
          img.height = maxHeight;
        img.width = maxHeight * ratio;
		if(img.width >= maxWidth) {
		  img.width = maxWidth;
         img.height = maxWidth / ratio;	
		}
       } else {
         img.width = maxWidth;
         img.height = maxWidth * ratio;
       }
    }
      
      container.animate({'width': img.width,'height': img.height, 'top': Math.round((($(window).height() > window.innerHeight ? window.innerHeight : $(window).height()) - img.height - parseInt(container.css('padding-top'),10) - parseInt(container.css('padding-bottom'),10)) / 2) + 'px', 'left': Math.round(($(window).width() - img.width - parseInt(container.css('padding-left'),10) - parseInt(container.css('padding-right'),10)) / 2) + 'px'},'normal', function(){
        target.append(img);
        $(img).fadeIn('normal', function() {
          container.removeClass('loading');
        });
      })
    }
    img.src = url;
	
	$(document).ready(function(){
 $('.target').css({'position': 'relative', 'left': '0px', 'top': '0px'});
 });

  }
 var zoomImage = function(url) {
    if(container.is('.loading')) { return; }
    container.addClass('loading');
    var img = new Image();
    img.onload = function() {
      //img.style.display = 'none';
	 // target.id='target';
      var maxWidth =600;
	  var maxHeight = 400;
	// $('.target').draggable('option', 'snap', true);
	//  $('.target').draggable({ containment: 'parent' });
    //  var maxWidth = ($(window).width() - parseInt(container.css('padding-left'),10) - parseInt(container.css('padding-right'), 10)) - 100;
     // var maxHeight = (($(window).height() > window.innerHeight ? window.innerHeight : $(window).height()) - parseInt(container.css('padding-top'),10) - parseInt(container.css('padding-bottom'), 10)) - 100;
       var ratio = img.width / img.height;
          z=z+0.2;
		  w=img.width * z;
		  while (w<600){
			  z=z+0.2;
			    w = img.width * z;
		  }
	
	     img.width = img.width * z;
         img.height = img.height * z;
		 
		 $('.target').css({'position': 'relative', 'left': -img.width/6, 'top': -img.height/6});
		 
     // $('.target').draggable('option', 'containment', 'window',[img.height, img.height] );
        container.animate({'top': Math.round((($(window).height() > window.innerHeight ? window.innerHeight : $(window).height()) - 400 - parseInt(container.css('padding-top'),10) - parseInt(container.css('padding-bottom'),10)) / 2) + 'px', 'left': Math.round(($(window).width() - 400 - parseInt(container.css('padding-left'),10) - parseInt(container.css('padding-right'),10)) / 2) + 'px'},'normal', function(){
        target.append(img);
        $(img).fadeIn('normal', function() {
          container.removeClass('loading');
        });
      })
    }
    img.src = url;
	
  }
 

}


