HEX
Server: Apache
System: Linux WWW 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: web11 (1011)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/lcc.kaunokolegija.lt/wp-content/plugins/countdown-builder/assets/js/Admin.js
function YcdAdmin() {
	this.init();
}

YcdAdmin.prototype.init = function() {
	this.initCountdownDateTimePicker();
	this.initMoneyDateTimePicker();
	this.select2();
	this.accordionContent();
	this.livePreviewToggle();
	this.multipleChoiceButton();
	this.switchCountdown();
	this.soundUpload();
	this.resetSound();
	this.soundPreview();
	this.support();
	this.livePreview();
	this.redirectToProWebpage();
	this.newsletter();
	this.promotionalVideo();
	this.editor();
	this.changeAnimation();
	this.buttonFunctions();
	this.copySortCode();
	this.closeButtonPositions();
	this.floatingPositions();

	/*clock*/
	this.clockLivePreview();
	this.proOptions();
	this.changeTimer();

	this.imageButton();
	var that = this;

	jQuery(window).bind('ycdAccordionTriggered', function () {
		that.imageButton();
	});
	this.comingSonColor();

    if(ycd_admin_localized.pkgVersion == 1) {
        this.redirectToSupportPage();
    }
    this.metaboxSubOptions();
    this.generalColors();
    this.deleteAjaxRequest();

    this.featuresSelect();

	/*Simple countdown js*/
	this.enableUniteBorder();
};

YcdAdmin.prototype.enableUniteBorder = function() {
	jQuery('#ycd-simple-enable-unite-border').bind('change', function() {
		if (jQuery(this).is(":checked")) {
			jQuery(".js-simple-timer-dotes").val("").change();
		}
		else {
			jQuery(".js-simple-timer-dotes").val(":").change();
		}
	})
}

YcdAdmin.prototype.featuresSelect = function() {

	jQuery('.js-features-select').bind('change', function() {
		var value = jQuery(this).val();
		if (value === 'showFreeOptions') {
			jQuery('.ycd-option-wrapper-pro').closest('div.row').hide();
			jQuery('.ycd-full-pro-wrapper').hide();
		}
		else if (value === 'showProOptions') {
			jQuery('div.row').hide(); // Hide all divs with the class "row" except those with the class "exclude-wrapper"
			jQuery('.ycd-option-wrapper-pro').parents('div.row').show(); 
			jQuery('.ycd-not-options-wrapper div.row').show(); 
			jQuery('.ycd-full-pro-wrapper').show();
		}
		else {
			jQuery('div.row').show();
		}
	})
};


YcdAdmin.prototype.deleteAjaxRequest = function() {

	jQuery('.ycd-type-delete-link').bind('click', function (e) {
		e.preventDefault();

		var confirmStatus = confirm('Are you shure?');

		if(!confirmStatus) {
			return;
		}
		window.location.href = e.target.href;
	});
};

YcdAdmin.prototype.copySortCode = function() {
    jQuery('.countdown-shortcode').bind('click', function() {
    	var currentId = jQuery(this).data('id');
        var copyText = document.getElementById('ycd-shortcode-input-'+currentId);
        copyText.select();
        document.execCommand('copy');

        var tooltip = document.getElementById('ycd-tooltip-'+currentId);
        tooltip.innerHTML = ycd_admin_localized.copied;
    });

    jQuery(document).on('focusout', '.countdown-shortcode',function() {
        var currentId = jQuery(this).data('id');
        var tooltip = document.getElementById('ycd-tooltip-'+currentId);
        tooltip.innerHTML = ycd_admin_localized.copyToClipboard;
    });
};

YcdAdmin.prototype.buttonFunctions = function () {
	var buttonOpacity = jQuery('#ycd-button-opacity');

	if(!buttonOpacity.length) {
		return false;
	}

	buttonOpacity.ionRangeSlider({
        hide_min_max: true,
        keyboard: true,
        min: 0,
        max: 1,
        type: 'single',
        step: 0.1,
        prefix: '',
        grid: false
    });
};

YcdAdmin.prototype.changeTimer = function () {
    var timers = jQuery('.ycd-timer-time-settings');

    if (!timers.length) {
        return false;
    }
    var modeChecker = jQuery('.ycd-timer-mode');
    var clockMode = jQuery('.ycd-clock-mode');

    modeChecker.bind('change', function () {
    	var args = {};
        args.modeValue = jQuery(this).val();
        args.allSeconds = parseInt(jQuery('#ycdTimeHours').val())*3600 + parseInt(jQuery('#ycdTimeMinutes').val())*60 + parseInt(jQuery('#ycdTimeSeconds').val());
        jQuery(window).trigger('YcdClockChangeMode', args);
    });

    timers.bind('change', function () {
        if(!jQuery('#ycdTimeHours').length) {
        	return false;
		}
		var allSeconds = parseInt(jQuery('#ycdTimeHours').val())*3600 + parseInt(jQuery('#ycdTimeMinutes').val())*60 + parseInt(jQuery('#ycdTimeSeconds').val());
        jQuery(window).trigger('YcdClockTimerChange', allSeconds);
    });

    clockMode.bind('change', function () {
        var val = jQuery(this).val();
        jQuery(window).trigger('YcdClockModeChange', val);
	});
};

YcdAdmin.prototype.animateCountdown = function () {
	var circleWrapper = jQuery('.time_circles');

    var animations = jQuery('.ycd-showing-animation');
    var speed = jQuery('.ycd-circle-showing-animation-speed');

    circleWrapper.removeClass(circleWrapper.data('effect'));
    var speedValue = speed.val();
    var animationEffect = animations.val();
    setTimeout(function () {
        circleWrapper.data('effect', animationEffect);
        circleWrapper.css({'animationDuration' : parseInt(speedValue)*1000 + 'ms'});
        circleWrapper.addClass('ycd-animated '+animationEffect);
    }, 0);
};

YcdAdmin.prototype.changeAnimation = function() {
	var previewIcon = jQuery('.ycd-preview-icon');

	if(!previewIcon.length) {
		return false;
	}
	var that = this;
	var animations = jQuery('.ycd-showing-animation');

    previewIcon.bind('click', function() {
        that.animateCountdown();
    });

    animations.bind('change', function () {
        that.animateCountdown();
    });
};

YcdAdmin.prototype.editor = function() {
    (function($){
        $(function(){
            if( $('#ycd-edtitor-head').length ) {
                var editorSettings = wp.codeEditor.defaultSettings ? _.clone( wp.codeEditor.defaultSettings ) : {};
                editorSettings.codemirror = _.extend(
                    {},
                    editorSettings.codemirror,
                    {
                        indentUnit: 2,
                        tabSize: 2
                    }
                );
                var editor = wp.codeEditor.initialize( $('#ycd-edtitor-head'), editorSettings );
            }

            if( $('#ycd-edtitor-js').length ) {
                var editorSettings = wp.codeEditor.defaultSettings ? _.clone( wp.codeEditor.defaultSettings ) : {};
                editorSettings.codemirror = _.extend(
                    {},
                    editorSettings.codemirror,
                    {
                        indentUnit: 2,
                        tabSize: 2,
                        mode: 'javascript',
                    }
                );
                var editor = wp.codeEditor.initialize( $('#ycd-edtitor-js'), editorSettings );
            }

            if( $('#ycd-edtitor-css').length ) {
                var editorSettings = wp.codeEditor.defaultSettings ? _.clone( wp.codeEditor.defaultSettings ) : {};
                editorSettings.codemirror = _.extend(
                    {},
                    editorSettings.codemirror,
                    {
                        indentUnit: 2,
                        tabSize: 2,
                        mode: 'css',
                    }
                );
                var editor = wp.codeEditor.initialize( $('#ycd-edtitor-css'), editorSettings );
            }
        });
    })(jQuery);
};

YcdAdmin.prototype.proOptions = function() {
	var proOptions = jQuery('label .ycd-pro-span');

	if(!proOptions.length) {
		return false;
	}

    proOptions.parent().bind('click', function(e) {
		e.preventDefault();
		window.open(ycd_admin_localized.proUrl);
    });
};

YcdAdmin.prototype.redirectToSupportPage = function() {
	var supportSubMenu = jQuery('#menu-posts-ycdcountdown a[href="edit.php?post_type=ycdcountdown&page=supports"]');

	if(!supportSubMenu.length) {
		return false;
	}

    supportSubMenu.bind('click', function(e) {
    	e.preventDefault();
		window.open(ycd_admin_localized.supportURL);
    });
};

YcdAdmin.prototype.promotionalVideo = function() {
	var target = jQuery('.ycd-play-promotion-video');

	if(!target.length) {
		return false;
	}

	target.bind('click', function(e) {
		e.preventDefault();
		var href = jQuery(this).data('href');
		window.open(href);
	});
};

YcdAdmin.prototype.clockLivePreview = function() {
	this.changeClcokWidth();
	this.changeTimeZone();
	this.changeAlignClock();
	this.changeButtonBoxShadow();
};

YcdAdmin.prototype.changeButtonBoxShadow = function() {
    var spreadSizes = jQuery('#ycd-circle-box-shadow-horizontal, #ycd-circle-box-shadow-vertical, #ycd-circle-box-spread-radius, #ycd-circle-box-blur-radius');

    if (!spreadSizes) {
        return false;
    }
    var liveChangeShadow = function() {
        var shadowHorizontal = jQuery('#ycd-circle-box-shadow-horizontal').val()+'px';
        var shadowVertical = jQuery('#ycd-circle-box-shadow-vertical').val()+'px';
        var spreadRadius = parseInt(jQuery('#ycd-circle-box-spread-radius').val())+'px';
        var blurRadius = jQuery('#ycd-circle-box-blur-radius').val()+'px';
        var color = jQuery('#ycd-circle-box-shadow-color').val();
		setTimeout(function () {
            jQuery('.time_circles').css({'box-shadow': shadowHorizontal+' '+shadowVertical+' '+blurRadius+' '+spreadRadius+' '+color});
        }, 0);
    };

    jQuery('#ycd-circle-box-shadow').bind('change', function () {
		if(!jQuery(this).is(':checked')) {
            jQuery('.time_circles').css({'box-shadow': 'none'});
		}
		else {
            liveChangeShadow();
		}
    });
    spreadSizes.bind('change', function() {
        liveChangeShadow();
    });

    jQuery('#ycd-circle-box-shadow-color').minicolors({
	    format: 'rgb',
	    opacity: 1,
        change: function () {
            liveChangeShadow();
        }
    });
};

YcdAdmin.prototype.comingSonColor = function () {
	jQuery('.ycd-coming-soon-color').minicolors({
		format: 'rgb',
		opacity: 1,
		change: function () {
			liveChangeShadow();
		}
	});
};

YcdAdmin.prototype.changeClcokWidth = function() {
	var width = jQuery('.ycd-clock-width');

	if (width.length) {
		var that = this;
		width.bind('change', function() {
			var targetId = jQuery(this).data('target-index');
			var widthVal = parseInt(jQuery(this).val())+'px';
			var cnavas = jQuery('.ycdClock'+targetId);

			cnavas.attr('width', widthVal);
			cnavas.attr('height', widthVal);

			that.reinitClock(targetId);
		});
	}
};

YcdAdmin.prototype.changeTimeZone = function() {
	var timeZone = jQuery('.js-circle-time-zone');

	if(!timeZone.length) {
		return false;
	}
	var that = this;
	
	timeZone.bind('change', function() {
		var val = jQuery(this).val();
		var targetId = jQuery(this).data('target-index');

		if(!targetId) {
			return false;
		}
		var options = jQuery('.ycdClock'+targetId).data('options');
		if(!options) {
			return false;
		}
		options['timeZone'] = val;
		jQuery('.ycdClock'+targetId).attr('data-options', options);

		that.reinitClock(targetId);
	});
};

YcdAdmin.prototype.changeAlignClock = function() {
	var alignement = jQuery('.ycd-clock-alignment');

	if(!alignement.length) {
		return false;
	}
	var that = this;

	alignement.bind('change', function() {
		var val = jQuery(this).val();
		jQuery('.ycd-countdown-wrapper').css({'text-align': val});
	});
};

YcdAdmin.prototype.reinitClock = function(targetId) {
	var targetClassName = '.ycdClock'+targetId;
	var cnavas = jQuery(targetClassName);
	var dataArgs = cnavas.data('args');
	var dataOptions = cnavas.data('options');

	var width = jQuery(targetClassName).width();
	var height = jQuery(targetClassName).height();

	jQuery(targetClassName).remove();
	jQuery('.ycd-countdown-wrapper').prepend('<canvas data-args='+JSON.stringify(dataArgs)+' data-options='+JSON.stringify(dataOptions)+' class="ycdClock'+targetId+'" width="'+width+'px" height="'+height+'px"></canvas>');

	if (typeof YcdClock != 'undefined') {
		var obj = new YcdClock();
	}
	else if (typeof YcdClockPro != 'ndefined') {
		var obj = new YcdClockPro();
	}

	obj.init()
};

YcdAdmin.prototype.getTinymceContent = function()
{
	if (jQuery('.wp-editor-wrap').hasClass('tmce-active')) {
		return tinyMCE.activeEditor.getContent();
	}

	return jQuery('#ycd-newsletter-text').val();
};

YcdAdmin.prototype.newsletter = function() {
	var sendButton = jQuery('.js-send-newsletter');

	if (!sendButton.length) {
		return false;
	}
	var that = this;

	sendButton.bind('click', function(e) {
		e.preventDefault();
		jQuery('.ycd-validation-error').addClass('ycd-hide');
		var validationStatus = true;
		// var fromEmail = jQuery('.ycd-newsletter-from-email').val();
		// var subscriptionFormId = jQuery('.js-ycd-newsletter-forms option:selected').val();
		// subscriptionFormId = parseInt(subscriptionFormId);
		// var validateEmail =  fromEmail.search(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,10})+$/);
		// var emailsInFlow = jQuery('.ycd-emails-in-flow').val();
		// emailsInFlow = parseInt(emailsInFlow);

		// if (isNaN(subscriptionFormId)) {
		// 	jQuery('.ycd-newsletter-error').removeClass('ycd-hide');
		// 	validationStatus = false;
		// }

		// /*When the sent email isn't valid or the user hasn't selected any subscription form.*/
		// if (validateEmail == -1 ) {
		// 	validationStatus = false;
		// 	jQuery('.ycd-newsletter-from-email-error').removeClass('ycd-hide');
		// }

		// if (isNaN(emailsInFlow)) {
		// 	jQuery('.ycd-emails-in-flow-error').removeClass('ycd-hide');
		// 	validationStatus = false;
		// }

		// if (!validationStatus) {
		// 	return false;
		// }

		var newsletterSubject = jQuery('.ycd-newsletter-subject').val();
		var messageBody = that.getTinymceContent();
		var id = jQuery('#ycd-newsletters-list').val();
		
		var data = {
			nonce: ycd_admin_localized.nonce,
			action: 'ycd_send_newsletter',
			newslatterId: id,
			beforeSend: function() {
				jQuery('.ycd-js-newsletter-spinner').removeClass('ycd-hide');
				jQuery('.ycd-newsletter-notice').addClass('ycd-hide');
			},
		};

		jQuery.post(ajaxurl, data, function() {
			jQuery('.ycd-newsletter-notice').removeClass('ycd-hide');
			jQuery('.ycd-js-newsletter-spinner').addClass('ycd-hide');
		});
	});
};

YcdAdmin.prototype.redirectToProWebpage = function() {
	jQuery('.ycd-upgrade-button-red').bind('click', function(e) {
		window.open(ycd_admin_localized.proUrl);
	})
};

YcdAdmin.prototype.livePreview = function() {
	var preview = jQuery('.ycd-live-preview');

	if (!preview.length) {
		return false;
	}

	preview.draggable({
        stop: function(e, ui) {
        },
		drag: function () {
			jQuery('.ycd-live-preview').css({'right': 'inherit', 'bottom': 'inherit'})
		}
	});
};

function validateEmail(email) {
	var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
	return re.test(String(email).toLowerCase());
}

YcdAdmin.prototype.support = function() {
	var submit = jQuery('#ycd-support-request-button');

	if(!submit.length) {
		return false;
	}
	jQuery('#ycd-form').submit(function(e) {
		e.preventDefault();
		var isValid = true;
		var emailError = jQuery('.ycd-validate-email-error');
		emailError.addClass('ycd-hide');
		jQuery('.ycd-required-fields').each(function() {
			var currentVal = jQuery(this).val();
			jQuery('.'+jQuery(this).data('error')).addClass('ycd-hide');

			if(!currentVal) {
				isValid = false;
				jQuery('.'+jQuery(this).data('error')).removeClass('ycd-hide');
			}
		});

		if(!isValid) {
			return false;
		}

		if(!validateEmail(jQuery('#ycd-email').val())) {
			emailError.removeClass('ycd-hide');
			return false;
		}
		var data = {
			action: 'ycdSupport',
			nonce: ycd_admin_localized.nonce,
			formData: jQuery(this).serialize(),
			beforeSend: function() {
				submit.prop('disabled', true);
				jQuery('.ycd-support-spinner').removeClass('ycd-hide')
			}
		};

		jQuery.post(ajaxurl, data, function(result) {
			submit.prop('disabled', false);
			jQuery('.ycd-support-spinner').addClass('ycd-hide');
			jQuery('#ycd-form').remove();
			jQuery('.ycd-support-success').removeClass('ycd-hide');
		});
	});
};

YcdAdmin.prototype.soundPreview = function()  {
	var songValue = 1;
	var lastSong = undefined;

	jQuery('.js-preview-sound').bind('click', function() {
		var uploadFile = jQuery('#js-sound-open-url').val();
		if (typeof lastSong == 'undefined') {
			lastSong = new Audio (uploadFile);
		}

		/*
		 * songValue == 1 should be song
		 * songValue == 2 song should be pause
		 */
		if(songValue == 1) {
			lastSong.play();
			songValue = 2;

		}
		else if(songValue == 2) {
			lastSong.pause();
			songValue = 1;

		}

		lastSong.onended = function()
		{
			lastSong = undefined;
			songValue = 1;
		}
	});

	jQuery('#js-sound-open-url').change(function() {
		if(typeof lastSong != 'undefined') {
			lastSong.pause();
			lastSong = undefined;
		}
		songValue = 1;
	});

	jQuery('#js-reset-to-default-song').click(function(e) {
		e.preventDefault();

		if(typeof lastSong != 'undefined') {
			lastSong.pause();
			lastSong = undefined;
		}
		songValue = 1;

		var defaultSong = jQuery(this).data('default-song');
		jQuery('#js-sound-open-url').val(defaultSong).change();
	});
};

YcdAdmin.prototype.resetSound = function() {
	var resetButton = jQuery('#js-reset-to-default-song');

	if(!resetButton.length) {
		return false;
	}

	resetButton.bind('click', function() {
		var defaultSoundUrl = jQuery(this).data('default-song');
		jQuery('#js-sound-open-url').val(defaultSoundUrl).change();
	});
};

YcdAdmin.prototype.soundUpload = function() {
	var uploadButton = jQuery('#js-upload-countdown-end-sound');

	if(!uploadButton.length) {
		return false;
	}
	var uploader;
	uploadButton.bind('click', function(e) {
		e.preventDefault();

		if(uploader) {
			uploader.open();
			return false;
		}

		/* Extend the wp.media object */
		uploader = wp.media.frames.file_frame = wp.media({
			titleFF : ycd_admin_localized.changeSound,
			button : {
				text : ycd_admin_localized.changeSound
			},
			library : {type : ['audio/mpeg', 'audio/wav', 'audio/mp3']},
			multiple : false
		});

		/* When a file is selected, grab the URL and set it as the text field's value */
		uploader.on('select', function() {
			var attachment = uploader.state().get('selection').first().toJSON();
			jQuery('#js-sound-open-url').val(attachment.url).change();
		});
		/* Open the uploader dialog */
		uploader.open();
	});
};

YcdAdmin.prototype.switchCountdown = function() {
	var switchCountdown = jQuery('.ycd-countdown-enable');

	if(!switchCountdown.length) {
		return false;
	}

	switchCountdown.each(function() {
		jQuery(this).bind('change', function() {
			var data = {
				action: 'ycd-switch',
				nonce: ycd_admin_localized.nonce,
				id: jQuery(this).data('id'),
				checked: jQuery(this).is(':checked')
			};

			jQuery.post(ajaxurl, data, function() {

			});
		})
	});
};

YcdAdmin.prototype.multipleChoiceButton = function() {
	var choiceOptions = jQuery('.ycd-choice-option-wrapper input');
	if(!choiceOptions.length) {
		return false;
	}

	var that = this;

	choiceOptions.each(function() {

		if(jQuery(this).is(':checked')) {
			that.buildChoiceShowOption(jQuery(this));
		}

		jQuery(this).on('change', function() {
			that.hideAllChoiceWrapper(jQuery(this).parents('.ycd-multichoice-wrapper').first());
			that.buildChoiceShowOption(jQuery(this));
		});
	})
};

YcdAdmin.prototype.hideAllChoiceWrapper = function(choiceOptionsWrapper) {
	choiceOptionsWrapper.find('input').each(function() {
		var choiceInputWrapperId = jQuery(this).attr('data-attr-href');
		jQuery('#'+choiceInputWrapperId).addClass('ycd-hide');
	})
};

YcdAdmin.prototype.buildChoiceShowOption = function(currentRadioButton)  {
	var choiceOptions = currentRadioButton.attr('data-attr-href');
	var currentOptionWrapper = currentRadioButton.parents('.ycd-choice-wrapper').first();
	var choiceOptionWrapper = jQuery('#'+choiceOptions).removeClass('ycd-hide');
	currentOptionWrapper.after(choiceOptionWrapper);
};

YcdAdmin.prototype.livePreviewToggle = function() {
	var livePreviewText = jQuery('.ycd-toggle-icon');

	if (!livePreviewText.length) {
		return false;
	}
	livePreviewText.attr('checked', true);
	livePreviewText.bind('click', function() {
		var isChecked = jQuery(this).attr('checked');

		if (isChecked) {
			jQuery('.ycd-toggle-icon').removeClass('ycd-toggle-icon-open').addClass('ycd-toggle-icon-close');
		}
		else {
			jQuery('.ycd-toggle-icon').removeClass('ycd-toggle-icon-close').addClass('ycd-toggle-icon-open');
		}
	    jQuery('.ycd-countdown-wrapper').slideToggle(1000, 'swing', function () {
	    });
		livePreviewText.attr('checked', !isChecked);
	});
};

YcdAdmin.prototype.accordionContent = function() {

	var that = this;
	var accordionCheckbox = jQuery('.ycd-accordion-checkbox');

	if (!accordionCheckbox.length) {
		return false;
	}
	accordionCheckbox.each(function () {
		that.doAccordion(jQuery(this), jQuery(this).is(':checked'));
	});
	var customValueAccordion = jQuery('.ycd-custom-value-accordion');
	if (customValueAccordion.length) {
        customValueAccordion.bind('change', function() {
            var val = jQuery('option:selected', this).val() == jQuery(this).data('custom');
            var currentCheckbox = jQuery(this);
            that.doAccordion(currentCheckbox, val);
        });
        customValueAccordion.change();
	}
	accordionCheckbox.each(function () {
		jQuery(this).bind('change', function () {
			var attrChecked = jQuery(this).is(':checked');
			var currentCheckbox = jQuery(this);
			that.doAccordion(currentCheckbox, attrChecked);
		});
	});
};

YcdAdmin.prototype.doAccordion = function(checkbox, isChecked) {
	var accordionContent = checkbox.parents('.row').nextAll('.ycd-accordion-content').first();
	jQuery(window).trigger('ycdAccordionTriggered');
	if(isChecked) {
		accordionContent.removeClass('ycd-hide-content');
	}
	else {
		accordionContent.addClass('ycd-hide-content');
	}
};

YcdAdmin.prototype.select2 = function() {
	var select2 = jQuery('.js-ycd-select');

	if(!select2.length) {
		return false;
	}

	select2.select2();
};

YcdAdmin.prototype.initCountdownDateTimePicker = function() {
	var countdown = jQuery('.ycd-date-time-picker');

	if(!countdown.length) {
		return false;
	}

	countdown.ycddatetimepicker({
		format: 'Y-m-d H:i',
		minDate: 0
	});
};

YcdAdmin.prototype.initMoneyDateTimePicker = function() {
	var countdown = jQuery('.ycd-money-time-picker');

	if(!countdown.length) {
		return false;
	}

	countdown.ycddatetimepicker({
		format: 'Y-m-d H:i',
		maxDate: 0
	});
};

YcdAdmin.prototype.imageButton = function() {
	var custom_uploader;
	jQuery('.js-ycd-image-btn').each(function () {
		jQuery(this).click(function(e) {
			e.preventDefault();
			var currentButton = jQuery(this);
			/* If the uploader object has already been created, reopen the dialog */
			if (window.custom_uploader) {
				return;
			}
			/* Extend the wp.media object */
			custom_uploader = wp.media.frames.file_frame = wp.media({
				titleFF: 'Choose Image',
				button: {
					text: 'Choose Image'
				},
				multiple: false
			});
			window.custom_uploader = custom_uploader;
			/* When a file is selected, grab the URL and set it as the text field's value */
			custom_uploader.on('select', function() {
				var attachment = custom_uploader.state().get('selection').first().toJSON();
				var imageURL = jQuery('#'+jQuery(currentButton).data('src-id'));
				imageURL.val(attachment.url);
				imageURL.trigger('change');
				custom_uploader, window.custom_uploader = '';
			});
			/* Open the uploader dialog */
			custom_uploader.open();
		});
	});

	/* its finish image uploader */
};

YcdAdmin.prototype.closeButtonPositions = function () {
	if (!jQuery('.ycd-fixed-position-val').length) {
		return ;
	}
	var position = function () {
		var positionValue = jQuery('.ycd-fixed-position-val').val();
		jQuery('.ycd-fixed-positions-wrapper').addClass('ycd-hide');
		var positions = positionValue.split('_');

		for(var cur in positions) {
			jQuery('.ycd-position-wrapper-'+positions[cur]).removeClass('ycd-hide');
		}
	}

	jQuery('.ycd-fixed-position-val').bind('change', function () {
		position()
	})

	position();
}

YcdAdmin.prototype.floatingPositions = function () {
	if (!jQuery('.ycd-fixed-floating-position-val').length) {
		return ;
	}
	var position = function () {
		var positionValue = jQuery('.ycd-fixed-floating-position-val').val();
		jQuery('.ycd-fixed-floating-positions-wrapper').addClass('ycd-hide');
		var positions = positionValue.split('_');

		for(var cur in positions) {
			jQuery('.ycd-floating-position-wrapper-'+positions[cur]).removeClass('ycd-hide');
		}
	}

	jQuery('.ycd-fixed-floating-position-val').bind('change', function () {
		position()
	})

	position();
}

YcdAdmin.prototype.metaboxSubOptions = function () {
	var settingsWrapper = jQuery(".ycd-sub-setting-label-wrapper");
	settingsWrapper.bind("click", function () {
		var status = jQuery(this).data('status');
		if (!status) {
			jQuery(this).next().hide();
			jQuery(this).find(".toggle-indicator").addClass('rotate')
		}
		else {
			jQuery(this).next().show();
			jQuery(this).find(".toggle-indicator").removeClass('rotate')
		}
		jQuery(this).data('status', !status)

	})
}

YcdAdmin.prototype.generalColors = function () {
	jQuery('.generalColors').minicolors({
		format: 'rgb',
		opacity: 1
	});
}

jQuery(document).ready(function() {
	new YcdAdmin();
});

/*Conditions builder*/
function YcdConditionBuilder() {
}

YcdConditionBuilder.prototype.init = function() {
    this.conditionsBuilder();
    this.select2();
};

YcdConditionBuilder.prototype.select2 = function() {
    var select2 = jQuery('.js-ycd-select');

    if(!select2.length) {
        return false;
    }
    select2.each(function() {
        var type = jQuery(this).data('select-type');

        var options = {
            width: '100%'
        };

        if (type == 'ajax') {
            options = jQuery.extend(options, {
                minimumInputLength: 1,
                ajax: {
                    url: ajaxurl,
                    dataType: 'json',
                    delay: 250,
                    type: "POST",
                    data: function(params) {

                        var searchKey = jQuery(this).attr('data-value-param');
                        var postType = jQuery(this).attr('data-post-type');

                        return {
                            action: 'ycd_select2_search_data',
                            nonce_ajax: ycd_admin_localized.nonce,
                            postType: postType,
                            searchTerm: params.term,
                            searchKey: searchKey
                        };
                    },
                    processResults: function(data) {
                        return {
                            results: jQuery.map(data.items, function(item) {

                                return {
                                    text: item.text,
                                    id: item.id
                                }

                            })
                        };
                    }
                }
            });
        }

        jQuery(this).select2(options);
    });
};

YcdConditionBuilder.prototype.conditionsBuilder = function() {
    this.conditionsBuilderEdit();
    this.conditionsBuilderAdd();
    this.conditionsBuilderDelte();
};

YcdConditionBuilder.prototype.conditionsBuilderAdd = function() {
    var params = jQuery('.ycd-condition-add');

    if(!params.length) {
        return false;
    }
    var that = this;
    params.bind('click', function() {
        var currentWrapper = jQuery(this).parents('.ycd-condion-wrapper').first();
        var selectedParams = currentWrapper.find('.js-conditions-param').val();

        that.addViaAjax(selectedParams, currentWrapper);
    });
};

YcdConditionBuilder.prototype.conditionsBuilderDelte = function() {
    var params = jQuery('.ycd-condition-delete');

    if(!params.length) {
        return false;
    }

    params.bind('click', function() {
        var currentWrapper = jQuery(this).parents('.ycd-condion-wrapper').first();

        currentWrapper.remove();
    });
};

YcdConditionBuilder.prototype.conditionsBuilderEdit = function() {
    var params = jQuery('.js-conditions-param');

    if(!params.length) {
        return false;
    }
    var that = this;
    params.bind('change', function() {
        var selectedParams = jQuery(this).val();
        var currentWrapper = jQuery(this).parents('.ycd-condion-wrapper').first();

        that.changeViaAjax(selectedParams, currentWrapper);
    });
};

YcdConditionBuilder.prototype.addViaAjax = function(selectedParams, currentWrapper) {
    var conditionId = parseInt(currentWrapper.data('condition-id'))+1;
    var conditionsClassName = currentWrapper.parent().data('child-class');

    var that = this;

    var data = {
        action: 'ycd_add_conditions_row',
        nonce: ycd_admin_localized.nonce,
        conditionId: conditionId,
        conditionsClassName: conditionsClassName,
        selectedParams: selectedParams
    };

    jQuery.post(ajaxurl, data, function(response) {
        currentWrapper.after(response);
        that.init();
    });
};

YcdConditionBuilder.prototype.changeViaAjax = function(selectedParams, currentWrapper) {
    var conditionId = currentWrapper.data('condition-id');
    var conditionsClassName = currentWrapper.parent().data('child-class');

    var that = this;

    var data = {
        action: 'ycd_edit_conditions_row',
        nonce: ycd_admin_localized.nonce,
        conditionId: conditionId,
        conditionsClassName: conditionsClassName,
        selectedParams: selectedParams
    };

    jQuery.post(ajaxurl, data, function(response) {
        currentWrapper.replaceWith(response);
        that.init();
    });
};

jQuery(document).ready(function() {
    var obj = new YcdConditionBuilder();
    obj.init();
});