/***********************************************************************************
*	Programmed by EyeWebz
*	All rights reserved (c) 2011
***********************************************************************************/
/***********************************************************************************
*	General
***********************************************************************************/
function init_eyewebz_gallery(class_name, type, autoplay, scaletype)
{
	var speed = (type == 'fade') ? 1500 : 300;
	
	$('.' + class_name).cycle(
		{
			fx: type,
			speed: speed,
			timeout: 10000,
			pager: $('#' + class_name + '_thumbs'),
			
			next: $('.' + class_name + ' .eyewebz_gallery_image, #' + class_name + '_navigation .next'),
			prev: $('#' + class_name + '_navigation .prev'),
			
			before: gallery_remove_current_class,
	      	after: gallery_add_current_class,
			
			pagerAnchorBuilder: pager_anchor_builder
		}
	);
	
	toggle_pause(class_name, autoplay);
	$('#' + class_name + '_navigation .toggle_play').click(function(e) { toggle_pause(class_name) });
	
	switch(scaletype)
	{
		case 'scale_width':
		{
			$('.' + class_name).mousemove(scroll_vertical);
			break;
		}
		case 'scale_height':
		{
			$('.' + class_name).mousemove(scroll_horizontal);
			break;
		}
		case 'scale_none':
		{
			$('.' + class_name).mousemove(scroll_vertical);
			$('.' + class_name).mousemove(scroll_horizontal);
			break;
		}
	}
}

function pager_anchor_builder(idx, slide) 
{ 
	return '<li><img src="' + $(slide).find('img').attr('src') + '" alt="image ' + idx + '" /></li>'; 
}

function gallery_remove_current_class()
{
	$(this).parent().find('.currentSlide').removeClass('currentSlide');
}

function gallery_add_current_class()
{
	$(this).addClass('currentSlide');
}

function toggle_pause(class_name, autoplay)
{
	var pausing = (autoplay == undefined) ? $('.' + class_name)[0].cyclePause : Number(autoplay);
	
	if(pausing)
	{
		$('.' + class_name).cycle('resume');
		$('#' + class_name + '_navigation .toggle_play').attr('src', plugin_location + '/eyewebz_framework/modules/gallery/images/pause.png');
	}
	else
	{
		$('.' + class_name).cycle('pause');
		$('#' + class_name + '_navigation .toggle_play').attr('src', plugin_location + '/eyewebz_framework/modules/gallery/images/play.png');
	}
}

function scroll_vertical(e)
{
	try
	{
		var target_parent = $(e.currentTarget).find('.currentSlide');
		var target = $(target_parent).find('.eyewebz_gallery_image');
		var target = target[0];
		
		var height = $(target).height();
		var scroll_height = target.scrollHeight - height;
		
		var offset = $(target).offset();
		var mouse_position = e.pageY - offset.top;
		var percentage = mouse_position / height;
		
		var position = parseInt(percentage * scroll_height) - 5;
		
		
		$(target).scrollTop(position);
	}
	catch(err){}
}

function scroll_horizontal(e)
{
	try
	{
		var target_parent = $(e.currentTarget).find('.currentSlide');
		var target = $(target_parent).find('.eyewebz_gallery_image');
		var target = target[0];
		
		var width = $(target).width();
		var scroll_width = target.scrollWidth - width;
		
		var offset = $(target).offset();
		var mouse_position = e.pageX - offset.left;
		var percentage = mouse_position / width;
		
		var position = parseInt(percentage * scroll_width) - 5;
		
		
		$(target).scrollLeft(position);
	}
	catch(err){}
}
