// source --> http://www.cnkugan.ru/wp-content/themes/nirvana/js/frontend.js?ver=1.4.3
/*
* Nirvana Theme custom frontend scripting
* http://www.cryoutcreations.eu/
*
* Copyright 2014, Cryout Creations
* Free to use and abuse under the GPL v3 license.
*/
jQuery(document).ready(function() {
// responsiveness check
if (nirvana_settings['mobile'] == 1) {
nirvana_mobilemenu_init();
if (nirvana_settings['fitvids'] == 1) jQuery(".entry-content").fitVids();
};
/* Standard menu touch support for tablets */
var custom_event = ('ontouchstart' in window) ? 'touchstart' : 'click'; // check touch support
var ios = /iPhone|iPad|iPod/i.test(navigator.userAgent);
jQuery('#access .menu > ul > li a').on('click', function(e){
var $link_id = jQuery(this).attr('href');
if (jQuery(this).parent().data('clicked') == $link_id) { // second touch
jQuery(this).parent().data('clicked', null);
}
else { // first touch
if (custom_event != 'click' && !ios && (jQuery(this).parent().children('ul').length >0)) {e.preventDefault();}
jQuery(this).parent().data('clicked', $link_id);
}
});
/* Menu animation */
jQuery("#access ul ul").css({display: "none"}); /* Opera Fix */
jQuery("#access > .menu ul li > a:not(:only-child)").attr("aria-haspopup","true");/* IE10 mobile Fix */
jQuery("#access li").hover(function(){
jQuery(this).find('ul:first').stop();
jQuery(this).find('ul:first').css({opacity: "0",marginLeft:"50px"}).css({visibility: "visible",display: "block",overflow:"visible"}).animate({"opacity":"1",marginLeft:"-=50"},{queue:false});
},function(){
jQuery(this).find('ul:first').css({visibility: "visible",display: "block",overflow:"visible"}).animate({marginLeft:"-=50"}, {queue:false}).fadeOut();
});
/* Back to top button animation */
var offset = 500;
var duration = 500;
jQuery(window).scroll(function() {
if (jQuery(this).scrollTop() > offset) {
jQuery('#toTop').css({'bottom':'20px','opacity':1});
}
else {
jQuery('#toTop').css({'bottom':'-50px','opacity':0});
}
});
jQuery('#toTop').click(function(event) {
event.preventDefault();
jQuery('html, body').animate({scrollTop: 0}, duration);
return false;
});
/* Social Icons Animation */
jQuery(".socialicons").append('
');
var i=0;
/* Top bar search animation */
jQuery(".menu-header-search i.search-icon").click(function(event){
i++;
jQuery(this).animate({marginTop: "43px"}, 200);
jQuery(".menu-header-search .searchform").css('display','block').animate({opacity: "1"}, 200);
jQuery(".menu-header-search .s").focus();
if(i==2) {
jQuery(".menu-header-search .searchsubmit").click();
}
event.stopPropagation();
});
jQuery(".menu-header-search .searchform").click(function(event){
event.stopPropagation();
});
jQuery('html').click(function() {
i=0;
jQuery(".menu-header-search i.search-icon").animate({marginTop: "0px"}, 200);
jQuery(".menu-header-search .searchform").hide();
});
/* Detect and apply custom class for Safari */
if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) {
jQuery('body').addClass('safari');
}
});
/* end document.ready */
/* Mobile Menu */
function nirvana_mobilemenu_init() {
var state = false;
jQuery("#nav-toggle").click(function(){
jQuery("#access").slideToggle(function(){ if (state) {jQuery(this).removeAttr( 'style' )}; state = ! state; } );
});
}
/* Columns equalizer, used if at least one sidebar has a bg color */
function equalizeHeights(){
var h1 = jQuery("#primary").height();
var h2 = jQuery("#secondary").height();
var h3 = jQuery("#content").height();
var max = Math.max(h1,h2,h3);
if (h1').parent('.nirvana-width-video-wrapper').css('padding-top', (aspectRatio * 100)+"%");
$this.removeAttr('height').removeAttr('width');
});
});
};
})( jQuery );
/* Returns the version of Internet Explorer or a -1
(indicating the use of another browser). */
function getInternetExplorerVersion()
{
var rv = -1; /* assume not IE. */
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
};
// source --> http://www.cnkugan.ru/wp-content/plugins/chatbot/js/jquery.slimscroll.min.js?ver=3.7.4
/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
*
* Version: 1.3.8
*
*/
(function(e){e.fn.extend({slimScroll:function(f){var a=e.extend({width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:"#333",railOpacity:.2,railDraggable:!0,railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:"7px",railBorderRadius:"7px"},f);this.each(function(){function v(d){if(r){d=d||window.event;
var c=0;d.wheelDelta&&(c=-d.wheelDelta/120);d.detail&&(c=d.detail/3);e(d.target||d.srcTarget||d.srcElement).closest("."+a.wrapperClass).is(b.parent())&&n(c,!0);d.preventDefault&&!k&&d.preventDefault();k||(d.returnValue=!1)}}function n(d,g,e){k=!1;var f=b.outerHeight()-c.outerHeight();g&&(g=parseInt(c.css("top"))+d*parseInt(a.wheelStep)/100*c.outerHeight(),g=Math.min(Math.max(g,0),f),g=0=b.outerHeight()?k=!0:(c.stop(!0,
!0).fadeIn("fast"),a.railVisible&&m.stop(!0,!0).fadeIn("fast"))}function p(){a.alwaysVisible||(B=setTimeout(function(){a.disableFadeOut&&r||y||z||(c.fadeOut("slow"),m.fadeOut("slow"))},1E3))}var r,y,z,B,A,u,l,C,k=!1,b=e(this);if(b.parent().hasClass(a.wrapperClass)){var q=b.scrollTop(),c=b.siblings("."+a.barClass),m=b.siblings("."+a.railClass);x();if(e.isPlainObject(f)){if("height"in f&&"auto"==f.height){b.parent().css("height","auto");b.css("height","auto");var h=b.parent().parent().height();b.parent().css("height",
h);b.css("height",h)}else"height"in f&&(h=f.height,b.parent().css("height",h),b.css("height",h));if("scrollTo"in f)q=parseInt(a.scrollTo);else if("scrollBy"in f)q+=parseInt(a.scrollBy);else if("destroy"in f){c.remove();m.remove();b.unwrap();return}n(q,!1,!0)}}else if(!(e.isPlainObject(f)&&"destroy"in f)){a.height="auto"==a.height?b.parent().height():a.height;q=e("").addClass(a.wrapperClass).css({position:"relative",overflow:"hidden",width:a.width,height:a.height});b.css({overflow:"hidden",
width:a.width,height:a.height});var m=e("").addClass(a.railClass).css({width:a.size,height:"100%",position:"absolute",top:0,display:a.alwaysVisible&&a.railVisible?"block":"none","border-radius":a.railBorderRadius,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=e("").addClass(a.barClass).css({background:a.color,width:a.size,position:"absolute",top:0,opacity:a.opacity,display:a.alwaysVisible?"block":"none","border-radius":a.borderRadius,BorderRadius:a.borderRadius,MozBorderRadius:a.borderRadius,
WebkitBorderRadius:a.borderRadius,zIndex:99}),h="right"==a.position?{right:a.distance}:{left:a.distance};m.css(h);c.css(h);b.wrap(q);b.parent().append(c);b.parent().append(m);a.railDraggable&&c.bind("mousedown",function(a){var b=e(document);z=!0;t=parseFloat(c.css("top"));pageY=a.pageY;b.bind("mousemove.slimscroll",function(a){currTop=t+a.pageY-pageY;c.css("top",currTop);n(0,c.position().top,!1)});b.bind("mouseup.slimscroll",function(a){z=!1;p();b.unbind(".slimscroll")});return!1}).bind("selectstart.slimscroll",
function(a){a.stopPropagation();a.preventDefault();return!1});m.hover(function(){w()},function(){p()});c.hover(function(){y=!0},function(){y=!1});b.hover(function(){r=!0;w();p()},function(){r=!1;p()});b.bind("touchstart",function(a,b){a.originalEvent.touches.length&&(A=a.originalEvent.touches[0].pageY)});b.bind("touchmove",function(b){k||b.originalEvent.preventDefault();b.originalEvent.touches.length&&(n((A-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0),A=b.originalEvent.touches[0].pageY)});
x();"bottom"===a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),n(0,!0)):"top"!==a.start&&(n(e(a.start).position().top,null,!0),a.alwaysVisible||c.hide());window.addEventListener?(this.addEventListener("DOMMouseScroll",v,!1),this.addEventListener("mousewheel",v,!1)):document.attachEvent("onmousewheel",v)}});return this}});e.fn.extend({slimscroll:e.fn.slimScroll})})(jQuery);
// source --> http://www.cnkugan.ru/wp-content/plugins/chatbot/js/jquery.cookie.js?ver=3.7.4
/*!
* jQuery Cookie Plugin v1.4.1
* https://github.com/carhartl/jquery-cookie
*
* Copyright 2006, 2014 Klaus Hartl
* Released under the MIT license
*/
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD (Register as an anonymous module)
define(['jquery'], factory);
} else if (typeof exports === 'object') {
// Node/CommonJS
module.exports = factory(require('jquery'));
} else {
// Browser globals
factory(jQuery);
}
}(function ($) {
var pluses = /\+/g;
function encode(s) {
return config.raw ? s : encodeURIComponent(s);
}
function decode(s) {
return config.raw ? s : decodeURIComponent(s);
}
function stringifyCookieValue(value) {
return encode(config.json ? JSON.stringify(value) : String(value));
}
function parseCookieValue(s) {
if (s.indexOf('"') === 0) {
// This is a quoted cookie as according to RFC2068, unescape...
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
}
try {
// Replace server-side written pluses with spaces.
// If we can't decode the cookie, ignore it, it's unusable.
// If we can't parse the cookie, ignore it, it's unusable.
s = decodeURIComponent(s.replace(pluses, ' '));
return config.json ? JSON.parse(s) : s;
} catch(e) {}
}
function read(s, converter) {
var value = config.raw ? s : parseCookieValue(s);
return $.isFunction(converter) ? converter(value) : value;
}
var config = $.cookie = function (key, value, options) {
// Write
if (arguments.length > 1 && !$.isFunction(value)) {
options = $.extend({}, config.defaults, options);
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setMilliseconds(t.getMilliseconds() + days * 864e+5);
}
return (document.cookie = [
encode(key), '=', stringifyCookieValue(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// Read
var result = key ? undefined : {},
// To prevent the for loop in the first place assign an empty array
// in case there are no cookies at all. Also prevents odd result when
// calling $.cookie().
cookies = document.cookie ? document.cookie.split('; ') : [],
i = 0,
l = cookies.length;
for (; i < l; i++) {
var parts = cookies[i].split('='),
name = decode(parts.shift()),
cookie = parts.join('=');
if (key === name) {
// If second argument (value) is a function it's a converter...
result = read(cookie, value);
break;
}
// Prevent storing a cookie that we couldn't decode.
if (!key && (cookie = read(cookie)) !== undefined) {
result[name] = cookie;
}
}
return result;
};
config.defaults = {};
$.removeCookie = function (key, options) {
// Must not alter options, thus extending a fresh object...
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
return !$.cookie(key);
};
}));
// source --> http://www.cnkugan.ru/wp-content/plugins/chatbot/js/jquery.magnific-popup.min.js?ver=3.7.4
/*! Magnific Popup - v1.1.0 - 2016-02-20
* http://dimsemenov.com/plugins/magnific-popup/
* Copyright (c) 2016 Dmitry Semenov; */
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isLowIE=b.isIE8=document.all&&!document.addEventListener,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("
");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'The content could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'
',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery";return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()});
// source --> http://www.cnkugan.ru/wp-content/plugins/chatbot/js/qcld-wp-chatbot-plugin.js?ver=3.7.4
/*
* Project: wpwBot jQuery Plugin
* Description: wpwBot AI based Chatting functionality are handled .
* Author: QuantumCloud
* Version: 1.0
*/
(function($) {
/*
* Global variable as object will beused to handle
* wpwbot chatting initialize, tree change transfer,
* changing tree steps and cookies etc.
*/
var globalwpw={
initialize:0,
settings:{},
wildCard:0,
wildcards:'',
wildcardsHelp:['start','support','reset', 'search', 'email'],
productStep:'asking',
orderStep:'welcome',
supportStep:'welcome',
formStep: 'welcome',
formfieldid:'',
formid:'',
formentry:0,
hasNameCookie:$.cookie("shopper"),
shopperUserName:'',
shopperEmail:'',
shopperMessage:'',
emptymsghandler:0,
repeatQueryEmpty:'',
wpwIsWorking:0,
ai_step:0,
df_status_lock:0,
counter:0
};
/*
* wpwbot welcome section coverd
* greeting for new and already visited shopper
* based the memory after asking thier name.
*/
var wpwWelcome={
greeting:function () {
//Very begining greeting.
if(globalwpw.settings.obj.re_target_handler==0){
var botJoinMsg=""+globalwpw.settings.obj.agent+" "+wpwKits.randomMsg(globalwpw.settings.obj.agent_join);
wpwMsg.single(botJoinMsg);
}
//Showing greeting for name in cookie or fresh shopper.
setTimeout(function(){
var firstMsg=wpwKits.randomMsg(globalwpw.settings.obj.hi_there)+' '+wpwKits.randomMsg(globalwpw.settings.obj.welcome)+" "+globalwpw.settings.obj.host+"! ";
var secondMsg=wpwKits.randomMsg(globalwpw.settings.obj.asking_name);
wpwMsg.double(firstMsg,secondMsg);
}, globalwpw.settings.preLoadingTime*2);
}
};
//Append the message to the message container based on the requirement.
var wpwMsg={
single:function (msg) {
globalwpw.wpwIsWorking=1;
$(globalwpw.settings.messageContainer).append(wpwKits.botPreloader());
//Scroll to the last message
wpwKits.scrollTo();
setTimeout(function(){
$(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').html(msg);
//If has youtube link then show video
wpwKits.videohandler();
//scroll to the last message
wpwKits.scrollTo();
//Enable the editor
wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg));
//keeping in history
wpwKits.wpwHistorySave();
}, globalwpw.settings.preLoadingTime);
},
single_nobg:function (msg) {
globalwpw.wpwIsWorking=1;
$(globalwpw.settings.messageContainer).append(wpwKits.botPreloader());
//Scroll to the last message
wpwKits.scrollTo();
setTimeout(function(){
$(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').parent().addClass('wp-chatbot-msg-flat').html(msg);
//scroll to the last message
wpwKits.scrollTo();
//Enable the editor
wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg));
//Keeping the chat history in localStorage
wpwKits.wpwHistorySave();
// disabled editor
// wpwKits.disableEditor('Please choose an option.');
}, globalwpw.settings.preLoadingTime);
},
double:function (fristMsg,secondMsg) {
globalwpw.wpwIsWorking=1;
$(globalwpw.settings.messageContainer).append(wpwKits.botPreloader());
//Scroll to the last message
wpwKits.scrollTo();
setTimeout(function(){
$(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').html(fristMsg);
//Second Message with interval
$(globalwpw.settings.messageContainer).append(wpwKits.botPreloader());
//Scroll to the last message
wpwKits.scrollTo();
setTimeout(function(){
$(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').html(secondMsg);
//Scroll to the last message
wpwKits.scrollTo();
//Enable the editor
wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg));
//keeping in history
wpwKits.wpwHistorySave();
}, globalwpw.settings.preLoadingTime*2);
}, globalwpw.settings.preLoadingTime);
},
double_nobg:function (fristMsg,secondMsg) {
globalwpw.wpwIsWorking=1;
$(globalwpw.settings.messageContainer).append(wpwKits.botPreloader());
//Scroll to the last message
wpwKits.scrollTo();
setTimeout(function(){
$(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').html(fristMsg);
//Second Message with interval
$(globalwpw.settings.messageContainer).append(wpwKits.botPreloader());
//Scroll to the last message
wpwKits.scrollTo();
setTimeout(function(){
if(globalwpw.wildCard>0){
$(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').parent().addClass('wp-chatbot-msg-flat').html(secondMsg).append('' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '');
}else{
$(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').parent().addClass('wp-chatbot-msg-flat').html(secondMsg);
}
//scroll to the last message
wpwKits.scrollTo();
//Enable the editor
if(globalwpw.wildCard==1 && globalwpw.supportStep=='welcome'){
//wpwKits.disableEditor('Support');
wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg));
}else{
wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg));
}
//keeping in history
wpwKits.wpwHistorySave();
// disabled editor
// wpwKits.disableEditor('Please choose an option.');
}, globalwpw.settings.preLoadingTime*2);
}, globalwpw.settings.preLoadingTime);
},
triple_nobg:function (fristMsg,secondMsg,thirdMsg) {
globalwpw.wpwIsWorking=1;
$(globalwpw.settings.messageContainer).append(wpwKits.botPreloader());
//Scroll to the last message
wpwKits.scrollTo();
setTimeout(function(){
$(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').html(fristMsg);
wpwKits.videohandler();
//Second Message with interval
if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){
$(globalwpw.settings.messageContainer).append(wpwKits.botPreloader());
}
//Scroll to the last message
wpwKits.scrollTo();
setTimeout(function(){
$(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').html(secondMsg);
wpwKits.videohandler();
if($(globalwpw.settings.messageLastChild+' .wp-chatbot-comment-loader').length==0){
$(globalwpw.settings.messageContainer).append(wpwKits.botPreloader());
}
//Scroll to the last message
wpwKits.scrollTo();
setTimeout(function(){
if(globalwpw.wildCard>0){
$(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').parent().addClass('wp-chatbot-msg-flat').html(thirdMsg).append('' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '');
}else{
$(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').parent().addClass('wp-chatbot-msg-flat').html(thirdMsg);
}
//scroll to the last message
wpwKits.scrollTo();
wpwKits.videohandler();
//Enable the editor
if(globalwpw.wildCard==1 && globalwpw.supportStep=='welcome'){
//wpwKits.disableEditor('Support');
}else{
wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg));
}
//keeping in history
wpwKits.wpwHistorySave();
// disabled editor
// wpwKits.disableEditor('Please choose an option.');
}, globalwpw.settings.preLoadingTime);
}, globalwpw.settings.preLoadingTime);
}, globalwpw.settings.preLoadingTime);
},
shopper:function (shopperMsg) {
$(globalwpw.settings.messageContainer).append(wpwKits.shopperMsgDom(shopperMsg));
//scroll to the last message
wpwKits.scrollTo();
//keeping in history
wpwKits.wpwHistorySave();
},
shopper_choice:function (shopperChoice) {
$(globalwpw.settings.messageLastChild).fadeOut(globalwpw.settings.preLoadingTime);
$(globalwpw.settings.messageContainer).append(wpwKits.shopperMsgDom(shopperChoice));
//scroll to the last message
wpwKits.scrollTo();
//keeping in history
wpwKits.wpwHistorySave();
}
};
//Every tiny tools are implemented in wpwKits as object literal.
var wpwKits={
enableEditor:function(placeHolder){
if(globalwpw.settings.editor_handler==0){
if($(window).width()>380){
$("#wp-chatbot-editor").attr('disabled',false).focus();
}else{
$("#wp-chatbot-editor").attr('disabled',false)
}
$("#wp-chatbot-editor").attr('placeholder',placeHolder);
$("#wp-chatbot-send-message").attr('disabled',false);
}
},
disableEditor:function (placeHolder) {
if(globalwpw.settings.editor_handler==0){
$("#wp-chatbot-editor").attr('placeholder',placeHolder);
$("#wp-chatbot-editor").attr('disabled',true);
$("#wp-chatbot-send-message").attr('disabled',true);
}
//Remove extra pre loader.
if($('.wp-chatbot-messages-container').find('.wp-chatbot-comment-loader').length>0){
$('.wp-chatbot-messages-container').find('.wp-chatbot-comment-loader').parent().parent().hide();
}
},
wpwHistorySave:function () {
globalwpw.wpwIsWorking=0;
var wpwHistory= $(globalwpw.settings.messageWrapper).html();
localStorage.setItem("wpwHitory", wpwHistory);
//},globalwpw.settings.wildcardsShowTime);
},
randomMsg:function(arrMsg){
var index=Math.floor(Math.random() * arrMsg.length);
return arrMsg[index];
},
ajax:function (data) {
return jQuery.post(globalwpw.settings.obj.ajax_url, data);
},
dailogAIOAction:function(text){
if(globalwpw.settings.obj.df_api_version=='v1'){
return jQuery.ajax({
type : "POST",
url :"https://api.dialogflow.com/v1/query?v=20170712",
contentType : "application/json; charset=utf-8",
dataType : "json",
headers : {
"Authorization" : "Bearer "+globalwpw.settings.obj.ai_df_token
},
data: JSON.stringify( {
query: text,
lang : globalwpw.settings.obj.df_agent_lan,
sessionId: localStorage.getItem('botsessionid')?localStorage.getItem('botsessionid'):'wpwBot_df_2018071'
} )
});
}else{
return jQuery.post(globalwpw.settings.obj.ajax_url, {
'action': 'qcld_wp_df_api_call',
'dfquery': text,
'sessionid': localStorage.getItem('botsessionid')?localStorage.getItem('botsessionid'):'wpwBot_df_2018071'
});
}
},
responseIsOk(response){
if(globalwpw.settings.obj.df_api_version=='v1'){
if(response.status.code==200 || response.status.code==206){
return true;
}else{
return false;
}
}else{
if(typeof response.responseId !== "undefined"){
return true;
}else{
return false;
}
}
},
getIntentName(response){
if(globalwpw.settings.obj.df_api_version=='v1'){
return response.result.metadata.intentName;
}else{
return response.queryResult.intent.displayName;
}
},
getParameters(response){
if(globalwpw.settings.obj.df_api_version=='v1'){
return response.result.parameters;
}else{
return response.queryResult.parameters;
}
},
getFulfillmentText(response){
if(globalwpw.settings.obj.df_api_version=='v1'){
return response.result.fulfillment.messages;
}else{
return response.queryResult.fulfillmentText;
}
},
getFulfillmentSpeech(response){
if(globalwpw.settings.obj.df_api_version=='v1'){
return response.result.fulfillment.speech;
}else{
return response.queryResult.fulfillmentText;
}
},
getScore(response){
if(globalwpw.settings.obj.df_api_version=='v1'){
return response.result.score;
}else{
return response.queryResult.intentDetectionConfidence;
}
},
getAction(response){
if(globalwpw.settings.obj.df_api_version=='v1'){
return response.result.action;
}else{
if(typeof response.queryResult.action !=="undefined"){
return response.queryResult.action;
}else{
return '';
}
}
},
queryText(response){
if(globalwpw.settings.obj.df_api_version=='v1'){
return response.result.resolvedQuery;
}else{
return response.queryResult.queryText;
}
},
isActionComplete(response){
if(globalwpw.settings.obj.df_api_version=='v1'){
if(!response.result.actionIncomplete){
return true;
}else{
return false;
}
}else{
return response.queryResult.allRequiredParamsPresent;
}
},
isConversationEnd(response){
if(globalwpw.settings.obj.df_api_version=='v1'){
if(typeof(response.result.metadata.endConversation)!=="undefined" && response.result.metadata.endConversation){
return true;
}else{
return false;
}
}else{
if(typeof response.queryResult.diagnosticInfo !=="undefined"){
if(typeof response.queryResult.diagnosticInfo.end_conversation !== "undefined"){
return response.queryResult.diagnosticInfo.end_conversation;
}else{
return false;
}
}else{
return false;
}
}
},
sugestCat:function () {
var productSuggest=wpwKits.randomMsg(globalwpw.settings.obj.product_suggest);
var data={'action':'qcld_wb_chatbot_category'};
var result=wpwKits.ajax(data);
result.done(function( response ) {
wpwMsg.double_nobg(productSuggest,response);
if(globalwpw.settings.obj.ai_df_enable==1 && globalwpw.df_status_lock==0){
globalwpw.wildCard=0;
globalwpw.ai_step=1;
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("aiStep", globalwpw.ai_step);
}
});
},
subCats:function (parentId) {
var subCatMsg=wpwKits.randomMsg(globalwpw.settings.obj.product_suggest);
var data={'action':'qcld_wb_chatbot_sub_category','parent_id':parentId};
var result=wpwKits.ajax(data);
result.done(function( response ) {
wpwMsg.double_nobg(subCatMsg,response);
});
},
suggestEmail:function (emailFor) {
var sugMsg=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again);
var sugOptions= /*emailFor+*/globalwpw.wildcards;
wpwMsg.double_nobg(sugMsg,sugOptions);
},
videohandler:function () {
$(globalwpw.settings.messageLastChild+' .wp-chatbot-paragraph').html(function(i, html) {
return html.replace(/(?:https:\/\/)?(?:www\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=)?(.+)/g, '');
});
},
scrollTo:function () {
$(globalwpw.settings.botContainer).animate({ scrollTop: $(globalwpw.settings.messageWrapper).prop("scrollHeight")}, 'slow').parent().find('.slimScrollBar').css({'top':$(globalwpw.settings.botContainer).height()+'px'});;
},
botPreloader:function () {
var msgContent='
' +
'
'+
''+
'
'+
'
'+ globalwpw.settings.obj.agent+'
'
+'
';
return msgContent;
},
shopperMsgDom:function (msg) {
if(globalwpw.hasNameCookie){
var shopper=globalwpw.hasNameCookie;
} else{
var shopper=globalwpw.settings.obj.shopper_demo_name;
}
//var date = new Date();
date = new Date();
var msgContent='
' +
'
'+
''+
'
'+
'
'+shopper +'
'
+'
'+msg+'
';
return msgContent;
},
showCart:function () {
var data = {'action':'qcld_wb_chatbot_show_cart'}
this.ajax(data).done(function (response) {
//if cart show on message board
if($('#wp-chatbot-shortcode-template-container').length == 0) {
$(globalwpw.settings.messageWrapper).html(response.html);
$('#wp-chatbot-cart-numbers').html(response.items);
$('.wp-chatbot-ball-cart-items').html(response.items);
wpwKits.disableEditor(wpwKits.randomMsg(globalwpw.settings.obj.shopping_cart));
}else{ //Cart show on shortcode
$('.wp-chatbot-cart-shortcode-container').html(response.html);
}
//Add scroll to the cart shortcode
if($('#wp-chatbot-shortcode-template-container').length > 0 && $('.chatbot-shortcode-template-02').length==0) {
$('.wp-chatbot-cart-body').slimScroll({height: '200px', start: 'bottom'});
}
});
},
toTitlecase:function (msg) {
return msg.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
},
filterStopWords:function(msg){
var spcialStopWords=",;,/,\\,[,],{,},(,),&,*,.,+ ,?,^,$,=,!,<,>,|,:,-";
var userMsg="";
//Removing Special Characts from last position.
var msgLastChar=msg.slice(-1);
if(spcialStopWords.indexOf(msgLastChar) >= 0 ){
userMsg=msg.slice(0, -1);
}else{
userMsg=msg;
}
var stopWords=globalwpw.settings.obj.stop_words+spcialStopWords;
var stopWordsArr=stopWords.split(',');
var msgArr=userMsg.split(' ');
var filtermsgArr = msgArr.filter(function myCallBack(el){
return stopWordsArr.indexOf(el.toLowerCase()) < 0;
});
filterMsg=filtermsgArr.join(' ');
return filterMsg;
},
htmlTagsScape:function(userString) {
var tagsToReplace = {
'&': '&',
'<': '<',
'>': '>'
};
return userString.replace(/[&<>]/g, function(tag) {
return tagsToReplace[tag] || tag;
});
}
}
/*
* wpwbot Trees are basically product,order and support
* product tree : asking,showing & shopping part will be covered.
* order tree : showing order list and email to admin option.
* support tree : List of support query-answer including text & video and email to admin option.
*/
var wpwTree={
greeting:function (msg) {
/**
* When Enable DialogFlow then or else
*/
if(globalwpw.settings.obj.ai_df_enable==1 && globalwpw.df_status_lock==0){
//When intialize 1 and don't have cookies then keep the name of shooper in in cookie
if(globalwpw.initialize==1 && !localStorage.getItem('shopper') && globalwpw.wildCard==0 && globalwpw.ai_step==0 ){
msg=wpwKits.toTitlecase(wpwKits.filterStopWords(msg));
$.cookie("shopper", msg, { expires : 365 });
localStorage.setItem('shopper',msg);
globalwpw.hasNameCookie=msg;
//Greeting with name and suggesting the wildcard.
var NameGreeting=wpwKits.randomMsg(globalwpw.settings.obj.i_am) +" "+globalwpw.settings.obj.agent+"! "+wpwKits.randomMsg(globalwpw.settings.obj.name_greeting)+", "+msg+"!";
var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg);
//After completing two steps messaging showing wildcards.
wpwMsg.triple_nobg( NameGreeting,serviceOffer, globalwpw.wildcards )
globalwpw.ai_step=1;
globalwpw.wildCard=0;
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("aiStep", globalwpw.ai_step);
}
//When returning shopper then greeting with name and wildcards.
else if(localStorage.getItem('shopper') && globalwpw.wildCard==0 && globalwpw.ai_step==0){
//After asking service show the wildcards.
var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg);
globalwpw.ai_step=1;
globalwpw.wildCard=0;
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("aiStep", globalwpw.ai_step);
if(globalwpw.settings.obj.show_menu_after_greetings==1){
wpwMsg.double_nobg(serviceOffer, globalwpw.wildcards);
}else{
wpwMsg.single(serviceOffer);
}
}
//When user asking needs then DialogFlow will given intent after NLP steps.
else if(globalwpw.wildCard==0 && globalwpw.ai_step==1){
var dfReturns=wpwKits.dailogAIOAction(msg);
dfReturns.done(function( response ) {
if(globalwpw.settings.obj.df_api_version=='v2'){
response = $.parseJSON(response);
}
if(wpwKits.responseIsOk(response)){
var userIntent=wpwKits.getIntentName(response);
if(userIntent=='start'){
globalwpw.wildCard=0;
var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg);
wpwMsg.double_nobg(serviceOffer,globalwpw.wildcards);
}else if(userIntent=='welcome'){
var messages = wpwKits.getFulfillmentSpeech(response);
setTimeout(function () {
wpwMsg.single(messages);
},globalwpw.settings.preLoadingTime);
}else if(userIntent=='help'){
$(globalwpw.settings.messageWrapper).html(localStorage.getItem("wpwHitory"));
//Showing help message
setTimeout(function () {
wpwKits.scrollTo();
var helpWelcome = wpwKits.randomMsg(globalwpw.settings.obj.help_welcome);
var helpMsg = wpwKits.randomMsg(globalwpw.settings.obj.help_msg);
wpwMsg.double(helpWelcome,helpMsg);
//dialogflow
if(globalwpw.settings.obj.ai_df_enable==1 && globalwpw.df_status_lock==0){
globalwpw.wildCard=0;
globalwpw.ai_step=1;
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("aiStep", globalwpw.ai_step);
}
},globalwpw.settings.preLoadingTime);
}else if(userIntent=='reset'){
var restWarning=globalwpw.settings.obj.reset;
var confirmBtn=''+globalwpw.settings.obj.yes+' '+globalwpw.settings.obj.or+' '+globalwpw.settings.obj.no+'';
wpwMsg.double_nobg(restWarning,confirmBtn);
}else if(userIntent=='phone'){
if(typeof(globalwpw.hasNameCookie)=='undefined'|| globalwpw.hasNameCookie==''){
var shopperName= globalwpw.settings.obj.shopper_demo_name;
}else{
var shopperName=globalwpw.hasNameCookie;
}
var askEmail='Hello '+shopperName+'! '+ wpwKits.randomMsg(globalwpw.settings.obj.asking_phone);
wpwMsg.single(askEmail);
//Now updating the support part as .
globalwpw.supportStep='phone';
globalwpw.wildCard=1;
//keeping value in localstorage
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("supportStep", globalwpw.supportStep);
}else if(userIntent=='email'){
if(typeof(globalwpw.hasNameCookie)=='undefined'|| globalwpw.hasNameCookie==''){
var shopperName= globalwpw.settings.obj.shopper_demo_name;
}else{
var shopperName=globalwpw.hasNameCookie;
}
var askEmail='Hello '+shopperName+'! '+ wpwKits.randomMsg(globalwpw.settings.obj.asking_email);
wpwMsg.single(askEmail);
//Now updating the support part as .
globalwpw.supportStep='email';
globalwpw.wildCard=1;
//keeping value in localstorage
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("supportStep", globalwpw.supportStep);
}else if(userIntent=='faq'){
globalwpw.wildCard=1;
globalwpw.supportStep='welcome';
wpwAction.bot('from wildcard support');
//keeping value in localstorage
/*localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("supportStep", globalwpw.supportStep);*/
}else if(userIntent=='Default Fallback Intent'){
var data = {'action':'wpbo_search_response','name':globalwpw.hasNameCookie,'keyword':msg};
wpwKits.ajax(data).done(function (respond) {
var json=$.parseJSON(respond);
if(json.status=='success'){
if(typeof(json.category)!=="undefined" && json.category){
var question='';
$.each(json.data, function (i, obj) {
question += ''+ obj.query +'';
});
wpwMsg.single_nobg(question);
}else if(json.multiple){
var question='';
$.each(json.data, function (i, obj) {
question += ''+ obj.query +'';
});
wpwMsg.double_nobg(wpwKits.randomMsg(globalwpw.settings.obj.did_you_mean),question);
}else{
wpwMsg.single(json.data[0].response);
setTimeout(function(){
wpwMsg.single_nobg('' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '');
},globalwpw.settings.preLoadingTime*2)
}
}else{
msg = wpwKits.filterStopWords(msg);
if(globalwpw.counter == 2 ){
wpwTree.df_reply(response);
setTimeout(function(){
var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again);
wpwMsg.double_nobg(serviceOffer,globalwpw.wildcards);
},globalwpw.settings.preLoadingTime)
globalwpw.counter = 0;
}else{
globalwpw.counter++;
console.log(response);
wpwTree.df_reply(response);
}
}
})
}else if(wpwKits.getScore(response)!=0){ // checking is reponsing from dialogflow.
var sTalkAction=wpwKits.getAction(response);
if(sTalkAction!='' && sTalkAction.indexOf('smalltalk') != -1 ){
var sMgs=wpwKits.getFulfillmentText(response);
wpwMsg.single(sMgs);
}else{
var messages = wpwKits.getFulfillmentText(response);
wpwTree.df_reply(response);
}
}else{
var dfDefaultMsg=globalwpw.settings.obj.df_defualt_reply;
wpwMsg.double_nobg(dfDefaultMsg,globalwpw.wildcards);
}
}else{
//if bad request or limit cross then
globalwpw.df_status_lock=0;
var dfDefaultMsg=globalwpw.settings.obj.df_defualt_reply;
wpwMsg.double_nobg(dfDefaultMsg,globalwpw.wildcards);
}
}).fail(function (error) {
var dfDefaultMsg=globalwpw.settings.obj.df_defualt_reply;
wpwMsg.double_nobg(dfDefaultMsg,globalwpw.wildcards);
});
}
}else{
//When intialize 1 and don't have cookies then keep the name of shooper in in cookie
if(globalwpw.initialize==1 && !localStorage.getItem('shopper') && globalwpw.wildCard==0){
msg=wpwKits.toTitlecase(wpwKits.filterStopWords(msg));
$.cookie("shopper", msg, { expires : 365 });
localStorage.setItem('shopper',msg);
globalwpw.hasNameCookie=msg;
//Greeting with name and suggesting the wildcard.
var NameGreeting=wpwKits.randomMsg(globalwpw.settings.obj.i_am) +" "+globalwpw.settings.obj.agent+"! "+wpwKits.randomMsg(globalwpw.settings.obj.name_greeting)+", "+msg+"!";
var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg);
//After completing two steps messaging showing wildcards.
wpwMsg.triple_nobg( NameGreeting,serviceOffer, globalwpw.wildcards )
}
//When returning shopper then greeting with name and wildcards.
else if(localStorage.getItem('shopper') && globalwpw.wildCard==0){
//After asking service show the wildcards.
var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg);
wpwMsg.double_nobg(serviceOffer,globalwpw.wildcards);
}
}
},
df_multi_handle:function(array){
if(array.length>0){
setTimeout(function(){
wpwMsg.single(array[0]);
array.splice(0, 1);
setTimeout(function(){
wpwTree.df_multi_handle(array);
}, globalwpw.settings.preLoadingTime)
}, globalwpw.settings.preLoadingTime)
}
},
df_reply:function(response){
//checking for facebook platform
var i = 0;
var html = '';
var responses = [];
if(globalwpw.settings.obj.df_api_version=='v1'){
var messages = response.result.fulfillment.messages;
var action = response.result.actionIncomplete;
jQuery.each( messages, function( key, message ) {
html = '';
i +=1;
if(message.type==2){
html += "
" + message.title + "
";
var index = 0;
for (index; index"+ message.replies[index] +"";
}
}
//check for default reply
else if(message.type==0 && message.speech!=''){
html += message.speech;
}else if(message.type==1){
html +='';
}else if(message.type=='simple_response'){
html += message.textToSpeech;
}
if(html!=''){
responses.push(html);
}
})
}else{
var messages = response.queryResult.fulfillmentMessages;
var actioncomplete = response.queryResult.allRequiredParamsPresent;
jQuery.each( messages, function( key, message ) {
html = '';
i +=1;
//handeling quickreplies
if(typeof message.quickReplies !=="undefined"){
if(typeof message.quickReplies.title !=="undefined"){
html += "
" + message.quickReplies.title + "
";
}
if(typeof message.quickReplies.quickReplies !=="undefined" ){
var index = 0;
for (index; index"+ message.quickReplies.quickReplies[index] +"";
}
}
}
//handleing default response
else if(typeof message.text !=="undefined"){
if(typeof message.text.text !=="undefined" && message.text.text.length>0){
html += message.text.text[0];
}
}
if(html!=''){
responses.push(html);
}
})
}
wpwTree.df_multi_handle(responses);
},
support:function (msg) {
if(globalwpw.wildCard==1 && globalwpw.supportStep=='welcome'){
var welcomeMsg= wpwKits.randomMsg(globalwpw.settings.obj.support_welcome);
var orPhoneSuggest = '';
if(globalwpw.settings.obj.support_query.length>0){
var supportsItems = '';
var messenger = '';
if(globalwpw.settings.obj.enable_messenger==1) {
messenger += ''+wpwKits.randomMsg(globalwpw.settings.obj.messenger_label)+'';
}
if(globalwpw.settings.obj.enable_whats==1) {
messenger += ''+wpwKits.randomMsg(globalwpw.settings.obj.whats_label)+'';
}
if(globalwpw.settings.obj.disable_feedback=='') {
messenger+= ''+wpwKits.randomMsg(globalwpw.settings.obj.feedback_label)+'';
}
$.each(globalwpw.settings.obj.support_query, function (i, obj) {
supportsItems += '' + obj + '';
});
var orEmailSuggest = '' + wpwKits.randomMsg(globalwpw.settings.obj.support_email) + '';
if(globalwpw.settings.obj.call_sup=="") {
orPhoneSuggest = '' + wpwKits.randomMsg(globalwpw.settings.obj.support_phone) + '';
}
var queryOrEmail=supportsItems/*+orEmailSuggest+orPhoneSuggest+messenger*/;
}else {
if(globalwpw.settings.obj.call_sup=="") {
orPhoneSuggest = '' + wpwKits.randomMsg(globalwpw.settings.obj.support_phone) + '';
}
var queryOrEmail='' + wpwKits.randomMsg(globalwpw.settings.obj.support_email) + ''+orPhoneSuggest;
}
wpwMsg.double_nobg(welcomeMsg,queryOrEmail);
} else if(globalwpw.wildCard==1 && globalwpw.supportStep=='email'){
globalwpw.shopperEmail=msg;
var validate = "";
var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
if( re.test(globalwpw.shopperEmail)!=true){
validate = validate+wpwKits.randomMsg(globalwpw.settings.obj.invalid_email) ;
}
if(validate == ""){
var askingMsg=wpwKits.randomMsg(globalwpw.settings.obj.asking_msg);
wpwMsg.single(askingMsg);
globalwpw.supportStep='message';
//keeping value in localstorage
localStorage.setItem("supportStep", globalwpw.supportStep);
}else{
wpwMsg.single(validate);
globalwpw.supportStep='email';
//keeping value in localstorage
localStorage.setItem("supportStep", globalwpw.supportStep);
}
}else if(globalwpw.wildCard==1 && globalwpw.supportStep=='message'){
var data = {'action':'qcld_wb_chatbot_support_email','name':globalwpw.hasNameCookie,'email':globalwpw.shopperEmail,'message':msg};
wpwKits.ajax(data).done(function (response) {
var json=$.parseJSON(response);
var orPhoneSuggest='';
if(json.status=='success'){
var sucMsg=json.message;
wpwMsg.single(sucMsg);
//Asking email after showing answer.
setTimeout(function(){
if(globalwpw.settings.obj.call_sup=="") {
orPhoneSuggest = '' + wpwKits.randomMsg(globalwpw.settings.obj.support_phone) + '';
}
var orEmailSuggest=''+wpwKits.randomMsg(globalwpw.settings.obj.support_email)+'';
wpwKits.suggestEmail(orEmailSuggest+orPhoneSuggest);
globalwpw.wildCard=0;
},globalwpw.settings.preLoadingTime);
}else{
var failMsg=json.message;
wpwMsg.single(failMsg);
//Asking email after showing answer.
setTimeout(function(){
if(globalwpw.settings.obj.call_sup=="") {
orPhoneSuggest = '' + wpwKits.randomMsg(globalwpw.settings.obj.support_phone) + '';
}
var orEmailSuggest=''+wpwKits.randomMsg(globalwpw.settings.obj.support_email)+'';
wpwKits.suggestEmail(orEmailSuggest+orPhoneSuggest);
globalwpw.wildCard=0;
},globalwpw.settings.preLoadingTime);
}
});
}else if(globalwpw.wildCard==1 && globalwpw.supportStep=='phone'){
var data = {'action':'qcld_wb_chatbot_support_phone','name':globalwpw.hasNameCookie,'phone':msg};
wpwKits.ajax(data).done(function (response) {
var json=$.parseJSON(response);
var orPhoneSuggest='';
if(json.status=='success'){
var sucMsg=json.message;
wpwMsg.single(sucMsg);
//Asking email after showing answer.
setTimeout(function(){
if(globalwpw.settings.obj.call_sup=="") {
orPhoneSuggest = '' + wpwKits.randomMsg(globalwpw.settings.obj.support_phone) + '';
}
var orEmailSuggest=''+wpwKits.randomMsg(globalwpw.settings.obj.support_email)+'';
wpwKits.suggestEmail(orEmailSuggest+orPhoneSuggest);
globalwpw.wildCard=0;
},globalwpw.settings.preLoadingTime);
}else{
var failMsg=json.message;
wpwMsg.single(failMsg);
//Asking email after showing answer.
setTimeout(function(){
if(globalwpw.settings.obj.call_sup=="") {
orPhoneSuggest = '' + wpwKits.randomMsg(globalwpw.settings.obj.support_phone) + '';
}
var orEmailSuggest=''+wpwKits.randomMsg(globalwpw.settings.obj.support_email)+'';
wpwKits.suggestEmail(orEmailSuggest+orPhoneSuggest);
globalwpw.wildCard=0;
},globalwpw.settings.preLoadingTime);
}
});
}else if(globalwpw.wildCard==1 && globalwpw.supportStep=='search'){
msg = wpwKits.filterStopWords(msg);
var data = {'action':'wpbo_search_site','name':globalwpw.hasNameCookie,'keyword':msg};
wpwKits.ajax(data).done(function (response) {
var json=$.parseJSON(response);
if(json.status=='success'){
wpwMsg.single(json.html+'' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '');
}else{
wpwMsg.single(json.html);
setTimeout(function(){
var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again);
wpwMsg.double_nobg(serviceOffer,globalwpw.wildcards);
},globalwpw.settings.preLoadingTime)
}
});
}
},
formbuilder:function(msg){
if(globalwpw.wildCard==7 && globalwpw.formStep=='welcome'){
var data = {'action':'wpbot_get_form','formid':msg};
wpwKits.ajax(data).done(function (response) {
if(response!=''){
var json=$.parseJSON(response);
globalwpw.prevform = json.ID;
globalwpw.formfieldid = json.ID;
localStorage.setItem("formfieldid", globalwpw.formfieldid);
globalwpw.formStep='field';
localStorage.setItem("formStep", globalwpw.formStep);
globalwpw.formid=msg;
localStorage.setItem("formid", globalwpw.formid);
localStorage.setItem("wildCard", globalwpw.wildCard);
var label = json.label;
if(json.type=='dropdown'){
var html = '';
jQuery.each(json.config.option, function(key, value){
html += ''+value.label+'';
})
wpwMsg.double(label, html);
}else if(json.type=='checkbox'){
var html = '';
jQuery.each(json.config.option, function(key, value){
html += ''+value.label+' ';
})
wpwMsg.double(label, html);
}else if(json.type=='html'){
wpwMsg.single(json.config.default);
globalwpw.formfieldid = json.ID;
localStorage.setItem("formfieldid", globalwpw.formfieldid);
globalwpw.formentry = json.entry;
localStorage.setItem("formentry", globalwpw.formentry);
setTimeout(function(){
wpwTree.formbuilder();
}, globalwpw.settings.preLoadingTime)
}else{
wpwMsg.single(label);
}
}
})
}else if(globalwpw.wildCard==7 && globalwpw.formStep=='field'){
var data = {'action':'wpbot_capture_form_value','formid':globalwpw.formid, 'fieldid': globalwpw.formfieldid, 'answer': msg, 'entry':globalwpw.formentry, 'name': globalwpw.hasNameCookie};
wpwKits.ajax(data).done(function (response) {
var json=$.parseJSON(response);
console.log(json);
if(json.status=='incomplete'){
console.log('testing');
if( json.type !='html' ){
console.log('ghello');
if($('.chatbot_intent_reload').length > 0){
$('.chatbot_intent_reload').remove();
}
$('#wp-chatbot-editor-container').append('');
globalwpw.prevform = globalwpw.formfieldid;
}
globalwpw.formStep='field';
localStorage.setItem("formStep", globalwpw.formStep);
globalwpw.formfieldid = json.ID;
localStorage.setItem("formfieldid", globalwpw.formfieldid);
globalwpw.formentry = json.entry;
localStorage.setItem("formentry", globalwpw.formentry);
var label = json.label;
if(json.type=='dropdown'){
var html = '';
jQuery.each(json.config.option, function(key, value){
html += ''+value.label+'';
})
wpwMsg.double(label, html);
}else if(json.type=='html'){
wpwMsg.single(json.config.default);
globalwpw.formfieldid = json.ID;
localStorage.setItem("formfieldid", globalwpw.formfieldid);
globalwpw.formentry = json.entry;
localStorage.setItem("formentry", globalwpw.formentry);
setTimeout(function(){
wpwTree.formbuilder();
}, globalwpw.settings.preLoadingTime)
}else if(json.type=='checkbox'){
var html = '';
jQuery.each(json.config.option, function(key, value){
html += ''+value.label+' ';
})
wpwMsg.double(label, html);
}else{
wpwMsg.single(label);
}
}else{
if($('.chatbot_intent_reload').length > 0){
$('.chatbot_intent_reload').attr('data-step', 'complete');
}
globalwpw.formfieldid = '';
localStorage.setItem("formfieldid", globalwpw.formfieldid);
globalwpw.formStep='welcome';
localStorage.setItem("formStep", globalwpw.formStep);
globalwpw.formid='';
localStorage.setItem("formid", globalwpw.formid);
globalwpw.wildCard = 0;
localStorage.setItem("wildCard", globalwpw.wildCard);
globalwpw.formentry = 0;
localStorage.setItem("formentry", globalwpw.formentry);
var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg);
setTimeout(function(){
wpwMsg.double_nobg(serviceOffer, globalwpw.wildcards);
}, globalwpw.settings.preLoadingTime);
if(jQuery('.chatbot_intent_reload').length>0){
jQuery('.chatbot_intent_reload').remove();
}
}
})
}
}
};
/*
* wpwbot Actions are divided into two part
* shopper will response after initialize message,
* then based on shopper activities shopper will act.
*/
var wpwAction={
bot:function(msg){
//Disable the Editor
wpwKits.disableEditor(globalwpw.settings.obj.agent+' '+wpwKits.randomMsg(globalwpw.settings.obj.is_typing));
msg=msg.toLowerCase();
if(globalwpw.wildcardsHelp.indexOf(msg)>-1){
console.log(globalwpw.wildcardsHelp);
if(msg==globalwpw.settings.obj.sys_key_help.toLowerCase()){
globalwpw.wildCard=0;
var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.wildcard_msg);
wpwMsg.double_nobg(serviceOffer,globalwpw.wildcards);
}
/*
if(msg==globalwpw.settings.obj.sys_key_product.toLowerCase()){
globalwpw.wildCard=1;
globalwpw.productStep='asking';
wpwTree.product(msg);
}
if(msg==globalwpw.settings.obj.sys_key_catalog.toLowerCase()){
globalwpw.wildCard=1;
globalwpw.productStep='search';
wpwKits.sugestCat();
}
if(msg==globalwpw.settings.obj.sys_key_order.toLowerCase()){
globalwpw.wildCard=2;
globalwpw.orderStep='welcome';
wpwTree.order(msg);
}
*/
if(msg==globalwpw.settings.obj.sys_key_support.toLowerCase()){
globalwpw.wildCard=1;
globalwpw.supportStep='welcome';
wpwTree.support(msg);
}
if(msg==globalwpw.settings.obj.sys_key_reset.toLowerCase()){
var restWarning=globalwpw.settings.obj.reset;
var confirmBtn=''+globalwpw.settings.obj.yes+' '+globalwpw.settings.obj.or+' '+globalwpw.settings.obj.no+'';
wpwMsg.double_nobg(restWarning,confirmBtn);
}
if(msg=='email'){
var shopperChoice=$(this).text();
//Then ask email address
if(typeof(globalwpw.hasNameCookie)=='undefined'|| globalwpw.hasNameCookie==''){
var shopperName= globalwpw.settings.obj.shopper_demo_name;
}else{
var shopperName=globalwpw.hasNameCookie;
}
var askEmail='Hello '+shopperName+'! '+ wpwKits.randomMsg(globalwpw.settings.obj.asking_email);
wpwMsg.single(askEmail);
//Now updating the support part as .
globalwpw.supportStep='email';
globalwpw.wildCard=1;
//keeping value in localstorage
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("supportStep", globalwpw.supportStep);
}
}else{
/*
* Greeting part
* bot action
*/
if(globalwpw.wildCard==0){
if(globalwpw.initialize==1 && !localStorage.getItem('shopper') && globalwpw.wildCard==0){
wpwTree.greeting(msg);
}else if(globalwpw.settings.obj.ai_df_enable==1 && globalwpw.df_status_lock==0){
wpwTree.greeting(msg);
}else{
//simple text response wrapper
var data = {'action':'wpbo_search_response','name':globalwpw.hasNameCookie,'keyword':msg};
wpwKits.ajax(data).done(function (respond) {
var json=$.parseJSON(respond);
if(json.status=='success'){
if(typeof(json.category)!=="undefined" && json.category){
var question='';
$.each(json.data, function (i, obj) {
question += ''+ obj.query +'';
});
wpwMsg.single_nobg(question);
}else if(json.multiple){
var question='';
$.each(json.data, function (i, obj) {
question += ''+ obj.query +'';
});
wpwMsg.double_nobg(wpwKits.randomMsg(globalwpw.settings.obj.did_you_mean),question);
}else{
wpwMsg.single(json.data[0].response);
setTimeout(function(){
wpwMsg.single_nobg('' + wpwKits.randomMsg(globalwpw.settings.obj.back_to_start) + '');
},globalwpw.settings.preLoadingTime*2)
}
}else{
wpwTree.greeting(msg);
}
})
}
}
/*
* Product part
* bot action
*/
/*if(globalwpw.wildCard==1){
wpwTree.product(msg);
}*/
/*
* order status part
* bot action
*/
/*if(globalwpw.wildCard==2){
wpwTree.order(msg);
}*/
/*
* support part
* bot action
*/
if(globalwpw.wildCard==1){
wpwTree.support(msg);
}
if(globalwpw.wildCard==7){
wpwTree.formbuilder(msg);
}
}
},
shopper:function (msg) {
wpwMsg.shopper(msg);
if(globalwpw.wildCard==1) {
this.bot(msg);
}else if(globalwpw.settings.obj.ai_df_enable==1 && globalwpw.wildCard==0 && globalwpw.ai_step==1 && globalwpw.df_status_lock==0){
this.bot(msg);
} else{
//Filtering the user given messages by stopwords
var filterMsg=(msg);
//handle empty filterMsg as repeat the message.
if(filterMsg=="") {
//if(globalwpw.emptymsghandler==0){
globalwpw.repeatQueryEmpty=wpwKits.randomMsg(globalwpw.settings.obj.empty_filter_msg);
globalwpw.emptymsghandler++;
//}
wpwMsg.single(globalwpw.repeatQueryEmpty);
setTimeout(function(){
var serviceOffer=wpwKits.randomMsg(globalwpw.settings.obj.support_option_again);
wpwMsg.double_nobg(serviceOffer,globalwpw.wildcards);
},globalwpw.settings.preLoadingTime)
}else {
globalwpw.emptymsghandler=0;
this.bot(filterMsg);
}
}
}
};
/*
* wpwBot Plugin Creation without selector and
* wpwbot and shoppers all activities will be handled.
*/
$.wpwbot = function(options) {
//Using plugins defualts values or overwrite by options.
var settings = $.extend({}, $.wpwbot.defaults, options);
//Updating global settings
globalwpw.settings=settings;
//updating the helpkeywords
globalwpw.wildcardsHelp=[globalwpw.settings.obj.sys_key_help.toLowerCase(),globalwpw.settings.obj.sys_key_product.toLowerCase(),globalwpw.settings.obj.sys_key_catalog.toLowerCase(),globalwpw.settings.obj.sys_key_support.toLowerCase(),globalwpw.settings.obj.sys_key_order.toLowerCase(),globalwpw.settings.obj.sys_key_reset.toLowerCase(),'email']
//updating wildcards
globalwpw.wildcards='';
if(globalwpw.settings.obj.start_menu!=''){
var menu_html = '';
var menu_items = $.parseHTML($.trim(globalwpw.settings.obj.start_menu));
$(menu_items).each(function(){
if( $(this).prop('tagName') == 'SPAN' ){
if( $(this).hasClass('qcld-chatbot-suggest-email') ){
if( globalwpw.settings.obj.disable_feedback=='' ){
menu_html += $(this).prop('outerHTML');
}
}else if( $(this).hasClass('qcld-chatbot-suggest-phone') ){
if( globalwpw.settings.obj.call_gen=="" ){
menu_html += $(this).prop('outerHTML');
}
}else if( $(this).hasClass('qcld-chatbot-wildcard') && $(this).attr('data-wildcart') == 'support' ){
if( globalwpw.settings.obj.disable_faq=='' ){
menu_html += $(this).prop('outerHTML');
}
}else if( $(this).hasClass('qcld-chatbot-wildcard') && $(this).attr('data-wildcart') == 'messenger' ){
if( globalwpw.settings.obj.enable_messenger==1 ){
menu_html += $(this).prop('outerHTML');
}
}else if( $(this).hasClass('qcld-chatbot-wildcard') && $(this).attr('data-wildcart') == 'whatspp' ){
if( globalwpw.settings.obj.enable_whats==1 ){
menu_html += $(this).prop('outerHTML');
}
}else{
menu_html += $(this).prop('outerHTML');
}
}
})
if( menu_html != '' ){
globalwpw.wildcards = menu_html;
}else{
globalwpw.wildcards = globalwpw.settings.obj.start_menu;
}
}else{
console.log(globalwpw.settings.obj.conversation_form_names);
/*if(globalwpw.settings.obj.disable_product_search!=1) {
globalwpw.wildcards += '' + wpwKits.randomMsg(globalwpw.settings.obj.wildcard_product) + '';
}
if(globalwpw.settings.obj.disable_catalog!=1) {
globalwpw.wildcards += '' + wpwKits.randomMsg(globalwpw.settings.obj.wildcard_catalog) + '';
}
if(globalwpw.settings.obj.disable_featured_product!=1){
globalwpw.wildcards+=''+wpwKits.randomMsg(globalwpw.settings.obj.featured_products)+'';
}
if(globalwpw.settings.obj.disable_sale_product!=1){
globalwpw.wildcards+=''+wpwKits.randomMsg(globalwpw.settings.obj.sale_products)+' ';
}*/
if(globalwpw.settings.obj.disable_faq=='') {
globalwpw.wildcards+=''+globalwpw.settings.obj.wildcard_support+'';
}
/*
if(globalwpw.settings.obj.disable_order_status!=1){
globalwpw.wildcards+=''+wpwKits.randomMsg(globalwpw.settings.obj.wildcard_order)+'';
}*/
if(globalwpw.settings.obj.enable_messenger==1) {
globalwpw.wildcards += ''+wpwKits.randomMsg(globalwpw.settings.obj.messenger_label)+'';
}
if(globalwpw.settings.obj.enable_whats==1) {
globalwpw.wildcards += ''+wpwKits.randomMsg(globalwpw.settings.obj.whats_label)+'';
}
if(globalwpw.settings.obj.disable_feedback=='') {
globalwpw.wildcards += ''+globalwpw.settings.obj.support_email+'';
}
if(globalwpw.settings.obj.call_gen=="") {
globalwpw.wildcards += '' + globalwpw.settings.obj.support_phone + '';
}
if(globalwpw.settings.obj.conversation_form_ids[0]!=''){
for(var i=0;i'+globalwpw.settings.obj.conversation_form_names[i]+'';
}
}
}
}
//Initialize the wpwBot with greeting and if already initialize and given name then return greeting..
if(localStorage.getItem("wpwHitory") && globalwpw.initialize==0 ){
var wpwHistory=localStorage.getItem("wpwHitory");
$(globalwpw.settings.messageWrapper).html(wpwHistory);
//Scroll to the last element.
wpwKits.scrollTo();
//Now mainting the current stages tokens
globalwpw.initialize=1;
if(localStorage.getItem("wildCard")){
globalwpw.wildCard=localStorage.getItem("wildCard");
}
if(localStorage.getItem("productStep")){
globalwpw.productStep=localStorage.getItem("productStep");
}
if(localStorage.getItem("orderStep")){
globalwpw.orderStep=localStorage.getItem("orderStep");
}
if(localStorage.getItem("supportStep")){
globalwpw.supportStep=localStorage.getItem("supportStep");
}
if(localStorage.getItem("aiStep")){
globalwpw.ai_step=localStorage.getItem("aiStep");
}
if(localStorage.getItem("formfieldid")){
globalwpw.formfieldid=localStorage.getItem("formfieldid");
}
if(localStorage.getItem("formentry")){
globalwpw.formentry=localStorage.getItem("formentry");
}
if(localStorage.getItem("formStep")){
globalwpw.formStep=localStorage.getItem("formStep");
}
if(localStorage.getItem("formid")){
globalwpw.formid=localStorage.getItem("formid");
}
//update the value for initializing.
globalwpw.initialize=1;
} else {
if(globalwpw.initialize==0 && globalwpw.wildCard==0 && globalwpw.settings.obj.re_target_handler==0){
wpwWelcome.greeting();
//update the value for initializing.
globalwpw.initialize=1;
}else{ // re targeting part .
setTimeout(function (e) {
wpwWelcome.greeting();
},8500);
globalwpw.initialize=1;
}
}
//When shopper click on send button
$(document).on('click',settings.sendButton,function (e) {
var shopperMsg =$(settings.messageEditor).val();
if(shopperMsg != ""){
wpwAction.shopper(wpwKits.htmlTagsScape(shopperMsg));
$(settings.messageEditor).val('');
}
});
$(document).on('click', '.chatbot_intent_reload', function(e){
e.preventDefault();
var obj = $(this);
if(obj.attr('data-intent-type')=='formbuilder'){
if( obj.attr('data-step')=='complete' ){
globalwpw.formStep='field';
localStorage.setItem("formStep", globalwpw.formStep);
}
globalwpw.wildCard=obj.attr('data-wildcard');
globalwpw.formfieldid = obj.attr('data-intent');
wpwTree.formbuilder();
}
})
/*
* Or when shopper press the ENTER key
* Then chatting functionality will be started.
*/
$(document).on('click', '.wpb-quick-reply', function(e){
e.preventDefault();
$('#wp-chatbot-editor').val($(this).html());
$('#wp-chatbot-send-message').trigger( "click" );
})
$(document).on('keypress',settings.messageEditor,function (e) {
if (e.which == 13||e.keyCode==13) {
e.preventDefault();
var shopperMsg =$(settings.messageEditor).val();
if(shopperMsg != ""){
wpwAction.shopper(wpwKits.htmlTagsScape(shopperMsg));
$(settings.messageEditor).val('');
}
}
});
$(document).on('click', '.qcld-chatbot-checkbox', function(){
var value = [];
$('.qcld-chatbot-checkbox').each(function(){
if($(this).prop("checked") == true){
value.push($(this).val());
}
})
$('#wp-chatbot-editor').val(value.join());
})
//Click on the wildcards to select a service
$(document).on('click','.qcld-chatbot-wildcard',function(){
var wildcardData=$(this).attr('data-wildcart');
var shooperChoice=$(this).text();
wpwMsg.shopper_choice(shooperChoice);
//Wild cards handling for bot.
if(wildcardData=='product'){
globalwpw.wildCard=1;
globalwpw.productStep='asking'
wpwAction.bot('from wildcard product');
//keeping value in localstorage
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("productStep", globalwpw.productStep);
}
if(wildcardData=='catalog'){
wpwAction.bot(globalwpw.settings.obj.sys_key_catalog.toLowerCase());
}
if(wildcardData=='featured'){
globalwpw.wildCard=1;
globalwpw.productStep='featured'
wpwAction.bot('from wildcard product');
//keeping value in localstorage
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("productStep", globalwpw.productStep);
}
if(wildcardData=='sale'){
globalwpw.wildCard=1;
globalwpw.productStep='sale'
wpwAction.bot('from wildcard product');
//keeping value in localstorage
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("productStep", globalwpw.productStep);
}
if(wildcardData=='order'){
globalwpw.wildCard=2;
globalwpw.orderStep='welcome';
wpwAction.bot('from wildcard order');
//keeping value in localstorage
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("orderStep", globalwpw.orderStep);
}
if(wildcardData=='support'){
console.log('asdfsdafsda')
globalwpw.wildCard=1;
globalwpw.supportStep='welcome';
wpwAction.bot('from wildcard support');
//keeping value in localstorage
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("supportStep", globalwpw.supportStep);
}
if(wildcardData=='back'){
globalwpw.wildCard=0;
wpwAction.bot('start');
//keeping value in localstorage
localStorage.setItem("wildCard", globalwpw.wildCard);
}
if(wildcardData=='messenger'){
var url='https://www.messenger.com/t/'+globalwpw.settings.obj.fb_page_id;
var win = window.open(url, '_blank');
win.focus();
}
if(wildcardData=='whatsapp'){
var url='https://api.whatsapp.com/send?phone='+globalwpw.settings.obj.whats_num;
var win = window.open(url, '_blank');
win.focus();
}
});
$(document).on('click','.qcld-chatbot-form',function(e){
e.preventDefault();
var formid=$(this).attr('data-form');
globalwpw.wildCard=7;
globalwpw.formStep='welcome';
wpwTree.formbuilder(formid);
})
$(document).on('click','.qcld_simple_txt_response',function(e){
e.preventDefault();
var text=$(this).text();
globalwpw.wildCard=0;
wpwAction.bot(text);
})
$(document).on('click','.qcld-chatbot-formanswer',function(e){
e.preventDefault();
var answer=$(this).attr('data-form-value');
wpwTree.formbuilder(answer);
})
//
$(document).on('click','.qcld-chatbot-product-category',function(){
var catType=$(this).attr('data-category-type');
var shopperChoiceCatId=$(this).text()+'#'+$(this).attr('data-category-id');
var shopperChoiceCategory=$(this).text();
if(catType=='hasChilds'){
//Now hide all categories but shopper choice.
wpwMsg.shopper_choice(shopperChoiceCategory);
//updating the product steps and bringing the product by category.
wpwKits.subCats($(this).attr('data-category-id'));
globalwpw.productStep='search';
globalwpw.wildCard=1;
}else{
//Now hide all categories but shopper choice.
wpwMsg.shopper_choice(shopperChoiceCategory);
//updating the product steps and bringing the product by category.
globalwpw.productStep='category';
globalwpw.wildCard=1;
//keeping value in localstorage
localStorage.setItem("productStep", globalwpw.productStep);
wpwAction.bot(shopperChoiceCatId);
}
});
//Product Load More features for product search or category products
$(document).on('click','#wp-chatbot-loadmore',function (e) {
$('#wp-chatbot-loadmore-loader').html('');
var loadMoreDom=$(this);
var productOffest=loadMoreDom.attr('data-offset');
var searchType=loadMoreDom.attr('data-search-type');
var searchTerm=loadMoreDom.attr('data-search-term');
var data = { 'action': 'qcld_wb_chatbot_load_more','offset': productOffest,'search_type': searchType,'search_term': searchTerm};
//Load more ajax handler.
wpwKits.ajax(data).done(function (response) {
//Change button text
$('#wp-chatbot-loadmore-loader').html('');
$('.wp-chatbot-products').append(response.html);
loadMoreDom.attr('data-search-term',response.search_term);
wpwKits.wpwHistorySave();
loadMoreDom.attr('data-offset',response.offset);
if(response.product_num <= response.per_page){
loadMoreDom.hide();
//Now show the user infinite.
setTimeout(function () {
var searchAgain = wpwKits.randomMsg(globalwpw.settings.obj.product_infinite);
wpwMsg.single(searchAgain);
globalwpw.productStep='search';
//keeping value in localstorage
localStorage.setItem("productStep", globalwpw.productStep);
},globalwpw.settings.wildcardsShowTime);
}
//scroll to the last message
wpwKits.scrollTo();
});
});
/*Products details part **/
if(globalwpw.settings.obj.open_product_detail!=1){
$(document).on('click','.wp-chatbot-product a',function (e) {
e.preventDefault();
$('.wp-chatbot-product-container').addClass('active-chatbot-product-details');
$('.wp-chatbot-product-reload').addClass('wp-chatbot-product-loading').html('');
var productId=$(this).attr('wp-chatbot-pid');
var data = { 'action':'qcld_wb_chatbot_product_details', 'wp_chatbot_pid':productId};
//product details ajax handler.
wpwKits.ajax(data).done(function (response) {
$('.wp-chatbot-product-reload').removeClass('wp-chatbot-product-loading').html('');
$('#wp-chatbot-product-title').html(response.title);
$('#wp-chatbot-product-description').html(response.description);
$('#wp-chatbot-product-image').html(response.image);
$('#wp-chatbot-product-price').html(response.price);
$('#wp-chatbot-product-quantity').html(response.quantity);
$('#wp-chatbot-product-variable').html(response.variation);
$('#wp-chatbot-product-cart-button').html(response.buttton);
//Load gallery magnify
setTimeout(function () {
$('#wp-chatbot-product-image-large-path').magnificPopup({type:'image'});
},1000);
//For shortcode handle recenlty view product by ajax as
if($('#wp-chatbot-shortcode-template-container').length > 0){
var data = {'action':'qcld_wb_chatbot_recently_viewed_products'};
wpwKits.ajax(data).done(function (response) {
$('.wp-chatbot-product-shortcode-container').html(response);
$('.chatbot-sidebar .wp-chatbot-products').slimScroll({height: '435px', start: 'top'});
});
}
});
});
}
//Image gallery.
$(document).on('click','.wp-chatbot-product-image-thumbs-path',function (e) {
e.preventDefault();
var imagePath=$(this).attr('href');
$('#wp-chatbot-product-image-large-path').attr('href',imagePath);
$('#wp-chatbot-product-image-large-src').attr('src',imagePath);
//handle thumb active one
$('.wp-chatbot-product-image-thumbs-path').parent().removeClass('wp-chatbot-product-active-image-thumbs');
$(this).parent().addClass('wp-chatbot-product-active-image-thumbs');
});
//Product details close
$(document).on('click', '.wp-chatbot-product-close', function (e) {
$('.wp-chatbot-product-container').removeClass('active-chatbot-product-details');
});
/*add to cart part **/
$(document).on("click","#wp-chatbot-add-cart-button",function (e) {
var pId=$(this).attr('wp-chatbot-product-id');
var qnty=$("#vPQuantity").val();
var data = {'action': 'qcld_wb_chatbot_add_to_cart','product_id': pId,'quantity': qnty };
//add to cart ajax handler.
wpwKits.ajax(data).done(function (response) {
//Change button text
if(response=="simple"){
//Showing cart.
wpwKits.showCart();
//handle the active tab on chat board.
$('.wp-chatbot-operation-option').each(function(){
if($(this).attr('data-option')=='cart'){
$(this).parent().addClass('wp-chatbot-operation-active');
}else{
$(this).parent().removeClass('wp-chatbot-operation-active');
}
});
}
//Hide the shortcode and chat ui product details.
$('.wp-chatbot-product-container').removeClass('active-chatbot-product-details');
});
});
//Add to cart operation for variable product.
$(document).on('click','#wp-chatbot-variation-add-to-cart',function(event) {
event.preventDefault();
var pId=$(this).attr('wp-chatbot-product-id');
var quanity=$('#vPQuantity').val();
var variation_id=$(this).attr('variation_id');
var attributes=new Array();
$.each($("#wp-chatbot-variation-data select"), function(){
var attribute = $(this).attr('name')+'#'+ $(this).find('option:selected').text();
attributes.push(attribute);
});
var data = {
'action': 'variable_add_to_cart',
'p_id': pId,
'quantity': quanity,
'variations_id':variation_id,
'attributes':attributes
};
//add to cart ajax handler.
wpwKits.ajax(data).done(function (response) {
//Change button text
if(response=="variable"){
//Showing cart.
wpwKits.showCart();
//handle the active tab on chat board.
//handle the active tab on chat board.
$('.wp-chatbot-operation-option').each(function(){
if($(this).attr('data-option')=='cart'){
$(this).parent().addClass('wp-chatbot-operation-active');
}else{
$(this).parent().removeClass('wp-chatbot-operation-active');
}
});
}
//Hide the shortcode and chat ui product details.
$('.wp-chatbot-product-container').removeClass('active-chatbot-product-details');
});
});
//Update cart.
$(document).on("change", ".qcld-wp-chatbot-cart-item-qnty", function () {
//Update editor only for chat ui
if($('#wp-chatbot-shortcode-template-container').length == 0) {
wpwKits.disableEditor(wpwKits.randomMsg(globalwpw.settings.obj.cart_updating));
}
var currentItem=$(this);
setTimeout(function () {
var item_key=currentItem.attr('data-cart-item');
var qnty=currentItem.val();
var data = {'action': 'qcld_wb_chatbot_update_cart_item_number','cart_item_key':item_key,'qnty':qnty};
wpwKits.ajax(data).done(function () {
//Showing cart.
wpwKits.showCart();
});
}, globalwpw.settings.preLoadingTime);
});
//remove the cart item from global cart.
$(document).on("click", ".wp-chatbot-remove-cart-item", function () {
//Update editor only for chat ui
if($('#wp-chatbot-shortcode-template-container').length == 0) {
wpwKits.disableEditor(wpwKits.randomMsg(globalwpw.settings.obj.cart_removing));
}
var item=$(this).attr('data-cart-item');
var data = {'action': 'qcld_wb_chatbot_cart_item_remove', 'cart_item':item };
wpwKits.ajax(data).done(function () {
//Showing cart.
wpwKits.showCart();
})
});
/*Support query answering.. **/
$(document).on('click','.qcld-chatbot-support-items',function (e) {
var shopperChoose=$(this).text();
var queryIndex=$(this).attr('data-query-index');
wpwMsg.shopper_choice(shopperChoose);
//Now answering the query.
var queryAns=globalwpw.settings.obj.support_ans[queryIndex];
wpwMsg.single(queryAns);
//Asking email after showing answer.
var orPhoneSuggest='';
setTimeout(function(){
if(globalwpw.settings.obj.call_sup!=1) {
orPhoneSuggest = '' + wpwKits.randomMsg(globalwpw.settings.obj.support_phone) + '';
}
var orEmailSuggest=''+wpwKits.randomMsg(globalwpw.settings.obj.support_email)+'';
wpwKits.suggestEmail(orPhoneSuggest+orEmailSuggest);
},globalwpw.settings.wildcardsShowTime);
});
/*Support Email **/
$(document).on('click','.qcld-chatbot-suggest-email',function (e) {
var shopperChoice=$(this).text();
wpwMsg.shopper_choice(shopperChoice);
//Then ask email address
if(typeof(globalwpw.hasNameCookie)=='undefined'|| globalwpw.hasNameCookie==''){
var shopperName= globalwpw.settings.obj.shopper_demo_name;
}else{
var shopperName=globalwpw.hasNameCookie;
}
var askEmail='Hello '+shopperName+'! '+ wpwKits.randomMsg(globalwpw.settings.obj.asking_email);
wpwMsg.single(askEmail);
//Now updating the support part as .
globalwpw.supportStep='email';
globalwpw.wildCard=1;
//keeping value in localstorage
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("supportStep", globalwpw.supportStep);
});
/*site Search*/
$(document).on('click','.qcld-chatbot-site-search',function (e) {
var shopperChoice=$(this).text();
wpwMsg.shopper_choice(shopperChoice);
//Then ask email address
if(typeof(globalwpw.hasNameCookie)=='undefined'|| globalwpw.hasNameCookie==''){
var shopperName= globalwpw.settings.obj.shopper_demo_name;
}else{
var shopperName=globalwpw.hasNameCookie;
}
var askEmail='Hello '+shopperName+'! '+ 'Please enter your keyword for searching';
wpwMsg.single(askEmail);
//Now updating the support part as .
globalwpw.supportStep='search';
globalwpw.wildCard=1;
//keeping value in localstorage
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("supportStep", globalwpw.supportStep);
});
/*Support Phone **/
$(document).on('click','.qcld-chatbot-suggest-phone',function (e) {
var shopperChoice=$(this).text();
wpwMsg.shopper_choice(shopperChoice);
//Then ask email address
if(typeof(globalwpw.hasNameCookie)=='undefined'|| globalwpw.hasNameCookie==''){
var shopperName= globalwpw.settings.obj.shopper_demo_name;
}else{
var shopperName=globalwpw.hasNameCookie;
}
var askEmail='Hello '+shopperName+'! '+ wpwKits.randomMsg(globalwpw.settings.obj.asking_phone);
wpwMsg.single(askEmail);
//Now updating the support part as .
globalwpw.supportStep='phone';
globalwpw.wildCard=1;
//keeping value in localstorage
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("supportStep", globalwpw.supportStep);
});
//Show chat,cart and recently view products by click event.
$(document).on('click','.wp-chatbot-operation-option',function (e) {
e.preventDefault();
var oppt=$(this).attr('data-option');
if(oppt=='recent' && globalwpw.wpwIsWorking==0){
wpwKits.disableEditor(globalwpw.settings.obj.sys_key_product);
var data = {'action':'qcld_wb_chatbot_recently_viewed_products'};
wpwKits.ajax(data).done(function (response) {
$(globalwpw.settings.messageWrapper).html(response);
});
//First remove wp-chatbot-operation-active class from all selector
$('.wp-chatbot-operation-option').parent().removeClass('wp-chatbot-operation-active');
//then add the active class to current element.
$(this).parent().addClass('wp-chatbot-operation-active');
}else if(oppt=='chat' && globalwpw.wpwIsWorking==0){
$(globalwpw.settings.messageWrapper).html(localStorage.getItem("wpwHitory"));
wpwKits.scrollTo();
wpwKits.enableEditor(wpwKits.randomMsg(globalwpw.settings.obj.send_a_msg));
//First remove wp-chatbot-operation-active class from all selector
$('.wp-chatbot-operation-option').parent().removeClass('wp-chatbot-operation-active');
//then add the active class to current element.
$(this).parent().addClass('wp-chatbot-operation-active');
} else if(oppt=='cart' && globalwpw.wpwIsWorking==0){
wpwKits.showCart();
//First remove wp-chatbot-operation-active class from all selector
$('.wp-chatbot-operation-option').parent().removeClass('wp-chatbot-operation-active');
//then add the active class to current element.
$(this).parent().addClass('wp-chatbot-operation-active');
} else if(oppt=='help' && globalwpw.wpwIsWorking==0){
if( $('.wp-chatbot-messages-container').length==0) {
//if from other nob then goo to the chat window
$(globalwpw.settings.messageWrapper).html(localStorage.getItem("wpwHitory"));
//Showing help message
setTimeout(function () {
wpwKits.scrollTo();
var helpWelcome = wpwKits.randomMsg(globalwpw.settings.obj.help_welcome);
var helpMsg = wpwKits.randomMsg(globalwpw.settings.obj.help_msg);
wpwMsg.double(helpWelcome,helpMsg);
//dialogflow
if(globalwpw.settings.obj.ai_df_enable==1 && globalwpw.df_status_lock==0){
globalwpw.wildCard=0;
globalwpw.ai_step=1;
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("aiStep", globalwpw.ai_step);
}
},globalwpw.settings.preLoadingTime);
}else{
//Showing help message on chat self window.
var helpWelcome = wpwKits.randomMsg(globalwpw.settings.obj.help_welcome);
var helpMsg = wpwKits.randomMsg(globalwpw.settings.obj.help_msg);
wpwMsg.double(helpWelcome,helpMsg);
//dialogflow
if(globalwpw.settings.obj.ai_df_enable==1 && globalwpw.df_status_lock==0){
globalwpw.wildCard=0;
globalwpw.ai_step=1;
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("aiStep", globalwpw.ai_step);
}
}
//First remove wp-chatbot-operation-active class from all selector
$('.wp-chatbot-operation-option').parent().removeClass('wp-chatbot-operation-active');
//then add the active class to current element.
$(this).parent().addClass('wp-chatbot-operation-active');
} else if(oppt=='support' && globalwpw.wpwIsWorking==0){
if( $('.wp-chatbot-messages-container').length==0) {
//if from other nob then goo to the chat window
$(globalwpw.settings.messageWrapper).html(localStorage.getItem("wpwHitory"));
//Showing help message
setTimeout(function () {
wpwKits.scrollTo();
globalwpw.wildCard=1;
globalwpw.supportStep='welcome';
wpwTree.support(globalwpw.settings.obj.sys_key_support.toLowerCase());
},globalwpw.settings.preLoadingTime);
}else{
//Showing help message on chat self window.
globalwpw.wildCard=1;
globalwpw.supportStep='welcome';
wpwTree.support(globalwpw.settings.obj.sys_key_support.toLowerCase());
}
//First remove wp-chatbot-operation-active class from all selector
$('.wp-chatbot-operation-option').parent().removeClass('wp-chatbot-operation-active');
//then add the active class to current element.
$(this).parent().addClass('wp-chatbot-operation-active');
}
//show chat wrapper and hide cart-checkout wrapper
$(globalwpw.settings.messageWrapper).show();
$('#wp-chatbot-checkout-short-code').hide();
$('#wp-chatbot-cart-short-code').hide();
});
$(document).on('click','.qcld-chatbot-reset-btn',function (e) {
e.preventDefault();
var actionType=$(this).attr('reset-data');
if(actionType=='yes'){
$('#wp-chatbot-messages-container').html('');
localStorage.removeItem('shopper');
globalwpw.wildCard=0;
globalwpw.ai_step=0;
localStorage.setItem("wildCard", globalwpw.wildCard);
localStorage.setItem("aiStep", globalwpw.ai_step);
globalwpw.formfieldid = '';
localStorage.setItem("formfieldid", globalwpw.formfieldid);
globalwpw.formStep='welcome';
localStorage.setItem("formStep", globalwpw.formStep);
globalwpw.formid='';
localStorage.setItem("formid", globalwpw.formid);
globalwpw.formentry = 0;
localStorage.setItem("formentry", globalwpw.formentry);
$.wpwbot({obj: wp_chatbot_obj, editor_handler: 0, preLoadingTime: wp_chatbot_obj.botpreloadingtime});
} else if(actionType=='no'){
wpwAction.bot(globalwpw.settings.obj.sys_key_help.toLowerCase());
}
});
return this;
};
//Deafault value for wpwbot.If nothing passes from the work station
//Then defaults value will be used.
$.wpwbot.defaults={
obj:{},
editor_handler:0,
sendButton:'#wp-chatbot-send-message',
messageEditor:'#wp-chatbot-editor',
messageContainer:'#wp-chatbot-messages-container',
messageWrapper:'.wp-chatbot-messages-wrapper',
botContainer:'.wp-chatbot-ball-inner',
messageLastChild:'#wp-chatbot-messages-container li:last',
messageLastBot:'#wp-chatbot-messages-container .wp-chatbot-msg:last .wp-chatbot-paragraph',
preLoadingTime:0,
wildcardsShowTime:5000,
}
})(jQuery);