%PDF- %PDF-
| Direktori : /home/dopla/public_html/wp-content/plugins/kingcomposer/assets/js/ |
| Current File : /home/dopla/public_html/wp-content/plugins/kingcomposer/assets/js/kc.tools.js |
/*
* KingComposer Page Builder
*
* (c) Copyright king-theme.com
*
*
* kc.tools.js
*
*/
( function($){
if( typeof( kc ) == 'undefined' )
window.kc = {};
$().extend( kc.tools, {
esc_slug : function (str){
if( str === undefined )
return 'king-composer';
str = str.replace(/^\s+|\s+$/g, '');
str = str.toLowerCase();
var from = "àáäâèéëêìíïîòóöôùúüûñç·/,:;";
var to = "aaaaeeeeiiiioooouuuunc-----";
for (var i=0, l=from.length ; i<l ; i++)
{
str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
}
str = str.replace(/[^a-z0-9 -\_]/g, '')
.replace(/\s+/g, '-')
.replace(/-+/g, '-');
return str;
},
esc_attr : function( str ) {
if( !str ){
return '';
}
return str.toString()
.replace(/</g, ':lt:')
.replace(/>/g, ':gt:')
.replace(/\[/g, ':lsqb:')
.replace(/\]/g, ':rsqb:')
.replace(/"/g, ':quot:')
.replace(/'/g, ':apos:');
},
unesc_attr : function( str ) {
if( !str ){
return '';
}
return str.toString()
.replace(/:lt:/g, '<')
.replace(/:gt:/g, '>')
.replace(/:lsqb:/g, '[')
.replace(/:rsqb:/g, ']')
.replace(/:quot:/g, '"')
.replace(/:apos:/g, '\'');
},
esc : function( str ) {
if( !str ){
return '';
}
return str.toString().replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
},
unesc : function(str) {
if( str == undefined ){
return '';
}
return str.toString().replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, '\'');
},
rawdecode : function( input ){
return decodeURIComponent( input+'' );
},
rawencode : function( input ){
input = (input+'').toString();
return encodeURIComponent( input ).
replace(/!/g,'%21').
replace(/'/g,'%27').
replace(/\(/g,'%28').
replace(/\)/g,'%29').
replace(/\*/g,'%2A');
},
decode_css : function( css ){
var css_code = '';
css = css.replace( /\s+/g, ' ' )
.replace(/\/\*[^\/\*]+\*\//g,'')
.replace(/\"/g, "'")
.replace(/[^a-zA-Z0-9\-\_\. \:\(\)\%\+\~\;\#\'\!\{\}\@\/]+/g,'')
.trim().split( '{' );
for( var n in css ){
if( css[n].indexOf('}') > -1 )
{
css[n] = css[n].split('}');
css[n][0] = css[n][0].split(';');
for( var m in css[n][0] )
{
if( css[n][0][m].trim() != '' )
css_code += " "+css[n][0][m]+";\n";
}
if( css[n][1].trim() != '' )
css_code += "}\n"+css[n][1]+"{\n";
else
css_code += "}\n";
if( css[n][2] != undefined )
css_code += "}\n";
}
else if( css[n].trim() != '' )
{
css_code += css[n]+"{\n"
}
}
return css_code;
},
encode_css : function( css ){
if( css == undefined )
css = '';
css = css.replace(/\/\*[^\/\*]+\*\//g,'')
.replace( /\ \ /g, '' )
.replace(/[^a-zA-Z0-9\-\_\. \:\(\)\%\+\~\;\!\#\'\{\}\@\/]+/g,'').trim();
return css;
},
nfloat : function( n, m ){
n = n.toString();
if( m === undefined )
m = 2;
if( n.indexOf('.') > -1 ){
return parseFloat( n.substr( 0, n.indexOf('.')+m+1 ) );
}else return parseFloat( n );
},
getFormData : function( pop ){
/*
* correct data type before export
*/
var form = pop.find('form.fields-edit-form').get(0),
encodes = [],
unindexed = pop.find('form.fields-edit-form .kc-param').serializeArray();
pop.find('form.fields-edit-form [data-encode="base64"]').each(function(){
encodes.push( this.name );
});
return this.reIndexForm( unindexed, encodes );
},
reIndexForm : function( unindexed, encodes ){
var indexed = {}, avoidRepeat = {}, name, obs, j, k;
$.map( unindexed, function( n, i ){
if( encodes.indexOf( n['name'] ) > -1 )
n['value'] = kc.tools.base64.encode(n['value']);
if( n['name'].indexOf('[') == -1 ){
if( n['value'] != '' ){
if( indexed[ n['name'] ] == undefined || indexed[ n['name'] ] == '__empty__' )
indexed[ n['name'] ] = n['value'];
else
indexed[ n['name'] ] += ','+n['value'];
}else if( indexed[ n['name'] ] === undefined ){
indexed[ n['name'] ] = '';
}
}else{
n['name'] = "["+n['name'].replace('[','][');
name = n['name'].replace( /\[/g, "['" ).replace( /\]/g, "']" );
obs = [];
[].forEach.call( n['name'].split(']['), function( sp ){
sp = sp.replace( /\[/g, '' ).replace( /\]/g, '' ).trim();
obs[ obs.length ] = sp;
});
if( obs.length > 0 ){
k = '';
for( j=0; j<obs.length; j++){
k += "['"+obs[j]+"']";
eval("if( indexed"+k+"==undefined )indexed"+k+"={};");
}
}
var query = "if( typeof(indexed"+name+") != 'string' )indexed"+name+"=n['value'];else if(n['value']!=='') indexed"+name+"+=','+n['value'];";
eval( query );
}
});
delete avoidRepeat, name, obs, j, k;
return indexed;
},
basename : function( str ){
var base = str.split(/[\\/]/).pop();
if( base.lastIndexOf(".") != -1 )
base = base.substring( 0, base.lastIndexOf(".") );
return base;
},
toClipboard : function( str ) {
if (window.clipboardData) {
window.clipboardData.setData ("Text");
}else {
document.oncopy = function(event) {
event.clipboardData.setData('text', str);
event.preventDefault();
};
document.execCommand("Copy", false, null);
document.oncopy = null;
}
},
rgb2hex : function( rgb ) {
if( rgb.indexOf('rgb') === -1 || rgb.indexOf('(') === -1 || rgb.indexOf(')') === -1 )
return rgb;
rgb = rgb.split('(')[1].split(')')[0].split(',');
function hex(x) {
return ("0" + parseInt(x.trim()).toString(16)).slice(-2);
}
return "#" + hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
},
hex2rgb : function(hex) {
r = hex.match(/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i);
if (r) {
return r.slice(1,4).map(function(x) { return parseInt(x, 16); });
}
// short version
r = hex.match(/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i);
if (r) {
return r.slice(1,4).map(function(x) { return 0x11 * parseInt(x, 16); });
}
return hex;
},
base64 : {
encode : function (input){
if( input === undefined || input === '' ){
return '';
}
try
{
return window.btoa(unescape(encodeURIComponent( input )));
}
catch (ex){return input;}
},
decode : function (input){
if( input === undefined || input === '' ){
return '';
}
try
{
return decodeURIComponent(escape(window.atob( input )));
}
catch (ex){return input;}
},
},
media : {
el : null,
callback : null,
uploader : null,
open : function( e ){
if( typeof e.preventDefault == 'function' )
e.preventDefault();
atts = $().extend(
{ frame: 'select', multiple: false, title: 'Choose Image', button: 'Choose Image', type: 'image' },
e.data.atts );
kc.tools.media.el = this;
if( typeof e.data.callback == 'function' )
kc.tools.media.callback = e.data.callback;
else kc.tools.media.callback = null;
if ( kc.tools.media.uploader ) {
return kc.tools.media.uploader.open();
}
var insertImage = wp.media.controller.Library.extend({
defaults : _.defaults({
id: 'insert-image',
title: atts.title,
button: {
text: atts.button
},
multiple: false,
editing: true,
allowLocalEdits: true,
displaySettings: true,
displayUserSettings: true,
type : atts.type
}, wp.media.controller.Library.prototype.defaults )
});
//Extend the wp.media object
kc.tools.media.uploader = wp.media.frames.file_frame = wp.media({
frame: atts.frame,
state : 'insert-image',
states : [ new insertImage() ]
});
kc.tools.media.uploader.on('select', function( e ) {
var currentSize = $('.attachment-display-settings .size').val()
var state = kc.tools.media.uploader.state('insert-image');
var attachments = state.get('selection');
if( attachments.length === 0 ){
if( $('#embed-url-field').get(0) && $('#embed-url-field').val() != null ){
if( typeof kc.tools.media.callback == 'function' )
kc.tools.media.callback( {
url: $('#embed-url-field').val(), sizes: {} },
$(kc.tools.media.el)
);
}
}else{
attachments.map( function( attachment ) {
var attachment = attachment.toJSON();
attachment.size = currentSize;
if( typeof kc.tools.media.callback == 'function' )
kc.tools.media.callback( attachment, $(kc.tools.media.el) );
});
}
});
kc.tools.media.uploader.on('open', function( e ) {
var ids = $(kc.tools.media.el).parent().find('.kc-param').val();
if( ids === undefined || ids == null || ids == '' || ids == 'undefined')
return;
ids = ids.split(',');
var selection = kc.tools.media.uploader.state().get('selection');
var attachments = [];
ids.forEach(function( id ){
attachments[ attachments.length ] = wp.media.attachment( id );
});
selection.add( attachments );
});
//Open the uploader dialog
return kc.tools.media.uploader.open();
},
els : null,
callbacks : null,
uploaders : null,
opens : function( e ){
if( typeof e.preventDefault == 'function' )
e.preventDefault();
kc.tools.media.els = this;
if( typeof e.data == 'function' )
kc.tools.media.callbacks = e.data;
else kc.tools.media.callbacks = null;
if ( kc.tools.media.uploaders ) {
kc.tools.media.uploaders.open();
return false;
}
//Extend the wp.media object
kc.tools.media.uploaders = wp.media.frames.file_frame = wp.media({
title: kc.__.i46,
button: {
text: kc.__.i46
},
multiple: true,
editing: true,
allowLocalEdits: true,
displaySettings: true,
displayUserSettings: true,
});
kc.tools.media.uploaders.on('select', function( e ) {
var attachments = kc.tools.media.uploaders.state().get('selection');
attachments.map( function( attachment ) {
var attachment = attachment.toJSON();
if( typeof kc.tools.media.callbacks == 'function' )
kc.tools.media.callbacks( attachment, $(kc.tools.media.els) );
});
});
kc.tools.media.uploaders.on('open', function( e ) {
// Maybe we dont need to active selected images
return false;
var ids = $(kc.tools.media.els).parent().find('.kc-param').val();
if( ids === undefined || ids == null || ids == '' )
return;
ids = ids.split(',');
var selection = kc.tools.media.uploaders.state().get('selection');
var attachments = [];
ids.forEach(function( id ){
attachments[ attachments.length ] = wp.media.attachment( id );
});
selection.add( attachments );
});
//Open the uploader dialog
kc.tools.media.uploaders.open();
return false;
}
},
popup : new kc.backbone.views( 'no-model' ).extend({
margin_top : $('html').get(0).offsetTop,
no_close : false,
render : function( el, atts ){
var keepCurrent = false;
if( atts != undefined ){
if( atts.keepCurrentPopups == true ){
keepCurrent = true;
}
}
if( keepCurrent == false )
$('.kc-params-popup .sl-close.sl-func').trigger('click');
$('.sys-colorPicker').remove();
$('.kc-controls .more.active').removeClass('active');
var pop_width = 580;
if( atts.width != undefined )
pop_width = atts.width;
var coor = this.coordinates( el, pop_width, keepCurrent );
var atts = $().extend({
top: coor[0],
left: coor[1],
pos: coor[2],
bottom: coor[3],
tip: coor[4],
width: pop_width,
class: '',
float: false,
drag: true,
content: '',
title: 'Settings',
help: '',
footer: true,
footer_ext: '',
scrollTo: true,
save_text: kc.__.save,
cancel_text: kc.__.cancel
}, atts );
if( atts.footer === false && atts.class.indexOf('no-footer') == -1 )
atts.class += ' no-footer';
if( atts.float === true ){
atts.drag = false;
atts.class += ' kc-popup-float';
atts.scrollTo = false;
}
this.el = $( kc.template( 'popup', atts ) );
this.el.data({ 'button' : el, 'keepCurrentPopups' : keepCurrent, 'tab_active' : 0 });
if( atts.float === true ){
this.el.on('click', function(e){
if( e.target === this )
$(this).find('button.cancel').trigger('click');
});
$('html').css({'overflow': 'hidden'});
}
if( atts.tip != 0 )
this.el.find( '.wp-pointer-arrow' ).css({marginRight: -atts.tip+'px'});
if( atts.scrollBack == true )
this.el.data({ 'scrolltop' : $(window).scrollTop() });
$('body').append( this.el );
if( atts.drag == true ){
kc.ui.draggable( this.el.get(0), 'h3.m-p-header' );
this.el.find('h3.m-p-header').addClass('kc-ui-draggable');
}
$( this.el ).css({opacity: 1});
if( atts.scrollTo === true ){
setTimeout( function( pop, atts ){
var wsct = $(window).scrollTop(), wh = $(window).height(),
wheight = wsct+(wh*0.1);
if( wh > 800 )
pop.find('.m-p-body').css({ 'max-height': (wh - 250)+'px' });
var pop_rect = pop.get(0).getBoundingClientRect();
if( atts.top > wheight && atts.bottom === 0 ){
if( pop_rect.height < wh - 50 ){
kc.ui.scrollAssistive( atts.top - ((wh-pop_rect.height)/2) , true );
}else kc.ui.scrollAssistive( (atts.top - 50), true );
}else if( pop_rect.top < 0 )
kc.ui.scrollAssistive( (wsct+pop_rect.top) - 50, true );
}, 1, this.el, atts );
}
return this.el;
},
coordinates : function( el, pop_width, keepCurrent ){
var grids;
if( $(el).closest('#kc-container').get(0) )
grids = document.getElementById('kc-container').getBoundingClientRect();
else if( document.getElementById('wpbody-content') !== null )
grids = document.getElementById('wpbody-content').getBoundingClientRect();
else if( document.getElementById('content') !== null )
grids = document.getElementById('content').getBoundingClientRect();
else grids = document.getElementsByTagName('body')[0].getBoundingClientRect();
if( el === undefined )
return [0,0,0,0];
var coor = el.getBoundingClientRect(),
swidth = (grids.width/3),
sleft = coor.left-grids.left,
top = coor.top+$(window).scrollTop()+coor.height-this.margin_top,
bottom = 0,
left = coor.left+$(window).scrollLeft()+(coor.width/2),
tip = 0,
pos = '',
wheight = $(document).height(),
wwidth = $(document).width();
if( sleft < swidth ){
pos = 'left';
left -= 63;
}else if( sleft > swidth && sleft < swidth*2 ){
pos = 'center';
left -= (pop_width/2);
}else if( sleft > swidth*2 && sleft < swidth*3 ){
pos = 'right';
left -= (pop_width-63);
}
if( wheight - top < 200 && $(window).scrollTop() > 0 ){
bottom = wheight-top+(coor.height/2);
$('html').height( wheight - parseInt( $('html').css('padding-top') ) );
}else if( keepCurrent !== true ){
$('html').height('');
}
if( left < 50 ){
tip = left - 50;
left = 50;
}
if( left+swidth > wwidth ){
left -= ( (left+swidth) - wwidth ) + 50;
}
return [ top, left, pos, bottom, tip ];
},
events : {
'.m-p-controls>li>.cancel,.m-p-header .sl-close:click' : 'cancel',
'.m-p-header .m-p-toggle:click' : 'toggle',
'.m-p-controls>li>.save,.m-p-header .sl-check:click' : 'save'
},
cancel : function( e ){
$('html').css({'overflow': ''});
kc.do_action( 'before_cancel_popup', this );
// We will dont close the popup when in instant saving
if( $('#kc-preload').length > 0 || kc.tools.popup.no_close === true ){
kc.tools.popup.no_close = false;
return;
}
if( e.target.tagName == 'INPUT' )
return;
var el = $(this).closest('.kc-params-popup'),
keepCurrent = el.data('keepCurrentPopups'),
beforecalb, calb, aftercalb, i, prevent = false;
if( typeof el.data('before_cancel') !== undefined ){
beforecalb = el.data('before_cancel');
if( typeof beforecalb == 'function' ){
if( beforecalb( el, e ) == 'prevent' )
prevent = true;
}else if( beforecalb !== undefined && beforecalb.length > 0 ){
for( i = 0; i< beforecalb.length; i++ ){
if( typeof beforecalb[i] == 'function' ){
if( beforecalb[i]( el, e ) == 'prevent' )
prevent = true;
}
}
}
}
if( prevent === true )
return;
if( typeof el.data('cancel') !== undefined ){
calb = el.data('cancel');
if( typeof calb == 'function' ){
calb( el );
}else if( calb !== undefined && calb.length > 0 ){
for( i = 0; i< calb.length; i++ ){
if( typeof calb[i] == 'function' && calb[i]( el ) == 'prevent' )
prevent = true;
}
}
}
if( prevent === true )
return;
if( typeof el.data('after_cancel') !== undefined ){
aftercalb = el.data('after_cancel');
if( typeof aftercalb == 'function' ){
aftercalb( el );
}else if( aftercalb !== undefined && aftercalb.length > 0 ){
for( i = 0; i< aftercalb.length; i++ ){
if( typeof aftercalb[i] == 'function' && aftercalb[i]( el ) == 'prevent' )
prevent = true;
}
}
}
if( prevent === true )
return;
if( el.data('scrolltop') != undefined )
e.data.scrollback( el.data('scrolltop'), el.data('button') );
if( el.data('keepCurrentPopups') !== true )
$('html').height('');
el.remove();
$('.sys-colorPicker').remove();
// remove date picker
$('.pika-single').remove();
if( keepCurrent == false )
$('.kc-params-popup .sl-close.sl-func').trigger('click');
kc.do_action( 'after_cancel_popup', this );
},
save : function( e ){
kc.do_action( 'before_save_popup', this );
var el = $(this).closest('.kc-params-popup'),
keepCurrent = el.data('keepCurrentPopups'),
beforecalb, calb, aftercalb, i;
e.data.el = el;
if( typeof el.data('before_callback') !== undefined ){
beforecalb = el.data('before_callback');
if( typeof beforecalb == 'function' ){
beforecalb( el );
}else if( beforecalb !== undefined && beforecalb.length > 0 ){
for( i = 0; i< beforecalb.length; i++ ){
if( typeof beforecalb[i] == 'function' )
beforecalb[i]( el );
}
}
}
if( typeof el.data('callback') !== undefined ){
calb = el.data('callback');
if( typeof calb == 'function' ){
calb( el );
}else if( calb !== undefined && calb.length > 0 ){
for( i = 0; i< calb.length; i++ ){
if( typeof calb[i] == 'function' )
calb[i]( el );
}
}
}
if( typeof el.data('after_callback') !== undefined ){
aftercalb = el.data('after_callback');
if( typeof aftercalb == 'function' ){
aftercalb( el );
}else if( aftercalb !== undefined && aftercalb.length > 0 ){
for( i = 0; i< aftercalb.length; i++ ){
if( typeof aftercalb[i] == 'function' )
aftercalb[i]( el );
}
}
}
// We will dont close the popup when in instant saving
if( $('#kc-preload').length > 0 || kc.tools.popup.no_close === true ){
kc.tools.popup.no_close = false;
return;
}
if( el.data('scrolltop') != undefined )
e.data.scrollback( el.data('scrolltop'), el.data('button') );
//el.remove();
el.find('.sl-close.sl-func').trigger('click');
if( keepCurrent == false ){
$('.kc-params-popup .sl-close.sl-func').trigger('click');
$('html').height('');
}
kc.do_action( 'after_save_popup', this );
},
toggle : function( e ){
var pop = $(this).closest('.kc-params-popup');
if( pop.hasClass('kc-popup-collapse') )
pop.removeClass('kc-popup-collapse')
else pop.addClass('kc-popup-collapse')
},
scrollback : function( sctop, btn ){
var now = $(window).scrollTop();
if( Math.abs( sctop - now ) > 200 ){
kc.ui.scrollAssistive( sctop );
}
},
add_tab : function( pop, args ){
args = $().extend( { title: '', class: '', cfg: '', callback: function(){} }, args );
var ul = pop.find('.m-p-wrap ul.kc-pop-tabs'),
slug = 'kc-tab-'+Math.abs(parseInt(Math.random()*1000)),
li = $('<li data-tab="'+slug+'" data-cfg="'+args.cfg+'" class="'+args.class+'">'+args.title+'</li>');
if( !ul.get(0) ){
/* if this is first tab be added */
ul = $('<ul class="kc-pop-tabs"></ul>');
if( pop.find('.fields-edit-form').length > 0 ){
var fli = $('<li data-tab="fields-edit-form" class="kc-tab-general-title active"><i class="et-tools"></i> General</li>');
ul.append( fli );
fli.on( 'click', function( e ){
var wrp = $(this).closest('.m-p-wrap');
wrp.find('>.kc-pop-tabs li').removeClass('active');
$(this).addClass('active');
wrp.find('.m-p-body>.kc-pop-tab').removeClass('form-active');
wrp.find('.m-p-body>.fields-edit-form').addClass('form-active');
if( e.originalEvent !== undefined )
$(this).closest('.kc-params-popup').
data({ tab_active: $(this).parent().find('>li').index( this ) });
kc.do_action('popup_tab_switch', this );
});
}
pop.find('.m-p-header').after( ul );
}
ul.append( li );
/* Add event for new tab which just be created */
li.on( 'click', args.callback, function(e){
var slug = $(this).data('tab'), wrp = $(this).closest('.m-p-wrap').find('>.m-p-body');
$(this).closest('.m-p-wrap').find('>.kc-pop-tabs li').removeClass('active');
$(this).addClass('active');
wrp.find('>.kc-pop-tab').removeClass('form-active');
var tab = wrp.find('>.'+slug), click_actived = false, this_index = $(this).parent().find('>li').index( this );
if( $(this).closest('.kc-params-popup').data('tab_active') == this_index )
click_actived = true;
if( e.originalEvent !== undefined )
$(this).closest('.kc-params-popup').data({ tab_active: this_index });
kc.do_action('popup_tab_switch', this );
if( tab.get(0) ){
tab.addClass('form-active');
/*
* If the tab is actived and click on it
* We don't need to run callback
*/
if( click_actived === true )
return;
var callback = $(this).data('callback');
if( typeof callback == 'function' )
callback( this, tab );
return;
}
tab = $('<form class="kc-pop-tab '+slug+' form-active"></form>');
wrp.append( tab );
tab.on( 'submit', function(){
$(this).closest('.kc-params-popup').find('.m-p-footer .save').trigger('click');
return false;
});
if( typeof e.data == 'function' )
tab.append( e.data( this , tab ) );
var callback = $(this).data('callback');
if( typeof callback == 'function' )
callback( this, tab );
});
return li;
},
callback : function( pop, args, unique ){
// prevent adding the same callback twice
if( unique !== undefined ){
var list_uniques = pop.data( 'callback_uniques' );
if( list_uniques === undefined )
list_uniques = [];
else if( list_uniques.indexOf( unique ) > -1 )
return;
list_uniques.push( unique );
pop.data({ 'callback_uniques': list_uniques });
}
var calls;
for( var st in args ){
calls = [];
if( pop.data( st ) !== undefined ){
if( typeof pop.data( st ) == 'function' )
calls.push( pop.data( st ) );
else if( typeof pop.data( st ) == 'object' )
calls = pop.data( st );
}
calls.push( args[st] );
pop.data( st, calls );
}
},
close_all : function() {
$('.kc-params-popup .sl-close.sl-func').trigger('click');
}
}),
editor : {
insert : function( id, html ){
var editor,
hasTinymce = typeof tinymce !== 'undefined',
hasQuicktags = typeof QTags !== 'undefined';
wpActiveEditor = id;
if ( hasTinymce ) {
editor = tinymce.get( wpActiveEditor );
}
if ( editor && ! editor.isHidden() ) {
editor.execCommand( 'mceInsertContent', false, html );
} else if ( hasQuicktags ) {
QTags.insertContent( html );
} else {
document.getElementById( wpActiveEditor ).value = html;
}
},
init : function ( textarea ) {
if ( $( '#wp-link' ).parent().hasClass( 'wp-dialog' ) ) {
$( '#wp-link' ).wpdialog( 'destroy' );
}
textarea.val( switchEditors.wpautop( textarea.val() ) );
var eid = textarea.attr( "id" ), tmi = window.tinyMCEPreInit, tmic = tmi.mceInit, tmiq = tmi.qtInit;
try {
if ( _.isUndefined( tinyMCEPreInit.qtInit[ eid ] ) ) {
tmiq[ eid ] = _.extend( {}, tmiq[ window.wpActiveEditor ], { id: eid } );
}
if ( tmi && tmic[ window.wpActiveEditor ] ) {
tmic[ eid ] = _.extend(
{},
tmic[ window.wpActiveEditor ],
{
resize: 'vertical',
height: 250,
id: eid,
setup: function ( e ) {
if ( typeof(e.on) != 'undefined' ) {
e.on( 'init', function ( e ) {
e.target.focus();
window.wpActiveEditor = eid;
});
} else {
e.onInit.add( function ( e ) {
e.focus();
window.wpActiveEditor = eid;
});
}
}
}
);
tmic[ eid ].wp_autoresize_on = false;
window.wpActiveEditor = eid;
}
quicktags( tmic[ eid ] );
QTags._buttonsInit();
if ( window.tinymce ) {
window.switchEditors && window.switchEditors.go( eid, 'tmce' );
if ( tinymce.majorVersion === "4" ) {
tinymce.execCommand( 'mceAddEditor', true, eid );
var textarea = $('#'+eid);
if( tinyMCE.get( eid ) !== null ){
tinyMCE.get( eid ).on('keyup mouseup change', function(e) {
textarea.val( tinyMCE.activeEditor.getContent({format : 'raw'}) ).change();
});
}
textarea.on('keyup mouseup', function(){textarea.change();});
}
}
} catch ( e ) {
$( '#wp-' + eid + '-wrap' ).html('Tinymce Error!');
if ( console && console.error ) {
console.error( e );
}
}
}
},
get_icons : function(){
if( kc.icons != undefined )
return kc.icons;
function css_text(x) { return x.cssText; }
var files = document.querySelectorAll('*[id^="kc-sys-icon-"]'), html = '', css;
if( !files || files.length === 0 )
return '';
for( var i=0; i < files.length; i++ ){
css = Array.prototype.map.call( files[i].sheet.cssRules, css_text ).join('\n');
css = css.split('::before');
css.forEach(function( i ){
i = i.split('.')[1];
if( i !== undefined && i.indexOf('/') == -1 )
html += '<i title="'+i.replace(/[^a-z-0-9]/g, "")+'" class="'+i.replace(/[^a-z-0-9]/g, "")+'"></i>';
});
}
kc.icons = html;
return html;
},
filter_images : function(str) {
var m, str, regxx = new RegExp('\%SITE\_URL\%(.+?)(\'|\"|\\)|\ )', 'g');
while (m = regxx.exec( str ) ) {
if( m[0].indexOf( 'kc_get_thumbn' ) === -1 ){
str = str.replace( m[0], kc_ajax_url+'?action=kc_get_thumbn&type=filter_url&id='+encodeURIComponent(m[1])+m[2]);
}else{
str = str.replace( m[0], kc_site_url + m[1]+m[2]);
}
}
return str;
},
reverse : function(s) {
var o = [];
for (var i = 0, len = s.length; i <= len; i++)
o.push(s.charAt(len - i));
return o.join('');
}
} );
} )( jQuery );