PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 8.6.8
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v8.6.8
8.7.8 8.7.7 8.7.6 8.7.5 8.7.4 8.7.3 8.7.2 8.7.1 8.7.0 8.6.9 8.6.8 8.6.7 8.6.6 8.6.5 8.6.4 8.6.2 8.6.1 8.6.0 8.5.9 8.5.8 8.5.7 8.5.6 8.5.5 8.5.4 8.5.3 All 534 releases
chatbot / js / qcld-wp-chatbot-admin.js

qcld-wp-chatbot-admin.js in WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services 8.6.8, at js/qcld-wp-chatbot-admin.js

2,388 lines 130.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 jQuery(function ($) {
2
3 $(document).ready(function () {
4
5 var sbdstoredNoticeId = localStorage.getItem('qcld_wpbot_Notice_set');
6 var qcld_chatbot_Notice_time_set = localStorage.getItem('qcld_wpbot_Notice_time_set');
7 var notice_current_time = Math.round(new Date().getTime() / 1000);
8 if ('promotion-wpchatbot' == sbdstoredNoticeId && qcld_chatbot_Notice_time_set > notice_current_time ) {
9 $('#promotion-wpchatbot').css({'display': 'none'});
10 }
11 $(document).on('click', '#promotion-wpchatbot .notice-dismiss', function(e){
12 var currentDom = $(this);
13 var currentWrap = currentDom.closest('.notice');
14 currentWrap.css({'display': 'none'});
15 localStorage.setItem('qcld_wpbot_Notice_set', 'promotion-wpchatbot');
16 var ts = Math.round(new Date().getTime() / 1000);
17 var tsYesterday = ts + (24 * 3600);
18 localStorage.setItem('qcld_wpbot_Notice_time_set', tsYesterday);
19 });
20
21
22 [].slice.call(document.querySelectorAll('.wp-chatbot-tabs')).forEach(function (el) {
23
24 new CBPFWTabs(el);
25
26 });
27
28 if(localStorage.getItem('tabData')){
29
30 $(".content-wrap section").removeClass('content-current');
31
32 $(".wp-chatbot-tabs nav ul li").each(function (index, elm) {
33
34 if(localStorage.getItem('tabData')==$(this).attr('tab-data')){
35
36 $(this).addClass('tab-current');
37
38 $(".content-wrap section").eq(index).addClass('content-current');
39
40 }else{
41
42 $(this).removeClass('tab-current');
43
44 }
45
46 })
47
48 /*$(".content-wrap section").each(function (el) {
49
50
51
52 });*/
53
54 }
55
56 $(".wp-chatbot-tabs nav ul li a ").on('click',function () {
57
58 // Remove others tab and contents
59
60 $(".wp-chatbot-tabs nav ul li").removeClass('tab-current');
61
62 $(".content-wrap section").removeClass('content-current');
63
64 // add current tab and contents
65
66 $(this).parent().addClass('tab-current');
67
68 $(".content-wrap section").eq($(".wp-chatbot-tabs nav ul li a ").index(this)).addClass('content-current');
69
70 //Change action url , set add localStorge and url change.
71
72 $('#wp-chatbot-admin-form').attr('action',$(this).attr('href'));
73
74 localStorage.setItem('tabData',$(this).parent().attr('tab-data'));
75
76 window.history.pushState("changeUrl", "wpwBot", $(this).attr('href'));
77
78
79
80 });
81 $('.wp-chatbot-hours input').timepicker({ 'timeFormat': 'H:i' });
82 //Drag and drop support builders
83 $('#wp-chatbot-support-builder').sortable({
84 cursor: 'move',
85 revert: true,
86 start: function (e, ui) {
87 $(ui.item).find('textarea').each(function () {
88 tinymce.execCommand('mceRemoveEditor', false, $(this).attr('id'));
89 });
90 },
91 stop: function (e, ui) {
92 $(ui.item).find('textarea').each(function () {
93 tinymce.execCommand('mceAddEditor', true, $(this).attr('id'));
94 });
95 }
96 });
97 $("#wp-chatbot-support-builder" ).disableSelection();
98
99 $('#wp_chatbot_floatingiconbg_color').wpColorPicker();
100 if( (document.getElementById('skip_wp_greetings') != null)){
101
102 if (document.getElementById('ask_email_wp_greetings') != null) {
103 if (document.getElementById('skip_wp_greetings').checked || document.getElementById('skip_wp_greetings_donot_show_menu').checked) {
104 document.getElementById("ask_email_wp_greetings").checked = false;
105 document.getElementById("ask_email_wp_greetings").disabled = true;
106 }
107 }
108 if (document.getElementById('enable_asking_for_email') != null) {
109 if (document.getElementById('skip_wp_greetings').checked || document.getElementById('skip_wp_greetings_donot_show_menu').checked) {
110 document.getElementById("enable_asking_for_email").checked = false;
111 document.getElementById("enable_asking_for_email").disabled = true;
112 }
113 }
114
115 document.getElementById('skip_wp_greetings').addEventListener('change', (event) => {
116 if (event.currentTarget.checked) {
117 document.getElementById("skip_wp_greetings_donot_show_menu").checked = false;
118 document.getElementById("show_menu_after_greetings").checked = false;
119 var intetns = document.getElementsByClassName("qc_wp_intent_select");
120 Array.prototype.map.call(intetns, (x) => x.style = "display:none" )
121 if (document.getElementById("ask_email_wp_greetings") != null) {
122 document.getElementById("ask_email_wp_greetings").checked = false;
123 document.getElementById("ask_email_wp_greetings").disabled = true;
124 }
125 if (document.getElementById("enable_asking_for_email") != null) {
126 document.getElementById("enable_asking_for_email").checked = false;
127 document.getElementById("enable_asking_for_email").disabled = true;
128 }
129 } else {
130 if (document.getElementById("ask_email_wp_greetings") != null && !document.getElementById("skip_wp_greetings_donot_show_menu").checked) {
131 document.getElementById("ask_email_wp_greetings").disabled = false;
132 }
133 if (document.getElementById("enable_asking_for_email") != null && !document.getElementById("skip_wp_greetings_donot_show_menu").checked) {
134 document.getElementById("enable_asking_for_email").disabled = false;
135 }
136 }
137 })
138 document.getElementById('skip_wp_greetings_donot_show_menu').addEventListener('change', (event) => {
139 if (event.currentTarget.checked) {
140 document.getElementById("skip_wp_greetings").checked = false;
141 document.getElementById("show_menu_after_greetings").checked = false;
142 var intetns = document.getElementsByClassName("qc_wp_intent_select");
143 Array.prototype.map.call(intetns, (x) => x.style = "display:none" )
144 if (document.getElementById("ask_email_wp_greetings") != null) {
145 document.getElementById("ask_email_wp_greetings").checked = false;
146 document.getElementById("ask_email_wp_greetings").disabled = true;
147 }
148 if (document.getElementById("enable_asking_for_email") != null) {
149 document.getElementById("enable_asking_for_email").checked = false;
150 document.getElementById("enable_asking_for_email").disabled = true;
151 }
152 } else {
153 if (document.getElementById("ask_email_wp_greetings") != null && !document.getElementById("skip_wp_greetings").checked) {
154 document.getElementById("ask_email_wp_greetings").disabled = false;
155 }
156 if (document.getElementById("enable_asking_for_email") != null && !document.getElementById("skip_wp_greetings").checked) {
157 document.getElementById("enable_asking_for_email").disabled = false;
158 }
159 }
160 })
161 document.getElementById('show_menu_after_greetings').addEventListener('change', (event) => {
162 if (event.currentTarget.checked) {
163 document.getElementById("skip_wp_greetings").checked = false;
164 var intetns = document.getElementsByClassName("qc_wp_intent_select");
165 Array.prototype.map.call(intetns, (x) => x.style = "display:none" )
166 document.getElementById("skip_wp_greetings_donot_show_menu").checked = false;
167 if (document.getElementById("ask_email_wp_greetings") != null && !document.getElementById("skip_wp_greetings").checked && !document.getElementById("skip_wp_greetings_donot_show_menu").checked) {
168 document.getElementById("ask_email_wp_greetings").disabled = false;
169 }
170 if (document.getElementById("enable_asking_for_email") != null && !document.getElementById("skip_wp_greetings").checked && !document.getElementById("skip_wp_greetings_donot_show_menu").checked) {
171 document.getElementById("enable_asking_for_email").disabled = false;
172 }
173 }
174 })
175
176 }
177 $('#disable_wp_chatbot_site_search').on('change', function() {
178
179 if($(this).is(':checked')) {
180 $('#enable_wp_chatbot_post_content').prop('checked', false);
181 }
182 });
183 jQuery("#qcld-show-more-wrapper-box").on('click','.qcld-show-more-show-more', function () {
184 if(jQuery(".qcld-show-more-text").hasClass("qcld-show-more-show-more-height")) {
185 jQuery(this).html('<div class="Collapsemore">Collapse Options</div>');
186 } else {
187 jQuery(this).html('<div class="Expandmore">Expand for More Options<span>+</span></div>');
188 }
189
190 jQuery(".qcld-show-more-text").toggleClass("qcld-show-more-show-more-height");
191 });
192 });
193
194 /*
195
196 Support building from admin panel.
197
198 */
199
200 //Add Support query.
201 var supportBlocks=$("#add-more-support-query").parent().parent().parent().find('textarea').length;
202 $("#add-more-support-query").on('click',function () {
203 console.log('blocks :',supportBlocks);
204 supportBlocks=parseInt(supportBlocks+1)
205 var textarea_id='chatbot-query-builder'+supportBlocks;
206
207 var firsBlock='<div class="row">'+
208
209 '<div class="col-xs-12">'+
210 '<button type="button" class="btn btn-danger btn-sm wp-chatbot-remove-support pull-right"><i class="dashicons dashicons dashicons-remove" aria-hidden="true"></i></button>'+
211
212 '<div class="cxsc-settings-blocks">'+
213
214 '<p class="qc-opt-dcs-font qc-opt-dcs-font-faq">FAQ Query </p>'+
215
216 '<input type="text" class="form-control" name="support_query[]" placeholder="FAQ Query">'+
217
218 '<p class="qc-opt-dcs-font"><br><strong>FAQ answer</strong></p>'+
219
220 '<textarea id="'+textarea_id+'" name="support_ans[]" class="form-control chatbot-query-builder" cols="30" rows="2"></textarea>'+
221
222 '</div>'+
223
224 '</div>'+
225
226 '</div>';
227
228 $(".block-inner").append(firsBlock);
229 setTimeout(function (e) {
230 //quicktags({id : ed_id,buttons:"strong,em,link,block,del,ins,img,ul,ol,li,code,more,close,dfw"});
231 tinyMCE.execCommand('mceAddEditor', false, textarea_id);
232 },500);
233
234 });
235
236 //Remove Support query.
237
238 $(document).on('click','.wp-chatbot-remove-support',function () {
239
240 if(confirm('Are you sure to delete this support query block?')){
241
242 $(this).parent().parent().remove();
243
244 }
245
246 });
247
248
249 //for downloading gc-client
250 $('#qc_wpbot_gc_download').on('click', function(e){
251 e.preventDefault();
252 $.ajax(
253 {
254 type: 'POST', // 'POST' here so that _upload_ progress _also_ makes sense;
255 // Change to 'GET' if you need.
256 url: qcld_gemini_admin_data.ajax_url, data: {
257 'action': 'qcld_wp_chatbot_gc_client_download',
258 'nonce': qcld_gemini_admin_data.ajax_nonce,
259 },
260 beforeSend: function()
261 {
262 $('.qcld_wpbot_download_statuses').append('<p>Downloading...</p>');
263
264 },
265 success: function(data){
266 $('.qcld_wpbot_download_statuses').append('<p>'+data.content+'</p>');
267 if(data.status=='success'){
268
269 $.ajax(
270 {
271 type: 'POST', // 'POST' here so that _upload_ progress _also_ makes sense;
272 // Change to 'GET' if you need.
273 url: qcld_gemini_admin_data.ajax_url, data: {
274 'action': 'qcld_wp_chatbot_gc_client_extract',
275 'nonce': qcld_gemini_admin_data.ajax_nonce
276 },
277 beforeSend: function()
278 {
279 $('.qcld_wpbot_download_statuses').append('<p>Extracting files...</p>');
280
281 },
282 success: function(data){
283 $('.qcld_wpbot_download_statuses').append('<p>'+data.content+'</p>');
284 if(data.status=='success'){
285 $('.qcld_wpbot_download_statuses').append('<p>Done.</p>');
286 }
287
288 }
289 });
290 }
291
292 }
293 });
294
295 })
296
297
298 /*
299
300 Notification building from admin panel.
301
302 */
303
304 //Add Support query.
305 var notification_blocks=$(this).parent().parent().parent().find('.notification-block-inner').length;
306 $("#add-more-notification-message").on('click',function () {
307 notification_blocks=parseInt(notification_blocks+1);
308 var notification_text_area_id='notification_text_area_'+notification_blocks;
309 tinyMCE.triggerSave();
310 var lastChildVal=$(this).parent().parent().parent().find('.notification-block-inner').children('.row').last().find('textarea').val();
311
312 var firsBlock='<div class="row">'+
313
314 '<div class="col-xs-12">'+
315
316 '<button type="button" class="btn btn-danger btn-sm wp-chatbot-remove-notification pull-right"><i class="dashicons dashicons-remove" aria-hidden="true"></i></button><br>'+
317
318 '<div class="cxsc-settings-blocks">'+
319
320 '<textarea id="'+notification_text_area_id+'" name="qlcd_wp_chatbot_notifications[]" placeholder="Notification Message" class="form-control qlcd_wp_chatbot_notifications" cols="30" rows="2"></textarea>'+
321
322 '</div><br>'+
323
324 '</div>'+
325
326 '</div>';
327
328 if(lastChildVal!=""){
329
330 $(".notification-block-inner").append(firsBlock);
331 setTimeout(function (e) {
332 //quicktags({id : ed_id,buttons:"strong,em,link,block,del,ins,img,ul,ol,li,code,more,close,dfw"});
333 tinyMCE.execCommand('mceAddEditor', false, notification_text_area_id);
334 },500);
335
336 } else{
337
338 alert('Please fill up last notification message first');
339
340 }
341 });
342
343 //Remove Support query.
344
345 $(document).on('click','.wp-chatbot-remove-notification',function () {
346
347 if(confirm('Are you sure to delete this support query block?')){
348
349
350
351 var langItems=$(this).parent().parent().parent().children('.row');
352
353 if(langItems.length<=3){
354
355 alert('At least one item is required.');
356
357 }else{
358
359 $(this).parent().parent().remove();
360
361 }
362
363 }
364
365 });
366
367 /*
368
369 Multiple option for Language setting
370
371 */
372
373
374
375 $(document).on('click','.wp-chatbot-lng-item-add',function () {
376
377 //checking last input is not empty
378
379 var lastChildVal=$(this).parent().parent().parent().find('.wp-chatbot-lng-items').children('.row').last().find('input').val();
380
381 if(lastChildVal!=""){
382
383 var child=$(this).parent().parent().parent().find('.wp-chatbot-lng-items').children('.row').last().clone();
384
385 child.find('input').val("");
386
387 } else{
388
389 alert('Please fill up last item first');
390
391 }
392
393 $(this).parent().parent().parent().find('.wp-chatbot-lng-items').append(child);
394
395 });
396
397
398
399 $(document).on('click','.wp-chatbot-lng-item-remove',function () {
400
401 var langItems=$(this).parent().parent().parent().children('.row');
402
403 if(langItems.length<=1){
404
405 alert('At least one item is required.');
406
407 }else{
408
409 $(this).parent().parent().remove();
410
411 }
412
413
414
415 });
416
417 /***
418
419 * wpwBot Theme background
420
421 *
422
423 */
424
425 $(document).on('change','#qcld_wb_chatbot_change_bg',function (e) {
426
427 if($(this).is(':checked')){
428
429 $('.qcld-wp-chatbot-board-bg-container').show();
430
431 }else{
432
433 $('.qcld-wp-chatbot-board-bg-container').hide();
434
435 }
436
437 });
438
439
440
441 //Reset to defualt all options
442
443 $('#qcld-wp-chatbot-reset-option').on('click',function () {
444
445 var returnDefualt = confirm("Are you sure you want to reset all options to Default? Resetting Will Delete All Saved Settings, Custom Messages, Languages etc.");
446
447 if (returnDefualt == true) {
448
449 var data = {
450
451 'action': 'qcld_wb_chatboot_delete_all_options',
452 'wpnonce': qcld_gemini_admin_data.ajax_nonce,
453 };
454
455 jQuery.post(qcld_gemini_admin_data.ajax_url, data, function (response) {
456
457 alert(response);
458
459 window.location.reload();
460
461 });
462
463 }
464
465 });
466
467 var stopWordsList={
468
469 english:"a,able,about,above,abst,accordance,according,accordingly,across,act,actually,added,adj,affected,affecting,affects,after,afterwards,again,against,ah,all,almost,alone,along,already,also,although,always,am,among,amongst,an,and,announce,another,any,anybody,anyhow,anymore,anyone,anything,anyway,anyways,anywhere,apparently,approximately,are,aren,arent,arise,around,as,aside,ask,asking,at,auth,available,away,awfully,b,back,be,became,because,become,becomes,becoming,been,before,beforehand,begin,beginning,beginnings,begins,behind,being,believe,below,beside,besides,between,beyond,biol,both,brief,briefly,but,by,c,ca,came,can,cannot,can't,cause,causes,certain,certainly,co,com,come,comes,contain,containing,contains,could,couldnt,d,date,did,didn't,different,do,does,doesn't,doing,done,don't,down,downwards,due,during,e,each,ed,edu,effect,eg,eight,eighty,either,else,elsewhere,end,ending,enough,especially,et,et-al,etc,even,ever,every,everybody,everyone,everything,everywhere,ex,except,f,far,few,ff,fifth,first,five,fix,followed,following,follows,for,former,formerly,forth,found,four,from,further,furthermore,g,gave,get,gets,getting,give,given,gives,giving,go,goes,gone,got,gotten,h,had,happens,hardly,has,hasn't,have,haven't,having,he,hed,hence,her,here,hereafter,hereby,herein,heres,hereupon,hers,herself,hes,hi,hid,him,himself,his,hither,home,how,howbeit,however,hundred,i,id,ie,if,i'll,im,immediate,immediately,importance,important,in,inc,indeed,index,information,instead,into,invention,inward,is,isn't,it,itd,it'll,its,itself,i've,j,just,k,keep,keeps,kept,kg,km,know,known,knows,l,largely,last,lately,later,latter,latterly,least,less,lest,let,lets,like,liked,likely,line,little,'ll,look,looking,looks,ltd,m,made,mainly,make,makes,many,may,maybe,me,mean,means,meantime,meanwhile,merely,mg,might,million,miss,ml,more,moreover,most,mostly,mr,mrs,much,mug,must,my,myself,n,na,name,namely,nay,nd,near,nearly,necessarily,necessary,need,needs,neither,never,nevertheless,new,next,nine,ninety,no,nobody,non,none,nonetheless,noone,nor,normally,nos,not,noted,nothing,now,nowhere,o,obtain,obtained,obviously,of,off,often,oh,ok,okay,old,omitted,on,once,one,ones,only,onto,or,ord,other,others,otherwise,ought,our,ours,ourselves,out,outside,over,overall,owing,own,p,page,pages,part,particular,particularly,past,per,perhaps,placed,please,plus,poorly,possible,possibly,potentially,pp,predominantly,present,previously,primarily,probably,promptly,proud,provides,put,q,que,quickly,quite,qv,r,ran,rather,rd,re,readily,really,recent,recently,ref,refs,regarding,regardless,regards,related,relatively,research,respectively,resulted,resulting,results,right,run,s,said,same,saw,say,saying,says,sec,section,see,seeing,seem,seemed,seeming,seems,seen,self,selves,sent,seven,several,shall,she,shed,she'll,shes,should,shouldn't,show,showed,shown,showns,shows,significant,significantly,similar,similarly,since,six,slightly,so,some,somebody,somehow,someone,somethan,something,sometime,sometimes,somewhat,somewhere,soon,sorry,specifically,specified,specify,specifying,still,stop,strongly,sub,substantially,successfully,such,sufficiently,suggest,sup,sure,t,take,taken,taking,tell,tends,th,than,thank,thanks,thanx,that,that'll,thats,that've,the,their,theirs,them,themselves,then,thence,there,thereafter,thereby,thered,therefore,therein,there'll,thereof,therere,theres,thereto,thereupon,there've,these,they,theyd,they'll,theyre,they've,think,this,those,thou,though,thoughh,thousand,throug,through,throughout,thru,thus,til,tip,to,together,too,took,toward,towards,tried,tries,truly,try,trying,ts,twice,two,u,un,under,unfortunately,unless,unlike,unlikely,until,unto,up,upon,ups,us,use,used,useful,usefully,usefulness,uses,using,usually,v,value,various,'ve,very,via,viz,vol,vols,vs,w,want,wants,was,wasnt,way,we,wed,welcome,we'll,went,were,werent,we've,what,whatever,what'll,whats,when,whence,whenever,where,whereafter,whereas,whereby,wherein,wheres,whereupon,wherever,whether,which,while,whim,whither,who,whod,whoever,whole,who'll,whom,whomever,whos,whose,why,widely,willing,wish,with,within,without,wont,words,world,would,wouldnt,www,x,y,yes,yet,you,youd,you'll,your,youre,yours,yourself,yourselves,you've,z,zero",
470
471 arabic:"فى,في,كل,ل�
472 ,لن,له,�
473 ن,هو,هي,قوة,ك�
474 ا,لها,�
475 نذ,وقد,ولا,نفسه,لقاء,�
476 قابل,هناك,وقال,وكان,نهاية,وقالت,وكانت,للا�
477
478 ,فيه,كل�
479 ,لكن,وفي,وقف,ول�
480 ,و�
481 ن,وهو,وهي,يو�
482 ,فيها,�
483 نها,�
484 ليار,لوكالة,يكون,ي�
485 كن,�
486 ليون,حيث,اكد,الا,ا�
487 ا,ا�
488 س,السابق,التى,التي,اكثر,ايار,ايضا,ثلاثة,الذاتي,الاخيرة,الثاني,الثانية,الذى,الذي,الان,ا�
489 ا�
490 ,ايا�
491 ,خلال,حوالى,الذين,الاول,الاولى,بين,ذلك,دون,حول,حين,الف,الى,انه,اول,ض�
492 ن,انها,ج�
493 يع,ال�
494 اضي,الوقت,ال�
495 قبل,اليو�
496 ,ـ,ف,و,و6,قد,لا,�
497 ا,�
498 ع,�
499 ساء,هذا,واحد,واضاف,واضافت,فان,قبل,قال,كان,لدى,نحو,هذه,وان,واكد,كانت,واوضح,�
500 ايو,ب,ا,أ,،,عشر,عدد,عدة,عشرة,عد�
501 ,عا�
502 ,عا�
503 ا,عن,عند,عند�
504 ا,على,عليه,عليها,زيارة,سنة,سنوات,ت�
505 ,ضد,بعد,بعض,اعادة,اعلنت,بسبب,حتى,اذا,احد,اثر,برس,باس�
506 ,غدا,شخصا,صباح,اطار,اربعة,اخرى,بان,اجل,غير,بشكل,حاليا,بن,به,ث�
507 ,اف,ان,او,اي,بها,صفر",
508
509 bulgarian:"а,автентичен,аз,ако,ала,бе,без,беше,би,бивш,бивша,бившо,бил,била,били,било,благодаря,близо,бъдат,бъде,бя�
510 а,в,вас,ваш,ваша,вероятно,вече,взема,ви,вие,винаги,внимава,време,все,всеки,всички,всичко,всяка,във,въпреки,вър�
511 у,г,ги,главен,главна,главно,глас,го,година,години,годишен,д,да,дали,два,двама,двамата,две,двете,ден,днес,дни,до,добра,добре,добро,добър,докато,докога,дори,досега,доста,друг,друга,други,е,евтин,едва,един,една,еднаква,еднакви,еднакъв,едно,екип,ето,живот,за,забавям,зад,заедно,заради,засега,заспал,затова,защо,защото,и,из,или,им,има,имат,иска,й,каза,как,каква,какво,както,какъв,като,кога,когато,което,които,кой,който,колко,която,къде,където,към,лесен,лесно,ли,лош,м,май,малко,ме,между,мек,мен,месец,ми,много,мнозина,мога,могат,може,мокър,моля,момента,му,н,на,над,назад,най,направи,напред,например,нас,не,него,нещо,нея,ни,ние,никой,нито,нищо,но,нов,нова,нови,новина,някои,някой,няколко,няма,обаче,около,освен,особено,от,отгоре,отново,още,пак,по,повече,повечето,под,поне,поради,после,почти,прави,пред,преди,през,при,пък,първата,първи,първо,пъти,равен,равна,с,са,сам,само,се,сега,си,син,скоро,след,следващ,сме,смя�
512 ,според,сред,срещу,сте,съм,със,също,т,тази,така,такива,такъв,там,твой,те,тези,ти,т.н.,то,това,тогава,този,той,толкова,точно,три,трябва,тук,тъй,тя,тя�
513 ,у,утре,�
514 аресва,�
515 иляди,ч,часа,че,често,чрез,ще,щом,юмрук,я,як",
516
517 catalan:"a,abans,algun,alguna,algunes,alguns,altre,amb,ambdós,anar,ans,aquell,aquelles,aquells,aquí,bastant,bé,cada,com,consegueixo,conseguim,conseguir,consigueix,consigueixen,consigueixes,dalt,de,des de,dins,el,elles,ells,els,en,ens,entre,era,erem,eren,eres,es,és,éssent,està,estan,estat,estava,estem,esteu,estic,ets,fa,faig,fan,fas,fem,fer,feu,fi,haver,i,inclòs,jo,la,les,llarg,llavors,mentre,meu,mode,molt,molts,nosaltres,o,on,per,per,per que,però,perquè,podem,poden,poder,podeu,potser,primer,puc,quan,quant,qui,sabem,saben,saber,sabeu,sap,saps,sense,ser,seu,seus,si,soc,solament,sols,som,sota,també,te,tene,tenim,tenir,teniu,teu,tinc,tot,últim,un,un,una,unes,uns,ús,va,vaig,van,vosaltres",
518
519 czech:"ačkoli,ahoj,ale,anebo,ano,asi,aspoň,během,bez,beze,blízko,bohužel,brzo,bude,budeme,budeš,budete,budou,budu,byl,byla,byli,bylo,byly,bys,čau,chce,chceme,chceš,chcete,chci,chtějí,chtít,chut',chuti,co,čtrnáct,čtyři,dál,dále,daleko,děkovat,děkujeme,děkuji,den,deset,devatenáct,devět,do,dobrý,docela,dva,dvacet,dvanáct,dvě,hodně,já,jak,jde,je,jeden,jedenáct,jedna,jedno,jednou,jedou,jeho,její,jejich,jemu,jen,jenom,ještě,jestli,jestliže,jí,jich,jím,jimi,jinak,jsem,jsi,jsme,jsou,jste,kam,kde,kdo,kdy,když,ke,kolik,kromě,která,které,kteří,který,kvůli,má,mají,málo,mám,máme,máš,máte,mé,mě,mezi,mí,mít,mně,mnou,moc,mohl,mohou,moje,moji,možná,můj,musí,může,my,na,nad,nade,nám,námi,naproti,nás,náš,naše,naši,ne,ně,nebo,nebyl,nebyla,nebyli,nebyly,něco,nedělá,nedělají,nedělám,neděláme,neděláš,neděláte,nějak,nejsi,někde,někdo,nemají,nemáme,nemáte,neměl,němu,není,nestačí,nevadí,než,nic,nich,ním,nimi,nula,od,ode,on,ona,oni,ono,ony,osm,osmnáct,pak,patnáct,pět,po,pořád,potom,pozdě,před,přes,přese,pro,proč,prosím,prostě,proti,protože,rovně,se,sedm,sedmnáct,šest,šestnáct,skoro,smějí,smí,snad,spolu,sta,sté,sto,ta,tady,tak,takhle,taky,tam,tamhle,tamhleto,tamto,tě,tebe,tebou,ted',tedy,ten,ti,tisíc,tisíce,to,tobě,tohle,toto,třeba,tři,třináct,trošku,tvá,tvé,tvoje,tvůj,ty,určitě,už,vám,vámi,vás,váš,vaše,vaši,ve,večer,vedle,vlastně,všechno,všichni,vůbec,vy,vždy,za,zač,zatímco,ze,že",
520
521 danish:"ad,af,alle,alt,anden,at,blev,blive,bliver,da,de,dem,den,denne,der,deres,det,dette,dig,din,disse,dog,du,efter,eller,en,end,er,et,for,fra,ham,han,hans,har,havde,have,hende,hendes,her,hos,hun,hvad,hvis,hvor,i,ikke,ind,jeg,jer,jo,kunne,man,mange,med,meget,men,mig,min,mine,mit,mod,ned,noget,nogle,nu,når,og,også,om,op,os,over,på,selv,sig,sin,sine,sit,skal,skulle,som,sådan,thi,til,ud,under,var,vi,vil,ville,vor,være,været",
522
523 dutch:"aan,al,alles,als,altijd,andere,ben,bij,daar,dan,dat,de,der,deze,die,dit,doch,doen,door,dus,een,eens,en,er,ge,geen,geweest,haar,had,heb,hebben,heeft,hem,het,hier,hij,hoe,hun,iemand,iets,ik,in,is,ja,je,kan,kon,kunnen,maar,me,meer,men,met,mij,mijn,moet,na,naar,niet,niets,nog,nu,of,om,omdat,onder,ons,ook,op,over,reeds,te,tegen,toch,toen,tot,u,uit,uw,van,veel,voor,want,waren,was,wat,werd,wezen,wie,wil,worden,wordt,zal,ze,zelf,zich,zij,zijn,zo,zonder,zou",
524
525 finnish:"ei,eivät,emme,en,et,ette,että,he,heidän,heidät,heihin,heille,heillä,heiltä,heissä,heistä,heitä,hän,häneen,hänelle,hänellä,häneltä,hänen,hänessä,hänestä,hänet,häntä,itse,ja,johon,joiden,joihin,joiksi,joilla,joille,joilta,joina,joissa,joista,joita,joka,joksi,jolla,jolle,jolta,jona,jonka,jos,jossa,josta,jota,jotka,kanssa,keiden,keihin,keiksi,keille,keillä,keiltä,keinä,keissä,keistä,keitä,keneen,keneksi,kenelle,kenellä,keneltä,kenen,kenenä,kenessä,kenestä,kenet,ketkä,ketkä,ketä,koska,kuin,kuka,kun,me,meidän,meidät,meihin,meille,meillä,meiltä,meissä,meistä,meitä,mihin,miksi,mikä,mille,millä,miltä,minkä,minkä,minua,minulla,minulle,minulta,minun,minussa,minusta,minut,minuun,minä,minä,missä,mistä,mitkä,mitä,mukaan,mutta,ne,niiden,niihin,niiksi,niille,niillä,niiltä,niin,niin,niinä,niissä,niistä,niitä,noiden,noihin,noiksi,noilla,noille,noilta,noin,noina,noissa,noista,noita,nuo,nyt,näiden,näihin,näiksi,näille,näillä,näiltä,näinä,näissä,näistä,näitä,nämä,ole,olemme,olen,olet,olette,oli,olimme,olin,olisi,olisimme,olisin,olisit,olisitte,olisivat,olit,olitte,olivat,olla,olleet,ollut,on,ovat,poikki,se,sekä,sen,siihen,siinä,siitä,siksi,sille,sillä,sillä,siltä,sinua,sinulla,sinulle,sinulta,sinun,sinussa,sinusta,sinut,sinuun,sinä,sinä,sitä,tai,te,teidän,teidät,teihin,teille,teillä,teiltä,teissä,teistä,teitä,tuo,tuohon,tuoksi,tuolla,tuolle,tuolta,tuon,tuona,tuossa,tuosta,tuota,tähän,täksi,tälle,tällä,tältä,tämä,tämän,tänä,tässä,tästä,tätä,vaan,vai,vaikka,yli",
526
527 french:"a,ai,aie,aient,aies,ait,alors,as,au,aucun,aura,aurai,auraient,aurais,aurait,auras,aurez,auriez,aurions,aurons,auront,aussi,autre,aux,avaient,avais,avait,avant,avec,avez,aviez,avions,avoir,avons,ayant,ayez,ayons,bon,car,ce,ceci,cela,ces,cet,cette,ceux,chaque,ci,comme,comment,d,dans,de,dedans,dehors,depuis,des,deux,devoir,devrait,devrez,devriez,devrions,devrons,devront,dois,doit,donc,dos,droite,du,dès,début,dù,elle,elles,en,encore,es,est,et,eu,eue,eues,eurent,eus,eusse,eussent,eusses,eussiez,eussions,eut,eux,eûmes,eût,eûtes,faire,fais,faisez,fait,faites,fois,font,force,furent,fus,fusse,fussent,fusses,fussiez,fussions,fut,fûmes,fût,fûtes,haut,hors,ici,il,ils,j,je,juste,l,la,le,les,leur,leurs,lui,là,m,ma,maintenant,mais,me,mes,moi,moins,mon,mot,même,n,ne,ni,nom,nommé,nommée,nommés,nos,notre,nous,nouveau,nouveaux,on,ont,ou,où,par,parce,parole,pas,personne,personnes,peu,peut,plupart,pour,pourquoi,qu,quand,que,quel,quelle,quelles,quels,qui,sa,sans,se,sera,serai,seraient,serais,serait,seras,serez,seriez,serions,serons,seront,ses,seulement,si,sien,soi,soient,sois,soit,sommes,son,sont,sous,soyez,soyons,suis,sujet,sur,t,ta,tandis,te,tellement,tels,tes,toi,ton,tous,tout,trop,très,tu,un,une,valeur,voient,vois,voit,vont,vos,votre,vous,vu,y,à,ça,étaient,étais,était,étant,état,étiez,étions,été,étés,êtes,être",
528
529 german:"aber,alle,allem,allen,aller,alles,als,also,am,an,ander,andere,anderem,anderen,anderer,anderes,anderm,andern,anders,auch,auf,aus,bei,bin,bis,bist,da,damit,dann,das,dass,dasselbe,dazu,daß,dein,deine,deinem,deinen,deiner,deines,dem,demselben,den,denn,denselben,der,derer,derselbe,derselben,des,desselben,dessen,dich,die,dies,diese,dieselbe,dieselben,diesem,diesen,dieser,dieses,dir,doch,dort,du,durch,ein,eine,einem,einen,einer,eines,einig,einige,einigem,einigen,einiger,einiges,einmal,er,es,etwas,euch,euer,eure,eurem,euren,eurer,eures,für,gegen,gewesen,hab,habe,haben,hat,hatte,hatten,hier,hin,hinter,ich,ihm,ihn,ihnen,ihr,ihre,ihrem,ihren,ihrer,ihres,im,in,indem,ins,ist,jede,jedem,jeden,jeder,jedes,jene,jenem,jenen,jener,jenes,jetzt,kann,kein,keine,keinem,keinen,keiner,keines,können,könnte,machen,man,manche,manchem,manchen,mancher,manches,mein,meine,meinem,meinen,meiner,meines,mich,mir,mit,muss,musste,nach,nicht,nichts,noch,nun,nur,ob,oder,ohne,sehr,sein,seine,seinem,seinen,seiner,seines,selbst,sich,sie,sind,so,solche,solchem,solchen,solcher,solches,soll,sollte,sondern,sonst,um,und,uns,unser,unsere,unserem,unseren,unserer,unseres,unter,viel,vom,von,vor,war,waren,warst,was,weg,weil,weiter,welche,welchem,welchen,welcher,welches,wenn,werde,werden,wie,wieder,will,wir,wird,wirst,wo,wollen,wollte,während,würde,würden,zu,zum,zur,zwar,zwischen,über",
530
531 hindi:"�
532 त,�
533 पना,�
534 पनी,�
535 पने,�
536 भी,�
537 दर,आदि,आप,इत्यादि,इन ,इनका,इन्हीं,इन्हें,इन्हों,इस,इसका,इसकी,इसके,इसमें,इसी,इसे,उन,उनका,उनकी,उनके,उनको,उन्हीं,उन्हें,उन्हों,उस,उसके,उसी,उसे,एक,एवं,एस,ऐसे,और,कई,कर,करता,करते,करना,करने,करें,कहते,कहा,का,काफ़ी,कि,कितना,किन्हें,किन्हों,किया,कि,कि,किसी,किसे,की,कु,कु,के,को,को,कौ,कौनसा,गया,घर,जब,जहाँ,जा,जितना,जि,जिन्हें,जिन्हों,जि,जिसे,जीधर,जैसा,जैसे,जो,तक,तब,तरह,ति,तिन्हें,तिन्हों,ति,तिसे,तो,था,थी,थे,दबारा,दिया,दुसरा,दूसरे,दो,द्वारा,,नके,नहीं,ना,निहायत,नीचे,ने,पर,पहले,पूरा,पे,फि,बनी,बही,बहु,बा,बाला,बिलकु,भी,भीतर,मगर,मानो,मे,में,यदि,यह,यहाँ,यही,या,यि,ये,रखें,रहा,रहे,ऱ्वासा,लि,लिये,लेकि,,वग़ैरह,वर्,वह,वहाँ,वहीं,वाले,वु,वे,सकता,सकते,सबसे,सभी,सा,साबु,सा,सारा,से,सो,सं,ही,हु,हु,हु,है,हैं,हो,होता,होती,होते,होना,होने",
538
539 hungarian:"a,abban,ahhoz,ahogy,ahol,aki,akik,akkor,alatt,amely,amelyek,amelyekben,amelyeket,amelyet,amelynek,ami,amikor,amit,amolyan,amíg,annak,arra,arról,az,azok,azon,azonban,azt,aztán,azután,azzal,azért,be,belül,benne,bár,cikk,cikkek,cikkeket,csak,de,e,ebben,eddig,egy,egyes,egyetlen,egyik,egyre,egyéb,egész,ehhez,ekkor,el,ellen,elsõ,elég,elõ,elõször,elõtt,emilyen,ennek,erre,ez,ezek,ezen,ezt,ezzel,ezért,fel,felé,hanem,hiszen,hogy,hogyan,igen,ill,ill.,illetve,ilyen,ilyenkor,ismét,ison,itt,jobban,jó,jól,kell,kellett,keressünk,keresztül,ki,kívül,között,közül,legalább,legyen,lehet,lehetett,lenne,lenni,lesz,lett,maga,magát,majd,majd,meg,mellett,mely,melyek,mert,mi,mikor,milyen,minden,mindenki,mindent,mindig,mint,mintha,mit,mivel,miért,most,már,más,másik,még,míg,nagy,nagyobb,nagyon,ne,nekem,neki,nem,nincs,néha,néhány,nélkül,olyan,ott,pedig,persze,rá,s,saját,sem,semmi,sok,sokat,sokkal,szemben,szerint,szinte,számára,talán,tehát,teljes,tovább,továbbá,több,ugyanis,utolsó,után,utána,vagy,vagyis,vagyok,valaki,valami,valamint,való,van,vannak,vele,vissza,viszont,volna,volt,voltak,voltam,voltunk,által,általában,át,én,éppen,és,így,õ,õk,õket,össze,úgy,új,újabb,újra",
540
541 indonesian:"ada,adanya,adalah,adapun,agak,agaknya,agar,akan,akankah,akhirnya,aku,akulah,amat,amatlah,anda,andalah,antar,diantaranya,antara,antaranya,diantara,apa,apaan,mengapa,apabila,apakah,apalagi,apatah,atau,ataukah,ataupun,bagai,bagaikan,sebagai,sebagainya,bagaimana,bagaimanapun,sebagaimana,bagaimanakah,bagi,bahkan,bahwa,bahwasanya,sebaliknya,banyak,sebanyak,beberapa,seberapa,begini,beginian,beginikah,beginilah,sebegini,begitu,begitukah,begitulah,begitupun,sebegitu,belum,belumlah,sebelum,sebelumnya,sebenarnya,berapa,berapakah,berapalah,berapapun,betulkah,sebetulnya,biasa,biasanya,bila,bilakah,bisa,bisakah,sebisanya,boleh,bolehkah,bolehlah,buat,bukan,bukankah,bukanlah,bukannya,cuma,percuma,dahulu,dalam,dan,dapat,dari,daripada,dekat,demi,demikian,demikianlah,sedemikian,dengan,depan,di,dia,dialah,dini,diri,dirinya,terdiri,dong,dulu,enggak,enggaknya,entah,entahlah,terhadap,terhadapnya,hal,hampir,hanya,hanyalah,harus,haruslah,harusnya,seharusnya,hendak,hendaklah,hendaknya,hingga,sehingga,ia,ialah,ibarat,ingin,inginkah,inginkan,ini,inikah,inilah,itu,itukah,itulah,jangan,jangankan,janganlah,jika,jikalau,juga,justru,kala,kalau,kalaulah,kalaupun,kalian,kami,kamilah,kamu,kamulah,kan,kapan,kapankah,kapanpun,dikarenakan,karena,karenanya,ke,kecil,kemudian,kenapa,kepada,kepadanya,ketika,seketika,khususnya,kini,kinilah,kiranya,sekiranya,kita,kitalah,kok,lagi,lagian,selagi,lah,lain,lainnya,melainkan,selaku,lalu,melalui,terlalu,lama,lamanya,selama,selama,selamanya,lebih,terlebih,bermacam,macam,semacam,maka,makanya,makin,malah,malahan,mampu,mampukah,mana,manakala,manalagi,masih,masihkah,semasih,masing,mau,maupun,semaunya,memang,mereka,merekalah,meski,meskipun,semula,mungkin,mungkinkah,nah,namun,nanti,nantinya,nyaris,oleh,olehnya,seorang,seseorang,pada,padanya,padahal,paling,sepanjang,pantas,sepantasnya,sepantasnyalah,para,pasti,pastilah,per,pernah,pula,pun,merupakan,rupanya,serupa,saat,saatnya,sesaat,saja,sajalah,saling,bersama,sama,sesama,sambil,sampai,sana,sangat,sangatlah,saya,sayalah,se,sebab,sebabnya,sebuah,tersebut,tersebutlah,sedang,sedangkan,sedikit,sedikitnya,segala,segalanya,segera,sesegera,sejak,sejenak,sekali,sekalian,sekalipun,sesekali,sekaligus,sekarang,sekarang,sekitar,sekitarnya,sela,selain,selalu,seluruh,seluruhnya,semakin,sementara,sempat,semua,semuanya,sendiri,sendirinya,seolah,seperti,sepertinya,sering,seringnya,serta,siapa,siapakah,siapapun,disini,disinilah,sini,sinilah,sesuatu,sesuatunya,suatu,sesudah,sesudahnya,sudah,sudahkah,sudahlah,supaya,tadi,tadinya,tak,tanpa,setelah,telah,tentang,tentu,tentulah,tentunya,tertentu,seterusnya,tapi,tetapi,setiap,tiap,setidaknya,tidak,tidakkah,tidaklah,toh,waduh,wah,wahai,sewaktu,walau,walaupun,wong,yaitu,yakni,yang",
542
543 italian:"a,abbia,abbiamo,abbiano,abbiate,ad,adesso,agl,agli,ai,al,all,alla,alle,allo,allora,altre,altri,altro,anche,ancora,avemmo,avendo,avere,avesse,avessero,avessi,avessimo,aveste,avesti,avete,aveva,avevamo,avevano,avevate,avevi,avevo,avrai,avranno,avrebbe,avrebbero,avrei,avremmo,avremo,avreste,avresti,avrete,avrà,avrò,avuta,avute,avuti,avuto,c,che,chi,ci,coi,col,come,con,contro,cui,da,dagl,dagli,dai,dal,dall,dalla,dalle,dallo,degl,degli,dei,del,dell,della,delle,dello,dentro,di,dov,dove,e,ebbe,ebbero,ebbi,ecco,ed,era,erano,eravamo,eravate,eri,ero,essendo,faccia,facciamo,facciano,facciate,faccio,facemmo,facendo,facesse,facessero,facessi,facessimo,faceste,facesti,faceva,facevamo,facevano,facevate,facevi,facevo,fai,fanno,farai,faranno,fare,farebbe,farebbero,farei,faremmo,faremo,fareste,faresti,farete,farà,farò,fece,fecero,feci,fino,fosse,fossero,fossi,fossimo,foste,fosti,fra,fu,fui,fummo,furono,giù,gli,ha,hai,hanno,ho,i,il,in,io,l,la,le,lei,li,lo,loro,lui,ma,me,mi,mia,mie,miei,mio,ne,negl,negli,nei,nel,nell,nella,nelle,nello,no,noi,non,nostra,nostre,nostri,nostro,o,per,perché,però,più,pochi,poco,qua,quale,quanta,quante,quanti,quanto,quasi,quella,quelle,quelli,quello,questa,queste,questi,questo,qui,quindi,sarai,saranno,sarebbe,sarebbero,sarei,saremmo,saremo,sareste,saresti,sarete,sarà,sarò,se,sei,senza,si,sia,siamo,siano,siate,siete,sono,sopra,sotto,sta,stai,stando,stanno,starai,staranno,stare,starebbe,starebbero,starei,staremmo,staremo,stareste,staresti,starete,starà,starò,stava,stavamo,stavano,stavate,stavi,stavo,stemmo,stesse,stessero,stessi,stessimo,stesso,steste,stesti,stette,stettero,stetti,stia,stiamo,stiano,stiate,sto,su,sua,sue,sugl,sugli,sui,sul,sull,sulla,sulle,sullo,suo,suoi,te,ti,tra,tu,tua,tue,tuo,tuoi,tutti,tutto,un,una,uno,vai,vi,voi,vostra,vostre,vostri,vostro,è",
544
545 norwegian:"alle,at,av,bare,begge,ble,blei,bli,blir,blitt,både,båe,da,de,deg,dei,deim,deira,deires,dem,den,denne,der,dere,deres,det,dette,di,din,disse,ditt,du,dykk,dykkar,då,eg,ein,eit,eitt,eller,elles,en,enn,er,et,ett,etter,for,fordi,fra,før,ha,hadde,han,hans,har,hennar,henne,hennes,her,hjå,ho,hoe,honom,hoss,hossen,hun,hva,hvem,hver,hvilke,hvilken,hvis,hvor,hvordan,hvorfor,i,ikke,ikkje,ingen,ingi,inkje,inn,inni,ja,jeg,kan,kom,korleis,korso,kun,kunne,kva,kvar,kvarhelst,kven,kvi,kvifor,man,mange,me,med,medan,meg,meget,mellom,men,mi,min,mine,mitt,mot,mykje,ned,no,noe,noen,noka,noko,nokon,nokor,nokre,nå,når,og,også,om,opp,oss,over,på,samme,seg,selv,si,sia,sidan,siden,sin,sine,sitt,sjøl,skal,skulle,slik,so,som,somme,somt,så,sånn,til,um,upp,ut,uten,var,vart,varte,ved,vere,verte,vi,vil,ville,vore,vors,vort,være,vært,vår,å",
546
547 persian:"نداشته,شناسی,خواهی�
548 ,آباد,داشتن,نظیر,ه�
549 چون,باره,نکرده,شان,سابق,هفت,دانند,جایی,بی,جز,زیرِ,رویِ,سریِ,تویِ,جلویِ,پیشِ,عقبِ,بالایِ,خارجِ,وسطِ,بیرونِ,سویِ,کنارِ,پاعینِ,نزدِ,نزدیکِ,دنبالِ,حدودِ,برابرِ,طبقِ,�
550 انندِ,ضدِّ,هنگا�
551 ِ,برایِ,�
552 ثلِ,باره,اثرِ,تولِ,علّتِ,س�
553 تِ,عنوانِ,قصدِ,روب,جدا,کی,که,چیست,هست,کجا,کجاست,کَی,چطور,کدا�
554 ,آیا,�
555 گر,چندین,یک,چیزی,دیگر,کسی,بعری,هیچ,چیز,جا,کس,هرگز,یا,تنها,بلکه,خیاه,بله,بلی,آره,آری,�
556 رسی,البتّه,لطفاً,ّه,انکه,وقتیکه,ه�
557 ین,پیش,�
558 دّتی,هنگا�
559 ی,�
560 ان,تان,براساس,شدند,ترین,ا�
561 روز,باشند,ندارد,چون,قابل,گوید,دیگری,ه�
562 ان,خواهند,قبل,آ�
563 ده,اکنون,تحت,طریق,گیری,جای,هنوز,چرا,البته,کنید,سازی,سو�
564 ,کن�
565 ,بلکه,زیر,توانند,ض�
566 ن,فقط,بودن,حق,آید,وقتی,اش,یابد,نخستین,�
567 قابل,خد�
568 ات,ا�
569 سال,تاکنون,�
570 انند,تازه,آورد,فکر,آنچه,نخست,نشده,شاید,چهار,جریان,پنج,ساخته,زیرا,نزدیک,برداری,کسی,ریزی,رفت,گردد,�
571 ثل,آ�
572 د,ا�
573 ,بهترین,دانست,ک�
574 تر,دادن,ت�
575 ا�
576 ی,جلوگیری,بیشتری,ای�
577 ,ناشی,چیزی,آنکه,بالا,بنابراین,ایشان,بعضی,دادند,داشتند,برخوردار,نخواهد,هنگا�
578 ,نباید,غیر,نبود,دیده,وگو,داری�
579 ,چگونه,بندی,خواست,فوق,ده,نوعی,هستی�
580 ,دیگران,ه�
581 چنان,سراسر,ندارند,گروهی,سعی,روزهای,آنجا,یکدیگر,کرد�
582 ,بیست,بروز,سپس,رفته,آورده,ن�
583 اید,باشی�
584 ,گویند,زیاد,خویش,ه�
585 واره,گذاشته,شش,تر,کل,ت�
586 ا�
587 ,بدون,�
588 یلیارد,بودند,طی,بسیاری,گذاری,دهند,گرفت,طور,بار,آنان,گفته,ش�
589 ا,گیرد,�
590 ختلف,بعد,درباره,دو�
591 ,دیروز,نه,برخی,چنین,توسط,ولی,اینکه,حتی,نشان,کنی�
592 ,کردن,شدن,بیش,جدید,چند,هیچ,نا�
593 ,اول,تواند,هایی,گرفته,روی,بسیار,بیشتر,شوند,سوی,�
594 یلیون,ه�
595 ین,دارند,بوده,داده,کردند,ه�
596 چنین,چه,داشت,راه,داشته,داد,استفاده,نیست,هزار,دهد,�
597 ن,بی,هستند,یکی,صورت,ه�
598 ه,اگر,پس,پیش,بین,ن�
599 ی,�
600 رد�
601 ,دیگر,باشد,آنها,�
602 ورد,او,خواهد,هر,اند,دو,باید,ا�
603 ا,یا,کرده,�
604 ا,دارد,کنند,ه�
605 ,وی,نیز,گفت,بود,بر,کند,تا,ای,شد,کرد,ها,خود,شده,شود,یک,آن,برای,های,با,را,است,این,�
606 ی,که,از,به,در,و",
607 polish:"ach,aj,albo,bardzo,bez,bo,być,ci,cię,ciebie,co,czy,daleko,dla,dlaczego,dlatego,do,dobrze,dok�
608 d,dość,dużo,dwa,dwaj,dwie,dwoje,dziś,dzisiaj,gdyby,gdzie,go,ich,ile,im,inny,ja,j�
609 ,jak,jakby,jaki,je,jeden,jedna,jedno,jego,jej,jemu,jeśli,jest,jestem,jeżeli,już,każdy,kiedy,kierunku,kto,ku,lub,ma,maj�
610 ,mam,mi,mn�
611 ,mnie,moi,mój,moja,moje,może,mu,my,na,nam,nami,nas,nasi,nasz,nasza,nasze,natychmiast,ni�
612 ,nic,nich,nie,niego,niej,niemu,nigdy,nim,nimi,niż,obok,od,około,on,ona,one,oni,ono,owszem,po,pod,ponieważ,przed,przedtem,s�
613 ,sam,sama,się,sk�
614 d,tak,taki,tam,ten,to,tob�
615 ,tobie,tu,tutaj,twoi,twój,twoja,twoje,ty,wam,wami,was,wasi,wasz,wasza,wasze,we,więc,wszystko,wtedy,wy,żaden,zawsze,że",
616
617 portuguese:"a,ao,aos,aquela,aquelas,aquele,aqueles,aquilo,as,até,com,como,da,das,de,dela,delas,dele,deles,depois,do,dos,e,ela,elas,ele,eles,em,entre,era,eram,essa,essas,esse,esses,esta,estamos,estas,estava,estavam,este,esteja,estejam,estejamos,estes,esteve,estive,estivemos,estiver,estivera,estiveram,estiverem,estivermos,estivesse,estivessem,estivéramos,estivéssemos,estou,está,estávamos,estão,eu,foi,fomos,for,fora,foram,forem,formos,fosse,fossem,fui,fôramos,fôssemos,haja,hajam,hajamos,havemos,hei,houve,houvemos,houver,houvera,houveram,houverei,houverem,houveremos,houveria,houveriam,houvermos,houverá,houverão,houveríamos,houvesse,houvessem,houvéramos,houvéssemos,há,hão,isso,isto,já,lhe,lhes,mais,mas,me,mesmo,meu,meus,minha,minhas,muito,na,nas,nem,no,nos,nossa,nossas,nosso,nossos,num,numa,não,nós,o,os,ou,para,pela,pelas,pelo,pelos,por,qual,quando,que,quem,se,seja,sejam,sejamos,sem,serei,seremos,seria,seriam,será,serão,seríamos,seu,seus,somos,sou,sua,suas,são,só,também,te,tem,temos,tenha,tenham,tenhamos,tenho,terei,teremos,teria,teriam,terá,terão,teríamos,teu,teus,teve,tinha,tinham,tive,tivemos,tiver,tivera,tiveram,tiverem,tivermos,tivesse,tivessem,tivéramos,tivéssemos,tu,tua,tuas,tém,tínhamos,um,uma,você,vocês,vos,à,às,éramos",
618
619 romanian:"vreo,acelea,cita,degraba,lor,alta,tot,ai,dat,x,despre,peste,bine,dar,foarte,z,avea,multi,cit,alt,mai,sa,fie,tu,multe,e,orice,dintr,se,g,intr,niste,multa,insa,il,fost,a,abia,nimic,sub,acel,in,altceva,si,avem,altfel,c,ea,acest,li,parca,fi,dintre,unele,m,acestei,mare,cel,este,pe,atitia,uneori,acela,iti,astazi,acestui,o,imi,ele,ceilalti,pai,fata,noua,sa-ti,altul,au,i,prin,conform,aceste,anume,azi,k,unul,ala,unei,fara,ei,la,aceeasi,u,inapoi,acestea,acesta,catre,sale,asupra,as,aceea,ba,ale,da,le,apoi,aia,suntem,cum,isi,inainte,s,de,cind,cumva,chiar,acestia,daca,sunt,care,al,numai,cui,sus,tocmai,prea,cu,mi,eu,doar,niciodata,exact,putini,aiurea,tuturor,celor,astfel,atunci,citeva,cat,sau,fel,intre,acolo,nostri,ma,mult,una,ceea,iar,sintem,ati,din,geaba,sai,caruia,adica,inca,are,aici,ca,ia,nici,d,oricum,asta,carora,face,citiva,voi,unor,f,atat,toata,alaturi,cea,nu,totusi,ce,altii,acum,sint,capat,mod,deasupra,cam,vom,b,toate,careia,aceasta,atit,nimeni,ii,ci,unde,ul,plus,era,sa-mi,l,spre,dupa,nou,cele,acea,un,incit,n,cei,or,va,deci,acelasi,atatea,h,vor,decit,noi,cineva,desi,ceva,j,ului,atitea,avut,ar,pina,t,atata,unui,el,citi,asa,totul,pentru,atita,v,alti,asemenea,atatia,te,ne,deja,unii,p,atare,cite,cine,cand,toti,vreun,ori,r,alte,lui,ti,ni,aceia,am",
620
621 russian:"а,в,г,е,ж,и,к,м,о,с,т,у,я,бы,во,вы,да,до,ее,ей,ею,её,же,за,из,им,и�
622 ,ли,мы,на,не,ни,но,ну,н�
623 ,об,он,от,по,со,та,те,то,ту,ты,уж,без,был,вам,вас,ваш,вон,вот,все,всю,вся,всё,где,год,два,две,дел,для,его,ему,еще,ещё,или,ими,имя,как,кем,ком,кто,лет,мне,мог,мож,мои,мой,мор,моя,моё,над,нам,нас,наш,нее,ней,нем,нет,нею,неё,ни�
624 ,оба,она,они,оно,под,пор,при,про,раз,сам,си�
625 ,так,там,тем,те�
626 ,том,тот,тою,три,тут,уже,чем,что,эта,эти,это,эту,алло,буду,будь,бывь,была,были,было,быть,вами,ваша,ваше,ваши,ведь,весь,вниз,всем,все�
627 ,всею,года,году,даже,дву�
628 ,день,если,есть,зато,кого,кому,куда,лишь,люди,мало,меля,меня,мимо,мира,мной,мною,мочь,надо,нами,наша,наше,наши,него,нему,ниже,ними,один,пока,пора,пять,рано,сама,сами,само,саму,свое,свои,свою,себе,себя,семь,стал,суть,твой,твоя,твоё,тебе,тебя,теми,того,тоже,тому,туда,�
629 оть,�
630 отя,чаще,чего,чему,чтоб,чуть,этим,эти�
631 ,этой,этом,этот,более,будем,будет,будто,будут,ввер�
632 ,вдали,вдруг,везде,внизу,время,всего,всеми,всему,всюду,давно,даром,долго,друго,жизнь,занят,затем,зачем,здесь,иметь,какая,какой,когда,кроме,лучше,между,менее,много,могут,может,можно,мож�
633 о,назад,низко,нужно,одной,около,опять,очень,перед,позже,после,потом,почти,пятый,разве,рядом,самим,сами�
634 ,самой,самом,своей,свои�
635 ,сеаой,снова,собой,собою,такая,также,такие,такое,такой,тобой,тобою,тогда,тысяч,уметь,часто,через,чтобы,шесть,этими,этого,этому,близко,больше,будете,будешь,бывает,важная,важное,важные,важный,вокруг,восемь,всегда,второй,далеко,дальше,девять,десять,должно,другая,другие,други�
636 ,другое,другой,занята,занято,заняты,значит,именно,иногда,каждая,каждое,каждые,каждый,кругом,меньше,начала,нельзя,нибудь,никуда,ничего,обычно,однако,одного,отсюда,первый,потому,почему,просто,против,раньше,самими,самого,самому,своего,сейчас,сказал,совсем,теперь,только,третий,�
637 орошо,�
638 отеть,�
639 очешь,четыре,шестой,восьмой,впрочем,времени,говорил,говорит,девятый,десятый,кажется,конечно,которая,которой,которые,который,которы�
640 ,навер�
641 у,наконец,недавно,немного,нередко,никогда,однажды,посреди,сегодня,седьмой,сказала,сказать,сколько,слишком,сначала,спасибо,человек,двадцать,довольно,которого,наиболее,недалеко,особенно,отовсюду,двадцатый,миллионов,несколько,прекрасно,процентов,четвертый,двенадцать,непрерывно,пожалуйста,пятнадцать,семнадцать,тринадцать,двенадцатый,одиннадцать,пятнадцатый,семнадцатый,тринадцатый,шестнадцать,восемнадцать,девятнадцать,одиннадцатый,четырнадцать,шестнадцатый,восемнадцатый,девятнадцатый,действительно,четырнадцатый,многочисленная,многочисленное,многочисленные,многочисленный",
642
643 slovak:"a,aby,aj,ak,ako,ale,alebo,and,ani,áno,asi,až,bez,bude,budem,budeš,budeme,budete,budú,by,bol,bola,boli,bolo,byť,cez,čo,či,ďalší,ďalšia,ďalšie,dnes,do,ho,ešte,for,i,ja,je,jeho,jej,ich,iba,iné,iný,som,si,sme,sú,k,kam,každý,každá,každé,každí,kde,keď,kto,ktorá,ktoré,ktorou,ktorý,ktorí,ku,lebo,len,ma,mať,má,máte,medzi,mi,mna,mne,mnou,musieť,môcť,môj,môže,my,na,nad,nám,náš,naši,nie,nech,než,nič,niektorý,nové,nový,nová,nové,noví,o,od,odo,of,on,ona,ono,oni,ony,po,pod,podľa,pokiaľ,potom,práve,pre,prečo,preto,pretože,prvý,prvá,prvé,prví,pred,predo,pri,pýta,s,sa,so,si,svoje,svoj,svojich,svojím,svojími,ta,tak,takže,táto,teda,te,tě,ten,tento,the,tieto,tým,týmto,tiež,to,toto,toho,tohoto,tom,tomto,tomuto,toto,tu,tú,túto,tvoj,ty,tvojími,už,v,vám,váš,vaše,vo,viac,však,všetok,vy,z,za,zo,že",
644
645 spanish:"a,al,algo,algunas,algunos,ante,antes,como,con,contra,cual,cuando,de,del,desde,donde,durante,e,el,ella,ellas,ellos,en,entre,era,erais,eran,eras,eres,es,esa,esas,ese,eso,esos,esta,estaba,estabais,estaban,estabas,estad,estada,estadas,estado,estados,estamos,estando,estar,estaremos,estará,estarán,estarás,estaré,estaréis,estaría,estaríais,estaríamos,estarían,estarías,estas,este,estemos,esto,estos,estoy,estuve,estuviera,estuvierais,estuvieran,estuvieras,estuvieron,estuviese,estuvieseis,estuviesen,estuvieses,estuvimos,estuviste,estuvisteis,estuviéramos,estuviésemos,estuvo,está,estábamos,estáis,están,estás,esté,estéis,estén,estés,fue,fuera,fuerais,fueran,fueras,fueron,fuese,fueseis,fuesen,fueses,fui,fuimos,fuiste,fuisteis,fuéramos,fuésemos,ha,habida,habidas,habido,habidos,habiendo,habremos,habrá,habrán,habrás,habré,habréis,habría,habríais,habríamos,habrían,habrías,habéis,había,habíais,habíamos,habían,habías,han,has,hasta,hay,haya,hayamos,hayan,hayas,hayáis,he,hemos,hube,hubiera,hubierais,hubieran,hubieras,hubieron,hubiese,hubieseis,hubiesen,hubieses,hubimos,hubiste,hubisteis,hubiéramos,hubiésemos,hubo,la,las,le,les,lo,los,me,mi,mis,mucho,muchos,muy,más,mí,mía,mías,mío,míos,nada,ni,no,nos,nosotras,nosotros,nuestra,nuestras,nuestro,nuestros,o,os,otra,otras,otro,otros,para,pero,poco,por,porque,que,quien,quienes,qué,se,sea,seamos,sean,seas,seremos,será,serán,serás,seré,seréis,sería,seríais,seríamos,serían,serías,seáis,sido,siendo,sin,sobre,sois,somos,son,soy,su,sus,suya,suyas,suyo,suyos,sí,también,tanto,te,tendremos,tendrá,tendrán,tendrás,tendré,tendréis,tendría,tendríais,tendríamos,tendrían,tendrías,tened,tenemos,tenga,tengamos,tengan,tengas,tengo,tengáis,tenida,tenidas,tenido,tenidos,teniendo,tenéis,tenía,teníais,teníamos,tenían,tenías,ti,tiene,tienen,tienes,todo,todos,tu,tus,tuve,tuviera,tuvierais,tuvieran,tuvieras,tuvieron,tuviese,tuvieseis,tuviesen,tuvieses,tuvimos,tuviste,tuvisteis,tuviéramos,tuviésemos,tuvo,tuya,tuyas,tuyo,tuyos,tú,un,una,uno,unos,vosotras,vosotros,vuestra,vuestras,vuestro,vuestros,y,ya,yo,él,éramos",
646
647 swedish:"alla,allt,att,av,blev,bli,blir,blivit,de,dem,den,denna,deras,dess,dessa,det,detta,dig,din,dina,ditt,du,där,då,efter,ej,eller,en,er,era,ert,ett,från,för,ha,hade,han,hans,har,henne,hennes,hon,honom,hur,här,i,icke,ingen,inom,inte,jag,ju,kan,kunde,man,med,mellan,men,mig,min,mina,mitt,mot,mycket,ni,nu,när,någon,något,några,och,om,oss,på,samma,sedan,sig,sin,sina,sitta,själv,skulle,som,så,sådan,sådana,sådant,till,under,upp,ut,utan,vad,var,vara,varför,varit,varje,vars,vart,vem,vi,vid,vilka,vilkas,vilken,vilket,vår,våra,vårt,än,är,åt,över",
648
649 turkish:"mu,onlar,seksen,ama,trilyon,buna,bizim,þeyden,yirmi,altý,iki,seni,doksan,dört,bunun,ki,nereye,altmýþ,hem,milyon,kez,otuz,beþ,elli,bizi,da,sekiz,ve,çok,bu,veya,ya,kýrk,onlarýn,ona,bana,yetmiþ,milyar,þunu,senden,birþeyi,dokuz,yani,kimi,þeyler,kim,neden,senin,yedi,niye,üç,þey,mý,tüm,onlari,bunda,ise,þundan,hep,þuna,bin,ben,ondan,kimden,bazý,belki,ne,bundan,gibi,de,onlardan,sizi,sizin,daha,niçin,þunda,INSERmi,bunu,beni,ile,þu,þeyi,sizden,defa,biz,için,dahi,siz,nerde,kime,birþey,birkez,her,biri,on,mü,diye,acaba,sen,en,hepsi,bir,bizden,sanki,benim,nerede,onu,benden,yüz,birkaç,çünkü,nasýl,hiç,katrilyon",
650
651 ukrainian:"a,б,в,г,е,ж,з,м,т,у,я,є,і,аж,ви,де,до,за,зі,ми,на,не,ну,н�
652 ,ні,по,та,ти,то,ту,ті,це,цю,ця,ці,чи,ще,що,як,їй,їм,ї�
653 ,її,або,але,ало,без,був,вам,вас,ваш,вже,все,всю,вся,від,він,два,дві,для,ким,мож,моя,моє,мої,міг,між,мій,над,нам,нас,наш,нею,неї,ни�
654 ,ніж,ній,ось,при,про,під,пір,раз,рік,сам,си�
655 ,сім,так,там,теж,тим,ти�
656 ,той,тою,три,тут,�
657 оч,�
658 то,цей,цим,ци�
659 ,час,щоб,яка,які,адже,буде,буду,будь,була,були,було,бути,вами,ваша,ваше,ваші,весь,вниз,вона,вони,воно,всею,всім,всі�
660 ,втім,геть,далі,дво�
661 ,день,дуже,зате,його,йому,каже,кого,коли,кому,крім,куди,лише,люди,мало,мати,мене,мені,миру,мною,може,нами,наша,наше,наші,ними,ніби,один,поки,пора,рано,року,році,сама,саме,саму,самі,свою,своє,свої,себе,собі,став,суть,така,таке,такі,твоя,твоє,твій,тебе,тими,тобі,того,тоді,тому,туди,�
662 оча,�
663 іба,цими,цієї,часу,чого,чому,який,яки�
664 ,якої,якщо,ім'я,інша,інше,інші,буває,будеш,більш,вгору,вміти,внизу,вісім,давно,даром,добре,довго,друго,дякую,життя,зараз,знову,какая,кожен,кожна,кожне,кожні,краще,ледве,майже,менше,могти,можна,назад,немає,нижче,нього,однак,п'ять,перед,поруч,потім,проти,після,років,самим,сами�
665 ,самій,свого,своєї,свої�
666 ,собою,справ,такий,також,тепер,тисяч,тобою,треба,тро�
667 и,усюди,усіма,�
668 очеш,цього,цьому,часто,через,шість,якого,іноді,інший,інши�
669 ,багато,будемо,будете,будуть,більше,всього,всьому,далеко,десять,досить,другий,дійсно,завжди,звідси,зовсім,кругом,кілька,людина,можуть,навіть,навіщо,нагорі,небудь,низько,ніколи,нікуди,нічого,обидва,одного,однієї,п'ятий,перший,просто,раніше,раптом,самими,самого,самому,сказав,скрізь,сьомий,третій,тільки,�
670 отіти,чотири,чудово,шостий,близько,важлива,важливе,важливі,вдалині,восьмий,говорив,дев'ять,десятий,зайнята,зайнято,зайняті,занадто,значить,навколо,нарешті,нерідко,повинно,посеред,початку,пізніше,сказала,сказати,скільки,спасибі,частіше,важливий,двадцять,дев'ятий,зазвичай,зайнятий,звичайно,здається,найбільш,не можна,недалеко,особливо,потрібно,спочатку,сьогодні,численна,численне,численні,відсотків,двадцятий,звідусіль,мільйонів,нещодавно,прекрасно,четвертий,численний,будь ласка,дванадцять,одинадцять,сімнадцять,тринадцять,безперервно,дванадцятий,одинадцятий,одного разу,п'ятнадцять,сімнадцятий,тринадцятий,шістнадцять,вісімнадцять,п'ятнадцятий,чотирнадцять,шістнадцятий,вісімнадцятий,дев'ятнадцять,чотирнадцятий,дев'ятнадцятий",
671
672 };
673
674 //change the to defualt Stop word language options
675
676 $('#qlcd_wp_chatbot_stop_words_name').on('change',function () {
677
678 var lang=$(this).val();
679
680 var stopWords=stopWordsList[lang];
681
682 $("#qlcd_wp_chatbot_stop_words").val(stopWords);
683
684
685
686 });
687
688 //Custom Icon
689
690 $('.qcld_chatbot_custom_icon_button').click(function(e) {
691
692 e.preventDefault();
693
694 var image = wp.media({
695
696 title: 'Custom Icon',
697
698 // mutiple: true if you want to upload multiple files at once
699
700 multiple: false
701
702 })
703
704 .open()
705
706 .on('select', function(e){
707
708 // This will return the selected image from the Media Uploader, the result is an object
709
710 var uploaded_image = image.state().get('selection').first();
711
712 var image_url = uploaded_image.toJSON().url;
713
714 // Let's assign the url value to the hidden field value and img src.
715
716 $('#wp_chatbot_custom_icon_src').attr('src',image_url);
717
718 $('#wp_chatbot_custom_icon_path').val(image_url);
719
720 });
721
722 });
723
724
725 $('#qc_wpbot_df_status').on('click', function(e){
726 e.preventDefault();
727
728 $.ajax(
729 {
730 type: 'POST', // 'POST' here so that _upload_ progress _also_ makes sense;
731 // Change to 'GET' if you need.
732 url: qcld_gemini_admin_data.ajax_url, data: {
733 'action': 'qcld_wp_df_api_call',
734 'dfquery': 'hi',
735 'nonce': qcld_gemini_admin_data.ajax_nonce,
736 'sessionid': 'wpwBot_df_201sdf8071'
737 },
738 beforeSend: function()
739 {
740 $('.qcwp_df_status').append('<p>Connecting...</p>');
741
742 },
743 success: function(data){
744 var response = $.parseJSON(JSON.parse(data));
745 if(typeof response.responseId !== "undefined"){
746 $('.qcwp_df_status').html('<p>Dialogflow is connected successfully!</p>');
747 }else{
748 $('.qcwp_df_status').html('<p>Connecton Failed. '+response.error.message+'</p><p class="df-connect-error">If DialogFlow connection is not working, please check <a href="'+document.location.pathname+'?page=wpbot_help_page#general_debugging">Debugging Steps</a> or <a href="https://www.wpbot.pro/free-support/" target="_blank">contact us</a> for support.</p>');
749 }
750
751 }
752 });
753
754 })
755
756 //Custom Agent Icon
757
758 $('.wp_chatbot_custom_agent_button').click(function(e) {
759
760 e.preventDefault();
761
762 var image = wp.media({
763
764 title: 'Custom Agent',
765
766 // mutiple: true if you want to upload multiple files at once
767
768 multiple: false
769
770 })
771
772 .open()
773
774 .on('select', function(e){
775
776 // This will return the selected image from the Media Uploader, the result is an object
777
778 var uploaded_image = image.state().get('selection').first();
779
780 var image_url = uploaded_image.toJSON().url;
781
782 // Let's assign the url value to the hidden field value and img src.
783
784 $('#wp_chatbot_custom_agent_src').attr('src',image_url);
785
786 $('#wp_chatbot_custom_agent_path').val(image_url);
787
788 });
789
790 });
791
792 //Custom Backgroud image
793
794 $('.qcld_wb_chatbot_board_bg_button').click(function(e) {
795
796 e.preventDefault();
797
798 var image = wp.media({
799
800 title: 'Custom Agent',
801
802 // mutiple: true if you want to upload multiple files at once
803
804 multiple: false
805
806 })
807
808 .open()
809
810 .on('select', function(e){
811
812 // This will return the selected image from the Media Uploader, the result is an object
813
814 var uploaded_image = image.state().get('selection').first();
815
816 var image_url = uploaded_image.toJSON().url;
817
818 // Let's assign the url value to the hidden field value and img src.
819
820 $('#qcld_wb_chatbot_board_bg_image').attr('src',image_url);
821
822 $('#qcld_wb_chatbot_board_bg_path').val(image_url);
823
824 });
825
826 });
827
828 //wpwBot Load Control handler.
829
830 jQuery("input[name='wp_chatbot_df_api']").on('change', function(e){
831 e.preventDefault();
832 if($(this).val()=='v1'){
833 $('#wp-chatbot-df-section-v1').show('slow');
834 $('#wp-chatbot-df-section-v2').hide('slow');
835 }else{
836 $('#wp-chatbot-df-section-v1').hide('slow');
837 $('#wp-chatbot-df-section-v2').show('slow');
838 }
839 })
840
841 if($("input[type=radio][name='wp_chatbot_df_api']:checked").val()=='v1'){
842 $('#wp-chatbot-df-section-v1').show('slow');
843 }else{
844 $('#wp-chatbot-df-section-v1').hide();
845 }
846
847 if($("input[type=radio][name='wp_chatbot_df_api']:checked").val()=='v2'){
848 $('#wp-chatbot-df-section-v2').show('slow');
849 }else{
850 $('#wp-chatbot-df-section-v2').hide();
851 }
852
853
854 if($("input[type=radio][name='wp_chatbot_show_pages']:checked").val()=='off'){
855
856 $('#wp-chatbot-show-pages-list').show('slow');
857
858 }else{
859
860 $('#wp-chatbot-show-pages-list').hide('slow');
861
862 }
863
864 //on change.
865
866 $('.wp-chatbot-show-pages').on('change',function (e) {
867
868 if( $(this).val()=='off'){
869
870 $('#wp-chatbot-show-pages-list').show('slow');
871
872 }else{
873
874 $('#wp-chatbot-show-pages-list').hide('slow');
875
876 }
877
878 })
879
880 //Search options
881
882 if($('#wp-chatbot-search-option').val()=='standard'){
883
884 $('#wp-chatbot-standard-search').show();
885
886 $('#wp-chatbot-advanced-search').hide();
887
888
889
890 } else if($('#wp-chatbot-search-option').val()=='advanced'){
891
892 $('#wp-chatbot-advanced-search').show();
893
894 $('#wp-chatbot-standard-search').hide();
895
896 }
897
898 $('#wp-chatbot-search-option').on('change',function (e) {
899
900 if($(this).val()=='standard'){
901
902 $('#wp-chatbot-standard-search').show();
903
904 $('#wp-chatbot-advanced-search').hide();
905
906 } else if($(this).val()=='advanced'){
907
908 $('#wp-chatbot-advanced-search').show();
909
910 $('#wp-chatbot-standard-search').hide();
911
912 }
913
914 });
915
916
917
918 //Product Index for categories & Tag search
919
920
921
922 var wpChatbotIndexBtn=$('#qlcd_wp_chatbot_index');
923
924 var wpChatbotIndexProcess = $('#qlcd_wp_chatbot_index_process');
925
926 var wpChatbotIndexProgress = $('#qlcd_wp_chatbot_index_progress');
927
928 var wpChatbotIndexLoader = $('#qlcd_wp_chatbot_index_loader');
929
930 var wpChatbotSyncStatus;
931
932 var wpChatbotIndexProcessed;
933
934 var wpChatbotIndexToProcess;
935
936 // Reindex table
937
938 wpChatbotIndexBtn.on( 'click', function(e) {
939
940 e.preventDefault();
941
942 wpChatbotIndexProcess.html('');
943
944 wpChatbotIndexProgress.text('');
945
946
947
948 wpChatbotSyncStatus = 'sync';
949
950 wpChatbotIndexToProcess = 0;
951
952 wpChatbotIndexProcessed = 0;
953
954
955
956 wpChatbotIndexLoader.html('<img class="wp-chatbot-comment-loader" src="'+qcld_gemini_admin_data.image_path+'comment.gif" alt="..." />');
957
958 wpChatbotIndexProcess.html( wpChatbotIndexProcessed + '%' );
959
960
961
962 qcld_wb_chatbot_sync();
963
964
965
966 });
967
968
969
970
971
972 function qcld_wb_chatbot_sync() {
973
974
975
976 $.ajax({
977
978 type: 'POST',
979
980 url: qcld_gemini_admin_data.ajax_url,
981
982 data: {
983
984 action: 'qcld-wp-chabot-reindex',
985 'nonce': qcld_gemini_admin_data.ajax_nonce
986
987 },
988
989 dataType: "json",
990
991 success: function (response) {
992
993 // console.log('begining : ',response);
994
995 if ( 'sync' !== wpChatbotSyncStatus ) {
996
997 return;
998
999 }
1000
1001
1002
1003 wpChatbotIndexToProcess = response.data.found_posts;
1004
1005 wpChatbotIndexProcessed = response.data.offset;
1006
1007
1008
1009 wpChatbotIndexProcessed = Math.floor( wpChatbotIndexProcessed / wpChatbotIndexToProcess * 100 );
1010
1011
1012
1013 if ( 0 === response.data.offset && ! response.data.start ) {
1014
1015
1016
1017 // Sync finished
1018
1019 wpChatbotSyncStatus = 'finished';
1020
1021
1022
1023 //console.log('first : '+ response.data );
1024
1025 //console.log( "Reindex finished!" );
1026
1027
1028
1029 // $reindexBlock.removeClass('loading');
1030
1031 setTimeout(function () {
1032
1033 wpChatbotIndexProgress.text('Complete and '+response.data.found_posts+' Products found!' );
1034
1035 wpChatbotIndexLoader.html('');
1036
1037 },1000);
1038
1039
1040
1041
1042
1043 } else {
1044
1045
1046
1047 // console.log('2nd : '+ response.data );
1048
1049
1050
1051 wpChatbotIndexProcess.html ( wpChatbotIndexProcessed + '% ' );
1052
1053
1054
1055
1056
1057 // We are starting a sync
1058
1059 wpChatbotSyncStatus = 'sync';
1060
1061
1062
1063 qcld_wb_chatbot_sync();
1064
1065 }
1066
1067
1068
1069 },
1070
1071 error : function( jqXHR, textStatus ) {
1072 //console.log( "Request failed: " + textStatus );
1073 qcld_wb_chatbot_cancelSync();
1074 },
1075 complete: function () {
1076
1077 }
1078
1079 });
1080 }
1081
1082
1083
1084 function qcld_wb_chatbot_cancelSync() {
1085 $.ajax( {
1086 method: 'post',
1087 url: qcld_gemini_admin_data.ajax_url,
1088 data: {
1089 action: 'qcld-wp-chabot-cancel-index',
1090 'nonce': qcld_gemini_admin_data.ajax_nonce
1091 }
1092 });
1093 }
1094
1095 //Messenger Color scheme.
1096
1097 $('#qlcd_wp_chatbot_fb_color').wpColorPicker();
1098 $('#wp_chatbot_proactive_bg_color').wpColorPicker();
1099
1100
1101 // Sub category for parent category
1102 $(document).on('change','#wp_chatbot_show_parent_category',function (e) {
1103 if($(this).is(':checked')){
1104 $('#wp_chatbot_sub_cats_container').show();
1105 }else{
1106 $('#wp_chatbot_sub_cats_container').hide();
1107 }
1108 })
1109 //Opening hours
1110 if($('#enable_wp_chatbot_opening_hour').is(':checked')){
1111 $('#wp-chatbot-hours-wrapper').show();
1112 }else{
1113 $('#wp-chatbot-hours-wrapper').hide();
1114 }
1115 $(document).on('change','#enable_wp_chatbot_opening_hour',function (e) {
1116 if($(this).is(':checked')){
1117 $('#wp-chatbot-hours-wrapper').show();
1118 }else{
1119 $('#wp-chatbot-hours-wrapper').hide();
1120 }
1121 })
1122
1123 $(".wp-chatbot-hours-add-btn").on('click',function () {
1124 var elNumber=$(this).parent().parent().find('.wp-chatbot-hours-container').length;
1125 var dayName=$(this).attr('data-day');
1126 var hourSet='<div class="wp-chatbot-hours-container">'+
1127 '<div class="wp-chatbot-hours">'+
1128 '<input type="text" name="wpwbot_hours['+dayName+']['+elNumber+'][]" value="00:00" > <input type="text" name="wpwbot['+dayName+']['+elNumber+'][]" value="00:00">'+
1129 '</div>'+
1130 '<div class="wp-chatbot-hours-remove">'+
1131 '<button type="button" class="btn btn-danger btn-sm wp-chatbot-hours-remove-btn ">'+
1132 '<i class="dashicons dashicons-remove" aria-hidden="true"></i>'+
1133 '</button>'+
1134 '</div>'+
1135 '</div>';
1136 $(this).parent().parent().find('.wp-chatbot-day').append(hourSet);
1137 $('.wp-chatbot-hours input').timepicker({ 'timeFormat': 'H:i' });
1138 });
1139
1140 $(document).on('click','.wp-chatbot-hours-remove-btn',function () {
1141 var elNumbers=$(this).parent().parent().parent().find('.wp-chatbot-hours-container').length;
1142 if(elNumbers>1){
1143 if(confirm('Are you sure to delete this support query block?')){
1144 $(this).parent().parent().remove();
1145 }
1146 }else{
1147 alert('At least one opening hours set is required');
1148 }
1149
1150 });
1151 //DialogFlow
1152 if($('#enable_wp_chatbot_dailogflow').is(':checked')){
1153 $('#wp-chatbot-dialflow-section').show();
1154 }else{
1155 $('#wp-chatbot-dialflow-section').hide();
1156 }
1157 $(document).on('change','#enable_wp_chatbot_dailogflow',function (e) {
1158 if($(this).is(':checked')){
1159 $('#wp-chatbot-dialflow-section').show();
1160 }else{
1161 $('#wp-chatbot-dialflow-section').hide();
1162 }
1163 })
1164
1165 $('#submit').click(function(){
1166
1167 if( jQuery('#section-flip-6:visible').length > 0 ){
1168 /* Perform some button action ... */
1169 if($('#enable_wp_chatbot_dailogflow').is(':checked')){
1170
1171 if( $('input[name ="qlcd_wp_chatbot_dialogflow_project_id"]').val() =='' ){
1172 alert("Please provide the Dialogflow Project ID!");
1173 return false;
1174 }
1175
1176 if( $('input[name="qlcd_wp_chatbot_dialogflow_agent_language"]').val() == '' ){
1177 alert("Please provide the Dialogflow Agent Language!");
1178 return false;
1179 }
1180
1181
1182 }
1183
1184 }
1185
1186 });
1187
1188 jQuery( ".qc_menu_list_container ul li" ).dblclick(function(e) {
1189 e.preventDefault();
1190 var html = jQuery(this).html().trim();
1191 jQuery('#qc_menu_area').append(html);
1192 jQuery('#qc_wpbot_menu_order').val(jQuery('#qc_menu_area').html().trim());
1193 });
1194
1195
1196 jQuery(document).on("dblclick", "#qc_menu_area span", function(e) {
1197 e.preventDefault();
1198 jQuery(this).remove();
1199 jQuery('#qc_wpbot_menu_order').val(jQuery('#qc_menu_area').html().trim());
1200 });
1201
1202
1203 jQuery( "#qc_menu_area" ).sortable({
1204 update: function( event, ui ) {
1205 jQuery('#qc_wpbot_menu_order').val(jQuery('#qc_menu_area').html().trim());
1206 }
1207 });
1208 jQuery( "#qc_menu_area" ).disableSelection();
1209
1210
1211 jQuery('.qc_menu_list_area span').draggable({
1212 revert: "invalid",
1213 helper: 'clone'
1214 });
1215
1216
1217
1218
1219 jQuery('.qc_menu_area_container').droppable({
1220 accept: ".qc_draggable_item",
1221 drop: function(event, ui) {
1222 var droppable = $(this);
1223 var draggable = ui.draggable;
1224 // Move draggable into droppable
1225 draggable.clone().removeClass("qc_draggable_item").addClass("qc_draggable_item_remove").appendTo(droppable);
1226 jQuery('#qc_wpbot_menu_order').val(jQuery('#qc_menu_area').html().trim());
1227 }
1228 });
1229 $('#wp_chatbot_floatingiconbg_color, #wp_chatbot_text_color, #wp_chatbot_link_color,#wp_chatbot_link_hover_color,#wp_chatbot_bot_msg_bg_color,#wp_chatbot_bot_msg_text_color,#wp_chatbot_user_msg_bg_color,#wp_chatbot_header_background_color,#wp_chatbot_user_msg_text_color,#wp_chatbot_buttons_bg_color,#wp_chatbot_buttons_text_color,#wp_chatbot_theme_primary_color,#wp_chatbot_theme_secondary_color').wpColorPicker();
1230 jQuery('.qc_menu_list_area').droppable({
1231 accept: ".qc_draggable_item_remove",
1232 drop: function(event, ui) {
1233 var droppable = $(this);
1234 var draggable = ui.draggable;
1235 // Move draggable into droppable
1236 draggable.remove();
1237 jQuery('#qc_wpbot_menu_order').val(jQuery('#qc_menu_area').html().trim());
1238 }
1239 });
1240
1241
1242 jQuery('.qc_menu_area_container .qcld-chatbot-form').each(function(){
1243 var obj = $(this);
1244 obj.text(jQuery('.qc_menu_list_container .qcld-chatbot-form[data-form="'+obj.attr('data-form')+'"]').text());
1245 })
1246
1247 setTimeout(function(){
1248 if( jQuery('#qc_wpbot_menu_order').length > 0 ){
1249 jQuery('#qc_wpbot_menu_order').val(jQuery('#qc_menu_area').html().trim());
1250 }
1251 }, 2000)
1252
1253 jQuery('.qc_accordion_title').on('click', function(e){
1254 e.preventDefault();
1255 var obj = $(this);
1256
1257 jQuery('.qc_accordion_content_third').hide();
1258
1259 if($( "h3[data-accordion='qc_accordion_content_third']" ).find('i').hasClass("fa-minus")){
1260 $( "h3[data-accordion='qc_accordion_content_third']" ).find('i').removeClass("fa-minus");
1261 $( "h3[data-accordion='qc_accordion_content_third']" ).find('i').addClass("fa-plus");
1262 }
1263 jQuery('.qc_accordion_content_second').hide();
1264 if($( "h3[data-accordion='qc_accordion_content_second']" ).find('i').hasClass("fa-minus")){
1265 $( "h3[data-accordion='qc_accordion_content_second']" ).find('i').removeClass("fa-minus");
1266 $( "h3[data-accordion='qc_accordion_content_second']" ).find('i').addClass("fa-plus");
1267 }
1268 jQuery('.qc_accordion_content_first').hide();
1269 if($( "h3[data-accordion='qc_accordion_content_first']" ).find('i').hasClass("fa-minus")){
1270 $( "h3[data-accordion='qc_accordion_content_first']" ).find('i').removeClass("fa-minus");
1271 $( "h3[data-accordion='qc_accordion_content_first']" ).find('i').addClass("fa-plus");
1272 }
1273 setTimeout(function(){
1274 jQuery('.'+obj.attr('data-accordion')).show();
1275 obj.find('i').toggleClass("fa-plus fa-minus");
1276 }, 200)
1277 })
1278
1279 $(document).ready(function () {
1280 var flieElementOpenAi = document.getElementById("openfileinput");
1281
1282 if(flieElementOpenAi){
1283 $('.error-message').hide();
1284 $('.success-message').hide();
1285 $(".file_form").on('change','#openfileinput',function(){
1286 var file_data = $('#openfileinput').prop('files')[0];
1287 var form_data = new FormData();
1288 form_data.append('file', file_data);
1289 form_data.append('action', 'openai_file_upload');
1290 form_data.append('purpose','answers');
1291 $('.success-message').html('File is Proccesing');
1292 $('.success-message').show();
1293 $.ajax({
1294 url: qcld_gemini_admin_data.ajax_url,
1295 type: 'post',
1296 contentType: false,
1297 processData: false,
1298 data: form_data,
1299 success: function (response) {
1300 if(response[0].status == "success"){
1301 // $('.success').html(response.message)
1302 $('.success-message').hide();
1303 $('.success-message').html(response[0].message);
1304 $('.success-message').show();
1305 setTimeout(function(){
1306 $('.success-message').hide();
1307 },5000);
1308 location.reload();
1309 }
1310 if(response[0].status === "error"){
1311 //$('.success-message').html(response.message)
1312 jQuery('.success-message').hide();
1313 jQuery('.error-message').show();
1314 jQuery('.error-message').html(response[0].message);
1315 setTimeout(function(){
1316 jQuery('.error-message').hide();
1317 },5000);
1318 location.reload();
1319 }
1320 },
1321 });
1322
1323 });
1324
1325 $("#openaiFileList").on('click','.remove_file_openai',function(){
1326 $(this).hide();
1327 var file_id = $('.remove_file_openai').attr('data-id');
1328 jQuery('.error-message').show();
1329 jQuery('.error-message').html(file_id+'is deleting');
1330 setTimeout(function(){
1331 jQuery('.error-message').hide();
1332 },5000);
1333 $.ajax({
1334 url: qcld_gemini_admin_data.ajax_url,
1335 type: 'POST',
1336 dataType: "JSON",
1337 data: {
1338 action : 'openai_file_delete',
1339 file_id: file_id
1340 },
1341 success: function (response) {
1342 location.reload();
1343 },
1344 });
1345
1346 });
1347 $.ajax({
1348 url: qcld_gemini_admin_data.ajax_url,
1349 type: "POST",
1350 dataType: "JSON",
1351 data: {
1352 action : 'openai_file_list',
1353 },
1354 success: function(res) {
1355
1356 if((res.data != undefined)){
1357 data = res.data;
1358 let text = "";
1359 data.forEach(itemfunction);
1360 function itemfunction(item) {
1361 text += '<tr><td>'+item.filename +'</td><td>' +item.id+'</td><td><a class="btn-success btn floated create_ft_model_modal" data-id="'+item.id+'">Create FT Model</a> <a class="btn-danger btn floated remove_file_openai" data-id="'+item.id+'">Remove</a></td></tr>';
1362 }
1363 document.getElementById("openaiFileList").innerHTML = text;
1364 }
1365 }
1366 });
1367 $('#openaiFileList').on('click','.create_ft_model_modal',function(){
1368
1369 var ft_id = $(this).attr('data-id');
1370 $('#qcld_openai_ft_fileid').val(ft_id);
1371 $('#qcld-ft-modal').modal();
1372 })
1373 $.ajax({
1374 url: qcld_gemini_admin_data.ajax_url,
1375 type: "POST",
1376 dataType: "JSON",
1377 data: {
1378 action : 'openai_finetune_list',
1379 },
1380 success: function(res) {
1381 data = res;
1382 let text = "";
1383 data.forEach(itemfunction);
1384 function itemfunction(item) {
1385 text += '<tr> <td>'+item[0] +'</td> <td>' +item[1]+'</td> <td>'+item[2]+'</td> <td>'+item[3]+'</td> <td>'+item[4]+'</td> <td> <a class="btn-danger btn floated remove_ft_model_openai" data-id="'+item[1]+'">Remove</a></td> </tr>';
1386 }
1387 document.getElementById("openaiFTList").innerHTML = text;
1388
1389 }
1390 });
1391 }
1392
1393 $("#wp-chatbot-data_post_converter").on('click','.qcld_convert_data', function(){
1394 var list = $("input[name='wp_chatbot_data_converter_list[]']:checked").map(function () {
1395 return this.value;
1396 }).get();
1397 $.ajax({
1398 url: qcld_gemini_admin_data.ajax_url,
1399 type: "POST",
1400 dataType: "JSON",
1401 data: {
1402 action : 'qcld_openai_post_data_converter_count',
1403 data: list,
1404 },
1405 success: function(res) {
1406 location.reload();
1407 }
1408 });
1409 });
1410
1411
1412
1413 // $('').on('click', '#save_setting', function(){
1414
1415
1416 // })
1417 var file_save = document.getElementById("save_file_id");
1418 if(file_save){
1419 $('.qcl-openai').on('click', '#save_file_id', function(){
1420 var file_id = $("input[name='file_id']" ).val();
1421
1422 $.ajax({
1423 url: qcld_gemini_admin_data.ajax_url,
1424 type:'POST',
1425 data: ({action : '',nonce: qcld_gemini_admin_data.ajax_nonce,file_id:file_id}),
1426 success: function(data){
1427 $('#result').html(data);
1428 location.reload();
1429
1430 }
1431 });
1432 })
1433 }
1434 var settingsOpenAi = document.getElementById("save_setting");
1435 if(settingsOpenAi){
1436
1437
1438 $('.qcl-openai').on('change','#qcld_openai_prompt', function() {
1439
1440 if( ($("[id*='qcld_openai_prompt'] :selected").val()) == 'custom_prompt'){
1441 $('#custom_prompt_wrapper').html('<input type="field" id="qcld_openai_prompt_custom" class="form-control my-2" placeholder="Add custom prompt here. Custom prompt will be appended before the user`s queries"/>');
1442 }else{
1443 $('#custom_prompt_wrapper').empty('')
1444 }
1445 })
1446 setTimeout(() => {
1447 var custom_promt_value =$("#custom_promt_value").val();
1448 if( $("[id*='qcld_openai_prompt'] :selected").val() == 'custom_prompt' ){
1449
1450 // $("#custom_promt_value").filter('[value=any_command]').prop('selected', true);
1451 $('select option[value="custom_prompt"]').attr('selected', 'selected');
1452 // $('select option[value="any_command"]').attr('selected', 'selected');
1453
1454 $('#custom_prompt_wrapper').html('<input type="field" id="qcld_openai_prompt_custom" class="form-control my-2" />');
1455 $('#qcld_openai_prompt_custom').val(custom_promt_value)
1456
1457 }
1458 }, 500);
1459 $('.qcl-openai').on('change', 'input[name="qcld_openai_system_content_preset"]', function(){
1460 var systemContent = $(this).closest('.qcld-openai-system-preset').find('.qcld-openai-system-preset-value').val();
1461 $('.qcld-openai-system-preset').removeClass('is-selected');
1462 $(this).closest('.qcld-openai-system-preset').addClass('is-selected');
1463 $('#qcld_openai_system_content').val(systemContent).trigger('input');
1464 });
1465
1466 if (!$('input[name="qcld_openai_system_content_preset"]:checked').length) {
1467 $('.qcld-openai-system-preset').first().find('input[name="qcld_openai_system_content_preset"]').prop('checked', true).trigger('change');
1468 }
1469 $('.qcl-openai').on('input', '#qcld_openai_system_content', function(){
1470 var normalizeSpace = function(str) { return (str || '').replace(/\s+/g, ' ').trim(); };
1471 var currentSystemContent = normalizeSpace($(this).val());
1472 var hasMatchingPreset = false;
1473
1474 $('input[name="qcld_openai_system_content_preset"]').each(function(){
1475 var systemContent = normalizeSpace($(this).closest('.qcld-openai-system-preset').find('.qcld-openai-system-preset-value').val());
1476 if (systemContent === currentSystemContent) {
1477 $(this).prop('checked', true);
1478 $('.qcld-openai-system-preset').removeClass('is-selected');
1479 $(this).closest('.qcld-openai-system-preset').addClass('is-selected');
1480 hasMatchingPreset = true;
1481 return false;
1482 }
1483 });
1484
1485 if (!hasMatchingPreset) {
1486 $('input[name="qcld_openai_system_content_preset"]').prop('checked', false);
1487 $('.qcld-openai-system-preset').removeClass('is-selected');
1488 }
1489 });
1490 $('.qcl-openai').on('click', '#save_setting', function(){
1491 if ($('#is_ai_enabled').is(":checked")){
1492 var is_ai_enabled = 1;
1493 }else{
1494 var is_ai_enabled = 0;
1495 }
1496 if($('#is_ai_only_mode').is(":checked")){
1497 var is_ai_only_mode = 1;
1498 }else{
1499 var is_ai_only_mode = 0;
1500 }
1501 if($('#conversation_continuity').is(":checked")){
1502 var conversation_continuity = 1;
1503 }else{
1504 var conversation_continuity = 0;
1505 }
1506 if($('#is_relevant_enabled').is(":checked")){
1507 var is_relevant_enabled = 1;
1508 }else{
1509 var is_relevant_enabled = 0;
1510 }
1511 if($('#is_page_suggestion_enabled').is(":checked")){
1512 var is_page_suggestion_enabled = 1;
1513 }else{
1514 var is_page_suggestion_enabled = 0;
1515 }
1516 if($('#is_context_awareness_enabled').is(":checked")){
1517 var is_context_awareness_enabled = 1;
1518 }else{
1519 var is_context_awareness_enabled = 0;
1520 }
1521 if($('#is_page_rag_enabled').is(":checked")){
1522 var is_page_rag_enabled = 1;
1523 }else{
1524 var is_page_rag_enabled = 0;
1525 }
1526 if($('#is_stream_enabled').is(":checked")){
1527 var is_stream_enabled = 1;
1528 }else{
1529 var is_stream_enabled = 0;
1530 }
1531 var post_types = $.map($('input[name="site_search_posttypes[]"]:checked'), function(c){return c.value; });
1532 var api_key = $( "input[name='api_key']" ).val();
1533 var openai_engines = $("[id*='openai_engines'] :selected").val();
1534 var qcld_openai_prompt = $("[id*='qcld_openai_prompt'] :selected").val();
1535 var max_tokens = $("input[name='max_tokens']" ).val();
1536 var file_id = $("input[name='file_id']" ).val();
1537 var temperature = $("input[name='temperature']" ).val();
1538 var presence_penalty = $("input[name='presence_penalty']" ).val();
1539 var openai_exclude_keyword = jQuery('#qcld_openai_exclude_keyword').val();
1540 var openai_include_keyword = jQuery('#qcld_openai_include_keyword').val();
1541 var qcld_openai_system_content = jQuery('#qcld_openai_system_content').val();
1542 var qcld_openai_append_content = jQuery('#qcld_openai_append_content').val();
1543 if(qcld_openai_prompt == "custom_prompt"){
1544 var qcld_openai_prompt_custom = $("#qcld_openai_prompt_custom").val();
1545 }
1546 var frequency_penalty = $("input[name='frequency_penalty']" ).val();
1547 var openai_post_type = $("input[name='site_search_posttypes[]']:checked").map(function () {
1548 return this.value;
1549 }).get();
1550
1551 Swal.fire({
1552 html: '<div class="qcld-save-settings-spinner"></div>',
1553 allowOutsideClick: false,
1554 allowEscapeKey: false,
1555 showConfirmButton: false,
1556 background: 'transparent',
1557 customClass: {
1558 popup: 'qcld-swal-loading-only'
1559 }
1560 });
1561
1562 $.ajax({
1563 url: qcld_gemini_admin_data.ajax_url,
1564 type:'POST',
1565 data: ({action : 'openai_settings_option',nonce: qcld_gemini_admin_data.ajax_nonce,api_key: api_key,openai_engines:openai_engines,qcld_openai_prompt: qcld_openai_prompt,max_tokens:max_tokens,file_id:file_id,temperature:temperature,presence_penalty:presence_penalty,frequency_penalty:frequency_penalty,qcld_openai_prompt_custom: qcld_openai_prompt_custom,openai_exclude_keyword:openai_exclude_keyword,is_relevant_enabled:is_relevant_enabled,openai_include_keyword:openai_include_keyword,ai_enabled:is_ai_enabled,is_page_suggestion_enabled:is_page_suggestion_enabled,is_context_awareness_enabled:is_context_awareness_enabled,qcld_openai_system_content:qcld_openai_system_content,qcld_openai_append_content:qcld_openai_append_content,ai_only_mode: is_ai_only_mode,conversation_continuity:conversation_continuity,openai_post_type:openai_post_type,is_page_rag_enabled:is_page_rag_enabled,is_stream_enabled:is_stream_enabled}),
1566
1567 success: function(data){
1568 $('#result').html(data);
1569 if(data.icon == "success"){
1570 var color = "color: green";
1571 }else if(data.icon == "error"){
1572 var color = "color: red";
1573 }
1574 Swal.fire({
1575 title: 'Your settings are saved.',
1576 html: '<p style=font-size:14px>Please clear your browser <b>cache</b> and <b>cookies</b> both and reload the front end before testing. Alternatively, you can launch a new browser window in <b>Incognito</b>/Private mode (Ctrl+Shift+N in chrome) to test.</p></b><p><span style="'+ color +'">'+ data.msg+'</span></p>',
1577 width: 450,
1578 icon: 'success',
1579 confirmButtonText: 'Got it',
1580 confirmButtonWidth: 100,
1581 confirmButtonClass: 'btn btn-lg'
1582 }).then((result) => {
1583 if (result.isConfirmed) {
1584 $.ajax({
1585 url: qcld_gemini_admin_data.ajax_url,
1586 type: 'POST',
1587 data: {
1588 action: 'update_settings_option',
1589 nonce: qcld_gemini_admin_data.ajax_nonce,
1590 disable_ss: 1
1591 },
1592
1593 });
1594 }
1595 });
1596 }
1597 });
1598
1599 })
1600
1601 //Additional Code - 04-12-2023
1602 //For AI Enabled + Site Search Disabling
1603 $('.qcl-openai').on('click', '#save_setting_disable_ss', function(){
1604
1605 console.log($('#conversation_continuity').is(":checked"))
1606 if ($('#is_ai_enabled').is(":checked")){
1607 var is_ai_enabled = 1;
1608 }else{
1609 var is_ai_enabled = 0;
1610 }
1611 if($('#is_ai_only_mode').is(":checked")){
1612 var is_ai_only_mode = 1;
1613 }else{
1614 var is_ai_only_mode = 0;
1615 }
1616 if($('#conversation_continuity').is(":checked")){
1617 var conversation_continuity = 1;
1618 }else{
1619 var conversation_continuity = 0;
1620 }
1621 console.log(conversation_continuity)
1622 if($('#is_relevant_enabled').is(":checked")){
1623 var is_relevant_enabled = 1;
1624 }else{
1625 var is_relevant_enabled = 0;
1626 }
1627 if($('#is_page_suggestion_enabled').is(":checked")){
1628 var is_page_suggestion_enabled = 1;
1629 }else{
1630 var is_page_suggestion_enabled = 0;
1631 }
1632 if($('#is_context_awareness_enabled').is(":checked")){
1633 var is_context_awareness_enabled = 1;
1634 }else{
1635 var is_context_awareness_enabled = 0;
1636 }
1637
1638 var api_key = $( "input[name='api_key']" ).val();
1639 var openai_engines = $("[id*='openai_engines'] :selected").val();
1640 var qcld_openai_prompt = $("[id*='qcld_openai_prompt'] :selected").val();
1641 var max_tokens = $("input[name='max_tokens']" ).val();
1642 var file_id = $("input[name='file_id']" ).val();
1643 var temperature = $("input[name='temperature']" ).val();
1644 var presence_penalty = $("input[name='presence_penalty']" ).val();
1645 var openai_exclude_keyword = jQuery('#qcld_openai_exclude_keyword').val();
1646 var openai_include_keyword = jQuery('#qcld_openai_include_keyword').val();
1647 if(qcld_openai_prompt == "custom_prompt"){
1648 var qcld_openai_prompt_custom = $("#qcld_openai_prompt_custom").val();
1649 }
1650 var frequency_penalty = $("input[name='frequency_penalty']" ).val();
1651
1652 $.ajax({
1653 url: qcld_gemini_admin_data.ajax_url,
1654 type:'POST',
1655 data: ({action : 'openai_settings_option',nonce: qcld_gemini_admin_data.ajax_nonce,api_key: api_key,openai_engines:openai_engines,qcld_openai_prompt: qcld_openai_prompt,max_tokens:max_tokens,file_id:file_id,temperature:temperature,presence_penalty:presence_penalty,frequency_penalty:frequency_penalty,qcld_openai_prompt_custom: qcld_openai_prompt_custom,openai_exclude_keyword:openai_exclude_keyword,is_relevant_enabled:is_relevant_enabled,openai_include_keyword:openai_include_keyword,ai_enabled:is_ai_enabled,is_page_suggestion_enabled:is_page_suggestion_enabled,is_context_awareness_enabled:is_context_awareness_enabled,ai_only_mode: is_ai_only_mode,conversation_continuity:conversation_continuity, disable_ss: 1,openai_post_type:post_types}),
1656 success: function(data){
1657 $('#result').html(data);
1658 location.reload();
1659 }
1660 });
1661
1662
1663
1664 }) //Additional Code - 04-12-2023 ends here
1665 }
1666 var settingsRag = document.getElementById("save_rag_setting");
1667 if (settingsRag) {
1668 $('.qcl-openai').on('click', '#save_rag_setting', function () {
1669
1670 var rag_embed_pages = $('#rag_embed_pages').is(':checked') ? 1 : 0;
1671 var rag_embed_posts = $('#rag_embed_posts').is(':checked') ? 1 : 0;
1672 var rag_auto_sync_enabled = $('#rag_auto_sync_enabled').is(':checked') ? 1 : 0;
1673 var rag_embed_str = $('#rag_embed_str').is(':checked') ? 1 : 0;
1674
1675 var rag_embed_cpts = [];
1676 $('.rag_embed_cpts_checkbox:checked').each(function() {
1677 rag_embed_cpts.push($(this).val());
1678 });
1679
1680 $.ajax({
1681 url: qcld_gemini_admin_data.ajax_url,
1682 type: 'POST',
1683 data: ({
1684 action: 'qcld_rag_settings_option',
1685 nonce: qcld_gemini_admin_data.ajax_nonce,
1686 rag_embed_pages: rag_embed_pages,
1687 rag_embed_posts: rag_embed_posts,
1688 rag_auto_sync_enabled: rag_auto_sync_enabled,
1689 rag_embed_str: rag_embed_str,
1690 rag_embed_cpts: rag_embed_cpts
1691 }),
1692 success: function (data) {
1693 $('#result').html(data);
1694 Swal.fire({
1695 title: 'Your settings are saved.',
1696 html: '<p style=font-size:14px>Please clear your browser <b>cache</b> and <b>cookies</b> both and reload the front end before testing. Alternatively, you can launch a new browser window in <b>Incognito</b>/Private mode (Ctrl+Shift+N in chrome) to test.</p>',
1697 width: 450,
1698 icon: 'success',
1699 confirmButtonText: 'Got it',
1700 confirmButtonWidth: 100,
1701 confirmButtonClass: 'btn btn-lg'
1702 }).then((result) => {
1703 if (result.isConfirmed) {
1704 $.ajax({
1705 url: qcld_gemini_admin_data.ajax_url,
1706 type: 'POST',
1707 data: {
1708 action: '',
1709 nonce: qcld_gemini_admin_data.ajax_nonce,
1710 disable_ss: 1
1711 },
1712
1713 });
1714 }
1715 });
1716
1717 location.reload();
1718 }
1719 });
1720 })
1721
1722 $('.qcl-openai').on('click', '#rag_embed_btn', function (e) {
1723 e.preventDefault();
1724 var btn = $(this);
1725 var originalText = btn.text();
1726 btn.text('Saving settings...');
1727
1728 var rag_embed_pages = $('#rag_embed_pages').is(':checked') ? 1 : 0;
1729 var rag_embed_posts = $('#rag_embed_posts').is(':checked') ? 1 : 0;
1730 var rag_auto_sync_enabled = $('#rag_auto_sync_enabled').is(':checked') ? 1 : 0;
1731 var rag_embed_str = $('#rag_embed_str').is(':checked') ? 1 : 0;
1732
1733 var rag_embed_cpts = [];
1734 $('.rag_embed_cpts_checkbox:checked').each(function() {
1735 rag_embed_cpts.push($(this).val());
1736 });
1737
1738 $.ajax({
1739 url: qcld_gemini_admin_data.ajax_url,
1740 type: 'POST',
1741 data: ({
1742 action: 'qcld_rag_settings_option',
1743 nonce: qcld_gemini_admin_data.ajax_nonce,
1744 rag_embed_pages: rag_embed_pages,
1745 rag_embed_posts: rag_embed_posts,
1746 rag_auto_sync_enabled: rag_auto_sync_enabled,
1747 rag_embed_str: rag_embed_str,
1748 rag_embed_cpts: rag_embed_cpts
1749 }),
1750 success: function (data) {
1751 console.log(data);
1752 btn.text('Embedding...');
1753 $('#rag_embed_form').submit();
1754 }
1755 });
1756 })
1757
1758 // Delete Document
1759 $('.qcl-openai').on('click', '.rag-delete-doc', function () {
1760 var id = $(this).data('id');
1761
1762 Swal.fire({
1763 title: 'Are you sure?',
1764 text: "You won't be able to revert this!",
1765 icon: 'warning',
1766 showCancelButton: true,
1767 confirmButtonColor: '#3085d6',
1768 cancelButtonColor: '#d33',
1769 confirmButtonText: 'Yes, delete it!'
1770 }).then((result) => {
1771 if (result.isConfirmed) {
1772 $.ajax({
1773 url: qcld_gemini_admin_data.ajax_url,
1774 type: 'POST',
1775 data: {
1776 action: 'qcld_rag_delete_document',
1777 nonce: qcld_gemini_admin_data.ajax_nonce,
1778 id: id
1779 },
1780 success: function (res) {
1781 if (res.success) {
1782 $('#rag-doc-' + id).remove();
1783 Swal.fire('Deleted!', res.data, 'success');
1784 } else {
1785 Swal.fire('Error', res.data, 'error');
1786 }
1787 }
1788 });
1789 }
1790 })
1791 });
1792
1793 // Select All Checkbox
1794 $('.qcl-openai').on('change', '#rag-select-all', function() {
1795 $('.rag-doc-checkbox').prop('checked', $(this).prop('checked'));
1796 });
1797
1798 // Bulk Actions (Apply)
1799 $('.qcl-openai').on('click', '#rag-apply-bulk-action', function() {
1800 var action = $('#rag-bulk-action-selector').val();
1801 if (action !== 'delete') {
1802 Swal.fire('Info', 'Please select a valid bulk action.', 'info');
1803 return;
1804 }
1805
1806 var selectedIds = [];
1807 $('.rag-doc-checkbox:checked').each(function() {
1808 selectedIds.push($(this).val());
1809 });
1810
1811 if (selectedIds.length === 0) {
1812 Swal.fire('Warning', 'Please select at least one document.', 'warning');
1813 return;
1814 }
1815
1816 Swal.fire({
1817 title: 'Are you sure?',
1818 text: "Delete " + selectedIds.length + " selected documents? This cannot be undone!",
1819 icon: 'warning',
1820 showCancelButton: true,
1821 confirmButtonColor: '#3085d6',
1822 cancelButtonColor: '#d33',
1823 confirmButtonText: 'Yes, delete selected!'
1824 }).then((result) => {
1825 if (result.isConfirmed) {
1826 $.ajax({
1827 url: qcld_gemini_admin_data.ajax_url,
1828 type: 'POST',
1829 data: {
1830 action: 'qcld_rag_bulk_delete_documents',
1831 nonce: qcld_gemini_admin_data.ajax_nonce,
1832 ids: selectedIds
1833 },
1834 success: function(res) {
1835 if (res.success) {
1836 selectedIds.forEach(function(id) {
1837 $('#rag-doc-' + id).remove();
1838 });
1839 $('#rag-select-all').prop('checked', false);
1840 $('#rag-bulk-action-selector').val('-1');
1841 Swal.fire('Deleted!', res.data, 'success');
1842 } else {
1843 Swal.fire('Error', res.data, 'error');
1844 }
1845 }
1846 });
1847 }
1848 });
1849 });
1850
1851 // Delete All Documents
1852 $('.qcl-openai').on('click', '#rag-delete-all', function() {
1853 Swal.fire({
1854 title: 'CRITICAL WARNING!',
1855 text: "This will delete ALL documents in your Knowledge Base. This action is IRREVERSIBLE!",
1856 icon: 'error',
1857 showCancelButton: true,
1858 confirmButtonColor: '#d33',
1859 cancelButtonColor: '#3085d6',
1860 confirmButtonText: 'YES, DELETE EVERYTHING!'
1861 }).then((result) => {
1862 if (result.isConfirmed) {
1863 $.ajax({
1864 url: qcld_gemini_admin_data.ajax_url,
1865 type: 'POST',
1866 data: {
1867 action: 'qcld_rag_delete_all_documents',
1868 nonce: qcld_gemini_admin_data.ajax_nonce
1869 },
1870 success: function(res) {
1871 if (res.success) {
1872 $('#rag-knowledge-base-list').html('<tr><td colspan="6">No documents found in knowledge base.</td></tr>');
1873 $('#rag-select-all').prop('checked', false);
1874 Swal.fire('Cleared!', res.data, 'success');
1875 } else {
1876 Swal.fire('Error', res.data, 'error');
1877 }
1878 }
1879 });
1880 }
1881 });
1882 });
1883
1884 // Edit Document - Open Modal
1885 $('.qcl-openai').on('click', '.rag-edit-doc', function () {
1886 var id = $(this).data('id');
1887 $.ajax({
1888 url: qcld_gemini_admin_data.ajax_url,
1889 type: 'POST',
1890 data: {
1891 action: 'qcld_rag_get_document',
1892 nonce: qcld_gemini_admin_data.ajax_nonce,
1893 id: id
1894 },
1895 success: function (res) {
1896 if (res.success) {
1897 $('#edit-doc-id').val(res.data.id);
1898 $('#edit-doc-title').val(res.data.title);
1899 $('#edit-doc-content').val(res.data.content);
1900 $('#rag-edit-modal').show();
1901 } else {
1902 Swal.fire('Error', res.data, 'error');
1903 }
1904 }
1905 });
1906 });
1907
1908 // Close Edit Modal
1909 $(document).on('click', '#close-edit-modal', function () {
1910 $('#rag-edit-modal').hide();
1911 });
1912
1913 // Manual Sync Document
1914 $(document).on('click', '.rag-sync-doc', function(e) {
1915 e.preventDefault();
1916 var btn = $(this);
1917 var docId = btn.data('id');
1918
1919 if (!confirm('Are you sure you want to re-sync this document from its source?')) {
1920 return;
1921 }
1922
1923 btn.prop('disabled', true).text('Syncing...');
1924
1925 $.post(qcld_gemini_admin_data.ajax_url, {
1926 action: 'qcld_rag_manual_sync',
1927 nonce: qcld_gemini_admin_data.ajax_nonce,
1928 id: docId
1929 }, function(response) {
1930 btn.prop('disabled', false).text('Sync');
1931 if (response.success) {
1932 alert(response.data.message);
1933 location.reload();
1934 } else {
1935 alert('Error: ' + response.data.message);
1936 }
1937 });
1938 });
1939
1940 // Save Edit Document
1941 $(document).on('click', '#save-edit-doc', function () {
1942 var id = $('#edit-doc-id').val();
1943 var title = $('#edit-doc-title').val();
1944 var content = $('#edit-doc-content').val();
1945 var btn = $(this);
1946
1947 btn.prop('disabled', true).text('Saving...');
1948
1949 $.ajax({
1950 url: qcld_gemini_admin_data.ajax_url,
1951 type: 'POST',
1952 data: {
1953 action: 'qcld_rag_update_document',
1954 nonce: qcld_gemini_admin_data.ajax_nonce,
1955 id: id,
1956 title: title,
1957 content: content
1958 },
1959 success: function (res) {
1960 btn.prop('disabled', false).text('Save Changes');
1961 if (res.success) {
1962 $('#rag-edit-modal').hide();
1963 Swal.fire('Updated!', res.data, 'success').then(() => {
1964 location.reload();
1965 });
1966 } else {
1967 Swal.fire('Error', res.data, 'error');
1968 }
1969 }
1970 });
1971 });
1972 }
1973 // Delete Document
1974 $('.qcl-openai').on('click', '.rag-delete-doc', function () {
1975 var id = $(this).data('id');
1976
1977 Swal.fire({
1978 title: 'Are you sure?',
1979 text: "You won't be able to revert this!",
1980 icon: 'warning',
1981 showCancelButton: true,
1982 confirmButtonColor: '#3085d6',
1983 cancelButtonColor: '#d33',
1984 confirmButtonText: 'Yes, delete it!'
1985 }).then((result) => {
1986 if (result.isConfirmed) {
1987 $.ajax({
1988 url: qcld_gemini_admin_data.ajax_url,
1989 type: 'POST',
1990 data: {
1991 action: 'qcld_rag_delete_document',
1992 nonce: qcld_gemini_admin_data.ajax_nonce,
1993 id: id
1994 },
1995 success: function (res) {
1996 if (res.success) {
1997 $('#rag-doc-' + id).remove();
1998 Swal.fire('Deleted!', res.data, 'success');
1999 } else {
2000 Swal.fire('Error', res.data, 'error');
2001 }
2002 }
2003 });
2004 }
2005 })
2006 });
2007
2008 $('.qcl-openai').on('click', '#qcld_check_connection', function(){
2009 jQuery('#rotationloader').css('display','inline-block');
2010 $.ajax({
2011 url: qcld_gemini_admin_data.ajax_url,
2012 type:'POST',
2013 data: ({action : 'openai_troubleshooting',nonce:qcld_gemini_admin_data.ajax_nonce}),
2014 success: function(data){
2015
2016 $('#result').html(data);
2017 Swal.fire({
2018 title: data.title,
2019 html: data.msg,
2020 width: 450,
2021 icon: data.icon,
2022 confirmButtonText: 'Got it',
2023 customClass: 'connection-modal',
2024 })
2025 jQuery('#rotationloader').css('display','none');
2026 // location.reload();
2027 }
2028 });
2029 })
2030 $(document).on('click', '.ai-provider-card', function () {
2031 var selected = $(this).data('provider');
2032 console.log('Provider changed to: ' + selected);
2033 $('.ai-provider-card').removeClass('active');
2034 $(this).addClass('active');
2035 $('#ai-provider-selector').val(selected);
2036 $('.ai-settings-provider').hide();
2037 $('#' + selected + '-settings').show();
2038 $('#rag-settings').hide(); // Ensure RAG is hidden when switching providers
2039 });
2040
2041 // Avatar Location card click handler
2042 $(document).on('click', '.avatar-location-card', function () {
2043 var location = $(this).data('location');
2044 $('.avatar-location-card').removeClass('active');
2045 $(this).addClass('active');
2046 $('#qcld-avatar-location').val(location);
2047 });
2048
2049 if (window.location.hash.indexOf('#ai-knowledge-base-tab') === 0) {
2050 $('.ai-settings-provider').hide();
2051 $('#rag-settings').show();
2052 }
2053
2054 $('#ai-knowledge-base-tab').on('click', function (e) {
2055 e.preventDefault();
2056 $('.ai-settings-provider').hide();
2057 $('#rag-settings').show();
2058 if (history.pushState) { history.pushState(null, null, '#ai-knowledge-base-tab'); }
2059 });
2060 // common Ai settings tab
2061 $('#qcld-common-ai-settings').on('click', function (e) {
2062 e.preventDefault();
2063 $('.ai-settings-provider').hide();
2064 $('#common-ai-settings').show();
2065 if (history.pushState) { history.pushState(null, null, '#common-ai-settings'); }
2066 });
2067 $('#ai-knowledge-base-tab-openai').on('click', function (e) {
2068 e.preventDefault();
2069 $('.ai-settings-provider').hide();
2070 $('#rag-settings').show();
2071 if (history.pushState) { history.pushState(null, null, '#ai-knowledge-base-tab'); }
2072 });
2073 });
2074
2075 $(document).on('click', '.qcld_botopenai_generate_image', function (e) {
2076 var qcld_seo_button = $(this);
2077 var qcld_seo_prompt = $('#prompt').val();
2078 var qcld_seo_artist = $('#artist').val();
2079 var qcld_seo_art_style = $('#art_style').val();
2080 var qcld_seo_photography_style = $('#photography_style').val();
2081 var qcld_seo_lighting = $('#lighting').val();
2082 var qcld_seo_subject = $('#subject').val();
2083 var qcld_seo_camera_settings = $('#camera_settings').val();
2084 var qcld_seo_composition = $('#composition').val();
2085 var qcld_seo_resolution = $('#resolution').val();
2086 var qcld_seo_color = $('#color').val();
2087 var qcld_seo_special_effects = $('#special_effects').val();
2088 var qcld_seo_img_size = $('#img_size').val();
2089 var qcld_seo_num_images = $('#num_images').val();
2090
2091
2092 if(qcld_seo_prompt === ''){
2093 alert('Something went wrong');
2094 }else{
2095
2096 var qcld_seo_post_status = $('.qcld_seo-post-status:checked').val();
2097 var qcld_seo_schedule = $('.qcld_seo-schedule-post').val();
2098
2099 var data = {
2100 qcld_seo_prompt: qcld_seo_prompt,
2101 qcld_seo_artist: qcld_seo_artist,
2102 qcld_seo_art_style: qcld_seo_art_style,
2103 qcld_seo_photography_style: qcld_seo_photography_style,
2104 qcld_seo_lighting: qcld_seo_lighting,
2105 qcld_seo_subject: qcld_seo_subject,
2106 qcld_seo_camera_settings: qcld_seo_camera_settings,
2107 qcld_seo_composition: qcld_seo_composition,
2108 qcld_seo_resolution: qcld_seo_resolution,
2109 qcld_seo_color: qcld_seo_color,
2110 qcld_seo_special_effects: qcld_seo_special_effects,
2111 qcld_seo_img_size: qcld_seo_img_size,
2112 qcld_seo_num_images: qcld_seo_num_images,
2113 action: 'qcld_openai_image_generate',
2114 nonce: qcld_gemini_admin_data.ajax_url,
2115 };
2116
2117 $.ajax({
2118 url: qcld_gemini_admin_data.ajax_url,
2119 data: data,
2120 type: 'POST',
2121 dataType: 'JSON',
2122 beforeSend: function(){
2123 qcld_seo_button.attr('disabled','disabled');
2124 qcld_seo_button.append('<span class="spinner"></span>');
2125 qcld_seo_button.find('.spinner').css('visibility','unset');
2126 },
2127 success: function (res){
2128 qcld_seo_button.removeAttr('disabled');
2129 qcld_seo_button.find('.spinner').remove();
2130 if(res.status === 'success'){
2131 // window.location.href = qcld_seo_bulk_content + '&qcld_seo_track='+res.id
2132 $('#qcld_seo-tab-generated-text').html( res.html );
2133 }
2134 else{
2135 alert('Something went wrong');
2136 }
2137 },
2138 error: function (){
2139 qcld_seo_button.removeAttr('disabled');
2140 qcld_seo_button.find('.spinner').remove();
2141 alert('Something went wrong');
2142 }
2143 })
2144 }
2145 });
2146 $(document).on('click', '.qcld_botopenai_generate_image_download', function (e) {
2147 e.preventDefault();
2148
2149 var url = $(this).find("img").attr('src');
2150 console.log(url)
2151 var qcld_seo_button = $(this);
2152 var image_url = $(this).find('img').attr('src');
2153 var image_page_url = $(this).find('img').attr('src');
2154 var photographer = $(this).find('img').data('photographer');
2155 var q = '';
2156 var data = {
2157 qcld_seo_openai_images_upload : "1",
2158 image_url : image_url,
2159 image_src_page : image_page_url,
2160 image_user : photographer,
2161 q : q,
2162 action : 'qcld_openai_image_generate_url'
2163 };
2164 $.ajax({
2165 url: qcld_gemini_admin_data.ajax_url,
2166 data: data,
2167 type: 'POST',
2168 dataType: 'JSON',
2169 beforeSend: function(){
2170 qcld_seo_button.removeAttr('disabled').removeClass("uploading").find('.qcld_seo_msg').remove();
2171 qcld_seo_button.attr('disabled','disabled');
2172 qcld_seo_button.addClass('uploading').find('.qcld_seo_download img').replaceWith('');
2173 },
2174 success: function ( res ){
2175 console.log(res.data.html);
2176 qcld_seo_button.find('.qcld_seo_download img').replaceWith('<p class="qcld_seo_msg">'+res.data.html+'<p>' );
2177 const newBlock = wp.blocks.createBlock( "core/image", {
2178 id: res.data.attachment_id,
2179 url: res.data.url,
2180 width: res.data.width,
2181 height: res.data.height,
2182 sizeSlug: res.data.size,
2183 alt: '',
2184 title: '',
2185 caption: '',
2186 });
2187 wp.data.dispatch("core/editor").insertBlocks(newBlock);
2188 },
2189 error: function (){
2190 qcld_seo_button.removeAttr('disabled');
2191 }
2192 })
2193
2194 });
2195
2196 $(document).on('click','#qcld_article_keyword_suggestion',function(e){
2197 var qcld_keyword_suggestion = $('#qcld_article_keyword_suggestion_mf').val();
2198 var qcld_keyword_number = $('#qcld_keyword_number').val();
2199 var qcld_article_language = $('#qcld_article_language').val();
2200 var qcld_article_number_of_heading = $('#qcld_article_number_of_heading').val();
2201 var qcld_article_heading_tag = $('#qcld_article_heading_tag').val();
2202 var qcld_article_heading_style = $('#qcld_article_heading_style').val();
2203 var qcld_article_heading_tone = $('#qcld_article_heading_tone').val();
2204 var qcld_article_heading_img = $('#qcld_article_heading_img').val();
2205 var qcld_article_heading_img = $("input[name=qcld_article_heading_img]:checked").val();
2206 var qcld_article_heading_tagline = $("input[name=qcld_article_heading_tagline]:checked").val();
2207 var qcld_article_heading_intro = $("input[name=qcld_article_heading_intro]:checked").val();
2208 var qcld_article_heading_conclusion = $("input[name=qcld_article_heading_conclusion]:checked").val();
2209 var qcld_article_label_anchor_text = $('#qcld_article_label_anchor_text').val();
2210 var qcld_article_target_url = $('#qcld_article_target_url').val();
2211 var qcld_article_target_label_cta = $('#qcld_article_target_label_cta').val();
2212 var qcld_article_cta_pos = $('#qcld_article_cta_pos').val();
2213 var qcld_article_label_keywords = $('#qcld_article_label_keywords').val();
2214 var qcld_article_label_word_to_avoid= $('#qcld_article_label_word_to_avoid').val();
2215 var qcld_article_label_keywords_bold= $("input[name=qcld_article_label_keywords_bold]:checked").val();
2216 var qcld_article_heading_faq = $("input[name=qcld_article_heading_faq]:checked").val();
2217 var qcld_article_img_size = $('#qcld_article_img_size').val();
2218
2219 $('#qcld_article_keyword_suggestion').addClass('spinning');
2220 $('#qcld_article_keyword_suggestion').prop("disabled",true);
2221 $('#linkbait_article_keyword_data').html('');
2222 $.ajax({
2223 url: qcld_gemini_admin_data.ajax_url,
2224 method: 'POST',
2225 data: {
2226 'action': 'openai_keyword_suggestion_content',
2227 'keyword' : qcld_keyword_suggestion,
2228 'keyword_number' : qcld_keyword_number,
2229 'qcld_article_language' : qcld_article_language,
2230 'qcld_article_number_of_heading' : qcld_article_number_of_heading,
2231 'qcld_article_heading_tag' : qcld_article_heading_tag,
2232 'qcld_article_heading_style' : qcld_article_heading_style,
2233 'qcld_article_heading_tone' : qcld_article_heading_tone,
2234 'qcld_article_heading_img' : qcld_article_heading_img,
2235 'qcld_article_heading_tagline' : qcld_article_heading_tagline,
2236 'qcld_article_heading_intro' : qcld_article_heading_intro,
2237 'qcld_article_heading_conclusion' : qcld_article_heading_conclusion,
2238 'qcld_article_label_anchor_text' : qcld_article_label_anchor_text,
2239 'qcld_article_target_url' : qcld_article_target_url,
2240 'qcld_article_target_label_cta' : qcld_article_target_label_cta,
2241 'qcld_article_cta_pos' : qcld_article_cta_pos,
2242 'qcld_article_label_keywords' : qcld_article_label_keywords,
2243 'qcld_article_label_word_to_avoid': qcld_article_label_word_to_avoid,
2244 'qcld_article_label_keywords_bold': qcld_article_label_keywords_bold,
2245 'qcld_article_heading_faq' : qcld_article_heading_faq,
2246 'qcld_article_img_size' : qcld_article_img_size,
2247 //'selectedlanguage': selectedlanguage,
2248 },
2249 dataType: 'json',
2250 success: function(response) {
2251 //$('#linkbait_keyword_data').append(response.keywords);
2252 $('#qcld_article_keyword_suggestion').prop("disabled",false);
2253 $('#qcld_article_keyword_suggestion').removeClass('spinning');
2254 $('#linkbait_article_keyword_data').html('<div class="qcld_copied-content-wrap"><div class="qcld_copied-content_text btn d-none link-success">Copied</div><a class="btn btn-sm btn-secondary qcld-copied-content_text"><span class="dashicons dashicons-admin-page"></span></a></div><textarea id="qcld_content_result_msg" style="height: 20rem">' + response.keywords +'</textarea>');
2255 $('#linkbait_article_keyword_data').append('<div class="qcld_content_result_wrap"><div class="qcld_rewrite_result_count">' + response.keywords.split(" ").length +'</div></div>');
2256
2257 $('#qcld_content_result_msg').focus();
2258 $('#qcld_content_result_msg').focusout();
2259 }
2260 });
2261
2262
2263
2264 });
2265
2266 $(document).on('click', '.ai-provider-card', function() {
2267 var selected = $(this).data('provider');
2268 $('.ai-provider-card').removeClass('active');
2269 $(this).addClass('active');
2270 $('#ai-provider-selector').val(selected);
2271 $('.ai-settings-provider').hide();
2272 $('#' + selected + '-settings').show();
2273 });
2274
2275 $('#is_rate_limiting_enabled').on('change', function () {
2276 if ($(this).is(":checked")) {
2277 $('#rate_limit_settings').show();
2278 $('.rate-limit-input').prop('disabled', false);
2279 $('.rate-limit-timeframe').prop('disabled', false);
2280 } else {
2281 $('#rate_limit_settings').hide();
2282 $('.rate-limit-input').prop('disabled', true);
2283 $('.rate-limit-timeframe').prop('disabled', true);
2284 }
2285 });
2286 $('.qcl-openai').on('click', '#qcld_openai_rate_limit_save_setting', function () {
2287 console.log('Saving rate limit settings...');
2288 if ($('#is_rate_limiting_enabled').is(":checked")) {
2289 var is_rate_limiting_enabled = 1;
2290 } else {
2291 var is_rate_limiting_enabled = 0;
2292 }
2293 var rate_limits = {};
2294 var rate_limit_timeframes = {};
2295 // Collect rate limits for each role
2296 $('.rate-limit-input').each(function () {
2297 var role = $(this).attr('id').replace('rate_limit_', '');
2298 var limit = $(this).val();
2299 rate_limits[role] = limit;
2300 rate_limit_timeframes[role] = $('#rate_limit_timeframe_' + role).val();
2301 });
2302 $.ajax({
2303 url: ajax_object.ajax_url,
2304 type: 'POST',
2305 data: ({
2306 action: 'rate_limit_settings_option',
2307 nonce: ajax_object.ajax_nonce,
2308 is_rate_limiting_enabled: is_rate_limiting_enabled,
2309 rate_limits: rate_limits,
2310 rate_limit_timeframes: rate_limit_timeframes
2311 }),
2312 success: function (data) {
2313 $('#result').html(data);
2314 Swal.fire({
2315 title: 'Your settings are saved.',
2316 html: '<p style=font-size:14px>Please clear your browser <b>cache</b> and <b>cookies</b> both and reload the front end before testing. Alternatively, you can launch a new browser window in <b>Incognito</b>/Private mode (Ctrl+Shift+N in chrome) to test.</p>',
2317 width: 450,
2318 icon: 'success',
2319 confirmButtonText: 'Got it',
2320 confirmButtonWidth: 100,
2321 confirmButtonClass: 'btn btn-lg'
2322 })
2323 // location.reload();
2324 }
2325 });
2326 })
2327 });
2328
2329 document.addEventListener('DOMContentLoaded', function() {
2330 if(localStorage.getItem('qcld_general_settings_notice_closed') === '1') {
2331 var notice = document.querySelector('.qcld-general-settings-connection-notic');
2332 if(notice) notice.style.display = 'none';
2333 }
2334 });
2335
2336
2337
2338
2339 function qcld_wpbot_languageChange_from_center(langCode) {
2340 switch (langCode) {
2341 case "not_mine":
2342 setTimeout(() => {
2343 jQuery("#waring-message").show()
2344 jQuery("#waring-message").html('<span style="padding: 7px; color: #fff; background: #dc3545;border-radius:5px"> ** Please change the texts below to your language manually so that the ChatBot can speak in your language</span><br>')
2345 }, 500);
2346
2347 break;
2348 default:
2349 setTimeout(() => {
2350 jQuery("#waring-message").hide()
2351 }, 500);
2352 jQuery.ajax({
2353 url: qcld_gemini_admin_data.ajax_url, // e.g., 'wp-admin/admin-ajax.php'
2354 type: 'POST',
2355 data: {
2356 'action': 'qcld_change_language_from_center',
2357 'language' : langCode,
2358 'nonce': qcld_gemini_admin_data.ajax_nonce, // Include nonce for security
2359 },// Expecting JSON response from PHP
2360 })
2361 .done(function(response) {
2362 // If PHP returns a JSON object
2363 if (response.success === false || response.error) {
2364 } else {
2365 jQuery.each( response.data.data, function(key, value) {
2366 if (Array.isArray( value )) {
2367 const textareas = jQuery('.wp-chatbot-lng-items').find('input[name="' + key + '[]"]');
2368 textareas.each(function(index) {
2369 if (index < value.length) {
2370 jQuery(this).val(value[index]);
2371 }
2372 });
2373 }else{
2374 jQuery('input[name="' + key + '"]').val(value);
2375 }
2376 });
2377 jQuery("#submit-language").click();
2378 // processResponse(response.data);
2379 }
2380 })
2381 .fail(function(jqXHR, textStatus, errorThrown) {
2382 console.error('AJAX Fail:', textStatus, errorThrown);
2383 });
2384 }
2385 }
2386
2387
2388