var gw_isMobile = isMobile(); var gw_isIE = document.documentMode != undefined && document.documentMode >5 ? document.documentMode : false; var supportsSVG = document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#Image", "1.1") if (!supportsSVG && document.documentElement.className.indexOf('no-svg') == '-1') { var htmlClasses=(document.documentElement.className).split(' '); htmlClasses.push('no-svg'); document.documentElement.className = htmlClasses.join(' ').replace(/^\s+|\s+$/g, ''); } if (gw_isIE) { var htmlClasses=(document.documentElement.className).split(' '); if (gw_isIE == 9) { htmlClasses.push('ie9'); } else if (gw_isIE == 8) { htmlClasses.push('ie8'); } else { htmlClasses.push('ie'); } document.documentElement.className = htmlClasses.join(' ').replace(/^\s+|\s+$/g, ''); } function isMobile() { var htmlClasses=(document.documentElement.className).split(' '), mobileMq = 'screen and (max-width:782px)'; if (window.matchMedia && window.matchMedia(mobileMq).matches) { if (document.documentElement.className.indexOf('gwa-mobile') == '-1') { htmlClasses.push('gwa-mobile'); document.documentElement.className = htmlClasses.join(' ').replace(/^\s+|\s+$/g, ''); } return true; } else { if (document.documentElement.className.indexOf('gwa-mobile') != '-1') { document.documentElement.className = document.documentElement.className.replace('gwa-mobile', '').replace(/^\s+|\s+$/g, ''); } return false; }; }; /* Detect CSS transition support */ function supportsTransitions() { var s = document.createElement('p').style; return 'transition' in s || 'WebkitTransition' in s || 'MozTransition' in s || 'msTransition' in s || 'OTransition' in s; } var supportsTransitions = supportsTransitions(); function supportsAjaxUpload() { var xhr = new XMLHttpRequest(); return !! (xhr && ('upload' in xhr) && ('onprogress' in xhr.upload )); }; jQuery(document).ready(function($, undefined) { /* ---------------------------------------------------------------------- / [1] SETUP & COMMON / ---------------------------------------------------------------------- */ var $wpContent = $('#wpcontent'); $goPricingAdmin = $('#go-pricing-admin-wrap'), $goPricingForm = $goPricingAdmin.find('#go-pricing-form'); /* get cursor positions */ var getCurPos = function($obj) { var input = $obj[0]; var pos = {start: 0, end:0}; if (input.setSelectionRange) { pos.start=input.selectionStart; pos.end=input.selectionEnd; } else if (input.createTextRange) { input.focus(); var c = "\001", sel=document.selection.createRange(), dul=sel.duplicate(), len=0; dul.moveToElementText(input); sel.text = c; len = (dul.text.indexOf(c)); sel.moveStart('character',-1); sel.text = ""; pos.start = len; pos.end = len + sel.text.length; } return pos; }; var setCurPos = function($obj, pos) { var input = $obj[0]; if (input.setSelectionRange) { input.setSelectionRange(pos.start, pos.end); } else if (input.createTextRange) { var selection = input.createTextRange(); selection.collapse(true); selection.moveEnd('character', pos.end); selection.moveStart('character', pos.start); selection.select(); } }; /* Get cursor position of taget input */ $goPricingAdmin.on('blur', 'input[type="text"][data-popup], textarea[data-popup]', function(e) { if (typeof this.type !=='undefined' && (this.type =='textarea' || this.type =='text' ) ) { var $this = $(this), pos=getCurPos($this); $this.data('cur-start',pos.start).data('cur-end',pos.end); } }); $goPricingAdmin.on('click', '[data-action*="font-style"]', function(e) { var $this = $(this); if (!$this.hasClass('gwa-current')) { $this.addClass('gwa-current'); $this.find('input').val(1); } else { $this.removeClass('gwa-current'); $this.find('input').val(''); } }); $goPricingAdmin.on('click', '[data-action="add-tag"]', function(e) { var $this = $(this), $wrapper = $this.closest('.gwa-tags'), $tags = $wrapper.find('.gwa-tags-inner'), $input = $wrapper.find('select'); if ($tags.find('[value="'+$input.find('option').eq($input[0].selectedIndex).html()+'"]').length) return; $(''+$input.find('option').eq($input[0].selectedIndex).html()+'').appendTo($tags); }); $goPricingAdmin.on('click', '.gwa-tag-remove', function(e) { var $this = $(this); $this.closest('.gwa-tag').remove(); e.preventDefault(); }); /* Open & Close Admin Box panels */ $goPricingAdmin.on('click', '.gwa-col-box-header', function() { var $this=$(this), $box=$this.closest('.gwa-col-box'), $boxContent=$box.find('.gwa-col-box-content'); if (!$this.find('.gwa-col-box-ctrl').length) return; if ($this.hasClass('ui-sortable-handle') && $this.closest('.ui-sortable-helper').length) { return; } if ($boxContent.is(':visible')) { $boxContent.css('display','block'); $boxContent.slideUp(); $box.removeClass('gwa-open'); } else { $boxContent.slideDown(); $box.addClass('gwa-open'); } }); $goPricingAdmin.on('focusin focusout', '.gwa-textarea-btn textarea', function(e) { var $this = $(this); if (e.type == 'focusin' ) { $this.closest('.gwa-textarea-btn').addClass('gwa-focus'); } else { $this.closest('.gwa-textarea-btn').removeClass('gwa-focus'); } }); /* Open & Close Admin Box panels */ $goPricingAdmin.on('click', '.gwa-abox-tab', function(e) { var $this=$(this), $tab=$this.closest('.gwa-abox-tabs'), index = $tab.find('.gwa-abox-tab').index( $this ); $this.addClass('gwa-current').siblings().removeClass('gwa-current'); $tab.find('.gwa-abox-tab-content').eq(index).addClass('gwa-current').siblings().removeClass('gwa-current'); e.preventDefault(); }); /* Open & Close Admin Box panels */ $goPricingAdmin.on('click', '.gwa-abox-header-tab', function(e) { var $this=$(this), $box=$this.closest('.gwa-abox'), $boxContent=$box.find('.gwa-abox-content'), currentIndex = $box.find('.gwa-abox-header-tab').index($this); if ($this.data('action-type')) { $this.closest('form').find('input[name="_action_type"]').val($this.data('action-type')); } if (!$this.hasClass('gwa-current')) { $this.addClass('gwa-current').siblings().removeClass('gwa-current'); $boxContent.eq(currentIndex).addClass('gwa-current').css('display','block').siblings().removeClass('gwa-current').css('display','none'); if ($box.hasClass('gwa-closed')) $boxContent.eq(currentIndex).css('display','none'); } }); /* Open & Close Admin Box panels */ $goPricingAdmin.on('click', '.gwa-abox-header', function(e) { var $this=$(this), $box=$this.closest('.gwa-abox'), $boxContent = $box.find('.gwa-abox-content.gwa-current').length ? $box.find('.gwa-abox-content.gwa-current') : $box.find('.gwa-abox-content:first'); if (!$this.find('.gwa-abox-ctrl').length) return; if ($this.hasClass('ui-sortable-handle') && $this.closest('.ui-sortable-helper').length) { return; } if ($(e.target).closest('.gwa-abox-header-tab').length) { return; } if (!$box.hasClass('gwa-closed')) { $boxContent.css('display','block'); $boxContent.slideUp(); $box.addClass('gwa-closed'); } else { $boxContent.slideDown(function(){ }); $box.removeClass('gwa-closed'); } }); /* Select Help Mode */ $goPricingAdmin.on('change', 'select[data-action="help"]', function() { $goPricingAdmin.find('.gwa-pcontent, .gwa-popup').attr('data-help', $(this).val()); document.cookie='go_pricing[settings][help]['+userSettings.uid+']='+$(this).val(); }); var setHelpCookie = function() { if (document.cookie.indexOf('go_pricing[settings][help]['+userSettings.uid+']') == -1) { document.cookie='go_pricing[settings][help]['+userSettings.uid+']=1'; $goPricingAdmin.find('.gwa-pcontent').attr('data-help', 1); } } setHelpCookie(); /* Select Help Mode */ $goPricingAdmin.on('change', 'select[data-action="tm-rows"]', function() { var $this =$(this), $parent = $goPricingAdmin.find('#go-pricing-table-manager'); document.cookie='go_pricing[settings][tm-rows]['+userSettings.uid+']='+$(this).val(); if ($this.val()==5) { $parent.addClass('gwa-thumbs-rows5'); $parent.removeClass('gwa-thumbs-rows10'); } else if ($this.val()==10) { $parent.addClass('gwa-thumbs-rows10'); $parent.removeClass('gwa-thumbs-rows5'); } else { $parent.removeClass('gwa-thumbs-rows5'); $parent.removeClass('gwa-thumbs-rows10'); } loadThumbInview(); }); /* Set Top Bar */ function setTopBar() { var $topBar = $goPricingAdmin.find('.gwa-ptopbar'); $topBar.css('width', $('#wpcontent').width()-22); if ( $(document).scrollTop() >=20 ) { $topBar.css({ 'top' : 32, 'box-shadow' : '0 2px 5px -2px rgba(0,0,0,0.1)' }); } else { $topBar.css({ 'top' : -47, 'box-shadow' : '0 2px 5px -2px rgba(0,0,0,0)' }); }; }; $(window).on('scroll resize', function() { setTopBar(); }); /* Site loader */ function setLoader() { var $siteLoader = $goPricingAdmin.find('.gwa-site-loader'); $siteLoader.css('width', $wpContent.width()-22); }; setLoader(); $(window).on('scroll resize', function() { setLoader(); }); function showLoader(pageEffect, fullScreen) { var $siteLoader = $goPricingAdmin.find('.gwa-site-loader'); $siteLoader.addClass('gwa-show'); if (pageEffect===true) $goPricingAdmin.addClass('gwa-loading'); if ($goPricingAdmin.find('#gwa-popup-wrap').length || fullScreen===true) { $siteLoader.addClass('gwa-site-loader-fullwidth'); } else { $siteLoader.removeClass('gwa-site-loader-fullwidth'); } }; function hideLoader() { var $siteLoader = $goPricingAdmin.find('.gwa-site-loader'); $siteLoader.removeClass('gwa-show'); $goPricingAdmin.removeClass('gwa-loading'); }; /* Ajax Notification */ var ajaxMsgTimeout = false; function showAjaxMsg(message, type) { if (typeof message === 'undefined') return; if (typeof type === 'undefined') type = 'updated'; var $msg = $('.gwa-ajaxmsg'), hasMsg = $msg.length ? true : false, $newMsg = createAjaxMsg(message, type); $goPricingAdmin.find('.gwa-ptopbar').append($newMsg); if (hasMsg) { $msg.remove(); $newMsg.addClass('gwa-notrans').css({ 'opacity' : 1, 'marginTop' : 0 }); } else { setTimeout(function(){ $newMsg.css({ 'opacity' : 1, 'marginTop' : 0 }); },150); } clearTimeout(ajaxMsgTimeout); ajaxMsgTimeout = setTimeout(function(){ hideAjaxMsg(); },10000); } function hideAjaxMsg() { var $msg = $('.gwa-ajaxmsg'); $msg.removeClass('gwa-notrans').css('opacity', 0); setTimeout(function() { $msg.remove(); }, 150); } function createAjaxMsg(message, type) { if (typeof message === 'undefined') return; if (typeof type === 'undefined') type = 'updated'; var msgClass = '', msgIcon = ''; if (type == 'updated') { msgClass = 'gwa-ajaxmsg-updated'; msgIcon = 'fa fa-check'; } else if ( type == 'error' ) { msgClass = 'gwa-ajaxmsg-error'; msgIcon = 'fa fa-exclamation-triangle'; } else if ( type == 'info' ) { msgClass = 'gwa-ajaxmsg-info'; msgIcon = 'fa fa-info-circle'; }; return $('
', { 'class' : 'gwa-ajaxmsg ' + msgClass, 'html' : '' }); } $goPricingAdmin.on('click', '.gwa-ajaxmsg-close', function(e) { e.preventDefault(); clearTimeout(ajaxMsgTimeout); hideAjaxMsg(); }); /* Handle file uploads */ var dragtimeout = false, formdata = null; function handleFileSelect($elem, file) { var $form = $elem.closest('form'), $input = $form.find('input[type="file"]'), ajaxEnabled = $elem.closest('.gwa-pcontent').data('ajax') !== 'undefined' && $elem.closest('.gwa-pcontent').data('ajax') === true ? true : false; $elem.closest('.gwa-dnd-upload').find('.gwa-dnd-upload-label p:first').text(function() {return file.name ? file.name +' ('+file.size+' bytes)' : file}); if ( file.name ) { /* check extension */ if ( $input.data('allowed-ext') ) { var fileExt = file.name.split('.'); if ( fileExt.length == 1 || fileExt[fileExt.length-1].toLowerCase() != $input.data('allowed-ext') ) { showAjaxMsg(''+GoPricingL10n.upload_ext+'
', 'error'); return; } } /* check size */ if ( $input.data('max-size') ) { if ( !file.size ) { showAjaxMsg(''+GoPricingL10n.upload_size_null+'
', 'error'); return; } if ( file.size > $input.data('max-size') ) { showAjaxMsg(''+GoPricingL10n.upload_size+'
', 'error'); return; } } } if ( !supportsAjaxUpload() ) return; formdata = new FormData(); $form.find(':input').each(function(index, element) { formdata.append('action' , 'go_pricing_ajax_action'); switch(element.type) { case 'file' : formdata.append(element.name , file); break; default : formdata.append(element.name , $(element).val()); } }); if ( !ajaxEnabled ) return; $.ajaxPrefilter(function( options, originalOptions, jqXHR ) { if (!formdata || $goPricingAdmin.find('#go-pricing-form')[0].name != "impex-form" && $goPricingAdmin.find('#go-pricing-form')[0].name != "plugin-update-form" || ( $goPricingAdmin.find('#go-pricing-form')[0].name == "impex-form" && $goPricingAdmin.find('[name="_action_type"]').val() != 'import' ) ) { options = originalOptions; return; } options.global = false; options.processData = false; options.contentType = false; options.data = formdata; options.xhr = function () { var xhr = new window.XMLHttpRequest(); xhr.upload.addEventListener('progress', function(e){ if (e.lengthComputable) { var percentComplete = Math.round( e.loaded / e.total * 100), $label = $elem.closest('.gwa-dnd-upload').find('.gwa-dnd-upload-label p:first'); if (!$label.find('span').length) { $('', { 'html' : ' - ' + percentComplete + '%' }).appendTo($label); } else { $label.find('span').html(' - ' + percentComplete + '%' ); } $elem.closest('.gwa-dnd-upload').find('.gwa-dnd-upload-label p:first'); } }, false); return xhr; } }); $form.submit(); }; $goPricingAdmin.on('dragover dragleave drop', '.gwa-dnd-upload', function(e) { var $this = $(this), $input = $this.find('input[type="file"]'), ajaxEnabled = $this.closest('.gwa-pcontent').data('ajax') !== 'undefined' && $this.closest('.gwa-pcontent').data('ajax') === true ? true : false; e.preventDefault(); e.stopPropagation(); if ( !supportsAjaxUpload() || !ajaxEnabled ) return; switch (e.type) { case 'dragover' : clearTimeout(dragtimeout); if (!$this.hasClass('gwa-current')) $this.addClass('gwa-current'); break; case 'dragleave' : dragtimeout = setTimeout(function(){ $this.removeClass('gwa-current'); },50); break; case 'drop' : clearTimeout(dragtimeout); $this.removeClass('gwa-current'); var file = (e.originalEvent.target.files || e.originalEvent.dataTransfer.files)[0]; handleFileSelect($this, file); break; } }); $goPricingAdmin.on('change', '.gwa-dnd-upload input[type="file"]', function(e) { var $this = $(this), file = this.files ? this.files[0] : this.value.replace('C:\\fakepath\\', ''), $form = $this.closest('form'); handleFileSelect($this, file); }); $goPricingAdmin.on('click', '[data-action="dnd-upload"]', function(e) { var $this = $(this); e.preventDefault(); $this.closest('.gwa-dnd-upload').find('input[type="file"]').trigger('click'); }); /* Table Manager */ /* Search table name */ function seachTable($elem) { if (!$elem || $goPricingAdmin.find('#go-pricing-table-manager').data('cnt') == 0) return; var $parent = $elem.closest('.gwa-search-input'), $input = $parent.find('input[type="text"]'), $label = $parent.find('span'), $assets = $goPricingAdmin.find('.gwa-search-assets'); $filter = $goPricingAdmin.find('[data-action="tm-filter-skin"]'); thumbCnt = 0; $goPricingAdmin.find('#go-pricing-table-manager').find('.gwa-thumb').not('.gwa-thumb-new').each(function(index, element) { if ($(element).find('.gwa-thumb-title').text().toLowerCase().indexOf($input.val().toLowerCase()) == -1 && $(element).find('.gwa-thumb-title').data('id').indexOf($input.val().toLowerCase()) == -1 || ( $filter.val() != $(element).data('style') && $filter.val() != '' ) ) { $(element).hide(); } else { $(element).show(); thumbCnt++; }; }); if ($input.val() == '' && $filter.val() == '') { $assets.hide(); } else { $assets.show(); } $assets.find('span').text('('+thumbCnt+')'); $goPricingAdmin.find('#go-pricing-table-manager').data('filtered-cnt', thumbCnt) if (thumbCnt == 0) { $goPricingAdmin.find('#go-pricing-table-manager .gwa-dash-nores').show(); } else { $goPricingAdmin.find('#go-pricing-table-manager .gwa-dash-nores').hide(); } loadThumbInview(); }; $goPricingAdmin.on('keydown','[data-action="tm-search"] input[type="text"]', function(e) { var code = e.keyCode || e.which; if (code==13) { seachTable($(this)); return false; }; }); $goPricingAdmin.on('click','[data-action="tm-search"] a', function(e) { seachTable($(this)); e.preventDefault(); }); $goPricingAdmin.on('change','[data-action="tm-filter-skin"]', function(e) { $goPricingAdmin.find('[data-action="tm-search"] a').trigger('click'); }); $goPricingAdmin.on('click','[data-action="tm-search-reset"]', function(e) { $goPricingAdmin.find('[data-action="tm-search"] input[type="text"]').val(''); $goPricingAdmin.find('[data-action="tm-filter-skin"]').prop('selectedIndex',0); $goPricingAdmin.find('[data-action="tm-search"] a').trigger('click'); e.preventDefault(); }); /* Select thumbnail number of rows to show */ if (typeof $goPricingAdmin.data('settings') != undefined || !$goPricingAdmin.data('settings').hasOwnProperty('tm-max-rows')) { $goPricingAdmin.data('settings', $.extend( $goPricingAdmin.data('settings'), { 'tm-max-rows' : 3 })); setTimeout(function() { $goPricingAdmin.find('[data-id="tm-max-rows"]').val($goPricingAdmin.data('settings')['tm-max-rows']).trigger('change'); }, 5); }; $goPricingAdmin.on('change','#go-pricing-table-manager [data-id="tm-max-rows"]', function() { var $this = $(this), $parent = $goPricingAdmin.find('#go-pricing-table-manager'); if ($this.val() == 5) { $parent.addClass('gwa-thumbs-rows5').removeClass('gwa-thumbs-rows10'); } else if ($this.val() == 10) { $parent.addClass('gwa-thumbs-rows10').removeClass('gwa-thumbs-rows5'); } else { $parent.removeClass('gwa-thumbs-rows10').removeClass('gwa-thumbs-rows5'); } }); /* Function to load thumbnail image */ function loadThumbInview() { var $parent = $goPricingAdmin.find('#go-pricing-table-manager .gwa-thumbs'), parentOffset = $parent.offset(), parentHeight = $parent.outerHeight(); if (!$parent.length) return; if ($parent.length) { $goPricingAdmin.find('.gwa-thumb').each(function(index, element) { var thumbOffset = $(element).offset(), $thumbMedia = $(element).find('.gwa-thumb-media'), thumbSrc = $thumbMedia.data('src') if (thumbOffset.top < parentOffset.top+parentHeight && typeof $(element).data('loading') == 'undefined' && typeof thumbSrc != 'undefined' && !$(element).hasClass('.gwa-thumb-new')) { $(element).data('loading', true) var thumbImg = new Image; thumbImg.onload=function(){ $(''+$goPricingAdmin.data('ajaxerror')+'
', 'error'); }).done(function(data, textStatus, jqXHR) { if (data == 0) showAjaxMsg(''+GoPricingL10n.ajax_error+'
', 'error'); var $ajaxResponse=$('', { 'class':'ajax-response', 'html' : data }); if ($ajaxResponse.find('#download_url').length) window.location.href = $ajaxResponse.find('#download_url').text(); /* Page specific codes */ /* Table manager page */ if (formName == "tm-form") { if ( $ajaxResponse.find('.gwa-thumbs').length ) { $goPricingAdmin.find('.gwa-thumbs').html( $ajaxResponse.find('.gwa-thumbs').html() ); $goPricingAdmin.find('.gwa-thumbs-assets').removeClass('gwa-show'); $goPricingAdmin.find('.gwa-thumb').addClass('gwa-notrans').css({ 'opacity' : 1, 'top': 0 }); /* ?? */ $goPricingAdmin.find('#go-pricing-table-manager .gwa-abox-content-header-cell-left').html($ajaxResponse.find('#go-pricing-table-manager .gwa-abox-content-header-cell-left').html()); $goPricingAdmin.find('#go-pricing-table-manager .gwa-abox-title span').html( $ajaxResponse.find('#go-pricing-table-manager .gwa-abox-title span').html()); getThumbIndex(); loadThumbInview(); }; } if (formName == "te-form") { if ($ajaxResponse.find('#postid').length && !$goPricingAdmin.find('[name="postid"]').length) { $this.prepend(''); $goPricingAdmin.find('[data-popup="live-preview-edit"]').data('id', $ajaxResponse.find('#postid').text()); $goPricingAdmin.find('[data-popup="live-preview-edit"]').data('popup-subtitle', $goPricingAdmin.find('[name="name"]').val()); $goPricingAdmin.find('[data-popup="live-preview-edit"]').data('alert', ''); $goPricingAdmin.find('.gwa-shortcode-row').show(); if (window.history.replaceState) { history.replaceState({ content: $('form').html()+'-', form: 'go-pricing-form' }, document.title, window.location.search.split('&')[0]+'&action=edit&id='+$ajaxResponse.find('#postid').text()); }; }; $goPricingAdmin.find('.gwa-shortcode-row input').val('[go_pricing id="'+$goPricingAdmin.find('[name="id"]').val()+'"]'); }; if (formName == "import-form" || formName == "impex-form") { formdata = null; if ( $ajaxResponse.find('.gwa-pcontent').length ) { $('.gwa-wrap').find('.gwa-pcontent').html( $ajaxResponse.find('.gwa-pcontent').html() ) } if ( $ajaxResponse.find('.gwa-ptopbar').length && $ajaxResponse.find('.gwa-ptopbar').html() != $ajaxResponse.find('.gwa-ptopbar').html() ) { $('.gwa-wrap').find('.gwa-ptopbar').html( $ajaxResponse.find('.gwa-ptopbar').html() ) } $goPricingAdmin.find('select').trigger('change'); }; /* Plugin update page */ if (formName == "plugin-update-form") { formdata = null; if ( $ajaxResponse.find('.gwa-pcontent').length ) { $('.gwa-wrap').find('.gwa-pcontent').html( $ajaxResponse.find('.gwa-pcontent').html() ) } } if ( $ajaxResponse.find('#result').length && typeof $ajaxResponse.find('#result')[0].className !== "undefined" ) { setTimeout(function() { showAjaxMsg($ajaxResponse.find('#result').html(), $ajaxResponse.find('#result')[0].className); }, 5); }; }); return false; }); function setColWidth(width) { var $editor = $goPricingAdmin.find('#go-pricing-column-editor'), $cols = $editor.find('.go-pricing-col'), colWidth = width !== undefined ? width : 0; if (width === undefined) { for (var x=0; x < $cols.length; x++) { var $elem = $cols.eq(x); colWidth += $elem.outerWidth(true); } } $cols.closest('.go-pricing-cols').css('width',colWidth+278); } function setColIndex() { var $editor = $goPricingAdmin.find('#go-pricing-column-editor'), $cols = $editor.find('.go-pricing-col'), colWidth = 0; if ($cols.length) { $editor.find('.go-pricing-col-new').css('margin-top', 48); } else { $editor.find('.go-pricing-col-new').css('margin-top', 10); }; for (var x=0; x < $cols.length; x++) { var $elem = $cols.eq(x); colWidth += $elem.outerWidth(true); $elem.data('index', x).find('.go-pricing-col-index').html('#'+(x+1)).end().find('div.go-pricing-col-index').val(x); var $inputs = $elem.find('[name*="col-data"], [data-parent-id*="col-data"]'); for (var z=0; z < $inputs.length; z++) { var el = $inputs[z]; if (el.type !== undefined) { el.setAttribute('name', el.getAttribute('name').replace(/col-data\[([0-9]+)?\]/g, 'col-data['+x+']')); } else { el.setAttribute('data-parent-id', el.getAttribute('data-parent-id').replace(/col-data\[([0-9]+)?\]/g, 'col-data['+x+']')); } } } setColWidth(colWidth); }; function setSortableCols() { if (typeof jQuery().sortable !== 'undefined') { var $colsParent = $goPricingAdmin.find('#go-pricing-column-editor').find('.go-pricing-cols'); $colsParent.sortable({ axis: 'x', revert: 100, items: '.go-pricing-col', distance: 5, handle: '.gwa-abox-header', scrollSpeed: 30, scrollSensitivity: 50, placeholder: 'go-pricing-col-placeholder', tolerance: 'pointer', start: function( event, ui ) { ui.item.closest('.go-pricing-cols').css('height', ui.item.outerHeight(true)) ui.item.siblings('.go-pricing-col').css('opacity',0.5) ui.placeholder.css('height', ui.item.outerHeight(true)-59) }, stop: function( event, ui ) { ui.item.siblings().css('opacity',1) }, update: function( event, ui ) { setColIndex(); $(document).trigger('click'); ui.item.closest('.go-pricing-cols').css('height', 'auto') } }); }; }; $.setSytle = function($elem) { var mainparent = $goPricingAdmin.find('.go-pricing-cols'); var html2=[]; if ($elem === undefined) { $elem = $goPricingAdmin.find('select[name*="[col-style-type]"]'); } for (var x=0; x < $elem.length; x++) { var $el = $elem.eq(x), el = $elem[x], $parentCol = $el.closest('.go-pricing-col'); index = el.selectedIndex, styleType = $el.find('option').eq(index).data('type'); if (typeof styleType === 'undefined') return; $parentCol.find('.go-pricing-style-type').filter(function(index) { var types = this.getAttribute('data-type').split(' '), inArr=false; for (var x=0; x< types.length; x++) { if (types[x] == styleType) inArr = true; } if (inArr===true) { this.style.display = 'block'; } else { this.style.display = 'none'; } }); } }; $goPricingAdmin.on('click', '.gwa-textarea-align a', function(e) { var $this = $(this), $input = $this.closest('.gwa-textarea-align').find('input'); if (typeof $this.data('align') !== 'undefined') { $this.siblings().removeClass('gwa-current').end().addClass('gwa-current'); $input.val($this.data('align')); } e.preventDefault(); }); $goPricingAdmin.on('change', 'select[name*="[col-style-type]"]', function(e) { var foo ='[data-parent-id="'+this.name+'"][data-parent-value="'+this.value+'"] select' $(this).closest('.go-pricing-col').find(foo).trigger('change', true); }); $goPricingAdmin.on('change', 'select[name*="[col-style-type]"]', function(e, force) { var $this = $(this), $parentCol = $this.closest('.go-pricing-col'), family = $parentCol.find('select[name="col-style-family"]').val(); if (($this).is(':visible') || force === true) $.setSytle($this); }); $goPricingAdmin.on('click', '.go-pricing-col', function(e) { if ($goPricingAdmin.find('#go-pricing-column-editor').data('ready') === undefined) { $goPricingAdmin.find('#go-pricing-column-editor').data('ready',true) } }); $.setSytle(); /* Delete, Clone & Expand column */ $goPricingAdmin.on('click', '[data-action="delete-col"], [data-action="clone-col"], [data-action="expand-col"]', function(e) { var $this = $(this), $parentCol = $this.closest('.go-pricing-col'); if ($this.data('action')=="delete-col") { if (confirm($this.data('confirm'))){ $this.closest('.go-pricing-col').remove(); setColIndex(); updateColCnt(); }; } else if ($this.data('action')=="clone-col") { if (confirm($this.data('confirm'))){ $newCol=$parentCol.clone().insertAfter($parentCol); $newCol.find('select, textarea').each(function(index, element) { $(element).val($parentCol.find('select, textarea').eq(index).val()) }); $newCol.find('.gwa-col-assets *').trigger('mouseleave'); $newCol.find('.gwa-col-box').removeClass('gwa-current'); setColIndex(); updateColCnt(); }; } else if ($this.data('action')=="expand-col") { if ($parentCol.find('.gwa-abox.gwa-closed').length) { $parentCol.find('.gwa-abox.gwa-closed').find('.gwa-abox-header').trigger('click'); } else { $parentCol.find('.gwa-abox').find('.gwa-abox-header').trigger('click'); } }; e.preventDefault(); }); /* Add new column */ var editorParams = {}; $goPricingAdmin.on('change', '#go-pricing-style', function(e) { editorParams['style'] = this.value; reloadEditor(); hideEditorPopup(); }); function reloadEditor() { $.ajax({ type: 'post', url: ajaxurl, data: $.param({ action: 'go_pricing_ajax_action', _action :'editor_columns', _nonce : $goPricingAdmin.find('form').find("#_nonce").val(), postid : ( $goPricingAdmin.find('[name="postid"]').length ? $goPricingAdmin.find('[name="postid"]').val() : null ), param : editorParams }), beforeSend: function () { showLoader(true); } }).always(function() { hideLoader(); }).fail(function(jqXHR, textStatus) { }).done(function(data, textStatus, jqXHR) { if (data == 0) showAjaxMsg(''+GoPricingL10n.ajax_error+'
', 'error'); var $resp = $('', { 'html' : $(data) }); if ( $resp.find('#go-pricing-global-style').length && !$resp.find('#go-pricing-global-style').is(':empty') ){ $goPricingAdmin.find('#go-pricing-global-style').html($resp.find('#go-pricing-global-style').html()); } else { $goPricingAdmin.find('#go-pricing-global-style').html(''); } $goPricingAdmin.find('.go-pricing-col').remove(); $resp.find('.go-pricing-col').insertBefore($goPricingAdmin.find('.go-pricing-col-new')); setColIndex(); $.setSytle(); }); } $goPricingAdmin.on('click', '[action="add-col"]', function(e) { $goPricingAdmin.find('.go-pricing-col-new-link').trigger('click'); e.preventDefault(); }); function updateColCnt() { var colCnt = $goPricingAdmin.find('.go-pricing-cols .go-pricing-col').length; $goPricingAdmin.find('#go-pricing-column-editor .gwa-abox-title span').text('('+colCnt+')'); }; $goPricingAdmin.on('mouseenter mouseleave click', '.go-pricing-col-new-link', function(e) { var $this = $(this).closest('.go-pricing-col-new'), $cols = $this.closest('.go-pricing-cols').find('.go-pricing-col'); if (e.type=='mouseenter') { $this.addClass('gwa-current'); } else if (e.type=='mouseleave') { $this.removeClass('gwa-current'); } else { if ($cols.length==10) { alert( GoPricingL10n.warning_maxcol ); return; } if ($this.data('param-style') !== undefined && $this.data('param-style') != '' ) { $this.data('param', {'style' : $this.data('param-style')}); } if (!$.isEmptyObject(editorParams)) { $this.data('param', editorParams); } showLoader(); $goPricingAdmin.addClass('gwa-loading'); $.ajax({ type: 'post', url: ajaxurl, data: $.param({ action: 'go_pricing_ajax_action', _action :'table_column', _nonce : $this.closest('form').find("#_nonce").val(), param : $this.data('param') }), beforeSend: function () { showLoader(true); } }).always(function() { hideLoader(); }).fail(function(jqXHR, textStatus) { }).done(function(data, textStatus, jqXHR) { if (data == 0) showAjaxMsg(''+GoPricingL10n.ajax_error+'
', 'error'); $(data).insertBefore($this); setColIndex(); setSortableCols(); $.setSytle(); updateColCnt(); }); e.preventDefault(); }; }); /* Rows & Buttons */ function setSortableRowsBtns() { if (typeof jQuery().sortable !== 'undefined') { var $colsParent = $goPricingAdmin.find('#go-pricing-column-editor .go-pricing-cols'); $goPricingAdmin.find('#go-pricing-column-editor').find('.gwa-col-box-wrap').each(function(index, element) { $(element).sortable({ axis: 'y', revert: 100, items: '.gwa-col-box', distance: 5, placeholder: 'gwa-col-box-placeholder', tolerance: 'pointer', start: function( event, ui ) { ui.item.next().css('height',ui.item.height()); ui.item.siblings('.gwa-col-box').css('opacity',0.5) }, beforeStop: function( event, ui ) { }, stop: function( event, ui ) { ui.item.siblings().css('opacity',1) }, update: function( event, ui ) { $(document).trigger('click'); setColRowBtnIndex($(element)); } }); }); }; }; $goPricingAdmin.on('click', '.go-pricing-col', function() { setSortableRowsBtns2($(this)) }); function setSortableRowsBtns2($col) { if (typeof jQuery().sortable !== 'undefined') { $col.find('.gwa-col-box-wrap').not('.ui-sortable').each(function(index, element) { $(element).sortable({ axis: 'y', revert: 100, items: '.gwa-col-box', distance: 5, placeholder: 'gwa-col-box-placeholder', tolerance: 'pointer', start: function( event, ui ) { ui.placeholder.css('height',ui.item.outerHeight()); ui.item.siblings('.gwa-col-box').css('opacity',0.5) }, beforeStop: function( event, ui ) { }, stop: function( event, ui ) { ui.item.addClass('gwa-notrans').css('background', '#e4f5ff'); ui.item.siblings().css('opacity',1) setTimeout(function() { ui.item.removeClass('gwa-notrans').css('background','#fff'); }, 10); }, update: function( event, ui ) { $(document).trigger('click'); setColRowBtnIndex($(element)); if ($currentElem !== undefined && $('#gwa-editor-popup-wrap').length) { $('#gwa-editor-popup-wrap').find('.gwa-popup-title span').eq(0).html($currentElem.find('.gwa-col-box-title span').eq(0).html()) } setEditorPopupNav(); } }); }); }; }; function setColRowBtnIndex($wrap) { $wrap.find('.gwa-col-box').each(function(index, element) { $(element).find('.gwa-col-box-title span[data="index"]').html(index+1); $(element).find('[name*="col-data"], [data-parent-id*="col-data"]').each(function(i, elem) { if (elem.type !== undefined) { $(elem).attr('name', $(elem).attr('name').replace(/-row\]\[([0-9]+)\]/g, '-row]['+(index)+']')) } else { $(elem).attr('data-parent-id', $(elem).attr('data-parent-id').replace(/-row\]\[([0-9]+)\]/g, '-row]['+(index)+']')) } }); }); } /* Add, Remove, Clone row & button */ $goPricingAdmin.on('click', '[data-action="delete-row"], [data-action="clone-row"], [data-action="add-row"], [data-action="delete-footer-row"], [data-action="clone-footer-row"], [data-action="add-footer-row"]', function(e) { var $this = $(this), $parentBox = $this.closest('.gwa-col-box'), $parentBoxWrap = $this.closest('.gwa-abox-content').find('.gwa-col-box-wrap'); if ($this.data('action')=="delete-row" || $this.data('action')=="delete-footer-row") { if ($this.data('confirm') !== undefined && $this.data('confirm') != '') { if (!confirm($this.data('confirm'))) return; } $parentBox.remove(); setColRowBtnIndex($parentBoxWrap); setEditorPopupNav(); hideEditorPopup(); } else if ($this.data('action')=="clone-row" || $this.data('action')=="clone-footer-row") { var $popup = $('#gwa-editor-popup-wrap'); if ($popup.length && $popup.find('.gwa-popup').data('apply-action')) { $popup.find('[data-action="insert-data"]').trigger('click'); } var $newBox = $parentBox.clone().insertAfter($parentBox); $newBox.find('select, textarea, input[type="hidden"]').each(function(index, element) { $(element).val($parentBox.find('select, textarea, input[type="hidden"]').eq(index).val()) }); $newBox.css('background', '#e4f5ff'); $newBox.removeClass('gwa-current').data('selected', false).find('.gwa-assets-nav').removeClass('gwa-visible'); $newBox.addClass('gwa-notrans').css('background', '#e4f5ff'); setTimeout($.proxy(function() { $(this).removeClass('gwa-notrans').css('background', '#fff') }, $newBox[0]), 10); setColRowBtnIndex($parentBoxWrap); $newBox.find('.gwa-assets-nav a').trigger('mouseleave'); setEditorPopupNav(); if ($('#go-pricing-column-editor').data('jump-row')) { $newBox.trigger('dblclick'); } } else if ($this.data('action')=="add-row" || $this.data('action')=="add-footer-row") { var $popup = $('#gwa-editor-popup-wrap'); var currentAction = $this.data('action')=='add-row' ? 'table_row' : 'table_button'; $.ajax({ type: 'post', url: ajaxurl, data: $.param({ action: 'go_pricing_ajax_action', _action : currentAction, _nonce : $this.closest('form').find("#_nonce").val(), col_index : $this.closest('.go-pricing-col').data('index') }), beforeSend: function () { showLoader(true); } }).always(function() { hideLoader(); if ($popup.length && $popup.find('.gwa-popup').data('apply-action')) { $popup.find('[data-action="insert-data"]').trigger('click'); } }).fail(function(jqXHR, textStatus) { }).done(function(data, textStatus, jqXHR) { if (data == 0) showAjaxMsg(''+GoPricingL10n.ajax_error+'
', 'error'); var $response = $('', { 'html' : data }); $response.find('.gwa-col-box-wrap .gwa-col-box').css('background', '#e4f5ff').appendTo($parentBoxWrap); setTimeout(function() { $parentBoxWrap.find('.gwa-col-box:last').css('background', '#fff'); }, 10); setColRowBtnIndex($parentBoxWrap); setColIndex(); setEditorPopupNav(); if ($('#go-pricing-column-editor').data('jump-row')) { $parentBoxWrap.find('.gwa-col-box:last').trigger('dblclick'); } }); e.preventDefault(); } }); function showHideChilds($elem) { if (typeof $elem =='undefined' || typeof $elem.attr('name') =='undefined' ) return; var $parent = $elem.closest('.gwa-col-box-content').length != 0 ? $elem.closest('.gwa-col-box-content') : $elem.closest('.gwa-abox-content'), parentId ='[data-parent-id~="'+$elem.attr('name').split('[]')[0]+'"]', parentValue = '[data-parent-value~="'+$elem.val()+'"]'; if ($elem.prop('type') == 'checkbox') { if ($elem.is(':checked')) { parentValue = '[data-parent-value~="on"]'; } else { parentValue = '[data-parent-value~="off"]'; } } /* has parent */ if ( !$elem.closest('tr').is(':visible') ) { $parent.find(parentId).hide(); } if ($elem.val() != '') parentValue += ', [data-parent-value="*"]'+parentId; $parent.find(parentId).hide(); //if ( $elem.closest('tr').is(':visible') ) { if ($elem.prop('type') == 'checkbox') { $parent.find(parentId+parentValue).show(); } else { $parent.find(parentId+parentValue).show(); } //} $parent.find(parentId).find('select, input[type="checkbox"]').each(function(index, element) { showHideChilds($(element)); }); } $goPricingAdmin.on('change', 'select, .gwa-checkbox input[type=checkbox]', function(e) { showHideChilds($(this)); if (!$popupTarget) DoCodeMirror(); }); /* new */ $goPricingAdmin.on('click', '.gwa-img-upload-media-remove', function(e) { var $this = $(this), $parent = $this.closest('.gwa-img-upload'), $input = $parent.find('input[type="text"]'), $input_alt = $parent.find('input[data-attr="alt"]'), $input_height = $parent.find('input[data-attr="height"]'), $input_width = $parent.find('input[data-attr="width"]'); $input.val($this.val()); $input_alt.val($this.val()); $input_height.val($this.val()); $input_width.val($this.val()); if ($this.closest('.gwa-img-upload-media').find('span').length) $this.closest('.gwa-img-upload-media').find('.gwa-img-upload-media-popup').unwrap().remove(); $this.closest('.gwa-img-upload-media').find('select').remove(); $this.closest('.gwa-img-upload-media').css('display','none'); $parent.find('.gwa-input-btn').show(); e.preventDefault(); }); $goPricingAdmin.on('change keydown', '.gwa-img-upload input[type="text"]', function(e) { var $this = $(this), $parent = $this.closest('.gwa-img-upload'); $media = $parent.find('.gwa-img-upload-media'), code = e.keyCode || e.which, result = 0; $media.find('select option').each(function(index, element) { if (element.value == $this.val()) result = 1; }); if (result==0) $media.find('select').remove(); if ((e.type == 'keydown' && code == 13) || e.type == 'change') { if ($this.val() != '') { var newImg = new Image; newImg.onload=function(){ $media.css('display', 'block'); $media.find('.gwa-img-upload-media-popup').remove(); if (!$media.find('.gwa-img-upload-media-container').length) $media.find('a').wrapAll(''); $('', { 'href' : '#', 'title' : 'Preview', 'class' : 'gwa-img-upload-media-popup', 'data-id' : newImg.src, 'data-popup-type' : 'image', 'data-action' : 'popup', 'data-popup' : 'image-preview', 'data-popup-subtitle' : newImg.src }).wrap('span').prependTo($media.find('.gwa-img-upload-media-container')); $('