﻿(function($){

	$.bgswitcher = function( options ) {
		
		//Default settings
		var settings = {
			transition_speed		:  350,	//Speed of transition
			transition_time			:  15000,	
			navigation              :  1,		//Slideshow controls on/off
			prev_class				: 'slide-prev',
			next_class				: 'slide-next',
			img_path				: 'img/'
    	};
		
		var showed_first = true;
		
		var load_image = [];
		
		var is_anim = false;
		
		if (options) {
			var options = $.extend(settings, options);	//Pull from both defaults and supplied options
		}else{
			var options = $.extend(settings);			//Only pull from default settings		
		}
		
		var current_slide = 0;
		var count_slides = options.slides.length;
		
		var preloader = $('<img />').attr('src', '/resources/img/design/maguro/preloader.gif').css({
			'padding-top': $(window).height()/2,
			'padding-left': $(window).width()/2
		});
		
		var img = $('<img />').attr('src', options.slides[0].image).load(function(){	
			
			$('.bgswitcher_slide_preloader').animate({opacity: 0}, 10, function(){
				$('.bgswitcher_slide_preloader').remove();
			});
			$('.bgswitcher_slide_'+current_slide).css({
				opacity: 0,
				'background': 'url('+options.slides[0].image+') no-repeat center top transparent'
			}).animate({
				opacity: 1
			});
			
			$('.bgswitcher_addd2cart_'+current_slide).css({display:'block'}).animate({opacity:1});
			
		});
		
		for(i = 1; i < options.slides.length-1; i++)
		{
			img = $('<img />').attr('src', options.slides[i].image).load(function(){
				$(this).remove();
			});
		}
		
		var switcher = $('<div></div>').css({
			'position': 'absolute',
			'z-index': -1,
			'left': 0,
			'top': 0,
			'width': '100%',
			opacity: 1,
			'height': 1000
		}).append(preloader).addClass('bgswitcher_slide_preloader');
		$('body').prepend(switcher);
		
		if (options.slides.length > 1){
			for (i in options.slides)
			{
				
				var switcher2 = $('<div></div>').css({
					'position': 'absolute',
					'z-index': -2,
					'left': 0,
					'top': 0,
					'width': '100%',
					'height': 1000,
					'background': 'url('+options.slides[i].image+') no-repeat center top transparent',
					'display': 'none'
				}).addClass('bgswitcher_slide_'+i);
				
				var onclick = "eshop.add_cart_small("+options.slides[i].id+")";
				
				var link_add = $("<a href='javascript:;' onclick='"+onclick+"' class='bgswitcher_add2cart'>Заказать</a>").css({
					position: 'absolute',
					left: $(window).width() / 2 - 382,
					top: 236,
					opacity: 0,
					zIndex: 50,
					display: 'none'
				}).addClass('bgswitcher_addd2cart_'+i);
								
				//switcher2.append(link_add);
				$('body').prepend(switcher2);
				$('body').prepend(link_add);
			}
			
			$(window).resize(function(){
				$(".bgswitcher_add2cart").css({
					left: $(window).width() / 2 - 382,
				});
			});
		}
		
		var nav = $('.bgswitcher-navigation');
		if (nav.size())
		{
			var padding = $('<div class="bgswitcher-nav-padding"></div>').css({
				'padding-left': $(document).width() / 2 - count_slides * 15 * 2
			});
			
			nav.append(padding);
			nav = padding;
			
			for (i in options.slides)
			{
				var classname = 'nav-unactive';
				if (i == current_slide)
					classname = 'nav-active';
				
				var div = $('<div></div>').addClass(classname).addClass('nav_'+i).click({id: i}, switch_to_slide);
				nav.append(div);
			}
		}

		setInterval(auto_switch, options.transition_time);
		
		$('.'+options.prev_class).click(function(){
			switch_prev();
		});
		$('.'+options.next_class).click(function(){
			switch_next();
		});
		
		function switch_prev(){
			if (current_slide == 0 || is_anim == true)
				return false;
				
			$('.bgswitcher_addd2cart_'+current_slide).animate({opacity:0}, function(){$(this).css({display:"none"})});
			$('.bgswitcher_slide_'+current_slide).fadeOut(options.transition_speed, reset_nav);
			
			current_slide--;
			
			$('.bgswitcher_addd2cart_'+id).css({display:'block'}).animate({opacity:1});
			$('.bgswitcher_slide_'+current_slide).fadeIn(options.transition_speed, set_nav_active);
			
			
		}
		
		function switch_to_slide(event, id)
		{
			if (event != null)
				id = event.data.id;
			if (id < 0 || id >= count_slides)
				return false;
			
			$('.bgswitcher_addd2cart_'+current_slide).animate({opacity:0}, function(){$(this).css({display:"none"})});
			$('.bgswitcher_slide_'+current_slide).fadeOut(options.transition_speed, reset_nav);
			
			$('.bgswitcher_addd2cart_'+id).css({display:'block'}).animate({opacity:1});
			$('.bgswitcher_slide_'+id).fadeIn(options.transition_speed, set_nav_active);
			
			current_slide = id;
			showed_first = false;
		}
		
		function reset_nav()
		{
			$('.bgswitcher-navigation .bgswitcher-nav-padding > div').each(function(){
				$(this).removeClass('nav-active').addClass('nav-unactive');
				is_anim = false;
			});
		}
		
		function set_nav_active()
		{
			$('.bgswitcher-navigation .nav_'+current_slide).addClass('nav-active');
			is_anim = false;
		}
		
		function switch_next(){
			if (current_slide == count_slides-1 || is_anim == true)
				return false;
			
			$('.bgswitcher_addd2cart_'+current_slide).animate({opacity:0}, function(){$(this).css({display:"none"})});
			$('.bgswitcher_slide_'+current_slide).fadeOut(options.transition_speed, reset_nav);
			
			current_slide++;		
			
			$('.bgswitcher_addd2cart_'+current_slide).css({display:'block'}).animate({opacity:1});
			$('.bgswitcher_slide_'+current_slide).fadeIn(options.transition_speed, set_nav_active);
			
		}
		
		function auto_switch()
		{		
			var flag = false;
			if (current_slide == count_slides-1)
			{
				current_slide = -1;
				reset_nav();
				flag = true;
			}
			
			switch_next();
			
			if (flag == true)
			{
				current_slide = 0;
				flag = false
			}
		}
	}
})(jQuery);
