var prdoptcol = {
	'swapper': function(target, popimg, prdimg) {
		target.find('img').attr('src', prdimg);
		target.find('img').attr('srcset', popimg);
		target.find('img').attr('data-zoom-image', popimg);
		target.find('img').attr('data-largeimg', popimg);
		$('.zoomWindowContainer div').stop().css("background-image","url("+ JSON.stringify(String(popimg)) +")");
		$('.zm-viewer img').attr('src', popimg);					
		setTimeout(function(){ 
			$('.zm-viewer img').attr('src', popimg);
		}, 1000);
		
		$(document).delegate('.additional-image', 'click', function () {
			$('.additional-image').removeClass('swiper-slide-active');
			$(this).addClass('swiper-slide-active');

			var $s = $('.main-image').data('swiper');

			if ($s.params.loop) {
				$s.slideToLoop($(this).data('index'), 0);
			} else {
				$s.slideTo($(this).data('index'), 0);
			}
		});
		$('.main-image img').each(function () {
			var $this = $(this);

			$this.ImageZoom({
				type: Journal['isPopup'] ? Journal['quickviewPageStyleCloudZoomPosition'] : Journal['productPageStyleCloudZoomPosition'],
				showDescription: false,
				offset: [0, 0],
				zoomSize: [$this.width(), $this.height()],
				bigImageSrc: $this.data('largeimg')
			});
		});			
	},
	'gridswapper': function(target, prdimg) {
		target.find('img.img-responsive').attr('src', prdimg);
 	},
	'atgrid': function() {
  		var product_ids = [];
 		$("[onclick*='cart.add']").each(function() {
			var target = $(this).closest('.product-thumb');
			var product_id = $(this).attr('onclick').match(/[0-9]+/).toString(); 
			if(target.length && target.hasClass('prdoptcol_atgridcol') == false) {
				target.addClass('prdoptcol_atgridcol').addClass('prdoptcol_atgridcol'+product_id);
				product_ids.push(product_id);
 			}
		});
		if(product_ids.length) { 
			//console.log(product_ids.length);
 			$.ajax({
				url: 'index.php?route=extension/prdoptcol/getgriddata',
				type: 'post',
				data: {product_ids:product_ids},
				cache: true,
				complete: function() { 
				},
				success: function(json) {
					if(json) {
						//console.log(json);
						$("[onclick*='cart.add']").each(function() {
 							var product_id = $(this).attr('onclick').match(/[0-9]+/).toString(); 
							var target = $(this).closest('.product-thumb'); 						
							if(json[product_id] && target.length && target.find('.prdoptcol_atgrid').length == 0) {
								target.find('.price').after(json[product_id].join(""));
							}
						});	
						
						$('.prdoptcol_atgrid').each(function() {
							$(this).click(function() {				
								$(this).closest('.form-group').find('.act').removeClass('act');
								$(this).addClass('act');
								$(this).closest('.form-group').find('.prdoptcol_gridsetval').remove();
								$(this).closest('.form-group').find('label').after('<b class="prdoptcol_gridsetval">'+$(this).attr('data-original-title')+'</b>');
								$(this).parent().find('input.prdoptcol_radio_input').prop("checked",true);
								
 								var prdimg = $(this).closest('div').find('.prdoptcol_gridswpimg').val();
								var target = $(this).closest('.product-thumb').find('.image'); 
								prdoptcol.gridswapper(target, prdimg);
							});			
						});
						$('.prdoptcol_gridbtnrst').each(function() {
							$(this).click(function() { 				
								$(this).closest('.form-group').find('.act').removeClass('act');
								$(this).closest('.form-group').find('.prdoptcol_gridsetval').remove();	
								$(this).closest('.form-group').find('input.prdoptcol_radio_input').prop("checked",false);
								
								var prdimg = $(this).closest('div').find('.prdoptcol_orgimg').val();
								var target = $(this).closest('.product-thumb').find('.image'); 
								prdoptcol.gridswapper(target, prdimg);
							});			
						});
					}
				}
			});
		}		
  	},	
	'prodpage': function() {	
		var product_id = false;
		if($(".button-group-page input[name='product_id']").length) {
			product_id = $(".button-group-page input[name='product_id']").val();
		}		
		if (product_id) {
			gridajax = $.ajax({
				url: 'index.php?route=extension/prdoptcol/getprodpgdata',
				type: 'post',
				data: {product_id:product_id},
				cache: true,
				complete: function() { 
				},
				success: function(json) {
					if(json && json[product_id]) {
 						if($('.product-options h3.options-title').length) {
							$('.product-options h3.options-title').after(json[product_id].join(""));
						} else {
							$('.button-group-page').before('<div class="product-options">' + json[product_id].join("") + '</div>');
						}

						$('.prdoptcol_atprd').each(function() {
							$(this).click(function() {
								target = $('.product-left .main-image .swiper-slide-active');
								
								$(this).closest('.form-group').find('.act').removeClass('act');
								$(this).addClass('act');
								$(this).closest('.form-group').find('.prdoptcol_setval').remove();
								$(this).closest('.form-group').find('.prdoptcol_skutxtval').remove();
								$(this).closest('.form-group').find('label').after('<div class="prdoptcol_skutxtval" style="width: 100%; margin-bottom: 20px"><div><b>Variant: </b>'+$(this).attr('data-original-title') +'</div></div>');
								$(this).closest('.form-group').find('label').after('<div class="prdoptcol_skutxtval test123">'+ $(this).closest('div').find('.prdoptcol_skutxt').val() +'</div>');
								$(this).parent().find('input.prdoptcol_radio_input').prop("checked",true); 
 								
								var colimgadd = $(this).parent().find('.prdoptcol_colimgadd').val();
								var colpopadd = $(this).parent().find('.prdoptcol_colpopadd').val();
								
 								if(colimgadd) {
									$('div.additional-image').addClass('prdoptcol_hideaddnl');
									$('.colimgadd').remove();
								
									colimgadd = colimgadd.split(",");
									colpopadd = colpopadd.split(",");
									
									var addnlhtml = '';
									var addnlhtmlsldr = '';
									for (var cnt = 0; cnt < colimgadd.length; cnt++) {
										addnlcnt = parseInt($(".additional-image").length); 
										randindex = cnt + addnlcnt;//Math.floor(Math.random() * 100 * 100);
										addnlhtml += '<div class="swiper-slide additional-image colimgadd" data-index="'+(randindex)+'"><img src="'+colimgadd[cnt]+'" srcset="'+colpopadd[cnt]+'" data-largeimg="'+colpopadd[cnt]+'"></div>';
										addnlhtmlsldr += '<div class="swiper-slide colimgadd" data-gallery=".lightgallery-product-images" data-index="'+(randindex)+'"> <img src="'+colpopadd[cnt]+'" srcset="'+colpopadd[cnt]+'" data-largeimg="'+colpopadd[cnt]+'" loading="lazy"> </div>';
									}
									$('.additional-images .swiper-container .swiper-wrapper').append(addnlhtml);		
									$('.product-left .main-image .swiper-wrapper').append(addnlhtmlsldr);	
									$('.product-left .main-image .swiper-wrapper').removeClass('swiper-slide-visible').removeClass('swiper-slide-active');
								}
								
								var swpimgpop = $(this).closest('div').find('.prdoptcol_swpimgpop').val();
								var swpimg = $(this).closest('div').find('.prdoptcol_swpimg').val();
								
								prdoptcol.swapper(target, swpimgpop, swpimg);
								
								/*CODE FOR PRICE UPDATE IN LIVE*/
								var selectedStr = $(this).attr('data-original-title');
								var posStr = selectedStr.indexOf("(") + 1;
								//alert(posStr);
								var selectedVal = selectedStr.slice(posStr, -1);
								selectedVal = selectedVal.replace("+£", "");
								if(isNaN(selectedVal)) {
									// do nothing
								}
								else if(posStr == 0) {
									var productPrice = $(".product-price-group .price-wrapper .price-group .product-price").text();
									//productPrice = productPrice.replace("£", "");
									//selectedVal = parseFloat(selectedVal);
									//productPrice = parseFloat(productPrice);
									//alert(productPrice);
									//var finalProductPrice = "£"+(selectedVal+productPrice).toFixed(2);
									$("#product-price-update").show();
									$("#product-price-update").html(productPrice);
									$(".product-price").hide();
								}
								else {
									var productPrice = $(".product-price-group .price-wrapper .price-group .product-price").text();
									productPrice = productPrice.replace("£", "");
									selectedVal = parseFloat(selectedVal);
									productPrice = parseFloat(productPrice);
									//alert(selectedVal);
									if(json['optprcact_status']) {
										if(selectedVal > 0) {
											var finalProductPrice = "£"+(selectedVal).toFixed(2);
										} else {
											var finalProductPrice = "£"+(productPrice).toFixed(2);
										}
									} else {
										var finalProductPrice = "£"+(productPrice+selectedVal).toFixed(2);
									}
									$("#product-price-update").show();
									$("#product-price-update").html(finalProductPrice);
									$(".product-price").hide();
								}
								/*CODE FOR PRICE UPDATE IN LIVE*/
							});			
						});
						$('.prdoptcol_btnrst').each(function() {
							$(this).click(function() {

								/*CODE FOR PRICE UPDATE IN LIVE*/
								$("#product-price-update").hide();
								$(".product-price").show();
								/*CODE FOR PRICE UPDATE IN LIVE*/

								target = $('.product-left .main-image .swiper-slide-active');
								
								$(this).closest('.form-group').find('.act').removeClass('act');
								$(this).closest('.form-group').find('.prdoptcol_setval').remove();	
								$(this).closest('.form-group').find('.prdoptcol_skutxtval').remove();	
								$(this).closest('.form-group').find('input.prdoptcol_radio_input').prop("checked",false); 			
								
								$('div.additional-image').removeClass('prdoptcol_hideaddnl');
								$('.colimgadd').remove();
								
								var swpimgpop = $(this).closest('div').find('.prdoptcol_prdorgpop').val();
								var swpimg = $(this).closest('div').find('.prdoptcol_prdorgimg').val();
								
								prdoptcol.swapper(target, swpimgpop, swpimg);
							});			
						});					
					}
				}
			});
 		}
  	},
 	'initjson': function() {
		prdoptcol.atgrid(); $(document).ajaxStop(function() { prdoptcol.atgrid(); });
		prdoptcol.prodpage();
	}	
}
$(document).ready(function() {
prdoptcol.initjson();
});