/*
bxGallery v1.1
Plugin developed by: Steven Wanderski
http://bxgalleryplugin.com
http://stevenwanderski.com
edited by Benny
Released under the GPL license:
http://www.gnu.org/licenses/gpl.html
*/

(function($){$.fn.extend({bxGallery:function(options){var defaults={overlayInfo:false,overlayInfoClass:'',actionEvent:'hover',ulWidth:400,ulHeight:350,listHeight:100,maxwidth:'',maxheight:'',thumbwidth:200,thumbcrop:false,croppercent:.35,thumbplacement:'bottom',thumbcontainer:'',opacity:.7,load_text:'',load_image:'../images/spinner.gif',wrapperclass:'outer'}
var options=$.extend(defaults,options);var o=options;var cont='';var caption='';var $outer='';var $orig=this;var tall=o.ulHeight;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'});
}

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';
		//alert($this.width());
		//alert($this.parents('li'));
		if( $this.width() +140 > o.maxwidth ){
			$this.parents('li').css("left", (((o.maxwidth-$this.width())/2)+50) );
			//alert(o.maxwidth+'-'+$this.width()+'-'+(o.maxwidth-$this.width())/2);
		}
		var liCheckImage = $this.attr('src').match(/(product-nophoto\.jpg)$/);
		if(liCheckImage !=null){
			cont+=' class="no-pic" ';
		}
		cont+='><img src="'+$this.attr('src')+'" /></li>';
	});
	
	$orig.find('li:not(:first)').hide();
	$orig.height(o.ulHeight);
	/*$orig.width(o.ulWidth);*/
	$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'});
	}
	if(o.overlayInfo){
		$('.'+o.wrapperclass).after('<div class="pd-overlay-info '+o.overlayInfoClass+'"></div>');
	}
	$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(o.listHeight);
		}
		if(o.actionEvent == 'hover'){$this.hover(function(){var matchResult = $this.find('img').attr('src').match(/(product-nophoto\.jpg)$/);if( matchResult != null ){return;}var x=$outer.find('.thumbs li').index($this);if(showing!=x){$orig.find('li').fadeOut();$orig.find('li').eq(x).fadeIn();showing=x;}});}else if(o.actionEvent=='click'){$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);if(o.actionEvent=='hover'){$thumb.hover(function(){var t=$(this);var i=$thumb.index(this);if(current!=i){var checkImage = t.find('img').attr('src').match(/(product-nophoto\.jpg)$/);if( checkImage == null ){$thumb.removeClass('on');t.addClass('on');$thumb.not('.on').fadeTo(200,o.opacity);current=i;}}}).hover(function(){$(this).stop().fadeTo(200,1);},function(){$(this).not('.on').stop().fadeTo(200,o.opacity);});}else if(o.actionEvent=='click'){$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;}}).click(function(){$(this).stop().fadeTo(200,1);},function(){$(this).not('.on').stop().fadeTo(200,o.opacity);});}


}}});})(jQuery);
