var vpxb_imgs = {}; var vpxb_selected = new Array(); var vpxb_opened = false; var vpxb_current = ''; function vpxb_insertatcaret(areaId, text) { var txtarea = document.getElementById(areaId); var scrollPos = txtarea.scrollTop; var strPos = 0; var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ? "ff" : (document.selection ? "ie" : false)); if (br == "ie") { txtarea.focus(); var range = document.selection.createRange(); range.moveStart('character', -txtarea.value.length); strPos = range.text.length; } else if (br == "ff") strPos = txtarea.selectionStart; var front = (txtarea.value).substring(0, strPos); var back = (txtarea.value).substring(strPos, txtarea.value.length); txtarea.value = front + text + back; strPos = strPos + text.length; if (br == "ie") { txtarea.focus(); var range = document.selection.createRange(); range.moveStart('character', -txtarea.value.length); range.moveStart('character', strPos); range.moveEnd('character', 0); range.select(); } else if (br == "ff") { txtarea.selectionStart = strPos; txtarea.selectionEnd = strPos; txtarea.focus(); } txtarea.scrollTop = scrollPos; } function vpxb_escapehtml(html) { var fn = function (tag) { var charsToReplace = { '&': '&', '<': '<', '>': '>', '"': '"' }; return charsToReplace[tag] || tag; } return html.replace(/[&<>"]/g, fn); } jQuery("#vpxb_search").click(function () { vpxb_showimages(1); }); jQuery('.vpxb_btn').live('click', function () { eid = jQuery(this).attr('data-editor'); jQuery('#vpxb_eid').val(eid) }); jQuery(document).ready(function (jQuery) { jQuery('.vpxb_btn').live('click', function () { if (vpxb_opened) { jQuery.colorbox({ width : "930px", height : "460px", inline : true, href : "#vpxb_popup", scrolling: false, fixed : true }); } else { jQuery.colorbox({ width : "648px", height : "460px", inline : true, href : "#vpxb_popup", scrolling: false, fixed : true }); } }); }); jQuery("#vpxb_page a").live("click", function () { jQuery('#vpxb_page').html(''); vpxb_showimages(jQuery(this).attr("rel")); }); jQuery("#vpxb_page-select").live("change", function () { vpxb_showimages(jQuery(this).val()); }); jQuery("#vpxb_insert").live("click", function () { for (var i = 0; i < vpxb_selected.length; i++) { vinsert = ''; valign = ''; valign2 = ''; eid = jQuery('#vpxb_eid').val(); if (jQuery('#vpxb_align').val() != '') { valign = ' align="' + vpxb_escapehtml(jQuery('#vpxb_align').val()) + '"'; valign2 = ' class="' + vpxb_escapehtml(jQuery('#vpxb_align').val()) + '"'; } var cid = vpxb_selected[i]; if (vpxb_imgs[cid].img_caption != '') { vinsert = '[caption id="" ' + valign + ']'; } if (jQuery('#vpxb_link').val() == 1) { vinsert += ''; if (jQuery('#vpxb_link').val() != 0) { vinsert += ''; } if (vpxb_imgs[cid].img_caption != '') { vinsert += ' ' + vpxb_escapehtml(vpxb_imgs[cid].img_caption) + '[/caption]'; } vinsert += '\n'; if (!tinyMCE.activeEditor || tinyMCE.activeEditor.isHidden()) { vpxb_insertatcaret(eid, vinsert); } else { tinyMCE.activeEditor.execCommand('mceInsertContent', 0, vinsert); } } jQuery.colorbox.close(); }); jQuery("#vpxb_featured").live("click", function () { vffurl = jQuery('#vpxb_url').val(); jQuery('#vpxb_featured_url').val(vffurl); jQuery('#postimagediv div.inside img').remove(); jQuery('#postimagediv div.inside').prepend(''); jQuery.colorbox.close(); }); jQuery("#remove-post-thumbnail").live("click", function () { jQuery('#vpxb_featured_url').val(''); }); jQuery(".vpxb_item-overlay").live("click", function (event) { var checkbox = jQuery(this).parent().find(':checkbox'); var checkbox_id = jQuery(this).attr('rel'); jQuery.colorbox.resize({width: "930px", height: "460px"}); vpxb_opened = true; vpxb_current = checkbox_id; if (event.ctrlKey) { if (!checkbox.is(':checked')) { vpxb_selected.push(checkbox_id); } else { vpxb_selected.splice(vpxb_selected.indexOf(checkbox_id), 1); } checkbox.attr('checked', !checkbox.is(':checked')); } else { if (!checkbox.is(':checked')) { vpxb_selected = [checkbox_id]; jQuery('#vpxb_popup').find('input:checkbox').removeAttr('checked'); checkbox.attr('checked', !checkbox.is(':checked')); } } jQuery("#vpxb_use-image").show(); jQuery('#vpxb_title').val(vpxb_imgs[checkbox_id].img_title); jQuery('#vpxb_caption').val(vpxb_imgs[checkbox_id].img_caption); jQuery('#vpxb_width').val(vpxb_imgs[checkbox_id].img_width); jQuery('#vpxb_height').val(vpxb_imgs[checkbox_id].img_height); jQuery('#vpxb_site').val(vpxb_imgs[checkbox_id].img_site); jQuery('#vpxb_url').val(vpxb_imgs[checkbox_id].img_full); jQuery('#vpxb_view').html(''); jQuery('#vpxb_error').html(''); jQuery('#vpxb_insert').val('Insert (' + vpxb_selected.length + ')'); jQuery('#vpxb_save').val('Save&Insert (' + vpxb_selected.length + ')'); }); function vpxb_showimages(page) { if (jQuery("#vpxb_input").val() == '') { alert('Please enter keyword to search!'); } else { jQuery('#vpxb_spinner').show(); jQuery('#vpxb_container').html(""); var USERNAME = vpxb_vars.vpxb_username; var API_KEY = vpxb_vars.vpxb_key; var PER_PAGE = 8; var vurl = "https://pixabay.com/api/?username=" + USERNAME + "&key=" + API_KEY + "&lang=" + jQuery('#vpxb_language').val() + "&image_type=" + jQuery('#vpxb_type').val() + "&orientation=" + jQuery('#vpxb_orientation').val() + "&editors_choice=" + jQuery('#vpxb_editorchoice').val() + "&order=" + jQuery('#vpxb_order').val() + "&safesearch=" + jQuery('#vpxb_safesearch').val() + "&q=" + encodeURIComponent(jQuery('#vpxb_input').val()) + "&per_page=" + PER_PAGE + "&page=" + page; jQuery.ajax({ url : vurl, dataType: "jsonp", success : function (data) { if (data.totalHits > 0) { jQuery('#vpxb_spinner').hide(); for (var i = 0; i < data.hits.length; i++) { img_id = data.hits[i].id; img_ext = data.hits[i].webformatURL.split('.').pop().toUpperCase().substring(0, 4); img_site = data.hits[i].pageURL; img_thumb = data.hits[i].previewURL; img_full = data.hits[i].webformatURL; img_width = data.hits[i].webformatWidth; img_height = data.hits[i].webformatHeight; img_title = String(data.hits[i].tags); jQuery('#vpxb_container').append('
' + img_ext + ' | ' + img_width + 'x' + img_height + '
' ) vpxb_imgs[img_id] = { img_ext : img_ext, img_site : img_site, img_thumb : img_thumb, img_full : img_full, img_width : img_width, img_height : img_height, img_title : img_title, img_caption: '' }; } jQuery('.vpxb_item').each(function () { imageUrl = jQuery(this).attr('bg'); jQuery(this).css('background-image', 'url(' + imageUrl + ')'); }); var vpages = "About " + data.totalHits + " results / Pages: "; if ((data.totalHits / PER_PAGE + 1) < 10) { for (var j = 1; j < data.totalHits / PER_PAGE + 1; j++) { vpages += '' + j + ' '; } } else { vpages += ''; } jQuery('#vpxb_page').html(vpages); } else { jQuery('#vpxb_spinner').hide(); jQuery('#vpxb_container').html('No result! Please try again!'); jQuery('#vpxb_page').html(''); } } }); } } function vpxb_escapehtml(html) { return html; } function vpxb_isurl(str) { var pattern = new RegExp('^(https?:\\/\\/)?' + // protocol '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.?)+[a-z]{2,}|' + // domain name '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string '(\\#[-a-z\\d_]*)?$', 'i'); // fragment locator return pattern.test(str); } //change value function vpxb_change_value(img_id, img_field, img_value) { vpxb_imgs[img_id][img_field] = img_value; } jQuery("#vpxb_title").change(function () { vpxb_change_value(vpxb_current, 'img_title', jQuery(this).val()); }); jQuery("#vpxb_caption").change(function () { vpxb_change_value(vpxb_current, 'img_caption', jQuery(this).val()); }); jQuery("#vpxb_width").change(function () { vpxb_change_value(vpxb_current, 'img_width', jQuery(this).val()); }); jQuery("#vpxb_height").change(function () { vpxb_change_value(vpxb_current, 'img_height', jQuery(this).val()); });