Your IP : 216.73.216.95


Current Path : /var/test/www/ljmti/wp-content/plugins/goodlayers-lms/
Upload File :
Current File : /var/test/www/ljmti/wp-content/plugins/goodlayers-lms/lms-script.js

(function($){

	var gdlr_lms_debounce = function(func, threshold, execAsap){
		
		var timeout;

		return function debounced(){
			
			var obj = this, args = arguments;
			
			function delayed(){
				if( !execAsap ){
					func.apply(obj, args);
				}
				timeout = null;
			};

			if( timeout ){
				clearTimeout(timeout);
			}else if( execAsap ){
				func.apply(obj, args);
			}
			timeout = setTimeout(delayed, threshold);
		};
	}	

	// responsive video
	$.fn.gdlr_lms_fluid_video = function(){
		$(this).find('iframe[src^="http://www.youtube.com"], iframe[src^="https://www.youtube.com"], iframe[src^="//www.youtube.com"],'  +
					 'iframe[src^="http://player.vimeo.com"], iframe[src^="https://player.vimeo.com"], iframe[src^="//player.vimeo.com"]').each(function(){
			if( ($(this).is('embed') && $(this).parent('object').length) || $(this).parent('.fluid-width-video-wrapper').length ){ return; } 
			if( !$(this).attr('id') ){ $(this).attr('id', 'gdlr-video-' + Math.floor(Math.random()*999999)); }
					 
			// ignore if inside layerslider
			if( $(this).closest('.ls-container').length <= 0 ){ 
				var ratio = $(this).height() / $(this).width();
				$(this).removeAttr('height').removeAttr('width');
				$(this).wrap('<div class="gdlr-fluid-video-wrapper"></div>').parent().css('padding-top', (ratio * 100)+"%");
			}
		
		});	
		
		$(window).trigger('resize');
	}

	// create the alert message
	function gdlr_lms_confirm(options){
        var settings = $.extend({
			text: 'Are you sure you want to do this ?',
			sub: '',
			yes: 'Yes',
			no: 'No',
			success:  function(){}
        }, options);

		var confirm_button = $('<a class="gdlr-lms-button blue">' + settings.yes + '</a>');
		var decline_button = $('<a class="gdlr-lms-button red">' + settings.no + '</a>');
		var confirm_box = $('<div class="gdlr-lms-confirm-wrapper"></div>');
		var confirm_overlay = $('<div class="gdlr-lms-confirm-overlay"></div>');
		
		confirm_box.append('<span class="head">' + settings.text + '</span>');			
		if( settings.sub != '' ){
			confirm_box.append('<span class="sub">' + settings.sub + '</span>');	
		}
		confirm_box.append(confirm_button);
		confirm_box.append(decline_button);

		$('body').append(confirm_overlay).append(confirm_box);
		
		// center the alert box position
		confirm_box.css({ 'margin-left': -(confirm_box.outerWidth() / 2), 'margin-top': -(confirm_box.outerHeight() / 2)});
				
		// animate the alert box
		confirm_box.animate({opacity:1},{duration: 200});
		confirm_overlay.animate({opacity:0.75},{duration: 150});
		
		confirm_button.click(function(){
			if(typeof(settings.success) == 'function'){ settings.success(); }
			confirm_box.fadeOut(200, function(){ $(this).remove(); });
			confirm_overlay.fadeOut(200, function(){ $(this).remove(); });
		});
		decline_button.click(function(){
			confirm_box.fadeOut(200, function(){ $(this).remove(); });
			confirm_overlay.fadeOut(200, function(){ $(this).remove(); });
		});
	}	
	function gdlr_lms_notice(options){
        var settings = $.extend({
			text: 'Please try again',
			sub: '',
			ok: 'Ok',
			success:  function(){}
        }, options);

		var confirm_button = $('<a class="gdlr-lms-button blue">' + settings.ok + '</a>');
		var confirm_box = $('<div class="gdlr-lms-confirm-wrapper"></div>');
		var confirm_overlay = $('<div class="gdlr-lms-confirm-overlay"></div>');
		
		confirm_box.append('<span class="head">' + settings.text + '</span>');			
		if( settings.sub != '' ){
			confirm_box.append('<span class="sub">' + settings.sub + '</span>');	
		}
		confirm_box.append(confirm_button);
		$('body').append(confirm_overlay).append(confirm_box);
		
		// center the alert box position
		confirm_box.css({ 'margin-left': -(confirm_box.outerWidth() / 2), 'margin-top': -(confirm_box.outerHeight() / 2)});
				
		// animate the alert box
		confirm_box.animate({opacity:1},{duration: 200});
		confirm_overlay.animate({opacity:0.75},{duration: 150});
		
		confirm_button.click(function(){
			if(typeof(settings.success) == 'function'){ settings.success(); }
			confirm_box.fadeOut(200, function(){ $(this).remove(); });
			confirm_overlay.fadeOut(200, function(){ $(this).remove(); });
		});
	}	

	function gdlr_lms_lightbox(content, allow_close){
		var lightbox = $('<div class="gdlr-lms-lightbox-wrapper"></div>').appendTo('body');
		var overlay = $('<div class="gdlr-lms-lightbox-overlay" ></div>');
		
		var content_return = '';
		if( content.attr('data-return') == 'parent' ){
			content_return = content.parent();
		}
		
		// close lightbox
		if( allow_close ){
			overlay.click(function(){
				lightbox.fadeOut(200, function(){ 
					if( content_return ){
						content_return.append($(this).find('.gdlr-lms-lightbox-container'));
					}
					$(this).remove();
				});
			});

			content.find('.gdlr-lms-lightbox-close').click(function(){
				lightbox.fadeOut(200, function(){ 
					if( content_return ){
						content_return.append($(this).find('.gdlr-lms-lightbox-container'));
					}
					$(this).remove();
				});
			});		
		}

		

		content.find('.gdlr-lms-lightbox-printer').click(function(){
			var printContents = $($(this).siblings('.gdlr-printable').html());
			$('body').children('div, img, section').css('display', 'none');
			$('body').append(printContents);
			$('html, body').css('background-color', '#fff');
			window.print();
			printContents.remove();	
			$('html, body').css('background-color', '');
			$('body').children('div, img, section').css('display', 'block');
		});
		
		lightbox.append(overlay).append(content);
		lightbox.fadeIn(200);
		
		lightbox.gdlr_lms_fluid_video();
		
		// set height for certificate
		if( content.children().is('.certificate-form-printable') ){
			content.css('margin-top', -content.height()/2);
		}
	}
	
	function gdlr_lms_format_time(second){
		var hrs = parseInt(second / 3600);
		second = second % 3600;
		
		var mins = parseInt(second / 60);
		mins = (mins < 10)? '0' + mins: mins; 
		
		second = second % 60;
		second = (second < 10)? '0' + second: second; 
		
		return hrs + ':' + mins + ':' + second;
	}

	$(document).ready(function(){	

		// date picker
		$('input.gdlr-lms-date-picker').datepicker({
			dateFormat : 'yy-mm-dd'
		});
		
		// rating
		$('.rating-form .gdlr-rating-input').each(function(){
			$(this).children().hover(function(){
				$(this).parent().siblings('.rating-input').val($(this).attr("data-value"));

				if($(this).is('i')){ $(this).removeClass().addClass('icon-star-half-empty fa fa-star-half-empty'); }
				$(this).prevAll('i').removeClass().addClass('icon-star fa fa-star');
				$(this).nextAll('i').removeClass().addClass('icon-star-empty fa fa-star-o');
			});
		});
	
		// upload admin author image
		$('#gdlr-admin-author-image').change(function(){ 
			$(this).parents('form').submit();
		})
		$('.gdlr-page-profile .gdlr-lms-admin-head-thumbnail').click(function(){
			$('#gdlr-admin-author-image').trigger('click');
		});

		// cancel booking
		$('.gdlr-lms-cancel-booking, .gdlr-lms-delete-student').click(function(){
			var cancel_button = $(this);
			var action = 'gdlr_lms_cancel_booking';
			if( $(this).is('.gdlr-lms-delete-student') ){
				action = 'gdlr_lms_delete_student';
			}
			
			gdlr_lms_confirm({
				text: cancel_button.attr('data-title'),
				yes: cancel_button.attr('data-yes'),
				no: cancel_button.attr('data-no'),
				success: function(){
					$.ajax({
						type: 'POST',
						url: cancel_button.attr('data-ajax'),
						data: {'action':action,'id': cancel_button.attr('data-id')},
						dataType: 'json',
						error: function(a, b, c){ console.log(a, b, c); },
						success: function(data){
							location.reload();
						}
					});	
				}
			});
			
			return false;
		});
		
		// view quiz answer
		$('.gdlr-lms-view-correct-answer').click(function(){
			var view_button = $(this);
			gdlr_lms_confirm({
				text: view_button.attr('data-title'),
				sub: view_button.attr('data-sub-title'),
				yes: view_button.attr('data-yes'),
				no: view_button.attr('data-no'),
				success: function(){
					location.href = view_button.attr('href');
				}
			});		
		
			return false;
		});
		
		// equally set course style-2 height
		$(window).resize(function(){
			$('.gdlr-lms-course-grid2-wrapper').each(function(){
				var max_height = 0;
				var child_elements = $(this).find('.gdlr-lms-item');
				
				child_elements.css('height', 'auto');
				if($(window).width() <= '767') return;
				
				child_elements.each(function(){
					if($(this).height() > max_height) max_height = $(this).height();
				});
				child_elements.height(max_height);
			});	
		});
	
		// init the lightbox
		$('[data-rel="gdlr-lms-lightbox"]').click(function(){
			var content = $(this).siblings('.' + $(this).attr('data-lb-open'));
			if( !content.attr('data-return') ){
				var content = $(this).siblings('.' + $(this).attr('data-lb-open')).clone(true);
			}
			if(content.length > 0){ gdlr_lms_lightbox(content, true); }
		});
		$('[data-rel="gdlr-lms-lightbox2"]').click(function(){
			var content = $(this).siblings('.gdlr-lms-lightbox-container-wrapper').clone(true);
			content.children('.' + $(this).attr('data-lb-open')).show();
			if(content.length > 0){ gdlr_lms_lightbox(content, true); }
		});	
		$('[data-rel="gdlr-lms-lightbox3"]').click(function(){
			$(this).parents('.gdlr-lms-lightbox-container').fadeOut(200)
				   .siblings('.' + $(this).attr('data-lb-open')).fadeIn(200);
		});			
		
		// quiz timer
		$('.gdlr-lms-quiz-timer input[name="timeleft"]').each(function(){
			if($(this).attr('data-full') == '0' || $(this).attr('data-full') == '') return;
			
			var current_form = $(this).closest('form');
			var ajax_url = window.location.href;

			var timer = $(this);	
			var display = timer.siblings('.timer');
			var time_left = parseInt(timer.val());
			var save_duration = 5;

			var i = setInterval(function(){
				if( time_left > 0 ){
					time_left = time_left - 1;
					timer.val(time_left);
					timer.trigger('change');
					display.html(gdlr_lms_format_time(time_left));
				}else{
					var content = timer.siblings('.quiz-timeout-form').clone(true);
					gdlr_lms_lightbox(content, false);
					clearInterval(i);
				}

				if( time_left % save_duration == 0 ){
					$.ajax({
						type    : 'POST',
						url     : ajax_url,
						data    : 'ajax_req=1&' + current_form.serialize(),
						dataType: 'json',
						success : function( data ){ console.log('data is saved'); },
						error   : function( xhr, err ){ console.log(xhr, err); }
					}); 
				}
			}, 1000);
		});
		$('.submit-quiz-timeout-form').click(function(){
			$(this).parents('.gdlr-lms-lightbox-wrapper').fadeOut(200, function(){ 
				$(this).remove();
			});
			
			$('.finish-quiz-form-button').trigger('click');
		});
		
		// quiz form submit
		$('.submit-quiz-form').click(function(){
			var current_form = $(this).parents('form');
			
			if( current_form.length <= 0 ){ current_form = $('form.gdlr-lms-quiz-type'); }
			
			current_form.attr('action', $(this).attr('href'));
			current_form.submit();
			return false;
		});
		
		// finish course button
		$('.finish-quiz-form-button').click(function(){
			current_button = $(this);
			if( current_button.html() == current_button.attr('data-loading') ){
				return false;
			}

			current_button.html(current_button.attr('data-loading'));
			quiz_form = current_button.parents('form');
			
			$.ajax({
				type: 'POST',
				url: current_button.attr('href'),
				data: quiz_form.serialize(),
				dataType: 'json',
				error: function(a, b, c){ console.log(a, b, c); },
				success: function(){
					var content = current_button.siblings('.finish-quiz-form').clone(true);
					gdlr_lms_lightbox(content, false);
				}
			});	
			
			return false;
		});
		
		// payment selection
		$('.gdlr-payment-method input[name="payment-method"]').click(function(){
			$(this).parent('label').addClass('gdlr-active').siblings().removeClass('gdlr-active');
		});
		
		// buy / book button
		$('.buy-form form, .book-form form').each(function(){
			if( $(this).hasClass('gdlr-no-ajax') ) return;

			$(this).on('price-calculate', function(){
				var price_one = $(this).find('.price-one');
				var price_format = price_one.siblings('.format').val();
				var price = parseFloat(price_one.val()) * parseInt($(this).find('input[name="quantity"]').val());
				
				var discount = $(this).find('input.coupon-amount');
				var discount_type = discount.siblings('input.coupon-type');
				var discount_price = 0;
				if( discount_type.val() == 'percent' ){
					discount_price = parseFloat( price * parseFloat(discount.val()) / 100 );
				}else if( discount_type.val() == 'amount' ){
					discount_price = parseFloat( discount.val() );
				}
				if( discount_price > price ){
					discount_price = price;
				}

				price = price - discount_price;
				price_one.siblings('.price').val(price);
				price_one.siblings('.price-display').val(price_format.replace('NUMBER', price));				
				discount.siblings('.discount-amount').val(discount_price);				
			});
			
			$(this).find('input[name="quantity"]').on('keyup', function(){
				if( $(this).val() != '' ){
					$(this).closest('form').trigger('price-calculate');
				}
			});
			
			$(this).find('.gdlr-lms-coupon-code').on('keyup', gdlr_lms_debounce(function(){
				var current_form = $(this).closest('form');
				var coupon_code = $(this);
				
				if( $(this).val() != '' ){
					$(this).siblings('.gdlr-lms-coupon-head').removeClass().addClass('gdlr-lms-coupon-head coupon-loading');
					$(this).siblings('.gdlr-lms-coupon-status').slideUp(200);
					
					$.ajax({
						type: 'POST',
						url: current_form.attr('data-ajax'),
						data: {action:'lms_check_coupon_code', id: $(this).val(), course_id: current_form.find('input[name="course_id"]').val()},
						dataType: 'json',
						error: function(a, b, c){ console.log(a, b, c); },
						success: function(data){
							if( data.status == 'failed' ){
								coupon_code.siblings('.gdlr-lms-coupon-head').removeClass().addClass('gdlr-lms-coupon-head coupon-wrong');
								if( data.message ){
									coupon_code.siblings('.gdlr-lms-coupon-status').html(data.message).slideDown(200);
								}else{
									coupon_code.siblings('.gdlr-lms-coupon-status').slideUp(200);
								}
							}else if( data.status == 'success' ){
								coupon_code.siblings('input.coupon-amount').val(data.amount);
								coupon_code.siblings('input.coupon-type').val(data.type);
								coupon_code.siblings('.gdlr-lms-coupon-head').removeClass().addClass('gdlr-lms-coupon-head coupon-correct');
								if( data.message ){
									coupon_code.siblings('.gdlr-lms-coupon-status').html(data.message).slideDown(200);
								}else{
									coupon_code.siblings('.gdlr-lms-coupon-status').slideUp(200);
								}
							}
							
							current_form.trigger('price-calculate');
						}
					});
				}else{
					$(this).siblings('.gdlr-lms-coupon-head').removeClass().addClass('gdlr-lms-coupon-head');
					$(this).siblings('.gdlr-lms-coupon-status').slideUp(200);
				}
			}, 500));
		
			$(this).submit(function(e){
				var current_form = $(this);
				var notice = $(this).find('.gdlr-lms-notice').slideUp(200);
				var loading = $(this).find('.gdlr-lms-loading').slideDown(200);

				$.ajax({
					type: 'POST',
					url: $(this).attr('data-ajax'),
					data: jQuery(this).serialize(),
					dataType: 'json',
					error: function(a, b, c){ console.log(a, b, c); },
					success: function(data){
						if( data.status == 'success' ){
							notice.addClass('success');
						}else{
							notice.removeClass('success');
						}
						
						notice.html(data.message).slideDown(200);
						loading.slideUp(200);
						
						if( data.status == 'success' && data.redirect ){
							if( data.redirect == true ){
								if( data.id ){
									current_form.find('[name="invoice"]').val(data.id);
								}
								current_form[0].submit();
							}else{
								window.location.replace(data.redirect);
							}
						}else if( data.status == 'success' && data.payment == 'cloud' ){
							var payments = new cp.CloudPayments({ language: "en-US" });
							payments.charge( data.data,
								function (options){
									$.ajax({
										type: 'POST',
										url: current_form.attr('data-ajax'),
										data: { action:'gdlr_lms_cloud_payment', return_val:options },
										dataType: 'json',
										error: function(a, b, c){ console.log(a, b, c); },
										success: function(data2){
											if( data2.status == 'success' ){
												if( data2.redirect ){
													window.location.replace(data2.redirect);
												}
											}else{
												if( data2.message ){
													gdlr_lms_notice({
														text: data2.message,
														sub: (data2.message_sub)? data2.message_sub: '',
														ok: data.ok_button
													});
												}
											}
										}
									});
								},
								function (reason, options){
									gdlr_lms_notice({
										text: data.payment_failed_text,
										sub: reason,
										ok: data.ok_button
									});
								}
							);
						}
					}
				});					
				
				e.preventDefault();
				e.returnValue = false;
			});
		
		});
	});

	$(window).load(function(){ $(this).trigger('resize'); });

})(jQuery);