var xThumbViewer;

(function($) {

var thumb_viewer_class = '.show_big_thumb';
var thumb_viewer_class_random = '.show_big_thumb_rand';

var thumb_viewer_fn_preffix_d = '_';
var thumb_viewer_fn_suffix_d = '.';

xThumbViewer = 
{
	init : function() 
	{
		this.addEvents();
	},

	// thumb - JQuery object
	startViewThumb : function(thumb, Image_SRC)
	{
		thumb.lightBox({
				containerResizeSpeed : 400,
				imageSrc : (Image_SRC != ''?Image_SRC:this.getImageSrc(thumb.attr('src')))
		}, thumb);
	},
	
	addEvents : function() 
	{
	    var click_selectors = thumb_viewer_class+','+thumb_viewer_class_random;
		$(click_selectors).click(function()
		{
				xThumbViewer.startViewThumb($(this), $(this).parents('a').attr('href'));
				return false;
		});
		
		$('a:has('+thumb_viewer_class+')').click(function()
		{
				xThumbViewer.startViewThumb($(this).find(click_selectors), $(this).attr('href'));
				return false;
		});
	},
	
	getImageSrc : function(thumb_src)
	{
		var thumb_url_parts = thumb_src.split('/');
		var thumb_file_name = thumb_url_parts.pop();
		var thumb_file_name_parts = thumb_file_name.split(thumb_viewer_fn_suffix_d);
		
		var thumb_file_name_suffix_parts = thumb_file_name_parts[0].split(thumb_viewer_fn_preffix_d);
		
		var thumb_url_suffix = thumb_viewer_fn_suffix_d + thumb_file_name_parts[1];
		
//		var thumb_file_name_suffix = thumb_file_name_suffix_parts.pop();
		var thumb_dimension = thumb_file_name_suffix_parts.pop();
		var thumb_dimension_parts = thumb_dimension.split('x');
		
		if (isNaN(parseInt(thumb_dimension_parts[0])) || isNaN(parseInt(thumb_dimension_parts[1])))
		{
		    thumb_url_suffix = thumb_viewer_fn_preffix_d + thumb_dimension + thumb_url_suffix
		    
		    thumb_dimension = thumb_file_name_suffix_parts.pop();
		    thumb_dimension_parts = thumb_dimension.split('x');
    		if ( isNaN(parseInt(thumb_dimension_parts[0])) || isNaN(parseInt(thumb_dimension_parts[1])) )
    		{
    		    alert('Invalid thumb src format!');
    		    return '';
    		}
		}
		
		var thumb_url_preffix = thumb_url_parts.join('/') + '/' + thumb_file_name_suffix_parts.join(thumb_viewer_fn_preffix_d);
	
		return thumb_url_preffix + thumb_url_suffix;
	},
	
	getImageSrcOld : function(thumb_src)
	{
		var thumb_url_parts = thumb_src.split('/');
		var thumb_file_name = thumb_url_parts.pop();
		var thumb_file_name_parts = thumb_file_name.split(thumb_viewer_fn_suffix_d);
		
		var thumb_file_name_suffix_parts = thumb_file_name_parts[0].split(thumb_viewer_fn_preffix_d);
		var thumb_file_name_suffix = thumb_file_name_suffix_parts.pop();
		
		var thumb_url_preffix = thumb_url_parts.join('/') + '/' + thumb_file_name_suffix_parts.join(thumb_viewer_fn_preffix_d) + thumb_viewer_fn_preffix_d;
		var thumb_url_suffix = thumb_viewer_fn_suffix_d + thumb_file_name_parts[1];
	
		return thumb_url_preffix + 'big' + thumb_url_suffix;
	}
};
$(document).ready(function(){xThumbViewer.init();});

})(jQuery);