PageSourceSearch

https://www.al-islah.net/wp-content/plugins/gpt3-ai-content-generator-premium/public/js/wpaicg-init.js

js al-islah.net collected 2026-10-02 12:31:32 UTC 22,150 bytes, 366 lines download raw bytes

1let wpaicgInit = {
2    wpaicgImageForm: null,
3    wpaicgImageGenerated: null,
4    wpaicgImageGrid: null,
5    wpaicgImageLoading: null,
6    wpaicgImageSaveBtn: null,
7    wpaicgImageMessage: null,
8    wpaicgImageConvertBar: null,
9    wpaicg_image_modal_close: null,
10    wpaicgNumberImages: null,
11    wpaicgImageGenerateBtn: null,
12    wpaicgImageSelectAll: null,
13    wpaicgStartTime: null,
14    init: function (){
15        this.search();
16        this.image();
17        return this;
18    },
19    search: function(){
20        let that = this;
21        let wpaicgSearchs = document.getElementsByClassName('wpaicg-search');
22        if(wpaicgSearchs && wpaicgSearchs.length){
23            for(let i=0;i<wpaicgSearchs.length;i++){
24                let wpaicgSearch = wpaicgSearchs[i];
25                let wpaicgSearchForm = wpaicgSearch.getElementsByClassName('wpaicg-search-form')[0];
26                let wpaicgSearchField = wpaicgSearch.getElementsByClassName('wpaicg-search-field')[0];
27                let wpaicgSearchResult = wpaicgSearch.getElementsByClassName('wpaicg-search-result')[0];
28                let wpaicgSearchSource = wpaicgSearch.getElementsByClassName('wpaicg-search-source')[0];
29                let wpaicgSearchBtn = wpaicgSearch.getElementsByClassName('wpaicg-search-submit')[0];
30                wpaicgSearchBtn.addEventListener('click', function (){
31                    that.searchData(wpaicgSearchResult,wpaicgSearchSource,wpaicgSearchField);
32                });
33                wpaicgSearchForm.addEventListener('submit', function (e){
34                    that.searchData(wpaicgSearchResult,wpaicgSearchSource,wpaicgSearchField);
35                    e.preventDefault();
36                    return false;
37                })
38            }
39        }
40    },
41    searchExpand: function(element){
42        let item = element.closest('.wpaicg-search-item');
43        item.getElementsByClassName('wpaicg-search-item-excerpt')[0].style.display = 'none';
44        item.getElementsByClassName('wpaicg-search-item-full')[0].style.display = 'block';
45    },
46    searchData: function (wpaicgSearchResult,wpaicgSearchSource,wpaicgSearchField){
47        let search = wpaicgSearchField.value;
48        if(search !== '') {
49            wpaicgSearchResult.innerHTML = '<div class="wpaicg-search-loading"><div class="wpaicg-lds-dual-ring"></div></div>';
50            wpaicgSearchSource.innerHTML = '';
51            wpaicgSearchResult.classList.remove('wpaicg-has-item');
52            const xhttp = new XMLHttpRequest();
53            xhttp.open('POST', wpaicgParams.ajax_url);
54            xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
55            xhttp.send('action=wpaicg_search_data&_wpnonce='+wpaicgParams.search_nonce+'&search='+encodeURIComponent(search));
56            xhttp.onreadystatechange = function(oEvent) {
57                if (xhttp.readyState === 4) {
58                    if (xhttp.status === 200) {
59                        wpaicgSearchResult.classList.add('wpaicg-has-item');
60                        var wpaicg_response = this.responseText;
61                        if (wpaicg_response !== '') {
62                            wpaicg_response = JSON.parse(wpaicg_response);
63                            wpaicgSearchResult.innerHTML = '';
64                            if (wpaicg_response.status === 'success') {
65                                if(wpaicg_response.data.length){
66                                    for(let i = 0; i < wpaicg_response.data.length; i++){
67                                        let item = wpaicg_response.data[i];
68                                        wpaicgSearchResult.innerHTML += item;
69                                    }
70                                    if(wpaicg_response.source.length){
71                                        wpaicgSearchSource.innerHTML = '<h3>'+wpaicgParams.languages.source+'</h3>';
72                                        for(let i = 0; i < wpaicg_response.source.length; i++){
73                                            let item = wpaicg_response.source[i];
74                                            wpaicgSearchSource.innerHTML += 
74item;
75                                        }
76                                    }
77                                }
78                                else{
79                                    wpaicgSearchResult.innerHTML = '<p>'+wpaicgParams.languages.no_result+'</p>';
80                                }
81                            }
82                            else{
83                                wpaicgSearchResult.innerHTML = '<p class="wpaicg-search-error">'+wpaicg_response.msg+'</p>';
84                            }
85                        }
86                        else{
87                            wpaicgSearchResult.innerHTML = '<p class="wpaicg-search-error">'+wpaicgParams.languages.wrong+'</p>';
88                        }
89                    }
90                    else{
91                        wpaicgSearchResult.innerHTML = '<p class="wpaicg-search-error">'+wpaicgParams.languages.wrong+'</p>';
92                    }
93                }
94            }
95        }
96    },
97    imageModal: function (id){
98        var item = document.getElementById('wpaicg-image-item-'+id);
99        var alt = item.querySelectorAll('.wpaicg-image-item-alt')[0].value;
100        var title = item.querySelectorAll('.wpaicg-image-item-title')[0].value;
101        var caption = item.querySelectorAll('.wpaicg-image-item-caption')[0].value;
102        var description = item.querySelectorAll('.wpaicg-image-item-description')[0].value;
103        var url = item.querySelectorAll('input[type=checkbox]')[0].value;
104        document.querySelectorAll('.wpaicg_modal_content')[0].innerHTML = '';
105        document.querySelectorAll('.wpaicg-overlay')[0].style.display = 'block';
106        document.querySelectorAll('.wpaicg_modal')[0].style.display = 'block';
107        document.querySelectorAll('.wpaicg_modal_title')[0].innerHTML = wpaicgParams.languages.edit_image;
108        var html = '<div class="wpaicg_grid_form">';
109        html += '<div class="wpaicg_grid_form_2"><img src="'+url+'" style="width: 100%"></div>';
110        html += '<div class="wpaicg_grid_form_1">';
111        html += '<p><label>'+wpaicgParams.languages.alternative+'</label><input type="text" class="wpaicg_edit_item_alt" style="width: 100%" value="'+alt+'"></p>';
112        html += '<p><label>'+wpaicgParams.languages.title+'</label><input type="text" class="wpaicg_edit_item_title" style="width: 100%" value="'+title+'"></p>';
113        html += '<p><label>'+wpaicgParams.languages.caption+'</label><input type="text" class="wpaicg_edit_item_caption" style="width: 100%" value="'+caption+'"></p>';
114        html += '<p><label>'+wpaicgParams.languages.description+'</label><textarea class="wpaicg_edit_item_description" style="width: 100%">'+description+'</textarea></p>';
115        html += '<button onclick="wpaicgSaveImageData('+id+')" data-id="'+id+'" class="button button-primary wpaicg_edit_image_save" type="button">'+wpaicgParams.languages.save+'</button>';
116        html += '</div>';
117        html += '</div>';
118        document.querySelectorAll('.wpaicg_modal_content')[0].innerHTML = html;
119        wpaicgImageCloseModal();
120    },
121    image_generator: function(data, start, max, multi_steps,form_action){
122        let that = this;
123        const xhttp = new XMLHttpRequest();
124        xhttp.open('POST', wpaicgParams.ajax_url);
125        xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
126        xhttp.send(data);
127        xhttp.onreadystatechange = function(oEvent) {
128            if (xhttp.readyState === 4) {
129                if (xhttp.status === 200) {
130                    var wpaicg_response = this.responseText;
131                    res = JSON.parse(wpaicg_response);
132                    if(res.status === 'success'){
133                        for(var idx = 0; idx < res.imgs.length; idx++){
134                            let idImageBox = idx;
135                            if(multi_steps){
136                                idImageBox = start -1;
137                            }
138                            var img = res.imgs[idx];
139                            var html = '<div id="wpaicg-image-item-'+idImageBox+'" class="wpaicg-image-item wpaicg-image-item-'+idx+'" data-id="'+idImageBox+'">';
140                            if(wpaicgParams.logged_in === '1') {
141                                html += '<label><input data-id="' + idImageBox + '" class="wpaicg-image-item-select" type="checkbox" name="image_url" value="' + img + '"></label>';
142                            }
143                            html += '<input value="'+res.title+'" class="wpaicg-image-item-alt" type="hidden" name="image_alt">';
144                            html += '<input value="'+res.title+'" class="wpaicg-image-item-title" type="hidden" name="image_title">';
145                            html += '<input value="'+res.title+'" class="wpaicg-image-item-caption" type="hidden" name="image_caption">';
146                            html += '<input value="'+res.title+'" class="wpaicg-image-item-description" type="hidden" name="image_description">';
147                            if(wpaicgParams.logged_in === '1') {
148                                html += '<img onclick="wpaicgInit.imageModal(' + idImageBox + ')" src="' + img + '">';
149                            }
150                            else {
151                                html += '<img onclick="wpaicgViewModalImage(this)" src="' + img + '">';
152                            }
153                            html += '</div>';
154                            that.wpaicgImageGrid.innerHTML += html;
155                        }
156                        if(multi_steps){
157                            if(start === max){
158                                wpaicgImageRmLoading(that.wpaicgImageGenerateBtn);
159                                that.wpaicgImageSelectAll.classList.remove('selectall')
160                                that.wpaicgImageSelectAll.innerHTML = wpaicgSelectAllText;
161                                that.wpaicgImageSelectAll.style.display = 'block';
162                                that.wpaicgImageLoading.style.display = 'none';
163                                that.wpaicgImageSaveBtn.style.display = 'block';
164                            }
165                            else{
166                                that.image_generator(data, start+1, max, multi_steps,form_action)
167                            }
168                        }
169                        else{
170                            if(form_action === 'wpaicg_image_generator'){
171                                let endTime = new Date();
172                                let timeDiff = endTime - that.wpaicgStartTime;
173                                timeDiff = timeDiff/1000;
174                                data += '&action=wpaicg_image_log&duration='+timeDiff+'&_wpnonce_image_log='+wpaicgImageNonce+'&shortcode=['+wpaicgImageShortcode+']&source_id='+wpaicgImageSourceID;
175                                const xhttp = new XMLHttpRequest();
176                                xhttp.open('POST', wpaicgParams.ajax_url);
177                                xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
178                                xhttp.send(data);
179                                xhttp.onreadystatechange = function (oEvent) {
180                                    if (xhttp.readyState === 4) {
181
182                                    }
183                                }
184                            }
185                            wpaicgImageRmLoading(that.wpaicgImageGenerateBtn);
186                            that.wpaicgImageSelectAll.classList.remove('selectall')
187                            that.wpaicgImageSelectAll.innerHTML = '<?php echo esc_html($wpaicg_image_select_all_text)?>';
188                            that.wpaicgImageSelectAll.style.display = 'block';
189                            that.wpaicgImageLoading.style.display = 'none';
190                            that.wpaicgImageSaveBtn.style.display = 'block';
191                        }
192                    }
193                    else{
194                        wpaicgImageRmLoading(that.wpaicgImageGenerateBtn);
195                        that.wpaicgImageLoading.style.display = 'none';
196                        let errorMessage = document.createElement('div');
197                        errorMessage.style.color = '#f00';
198                        errorMessage.classList.add('wpaicg-image-error');
199                        errorMessage.innerHTML = res.msg;
200                        that.wpaicgImageGenerated.prepend(errorMessage);
201                        setTimeout(function (){
202                            errorMessage.remove();
203                        },3000);
204                    }
205                }
206                else{
207                    that.wpaicgImageLoading.style.display = 'none';
208                    wpaicgImageRmLoading(that.wpaicgImageGenerateBtn);
209                    alert('Something went wrong');
210                }
211            }
212        }
213
214    },
215    save_image: function (items,start){
216        let that = this;
217        if(start >= items.length){
218            that.wpaicgImageConvertBar.getElementsByTagName('small')[0].innerHTML = items.length+'/'+items.length;
219            that.wpaicgImageConvertBar.getElementsByTagName('span')[0].style.width = '100%';
220            that.wpaicgImageMessage.innerHTML = wpaicgParams.languages.save_image_success;
221            wpaicgImageRmLoading(that.wpaicgImageSaveBtn);
222            setTimeout(function (){
223                that.wpaicgImageMessage.innerHTML = '';
224            },2000)
225        }
226        else{
227            var id = items[start];
228            var item = document.getElementById('wpaicg-image-item-'+id);
229            var data = 'action=wpaicg_save_image_media';
230            data += '&image_alt='+item.querySelectorAll('.wpaicg-image-item-alt')[0].value;
231            data += '&image_title='+item.querySelectorAll('.wpaicg-image-item-title')[0].value;
232            data += '&image_caption='+item.querySelectorAll('.wpaicg-image-item-caption')[0].value;
233            data += '&image_description='+item.querySelectorAll('.wpaicg-image-item-description')[0].value;
234            data += '&image_url='+encodeURIComponent(item.querySelectorAll('.wpaicg-image-item-select')[0].value);
235            data +='&nonce='+wpaicgImageSaveNonce;
236            const xhttp = new XMLHttpRequest();
237            xhttp.open('POST', wpaicgParams.ajax_url);
238            xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
239            xhttp.send(data);
240            xhttp.onreadystatechange = function(oEvent) {
241                if (xhttp.readyState === 4) {
242                    if (xhttp.status === 200) {
243                        var wpaicg_response = this.responseText;
244                        res = JSON.parse(wpaicg_response);
245                        if(res.status === 'success'){
246                            var currentPos = start+1;
247                            var percent = Math.ceil(currentPos*100/items.length);
248                            that.wpaicgImageConvertBar.getElementsByTagName('small')[0].innerHTML = currentPos+'/'+items.length;
249                            that.wpaicgImageConvertBar.getElementsByTagName('span')[0].style.width = percent+'%';
250                            that.save_image(items, start+1);
251                        }
252                        else{
253                            that.wpaicgImageConvertBar.classList.add('wpaicg_error');
254                            wpaicgImageRmLoading(that.wpaicgImageSaveBtn);
255                            alert(res.msg);
256                        }
257                    } else {
258                        alert(wpaicgParams.languages.wrong);
259                        that.wpaicgImageConvertBar.classList.add('wpaicg_error');
260                        wpaicgImageRmLoading(that.wpaicgImageSaveBtn);
261                    }
262                }
263            }
264        }
265    },
266    image: function (){
267        let that = this;
268        let wpaicgImageForm = document.getElementById('wpaicg-image-generator-form');
269        if(wpaicgImageForm){
270            this.wpaicgImageForm = wpaicgImageForm;
271            this.wpaicgImageGenerated = wpaicgImageForm.getElementsByClassName('image-generated')[0];
272            this.wpaicgImageGrid = wpaicgImageForm.getElementsByClassName('image-grid')[0];
273            this.wpaicgImageLoading = wpaicgImageForm.getElementsByClassName('image-generate-loading')[0];
274            this.wpaicgImageSaveBtn = wpaicgImageForm.getElementsByClassName('image-generator-save')[0];
275            this.wpaicgImageMessage = wpaicgImageForm.getElementsByClassName('wpaicg_message')[0];
276            this.wpaicgImageConvertBar = wpaicgImageForm.getElementsByClassName('wpaicg-convert-bar')[0];
277            this.wpaicg_image_modal_close = wpaicgImageForm.getElementsByClassName('wpaicg_image_modal_close');
278            this.wpaicgNumberImages = wpaicgImageForm.querySelector('select[name=num_images]');
279            this.wpaicgImageGenerateBtn = wpaicgImageForm.getElementsByClassName('wpaicg_button_generate')[0];
280            this.wpaicgImageSelectAll = wpaicgImageForm.getElementsByClassName('wpaicg_image_select_all')[0];
281            this.wpaicgImageSaveBtn.addEventListener('click', function (e) {
282                var items = [];
283                document.querySelectorAll('.wpaicg-image-item input[type=checkbox]').forEach(function (item) {
284                    if (item.checked) {
285                        items.push(item.getAttribute('data-id'));
286                    }
287                });
288                if (items.length) {
289                    that.wpaicgImageConvertBar.style.display = 'block';
290                    that.wpaicgImageConvertBar.classList.remove('wpaicg_error');
291                    that.wpaicgImageConvertBar.getElementsByTagName('small')[0].innerHTML = '0/' + items.length;
292                    that.wpaicgImageConvertBar.getElementsByTagName('span')[0].style.width = 0;
293                    that.wpaicgImageMessage.innerHTML = '';
294                    wpaicgImageLoadingEffect(that.wpaicgImageSaveBtn);
295                    that.save_image(items, 0);
296                } else {
297                    alert(wpaicgParams.languages.select_save_error);
298                }
299            })
300            this.wpaicgImageSelectAll.addEventListener('click', function (e) {
301                if (that.wpaicgImageSelectAll.classList.contains('selectall')) {
302                    that.wpaicgImageSelectAll.classList.remove('selectall');
303                    that.wpaicgImageSelectAll.innerHTML = wpaicgSelectAllText;
304                    document.querySelectorAll('.wpaicg-image-item input[type=checkbox]').forEach(function (item) {
305                        item.checked = false;
306                    })
307                } else {
308                    that.wpaicgImageSelectAll.classList.add('selectall');
309                    that.wpaicgImageSelectAll.innerHTML = wpaicgParams.languages.unselect;
310                    document.querySelectorAll('.wpaicg-image-item input[type=checkbox]').forEach(function (item) {
311                        item.checked = true;
312                    })
313                }
314            });
315            wpaicgImageForm.addEventListener('submit', function (e) {
316                e.preventDefault();
317                var form_action = wpaicgImageForm.querySelectorAll('input[name=action]')[0].value;
318                if (form_action === 'wpaicg_image_stable_diffusion') {
319                    that.wpaicgNumberImages = wpaicgImageForm.querySelector('select[name=num_outputs]');
320                }
321                var num_images = parseInt(that.wpaicgNumberImages.value);
322                if (num_images > 0) {
323                    var wpaicg_error = false;
324                    if (form_action === 'wpaicg_image_stable_diffusion') {
325                        var prompt_strength = parseFloat(document.getElementById('prompt_strength').value);
326                        var num_inference_steps = parseFloat(document.getElementById('num_inference_steps').value);
327                        var guidance_scale = parseFloat(document.getElementById('guidance_scale').value);
328                        if (prompt_strength < 0 || prompt_strength > 1) {
329                            wpaicg_error = wpaicgParams.languages.prompt_strength
330                        } else if (num_inference_steps < 1 || num_inference_steps > 500) {
331                            wpaicg_error = wpaicgParams.languages.num_inference_steps
332                        } else if (guidance_scale < 1 || guidance_scale > 20) {
333                            wpaicg_error = wpaicgParams.languages.guidance_scale
334                        }
335                    }
336                    if (wpaicg_error) {
337                        alert(wpaicg_error);
338                    } else {
339                        const queryString = new URLSearchParams(new FormData(wpaicgImageForm)).toString();
340                        that.wpaicgImageSaveBtn.style.display = 'none';
341                        wpaicgImageLoadingEffect(that.wpaicgImageGenerateBtn);
342                        that.wpaicgImageConvertBar.style.display = 'none';
343                        that.wpaicgImageLoading.style.display = 'flex';
344                        that.wpaicgImageGrid.innerHTML = '';
345                        that.wpaicgImageSelectAll.style.display = 'none';
346                        let wpaicgImageError = document.getElementsByClassName('wpaicg-image-error');
347                        if (wpaicgImageError.length) {
348                            wpaicgImageError[0].remove();
349                        }
350                        if (form_action === 'wpaicg_image_stable_diffusion') {
351                            that.image_generator(queryString, 1, num_images, true, form_action);
352                        } else {
353                            that.wpaicgStartTime = new Date();
354                            that.image_generator(queryString, 1, num_images, false, form_action);
355                        }
356                    }
357                } else {
358                    alert(wpaicgParams.languages.error_image)
359                }
360                return false;
361            });
362        }
363    }
364}
365window['wpaicgInit'] = wpaicgInit.init();
366

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.