/*
bxGallery v1.1
Plugin developed by: Steven Wanderski
http://bxgalleryplugin.com
http://stevenwanderski.com

Released under the GPL license:
http://www.gnu.org/licenses/gpl.html
*/

(function($){$.fn.extend({bxGallery:function(options){
						var defaults={maxwidth:'',maxheight:'',thumbwidth:200,thumbcrop:false,croppercent:.35,thumbplacement:'bottom',thumbcontainer:'',opacity:.7,load_text:'',load_image:'http://i302.photobucket.com/albums/nn92/wandoledzep/spinner.gif',wrapperclass:'outer'}
						var options=$.extend(defaults,options);
						var o=options;
						var cont='';
						var caption='';
						var $outer='';
						var $orig=this;
						var tall=0;
						var wide=0;
						var showing=0;
						var i=0;
						var k=$orig.find('img').size();
						var current;
						preload_img();
						function preload_img(){
							$orig.hide();
							if(o.load_text!=''){
								$orig.before('<div id="loading">'+o.load_text+'</div>');
							}else{
								$orig.before('<div id="loading"><img src="'+o.load_image+'" /></div>');
							}
						$orig.parent().find('#loading').css({'textAlign':'center','width':o.maxwidth});
						$orig.find('img').each(function(){
										var the_source=$(this).attr('src');
										var the_img=new Image();
										the_img.onload=function(){
											preload_check();
										};
										the_img.src=the_source;
									});
						}
				function preload_check(){
					i++;
						if(i==k){
							init();
						}
					}
				function init(){
					set_layout();
					set_main_img();
					place_thumbcontainer();
					set_thumbs();
				}
				function set_layout(){
					$orig.parent().find('#loading').hide();
					$orig.show();
					$orig.wrap('<div class="'+o.wrapperclass+'"></div>');
					$outer=$orig.parent();
					$orig.find('li').css({'position':'absolute','right':'0px'});
				}
				function set_main_img(){
							$orig.find('img').each(function(){
										var $this=$(this);
										var $imgheight=$this.height();
										var $imgwidth=$this.width();
										if($this.attr('title')!=''){
											caption=$this.attr('title');
											$this.parent().append('<div class="caption">'+caption+'</div>');
										}
							if(o.maxwidth!=''){
								if($this.width()>o.maxwidth){
									$this.width(o.maxwidth);
									$this.height(($imgheight/$imgwidth)*o.maxwidth);
								}
							}
							if(o.maxheight!=''){
								if($this.height()>o.maxheight){
									$this.height(o.maxheight);
									$this.width(($imgwidth/$imgheight)*o.maxheight);
								}
							}
							if($this.height()+$this.parent().find('.caption').height()>tall){
								tall=$this.height()+$this.parent().find('.caption').height();
							}
							if($this.width()>wide){
								wide=$this.width();
							}
								cont+='<li><img src="'+$this.attr('src')+'" /></li>';});
								$orig.find('li:not(:first)').hide();
								$orig.height(tall);
								$orig.width(wide);
								$outer.find('.caption').width(wide);
				}
				function place_thumbcontainer(){
						if(o.thumbplacement=='top'){
							$outer.prepend('<ul class="thumbs">'+cont+'</ul>');
							$outer.find('.thumbs').css({'overflow':'auto'});
						}else if(o.thumbplacement=='left'){
							$outer.prepend('<ul class="thumbs">'+cont+'</ul>');
							$orig.css({'float':'left'});$outer.find('.thumbs').css({'float':'left'});
						}else if(o.thumbplacement=='bottom'){
							$outer.append('<ul class="thumbs">'+cont+'</ul>');
						}else if(o.thumbplacement=='right'){
							$outer.append('<ul class="thumbs">'+cont+'</ul>');
							$orig.css({'float':'left'});
							$outer.find('.thumbs').css({'float':'left'});
						}
						$outer.append('<div style="clear:both"></div>');
						if(o.thumbcontainer!=''){
							$outer.find('.thumbs').width(o.thumbcontainer);
						}
				}
				function set_thumbs(){
					$outer.find('.thumbs li').each(function(){
							var $this=$(this);
							var $img=$this.find('img');
							var $imgwidth=$img.width();
							var $imgheight=$img.height();
							if(o.thumbcrop){
								$img.width($imgwidth*o.croppercent);
								$img.height(($imgheight/$imgwidth)*$img.width());
								$this.css({'float':'left','width':o.thumbwidth,'height':o.thumbwidth,'overflow':'hidden','cursor':'pointer'});
							}else{
								$img.width(o.thumbwidth);
								$img.height(($imgheight/$imgwidth)*o.thumbwidth);
								$this.css({'float':'left','cursor':'pointer'});
								$this.height($img.height());
							}
																																																																																																																																				
					$this.click(function(){
						 var x=$outer.find('.thumbs li').index($this);
							 if(showing!=x)
							 {
								 $orig.find('li').fadeOut();$orig.find('li').eq(x).fadeIn();showing=x;
							}
					});
			});
				var $thumb=$outer.find('.thumbs li');
				$thumb.eq(0).addClass('on');$thumb.not('.on').fadeTo(0,o.opacity);
				
				$thumb.click(function(){
						var t=$(this);
						var i=$thumb.index(this);
						if(current!=i){
							$thumb.removeClass('on');
							t.addClass('on');
							$thumb.not('.on').fadeTo(200,o.opacity);
							current=i;
					    }
						$(this).stop().fadeTo(200,1);
				});
				$thumb.mouseout(function(){
					  $(this).not('.on').stop().fadeTo(200,o.opacity);
				});
				
				}
				
	}});})(jQuery);
