PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 8.6.2
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v8.6.2
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 8.5.2 All 533 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.2, at js/qcld-wp-chatbot-admin.js

2,377 lines 130.3 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>Support 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 $.ajax({
1552 url: qcld_gemini_admin_data.ajax_url,
1553 type:'POST',
1554 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}),
1555
1556 success: function(data){
1557 $('#result').html(data);
1558 if(data.icon == "success"){
1559 var color = "color: green";
1560 }else if(data.icon == "error"){
1561 var color = "color: red";
1562 }
1563 Swal.fire({
1564 title: 'Your settings are saved.',
1565 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>',
1566 width: 450,
1567 icon: 'success',
1568 confirmButtonText: 'Got it',
1569 confirmButtonWidth: 100,
1570 confirmButtonClass: 'btn btn-lg'
1571 }).then((result) => {
1572 if (result.isConfirmed) {
1573 $.ajax({
1574 url: qcld_gemini_admin_data.ajax_url,
1575 type: 'POST',
1576 data: {
1577 action: 'update_settings_option',
1578 nonce: qcld_gemini_admin_data.ajax_nonce,
1579 disable_ss: 1
1580 },
1581
1582 });
1583 }
1584 });
1585 }
1586 });
1587
1588 })
1589
1590 //Additional Code - 04-12-2023
1591 //For AI Enabled + Site Search Disabling
1592 $('.qcl-openai').on('click', '#save_setting_disable_ss', function(){
1593
1594 console.log($('#conversation_continuity').is(":checked"))
1595 if ($('#is_ai_enabled').is(":checked")){
1596 var is_ai_enabled = 1;
1597 }else{
1598 var is_ai_enabled = 0;
1599 }
1600 if($('#is_ai_only_mode').is(":checked")){
1601 var is_ai_only_mode = 1;
1602 }else{
1603 var is_ai_only_mode = 0;
1604 }
1605 if($('#conversation_continuity').is(":checked")){
1606 var conversation_continuity = 1;
1607 }else{
1608 var conversation_continuity = 0;
1609 }
1610 console.log(conversation_continuity)
1611 if($('#is_relevant_enabled').is(":checked")){
1612 var is_relevant_enabled = 1;
1613 }else{
1614 var is_relevant_enabled = 0;
1615 }
1616 if($('#is_page_suggestion_enabled').is(":checked")){
1617 var is_page_suggestion_enabled = 1;
1618 }else{
1619 var is_page_suggestion_enabled = 0;
1620 }
1621 if($('#is_context_awareness_enabled').is(":checked")){
1622 var is_context_awareness_enabled = 1;
1623 }else{
1624 var is_context_awareness_enabled = 0;
1625 }
1626
1627 var api_key = $( "input[name='api_key']" ).val();
1628 var openai_engines = $("[id*='openai_engines'] :selected").val();
1629 var qcld_openai_prompt = $("[id*='qcld_openai_prompt'] :selected").val();
1630 var max_tokens = $("input[name='max_tokens']" ).val();
1631 var file_id = $("input[name='file_id']" ).val();
1632 var temperature = $("input[name='temperature']" ).val();
1633 var presence_penalty = $("input[name='presence_penalty']" ).val();
1634 var openai_exclude_keyword = jQuery('#qcld_openai_exclude_keyword').val();
1635 var openai_include_keyword = jQuery('#qcld_openai_include_keyword').val();
1636 if(qcld_openai_prompt == "custom_prompt"){
1637 var qcld_openai_prompt_custom = $("#qcld_openai_prompt_custom").val();
1638 }
1639 var frequency_penalty = $("input[name='frequency_penalty']" ).val();
1640
1641 $.ajax({
1642 url: qcld_gemini_admin_data.ajax_url,
1643 type:'POST',
1644 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}),
1645 success: function(data){
1646 $('#result').html(data);
1647 location.reload();
1648 }
1649 });
1650
1651
1652
1653 }) //Additional Code - 04-12-2023 ends here
1654 }
1655 var settingsRag = document.getElementById("save_rag_setting");
1656 if (settingsRag) {
1657 $('.qcl-openai').on('click', '#save_rag_setting', function () {
1658
1659 var rag_embed_pages = $('#rag_embed_pages').is(':checked') ? 1 : 0;
1660 var rag_embed_posts = $('#rag_embed_posts').is(':checked') ? 1 : 0;
1661 var rag_auto_sync_enabled = $('#rag_auto_sync_enabled').is(':checked') ? 1 : 0;
1662 var rag_embed_str = $('#rag_embed_str').is(':checked') ? 1 : 0;
1663
1664 var rag_embed_cpts = [];
1665 $('.rag_embed_cpts_checkbox:checked').each(function() {
1666 rag_embed_cpts.push($(this).val());
1667 });
1668
1669 $.ajax({
1670 url: qcld_gemini_admin_data.ajax_url,
1671 type: 'POST',
1672 data: ({
1673 action: 'qcld_rag_settings_option',
1674 nonce: qcld_gemini_admin_data.ajax_nonce,
1675 rag_embed_pages: rag_embed_pages,
1676 rag_embed_posts: rag_embed_posts,
1677 rag_auto_sync_enabled: rag_auto_sync_enabled,
1678 rag_embed_str: rag_embed_str,
1679 rag_embed_cpts: rag_embed_cpts
1680 }),
1681 success: function (data) {
1682 $('#result').html(data);
1683 Swal.fire({
1684 title: 'Your settings are saved.',
1685 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>',
1686 width: 450,
1687 icon: 'success',
1688 confirmButtonText: 'Got it',
1689 confirmButtonWidth: 100,
1690 confirmButtonClass: 'btn btn-lg'
1691 }).then((result) => {
1692 if (result.isConfirmed) {
1693 $.ajax({
1694 url: qcld_gemini_admin_data.ajax_url,
1695 type: 'POST',
1696 data: {
1697 action: '',
1698 nonce: qcld_gemini_admin_data.ajax_nonce,
1699 disable_ss: 1
1700 },
1701
1702 });
1703 }
1704 });
1705
1706 location.reload();
1707 }
1708 });
1709 })
1710
1711 $('.qcl-openai').on('click', '#rag_embed_btn', function (e) {
1712 e.preventDefault();
1713 var btn = $(this);
1714 var originalText = btn.text();
1715 btn.text('Saving settings...');
1716
1717 var rag_embed_pages = $('#rag_embed_pages').is(':checked') ? 1 : 0;
1718 var rag_embed_posts = $('#rag_embed_posts').is(':checked') ? 1 : 0;
1719 var rag_auto_sync_enabled = $('#rag_auto_sync_enabled').is(':checked') ? 1 : 0;
1720 var rag_embed_str = $('#rag_embed_str').is(':checked') ? 1 : 0;
1721
1722 var rag_embed_cpts = [];
1723 $('.rag_embed_cpts_checkbox:checked').each(function() {
1724 rag_embed_cpts.push($(this).val());
1725 });
1726
1727 $.ajax({
1728 url: qcld_gemini_admin_data.ajax_url,
1729 type: 'POST',
1730 data: ({
1731 action: 'qcld_rag_settings_option',
1732 nonce: qcld_gemini_admin_data.ajax_nonce,
1733 rag_embed_pages: rag_embed_pages,
1734 rag_embed_posts: rag_embed_posts,
1735 rag_auto_sync_enabled: rag_auto_sync_enabled,
1736 rag_embed_str: rag_embed_str,
1737 rag_embed_cpts: rag_embed_cpts
1738 }),
1739 success: function (data) {
1740 console.log(data);
1741 btn.text('Embedding...');
1742 $('#rag_embed_form').submit();
1743 }
1744 });
1745 })
1746
1747 // Delete Document
1748 $('.qcl-openai').on('click', '.rag-delete-doc', function () {
1749 var id = $(this).data('id');
1750
1751 Swal.fire({
1752 title: 'Are you sure?',
1753 text: "You won't be able to revert this!",
1754 icon: 'warning',
1755 showCancelButton: true,
1756 confirmButtonColor: '#3085d6',
1757 cancelButtonColor: '#d33',
1758 confirmButtonText: 'Yes, delete it!'
1759 }).then((result) => {
1760 if (result.isConfirmed) {
1761 $.ajax({
1762 url: qcld_gemini_admin_data.ajax_url,
1763 type: 'POST',
1764 data: {
1765 action: 'qcld_rag_delete_document',
1766 nonce: qcld_gemini_admin_data.ajax_nonce,
1767 id: id
1768 },
1769 success: function (res) {
1770 if (res.success) {
1771 $('#rag-doc-' + id).remove();
1772 Swal.fire('Deleted!', res.data, 'success');
1773 } else {
1774 Swal.fire('Error', res.data, 'error');
1775 }
1776 }
1777 });
1778 }
1779 })
1780 });
1781
1782 // Select All Checkbox
1783 $('.qcl-openai').on('change', '#rag-select-all', function() {
1784 $('.rag-doc-checkbox').prop('checked', $(this).prop('checked'));
1785 });
1786
1787 // Bulk Actions (Apply)
1788 $('.qcl-openai').on('click', '#rag-apply-bulk-action', function() {
1789 var action = $('#rag-bulk-action-selector').val();
1790 if (action !== 'delete') {
1791 Swal.fire('Info', 'Please select a valid bulk action.', 'info');
1792 return;
1793 }
1794
1795 var selectedIds = [];
1796 $('.rag-doc-checkbox:checked').each(function() {
1797 selectedIds.push($(this).val());
1798 });
1799
1800 if (selectedIds.length === 0) {
1801 Swal.fire('Warning', 'Please select at least one document.', 'warning');
1802 return;
1803 }
1804
1805 Swal.fire({
1806 title: 'Are you sure?',
1807 text: "Delete " + selectedIds.length + " selected documents? This cannot be undone!",
1808 icon: 'warning',
1809 showCancelButton: true,
1810 confirmButtonColor: '#3085d6',
1811 cancelButtonColor: '#d33',
1812 confirmButtonText: 'Yes, delete selected!'
1813 }).then((result) => {
1814 if (result.isConfirmed) {
1815 $.ajax({
1816 url: qcld_gemini_admin_data.ajax_url,
1817 type: 'POST',
1818 data: {
1819 action: 'qcld_rag_bulk_delete_documents',
1820 nonce: qcld_gemini_admin_data.ajax_nonce,
1821 ids: selectedIds
1822 },
1823 success: function(res) {
1824 if (res.success) {
1825 selectedIds.forEach(function(id) {
1826 $('#rag-doc-' + id).remove();
1827 });
1828 $('#rag-select-all').prop('checked', false);
1829 $('#rag-bulk-action-selector').val('-1');
1830 Swal.fire('Deleted!', res.data, 'success');
1831 } else {
1832 Swal.fire('Error', res.data, 'error');
1833 }
1834 }
1835 });
1836 }
1837 });
1838 });
1839
1840 // Delete All Documents
1841 $('.qcl-openai').on('click', '#rag-delete-all', function() {
1842 Swal.fire({
1843 title: 'CRITICAL WARNING!',
1844 text: "This will delete ALL documents in your Knowledge Base. This action is IRREVERSIBLE!",
1845 icon: 'error',
1846 showCancelButton: true,
1847 confirmButtonColor: '#d33',
1848 cancelButtonColor: '#3085d6',
1849 confirmButtonText: 'YES, DELETE EVERYTHING!'
1850 }).then((result) => {
1851 if (result.isConfirmed) {
1852 $.ajax({
1853 url: qcld_gemini_admin_data.ajax_url,
1854 type: 'POST',
1855 data: {
1856 action: 'qcld_rag_delete_all_documents',
1857 nonce: qcld_gemini_admin_data.ajax_nonce
1858 },
1859 success: function(res) {
1860 if (res.success) {
1861 $('#rag-knowledge-base-list').html('<tr><td colspan="6">No documents found in knowledge base.</td></tr>');
1862 $('#rag-select-all').prop('checked', false);
1863 Swal.fire('Cleared!', res.data, 'success');
1864 } else {
1865 Swal.fire('Error', res.data, 'error');
1866 }
1867 }
1868 });
1869 }
1870 });
1871 });
1872
1873 // Edit Document - Open Modal
1874 $('.qcl-openai').on('click', '.rag-edit-doc', function () {
1875 var id = $(this).data('id');
1876 $.ajax({
1877 url: qcld_gemini_admin_data.ajax_url,
1878 type: 'POST',
1879 data: {
1880 action: 'qcld_rag_get_document',
1881 nonce: qcld_gemini_admin_data.ajax_nonce,
1882 id: id
1883 },
1884 success: function (res) {
1885 if (res.success) {
1886 $('#edit-doc-id').val(res.data.id);
1887 $('#edit-doc-title').val(res.data.title);
1888 $('#edit-doc-content').val(res.data.content);
1889 $('#rag-edit-modal').show();
1890 } else {
1891 Swal.fire('Error', res.data, 'error');
1892 }
1893 }
1894 });
1895 });
1896
1897 // Close Edit Modal
1898 $(document).on('click', '#close-edit-modal', function () {
1899 $('#rag-edit-modal').hide();
1900 });
1901
1902 // Manual Sync Document
1903 $(document).on('click', '.rag-sync-doc', function(e) {
1904 e.preventDefault();
1905 var btn = $(this);
1906 var docId = btn.data('id');
1907
1908 if (!confirm('Are you sure you want to re-sync this document from its source?')) {
1909 return;
1910 }
1911
1912 btn.prop('disabled', true).text('Syncing...');
1913
1914 $.post(qcld_gemini_admin_data.ajax_url, {
1915 action: 'qcld_rag_manual_sync',
1916 nonce: qcld_gemini_admin_data.ajax_nonce,
1917 id: docId
1918 }, function(response) {
1919 btn.prop('disabled', false).text('Sync');
1920 if (response.success) {
1921 alert(response.data.message);
1922 location.reload();
1923 } else {
1924 alert('Error: ' + response.data.message);
1925 }
1926 });
1927 });
1928
1929 // Save Edit Document
1930 $(document).on('click', '#save-edit-doc', function () {
1931 var id = $('#edit-doc-id').val();
1932 var title = $('#edit-doc-title').val();
1933 var content = $('#edit-doc-content').val();
1934 var btn = $(this);
1935
1936 btn.prop('disabled', true).text('Saving...');
1937
1938 $.ajax({
1939 url: qcld_gemini_admin_data.ajax_url,
1940 type: 'POST',
1941 data: {
1942 action: 'qcld_rag_update_document',
1943 nonce: qcld_gemini_admin_data.ajax_nonce,
1944 id: id,
1945 title: title,
1946 content: content
1947 },
1948 success: function (res) {
1949 btn.prop('disabled', false).text('Save Changes');
1950 if (res.success) {
1951 $('#rag-edit-modal').hide();
1952 Swal.fire('Updated!', res.data, 'success').then(() => {
1953 location.reload();
1954 });
1955 } else {
1956 Swal.fire('Error', res.data, 'error');
1957 }
1958 }
1959 });
1960 });
1961 }
1962 // Delete Document
1963 $('.qcl-openai').on('click', '.rag-delete-doc', function () {
1964 var id = $(this).data('id');
1965
1966 Swal.fire({
1967 title: 'Are you sure?',
1968 text: "You won't be able to revert this!",
1969 icon: 'warning',
1970 showCancelButton: true,
1971 confirmButtonColor: '#3085d6',
1972 cancelButtonColor: '#d33',
1973 confirmButtonText: 'Yes, delete it!'
1974 }).then((result) => {
1975 if (result.isConfirmed) {
1976 $.ajax({
1977 url: qcld_gemini_admin_data.ajax_url,
1978 type: 'POST',
1979 data: {
1980 action: 'qcld_rag_delete_document',
1981 nonce: qcld_gemini_admin_data.ajax_nonce,
1982 id: id
1983 },
1984 success: function (res) {
1985 if (res.success) {
1986 $('#rag-doc-' + id).remove();
1987 Swal.fire('Deleted!', res.data, 'success');
1988 } else {
1989 Swal.fire('Error', res.data, 'error');
1990 }
1991 }
1992 });
1993 }
1994 })
1995 });
1996
1997 $('.qcl-openai').on('click', '#qcld_check_connection', function(){
1998 jQuery('#rotationloader').css('display','inline-block');
1999 $.ajax({
2000 url: qcld_gemini_admin_data.ajax_url,
2001 type:'POST',
2002 data: ({action : 'openai_troubleshooting',nonce:qcld_gemini_admin_data.ajax_nonce}),
2003 success: function(data){
2004
2005 $('#result').html(data);
2006 Swal.fire({
2007 title: data.title,
2008 html: data.msg,
2009 width: 450,
2010 icon: data.icon,
2011 confirmButtonText: 'Got it',
2012 customClass: 'connection-modal',
2013 })
2014 jQuery('#rotationloader').css('display','none');
2015 // location.reload();
2016 }
2017 });
2018 })
2019 $(document).on('click', '.ai-provider-card', function () {
2020 var selected = $(this).data('provider');
2021 console.log('Provider changed to: ' + selected);
2022 $('.ai-provider-card').removeClass('active');
2023 $(this).addClass('active');
2024 $('#ai-provider-selector').val(selected);
2025 $('.ai-settings-provider').hide();
2026 $('#' + selected + '-settings').show();
2027 $('#rag-settings').hide(); // Ensure RAG is hidden when switching providers
2028 });
2029
2030 // Avatar Location card click handler
2031 $(document).on('click', '.avatar-location-card', function () {
2032 var location = $(this).data('location');
2033 $('.avatar-location-card').removeClass('active');
2034 $(this).addClass('active');
2035 $('#qcld-avatar-location').val(location);
2036 });
2037
2038 if (window.location.hash.indexOf('#ai-knowledge-base-tab') === 0) {
2039 $('.ai-settings-provider').hide();
2040 $('#rag-settings').show();
2041 }
2042
2043 $('#ai-knowledge-base-tab').on('click', function (e) {
2044 e.preventDefault();
2045 $('.ai-settings-provider').hide();
2046 $('#rag-settings').show();
2047 if (history.pushState) { history.pushState(null, null, '#ai-knowledge-base-tab'); }
2048 });
2049 // common Ai settings tab
2050 $('#qcld-common-ai-settings').on('click', function (e) {
2051 e.preventDefault();
2052 $('.ai-settings-provider').hide();
2053 $('#common-ai-settings').show();
2054 if (history.pushState) { history.pushState(null, null, '#common-ai-settings'); }
2055 });
2056 $('#ai-knowledge-base-tab-openai').on('click', function (e) {
2057 e.preventDefault();
2058 $('.ai-settings-provider').hide();
2059 $('#rag-settings').show();
2060 if (history.pushState) { history.pushState(null, null, '#ai-knowledge-base-tab'); }
2061 });
2062 });
2063
2064 $(document).on('click', '.qcld_botopenai_generate_image', function (e) {
2065 var qcld_seo_button = $(this);
2066 var qcld_seo_prompt = $('#prompt').val();
2067 var qcld_seo_artist = $('#artist').val();
2068 var qcld_seo_art_style = $('#art_style').val();
2069 var qcld_seo_photography_style = $('#photography_style').val();
2070 var qcld_seo_lighting = $('#lighting').val();
2071 var qcld_seo_subject = $('#subject').val();
2072 var qcld_seo_camera_settings = $('#camera_settings').val();
2073 var qcld_seo_composition = $('#composition').val();
2074 var qcld_seo_resolution = $('#resolution').val();
2075 var qcld_seo_color = $('#color').val();
2076 var qcld_seo_special_effects = $('#special_effects').val();
2077 var qcld_seo_img_size = $('#img_size').val();
2078 var qcld_seo_num_images = $('#num_images').val();
2079
2080
2081 if(qcld_seo_prompt === ''){
2082 alert('Something went wrong');
2083 }else{
2084
2085 var qcld_seo_post_status = $('.qcld_seo-post-status:checked').val();
2086 var qcld_seo_schedule = $('.qcld_seo-schedule-post').val();
2087
2088 var data = {
2089 qcld_seo_prompt: qcld_seo_prompt,
2090 qcld_seo_artist: qcld_seo_artist,
2091 qcld_seo_art_style: qcld_seo_art_style,
2092 qcld_seo_photography_style: qcld_seo_photography_style,
2093 qcld_seo_lighting: qcld_seo_lighting,
2094 qcld_seo_subject: qcld_seo_subject,
2095 qcld_seo_camera_settings: qcld_seo_camera_settings,
2096 qcld_seo_composition: qcld_seo_composition,
2097 qcld_seo_resolution: qcld_seo_resolution,
2098 qcld_seo_color: qcld_seo_color,
2099 qcld_seo_special_effects: qcld_seo_special_effects,
2100 qcld_seo_img_size: qcld_seo_img_size,
2101 qcld_seo_num_images: qcld_seo_num_images,
2102 action: 'qcld_openai_image_generate',
2103 nonce: qcld_gemini_admin_data.ajax_url,
2104 };
2105
2106 $.ajax({
2107 url: qcld_gemini_admin_data.ajax_url,
2108 data: data,
2109 type: 'POST',
2110 dataType: 'JSON',
2111 beforeSend: function(){
2112 qcld_seo_button.attr('disabled','disabled');
2113 qcld_seo_button.append('<span class="spinner"></span>');
2114 qcld_seo_button.find('.spinner').css('visibility','unset');
2115 },
2116 success: function (res){
2117 qcld_seo_button.removeAttr('disabled');
2118 qcld_seo_button.find('.spinner').remove();
2119 if(res.status === 'success'){
2120 // window.location.href = qcld_seo_bulk_content + '&qcld_seo_track='+res.id
2121 $('#qcld_seo-tab-generated-text').html( res.html );
2122 }
2123 else{
2124 alert('Something went wrong');
2125 }
2126 },
2127 error: function (){
2128 qcld_seo_button.removeAttr('disabled');
2129 qcld_seo_button.find('.spinner').remove();
2130 alert('Something went wrong');
2131 }
2132 })
2133 }
2134 });
2135 $(document).on('click', '.qcld_botopenai_generate_image_download', function (e) {
2136 e.preventDefault();
2137
2138 var url = $(this).find("img").attr('src');
2139 console.log(url)
2140 var qcld_seo_button = $(this);
2141 var image_url = $(this).find('img').attr('src');
2142 var image_page_url = $(this).find('img').attr('src');
2143 var photographer = $(this).find('img').data('photographer');
2144 var q = '';
2145 var data = {
2146 qcld_seo_openai_images_upload : "1",
2147 image_url : image_url,
2148 image_src_page : image_page_url,
2149 image_user : photographer,
2150 q : q,
2151 action : 'qcld_openai_image_generate_url'
2152 };
2153 $.ajax({
2154 url: qcld_gemini_admin_data.ajax_url,
2155 data: data,
2156 type: 'POST',
2157 dataType: 'JSON',
2158 beforeSend: function(){
2159 qcld_seo_button.removeAttr('disabled').removeClass("uploading").find('.qcld_seo_msg').remove();
2160 qcld_seo_button.attr('disabled','disabled');
2161 qcld_seo_button.addClass('uploading').find('.qcld_seo_download img').replaceWith('');
2162 },
2163 success: function ( res ){
2164 console.log(res.data.html);
2165 qcld_seo_button.find('.qcld_seo_download img').replaceWith('<p class="qcld_seo_msg">'+res.data.html+'<p>' );
2166 const newBlock = wp.blocks.createBlock( "core/image", {
2167 id: res.data.attachment_id,
2168 url: res.data.url,
2169 width: res.data.width,
2170 height: res.data.height,
2171 sizeSlug: res.data.size,
2172 alt: '',
2173 title: '',
2174 caption: '',
2175 });
2176 wp.data.dispatch("core/editor").insertBlocks(newBlock);
2177 },
2178 error: function (){
2179 qcld_seo_button.removeAttr('disabled');
2180 }
2181 })
2182
2183 });
2184
2185 $(document).on('click','#qcld_article_keyword_suggestion',function(e){
2186 var qcld_keyword_suggestion = $('#qcld_article_keyword_suggestion_mf').val();
2187 var qcld_keyword_number = $('#qcld_keyword_number').val();
2188 var qcld_article_language = $('#qcld_article_language').val();
2189 var qcld_article_number_of_heading = $('#qcld_article_number_of_heading').val();
2190 var qcld_article_heading_tag = $('#qcld_article_heading_tag').val();
2191 var qcld_article_heading_style = $('#qcld_article_heading_style').val();
2192 var qcld_article_heading_tone = $('#qcld_article_heading_tone').val();
2193 var qcld_article_heading_img = $('#qcld_article_heading_img').val();
2194 var qcld_article_heading_img = $("input[name=qcld_article_heading_img]:checked").val();
2195 var qcld_article_heading_tagline = $("input[name=qcld_article_heading_tagline]:checked").val();
2196 var qcld_article_heading_intro = $("input[name=qcld_article_heading_intro]:checked").val();
2197 var qcld_article_heading_conclusion = $("input[name=qcld_article_heading_conclusion]:checked").val();
2198 var qcld_article_label_anchor_text = $('#qcld_article_label_anchor_text').val();
2199 var qcld_article_target_url = $('#qcld_article_target_url').val();
2200 var qcld_article_target_label_cta = $('#qcld_article_target_label_cta').val();
2201 var qcld_article_cta_pos = $('#qcld_article_cta_pos').val();
2202 var qcld_article_label_keywords = $('#qcld_article_label_keywords').val();
2203 var qcld_article_label_word_to_avoid= $('#qcld_article_label_word_to_avoid').val();
2204 var qcld_article_label_keywords_bold= $("input[name=qcld_article_label_keywords_bold]:checked").val();
2205 var qcld_article_heading_faq = $("input[name=qcld_article_heading_faq]:checked").val();
2206 var qcld_article_img_size = $('#qcld_article_img_size').val();
2207
2208 $('#qcld_article_keyword_suggestion').addClass('spinning');
2209 $('#qcld_article_keyword_suggestion').prop("disabled",true);
2210 $('#linkbait_article_keyword_data').html('');
2211 $.ajax({
2212 url: qcld_gemini_admin_data.ajax_url,
2213 method: 'POST',
2214 data: {
2215 'action': 'openai_keyword_suggestion_content',
2216 'keyword' : qcld_keyword_suggestion,
2217 'keyword_number' : qcld_keyword_number,
2218 'qcld_article_language' : qcld_article_language,
2219 'qcld_article_number_of_heading' : qcld_article_number_of_heading,
2220 'qcld_article_heading_tag' : qcld_article_heading_tag,
2221 'qcld_article_heading_style' : qcld_article_heading_style,
2222 'qcld_article_heading_tone' : qcld_article_heading_tone,
2223 'qcld_article_heading_img' : qcld_article_heading_img,
2224 'qcld_article_heading_tagline' : qcld_article_heading_tagline,
2225 'qcld_article_heading_intro' : qcld_article_heading_intro,
2226 'qcld_article_heading_conclusion' : qcld_article_heading_conclusion,
2227 'qcld_article_label_anchor_text' : qcld_article_label_anchor_text,
2228 'qcld_article_target_url' : qcld_article_target_url,
2229 'qcld_article_target_label_cta' : qcld_article_target_label_cta,
2230 'qcld_article_cta_pos' : qcld_article_cta_pos,
2231 'qcld_article_label_keywords' : qcld_article_label_keywords,
2232 'qcld_article_label_word_to_avoid': qcld_article_label_word_to_avoid,
2233 'qcld_article_label_keywords_bold': qcld_article_label_keywords_bold,
2234 'qcld_article_heading_faq' : qcld_article_heading_faq,
2235 'qcld_article_img_size' : qcld_article_img_size,
2236 //'selectedlanguage': selectedlanguage,
2237 },
2238 dataType: 'json',
2239 success: function(response) {
2240 //$('#linkbait_keyword_data').append(response.keywords);
2241 $('#qcld_article_keyword_suggestion').prop("disabled",false);
2242 $('#qcld_article_keyword_suggestion').removeClass('spinning');
2243 $('#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>');
2244 $('#linkbait_article_keyword_data').append('<div class="qcld_content_result_wrap"><div class="qcld_rewrite_result_count">' + response.keywords.split(" ").length +'</div></div>');
2245
2246 $('#qcld_content_result_msg').focus();
2247 $('#qcld_content_result_msg').focusout();
2248 }
2249 });
2250
2251
2252
2253 });
2254
2255 $(document).on('click', '.ai-provider-card', function() {
2256 var selected = $(this).data('provider');
2257 $('.ai-provider-card').removeClass('active');
2258 $(this).addClass('active');
2259 $('#ai-provider-selector').val(selected);
2260 $('.ai-settings-provider').hide();
2261 $('#' + selected + '-settings').show();
2262 });
2263
2264 $('#is_rate_limiting_enabled').on('change', function () {
2265 if ($(this).is(":checked")) {
2266 $('#rate_limit_settings').show();
2267 $('.rate-limit-input').prop('disabled', false);
2268 $('.rate-limit-timeframe').prop('disabled', false);
2269 } else {
2270 $('#rate_limit_settings').hide();
2271 $('.rate-limit-input').prop('disabled', true);
2272 $('.rate-limit-timeframe').prop('disabled', true);
2273 }
2274 });
2275 $('.qcl-openai').on('click', '#qcld_openai_rate_limit_save_setting', function () {
2276 console.log('Saving rate limit settings...');
2277 if ($('#is_rate_limiting_enabled').is(":checked")) {
2278 var is_rate_limiting_enabled = 1;
2279 } else {
2280 var is_rate_limiting_enabled = 0;
2281 }
2282 var rate_limits = {};
2283 var rate_limit_timeframes = {};
2284 // Collect rate limits for each role
2285 $('.rate-limit-input').each(function () {
2286 var role = $(this).attr('id').replace('rate_limit_', '');
2287 var limit = $(this).val();
2288 rate_limits[role] = limit;
2289 rate_limit_timeframes[role] = $('#rate_limit_timeframe_' + role).val();
2290 });
2291 $.ajax({
2292 url: ajax_object.ajax_url,
2293 type: 'POST',
2294 data: ({
2295 action: 'rate_limit_settings_option',
2296 nonce: ajax_object.ajax_nonce,
2297 is_rate_limiting_enabled: is_rate_limiting_enabled,
2298 rate_limits: rate_limits,
2299 rate_limit_timeframes: rate_limit_timeframes
2300 }),
2301 success: function (data) {
2302 $('#result').html(data);
2303 Swal.fire({
2304 title: 'Your settings are saved.',
2305 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>',
2306 width: 450,
2307 icon: 'success',
2308 confirmButtonText: 'Got it',
2309 confirmButtonWidth: 100,
2310 confirmButtonClass: 'btn btn-lg'
2311 })
2312 // location.reload();
2313 }
2314 });
2315 })
2316 });
2317
2318 document.addEventListener('DOMContentLoaded', function() {
2319 if(localStorage.getItem('qcld_general_settings_notice_closed') === '1') {
2320 var notice = document.querySelector('.qcld-general-settings-connection-notic');
2321 if(notice) notice.style.display = 'none';
2322 }
2323 });
2324
2325
2326
2327
2328 function qcld_wpbot_languageChange_from_center(langCode) {
2329 switch (langCode) {
2330 case "not_mine":
2331 setTimeout(() => {
2332 jQuery("#waring-message").show()
2333 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>')
2334 }, 500);
2335
2336 break;
2337 default:
2338 setTimeout(() => {
2339 jQuery("#waring-message").hide()
2340 }, 500);
2341 jQuery.ajax({
2342 url: qcld_gemini_admin_data.ajax_url, // e.g., 'wp-admin/admin-ajax.php'
2343 type: 'POST',
2344 data: {
2345 'action': 'qcld_change_language_from_center',
2346 'language' : langCode,
2347 'nonce': qcld_gemini_admin_data.ajax_nonce, // Include nonce for security
2348 },// Expecting JSON response from PHP
2349 })
2350 .done(function(response) {
2351 // If PHP returns a JSON object
2352 if (response.success === false || response.error) {
2353 } else {
2354 jQuery.each( response.data.data, function(key, value) {
2355 if (Array.isArray( value )) {
2356 const textareas = jQuery('.wp-chatbot-lng-items').find('input[name="' + key + '[]"]');
2357 textareas.each(function(index) {
2358 if (index < value.length) {
2359 jQuery(this).val(value[index]);
2360 }
2361 });
2362 }else{
2363 jQuery('input[name="' + key + '"]').val(value);
2364 }
2365 });
2366 jQuery("#submit-language").click();
2367 // processResponse(response.data);
2368 }
2369 })
2370 .fail(function(jqXHR, textStatus, errorThrown) {
2371 console.error('AJAX Fail:', textStatus, errorThrown);
2372 });
2373 }
2374 }
2375
2376
2377