/*------------- Begin : 1angular.min.js-----------*/ /* AngularJS v1.2.26 (c) 2010-2014 Google, Inc. https://angularjs.org License: MIT */ (function(W,X,t){'use strict';function C(b){return function(){var a=arguments[0],c,a="["+(b?b+":":"")+a+"] https://errors.angularjs.org/1.2.26/"+(b?b+"/":"")+a;for(c=1;c").append(b).html();try{return 3===b[0].nodeType?K(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+K(b)})}catch(d){return K(c)}}function dc(b){try{return decodeURIComponent(b)}catch(a){}}function ec(b){var a={},c,d;r((b||"").split("&"),function(b){b&&(c=b.replace(/\+/g,"%20").split("="),d=dc(c[0]),y(d)&&(b=y(c[1])?dc(c[1]):!0,kb.call(a,d)?J(a[d])?a[d].push(b):a[d]=[a[d],b]:a[d]=b))});return a}function Cb(b){var a= [];r(b,function(b,d){J(b)?r(b,function(b){a.push(Ca(d,!0)+(!0===b?"":"="+Ca(b,!0)))}):a.push(Ca(d,!0)+(!0===b?"":"="+Ca(b,!0)))});return a.length?a.join("&"):""}function lb(b){return Ca(b,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function Ca(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,a?"%20":"+")}function Xc(b,a){function c(a){a&&d.push(a)}var d=[b],e,f,g=["ng:app","ng-app","x-ng-app", "data-ng-app"],k=/\sng[:\-]app(:\s*([\w\d_]+);?)?\s/;r(g,function(a){g[a]=!0;c(X.getElementById(a));a=a.replace(":","\\:");b.querySelectorAll&&(r(b.querySelectorAll("."+a),c),r(b.querySelectorAll("."+a+"\\:"),c),r(b.querySelectorAll("["+a+"]"),c))});r(d,function(a){if(!e){var b=k.exec(" "+a.className+" ");b?(e=a,f=(b[2]||"").replace(/\s+/g,",")):r(a.attributes,function(b){!e&&g[b.name]&&(e=a,f=b.value)})}});e&&a(e,f?[f]:[])}function fc(b,a){var c=function(){b=w(b);if(b.injector()){var c=b[0]===X? "document":ia(b);throw Ta("btstrpd",c.replace(//,">"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);a.unshift("ng");c=gc(a);c.invoke(["$rootScope","$rootElement","$compile","$injector","$animate",function(a,b,c,d,e){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return c},d=/^NG_DEFER_BOOTSTRAP!/;if(W&&!d.test(W.name))return c();W.name=W.name.replace(d,"");Va.resumeBootstrap=function(b){r(b,function(b){a.push(b)});c()}}function mb(b,a){a= a||"_";return b.replace(Yc,function(b,d){return(d?a:"")+b.toLowerCase()})}function Db(b,a,c){if(!b)throw Ta("areq",a||"?",c||"required");return b}function Wa(b,a,c){c&&J(b)&&(b=b[b.length-1]);Db(P(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Da(b,a){if("hasOwnProperty"===b)throw Ta("badname",a);}function hc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,g=0;g "+e[1]+a.replace(me,"<$1>")+e[2];d.removeChild(d.firstChild);for(a=e[0];a--;)d=d.lastChild;a=0;for(e=d.childNodes.length;a=Q?(c.preventDefault=null,c.stopPropagation=null,c.isDefaultPrevented=null):(delete c.preventDefault,delete c.stopPropagation,delete c.isDefaultPrevented)};c.elem=b;return c}function Ka(b,a){var c=typeof b,d;"function"==c||"object"==c&&null!==b?"function"==typeof(d= b.$$hashKey)?d=b.$$hashKey():d===t&&(d=b.$$hashKey=(a||hb)()):d=b;return c+":"+d}function bb(b,a){if(a){var c=0;this.nextUid=function(){return++c}}r(b,this.put,this)}function sc(b){var a,c;"function"===typeof b?(a=b.$inject)||(a=[],b.length&&(c=b.toString().replace(pe,""),c=c.match(qe),r(c[1].split(re),function(b){b.replace(se,function(b,c,d){a.push(d)})})),b.$inject=a):J(b)?(c=b.length-1,Wa(b[c],"fn"),a=b.slice(0,c)):Wa(b,"fn",!0);return a}function gc(b){function a(a){return function(b,c){if(T(b))r(b, $b(a));else return a(b,c)}}function c(a,b){Da(a,"service");if(P(b)||J(b))b=n.instantiate(b);if(!b.$get)throw cb("pget",a);return l[a+k]=b}function d(a,b){return c(a,{$get:b})}function e(a){var b=[],c,d,f,k;r(a,function(a){if(!h.get(a)){h.put(a,!0);try{if(v(a))for(c=Ya(a),b=b.concat(e(c.requires)).concat(c._runBlocks),d=c._invokeQueue,f=0,k=d.length;f 4096 bytes)!"));else{if(m.cookie!== da)for(da=m.cookie,d=da.split("; "),O={},f=0;fh&&this.remove(p.key),b},get:function(a){if(h").parent()[0])});var f=L(a,b,a,c,d,e);ca(a,"ng-scope");return function(b,c,d,e){Db(b,"scope");var g=c?La.clone.call(a):a;r(d,function(a,b){g.data("$"+b+"Controller",a)});d=0;for(var m=g.length;darguments.length&& (b=a,a=t);K&&(c=da);return p(a,b,c)}var u,M,z,O,I,B,da={},rb;u=c===f?d:ha(d,new Ob(w(f),d.$attr));M=u.$$element;if(L){var Na=/^\s*([@=&])(\??)\s*(\w*)\s*$/;B=e.$new(!0);!H||H!==L&&H!==L.$$originalDirective?M.data("$isolateScopeNoTemplate",B):M.data("$isolateScope",B);ca(M,"ng-isolate-scope");r(L.scope,function(a,c){var d=a.match(Na)||[],f=d[3]||c,g="?"==d[2],d=d[1],m,l,n,p;B.$$isolateBindings[c]=d+f;switch(d){case "@":u.$observe(f,function(a){B[c]=a});u.$$observers[f].$$scope=e;u[f]&&(B[c]=b(u[f])(e)); break;case "=":if(g&&!u[f])break;l=q(u[f]);p=l.literal?Aa:function(a,b){return a===b||a!==a&&b!==b};n=l.assign||function(){m=B[c]=l(e);throw ja("nonassign",u[f],L.name);};m=B[c]=l(e);B.$watch(function(){var a=l(e);p(a,B[c])||(p(a,m)?n(e,a=B[c]):B[c]=a);return m=a},null,l.literal);break;case "&":l=q(u[f]);B[c]=function(a){return l(e,a)};break;default:throw ja("iscp",L.name,c,a);}})}rb=p&&F;R&&r(R,function(a){var b={$scope:a===L||a.$$isolateScope?B:e,$element:M,$attrs:u,$transclude:rb},c;I=a.controller; "@"==I&&(I=u[a.name]);c=s(I,b);da[a.name]=c;K||M.data("$"+a.name+"Controller",c);a.controllerAs&&(b.$scope[a.controllerAs]=c)});g=0;for(z=m.length;gG.priority)break;if(V=G.scope)O=O||G,G.templateUrl||(db("new/isolated scope",L,G,Z),T(V)&&(L=G));C=G.name;!G.templateUrl&&G.controller&&(V=G.controller,R=R||{},db("'"+C+"' controller",R[C],G,Z),R[C]=G);if(V=G.transclude)x=!0,G.$$tlb|| (db("transclusion",fa,G,Z),fa=G),"element"==V?(K=!0,u=G.priority,V=Z,Z=d.$$element=w(X.createComment(" "+C+": "+d[C]+" ")),c=Z[0],Na(f,Ba.call(V,0),c),S=z(V,e,u,g&&g.name,{nonTlbTranscludeDirective:fa})):(V=w(Kb(c)).contents(),Z.empty(),S=z(V,e));if(G.template)if(D=!0,db("template",H,G,Z),H=G,V=P(G.template)?G.template(Z,d):G.template,V=W(V),G.replace){g=G;V=Ib.test(V)?w(aa(V)):[];c=V[0];if(1!=V.length||1!==c.nodeType)throw ja("tplrt",C,"");Na(f,Z,c);qa={$attr:{}};V=da(c,[],qa);var $=a.splice(Fa+ 1,a.length-(Fa+1));L&&y(V);a=a.concat(V).concat($);E(d,qa);qa=a.length}else Z.html(V);if(G.templateUrl)D=!0,db("template",H,G,Z),H=G,G.replace&&(g=G),N=ue(a.splice(Fa,a.length-Fa),Z,d,f,x&&S,m,n,{controllerDirectives:R,newIsolateScopeDirective:L,templateDirective:H,nonTlbTranscludeDirective:fa}),qa=a.length;else if(G.compile)try{Q=G.compile(Z,d,S),P(Q)?F(null,Q,U,Y):Q&&F(Q.pre,Q.post,U,Y)}catch(ve){l(ve,ia(Z))}G.terminal&&(N.terminal=!0,u=Math.max(u,G.priority))}N.scope=O&&!0===O.scope;N.transcludeOnThisElement= x;N.templateOnThisElement=D;N.transclude=S;p.hasElementTranscludeDirective=K;return N}function y(a){for(var b=0,c=a.length;bp.priority)&&-1!=p.restrict.indexOf(f)&&(q&&(p=bc(p,{$$start:q,$$end:n})),b.push(p),h=p)}catch(F){l(F)}}return h}function E(a,b){var c=b.$attr,d=a.$attr,e=a.$$element;r(a,function(d,e){"$"!= e.charAt(0)&&(b[e]&&b[e]!==d&&(d+=("style"===e?";":" ")+b[e]),a.$set(e,d,!0,c[e]))});r(b,function(b,f){"class"==f?(ca(e,b),a["class"]=(a["class"]?a["class"]+" ":"")+b):"style"==f?(e.attr("style",e.attr("style")+";"+b),a.style=(a.style?a.style+";":"")+b):"$"==f.charAt(0)||a.hasOwnProperty(f)||(a[f]=b,d[f]=c[f])})}function ue(a,b,c,d,e,f,g,h){var m=[],l,q,s=b[0],u=a.shift(),F=D({},u,{templateUrl:null,transclude:null,replace:null,$$originalDirective:u}),N=P(u.templateUrl)?u.templateUrl(b,c):u.templateUrl; b.empty();n.get(A.getTrustedResourceUrl(N),{cache:p}).success(function(n){var p,A;n=W(n);if(u.replace){n=Ib.test(n)?w(aa(n)):[];p=n[0];if(1!=n.length||1!==p.nodeType)throw ja("tplrt",u.name,N);n={$attr:{}};Na(d,b,p);var z=da(p,[],n);T(u.scope)&&y(z);a=z.concat(a);E(c,n)}else p=s,b.html(n);a.unshift(F);l=H(a,p,c,e,b,u,f,g,h);r(d,function(a,c){a==p&&(d[c]=b[0])});for(q=L(b[0].childNodes,e);m.length;){n=m.shift();A=m.shift();var R=m.shift(),I=m.shift(),z=b[0];if(A!==s){var B=A.className;h.hasElementTranscludeDirective&& u.replace||(z=Kb(p));Na(R,w(A),z);ca(w(z),B)}A=l.transcludeOnThisElement?O(n,l.transclude,I):I;l(q,n,z,d,A)}m=null}).error(function(a,b,c,d){throw ja("tpload",d.url);});return function(a,b,c,d,e){a=e;m?(m.push(b),m.push(c),m.push(d),m.push(a)):(l.transcludeOnThisElement&&(a=O(b,l.transclude,e)),l(q,b,c,d,a))}}function x(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.namea.status?d:n.reject(d)}var c={method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse},d=function(a){var b=e.headers,c=D({},a.headers),d,f,b=D({},b.common,b[K(a.method)]); a:for(d in b){a=K(d);for(f in c)if(K(f)===a)continue a;c[d]=b[d]}(function(a){var b;r(a,function(c,d){P(c)&&(b=c(),null!=b?a[d]=b:delete a[d])})})(c);return c}(a);D(c,a);c.headers=d;c.method=Ia(c.method);var f=[function(a){d=a.headers;var c=xc(a.data,wc(d),a.transformRequest);x(c)&&r(d,function(a,b){"content-type"===K(b)&&delete d[b]});x(a.withCredentials)&&!x(e.withCredentials)&&(a.withCredentials=e.withCredentials);return s(a,c,d).then(b,b)},t],g=n.when(c);for(r(A,function(a){(a.request||a.requestError)&& f.unshift(a.request,a.requestError);(a.response||a.responseError)&&f.push(a.response,a.responseError)});f.length;){a=f.shift();var m=f.shift(),g=g.then(a,m)}g.success=function(a){g.then(function(b){a(b.data,b.status,b.headers,c)});return g};g.error=function(a){g.then(null,function(b){a(b.data,b.status,b.headers,c)});return g};return g}function s(c,f,g){function h(a,b,c,e){I&&(200<=a&&300>a?I.put(w,[a,b,vc(c),e]):I.remove(w));p(b,a,c,e);d.$$phase||d.$apply()}function p(a,b,d,e){b=Math.max(b,0);(200<= b&&300>b?A.resolve:A.reject)({data:a,status:b,headers:wc(d),config:c,statusText:e})}function s(){var a=Ra(q.pendingRequests,c);-1!==a&&q.pendingRequests.splice(a,1)}var A=n.defer(),r=A.promise,I,H,w=F(c.url,c.params);q.pendingRequests.push(c);r.then(s,s);!c.cache&&!e.cache||(!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method)||(I=T(c.cache)?c.cache:T(e.cache)?e.cache:u);if(I)if(H=I.get(w),y(H)){if(H&&P(H.then))return H.then(s,s),H;J(H)?p(H[1],H[0],ha(H[2]),H[3]):p(H,200,{},"OK")}else I.put(w,r);x(H)&& ((H=Pb(c.url)?b.cookies()[c.xsrfCookieName||e.xsrfCookieName]:t)&&(g[c.xsrfHeaderName||e.xsrfHeaderName]=H),a(c.method,w,f,h,g,c.timeout,c.withCredentials,c.responseType));return r}function F(a,b){if(!b)return a;var c=[];Tc(b,function(a,b){null===a||x(a)||(J(a)||(a=[a]),r(a,function(a){T(a)&&(a=ta(a)?a.toISOString():na(a));c.push(Ca(b)+"="+Ca(a))}))});0=Q&&(!b.match(/^(get|post|head|put|delete|options)$/i)|| !W.XMLHttpRequest))return new W.ActiveXObject("Microsoft.XMLHTTP");if(W.XMLHttpRequest)return new W.XMLHttpRequest;throw C("$httpBackend")("noxhr");}function Vd(){this.$get=["$browser","$window","$document",function(b,a,c){return ye(b,xe,b.defer,a.angular.callbacks,c[0])}]}function ye(b,a,c,d,e){function f(a,b,c){var f=e.createElement("script"),g=null;f.type="text/javascript";f.src=a;f.async=!0;g=function(a){$a(f,"load",g);$a(f,"error",g);e.body.removeChild(f);f=null;var k=-1,s="unknown";a&&("load"!== a.type||d[b].called||(a={type:"error"}),s=a.type,k="error"===a.type?404:200);c&&c(k,s)};sb(f,"load",g);sb(f,"error",g);8>=Q&&(f.onreadystatechange=function(){v(f.readyState)&&/loaded|complete/.test(f.readyState)&&(f.onreadystatechange=null,g({type:"load"}))});e.body.appendChild(f);return g}var g=-1;return function(e,m,h,l,n,p,q,s){function F(){A=g;R&&R();z&&z.abort()}function u(a,d,e,f,g){L&&c.cancel(L);R=z=null;0===d&&(d=e?200:"file"==ua(m).protocol?404:0);a(1223===d?204:d,e,f,g||"");b.$$completeOutstandingRequest(E)} var A;b.$$incOutstandingRequestCount();m=m||b.url();if("jsonp"==K(e)){var N="_"+(d.counter++).toString(36);d[N]=function(a){d[N].data=a;d[N].called=!0};var R=f(m.replace("JSON_CALLBACK","angular.callbacks."+N),N,function(a,b){u(l,a,d[N].data,"",b);d[N]=E})}else{var z=a(e);z.open(e,m,!0);r(n,function(a,b){y(a)&&z.setRequestHeader(b,a)});z.onreadystatechange=function(){if(z&&4==z.readyState){var a=null,b=null,c="";A!==g&&(a=z.getAllResponseHeaders(),b="response"in z?z.response:z.responseText);A===g&& 10>Q||(c=z.statusText);u(l,A||z.status,b,a,c)}};q&&(z.withCredentials=!0);if(s)try{z.responseType=s}catch(ca){if("json"!==s)throw ca;}z.send(h||null)}if(0=k&&(n.resolve(q),l(p.$$intervalId),delete e[p.$$intervalId]);s||b.$apply()},g);e[p.$$intervalId]=n;return p}var e={};d.cancel= function(b){return b&&b.$$intervalId in e?(e[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete e[b.$$intervalId],!0):!1};return d}]}function bd(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"\u00a4",posSuf:"",negPre:"(\u00a4",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January February March April May June July August September October November December".split(" "), SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a","short":"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(b){return 1===b?"one":"other"}}}}function Qb(b){b=b.split("/");for(var a=b.length;a--;)b[a]= lb(b[a]);return b.join("/")}function zc(b,a,c){b=ua(b,c);a.$$protocol=b.protocol;a.$$host=b.hostname;a.$$port=U(b.port)||ze[b.protocol]||null}function Ac(b,a,c){var d="/"!==b.charAt(0);d&&(b="/"+b);b=ua(b,c);a.$$path=decodeURIComponent(d&&"/"===b.pathname.charAt(0)?b.pathname.substring(1):b.pathname);a.$$search=ec(b.search);a.$$hash=decodeURIComponent(b.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function ra(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function eb(b){var a= b.indexOf("#");return-1==a?b:b.substr(0,a)}function Rb(b){return b.substr(0,eb(b).lastIndexOf("/")+1)}function Bc(b,a){this.$$html5=!0;a=a||"";var c=Rb(b);zc(b,this,b);this.$$parse=function(a){var e=ra(c,a);if(!v(e))throw Sb("ipthprfx",a,c);Ac(e,this,b);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var a=Cb(this.$$search),b=this.$$hash?"#"+lb(this.$$hash):"";this.$$url=Qb(this.$$path)+(a?"?"+a:"")+b;this.$$absUrl=c+this.$$url.substr(1)};this.$$rewrite=function(d){var e; if((e=ra(b,d))!==t)return d=e,(e=ra(a,e))!==t?c+(ra("/",e)||e):b+d;if((e=ra(c,d))!==t)return c+e;if(c==d+"/")return c}}function Tb(b,a){var c=Rb(b);zc(b,this,b);this.$$parse=function(d){var e=ra(b,d)||ra(c,d),e="#"==e.charAt(0)?ra(a,e):this.$$html5?e:"";if(!v(e))throw Sb("ihshprfx",d,a);Ac(e,this,b);d=this.$$path;var f=/^\/[A-Z]:(\/.*)/;0===e.indexOf(b)&&(e=e.replace(b,""));f.exec(e)||(d=(e=f.exec(d))?e[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var c=Cb(this.$$search),e=this.$$hash? "#"+lb(this.$$hash):"";this.$$url=Qb(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=b+(this.$$url?a+this.$$url:"")};this.$$rewrite=function(a){if(eb(b)==eb(a))return a}}function Ub(b,a){this.$$html5=!0;Tb.apply(this,arguments);var c=Rb(b);this.$$rewrite=function(d){var e;if(b==eb(d))return d;if(e=ra(c,d))return b+a+e;if(c===d+"/")return c};this.$$compose=function(){var c=Cb(this.$$search),e=this.$$hash?"#"+lb(this.$$hash):"";this.$$url=Qb(this.$$path)+(c?"?"+c:"")+e;this.$$absUrl=b+a+this.$$url}}function tb(b){return function(){return this[b]}} function Cc(b,a){return function(c){if(x(c))return this[b];this[b]=a(c);this.$$compose();return this}}function Wd(){var b="",a=!1;this.hashPrefix=function(a){return y(a)?(b=a,this):b};this.html5Mode=function(b){return y(b)?(a=b,this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement",function(c,d,e,f){function g(a){c.$broadcast("$locationChangeSuccess",k.absUrl(),a)}var k,m,h=d.baseHref(),l=d.url(),n;a?(n=l.substring(0,l.indexOf("/",l.indexOf("//")+2))+(h||"/"),m=e.history?Bc:Ub):(n= eb(l),m=Tb);k=new m(n,"#"+b);k.$$parse(k.$$rewrite(l));var p=/^\s*(javascript|mailto):/i;f.on("click",function(a){if(!a.ctrlKey&&!a.metaKey&&2!=a.which){for(var e=w(a.target);"a"!==K(e[0].nodeName);)if(e[0]===f[0]||!(e=e.parent())[0])return;var g=e.prop("href");T(g)&&"[object SVGAnimatedString]"===g.toString()&&(g=ua(g.animVal).href);if(!p.test(g)){if(m===Ub){var h=e.attr("href")||e.attr("xlink:href");if(h&&0>h.indexOf("://"))if(g="#"+b,"/"==h[0])g=n+g+h;else if("#"==h[0])g=n+g+(k.path()||"/")+h; else{var l=k.path().split("/"),h=h.split("/");2!==l.length||l[1]||(l.length=1);for(var q=0;qe?Dc(d[0],d[1],d[2],d[3],d[4],c,a):function(b,f){var g=0,k;do k=Dc(d[g++],d[g++],d[g++],d[g++],d[g++],c,a)(b,f),f=t,b=k;while(ga)for(b in h++,e)e.hasOwnProperty(b)&&!d.hasOwnProperty(b)&&(r--,delete e[b])}else e!==d&&(e=d,h++);return h},function(){n?(n=!1,b(d,d,c)):b(d,g,c);if(k)if(T(d))if(Pa(d)){g=Array(d.length);for(var a=0;at&&(w=4-t,O[w]||(O[w]=[]),B=P(d.exp)?"fn: "+(d.exp.name||d.exp.toString()): d.exp,B+="; newVal: "+na(f)+"; oldVal: "+na(k),O[w].push(B));else if(d===c){z=!1;break a}}catch(y){p.$$phase=null,e(y)}if(!(h=L.$$childHead||L!==this&&L.$$nextSibling))for(;L!==this&&!(h=L.$$nextSibling);)L=L.$parent}while(L=h);if((z||l.length)&&!t--)throw p.$$phase=null,a("infdig",b,na(O));}while(z||l.length);for(p.$$phase=null;r.length;)try{r.shift()()}catch(v){e(v)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this!==p&&(r(this.$$listenerCount, Bb(null,l,this)),a.$$childHead==this&&(a.$$childHead=this.$$nextSibling),a.$$childTail==this&&(a.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=null,this.$$listeners={},this.$$watchers=this.$$asyncQueue=this.$$postDigestQueue=[],this.$destroy=this.$digest=this.$apply=E,this.$on= this.$watch=function(){return E})}},$eval:function(a,b){return f(a)(this,b)},$evalAsync:function(a){p.$$phase||p.$$asyncQueue.length||g.defer(function(){p.$$asyncQueue.length&&p.$digest()});this.$$asyncQueue.push({scope:this,expression:a})},$$postDigest:function(a){this.$$postDigestQueue.push(a)},$apply:function(a){try{return m("$apply"),this.$eval(a)}catch(b){e(b)}finally{p.$$phase=null;try{p.$digest()}catch(c){throw e(c),c;}}},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]= c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){c[Ra(c,b)]=null;l(e,1,a)}},$emit:function(a,b){var c=[],d,f=this,g=!1,k={name:a,targetScope:f,stopPropagation:function(){g=!0},preventDefault:function(){k.defaultPrevented=!0},defaultPrevented:!1},h=[k].concat(Ba.call(arguments,1)),l,m;do{d=f.$$listeners[a]||c;k.currentScope=f;l=0;for(m=d.length;lc.msieDocumentMode)throw xa("iequirks");var e=ha(ga);e.isEnabled=function(){return b};e.trustAs=d.trustAs;e.getTrusted=d.getTrusted;e.valueOf=d.valueOf;b||(e.trustAs=e.getTrusted=function(a,b){return b}, e.valueOf=Qa);e.parseAs=function(b,c){var d=a(c);return d.literal&&d.constant?d:function(a,c){return e.getTrusted(b,d(a,c))}};var f=e.parseAs,g=e.getTrusted,k=e.trustAs;r(ga,function(a,b){var c=K(b);e[Za("parse_as_"+c)]=function(b){return f(a,b)};e[Za("get_trusted_"+c)]=function(b){return g(a,b)};e[Za("trust_as_"+c)]=function(b){return k(a,b)}});return e}]}function ce(){this.$get=["$window","$document",function(b,a){var c={},d=U((/android (\d+)/.exec(K((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator|| {}).userAgent),f=a[0]||{},g=f.documentMode,k,m=/^(Moz|webkit|O|ms)(?=[A-Z])/,h=f.body&&f.body.style,l=!1,n=!1;if(h){for(var p in h)if(l=m.exec(p)){k=l[0];k=k.substr(0,1).toUpperCase()+k.substr(1);break}k||(k="WebkitOpacity"in h&&"webkit");l=!!("transition"in h||k+"Transition"in h);n=!!("animation"in h||k+"Animation"in h);!d||l&&n||(l=v(f.body.style.webkitTransition),n=v(f.body.style.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hashchange:"onhashchange"in b&&(!g||7< g),hasEvent:function(a){if("input"==a&&9==Q)return!1;if(x(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:Xa(),vendorPrefix:k,transitions:l,animations:n,android:d,msie:Q,msieDocumentMode:g}}]}function ee(){this.$get=["$rootScope","$browser","$q","$exceptionHandler",function(b,a,c,d){function e(e,k,m){var h=c.defer(),l=h.promise,n=y(m)&&!m;k=a.defer(function(){try{h.resolve(e())}catch(a){h.reject(a),d(a)}finally{delete f[l.$$timeoutId]}n||b.$apply()},k);l.$$timeoutId=k;f[k]=h; return l}var f={};e.cancel=function(b){return b&&b.$$timeoutId in f?(f[b.$$timeoutId].reject("canceled"),delete f[b.$$timeoutId],a.defer.cancel(b.$$timeoutId)):!1};return e}]}function ua(b,a){var c=b;Q&&(Y.setAttribute("href",c),c=Y.href);Y.setAttribute("href",c);return{href:Y.href,protocol:Y.protocol?Y.protocol.replace(/:$/,""):"",host:Y.host,search:Y.search?Y.search.replace(/^\?/,""):"",hash:Y.hash?Y.hash.replace(/^#/,""):"",hostname:Y.hostname,port:Y.port,pathname:"/"===Y.pathname.charAt(0)?Y.pathname: "/"+Y.pathname}}function Pb(b){b=v(b)?ua(b):b;return b.protocol===Hc.protocol&&b.host===Hc.host}function fe(){this.$get=ba(W)}function mc(b){function a(d,e){if(T(d)){var f={};r(d,function(b,c){f[c]=a(c,b)});return f}return b.factory(d+c,e)}var c="Filter";this.register=a;this.$get=["$injector",function(a){return function(b){return a.get(b+c)}}];a("currency",Ic);a("date",Jc);a("filter",Ce);a("json",De);a("limitTo",Ee);a("lowercase",Fe);a("number",Kc);a("orderBy",Lc);a("uppercase",Ge)}function Ce(){return function(b, a,c){if(!J(b))return b;var d=typeof c,e=[];e.check=function(a){for(var b=0;bb;b=Math.abs(b);var g=b+"",k="",m=[],h=!1;if(-1!==g.indexOf("e")){var l=g.match(/([\d\.]+)e(-?)(\d+)/);l&&"-"==l[2]&& l[3]>e+1?(g="0",b=0):(k=g,h=!0)}if(h)0b)&&(k=b.toFixed(e));else{g=(g.split(Nc)[1]||"").length;x(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);0===b&&(f=!1);b=(""+b).split(Nc);g=b[0];b=b[1]||"";var l=0,n=a.lgSize,p=a.gSize;if(g.length>=n+p)for(l=g.length-n,h=0;hb&&(d="-",b=-b);for(b=""+b;b.length-c)e+=c;0===e&&-12==c&&(e=12);return Xb(e,a,d)}}function vb(b,a){return function(c,d){var e=c["get"+b](),f=Ia(a?"SHORT"+b:b);return d[f][e]}}function Jc(b){function a(a){var b;if(b=a.match(c)){a=new Date(0);var f=0,g=0,k=b[8]? a.setUTCFullYear:a.setFullYear,m=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=U(b[9]+b[10]),g=U(b[9]+b[11]));k.call(a,U(b[1]),U(b[2])-1,U(b[3]));f=U(b[4]||0)-f;g=U(b[5]||0)-g;k=U(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));m.call(a,f,g,k,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e){var f="",g=[],k,m;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;v(c)&&(c=He.test(c)?U(c):a(c));ib(c)&&(c=new Date(c)); if(!ta(c))return c;for(;e;)(m=Ie.exec(e))?(g=g.concat(Ba.call(m,1)),e=g.pop()):(g.push(e),e=null);r(g,function(a){k=Je[a];f+=k?k(c,b.DATETIME_FORMATS):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return f}}function De(){return function(b){return na(b,!0)}}function Ee(){return function(b,a){if(!J(b)&&!v(b))return b;a=Infinity===Math.abs(Number(a))?Number(a):U(a);if(v(b))return a?0<=a?b.slice(0,a):b.slice(a,b.length):"";var c=[],d,e;a>b.length?a=b.length:a<-b.length&&(a=-b.length);0a||37<=a&&40>=a)||q()});if(e.hasEvent("paste"))a.on("paste cut",q)}a.on("change",n);d.$render=function(){a.val(d.$isEmpty(d.$viewValue)?"":d.$viewValue)};var s=c.ngPattern;s&&((e=s.match(/^\/(.*)\/([gim]*)$/))?(s=RegExp(e[1],e[2]),e=function(a){return sa(d, "pattern",d.$isEmpty(a)||s.test(a),a)}):e=function(c){var e=b.$eval(s);if(!e||!e.test)throw C("ngPattern")("noregexp",s,e,ia(a));return sa(d,"pattern",d.$isEmpty(c)||e.test(c),c)},d.$formatters.push(e),d.$parsers.push(e));if(c.ngMinlength){var r=U(c.ngMinlength);e=function(a){return sa(d,"minlength",d.$isEmpty(a)||a.length>=r,a)};d.$parsers.push(e);d.$formatters.push(e)}if(c.ngMaxlength){var u=U(c.ngMaxlength);e=function(a){return sa(d,"maxlength",d.$isEmpty(a)||a.length<=u,a)};d.$parsers.push(e); d.$formatters.push(e)}}function Yb(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;dQ?function(b){b=b.nodeName?b:b[0];return b.scopeName&&"HTML"!=b.scopeName?Ia(b.scopeName+":"+b.nodeName):b.nodeName}:function(b){return b.nodeName?b.nodeName:b[0].nodeName};var Xa=function(){if(y(Xa.isActive_))return Xa.isActive_;var b=!(!X.querySelector("[ng-csp]")&&!X.querySelector("[data-ng-csp]")); if(!b)try{new Function("")}catch(a){b=!0}return Xa.isActive_=b},Yc=/[A-Z]/g,ad={full:"1.2.26",major:1,minor:2,dot:26,codeName:"captivating-disinterest"};S.expando="ng339";var ab=S.cache={},ne=1,sb=W.document.addEventListener?function(b,a,c){b.addEventListener(a,c,!1)}:function(b,a,c){b.attachEvent("on"+a,c)},$a=W.document.removeEventListener?function(b,a,c){b.removeEventListener(a,c,!1)}:function(b,a,c){b.detachEvent("on"+a,c)};S._data=function(b){return this.cache[b[this.expando]]||{}};var ie=/([\:\-\_]+(.))/g, je=/^moz([A-Z])/,Hb=C("jqLite"),ke=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,Ib=/<|&#?\w+;/,le=/<([\w:]+)/,me=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ea={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ea.optgroup=ea.option;ea.tbody=ea.tfoot=ea.colgroup=ea.caption=ea.thead;ea.th= ea.td;var La=S.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===X.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),S(W).on("load",a))},toString:function(){var b=[];r(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?w(this[b]):w(this[this.length+b])},length:0,push:Me,sort:[].sort,splice:[].splice},qb={};r("multiple selected checked disabled readOnly required open".split(" "),function(b){qb[K(b)]=b});var rc={};r("input select option textarea button form details".split(" "), function(b){rc[Ia(b)]=!0});r({data:Mb,removeData:Lb},function(b,a){S[a]=b});r({data:Mb,inheritedData:pb,scope:function(b){return w.data(b,"$scope")||pb(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return w.data(b,"$isolateScope")||w.data(b,"$isolateScopeNoTemplate")},controller:oc,injector:function(b){return pb(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:Nb,css:function(b,a,c){a=Za(a);if(y(c))b.style[a]=c;else{var d;8>=Q&&(d=b.currentStyle&&b.currentStyle[a], ""===d&&(d="auto"));d=d||b.style[a];8>=Q&&(d=""===d?t:d);return d}},attr:function(b,a,c){var d=K(a);if(qb[d])if(y(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||E).specified?d:t;else if(y(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?t:b},prop:function(b,a,c){if(y(c))b[a]=c;else return b[a]},text:function(){function b(b,d){var e=a[b.nodeType];if(x(d))return e?b[e]:"";b[e]=d}var a=[];9>Q?(a[1]= "innerText",a[3]="nodeValue"):a[1]=a[3]="textContent";b.$dv="";return b}(),val:function(b,a){if(x(a)){if("SELECT"===Ma(b)&&b.multiple){var c=[];r(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(x(a))return b.innerHTML;for(var c=0,d=b.childNodes;c":function(a,c,d,e){return d(a,c)>e(a,c)},"<=":function(a,c,d,e){return d(a,c)<=e(a,c)},">=":function(a,c,d,e){return d(a,c)>=e(a,c)},"&&":function(a,c,d,e){return d(a,c)&&e(a,c)},"||":function(a,c,d,e){return d(a,c)||e(a,c)},"&":function(a,c,d,e){return d(a,c)&e(a,c)},"|":function(a,c,d,e){return e(a,c)(a,c,d(a,c))},"!":function(a,c,d){return!d(a,c)}},Re={n:"\n",f:"\f",r:"\r", t:"\t",v:"\v","'":"'",'"':'"'},Wb=function(a){this.options=a};Wb.prototype={constructor:Wb,lex:function(a){this.text=a;this.index=0;this.ch=t;this.lastCh=":";for(this.tokens=[];this.index=a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=y(c)?"s "+c+"-"+this.index+" ["+ this.text.substring(c,d)+"]":" "+d;throw la("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.index","<=",">="))a=this.binaryFn(a,c.fn,this.relational());return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a=this.binaryFn(a,c.fn,this.multiplicative());return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a=this.binaryFn(a,c.fn,this.unary());return a},unary:function(){var a;return this.expect("+")?this.primary():(a=this.expect("-"))?this.binaryFn(fb.ZERO,a.fn, this.unary()):(a=this.expect("!"))?this.unaryFn(a.fn,this.unary()):this.primary()},fieldAccess:function(a){var c=this,d=this.expect().text,e=Ec(d,this.options,this.text);return D(function(c,d,k){return e(k||a(c,d))},{assign:function(e,g,k){(k=a(e,k))||a.assign(e,k={});return ub(k,d,g,c.text,c.options)}})},objectIndex:function(a){var c=this,d=this.expression();this.consume("]");return D(function(e,f){var g=a(e,f),k=d(e,f),m;ka(k,c.text);if(!g)return t;(g=va(g[k],c.text))&&(g.then&&c.options.unwrapPromises)&& (m=g,"$$v"in g||(m.$$v=t,m.then(function(a){m.$$v=a})),g=g.$$v);return g},{assign:function(e,f,g){var k=ka(d(e,g),c.text);(g=va(a(e,g),c.text))||a.assign(e,g={});return g[k]=f}})},functionCall:function(a,c){var d=[];if(")"!==this.peekToken().text){do d.push(this.expression());while(this.expect(","))}this.consume(")");var e=this;return function(f,g){for(var k=[],m=c?c(f,g):f,h=0;ha.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a){a=-1*a.getTimezoneOffset();return a=(0<=a?"+":"")+(Xb(Math[0< a?"floor":"ceil"](a/60),2)+Xb(Math.abs(a%60),2))}},Ie=/((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/,He=/^\-?\d+$/;Jc.$inject=["$locale"];var Fe=ba(K),Ge=ba(Ia);Lc.$inject=["$parse"];var dd=ba({restrict:"E",compile:function(a,c){8>=Q&&(c.href||c.name||c.$set("href",""),a.append(X.createComment("IE fix")));if(!c.href&&!c.xlinkHref&&!c.name)return function(a,c){var f="[object SVGAnimatedString]"===za.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)|| a.preventDefault()})}}}),Fb={};r(qb,function(a,c){if("multiple"!=a){var d=pa("ng-"+c);Fb[d]=function(){return{priority:100,link:function(a,f,g){a.$watch(g[d],function(a){g.$set(c,!!a)})}}}}});r(["src","srcset","href"],function(a){var c=pa("ng-"+a);Fb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,k=a;"href"===a&&"[object SVGAnimatedString]"===za.call(e.prop("href"))&&(k="xlinkHref",f.$attr[k]="xlink:href",g=null);f.$observe(c,function(c){c?(f.$set(k,c),Q&&g&&e.prop(g,f[k])):"href"=== a&&f.$set(k,null)})}}}});var yb={$addControl:E,$removeControl:E,$setValidity:E,$setDirty:E,$setPristine:E};Oc.$inject=["$element","$attrs","$scope","$animate"];var Rc=function(a){return["$timeout",function(c){return{name:"form",restrict:a?"EAC":"E",controller:Oc,compile:function(){return{pre:function(a,e,f,g){if(!f.action){var k=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1};sb(e[0],"submit",k);e.on("$destroy",function(){c(function(){$a(e[0],"submit",k)},0,!1)})}var m=e.parent().controller("form"), h=f.name||f.ngForm;h&&ub(a,h,g,h);if(m)e.on("$destroy",function(){m.$removeControl(g);h&&ub(a,h,t,h);D(g,yb)})}}}}}]},ed=Rc(),rd=Rc(!0),Se=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,Te=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,Ue=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,Sc={text:Ab,number:function(a,c,d,e,f,g){Ab(a,c,d,e,f,g);e.$parsers.push(function(a){var c=e.$isEmpty(a);if(c||Ue.test(a))return e.$setValidity("number", !0),""===a?null:c?a:parseFloat(a);e.$setValidity("number",!1);return t});Ke(e,"number",Ve,null,e.$$validityState);e.$formatters.push(function(a){return e.$isEmpty(a)?"":""+a});d.min&&(a=function(a){var c=parseFloat(d.min);return sa(e,"min",e.$isEmpty(a)||a>=c,a)},e.$parsers.push(a),e.$formatters.push(a));d.max&&(a=function(a){var c=parseFloat(d.max);return sa(e,"max",e.$isEmpty(a)||a<=c,a)},e.$parsers.push(a),e.$formatters.push(a));e.$formatters.push(function(a){return sa(e,"number",e.$isEmpty(a)|| ib(a),a)})},url:function(a,c,d,e,f,g){Ab(a,c,d,e,f,g);a=function(a){return sa(e,"url",e.$isEmpty(a)||Se.test(a),a)};e.$formatters.push(a);e.$parsers.push(a)},email:function(a,c,d,e,f,g){Ab(a,c,d,e,f,g);a=function(a){return sa(e,"email",e.$isEmpty(a)||Te.test(a),a)};e.$formatters.push(a);e.$parsers.push(a)},radio:function(a,c,d,e){x(d.name)&&c.attr("name",hb());c.on("click",function(){c[0].checked&&a.$apply(function(){e.$setViewValue(d.value)})});e.$render=function(){c[0].checked=d.value==e.$viewValue}; d.$observe("value",e.$render)},checkbox:function(a,c,d,e){var f=d.ngTrueValue,g=d.ngFalseValue;v(f)||(f=!0);v(g)||(g=!1);c.on("click",function(){a.$apply(function(){e.$setViewValue(c[0].checked)})});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return a!==f};e.$formatters.push(function(a){return a===f});e.$parsers.push(function(a){return a?f:g})},hidden:E,button:E,submit:E,reset:E,file:E},Ve=["badInput"],jc=["$browser","$sniffer",function(a,c){return{restrict:"E",require:"?ngModel", link:function(d,e,f,g){g&&(Sc[K(f.type)]||Sc.text)(d,e,f,g,c,a)}}}],wb="ng-valid",xb="ng-invalid",Oa="ng-pristine",zb="ng-dirty",We=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate",function(a,c,d,e,f,g){function k(a,c){c=c?"-"+mb(c,"-"):"";g.removeClass(e,(a?xb:wb)+c);g.addClass(e,(a?wb:xb)+c)}this.$modelValue=this.$viewValue=Number.NaN;this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$name= d.name;var m=f(d.ngModel),h=m.assign;if(!h)throw C("ngModel")("nonassign",d.ngModel,ia(e));this.$render=E;this.$isEmpty=function(a){return x(a)||""===a||null===a||a!==a};var l=e.inheritedData("$formController")||yb,n=0,p=this.$error={};e.addClass(Oa);k(!0);this.$setValidity=function(a,c){p[a]!==!c&&(c?(p[a]&&n--,n||(k(!0),this.$valid=!0,this.$invalid=!1)):(k(!1),this.$invalid=!0,this.$valid=!1,n++),p[a]=!c,k(c,a),l.$setValidity(a,c,this))};this.$setPristine=function(){this.$dirty=!1;this.$pristine= !0;g.removeClass(e,zb);g.addClass(e,Oa)};this.$setViewValue=function(d){this.$viewValue=d;this.$pristine&&(this.$dirty=!0,this.$pristine=!1,g.removeClass(e,Oa),g.addClass(e,zb),l.$setDirty());r(this.$parsers,function(a){d=a(d)});this.$modelValue!==d&&(this.$modelValue=d,h(a,d),r(this.$viewChangeListeners,function(a){try{a()}catch(d){c(d)}}))};var q=this;a.$watch(function(){var c=m(a);if(q.$modelValue!==c){var d=q.$formatters,e=d.length;for(q.$modelValue=c;e--;)c=d[e](c);q.$viewValue!==c&&(q.$viewValue= c,q.$render())}return c})}],Gd=function(){return{require:["ngModel","^?form"],controller:We,link:function(a,c,d,e){var f=e[0],g=e[1]||yb;g.$addControl(f);a.$on("$destroy",function(){g.$removeControl(f)})}}},Id=ba({require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),kc=function(){return{require:"?ngModel",link:function(a,c,d,e){if(e){d.required=!0;var f=function(a){if(d.required&&e.$isEmpty(a))e.$setValidity("required",!1);else return e.$setValidity("required", !0),a};e.$formatters.push(f);e.$parsers.unshift(f);d.$observe("required",function(){f(e.$viewValue)})}}}},Hd=function(){return{require:"ngModel",link:function(a,c,d,e){var f=(a=/\/(.*)\//.exec(d.ngList))&&RegExp(a[1])||d.ngList||",";e.$parsers.push(function(a){if(!x(a)){var c=[];a&&r(a.split(f),function(a){a&&c.push(aa(a))});return c}});e.$formatters.push(function(a){return J(a)?a.join(", "):t});e.$isEmpty=function(a){return!a||!a.length}}}},Xe=/^(true|false|\d+)$/,Jd=function(){return{priority:100, compile:function(a,c){return Xe.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value",a)})}}}},jd=ya({compile:function(a){a.addClass("ng-binding");return function(a,d,e){d.data("$binding",e.ngBind);a.$watch(e.ngBind,function(a){d.text(a==t?"":a)})}}}),ld=["$interpolate",function(a){return function(c,d,e){c=a(d.attr(e.$attr.ngBindTemplate));d.addClass("ng-binding").data("$binding",c);e.$observe("ngBindTemplate",function(a){d.text(a)})}}], kd=["$sce","$parse",function(a,c){return{compile:function(d){d.addClass("ng-binding");return function(d,f,g){f.data("$binding",g.ngBindHtml);var k=c(g.ngBindHtml);d.$watch(function(){return(k(d)||"").toString()},function(c){f.html(a.getTrustedHtml(k(d))||"")})}}}}],md=Yb("",!0),od=Yb("Odd",0),nd=Yb("Even",1),pd=ya({compile:function(a,c){c.$set("ngCloak",t);a.removeClass("ng-cloak")}}),qd=[function(){return{scope:!0,controller:"@",priority:500}}],lc={},Ye={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "), function(a){var c=pa("ng-"+a);lc[c]=["$parse","$rootScope",function(d,e){return{compile:function(f,g){var k=d(g[c]);return function(c,d){d.on(a,function(d){var f=function(){k(c,{$event:d})};Ye[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var td=["$animate",function(a){return{transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var k,m,h;c.$watch(e.ngIf,function(f){Ua(f)?m||(m=c.$new(),g(m,function(c){c[c.length++]=X.createComment(" end ngIf: "+e.ngIf+ " ");k={clone:c};a.enter(c,d.parent(),d)})):(h&&(h.remove(),h=null),m&&(m.$destroy(),m=null),k&&(h=Eb(k.clone),a.leave(h,function(){h=null}),k=null))})}}}],ud=["$http","$templateCache","$anchorScroll","$animate","$sce",function(a,c,d,e,f){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Va.noop,compile:function(g,k){var m=k.ngInclude||k.src,h=k.onload||"",l=k.autoscroll;return function(g,k,q,r,F){var u=0,t,w,R,z=function(){w&&(w.remove(),w=null);t&&(t.$destroy(),t=null); R&&(e.leave(R,function(){w=null}),w=R,R=null)};g.$watch(f.parseAsResourceUrl(m),function(f){var m=function(){!y(l)||l&&!g.$eval(l)||d()},q=++u;f?(a.get(f,{cache:c}).success(function(a){if(q===u){var c=g.$new();r.template=a;a=F(c,function(a){z();e.enter(a,null,k,m)});t=c;R=a;t.$emit("$includeContentLoaded");g.$eval(h)}}).error(function(){q===u&&z()}),g.$emit("$includeContentRequested")):(z(),r.template=null)})}}}}],Kd=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude", link:function(c,d,e,f){d.html(f.template);a(d.contents())(c)}}}],vd=ya({priority:450,compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),wd=ya({terminal:!0,priority:1E3}),xd=["$locale","$interpolate",function(a,c){var d=/{}/g;return{restrict:"EA",link:function(e,f,g){var k=g.count,m=g.$attr.when&&f.attr(g.$attr.when),h=g.offset||0,l=e.$eval(m)||{},n={},p=c.startSymbol(),q=c.endSymbol(),s=/^when(Minus)?(.+)$/;r(g,function(a,c){s.test(c)&&(l[K(c.replace("when","").replace("Minus","-"))]= f.attr(g.$attr[c]))});r(l,function(a,e){n[e]=c(a.replace(d,p+k+"-"+h+q))});e.$watch(function(){var c=parseFloat(e.$eval(k));if(isNaN(c))return"";c in l||(c=a.pluralCat(c-h));return n[c](e,f,!0)},function(a){f.text(a)})}}}],yd=["$parse","$animate",function(a,c){var d=C("ngRepeat");return{transclude:"element",priority:1E3,terminal:!0,$$tlb:!0,link:function(e,f,g,k,m){var h=g.ngRepeat,l=h.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/),n,p,q,s,t,u,A={$id:Ka};if(!l)throw d("iexp", h);g=l[1];k=l[2];(l=l[3])?(n=a(l),p=function(a,c,d){u&&(A[u]=a);A[t]=c;A.$index=d;return n(e,A)}):(q=function(a,c){return Ka(c)},s=function(a){return a});l=g.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);if(!l)throw d("iidexp",g);t=l[3]||l[1];u=l[2];var y={};e.$watchCollection(k,function(a){var g,k,l=f[0],n,A={},B,I,H,v,E,C,x,J=[];if(Pa(a))C=a,E=p||q;else{E=p||s;C=[];for(H in a)a.hasOwnProperty(H)&&"$"!=H.charAt(0)&&C.push(H);C.sort()}B=C.length;k=J.length=C.length;for(g=0;gB;)d=t.pop(),p.removeOption(d.label),d.element.remove()}for(;z.length>M;)z.pop()[0].element.remove()}var h;if(!(h=s.match(d)))throw Ze("iexp",s,ia(f));var l=c(h[2]||h[1]),m=h[4]||h[6],n=h[5],r=c(h[3]||""),u=c(h[2]? h[1]:m),w=c(h[7]),x=h[8]?c(h[8]):null,z=[[{element:f,label:""}]];F&&(a(F)(e),F.removeClass("ng-scope"),F.remove());f.empty();f.on("change",function(){e.$apply(function(){var a,c=w(e)||[],d={},h,l,p,r,s,v,y;if(q)for(l=[],r=0,v=z.length;r@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\\:form{display:block;}.ng-animate-block-transitions{transition:0s all!important;-webkit-transition:0s all!important;}.ng-hide-add-active,.ng-hide-remove{display:block!important;}'); /*------------- End : 1angular.min.js-----------*/ /*------------- Begin : angular-animate.min.js-----------*/ /* AngularJS v1.2.26 (c) 2010-2014 Google, Inc. https://angularjs.org License: MIT */ (function(F,e,O){'use strict';e.module("ngAnimate",["ng"]).directive("ngAnimateChildren",function(){return function(G,s,g){g=g.ngAnimateChildren;e.isString(g)&&0===g.length?s.data("$$ngAnimateChildren",!0):G.$watch(g,function(e){s.data("$$ngAnimateChildren",!!e)})}}).factory("$$animateReflow",["$$rAF","$document",function(e,s){return function(g){return e(function(){g()})}}]).config(["$provide","$animateProvider",function(G,s){function g(e){for(var g=0;g=y&&b>=v&&e()}var h=g(b);a=b.data(q);if(-1!=h.getAttribute("class").indexOf(d)&&a){var m="";u(d.split(" "),function(a,b){m+=(0 0) { this.gaFireInteractiveEvents('crosseventssearchlist', keyword); } else { this.gaFireInteractiveEvents('crosseventssearchnoresult', keyword); } } } this.gaFireOnCourseListSearchTagCounter = function (rank) { var keyword = user_params.gaTagForPage; if (user_params.overAllPageLabelForGa == 'search') { this.gaFireInteractiveEvents('crosseventssearchclickresult', keyword + ' | ' + rank); } } this.gaFireOnCartPageInvalidCouponSubmit = function (invalidCouponLabel) { this.gaFireOnCartPageInvalidCouponSubmit(invalidCouponLabel); } this.gaFireInteractiveEvents = function (keyInRedmineArray, label) { this.gaFireInteractiveEvents(keyInRedmineArray, label); } this.gaFireOnCartProceedClick = function () { if (typeof user_params.overAllDataForGa[0] != 'undefined' && typeof user_params.overAllDataForGa[0]['overAllPageActionForGa'] != 'undefined' && typeof user_params.overAllDataForGa[0]['overAllPageLabelForGa'] != 'undefined' && user_params.overAllDataForGa[0]['overAllPageActionForGa'] == 'Cart Page') { this.gaFireInteractiveEvents('cartpageproceedtopay', user_params.overAllDataForGa[0]['overAllPageLabelForGa']); } } this.triggerOverAllFunnel = function (args) { if (args.trigger) { temp = new Array(); if (args.isArray) { for (var i = 0; typeof args[i] != 'undefined'; i++) { if (!isNaN(args[i].value) && (args[i].value === 0 || args[i].value > 0)) { var value = args[i].value; } else { var value = 0; } temp.push(['_trackEvent', this.overAllFunnelString, args[i].funnelAction, args[i].label, value, true]); _gaq.push(['_trackEvent', this.overAllFunnelString, args[i].funnelAction, args[i].label, value, true]); } } else { if (!isNaN(args.value) && (args.value === 0 || args.value > 0)) { var value = args.value; } else { var value = 0; } temp.push(['_trackEvent', this.overAllFunnelString, args.funnelAction, args.label, value, true]); _gaq.push(['_trackEvent', this.overAllFunnelString, args.funnelAction, args.label, value, true]); } if (printGaInConsole) { console.log(temp); } } } this.triggerCustomFunnel = function (args) { if (args.trigger) { temp = new Array(); if (args.isArray) { for (var i = 0; typeof args[i] != 'undefined'; i++) { if (!isNaN(args[i].value) && (args[i].value === 0 || args[i].value > 0)) { var value = args[i].value; } else { var value = 0; } var noninteractiveness = true; if (typeof args[i].noninteractiveness != 'undefined' && (args[i].noninteractiveness == true || args[i].noninteractiveness == false)) { noninteractiveness = args[i].noninteractiveness; } _gaq.push(['_trackEvent', args[i].funnelString, args[i].funnelAction, args[i].label, value, noninteractiveness]); temp.push(['_trackEvent', args[i].funnelString, args[i].funnelAction, args[i].label, value, noninteractiveness]); } } else { if(args.value == 'send-url'){ var value = document.URL; } else if (!isNaN(args.value) && (args.value === 0 || args.value > 0)) { var value = args.value; } else { var value = 0; } var noninteractiveness = true; if (typeof args.noninteractiveness != 'undefined' && (args.noninteractiveness == true || args.noninteractiveness == false)) { noninteractiveness = args.noninteractiveness; } temp.push(['_trackEvent', args.funnelString, args.funnelAction, args.label, value, noninteractiveness]); _gaq.push(['_trackEvent', args.funnelString, args.funnelAction, args.label, value, noninteractiveness]); } if (printGaInConsole) { console.log(temp); } } } this.triggerClassRoomFunnel = function (args) { if (args.trigger) { tempClass = new Array(); if (args.isArray) { for (var i = 0; typeof args[i] != 'undefined'; i++) { if (!isNaN(args[i].value) && (args[i].value === 0 || args[i].value > 0)) { var value = args[i].value; } else { var value = 0; } _gaq.push(['_trackEvent', this.classRoomFunnelString, args[i].funnelAction, args[i].label, value, true]); tempClass.push(['_trackEvent', this.classRoomFunnelString, args[i].funnelAction, args[i].label, value, true]); } } else { if (!isNaN(args.value) && (args.value === 0 || args.value > 0)) { var value = args.value; } else { var value = 0; } tempClass.push(['_trackEvent', this.classRoomFunnelString, args.funnelAction, args.label, value, true]); _gaq.push(['_trackEvent', this.classRoomFunnelString, args.funnelAction, args.label, value, true]); } if (printGaInConsole) { console.log(tempClass); } } } this.triggerOnlineFunnel = function (args) { if (typeof args.trigger != 'undefined' && args.trigger) { tempOnline = new Array(); if (typeof args.isArray != 'undefined' && args.isArray) { for (var i = 0; typeof args[i] != 'undefined'; i++) { if (!isNaN(args[i].value) && (args[i].value === 0 || args[i].value > 0)) { var value = args[i].value; } else { var value = 0; } _gaq.push(['_trackEvent', this.onlineFunnelString, args[i].funnelAction, args[i].label, value, true]); tempOnline.push(['_trackEvent', this.onlineFunnelString, args[i].funnelAction, args[i].label, value, true]); } } else { if (!isNaN(args.value) && (args.value === 0 || args.value > 0)) { var value = args.value; } else { var value = 0; } tempOnline.push(['_trackEvent', this.onlineFunnelString, args.funnelAction, args.label, value, true]); _gaq.push(['_trackEvent', this.onlineFunnelString, args.funnelAction, args.label, value, true]); } if (printGaInConsole) { console.log(tempOnline); } } } this.eventsOverallOnTrainingType = function (courseType) { var args = new Array(); args.trigger = true; args.funnelAction = 'Training Type'; args.label = courseType; args.value = ''; this.triggerOverAllFunnel(args); } this.eventsClassRoomOnTrainingType = function () { var args = new Array(); args.trigger = true; args.funnelAction = 'Course Page'; args.label = course_name; args.value = ''; this.triggerClassRoomFunnel(args); } this.eventsOnlineOnTrainingType = function () { if(gaPageCategory == ''){ var args = new Array(); args.trigger = true; args.funnelAction = 'Course Page'; args.label = course_name; args.value = ''; this.triggerOnlineFunnel(args); } } this.gaFireOnCartPageInvalidCouponSubmit = function (invalidCouponLabel) { var args = new Array(); args.trigger = true; args.funnelString = this.invalidCoupon; args.funnelAction = 'Invalid Coupon'; args.label = invalidCouponLabel; args.value = ''; this.triggerCustomFunnel(args); } this.gaFireInteractiveEvents = function (keyInRedmineArray, label, action) { var args = new Array(); args.trigger = true; if(typeof this.eventsRedmine1094[keyInRedmineArray] === "undefined" || !this.eventsRedmine1094[keyInRedmineArray]) { console.warn("SL:Warn - gaFireInteractiveEvents > undefined eventsRedmine1094", keyInRedmineArray); return; } args.funnelString = this.eventsRedmine1094[keyInRedmineArray].category; if(typeof action != "undefined") { args.funnelAction = action; } else { args.funnelAction = this.eventsRedmine1094[keyInRedmineArray].action; } args.label = ''; if (this.eventsRedmine1094[keyInRedmineArray].labelRequired == true) { if (typeof this.eventsRedmine1094[keyInRedmineArray].labelValue != 'undefined') { label = this.eventsRedmine1094[keyInRedmineArray].labelValue; } if (typeof label == 'undefined') { if (printGaInConsole) { console.log('label not proper for ' + keyInRedmineArray); } } args.label = label; } if (this.eventsRedmine1094[keyInRedmineArray].labelRequired == false && typeof label != 'undefined') { if (printGaInConsole) { console.log('label not proper for ' + keyInRedmineArray); } } args.value = ''; args.noninteractiveness = this.eventsRedmine1094[keyInRedmineArray].noninteractiveness; this.triggerCustomFunnel(args); } this.forEachInFunnelTriggers = function (argumentArray, args, keyString) { for (var i = 0; typeof argumentArray[i] != 'undefined'; i++) { var temp = new Array(); if (typeof argumentArray[i][keyString + 'ActionForGa'] != 'undefined') { args.trigger = true; temp['funnelAction'] = argumentArray[i][keyString + 'ActionForGa']; } else { temp['funnelAction'] = ''; } if (typeof argumentArray[i][keyString + 'LabelForGa'] != 'undefined') { args.trigger = true; temp['label'] = argumentArray[i][keyString + 'LabelForGa']; } else { temp['label'] = ''; } if (typeof argumentArray[i][keyString + 'ValueForGa'] != 'undefined') { args.trigger = true; temp['value'] = argumentArray[i][keyString + 'ValueForGa']; } else { temp['value'] = ''; } args.push(temp); } return args; } this.fireDataLayerAdElement = function () { if (typeof user_params.adElementData != 'undefined' && user_params.adElementData.length > 0) { setTimeout(function () { timeoutForAdElement = 0; var adElementPushToDataLayer = function (adData, timeout) { if (typeof dataLayer == 'undefined') { dataLayer = []; } setTimeout(function() { if(printGaInConsole) { console.log(adData); } dataLayer.push(adData); }, timeout); } for (adData in user_params.adElementData) { if (user_params.adElementDataCoursePage) { if (window.location.hash == '#/ilt') { var adElementTrainingType = 'classroom'; } else if (window.location.hash == '#/osl') { var adElementTrainingType = 'online'; } else { var adElementTrainingType = 'either'; } } if (typeof user_params.adElementData[adData].event != 'undefined' && typeof user_params.adElementData[adData].depth != 'undefined') { var temp = new Object(); for (key in user_params.adElementData[adData]) { temp[key] = user_params.adElementData[adData][key]; } if (user_params.adElementDataCoursePage) { temp.trainingType = adElementTrainingType; } adElementPushToDataLayer(temp, timeoutForAdElement); timeoutForAdElement +=500; } } ; } , 5000 ); } } } /*------------- End : EventsData.js-----------*/ /*------------- Begin : FooterFunctions.js-----------*/ var getActiveWeUser = function () { if (typeof webengage !== "undefined" && typeof webengage.state !== "undefined" && typeof webengage.state.getForever === "function" && webengage.state.getForever() && webengage.state.getForever().uattr ) { return webengage.state.getForever().uattr; } return null; } function onlyUnique(value, index, self) { return self.indexOf(value) === index; } function closeTicker(id) { if (typeof id != 'undefined' && id) { var clas = document.getElementsByClassName(id); clas[0].style.display = 'none'; var date = new Date(); date.setTime(date.getTime() + (4 * 24 * 60 * 60 * 1000)); document.cookie = '_tikr_msg=1; expires=' + date.toGMTString() + '; path=/;SameSite=Lax'; return; } } function getCookieByName(c_name) { var i, x, y, ARRcookies = document.cookie.split(";"); for (i = 0; i < ARRcookies.length; i++) { x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("=")); y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1); x = x.replace(/^\s+|\s+$/g, ""); if (x == c_name) { return unescape(y); } } } var setCookieByName = function (cname, cvalue, exhours, path, sameSite) { path = path || "/"; var d = new Date(); d.setTime(d.getTime() + (exhours * 60 * 60 * 1000)); var expires = "expires=" + d.toUTCString(); var cookieStr = cname + "=" + cvalue + "; " + expires + ";path=" + path + ";domain=.simplilearn.com;"; if(typeof sameSite === "string" && sameSite.length > 0) { cookieStr += "SameSite=" + sameSite + ";"; if (sameSite == "None" && location.protocol == 'https:') { cookieStr = cookieStr + ";secure;"; } } else { cookieStr += "SameSite=Lax;" } document.cookie = cookieStr; } var setUser = function (email,lead) { console.log('setUser was called',email); if(typeof webengage != 'undefined' && typeof webengage.user != 'undefined' && typeof email != 'undefined' && email!= '') webengage.user.login(email); if (typeof webengage != 'undefined' && typeof webengage.screen != 'undefined' && typeof lead != 'undefined' && lead == 1) { webengage.screen("userInfo",{lead:1}); } } function GetUTMParams(sParam, cookieStr) { var cookieUTM = ''; if(typeof cookieStr != 'undefined' && cookieStr != '') { cookieUTM = cookieStr; } if(cookieUTM == '') cookieUTM = getCookieByName('__utmz'); if(typeof cookieUTM == 'undefined' || !cookieUTM ) { cookieUTM = getCookieByName('sl_utmz'); } //var cookieUTM = '31204797.1381386645.21.4.utmcsr=google|utmgclid=CLCM26HSi7oCFbF34godGFAA1g|utmccn=G-Brand-India|utmcmd=cpc|utmctr=simplilearn'; if (cookieUTM != '' && typeof cookieUTM != 'undefined' && cookieUTM != null) { var sURLVariablesstr = cookieUTM; sURLVariables = sURLVariablesstr.replace(/(.)+utmcsr/g, "utmcsr"); sURLVariables = sURLVariables.split('|'); for (var i = 0; i < sURLVariables.length; i++) { var sParameterName = sURLVariables[i].split('='); if (sParameterName[0] == sParam) { return sParameterName[1]; } } return false; } return false; } function sendUtmDetailsToDataLayer() { var utmSource = GetUTMParams('utmcsr'); if (utmSource != '') { var utmMedium = GetUTMParams('utmcmd'); var utmCampaign = GetUTMParams('utmccn'); setDataLayerForUTMDetails(utmSource, utmMedium, utmCampaign); } } function setDataLayerForUTMDetails(source, medium, campaign) { if (typeof dataLayer == 'undefined') { dataLayer = []; } dataLayer.push({ 'event': 'source-medium-campaign-details', 'source': source, 'medium': medium, "campaign": campaign }); return true; } function sendCountryCodeToDataLayer() { if (typeof dataLayer == 'undefined') { dataLayer = []; } if (typeof user_params.countryCode != 'undefined') { var pushData = {'countryCode': user_params.countryCode}; dataLayer.push(pushData); return true; } else { return false; } } function sendArticleParamsToDataLayer() { if (typeof dataLayer == 'undefined') { dataLayer = []; } if (typeof user_params.product_name != 'undefined') { var pushData = {'product_name': user_params.product_name}; dataLayer.push(pushData); } if (typeof user_params.product_id != 'undefined') { var pushData = {'product_id': user_params.product_id}; dataLayer.push(pushData); } if (typeof user_params.category != 'undefined') { var pushData = {'category': user_params.category}; dataLayer.push(pushData); } if (typeof user_params.category_id != 'undefined') { var pushData = {'category_id': user_params.category_id}; dataLayer.push(pushData); } if (typeof user_params.segment_name != 'undefined') { var pushData = {'segment_name': user_params.segment_name}; dataLayer.push(pushData); } if (typeof user_params.segment_id != 'undefined') { var pushData = {'segment_id': user_params.segment_id}; dataLayer.push(pushData); } if (typeof user_params.resource_type != 'undefined') { var pushData = {'resource_type': user_params.resource_type}; dataLayer.push(pushData); } return true; } var lpMTagConfig = {'lpServer': "server.iad.liveperson.net", 'lpNumber': "24435859", 'lpProtocol': (document.location.toString().indexOf('https:') == 0) ? 'https' : 'http'}; function lpAddMonitorTag(src) { if (typeof (src) == 'undefined' || typeof (src) == 'object') { src = lpMTagConfig.lpMTagSrc ? lpMTagConfig.lpMTagSrc : '/hcp/html/mTag.js'; } if (src.indexOf('http') != 0) { src = lpMTagConfig.lpProtocol + "://" + lpMTagConfig.lpServer + src + '?site=' + lpMTagConfig.lpNumber; } else { if (src.indexOf('site=') & 0) { if (src.indexOf('?') & 0) src = src + '?'; else src = src + '&'; src = src + 'site=' + lpMTagConfig.lpNumber; } } ; var s = document.createElement('script'); s.setAttribute('type', 'text/javascript'); s.setAttribute('charset', 'iso-8859-1'); s.setAttribute('src', src); document.getElementsByTagName('head').item(0).appendChild(s); } function downloadJSAtOnload() { //GTM init setTimeout(function() { //webengage code if (isDesktopDevice()) { // removing to enable new webengage account // window.webengageWidgetInit = window.webengageWidgetInit || function() { // webengage.init({licenseCode: webEngageId}).onReady(function() { // webengage.render(); // }); // }; // (function(d) { // var _we = d.createElement('script'); // _we.type = 'text/javascript'; // _we.async = true; // _we.src = (d.location.protocol == 'https:' ? "//ssl.widgets.webengage.com" : "//cdn.widgets.webengage.com") + "/js/widget/webengage-min-v-3.0.js"; // var _sNode = d.getElementById('_webengage_script_tag'); // _sNode.parentNode.insertBefore(_we, _sNode); // })(document); } //gamooga chat script //typeof is_href_lang === 'undefined' && if (typeof isMomPage !=='undefined' &&isMomPage == false && typeof is_caldon_pulse === 'undefined' && typeof isCaldonPage === 'undefined' && typeof is_enterprise_page ==='undefined' && typeof isB2BLandingPage === 'undefined' /*&& typeof is_corporate_page === 'undefined'*/) { getLiveChatCode(); } if (typeof is_caldon_pulse !== 'undefined' && is_caldon_pulse === 1) { sendArticleParamsToDataLayer(); } // gtmLoadScript(); sendUtmDetailsToDataLayer(); if (typeof isB2BLandingPage === 'undefined') sendCountryCodeToDataLayer(); var gaEvents = new gaEventsTracker; gaEvents.init(); }, 5000); mbsyCookieCheck(); } function getUserInfo(){ var returnUserInfo = {}; var $injector = angular.element(document).injector(); var $rootScope = $injector.get('$rootScope'); var user = $rootScope.userInfo || {}; user.name = user.name || user_params.first_name || ''; var nameData = user.name.split(/ (.+)/); returnUserInfo['first_name'] = nameData[0] || ''; var last_name = ""; if(typeof nameData[1] != 'undefined' && nameData[1] != '') last_name = nameData[1]; else last_name = user_params.last_name || '' returnUserInfo['last_name'] = last_name; returnUserInfo['email'] = user.email || user_params.email || ''; returnUserInfo['phone'] = user.phone || user_params.phone || ''; return returnUserInfo; } function returnLinkedInResponse(id, name, email, msg) { var $injector = angular.element(document).injector(); var $rootScope = $injector.get('$rootScope'); var currentUrl = window.location.href; var objs = document.querySelector("[ng-controller='HeaderController']"); var controllerVar = angular.element(objs); var scopeVar = controllerVar.scope(); if (typeof msg != 'undefined' && msg != '') { scopeVar.linkedErrClass = "error_msg"; scopeVar.linkedinErrMsg = msg; scopeVar.$apply(); } else { $rootScope.gaHeaderControllerJs.gaFireOnLoginSignupSuccess('linkedin'); user_params.loggedIn = 1; user_params.user_id = id; user_params.email = email; $rootScope.isLoggedIn = true; $rootScope.$emit('isLoggedIn', true); $rootScope.communityRequestPending = {'display': 'none'}; scopeVar.headerFormsStyle = {'display': 'none'}; scopeVar.$apply(); var PostReqService = $injector.get('PostReqService'); PostReqService.initFreeTrialCookie(); } if (typeof currentUrl != 'undefined' && currentUrl.indexOf('help-and-support') > 0) { location.reload(); } else if (window.refurl != 'undefined' && typeof window.refurl == 'object') { if (typeof window.refurl.host != 'undefined' && window.refurl.host != '' && typeof window.refurl.source != 'undefined' && window.refurl.source != '') { if (window.refurl.host == 'community.simplilearn.com') { window.location.href = window.refurl.source; //after success signup redirect to community page } else if (window.refurl.host == 'lms.simplilearn.com') { window.location.href = window.refurl.source; //after success signup redirect to lms page } } } } function getLiveChatCode() { var ta = document.createElement('script'); ta.type = 'text/javascript'; ta.async = true; ta.id = "__ta"; ta.src = '//cdn-jp.gsecondscreen.com/static/tac.min.js'; var fs = document.getElementsByTagName('script')[0]; fs.parentNode.insertBefore(ta, fs); ta.onload = function() { var gamoogaChatSpan = document.getElementsByClassName("gamooga_chat_span"); var gamoogaChatLoading = document.getElementsByClassName("gamooga_chat_loading"); var gamoogaChatLink = document.getElementsByClassName("ive_chat_right")[0]; if(gamoogaChatSpan.length == 0) { // console.warn('SL: gamooga chat not available'); return; } gamoogaChatLoading[0].className = gamoogaChatLoading[0].className + " hidden_class"; gamoogaChatSpan[0].className = gamoogaChatSpan[0].className.replace("hidden_class", " "); gamoogaChatLink.style.cursor = "pointer"; var mobileChatWrapper = document.getElementsByClassName("mobile_lead_wrapper")[0]; var loadingIcons = mobileChatWrapper.getElementsByClassName("load-icon"); loadingIcons[0].className = loadingIcons[0].className.replace("load-icon", " "); //loadingIcons[0].className = loadingIcons[0].className.replace("load-icon", " "); }; } //There was an img tag of shareasale in footer which was dispaying a blank space below footer. This code is to hide the same, if found: Abhijit var myintervalcount = 0; var myinterval = setInterval(function() { var shareASaleImgObj = document.querySelector("[src='https://shareasale.com/sale.cfm?amount=undefined&tracking=undefined&transtype=sale&merchantID=43470']"); myintervalcount++; if (typeof shareASaleImgObj != 'undefined' && shareASaleImgObj != null) { shareASaleImgObj.className = "hidden_class"; clearInterval(myinterval); } else { if (myintervalcount > 10) { clearInterval(myinterval); } } }, 1000); function isDesktopDevice() { var userAgentStr = navigator.userAgent; var isDesktop = true; if (userAgentStr.indexOf("Android") != -1 || userAgentStr.indexOf("iPad") != -1 || userAgentStr.indexOf("iPhone") != -1 || userAgentStr.indexOf("Blackberry") != -1 || userAgentStr.indexOf("BB") != -1 || userAgentStr.indexOf("Windows Phone") != -1 || userAgentStr.indexOf("Mobile") != -1) { isDesktop = false; } return isDesktop; } //Added code to fix ios devices body on click issue. #4365 (function() { var userAgentStr = navigator.userAgent; if (userAgentStr.indexOf("iPad") != -1 || userAgentStr.indexOf("iPhone") != -1) { document.body.style.cursor = 'pointer'; } })(); function setUpDataLayer(event, eventLabel, params) { if (typeof dataLayer == 'undefined') { dataLayer = []; } var d = new Date(); var n = d.getMilliseconds(); var pushData = { 'event': event, 'eventLabel': eventLabel } for (var key in params) { pushData[key] = params[key]; } dataLayer.push(pushData); return true; } function getParameterByName(name) { name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), results = regex.exec(location.search); return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); } function getPrefilledInfo(inputData, prefilledData) { var keys = Object.keys(inputData); var prefilInfo = { prefillled_data: 1, prefilled_source: null, prefilled_modified: 0 }; if(typeof prefilledData == 'undefined' || !prefilledData) { prefilInfo.prefillled_data = 0; prefilInfo.prefilled_source = 'other'; } else { prefilInfo.prefilled_source = prefilledData.source || 'other'; for(var i in keys) { var key = keys[i]; var input = inputData[key] || ''; var prefil = prefilledData[key] || ''; if(input != prefil) { prefilInfo.prefilled_modified = 1; } } } return prefilInfo; } function setSlGlobalData(key, val) { if(typeof window.sl_custom_val != 'object') { window.sl_custom_val = {}; } window.sl_custom_val[key] = val; window.sl_custom_param = encodeURIComponent(JSON.stringify(window.sl_custom_val)); } // Init golbal custom data function initSlGlobalData() { setSlGlobalData('last_source', fetchUTMSource()); setSlGlobalData('course_id', (typeof user_params == 'object' && user_params.sl_product_id && typeof user_params.sl_product_type !="undefined" && user_params.sl_product_type == "course") ? String(user_params.sl_product_id) : ''); setSlGlobalData('category_id', (typeof user_params == 'object' && user_params.sl_product_category_id) ? String(user_params.sl_product_category_id) : ''); } // Init after page load window.addEventListener("load", initSlGlobalData); function fetchUtmSourceFromUrl() { var utmcsr = getParameterByName('utm_source'); var utmccn = getParameterByName('utm_campaign'); var utmcmd = getParameterByName('utm_medium'); var utmctr = getParameterByName('utm_term'); var utmcct = getParameterByName('utm_content'); var utmgclid = getParameterByName('gclid'); var utmzCookie = null; if(utmcsr || utmccn || utmcmd || utmctr || utmcct || utmgclid) { utmzCookie = "utmcsr="+utmcsr+"|utmgclid="+utmgclid+"|utmccn="+utmccn+"|utmcmd="+utmcmd+"|utmctr="+utmctr+"|utmcct="+utmcct+"|create_type=manual_url"; } return utmzCookie; } function cJInit() { var cjevent = getParameterByName('cjevent'); if (cjevent != '') { var date = new Date(); date.setTime(date.getTime() + (90 * 24 * 60 * 60 * 1000)); window.cjevent = cjevent; document.cookie = 'cjevent=' + cjevent + '; expires=' + date.toGMTString() + '; path=/;domain=.simplilearn.com;SameSite=Lax'; } var cjeventCookie = getCookieByName('cjevent'); if ((cjevent == '' && typeof cjeventCookie != 'undefined' || cjeventCookie != '')) { window.cjevent = cjeventCookie; } } /** * Return source info. utmz cookie || utm source from url || find from * @returns String */ function fetchUTMSource() { var cookieVal = "utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)|create_type=manual"; // default value // from cookie var utmzCookie = getCookieByName('__utmz'); // from url if ((typeof utmzCookie == 'undefined' || !utmzCookie)) { utmzCookie = fetchUtmSourceFromUrl(); } // from referrer if ((typeof utmzCookie == 'undefined' || !utmzCookie) && document.referrer) { var referrer = document.referrer; var domainData = referrer.match(/\/\/[^/]+/); var domain = ''; var medium = 'referral'; var campaign = '(referral)'; var selfDomains = ['simplilearn', 'marketmotive']; var organicDomains = ['google', 'bing', 'yahoo', 'baidu', 'ask', 'youtube', 'yandex', 'aol']; var selfRefer = false; if(Array.isArray(domainData) && domainData[0]) { domain = (typeof domainData[0] == 'string')?domainData[0].replace('//', ''):''; for(var i in selfDomains) { var key = selfDomains[i]; if(domain.indexOf(key) !== -1) { selfRefer = true; } } if(!selfRefer) { for(var i in organicDomains) { var key = organicDomains[i]; if(domain.indexOf(key) !== -1) { domain = key; medium = 'organic'; campaign = '(organic)'; break; } } } } if(!selfRefer) { var utmcsr = domain; var utmcmd = medium; var utmcct = referrer; var utmccn = campaign; var utmctr = ''; var utmgclid = ''; utmzCookie = "utmcsr="+utmcsr+"|utmccn="+utmccn+"|utmcmd="+utmcmd+"|utmctr="+utmctr+"|utmcct="+utmcct+"|utmgclid="+utmgclid+"|create_type=manual_ref"; } } if (typeof utmzCookie == 'undefined' || !utmzCookie) { if(getCookieByName('sl_utmz')) { utmzCookie = getCookieByName('sl_utmz'); } else { utmzCookie = cookieVal; // default value } } if(!getCookieByName('__utmz')) { setCookieByName('sl_utmz', utmzCookie, 90, "/", "None"); } user_params.utm_params = utmzCookie; return utmzCookie; } function getGCLID(){ var utmz = fetchUTMSource(); var n = utmz.search(/|/i); var fromGoogle = false; var utmccnSet = false; var gclid = ''; var gclidToSet = ''; if(utmz != '' && n >= 0){ utmz = utmz.split('|'); if(utmz.length > 0){ for(var i = 0; i= 0){ var params = utmz[i].split('='); var n = params[0].search(/utmcsr/i); if(n >= 0 && params[1] == 'google'){ fromGoogle = true; } else if(params[0] == 'utmccn' && params[1] != ''){ utmccnSet = true; } else if(params[0].search(/utmgclid/i) != -1){ gclid = params[1]; } } } if(fromGoogle && utmccnSet && gclid != ''){ gclidToSet = gclid; } if(gclidToSet.length===0){ gclidToSet=getParameterByName("gclid"); } return gclidToSet; } else { if(gclidToSet.length===0){ gclidToSet=getParameterByName("gclid"); } return gclidToSet; } } else { if(gclidToSet.length===0){ gclidToSet=getParameterByName("gclid"); } return gclidToSet; } } function setSimplilearnCustomCookie() { window.addEventListener('load', function() { var firstLandingPage = getCookieByName('simplilearn_first_page'); if(!firstLandingPage) { var date = new Date(); date.setTime(date.getTime() + (90 * 24 * 60 * 60 * 1000)); setCookieByName('simplilearn_first_page', location.href, 90, "/", "None"); setCookieByName('simplilearn_landing_time', new Date().toISOString(), 90, "/", "None"); } var firstOrigin = getCookieByName('simplilearn_custom'); if (!firstOrigin) { setCustomCookie(0); } }, false); } function addCouponCodesToAACCookie(code_to_add){ try { //cookie expiration var days = 15; //Cookie expire after 15 day var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "expires="+date.toGMTString(); //Code_to_add will be in comma seperated string var code = getCookieByName('aac'); //If previous code present if(code_to_add != undefined && code_to_add != ''){ if(code != undefined && code != ''){ var aac_arr = code_to_add.split(','); var curr_aac = code.split(','); var last = ''; for(var i = 0; i < aac_arr.length; i++) { if(curr_aac.indexOf(aac_arr[i]) === -1){ curr_aac.push(aac_arr[i]); } } last = curr_aac.join(','); document.cookie = 'aac='+last+ '; path=/;domain=.simplilearn.com ; '+expires+';SameSite=Lax'; } else { document.cookie = 'aac='+code_to_add+ '; path=/;domain=.simplilearn.com ; '+expires+';SameSite=Lax'; } } } catch(e){ console.log("Error in auto Applying coupon"); } } function setCustomCookie(pCntr) { var utmzCookie = getCookieByName('__utmz'); if (utmzCookie) { setCookieByName('simplilearn_custom', utmzCookie, 90, "/", "None"); return; } else { ++pCntr; if (pCntr > 10) { return false; } setTimeout(function() { setCustomCookie(pCntr); }, 400); } } // Function to check the _fpc and _fbc cookie is being set or not function checkFbCookies(cnt){ var fbcCookie = getCookieByName('_fbc'); var fbpCookie = getCookieByName('_fbp'); if(fbcCookie || fbpCookie) { var getCampaignData = getCampaignDetails(); if (getCampaignData) { let new_campaign_source = getCampaignData.campaign_source == 'fbclid' ? fbcCookie : getCampaignData.campaign_source_id; setSlGlobalData('campaign_source', getCampaignData.campaign_source || ''); setSlGlobalData('campaign_source_id', new_campaign_source); setSlGlobalData('fbbrowserid', fbpCookie || ''); } return; } else { ++cnt; if(cnt > 10){ return false; } setTimeout(function(){ checkFbCookies(cnt); },1500); } } setSimplilearnCampaignCookies(); function setSimplilearnCampaignCookies() { window.addEventListener('load', function () { var utmcsr = GetUTMParams('utmcsr'); var utmcmd = GetUTMParams('utmcmd'); var duration = 180 * 24; var sourceCookies = ['gclid', 'fbclid', 'msclkid']; var mkwid = getParameterByName('mkwid'); var user_source_cookie = getCookieByName('user_source_cookie'); var isRemoveSourceCookie = false; var utmSource = utmcsr+','+utmcmd; if (!user_source_cookie) { setCookieByName('user_source_cookie', utmSource, duration); } else { var sourceCookie = []; if (user_source_cookie) { sourceCookie = user_source_cookie.split(","); } var source = ''; var medium = ''; if (typeof sourceCookie != 'undefined' && sourceCookie.length>0) { source = sourceCookie[0] ? sourceCookie[0] : ''; medium = sourceCookie[1] ? sourceCookie[1] : ''; } if (utmcsr && (utmcsr.toUpperCase() !== source.toUpperCase())) { isRemoveSourceCookie = true; setCookieByName('user_source_cookie', utmSource, duration); } else { if (utmcsr && (utmcsr.toUpperCase() == source.toUpperCase())) { if (utmcmd && medium && (utmcmd.toUpperCase() !== medium.toUpperCase())) { isRemoveSourceCookie = true; setCookieByName('user_source_cookie', utmSource, duration); } } } } var cookieSet = false; for (var i = 0; i < sourceCookies.length; i++) { var sourceName = sourceCookies[i]; var sourceValue = getParameterByName(sourceName); if (typeof sourceValue != 'undefined' && sourceValue) { var data = {}; data[sourceName] = sourceValue; setCookieByName('campaign_source', JSON.stringify(data), duration, "/", "None"); cookieSet = true; break; } } if (!cookieSet&&isRemoveSourceCookie) { setCookieByName('campaign_source', 0, 0); } if ((typeof mkwid == 'undefined' || !mkwid)) { if (cookieSet || isRemoveSourceCookie) { setCookieByName('campaign_platform', 0, 0); } } else { var mkwidData = { 'mkwid': mkwid } setCookieByName('campaign_platform', JSON.stringify(mkwidData), duration, '/', 'None'); } var getCampaignData = getCampaignDetails(); if (getCampaignData) { let new_campaign_source = getCampaignData.campaign_source == 'fbclid' ? getCookieByName('_fbc') : getCampaignData.campaign_source_id; setSlGlobalData('campaign_source', getCampaignData.campaign_source || ''); setSlGlobalData('campaign_source_id', new_campaign_source); setSlGlobalData('fbbrowserid', getCookieByName('_fbp') || ''); setSlGlobalData('mkwid', (typeof getCampaignData == 'object' && getCampaignData.mkwid) || ''); } checkFbCookies(0); }, false); } function hideMobileFooterDropQueryLink() { var drpQryLink = document.getElementsByClassName("mob_footer_drp_qry"); var chatLink = document.getElementsByClassName("mob_footer_chat"); drpQryLink[0].className = drpQryLink[0].className + " hidden_class"; drpQryLink[1].className = drpQryLink[1].className + " hidden_class"; chatLink[0].className = chatLink[0].className + " full-width"; chatLink[1].className = chatLink[1].className + " full-width"; } function showMobileFooterDropQueryLink() { var drpQryLink = document.getElementsByClassName("mob_footer_drp_qry"); var chatLink = document.getElementsByClassName("mob_footer_chat"); drpQryLink[0].className = drpQryLink[0].className.replace("hidden_class", ""); drpQryLink[1].className = drpQryLink[1].className.replace("hidden_class", ""); chatLink[0].className = chatLink[0].className.replace("full-width", ""); chatLink[1].className = chatLink[1].className.replace("full-width", ""); } setSimplilearnCustomCookie(); var mbsyName = 'mbsy'; var mbsyshortCode = getParameterByName(mbsyName); function mbsyCookieCheck() { var c = getCookieByName(mbsyName); if ((mbsyshortCode != '' && mbsyshortCode)) { if (mbsyshortCode != c) { setCookieByName('mbsy', mbsyshortCode, 90, '/', 'None'); return; } } else if (c) { mbsyshortCode = c; } } /** * Get hash parameter value by key * @param {string} key * @returns {string|null} */ function getHashByKey(key) { var query = location.hash.replace('#%2F','').replace('#/','').replace('#',''); var vars = query.split('&'); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split('='); if (decodeURIComponent(pair[0]) == key) { return (pair[1])?decodeURIComponent(pair[1]) : ''; } } return null; } function getHashList() { var query = location.hash.replace('#%2F','').replace('#/','').replace('#',''); var vars = query.split('&'); var list = {}; for (var i = 0; i < vars.length; i++) { var pair = vars[i].split('='); if(!pair[1]) { list['hashTag'] = pair[0]; } list[pair[0]] = (pair[1])?decodeURIComponent(pair[1]) : ''; } return list; } function generateLeadId(key) { (typeof key == 'undefined' || !key) && (key = '*'); window.latest_lead_uid = new Date().getTime() + "_" + key.substr(0, 4) + "_" + parseInt(Math.random() * 10000); return window.latest_lead_uid; } function getCookieOrigin() { var utmzVal = getCookieByName('__utmz'); var ls_utmzVal = getCookieByName('sl_utmz'); var utmzVal = typeof utmzVal !== "undefined" ? utmzVal : ls_utmzVal; return utmzVal; } function getDeviceInfo(userAgent) { var deviceInfo = {}; var isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0; // Opera 8.0+ (UA detection to detect Blink/v8-powered Opera) var isFirefox = typeof InstallTrigger !== 'undefined'; // Firefox 1.0+ var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0; // At least Safari 3+: "[object HTMLElementConstructor]" var isChrome = !!window.chrome && !isOpera; // Chrome 1+ var isIE = /*@cc_on!@*/false || !!document.documentMode; // At least IE6 var browserOs = "unknown"; var nAgt = navigator.userAgent; if(typeof userAgent !== 'undefined' && userAgent ) { nAgt = userAgent; } var clientStrings = [ {s:'Windows 10', r:/(Windows 10.0|Windows NT 10.0)/}, {s:'Windows 8.1', r:/(Windows 8.1|Windows NT 6.3)/}, {s:'Windows 8', r:/(Windows 8|Windows NT 6.2)/}, {s:'Windows 7', r:/(Windows 7|Windows NT 6.1)/}, {s:'Windows Vista', r:/Windows NT 6.0/}, {s:'Windows Server 2003', r:/Windows NT 5.2/}, {s:'Windows XP', r:/(Windows NT 5.1|Windows XP)/}, {s:'Windows 2000', r:/(Windows NT 5.0|Windows 2000)/}, {s:'Windows ME', r:/(Win 9x 4.90|Windows ME)/}, {s:'Windows 98', r:/(Windows 98|Win98)/}, {s:'Windows 95', r:/(Windows 95|Win95|Windows_95)/}, {s:'Windows NT 4.0', r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/}, {s:'Windows CE', r:/Windows CE/}, {s:'Windows 3.11', r:/Win16/}, {s:'Android', r:/Android/}, {s:'Open BSD', r:/OpenBSD/}, {s:'Sun OS', r:/SunOS/}, {s:'Linux', r:/(Linux|X11)/}, {s:'iOS', r:/(iPhone|iPad|iPod)/}, {s:'Mac OS X', r:/Mac OS X/}, {s:'Mac OS', r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/}, {s:'QNX', r:/QNX/}, {s:'UNIX', r:/UNIX/}, {s:'BeOS', r:/BeOS/}, {s:'OS/2', r:/OS\/2/}, {s:'Search Bot', r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/} ]; for (var id in clientStrings) { var cs = clientStrings[id]; if (cs.r.test(nAgt)) { browserOs = cs.s; break; } } var deviceType = 'Desktop'; if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(nAgt) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(nAgt.substr(0, 4))) deviceType = 'Mobile'; var deviceName = null; if (nAgt.match(/Android/i)) { deviceName = 'Android'; } if (nAgt.match(/BlackBerry/i)) { deviceName = 'BlackBerry'; } if (nAgt.match(/iPhone/i)) { deviceName = 'iPhone'; } if (nAgt.match(/iPad/i)) { deviceName = 'iPad'; } if (nAgt.match(/iPod/i)) { deviceName = 'iPod'; } deviceInfo = {browserOs: browserOs, deviceType: deviceType, deviceName: deviceName}; return deviceInfo; } function getGdprOptInText(countryId, siteModule) { var gdprOptinText = 'Please contact me about course options and additional scholarships.'; var gdprSiteModules = ["bundle agenda", "course preview", "course agenda", "ebook_download", "frs-ebook-hot", 'on demand webinar', "fpt-paper-cold", "GSA_Brochure", "atp brochure", "B2B-ebook"]; var agreeText = ''; var euroCountryArr = []; if (typeof euroCountriesIds !== "undefined" && euroCountriesIds) { euroCountryArr = euroCountriesIds.split(","); } if (countryId && siteModule && euroCountriesIds.indexOf(countryId)!=-1 && gdprSiteModules.indexOf(siteModule)!=-1) { agreeText = gdprOptinText; } return agreeText; } function getLeadTrainingType(leadTrainingType) { var leadTrainingTypeStr = ""; //var trainingTypeLists = ['classroom', 'osl', 'lvc', 'tests', 'webinar', 'ides', 'onlinetolvc', 'notsure', 'coursePass']; var lead_class_room_training_str = 'Classroom Training'; var lead_osl_training_str = 'Online Self Learning'; var lead_instructor_led_training_str = 'Instructor Led Online Classroom'; var lead_flexi_pass_training_str = 'Online Classroom Flexi-Pass'; if (typeof leadTrainingType !== "undefined") { switch (leadTrainingType) { case "classroom": leadTrainingTypeStr = lead_class_room_training_str; break; case "osl": leadTrainingTypeStr = lead_osl_training_str; break; case "coursePass": leadTrainingTypeStr = lead_flexi_pass_training_str; break; case "lvc": leadTrainingTypeStr = lead_flexi_pass_training_str; break; case "online": leadTrainingTypeStr = lead_osl_training_str; break; default: leadTrainingTypeStr = lead_osl_training_str; } } return leadTrainingTypeStr; } function formatTZDateTime(dateTime) { var formatedDateTime = ''; if (typeof dateTime !== "undefined" && dateTime) { var date = new Date(dateTime); var yy = date.getFullYear(); var gg = date.getDate(); var mm = (date.getMonth() + 1); if (gg < 10) gg = "0" + gg; if (mm < 10) mm = "0" + mm; var cur_day = yy + "-" + mm + "-" + gg; var hours = date.getHours() var minutes = date.getMinutes() var seconds = date.getSeconds(); if (hours < 10) hours = "0" + hours; if (minutes < 10) minutes = "0" + minutes; if (seconds < 10) seconds = "0" + seconds; formatedDateTime = cur_day + " " + hours + ":" + minutes + ":" + seconds; } return formatedDateTime } var produtPageViewedEvent = function() { webengage.onReady(function () { WebTracking.eventReq.triggerEvent({ event_id: "sl_eng_product_page_viewed", event_data: {}, common: "product" }); }); } function checkIfAccordionIsOpen(accordionId) { var isAccordionOpen = false; if (accordionId) { var accordionElm = document.getElementById(accordionId); if (accordionElm) { isAccordionOpen = accordionElm.classList.contains("arrow-down"); } } return isAccordionOpen; } function breadcrumEvent(productType,gotoLink,name,id) { var eventData = {}; eventData['sl_destination_product_type'] = productType || ''; eventData['sl_destination_link'] = gotoLink || ''; eventData['sl_destination_product_name'] = name || ''; eventData['sl_destination_product_id'] = parseInt(id) || ''; WebTracking.eventReq.triggerEvent({ event_id: "sl_nav_breadcrumb_clicked", event_data: eventData, common: "product" }); } function getCampaignDetails() { var simpli_source = getCookieByName('campaign_source'); var simpliSourceCookieObj = {}; if (typeof simpli_source != 'undefined' && simpli_source) { simpliSourceCookieObj = JSON.parse(simpli_source); } var sourceKeyObj = Object.keys(simpliSourceCookieObj); var campaignSource = ''; var campaignSourceId = ''; if (sourceKeyObj) { campaignSource = sourceKeyObj[0] || ''; if(campaignSource == 'fbclid'){ campaignSourceId = getCookieByName('_fbc'); } else { campaignSourceId = simpliSourceCookieObj[campaignSource] || ''; } } /* * sending merin id to lead */ var campaign_platform = getCookieByName('campaign_platform'); var campaignPlatformCookieObj = {}; if (typeof campaign_platform != 'undefined' && campaign_platform) { campaignPlatformCookieObj = JSON.parse(campaign_platform); } var compPlatforms = Object.keys(campaignPlatformCookieObj); var campaignPlatformId = ''; if (compPlatforms) { var campaignPlatform = compPlatforms[0] || ''; campaignPlatformId = campaignPlatformCookieObj[campaignPlatform] || ''; } var campignDetails = { 'campaign_source': campaignSource, 'campaign_source_id': campaignSourceId, 'mkwid': campaignPlatformId || '' } return campignDetails; }; function initPreChat() { try { if (typeof DISABLE_PRECHAT_STATUS === "undefined") return; if (typeof prechat_sub == 'function' && DISABLE_PRECHAT_STATUS == 1) { prechat_sub(); } } catch (e) { console.error("SL:Error prechat_sub is not a defined") } } !function(e){"use strict";function h(b){var a=b.charCodeAt(0);if(55296<=a&&56319>=a)if(b=b.charCodeAt(1),b===b&&56320<=b&&57343>=b){if(a=1024*(a-55296)+b-56320+65536,65535>>18,128|a>>>12&63,128|a>>>6&63,128|a&63)}else return d(239,191,189);return 127>=a?inputString:2047>=a?d(192|a>>>6,128|a&63):d(224|a>>>12,128|a>>>6&63,128|a&63)}function k(b){var a=b.charCodeAt(0)<<24,f=l(~a),c=0,e=b.length,g="";if(5>f&&e>=f){a=a<>>24+f;for(c=1;c=a?g+=d(a):1114111>= a?(a-=65536,g+=d((a>>10)+55296,(a&1023)+56320)):c=0}for(;c>>0)/n|0},d=String.fromCharCode,p=atob,q=btoa;e.btoaUTF8=function(b,a){return q((a?"\u00ef\u00bb\u00bf":"")+b.replace(/[\x80-\uD7ff\uDC00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]?/g,h))};e.atobUTF8=function(b,a){a||"\u00ef\u00bb\u00bf"!==b.substring(0,3)||(b=b.substring(3));return p(b).replace(/[\xc0-\xff][\x80-\xbf]*/g,k)}}(""+void 0==typeof global? ""+void 0==typeof self?this:self:global) // set auh function setAuh(eventData) { try { if (typeof btoa !== "function") throw new Error("btoa not defined") var eventData = eventData || {}; var email = eventData.sl_user_email || eventData.email || null; if (email) { var phone = eventData.sl_user_phone || ''; if (!phone) { phone = (eventData.phoneCode) ? "+" + eventData.phoneCode.replace("-", "").replace("+", "") + "-" : ""; phone += eventData.phone || ''; } var name = eventData.username || eventData.name || ''; if (!name) { name = (eventData.firs_tname || '') + ' '; name += eventData.last_name || ''; name = name.trim(); } var hashData = [email, phone, name]; hashData.push(eventData.sl_user_phone || ''); var auh = btoa(hashData.join(",")); if (auh) { var expTime = user_params.AUH_EXPIRE_TIME * 24; setCookieByName("auh", auh, expTime); } } } catch (e) { console.error("SL:Error auh set failed", e); } } /*------------- End : FooterFunctions.js-----------*/ /*------------- Begin : SearchTags.js-----------*/ var search_tags = {"0":"business","1":"technology","2":"capm","3":"exam","4":"prep","5":"banking","6":"software development","7":"healthcare","8":"it","9":"services","10":"consulting","11":"including integration","12":"cost","13":"time","14":"scope","15":"quality","16":"communications","17":"human","18":"resource","19":"management","20":"risk","21":"procurement","22":"project","24":"project management","25":"risk management","26":"time management","27":"primevera","28":"pmi","29":"all","32":"csm","33":"scrummaster","34":"certified scrum master","35":"scrum","36":"master","37":"planning management","39":"scrum master","40":"scrum alliance","41":"agile and scrum","42":"psm","43":"safe","44":"csd","48":"program","49":"programme","51":"professional","52":"pgmp","54":"stakeholder","55":"assessment","56":"engagement","57":"life","58":"cycle","59":"governance","60":"closure","61":"supporting","62":"process","63":"multiple","64":"projects","68":"agile certified practitioner","69":"pmi-acp","71":"acp","72":"agile","75":"dsdm","76":"pmbok","77":"apm","78":"kanban","80":"planning","81":"pmi acp","85":"pmp","87":"pdu","88":"waterfall","89":"cascade","90":"structure","91":"model","92":"responsive","93":"forecasting","97":"schedule","99":"overrun","101":"processes","102":"group","103":"knowledge","104":"area","105":"construction","106":"infrastructure","107":"delivery","108":"optimization","109":"certification","111":"modelling","113":"leverage","114":"mitigation","115":"predictive","119":"project manager","121":"ipma","122":"project +","126":"45 pdu","128":"plan","130":"change","131":"prince2","134":"stage","136":"controlling","137":"boundary","138":"apmg","139":"practitioner","140":"ato","142":"foundation","150":"qualitative","151":"analysis","152":"quantitative","153":"responses","156":"rmp","157":"audits","158":"reassessment","159":"pmi rmp","163":"big-data and hadoop developer","164":"bigdata","165":"hadoop","166":"pig","167":"hive","168":"mapreduce","169":"hbase","170":"zookeeper","171":"sqoop","172":"flume","173":"deployment","174":"cloudera","175":"cloud","176":"analytics","177":"datascience","178":"research","179":"modeling","180":"big data","181":"data science","182":"business analytics","183":"data scientist","184":"big data and hadoop","185":"data analysis","186":"machine learning","187":"business analysis","188":"data analyst","189":"hadoop admin","190":"scala","191":"cassandra","192":"bdh","193":"spark","196":"cisa","197":"audit","198":"cyber","199":"security","200":"pentesting","201":"cryptography","203":"networking","204":"network","205":"hack","206":"secure","207":"trojan","208":"countermeasure","209":"backdoors","210":"firewalls","211":"honeypots","212":"wireless","213":"virus","214":"defense","215":"regulations","216":"compliance","217":"informaton","219":"auditor","220":"crisc","221":"cgeit","222":"is27001","223":"cissa","226":"cissp","248":"isc2","249":"architecture","251":"csslp","254":"cobit","277":"prm","278":"pam","284":"certified lean six sigma black belt","285":"defect","286":"defects","287":"six","288":"sigma","289":"green belt","290":"asq","292":"statistical","293":"statistics management","294":"define","295":"iassc","296":"measure","297":"analyze","298":"improve","299":"control","300":"dmaic","301":"manufacturing","303":"service","305":"retail","306":"supply chain","307":"minitab","308":"cssgb","309":"electronics","310":"lean","311":"lssgb","312":"lssbb","313":"istqb","314":"astqb","315":"blackbelt","316":"sixsigma","317":"csqa","321":"lean management certification","322":"lean training","323":"lean management training","324":"lean management course","325":"lean training program","326":"lean certification","329":"ceh (v12)- certified ethical hacker","330":"ceh","331":"v12","332":"ethical","333":"hacking","334":"hacker","338":"spoofing","343":"ilabs","344":"eccouncil","354":"312-50","356":"cnd","359":"ec","360":"disaster","361":"v11ilabs","363":"ec-council","367":"ccba","368":"iiba","371":"cbap","372":"requirement","373":"swot","374":"communication","375":"babok","377":"business analyst","378":"risk analysis","379":"enterprise analysis","380":"swot analysis","381":"capability analysis","382":"requirement analysis","383":"bacp","384":"pba","387":"salesforce administrator","388":"salesforce admin","389":"administrator","390":"adm 201","391":"201","392":"sfdc","394":"sales","395":"app exchange","396":"force.com","397":"chatter","399":"administrators","400":"crm","401":"siebel","404":"salesforce developer","405":"salesforce app builder","406":"salesforce","407":"developer dev 401","410":"data model","411":"application","418":"togaf 9.1","419":"togaf","420":"the open group","421":"enterprise architecture","422":"solution architect","423":"togaf level1","424":"togaf level2","425":"adm","426":"togaf9 foundation","427":"architecture framework","428":"architecture forum","431":"70-411","432":"administering windows server 2012 - r2","433":"windows","434":"microsoft","435":"ms 2012 server","436":"r2","437":"administering","438":"db","439":"gpo","440":"encryption","441":"vpn","444":"salesforce administrator & developer","446":"admin","453":"appexchange","458":"developer","459":"dev","460":"401","461":"dev401","463":"data","470":"data science with r","471":"r course","472":"r certification","473":"r online course","474":"r training","475":"r programming course","476":"r programming certification","477":"learn r online","481":"certified lean six sigma green belt","502":"supply","503":"chain","507":"lean.lssgb","515":"python development suite","516":"python development","517":"programming","518":"python","521":"website conversion rate optimization","522":"conversion","523":"optimisation","524":"roi","525":"digital","526":"online","527":"internet","528":"marketing","529":"google","530":"ecommerce","533":"mobile marketing","534":"mobile","540":"app","541":"adwords","542":"admob","546":"remarketing","547":"pay per click (ppc)","548":"ppc","549":"click","556":"bing","560":"search engine optimization (seo)","561":"seo","565":"online marketing","567":"search engine","571":"social media","576":"facebook","577":"twitter","579":"g+","580":"digital marketing","582":"internet marketing","587":"certified business analysis professional (cbap)","605":"cbip","615":"uk","616":"europe","621":"usa","633":"cspo certification training","635":"cspo","643":"scrumalliance","646":"product owner","650":"mongodb","654":"develop","656":"training","661":"kafka? ?certification?","662":"learn kafka","663":"kafka training","664":"kafka course","665":"kafka for beginners","666":"kafka online training","669":"cism","673":"course","677":"apache spark","678":"apache scala","681":"spark training","682":"scala training","683":"spark certification","684":"scala certification","685":"scala programming","686":"spark and scala","687":"spark and scala training","688":"spark and scala certification","692":"agile scrum master","693":"advanced agile scrum","697":"aws solutions architect","698":"aws training","699":"aws certification","700":"aws course","701":"cloud training","704":"data science with python","705":"python data science course","706":"data science with python training","707":"data science with python certification","708":"data science with python online training","711":"aws developer certification","712":"aws developer training","713":"aws developer course","716":"aws sysops certification","717":"aws sysops training","718":"aws sysops course","719":"sysops associate","720":"aws sysops","724":"advanced java","725":"advanced java training","726":"java ee","727":"java soa","728":"java course","729":"java soa course","730":"j2ee training","731":"java spring","732":"hibernate","736":"certified","741":"classroom","746":"agilist","747":"framework","749":"traning","750":"leading","751":"simplilearn","755":"pmp exam","758":"tableau","759":"tableau 10","760":"tableau desktop","761":"visualization","762":"reporting","763":"bi","764":"business intelligence","765":"data warehouse","766":"data sources","767":"visualization tool","768":"data analytics","770":"understand data","771":"tableau software","772":"create data visualizations","774":"data engineering","776":"tableau online","778":"data visualization","779":"data driven","780":"tableau server","781":"tableau certification cost","782":"data visualization certification","783":"tableau certificate","784":"tableau online course","787":"angular","788":"angular1","789":"angular2","790":"angular5","791":"angular6","794":"selenium","795":"selenium1","798":"node.js","799":"nodejs","800":"node js","803":"ccsp","807":"icp-acc","811":"kmp-1","814":"devops","817":"sql","820":".net","823":"comptia-security+","830":"product","831":"owner","840":"power bi","842":"power bi certification","843":"power bi training","844":"power bi course","845":"microsoft power bi certification","846":"power bi certification training","850":"deep learning","851":"tensorflow","852":"deep learning certification","853":"deep learning online training","854":"deep learning course","859":"advanced scrum master","860":"advanced certified scrum master","861":"advanced scrum master certification","862":"advanced csm","865":"mobile and software","868":"cloud computing","872":"it service and architecture","873":"itil","874":"itil 4","875":"it executives","876":"it architects","877":"it audit managers","878":"it planners","882":"microsoft azure","883":"azure architect design","884":"az-305","885":"az-305 training","886":"azure architect design course","889":"iot","893":"safe scrum master","894":"safe scrum master certification","895":"safe scrum","896":"ssm certification","897":"safe ssm","904":"product manager","905":"(popm)","920":"kubernetes","921":"cka","922":"certified kubernetes administrator","923":"kubernetes administrator","924":"kubernetes training","925":"cka training","926":"cka certification","927":"certified kubernetes administrator training course","928":"certified kubernetes administrator certification course","932":"big data on aws","935":"digital strategy for brand marketing","936":"brand marketing","937":"brand advertising","938":"brand marketing training","939":"brand marketing online training","940":"digital strategy","941":"digital strategy training","952":"google cloud platform architect training","953":"gcp architect","954":"gcp","955":"google cloud platform training","956":"professional cloud architect","959":"ci\/cd pipelines with jenkins","960":"jenkins","961":"jenkins certification training","962":"continuous integration","963":"continuous deployment","964":"ci","965":"cd","966":"pipelines","967":"jenkins training","968":"jenkins certification","972":"docker certified associate (dca) certification training course","973":"docker","975":"containerization","976":"docker training","977":"docker certification","989":"professional scrum master? ii","993":"certified scrum master\u00ae","1000":"full stack development","1004":"bcg","1005":"industry4.0","1009":"iitk da: data analytics with r","1013":"umnb ds - business analytics with excel","1016":"iris production check 456","1020":"web","1028":"advanced digital marketing course","1029":"digital marketing masters course","1030":"advanced digital marketing training","1031":"marketing certification courses","1032":"digital marketing specialist course","1033":"digital marketing expert","1034":"digital marketing masters","1035":"advanced marketing course","1036":"advanced marketing training","1037":"digital marketing course","1038":"digital marketing training","1039":"digital marketing certification","1041":"advanced digital marketing","1042":"omca","1043":"omcp","1046":"lean management","1047":"lean six sigma course","1048":"six sigma black belt course","1049":"six sigma black belt training","1050":"six sigma black belt certification","1051":"six sigma green belt course","1052":"lean six sigma green belt course","1053":"lean six sigma black belt course","1054":"six sigma experts","1055":"minitab course","1056":"minitab training","1057":"six sigma masters","1058":"lean six sigma masters","1059":"lean six sigma green belt","1060":"lean six sigma black belt","1062":"data scientist masters","1063":"data scientist masters program","1064":"data science masters","1065":"data science masters program","1066":"data scientist course","1067":"data scientist training","1068":"python for data science","1069":"data science course","1070":"data science training","1073":"business analyst masters","1074":"data analytics expert","1075":"masters in business analytics","1076":"business analytics expert","1077":"business analytics masters certification","1078":"business analytics training","1079":"business analytics course","1080":"analytics certification","1081":"excel analytics course","1082":"data analytics with excel","1084":"devops architect","1085":"devops engineer","1086":"devops masters","1087":"devops expert course","1088":"devops masters program","1089":"devops masters course","1090":"devops architect training","1091":"aws solution architect associate","1094":"aws certification training","1095":"aws solution architect","1097":"azure certification 70-532","1098":"70-532","1099":"azure 70-532","1100":"microsoft azure certification","1101":"microsoft azure course","1102":"micosoft azure training","1111":"devops foundation","1112":"devops course","1113":"devops training","1114":"devops certification","1115":"devops practitioner","1116":"devops certificate training","1117":"devops engineer course","1118":"devops foundation course","1119":"devops course content","1121":"full stack developer course","1122":"full stack developer certification","1123":"full stack developer training","1124":"mean stack course","1125":"mean stack certification","1126":"full stack certification","1127":"mean stack developer","1128":"mean stack training","1129":"full stack development course","1130":"mean stack masters","1131":"mean stack masters course","1132":"mean stack developer course","1133":"mongodb certification","1134":"mongodb training","1135":"mongodb course","1136":"node js certification","1137":"node js training","1138":"node js course","1139":"angular certification","1140":"angular training","1141":"angular course","1143":"core java course","1144":"java training course","1145":"java certification","1147":"automation testing","1148":"automation testing course","1149":"automation testing certification","1150":"automation testing masters","1151":"automation testing masters course","1152":"selenium training","1153":"selenium training course","1154":"selenium course","1155":"selenium certification","1156":"automation test engineer course","1157":"automation test engineer","1160":"pmp plus","1161":"pmp bundle course","1162":"pmp pdu","1163":"pmp course","1164":"pmp training","1165":"pmp certification","1166":"project management course","1167":"pmp 60 pdu","1168":"pmp 60 pdu course","1169":"pmi-rmp","1170":"pmi-rmp course","1171":"pmp bundle","1172":"project management training","1173":"project management certification","1175":"pmp+","1176":"pmp+ course","1177":"pmp+ bundle","1178":"pmp+ masters","1181":"pmp renewal pdu courses","1182":"pmp 60 pdu courses","1183":"pmp pdu courses","1184":"pmp renewal pdu","1185":"pmp 60 pdus","1186":"pmp pdu renewal","1191":"pmp renewal","1195":"masters in artificial intelligence","1196":"masters in ai","1197":"ai masters","1200":"digital project manager","1201":"digital project manager course","1202":"digital project manager certification","1203":"digital project management","1204":"digital project manager masters program","1205":"digital project manager expert course","1207":"cyber security","1208":"cyber security expert","1209":"cyber security master","1211":"big data engineer","1212":"big data engineering","1213":"big data engineering courses","1214":"big data engineer course","1215":"what is big data engineering","1216":"simplilearn big data engineer","1217":"how to become a big data engineer","1218":"big data engineering courses in india","1219":"big data engineer course online","1221":"data analyst course","1222":"data analytics certification","1223":"data analyst training","1224":"data analytics course","1225":"data analytics training","1226":"data analyst master's program","1228":"advanced data science program","1229":"advanced data science certificate program","1230":"advanced certificate program in data science","1232":"ai ml courses","1233":"ai ml certification","1234":"ai and ml courses","1235":"ai and ml certification","1236":"ml ai course","1237":"ai and ml certification course","1239":"java full stack developer","1240":"full stack developer","1241":"full stack java developer","1242":"java developer","1243":"software developer","1244":"full stack","1245":"front-end","1246":"back-end","1247":"full stack java developer training program","1249":"java full stack developer course","1250":"java full stack certification","1251":"full stack java developer certification","1253":"aws cloud architect","1254":"aws architect","1255":"cloud architect","1258":"azure cloud architect","1260":"azure architect","1262":"data analytics program","1263":"professional certificate program in data analytics","1267":"itil training","1268":"itil course","1269":"itil certification","1270":"itil managing professional","1278":"pgp in devops","1279":"devops master program","1284":"post graduate certification in cloud","1287":"project leadership","1289":"pgp in project management","1290":"project leadership master program","1295":"security expert","1296":"post graduate program in cyber security","1300":"fsd","1304":"lean six sigma","1308":"professional digital marketing course","1311":"digital transformation","1312":"digital disruption","1313":"strategy for digital transformation","1314":"data science for leaders","1315":"digital transformation course","1316":"digital transformation certification","1318":"blockchain","1319":"bitcoin","1320":"hyperledger","1321":"ripple","1322":"eos","1327":"advanced executive program in cyber security","1330":"cloud devops","1332":"cloud masters","1337":"supply chain management","1338":"digital supply chain management","1339":"pgp in supply chain","1340":"pgp in digital supply chain management","1342":"ui ux design","1343":"ui ux design course","1344":"ux design course","1345":"ui and ux design","1346":"ui design course","1347":"ui ux course","1348":"ux ui course","1349":"ux design bootcamp","1350":"ux design certification","1351":"ui design online","1352":"ux design course online","1353":"ui ux bootcamp","1354":"ui and ux design course","1355":"ux courses","1358":"iu","1359":"one year global mba","1360":"mba","1366":"caltech","1368":"ai","1369":"artificial intelligence","1372":"reinforcement learning","1373":"nlp","1374":"natural language processing","1377":"cloud bootcamp","1387":"coding bootcamp","1389":"caltech bootcamp","1390":"bootcamp","1392":"software","1395":"imt","1396":"digital marketing programs","1407":"excel","1424":"aws","1425":"azure","1430":"product management certification","1431":"product management certificate","1432":"product management course online","1435":"strategic decision making","1436":"iit roorkee","1440":"masters","1443":"master in engineering management","1446":"digital marketing bootcamp","1447":"purdue","1450":"hr","1453":"hr analytics","1459":"automation software testing","1462":"umass amherst digital marketing training","1470":"business decisions","1471":"strategy","1474":"executive leadership principles program","1475":"leadership","1479":"professional certificate in brand strategy","1482":"master in management","1485":"general management","1486":"executive general management programme","1487":"general management program","1488":"general management course","1489":"master in general management","1490":"general management courses online","1491":"general management certification","1492":"executive programme in general management","1493":"certificate program in general management","1494":"accelerated general management program","1498":"ux ui bootcamp","1499":"ux\/ui bootcamp","1500":"ui\/ux bootcamp","1501":"ui ux design bootcamp","1502":"ui ux programs","1503":"best ux ui bootcamp","1504":"ux ui design bootcamp","1505":"best ui ux bootcamp","1506":"best ux\/ui bootcamp","1507":"ui ux designer bootcamp","1508":"best ux\/ui programs","1509":"ui ux bootcamp online","1510":"ui\/ux bootcamp online","1513":"product management bootcamp","1514":"product bootcamp","1515":"bootcamp product management","1516":"bootcamp product manager","1517":"general assembly product management bootcamp","1518":"product management bootcamps","1519":"best product management bootcamps","1520":"ucla product management bootcamp","1521":"ucla product management bootcamp cost","1522":"product manager bootcamp reddit","1523":"ut product manager bootcamp","1524":"columbia product management bootcamp","1525":"best product management bootcamp","1550":"iit kanpur","1552":"professional certificate course in ai and machine learning","1563":"amazon","1568":"online mba course: university of new haven","1580":"ux design certificate","1581":"ui ux certification course","1582":"ux design diploma","1583":"ui ux design certification","1584":"ux design google course","1585":"ux certification course","1586":"ux designer certificate","1587":"ui ux certificate course","1588":"ui ux design certification course","1589":"ui ux design course with certification","1590":"user experience certificate","1591":"ux design certification course","1596":"career bootcamp"} /*------------- End : SearchTags.js-----------*/ /*------------- Begin : SimpliApp.js-----------*/ angular.module('Simplilearn',[ 'CommonPlugins','ngAnimate','ngCookies','ui.bootstrap' ]) .run(function( $rootScope, LocService){ //initialize root scope variables $rootScope.currentCountry = null; $rootScope.queryCountryCode = null; $rootScope.queryCountryId = null; $rootScope.queryPhoneCode = null; $rootScope.countryList = null; $rootScope.countryDrpDwnStyle={'display':'none'}; $rootScope.phoneInputStyle = {}; $rootScope.regStatusMsg = ""; $rootScope.regStatusClass = ""; $rootScope.regSuccessMsg = ""; $rootScope.regSuccessClass = ""; $rootScope.resetMsgs = 0; //refer and earn email-list $rootScope.emailList = []; $rootScope.supportNo = '1-800-102-9602'; $rootScope.supportNoDail = '1-800-102-9602'; $rootScope.clickToCallUSno = '+1-844-532-7688'; $rootScope.minWidthThreshold = 768; $rootScope.minWidthThresholdHybrid = 1024; $rootScope.setSizeFlags= function() { $rootScope.mobWidthFlag = (window.screen.width < $rootScope.minWidthThreshold) ? 1 : 0; if(typeof isIOs !== 'undefined') { $rootScope.hybridWidthFlag = ((!isIOs && window.screen.width < $rootScope.minWidthThresholdHybrid) || (isIOs && window.innerWidth < $rootScope.minWidthThresholdHybrid)) ? 1 : 0; //for ipad use innerwidth } else { $rootScope.hybridWidthFlag = (window.screen.width < $rootScope.minWidthThresholdHybrid) ? 1 : 0; } }; $rootScope.setSizeFlags(); $rootScope.communityRequestPending = {'display':'none'}; $rootScope.isCpClicked = 0; $rootScope.isPracticeTestClicked = 0; $rootScope.loggedInUsrEmail = ""; $rootScope.accountListUsrEmail = ""; $rootScope.loggedInUsrId = null; $rootScope.userWishList = null; $rootScope.wishListArr = {"courses":{},"ebooks":{},"tests":{}}; $rootScope.wishListCount = ""; $rootScope.regexph = /^\+\d{1,4}-?\d{5,10}$/; /*mobile drop query form start*/ $rootScope.isOrientationChanged = 0; $rootScope.showMobDropQuery = {'display':'none'}; $rootScope.displayclose = {'display':'none'}; $rootScope.mobDropQueryBg = {}; $rootScope.showDrpQueryFrm = {}; $rootScope.chatHoverIconStyle = {'display':'block'}; $rootScope.closeMobDropQueryForm = function(){ $rootScope.showMobDropQuery = {'display':'none'}; $rootScope.displayclose = {'display':'none'}; $rootScope.mobDropQueryBg = {}; $rootScope.showDrpQueryFrm = {}; document.getElementsByTagName("body")[0].className = document.getElementsByTagName("body")[0].className.replace(" hiddenScroll",""); } /*mobile drop query form end*/ $rootScope.initDropQueryForm = function () { LocService.getCountryData().then(function (countryList) { setTimeout(function () { $rootScope.countryList = LocService.getAppCountryData(); if ($rootScope.userInfo && $rootScope.userInfo.phoneCode) { // Set phone code form user data var phonecode = $rootScope.userInfo.phoneCode.replace('+', '').replace('-', ''); if ($rootScope.userInfo.phoneCode != $rootScope.defaultQueryPhoneCode && Array.isArray(countryList)) { // Choose first match based on phone code. phone code can be duplicate in countries. for (var i in countryList) { var country = countryList[i]; if (country.phnCode == phonecode) { $rootScope.queryPhoneCode = $rootScope.userInfo.phoneCode; $rootScope.queryCountryId = country.id; break; } } } } if(!$rootScope.queryPhoneCode) { $rootScope.queryPhoneCode = $rootScope.defaultQueryPhoneCode; } $rootScope.phoneCode = $rootScope.queryPhoneCode; setPhoneCodeStyle($rootScope.queryPhoneCode); setTimeout(function() { if(typeof $rootScope.$apply !== 'undefined') { try { $rootScope.$apply(); } catch(e) { console.warn("SL:Error initDropQueryForm", e); } } },10); }, 2000); $rootScope.currentCountry = LocService.getCurrentCountry(); $rootScope.queryCountryCode = ($rootScope.currentCountry && $rootScope.currentCountry.code) || ''; $rootScope.queryCountryId = ($rootScope.currentCountry && $rootScope.currentCountry.id) || ''; $rootScope.defaultQueryPhoneCode = ($rootScope.currentCountry && $rootScope.currentCountry.phnCode) ? ("+" + $rootScope.currentCountry.phnCode + "-"): ""; setPhoneCodeStyle($rootScope.defaultQueryPhoneCode); }); } var setPhoneCodeStyle = function (phoneCode) { var codelen = (phoneCode.length) - 2; if (codelen < 3) var widthVal = ((codelen) * 15) + 8; else if (codelen == 3) { var widthVal = ((codelen) * 15) + 5; } else { var widthVal = ((codelen) * 15) - 5; } $rootScope.phoneInputStyle = {'padding-left': widthVal + "px"}; } $rootScope.showCountryDrpDwn = function($event){ $event.preventDefault(); if($rootScope.countryDrpDwnStyle.display == 'block') $rootScope.countryDrpDwnStyle={'display':'none'}; else $rootScope.countryDrpDwnStyle={'display':'block'}; //@review return statement missing } var getAllElementsWithAttribute = function(attribute){ var matchingElements = []; var allElements = document.getElementsByTagName('*'); for (var i = 0, n = allElements.length; i < n; i++){ if (allElements[i].getAttribute(attribute) !== null){ // Element exists with attribute. Add to array. matchingElements.push(allElements[i]); } } return matchingElements; } $rootScope.chooseQueryCountry = function($event,countrycode,phonecode,countryId){ $event.preventDefault(); setTimeout(function(){ var clickedEle = null; if(typeof $event.srcElement != 'undefined'){ clickedEle = $event.srcElement; }else{ clickedEle = $event.target; } var parentEle = angular.element(clickedEle).parent(); for(var i=0;i<3;i++){ if(parentEle[0].className == 'dropdown-menu'){ parentEle[0].style.display = 'none'; break; }else{ parentEle = parentEle.parent(); } } },200); $rootScope.queryCountryCode = countrycode; $rootScope.queryPhoneCode = phonecode; $rootScope.queryCountryId = countryId; $rootScope.countryDrpDwnStyle={'display':'none'}; var codelen = (phonecode.length)-2; if(codelen < 3) var widthVal = (((phonecode.length)-2)*15)+8; else if(codelen == 3){ var widthVal = (((phonecode.length)-2)*15); }else{ var widthVal = (((phonecode.length)-2)*15)-5; } $rootScope.phoneInputStyle = {'padding-left':widthVal+"px"}; //@review return statement missing } $rootScope.toggleModalDisplay = function(modalClass,displayStatus,$event){ if($event) { $event.preventDefault(); } var modalEle = document.getElementsByClassName(modalClass)[0]; if(typeof modalEle != 'undefined'){ modalEle.style.display = displayStatus; } $rootScope.resetMsgs = 1; if(displayStatus == 'block' && isIpad == 1){ var bodyObj = document.getElementsByTagName('body')[0]; bodyObj.className = bodyObj.className+" body_fixed"; }else{ var bodyObj = document.getElementsByTagName('body')[0]; bodyObj.className = bodyObj.className.replace("body_fixed",""); } } $rootScope.showHideDivsLP = function (type, elearningType) { if (type == 1) { angular.element(document.getElementsByClassName('special-video-iframe')).css('display', 'none'); angular.element(document.getElementsByClassName('special-video-bottom')).css('display', 'none'); angular.element(document.getElementsByClassName('special-video-enroll-overlay')).css('display', 'block'); } else if (type == 2) { angular.element(document.getElementsByClassName('special-video-iframe')).css('display', 'none'); angular.element(document.getElementsByClassName('special-video-bottom')).css('display', 'none'); angular.element(document.getElementsByClassName('special-video-enroll-overlay')).css('display', 'none'); } else { if (elearningType) { angular.element(document.getElementsByClassName('special-video-iframe')).css('display', 'block'); angular.element(document.getElementsByClassName('special-video-bottom')).css('display', 'block'); angular.element(document.getElementsByClassName('special-video-enroll-overlay')).css('display', 'none'); } else { angular.element(document.getElementsByClassName('special-video-iframe')).css('display', 'none'); angular.element(document.getElementsByClassName('special-video-bottom')).css('display', 'block'); angular.element(document.getElementsByClassName('special-video-enroll-overlay')).css('display', 'none'); } } } var modalEscHandler = function(){ document.onkeydown = function (event) { if(event.keyCode == 27){ hideAllModal(); } }; document.onclick = function (event) { var targetEle = event.target; if(typeof targetEle != 'undefined'){ var targetEleClass = targetEle.className; if(typeof targetEleClass != 'undefined' && targetEleClass != ''){ if(targetEleClass != '' && targetEleClass.indexOf("popup_country_wrapper")!=-1){ hideAllModal(); } } } }; }(); var hideAllModal = function(){ var modalObjs = document.getElementsByClassName('popup_country_wrapper'); var modalLen = modalObjs.length; for(var i=0;i]+>/gm, ''); }; } ) .filter('cleanCourseId', function() { return function(text) { return String(text).replace('b', ''); }; } ) .constant('AMBASSADORENABLE',1) ; var isIE = (function () { var undef, rv = -1; // Return value assumes failure. var ua = window.navigator.userAgent; var msie = ua.indexOf('MSIE '); var trident = ua.indexOf('Trident/'); if (msie > 0) { // IE 10 or older => return version number rv = parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10); } else if (trident > 0) { // IE 11 (or newer) => return version number var rvNum = ua.indexOf('rv:'); rv = parseInt(ua.substring(rvNum + 3, ua.indexOf('.', rvNum)), 10); } return ((rv > -1) ? rv : undef); }()); var helpers = function(){ this.FormNotValid = function(form) { for (i in form) { if (typeof form[i].$dirty !== 'undefined' && typeof form[i].$invalid !== 'undefined') { form[i].$dirty = true; //form[i].$invalid = form[i].$invalid; } } return false; }; this.GetFormElemTooltipText = function(pElem) { var tooltips = { //'mandatory':'This field is mandatory', //'invalidEmail':'Please enter a valid email address', 'invalidPhone':'Please enter only numbers ( atleast 7 digits required )', 'invalidPwd':'Your password should be minimum 8 characters long, with at least one uppercase, one lowercase letter and one number', 'invalidConfPwd':'This should match to the password entered above' }; if( (' ' + pElem.className + ' ').indexOf(' ng-invalid-required ') > -1 ) { return tooltips.mandatory; } else if( (' ' + pElem.className + ' ').indexOf(' ng-invalid-email ') > -1 ) { return tooltips.invalidEmail; } else if( (' ' + pElem.className + ' ').indexOf(' ng-invalid-phone ') > -1 ) { return tooltips.invalidPhone; } else if( (' ' + pElem.className + ' ').indexOf(' ng-invalid-pwd ') > -1 ) { return tooltips.invalidPwd; } else if( (' ' + pElem.className + ' ').indexOf(' ng-invalid-conf-pwd ') > -1 ) { return tooltips.invalidConfPwd; } else { return false; } }; this.makeValidApiUrl = function(functionName, forceNonCdn) { if(typeof forceNonCdn == 'undefined') { forceNonCdn = false; } var url = ''; var cached = false; if(!forceNonCdn && apiFromCdnUrl) { url = user_params.cdnApiUrl + functionName + '&cac_bst_vrsn=' + user_params.cdnCacheBust; cached = true; } else { url = user_params.nonCdnApiUrl + functionName; cached = false; } return {'url': url, 'cached': cached}; } }; /*------------- End : SimpliApp.js-----------*/ /*------------- Begin : WebEvents.js-----------*/ /** * * Website Events * Author : Kusum Saini */ !(function (e, n) { "object" == typeof exports && "undefined" != typeof module ? n() : "function" == typeof define && define.amd ? define(n) : n(); })(0, function () { "use strict"; function e(e) { var n = this.constructor; return this.then( function (t) { return n.resolve(e()).then(function () { return t; }); }, function (t) { return n.resolve(e()).then(function () { return n.reject(t); }); } ); } function n() {} function t(e) { if (!(this instanceof t)) throw new TypeError("Promises must be constructed via new"); if ("function" != typeof e) throw new TypeError("not a function"); (this._state = 0), (this._handled = !1), (this._value = undefined), (this._deferreds = []), u(e, this); } function o(e, n) { for (; 3 === e._state; ) e = e._value; 0 !== e._state ? ((e._handled = !0), t._immediateFn(function () { var t = 1 === e._state ? n.onFulfilled : n.onRejected; if (null !== t) { var o; try { o = t(e._value); } catch (f) { return void i(n.promise, f); } r(n.promise, o); } else (1 === e._state ? r : i)(n.promise, e._value); })) : e._deferreds.push(n); } function r(e, n) { try { if (n === e) throw new TypeError("A promise cannot be resolved with itself."); if (n && ("object" == typeof n || "function" == typeof n)) { var o = n.then; if (n instanceof t) return (e._state = 3), (e._value = n), void f(e); if ("function" == typeof o) return void u( (function (e, n) { return function () { e.apply(n, arguments); }; })(o, n), e ); } (e._state = 1), (e._value = n), f(e); } catch (r) { i(e, r); } } function i(e, n) { (e._state = 2), (e._value = n), f(e); } function f(e) { 2 === e._state && 0 === e._deferreds.length && t._immediateFn(function () { e._handled || t._unhandledRejectionFn(e._value); }); for (var n = 0, r = e._deferreds.length; r > n; n++) o(e, e._deferreds[n]); e._deferreds = null; } function u(e, n) { var t = !1; try { e( function (e) { t || ((t = !0), r(n, e)); }, function (e) { t || ((t = !0), i(n, e)); } ); } catch (o) { if (t) return; (t = !0), i(n, o); } } var c = setTimeout; (t.prototype["catch"] = function (e) { return this.then(null, e); }), (t.prototype.then = function (e, t) { var r = new this.constructor(n); return ( o( this, new (function (e, n, t) { (this.onFulfilled = "function" == typeof e ? e : null), (this.onRejected = "function" == typeof n ? n : null), (this.promise = t); })(e, t, r) ), r ); }), (t.prototype["finally"] = e), (t.all = function (e) { return new t(function (n, t) { function o(e, f) { try { if (f && ("object" == typeof f || "function" == typeof f)) { var u = f.then; if ("function" == typeof u) return void u.call( f, function (n) { o(e, n); }, t ); } (r[e] = f), 0 == --i && n(r); } catch (c) { t(c); } } if (!e || "undefined" == typeof e.length) throw new TypeError("Promise.all accepts an array"); var r = Array.prototype.slice.call(e); if (0 === r.length) return n([]); for (var i = r.length, f = 0; r.length > f; f++) o(f, r[f]); }); }), (t.resolve = function (e) { return e && "object" == typeof e && e.constructor === t ? e : new t(function (n) { n(e); }); }), (t.reject = function (e) { return new t(function (n, t) { t(e); }); }), (t.race = function (e) { return new t(function (n, t) { for (var o = 0, r = e.length; r > o; o++) e[o].then(n, t); }); }), (t._immediateFn = ("function" == typeof setImmediate && function (e) { setImmediate(e); }) || function (e) { c(e, 0); }), (t._unhandledRejectionFn = function (e) { void 0 !== console && console && console.warn("Possible Unhandled Promise Rejection:", e); }); var l = (function () { if ("undefined" != typeof self) return self; if ("undefined" != typeof window) return window; if ("undefined" != typeof global) return global; throw Error("unable to locate global object"); })(); "Promise" in l ? l.Promise.prototype["finally"] || (l.Promise.prototype["finally"] = e) : (l.Promise = t); }); /** * Copyright (c) 2014, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * https://raw.github.com/facebook/regenerator/master/LICENSE file. An * additional grant of patent rights can be found in the PATENTS file in * the same directory. */ !(function (global) { "use strict"; var hasOwn = Object.prototype.hasOwnProperty; var undefined; // More compressible than void 0. var iteratorSymbol = (typeof Symbol === "function" && Symbol.iterator) || "@@iterator"; var inModule = typeof module === "object"; var runtime = global.regeneratorRuntime; if (runtime) { if (inModule) { // If regeneratorRuntime is defined globally and we're in a module, // make the exports object identical to regeneratorRuntime. module.exports = runtime; } // Don't bother evaluating the rest of this file if the runtime was // already defined globally. return; } // Define the runtime globally (as expected by generated code) as either // module.exports (if we're in a module) or a new, empty object. runtime = global.regeneratorRuntime = inModule ? module.exports : {}; function wrap(innerFn, outerFn, self, tryLocsList) { // If outerFn provided, then outerFn.prototype instanceof Generator. var generator = Object.create((outerFn || Generator).prototype); var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next, // .throw, and .return methods. generator._invoke = makeInvokeMethod(innerFn, self, context); return generator; } runtime.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion // record like context.tryEntries[i].completion. This interface could // have been (and was previously) designed to take a closure to be // invoked without arguments, but in all the cases we care about we // already have an existing method we want to call, so there's no need // to create a new function object. We can even get away with assuming // the method takes exactly one argument, since that happens to be true // in every case, so we don't have to touch the arguments object. The // only additional allocation required is the completion record, which // has a stable shape and so hopefully should be cheap to allocate. function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } var GenStateSuspendedStart = "suspendedStart"; var GenStateSuspendedYield = "suspendedYield"; var GenStateExecuting = "executing"; var GenStateCompleted = "completed"; // Returning this object from the innerFn has the same effect as // breaking out of the dispatch switch statement. var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and // .constructor.prototype properties for functions that return Generator // objects. For full spec compliance, you may wish to configure your // minifier not to mangle the names of these two functions. function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var Gp = (GeneratorFunctionPrototype.prototype = Generator.prototype); GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; GeneratorFunctionPrototype.constructor = GeneratorFunction; GeneratorFunction.displayName = "GeneratorFunction"; // Helper for defining the .next, .throw, and .return methods of the // Iterator interface in terms of a single ._invoke method. function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { prototype[method] = function (arg) { return this._invoke(method, arg); }; }); } runtime.isGeneratorFunction = function (genFun) { var ctor = typeof genFun === "function" && genFun.constructor; return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can // do is to check its .name property. (ctor.displayName || ctor.name) === "GeneratorFunction" : false; }; runtime.mark = function (genFun) { if (Object.setPrototypeOf) { Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); } else { genFun.__proto__ = GeneratorFunctionPrototype; } genFun.prototype = Object.create(Gp); return genFun; }; // Within the body of any async function, `await x` is transformed to // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test // `value instanceof AwaitArgument` to determine if the yielded value is // meant to be awaited. Some may consider the name of this method too // cutesy, but they are curmudgeons. runtime.awrap = function (arg) { return new AwaitArgument(arg); }; function AwaitArgument(arg) { this.arg = arg; } function AsyncIterator(generator) { // This invoke function is written in a style that assumes some // calling function (or Promise) will handle exceptions. function invoke(method, arg) { var result = generator[method](arg); var value = result.value; return value instanceof AwaitArgument ? Promise.resolve(value.arg).then(invokeNext, invokeThrow) : Promise.resolve(value).then(function (unwrapped) { // When a yielded Promise is resolved, its final value becomes // the .value of the Promise<{value,done}> result for the // current iteration. If the Promise is rejected, however, the // result for this iteration will be rejected with the same // reason. Note that rejections of yielded Promises are not // thrown back into the generator function, as is the case // when an awaited Promise is rejected. This difference in // behavior between yield and await is important, because it // allows the consumer to decide what to do with the yielded // rejection (swallow it and continue, manually .throw it back // into the generator, abandon iteration, whatever). With // await, by contrast, there is no opportunity to examine the // rejection reason outside the generator function, so the // only option is to throw it from the await expression, and // let the generator function handle the exception. result.value = unwrapped; return result; }); } if (typeof process === "object" && process.domain) { invoke = process.domain.bind(invoke); } var invokeNext = invoke.bind(generator, "next"); var invokeThrow = invoke.bind(generator, "throw"); var invokeReturn = invoke.bind(generator, "return"); var previousPromise; function enqueue(method, arg) { function callInvokeWithMethodAndArg() { return invoke(method, arg); } return (previousPromise = // If enqueue has been called before, then we want to wait until // all previous Promises have been resolved before calling invoke, // so that results are always delivered in the correct order. If // enqueue has not been called before, then it is important to // call invoke immediately, without waiting on a callback to fire, // so that the async generator function has the opportunity to do // any necessary setup in a predictable way. This predictability // is why the Promise constructor synchronously invokes its // executor callback, and why async functions synchronously // execute code before the first await. Since we implement simple // async functions in terms of async generators, it is especially // important to get this right, even though it requires care. previousPromise ? previousPromise.then( callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later // invocations of the iterator. callInvokeWithMethodAndArg ) : new Promise(function (resolve) { resolve(callInvokeWithMethodAndArg()); })); } // Define the unified helper method that is used to implement .next, // .throw, and .return (see defineIteratorMethods). this._invoke = enqueue; } defineIteratorMethods(AsyncIterator.prototype); // Note that simple async functions are implemented on top of // AsyncIterator objects; they just return a Promise for the value of // the final result produced by the iterator. runtime.async = function (innerFn, outerFn, self, tryLocsList) { var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); return runtime.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator. : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }; function makeInvokeMethod(innerFn, self, context) { var state = GenStateSuspendedStart; return function invoke(method, arg) { if (state === GenStateExecuting) { throw new Error("Generator is already running"); } if (state === GenStateCompleted) { if (method === "throw") { throw arg; } // Be forgiving, per 25.3.3.3.3 of the spec: // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume return doneResult(); } while (true) { var delegate = context.delegate; if (delegate) { if ( method === "return" || (method === "throw" && delegate.iterator[method] === undefined) ) { // A return or throw (when the delegate iterator has no throw // method) always terminates the yield* loop. context.delegate = null; // If the delegate iterator has a return method, give it a // chance to clean up. var returnMethod = delegate.iterator["return"]; if (returnMethod) { var record = tryCatch(returnMethod, delegate.iterator, arg); if (record.type === "throw") { // If the return method threw an exception, let that // exception prevail over the original return or throw. method = "throw"; arg = record.arg; continue; } } if (method === "return") { // Continue with the outer return, now that the delegate // iterator has been terminated. continue; } } var record = tryCatch( delegate.iterator[method], delegate.iterator, arg ); if (record.type === "throw") { context.delegate = null; // Like returning generator.throw(uncaught), but without the // overhead of an extra function call. method = "throw"; arg = record.arg; continue; } // Delegate generator ran and handled its own exceptions so // regardless of what the method was, we continue as if it is // "next" with an undefined arg. method = "next"; arg = undefined; var info = record.arg; if (info.done) { context[delegate.resultName] = info.value; context.next = delegate.nextLoc; } else { state = GenStateSuspendedYield; return info; } context.delegate = null; } if (method === "next") { context._sent = arg; if (state === GenStateSuspendedYield) { context.sent = arg; } else { context.sent = undefined; } } else if (method === "throw") { if (state === GenStateSuspendedStart) { state = GenStateCompleted; throw arg; } if (context.dispatchException(arg)) { // If the dispatched exception was caught by a catch block, // then let that catch block handle the exception normally. method = "next"; arg = undefined; } } else if (method === "return") { context.abrupt("return", arg); } state = GenStateExecuting; var record = tryCatch(innerFn, self, context); if (record.type === "normal") { // If an exception is thrown from innerFn, we leave state === // GenStateExecuting and loop back for another invocation. state = context.done ? GenStateCompleted : GenStateSuspendedYield; var info = { value: record.arg, done: context.done, }; if (record.arg === ContinueSentinel) { if (context.delegate && method === "next") { // Deliberately forget the last sent value so that we don't // accidentally pass it on to the delegate. arg = undefined; } } else { return info; } } else if (record.type === "throw") { state = GenStateCompleted; // Dispatch the exception by looping back around to the // context.dispatchException(arg) call above. method = "throw"; arg = record.arg; } } }; } // Define Generator.prototype.{next,throw,return} in terms of the // unified ._invoke helper method. defineIteratorMethods(Gp); Gp[iteratorSymbol] = function () { return this; }; Gp.toString = function () { return "[object Generator]"; }; function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; if (1 in locs) { entry.catchLoc = locs[1]; } if (2 in locs) { entry.finallyLoc = locs[2]; entry.afterLoc = locs[3]; } this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal"; delete record.arg; entry.completion = record; } function Context(tryLocsList) { // The root entry object (effectively a try statement without a catch // or a finally block) gives us a place to store values thrown from // locations where there is no enclosing try statement. this.tryEntries = [{ tryLoc: "root" }]; tryLocsList.forEach(pushTryEntry, this); this.reset(true); } runtime.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } keys.reverse(); // Rather than returning an object with a next method, we keep // things simple and return the next function itself. return function next() { while (keys.length) { var key = keys.pop(); if (key in object) { next.value = key; next.done = false; return next; } } // To avoid creating an additional object, we just hang the .value // and .done properties off the next function object itself. This // also ensures that the minifier will not anonymize the function. next.done = true; return next; }; }; function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) { return iteratorMethod.call(iterable); } if (typeof iterable.next === "function") { return iterable; } if (!isNaN(iterable.length)) { var i = -1, next = function next() { while (++i < iterable.length) { if (hasOwn.call(iterable, i)) { next.value = iterable[i]; next.done = false; return next; } } next.value = undefined; next.done = true; return next; }; return (next.next = next); } } // Return an iterator with no values. return { next: doneResult }; } runtime.values = values; function doneResult() { return { value: undefined, done: true }; } Context.prototype = { constructor: Context, reset: function (skipTempReset) { this.prev = 0; this.next = 0; this.sent = undefined; this.done = false; this.delegate = null; this.tryEntries.forEach(resetTryEntry); if (!skipTempReset) { for (var name in this) { // Not sure about the optimal order of these conditions: if ( name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1)) ) { this[name] = undefined; } } } }, stop: function () { this.done = true; var rootEntry = this.tryEntries[0]; var rootRecord = rootEntry.completion; if (rootRecord.type === "throw") { throw rootRecord.arg; } return this.rval; }, dispatchException: function (exception) { if (this.done) { throw exception; } var context = this; function handle(loc, caught) { record.type = "throw"; record.arg = exception; context.next = loc; return !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; var record = entry.completion; if (entry.tryLoc === "root") { // Exception thrown outside of any try block that could handle // it, so set the completion value of the entire function to // throw the exception. return handle("end"); } if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"); var hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } else if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else if (hasCatch) { if (this.prev < entry.catchLoc) { return handle(entry.catchLoc, true); } } else if (hasFinally) { if (this.prev < entry.finallyLoc) { return handle(entry.finallyLoc); } } else { throw new Error("try statement without catch or finally"); } } } }, abrupt: function (type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if ( entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc ) { var finallyEntry = entry; break; } } if ( finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc ) { // Ignore the finally entry if control is not jumping to a // location outside the try/catch block. finallyEntry = null; } var record = finallyEntry ? finallyEntry.completion : {}; record.type = type; record.arg = arg; if (finallyEntry) { this.next = finallyEntry.finallyLoc; } else { this.complete(record); } return ContinueSentinel; }, complete: function (record, afterLoc) { if (record.type === "throw") { throw record.arg; } if (record.type === "break" || record.type === "continue") { this.next = record.arg; } else if (record.type === "return") { this.rval = record.arg; this.next = "end"; } else if (record.type === "normal" && afterLoc) { this.next = afterLoc; } }, finish: function (finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) { this.complete(entry.completion, entry.afterLoc); resetTryEntry(entry); return ContinueSentinel; } } }, catch: function (tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if (record.type === "throw") { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } // The context.catch method must only be called with a location // argument that corresponds to a known catch block. throw new Error("illegal catch attempt"); }, delegateYield: function (iterable, resultName, nextLoc) { this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc, }; return ContinueSentinel; }, }; })( // Among the various tricks for obtaining a reference to the global // object, this seems to be the most reliable technique that does not // use indirect eval (which violates Content Security Policy). typeof global === "object" ? global : typeof window === "object" ? window : typeof self === "object" ? self : this ); // // ================================================= var WebTracking = WebTracking || {}; var weusrCookie = getCookieByName("weusr"); // events list WebTracking.events = { user_auto_login: { category: "SL_Engagement", action: "User Auto Login", labelRequired: true, noninteractiveness: false, }, // Course Page events sl_eng_product_page_viewed: { category: "SL_Engagement", action: "Product Page viewed", labelRequired: true, noninteractiveness: false, }, sl_lead_query_box_toggle_clicked: { category: "SL_Lead", action: "Query Box Lead form toggle clicked", labelRequired: true, noninteractiveness: false, }, sl_lead_user_initiated_lead_form: { category: "SL_Lead", action: "Lead form initiated", labelRequired: true, noninteractiveness: false, }, sl_lead_user_submitted_lead_form: { category: "SL_Lead", action: "Lead form submitted", labelRequired: true, noninteractiveness: false, }, sl_lead_user_lead_created_automatically: { category: "SL_Lead", action: "User's lead created automatically", labelRequired: true, noninteractiveness: false, }, sl_lead_module_initiated: { category: "SL_Lead", action: "Lead Module initiated", labelRequired: true, noninteractiveness: false, }, sl_lead_form_closed: { category: "SL_Lead", action: "Lead form Closed", labelRequired: true, noninteractiveness: false, }, sl_eng_intro_video_clicked: { category: "SL_Engagement", action: "Introduction video clicked", labelRequired: true, noninteractiveness: false, }, sl_eng_intro_video_closed: { category: "SL_Engagement", action: "Introduction video closed", labelRequired: true, noninteractiveness: false, }, sl_eng_page_sticky_top_nav_show_section_change: { category: "SL_Engagement", action: "Page Sticky Top Nav shows change in section", labelRequired: true, noninteractiveness: false, }, sl_eng_class_info_clicked: { category: "SL_Engagement", action: "Class Information Clicked", labelRequired: true, noninteractiveness: false, }, sl_eng_class_info_carousal_explored: { category: "SL_Engagement", action: "Class Information Carousal Explored", labelRequired: true, noninteractiveness: false, }, sl_eng_class_info_downloaded: { category: "SL_Engagement", action: "Class Information Downloaded", labelRequired: true, noninteractiveness: false, }, sl_eng_class_info_popup_closed: { category: "SL_Engagement", action: "Class Information pop up closed", labelRequired: true, noninteractiveness: false, }, sl_eng_web_page_viewed: { category: "SL_Engagement", action: "User views the Corporate Training page", labelRequired: true, noninteractiveness: false, }, sl_corptrain_eng_user_clicks_on_category: { category: "SL_Engagement", action: "User clicks on the category buttons on Corporate Page", labelRequired: true, noninteractiveness: false, }, sl_corptrain_eng_user_explores_course_advisor: { category: "SL_Engagement", action: "User clicks on the course advisor carousal", labelRequired: true, noninteractiveness: false, }, sl_corptrain_eng_user_explores_review_carousal: { category: "SL_Engagement", action: "User explores the review carousal", labelRequired: true, noninteractiveness: false, }, sl_corptrain_eng_user_explores_resources: { category: "SL_Engagement", action: "User explores the resources on Corporate Training page", labelRequired: true, noninteractiveness: false, }, sl_eng_product_description_explored: { category: "SL_Engagement", action: "Product Description question explored", labelRequired: true, noninteractiveness: false, }, sl_eng_money_back_guarantee_explored: { category: "SL_Engagement", action: "Money Back Guarantee explored", labelRequired: true, noninteractiveness: false, }, sl_eng_product_ratings_clicked: { category: "SL_Engagement", action: "Product Ratings clicked", labelRequired: true, noninteractiveness: false, }, sl_eng_product_toc_explored: { category: "SL_Engagement", action: "Product TOC explored", labelRequired: true, noninteractiveness: false, }, sl_eng_product_exam_question_explored: { category: "SL_Engagement", action: "Product Exam and Certification question explored", labelRequired: true, noninteractiveness: false, }, sl_eng_course_advisor_viewed: { category: "SL_Engagement", action: "Course Advisor Section viewed", labelRequired: true, noninteractiveness: false, }, sl_eng_product_reviews_view_more_clicked: { category: "SL_Engagement", action: "Product Reviews View More Clicked", labelRequired: true, noninteractiveness: false, }, sl_eng_product_reviews_read_more_clicked: { category: "SL_Engagement", action: "Product Review Read More Clicked", labelRequired: true, noninteractiveness: false, }, sl_eng_product_user_profile_clicked: { category: "SL_Engagement", action: "Product Review User Profile Clicked", labelRequired: true, noninteractiveness: false, }, sl_eng_product_faq_question_explored: { category: "SL_Engagement", action: "Product FAQ question explored", labelRequired: true, noninteractiveness: false, }, sl_eng_product_faq_view_more_clicked: { category: "SL_Engagement", action: "Product FAQ View More Clicked", labelRequired: true, noninteractiveness: false, }, sl_eng_chat_triggered: { category: "SL_Engagement", action: "Chat triggered", labelRequired: true, noninteractiveness: false, }, sl_eng_chat_button_clicked: { category: "SL_Engagement", action: "Chat button clicked", labelRequired: true, noninteractiveness: false, }, sl_nav_people_also_bought_courses_clicked: { category: "SL_Engagement", action: "People Also bought courses clicked", labelRequired: true, noninteractiveness: false, }, sl_pay_enroll_button_clicked_osl: { category: "SL_Engagement", action: "Enroll now clicked on OSL", labelRequired: true, noninteractiveness: false, }, sl_pay_enroll_button_clicked_lvc: { category: "SL_Engagement", action: "Enroll now clicked on LVC", labelRequired: true, noninteractiveness: false, }, sl_pay_enroll_button_clicked_classroom: { category: "SL_Engagement", action: "Enroll now clicked on Classroom", labelRequired: true, noninteractiveness: false, }, sl_pay_user_makes_payment: { category: "SL_Payment", action: "User makes payment and lands on Thank you Page", labelRequired: true, noninteractiveness: false, }, sl_pay_user_removes_item_from_cart: { category: "SL_Payment", action: "User removes the course from Cart", labelRequired: true, noninteractiveness: false, }, sl_pay_user_clicks_cta_on_ty_page: { category: "SL_Payment", action: "User clicks on CTA on Thank you Page to land on LMS", labelRequired: true, noninteractiveness: false, }, sl_nav_user_hovers_over_all_courses: { category: "SL_Navigation", action: "User hovers over All Courses button on top nav", labelRequired: true, noninteractiveness: false, }, sl_nav_user_clicks_on_a_link_in_Megamenu: { category: "SL_Navigation", action: "User clicks on a link in Megamenu of All Courses", labelRequired: true, noninteractiveness: false, }, sl_nav_user_clicks_on_explore_category_in_Megamenu: { category: "SL_Navigation", action: "User clicks on Category button in Megamenu of All Courses", labelRequired: true, noninteractiveness: false, }, sl_nav_user_clicks_category_dropdown_in_Megamenu: { category: "SL_Navigation", action: "User clicks on Category dropdown in Megamenu", labelRequired: true, noninteractiveness: false, }, sl_nav_user_initiates_search: { category: "SL_Navigation", action: "User inititates Search", labelRequired: true, noninteractiveness: false, }, sl_nav_user_completes_search: { category: "SL_Navigation", action: "User completes Search", labelRequired: true, noninteractiveness: false, }, sl_nav_user_clicks_on_a_link_in_top_Nav: { category: "SL_Navigation", action: "User clicks on a link in Top Nav", labelRequired: true, noninteractiveness: false, }, sl_user_clicks_on_Login: { category: "SL_Navigation", action: "User clicks on Login", labelRequired: true, noninteractiveness: false, }, sl_nav_user_clicks_on_simplilearn_logo: { category: "SL_Navigation", action: "User clicks on Simplilearn logo", labelRequired: true, noninteractiveness: false, }, sl_user_logs_out: { category: "SL_Navigation", action: "User logs out", labelRequired: true, noninteractiveness: false, }, sl_user_clicks_on_my_courses: { category: "SL_Navigation", action: "User clicks on My courses", labelRequired: true, noninteractiveness: false, }, //B2B pages event sl_eng_web_page_viewed: { category: "SL_Engagement", action: "Web Page viewed", labelRequired: true, noninteractiveness: false, }, sl_refer_user_clicks_on_referal_link_in_footer: { category: "SL_Referral", action: "The user clicks on referral link on website footer", labelRequired: true, noninteractiveness: false, }, sl_refer_user_online_registers_for_referral_prog: { category: "SL_Referral", action: "User registers for referral program", labelRequired: true, noninteractiveness: false, }, sl_refer_user_initiates_giving_referral_leads: { category: "SL_Referral", action: "User initiates submission of referral leads on the referral page", labelRequired: true, noninteractiveness: false, }, sl_lead_user_submits_referee_lead_with_email_id: { category: "SL_Referral", action: "User submits the referee lead with email id", labelRequired: true, noninteractiveness: false, }, sl_lead_user_submits_the_referee_lead_with_phone: { category: "SL_Referral", action: "User submits the referee lead with phone number", labelRequired: true, noninteractiveness: false, }, sl_lead_referrer_submits_referee_lead_with_emailid: { category: "SL_Referral", action: "Referrer submits the referee lead with email id", labelRequired: true, noninteractiveness: false, }, sl_lead_referrer_submits_referee_lead_with_phone: { category: "SL_Referral", action: "Referrer submits the referee lead with phone number", labelRequired: true, noninteractiveness: false, }, sl_refer_user_copied_referral_link: { category: "SL_Referral", action: "User copied the referral link", labelRequired: true, noninteractiveness: false, }, sl_refer_user_promotes_referral_link_socially: { category: "SL_Referral", action: "User promoting the referral link on social channel", labelRequired: true, noninteractiveness: false, }, // FRS Page Events sl_frs_eng_user_lands_on_frs_homepage: { category: "SL_Engagement", action: "User lands on FRS homepage", labelRequired: true, noninteractiveness: false, }, sl_frs_nav_user_explores_resources_on_homepage: { category: "SL_Navigation", action: "User explores FRS resources on homepage", labelRequired: true, noninteractiveness: false, }, sl_frs_nav_view_all_resources_clicked_on_homepage: { category: "SL_Navigation", action: "User clicks on view all resources of a category on Homepage", labelRequired: true, noninteractiveness: false, }, sl_frs_eng_user_clicks_on_resource_filter_on_frs: { category: "SL_Engagement", action: "User clicks on resource filter on frs pages", labelRequired: true, noninteractiveness: false, }, sl_frs_nav_user_clicks_a_resource_on_segment_page: { category: "SL_Navigation", action: "User explore a resource on the FRS category page", labelRequired: true, noninteractiveness: false, }, sl_frs_eng_user_change_segment_filter_on_category_page: { category: "SL_Engagement", action: "User changes segment filter on Category page", labelRequired: true, noninteractiveness: false, }, // 'sl_frs_eng_user_clicks_on_resource_tabs_on_frs': {'category': "SL_Engagement", 'action': "User clicks on resource tabs on frs pages", 'labelRequired': true, 'noninteractiveness': false}, sl_frs_eng_user_change_segment_filter_on_frs_pages: { category: "SL_Engagement", action: "User changes segment filter on FRS pages", labelRequired: true, noninteractiveness: false, }, sl_frs_nav_resource_in_left_hand_nav_clicked: { category: "SL_Navigation", action: "User clicks on a resource in left hand nav panel", labelRequired: true, noninteractiveness: false, }, sl_frs_nav_recommended_resource_clicked: { category: "SL_Navigation", action: "User clicks on a resource in the recommended resource section", labelRequired: true, noninteractiveness: false, }, sl_frs_eng_course_pop_up_in_frs_clicked: { category: "SL_Engagement", action: "User clicks on the course pop up on FRS resource page", labelRequired: true, noninteractiveness: false, }, sl_frs_eng_user_lands_on_frs_detail_resource_page: { category: "SL_Engagement", action: "User lands on FRS detail resource page", labelRequired: true, noninteractiveness: false, }, sl_frs_nav_user_scrolls_from_one_resource_to_other: { category: "SL_Engagement", action: "User moves from one resource to another while scrolling", labelRequired: true, noninteractiveness: false, }, sl_frs_eng_user_lands_on_frs_authors_page: { category: "SL_Engagement", action: "User lands on the FRS authors page", labelRequired: true, noninteractiveness: false, }, sl_frs_lead_user_initiated_lead_form: { category: "SL_FRS Lead", action: "Lead form initiated", labelRequired: true, noninteractiveness: false, }, sl_frs_lead_user_submitted_lead: { category: "SL_FRS Lead", action: "Lead form submitted", labelRequired: true, noninteractiveness: false, }, sl_frs_lead_module_initiated: { category: "SL_FRS Lead", action: "Lead Module initiated", labelRequired: true, noninteractiveness: false, }, sl_frs_lead_form_closed: { category: "SL_FRS Lead", action: "Lead form Closed", labelRequired: true, noninteractiveness: false, }, sl_nav_user_hovers_over_all_courses: { category: "SL_Navigation", action: "User hovers over All Courses button on top nav", labelRequired: true, noninteractiveness: false, }, //homepage events sl_nav_user_clicks_on_explore_courses_on_homepage: { category: "SL_Engagement", action: "User clicks on Explore courses on homepage", labelRequired: true, noninteractiveness: false, }, sl_nav_user_clicks_master_carousal_on_homepage: { category: "SL_Engagement", action: "User clicks on Master program Carousal on homepage", labelRequired: true, noninteractiveness: false, }, sl_nav_user_clicks_on_product_card_on_homepage: { category: "SL_Engagement", action: "User clicks on Product cards on homepage", labelRequired: true, noninteractiveness: false, }, sl_eng_user_clicks_course_type_toggle_on_homepage: { category: "SL_Engagement", action: "User clicks on toggle of course type on homepage", labelRequired: true, noninteractiveness: false, }, sl_eng_user_explores_testimonials_on_homepage: { category: "SL_Engagement", action: "User explores testimonials on homepage", labelRequired: true, noninteractiveness: false, }, //Category Page Events Start sl_nav_popular_course_on_category_page_clicked: { category: "SL_Navigation", action: "Popular product clicked on Category Page", labelRequired: true, noninteractiveness: false, }, sl_nav_product_on_category_page_clicked: { category: "SL_Navigation", action: "Product on Category Page Clicked", labelRequired: true, noninteractiveness: false, }, //Category Page Events End //FPT Event sl_eng_fpt_final_score: { category: "SL_Navigation", action: "FPT Final Score", labelRequired: true, noninteractiveness: false, }, sl_nav_breadcrumb_clicked: { category: "SL_Navigation", action: "Breadcrumb clicked on a product page", labelRequired: true, noninteractiveness: false, }, //Search Page Events sl_search_user_views_search_result: { category: "SL_Navigation", action: "User lands on the search page and views search result", labelRequired: true, noninteractiveness: false, }, sl_search_user_clicks_on_a_search_result: { category: "SL_Navigation", action: "User clicks on a search result", labelRequired: true, noninteractiveness: false, }, sl_lead_chat_lead_created_by_agent: { category: "SL_Lead", action: "Chat lead created by chat agent by clicking on Xenia form submit", labelRequired: true, noninteractiveness: false, }, sl_eng_category_faq_question_explored: { category: "SL_Engagement", action: "Category FAQ question explored", labelRequired: true, noninteractiveness: false, }, sl_eng_category_faq_view_more_clicked: { category: "SL_Engagement", action: "Category FAQ View More Clicked", labelRequired: true, noninteractiveness: false, }, }; // WE user attribute mappting to sl attributes WebTracking.userAttributesMap = { sl_user_email: "we_email", sl_user_first_name: "we_first_name", sl_user_last_name: "we_last_name", sl_user_phone: "we_phone", sl_user_company: "we_company", sl_user_state: "we_region", // 'sl_product_name':'sl_latest_course_of_interest', // 'sl_product_category':'sl_latest_category_of_interest', // 'sl_product_category_id':'sl_latest_category_of_interest_id', // 'sl_product_id':'sl_latest_course_of_interest_id', // 'sl_product_training_type': 'sl_latest_product_training_type_interested', // 'sl_product_type':'sl_latest_product_type_interested', // 'sl_site_module':'sl_last_lead_site_module', // 'sl_frs_site_module':'sl_frs_last_lead_site_module', sl_lead_type: "sl_user_type", sl_user_country: "we_country", sl_user_jobtitle: "sl_user_jobtitle", sl_email_opt_in: "we_email_opt_in", sl_sms_opt_in: "we_sms_opt_in", sl_user_products_bought: "sl_user_products_bought", sl_call_opt_in: "sl_call_opt_in", SL_Purdue_TotalWorkExp: "SL_Purdue_TotalWorkExp", }; typeof user_params == "undefined" && (user_params = {}); WebTracking.questionAttrMap = { Email: "sl_user_email", Mobile: "sl_user_phone", Phone: "sl_user_phone", "First Name": "sl_user_first_name", "Last Name": "sl_user_last_name", Company: "sl_user_company", Employees_Range__c: "sl_user_number_employees", years_of_experience: "years_of_experience", }; WebTracking.commonUserAttr = { product: [ // 'sl_product_name', 'sl_product_category', // 'sl_product_id','sl_product_training_type','sl_product_type', // 'sl_site_module','sl_product_category_id', "sl_email_opt_in", "sl_sms_opt_in", ], sl_user_attr: { sl_user_email: "email", sl_user_first_name: "first_name", sl_user_last_name: "last_name", sl_user_phone: "phone", sl_user_country: "country", }, sl_user_attr_no_update: { // 'sl_site_module': 'sl_first_lead_site_module', }, we_location_attrs: ["we_country", "we_city", "we_region"], user_attributes: ["sl_user_type"], }; WebTracking.commonData = { order: [ "sl_page_type", "sl_order_id", "sl_currency", "sl_product_price_symbol", "sl_product_id", "sl_product_name", "sl_product_ratings", "sl_product_image", "sl_product_category", "sl_product_category_id", "sl_product_training_type", "sl_product_price_osl", "sl_product_price_lvc", "sl_product_price_classroom", "sl_product_type", "sl_utm_src", ], product: [ "sl_page_type", "sl_product_id", "sl_product_name", "sl_currency", "sl_product_ratings", "sl_product_image", "sl_product_category", "sl_product_category_list", "sl_product_category_id", "sl_product_training_type", "sl_product_type", "sl_product_learners", "sl_product_price_osl", "sl_product_price_classroom", "sl_product_price_lvc", "sl_product_accredition", "sl_number_of_course_advisors", "sl_course_advisors", "sl_product_has_free_courses", "sl_product_free_courses_list", "sl_product_number_of_subproduct", "sl_product_list_of_subproduct", "sl_product_price_symbol", "sl_product_masters_programs_list", "sl_user_type", ], frs: [ "sl_frs_resource_id", "sl_frs_resource_name", "sl_frs_segment_id", "sl_frs_segment_name", "sl_frs_resource_type", "sl_frs_resource_image", "sl_frs_author_name", "sl_frs_author_image", "sl_frs_author_profile_link", "sl_frs_resource_view_count", "sl_frs_resource_download_count", "sl_frs_resource_event_timestamp", "sl_frs_resource_updated_timestamp", "sl_frs_resource_link", "sl_frs_timezone", "sl_frs_recommended_resources", ], }; WebTracking.gaBarredAttributes = [ "sl_user_email", "sl_user_first_name", "sl_user_last_name", "sl_user_phone", ]; // attributes barred to be sent to GA WebTracking.weBarredEvents = []; // =============================================================================================================== ("use strict"); WebTracking.eventReq = { user: "", event_data_key: "we_event_data", user_attr_key: "we_attr_data", uattr: {}, eventParam: [], finalGaParam: [], userAttrPush: {}, // check if WE logged in email is different than new event email and login, create user cookie loginUser: async function () { if ( typeof this.eventParam != "undefined" && typeof this.eventParam.event_data != "undefined" && typeof this.eventParam.event_data["sl_user_email"] != "undefined" && this.eventParam.event_data["sl_user_email"] != "" && this.eventParam.event_data["sl_user_email"] != this.user ) { this.user = this.eventParam.event_data["sl_user_email"]; webengage.user.login(this.user); } }, logoutUser: function () { if ( typeof webengage != "undefined" && typeof webengage.state != "undefined" ) { var weUserData = webengage.state.getForever(); if ( typeof weUserData != "undefined" && typeof weUserData["cuid"] != "undefined" ) { webengage.user.logout(); } } }, getDataFromUserParams: function (fields) { var self = this; if (Array.isArray(fields)) { var data = {}; fields.forEach(function (key) { data[key] = typeof user_params[key] != "undefined" ? user_params[key] : null; if (!isNaN(data[key])) { data[key] = Number(data[key]) || 0; } else if (self.IsJsonString(data[key])) { data[key] = JSON.parse(data[key]) || {}; } else { data[key] = data[key] || ""; } }); return data; } return {}; }, setEventParams: function (params) { this.eventParam = params; if (typeof this.eventParam.event_data == "undefined") { this.eventParam.event_data = {}; } if ( typeof webengage != "undefined" && typeof webengage.state != "undefined" ) { var weUserData = webengage.state.getForever(); // if(!weUserData) return; var hashKey = ""; if (typeof this.eventParam.event_data["sl_user_email"] != "undefined") { hashKey = this.eventParam.event_data["sl_user_email"]; } else if ( typeof weUserData != "undefined" && typeof weUserData["cuid"] != "undefined" ) { this.user = weUserData["cuid"]; hashKey = this.user; } if (typeof this.eventParam.event_data["sl_user_phone"] != "undefined") { hashKey += "," + this.eventParam.event_data["sl_user_phone"]; } else if ( typeof weUserData != "undefined" && typeof weUserData["we_phone"] != "undefined" ) { hashKey += "," + weUserData["we_phone"]; } this.eventParam.event_data["sl_user_email_hash"] = btoa(hashKey); if ( typeof weUserData != "undefined" && typeof weUserData["uattr"] != "undefined" ) this.uattr = weUserData["uattr"]; } if (typeof this.eventParam.event_data["sl_user_type"] == "undefined") { this.eventParam.event_data["sl_user_type"] = typeof user_params.sl_user_type !== "undefined" ? user_params.sl_user_type : "b2c"; } if ( typeof this.uattr["sl_user_type"] != "undefined" && this.uattr["sl_user_type"] == "b2b" ) { this.eventParam.event_data["sl_user_type"] = this.uattr["sl_user_type"]; } this.eventParam.event_data["sl_event_time"] = Math.floor(new Date()); this.eventParam.event_data["sl_utm_src"] = fetchUTMSource(); var user = getUserInfo(); for (userKey in WebTracking.commonUserAttr["sl_user_attr"]) { if ( typeof this.eventParam.event_data[userKey] == "undefined" && typeof this.eventParam["user_attributes"] != "undefined" && this.eventParam["user_attributes"].indexOf(userKey) != -1 ) this.eventParam.event_data[userKey] = user[WebTracking.commonUserAttr["sl_user_attr"][userKey]]; } if ( typeof this.eventParam != "undefined" && typeof this.eventParam.common != "undefined" && typeof WebTracking.commonData != "undefined" && typeof WebTracking.commonData[this.eventParam.common] != "undefined" ) { for (keyN in WebTracking.commonData[this.eventParam["common"]]) { commonKey = WebTracking.commonData[this.eventParam["common"]][keyN]; if (typeof this.eventParam.event_data[commonKey] == "undefined") { var valueCommonKey = ""; if ( typeof user_params[commonKey] != "undefined" && user_params[commonKey] !== "" ) { if (user_params[commonKey] === "true") { valueCommonKey = true; } else if (user_params[commonKey] === "false") { valueCommonKey = false; } else if (!isNaN(user_params[commonKey])) { valueCommonKey = Number(user_params[commonKey]) || 0; } else if (this.IsJsonString(user_params[commonKey])) { valueCommonKey = JSON.parse(user_params[commonKey]) || {}; } else { valueCommonKey = user_params[commonKey] || ""; } if (valueCommonKey != "" && valueCommonKey != 0) this.eventParam.event_data[commonKey] = valueCommonKey; } } } } if ( typeof this.eventParam != "undefined" && typeof this.eventParam.user_attributes == "undefined" ) { this.eventParam.user_attributes = WebTracking.commonUserAttr["user_attributes"]; } else if ( typeof this.eventParam != "undefined" && typeof this.eventParam.user_attributes != "undefined" ) { this.eventParam.user_attributes = this.eventParam.user_attributes .concat(WebTracking.commonUserAttr["user_attributes"]) .filter(onlyUnique); } if ( typeof this.eventParam != "undefined" && typeof this.eventParam.common != "undefined" && typeof WebTracking.commonUserAttr != "undefined" && typeof WebTracking.commonUserAttr[this.eventParam.common] != "undefined" ) { this.eventParam.user_attributes = this.eventParam.user_attributes .concat(WebTracking.commonUserAttr[this.eventParam.common]) .filter(onlyUnique); } if (printGaInConsole) { console.log("this.eventParam.event_data", this.eventParam.event_data); } }, // trigger fuction calls for doing tasks on an event triggerEvent: function (params) { var self = this; webengage.onReady(function () { // console.log(params) self.setEventParams(params); try { var fnCalls = [ self.loginUser(), self.userAttributesWE(), self.eventPushWE(), // self.eventPushSL(), // self.userAttPushSL(), // self.eventPushGA(), ]; Promise.all(fnCalls).then(self.postEvent()); } catch (err) { console.log("Event tracking error : ", err); } }); }, userAttributesWE: async function () { if ( typeof this.eventParam != "undefined" && typeof this.eventParam.user_attributes != "undefined" ) { var userAttrs = {}; if ( typeof webengage != "undefined" && typeof webengage.state != "undefined" ) { var weUserData = webengage.state.getForever(); userAttrs = typeof weUserData != "undefined" && typeof weUserData["uattr"] != "undefined" ? weUserData["uattr"] : {}; } for (index in this.eventParam.user_attributes) { var userAttributeKey = this.eventParam.user_attributes[index]; var uAttrName = ""; // console.log('userAttributeKey',userAttributeKey) if ( typeof this.eventParam.userAttributesMap != "undefined" && typeof this.eventParam.userAttributesMap[userAttributeKey] != "undefined" && typeof this.eventParam.event_data[userAttributeKey] != "undefined" && this.eventParam.event_data[userAttributeKey] != "" ) { uAttrName = this.eventParam.userAttributesMap[userAttributeKey]; } else if ( typeof WebTracking.userAttributesMap[userAttributeKey] != "undefined" && typeof this.eventParam.event_data[userAttributeKey] != "undefined" && this.eventParam.event_data[userAttributeKey] != "" ) { uAttrName = WebTracking.userAttributesMap[userAttributeKey]; } else if ( typeof this.eventParam.event_data[userAttributeKey] != "undefined" && this.eventParam.event_data[userAttributeKey] != "" ) { uAttrName = userAttributeKey; } if (uAttrName != "") { // console.log('uAttrName', userAttributeKey, WebTracking.commonUserAttr['sl_user_attr_no_update'][userAttributeKey]); if ( WebTracking.commonUserAttr["we_location_attrs"].indexOf( uAttrName ) != -1 && typeof webengage.util != "undefined" ) { var sessionObj = webengage.util.getSessionCookie(); sessionObj[uAttrName] = this.eventParam.event_data[ userAttributeKey ]; //all manipulations you want to do with we_city, we_country and we_region webengage.util.setSessionCookie(sessionObj); } else { webengage.user.setAttribute( uAttrName, this.eventParam.event_data[userAttributeKey] ); } this.userAttrPush[uAttrName] = this.eventParam.event_data[ userAttributeKey ]; if ( typeof this.eventParam["sl_user_attr_no_update"] != "undefined" && typeof this.eventParam["sl_user_attr_no_update"][ userAttributeKey ] != "undefined" && typeof userAttrs[ this.eventParam["sl_user_attr_no_update"][userAttributeKey] ] == "undefined" ) { webengage.user.setAttribute( this.eventParam["sl_user_attr_no_update"][userAttributeKey], this.eventParam.event_data[userAttributeKey] ); this.userAttrPush[ this.eventParam["sl_user_attr_no_update"][userAttributeKey] ] = this.eventParam.event_data[userAttributeKey]; } else if ( typeof WebTracking.commonUserAttr["sl_user_attr_no_update"][ userAttributeKey ] != "undefined" && typeof userAttrs[ WebTracking.commonUserAttr["sl_user_attr_no_update"][ userAttributeKey ] ] == "undefined" ) { webengage.user.setAttribute( WebTracking.commonUserAttr["sl_user_attr_no_update"][ userAttributeKey ], this.eventParam.event_data[userAttributeKey] ); this.userAttrPush[ WebTracking.commonUserAttr["sl_user_attr_no_update"][ userAttributeKey ] ] = this.eventParam.event_data[userAttributeKey]; } } } // console.log('update user attributes in WE',this.eventParam.user_attributes); // console.log('user attributes event push to Kafka'); } }, // event push to WE eventPushWE: async function () { if ( typeof this.eventParam != "undefined" && typeof this.eventParam.event_data != "undefined" && typeof this.eventParam.event_id != "undefined" && typeof WebTracking.events[this.eventParam.event_id] != "undefined" && WebTracking.weBarredEvents.indexOf(this.eventParam.event_id) == -1 ) { var obj_length = 0; for (eventAttributeKey in this.eventParam.event_data) { // console.log('eventAttributeKey',eventAttributeKey) if ( typeof this.eventParam.event_data[eventAttributeKey] == "undefined" || this.eventParam.event_data[eventAttributeKey] == "" ) { delete this.eventParam.event_data[eventAttributeKey]; } else { obj_length += 1; } } var weData = this.eventParam.event_data; weData["event_name"] = WebTracking.events[this.eventParam.event_id].action; if (obj_length > 0) { webengage.track(this.eventParam.event_id, this.eventParam.event_data); } //console.log('event push to WE', this.eventParam.event_data, obj_length); } }, // event push to Kafka eventPushSL: async function () { if ( typeof this.eventParam != "undefined" && typeof this.eventParam.event_data != "undefined" && typeof this.eventParam.event_id != "undefined" && typeof WebTracking.events[this.eventParam.event_id] != "undefined" && WebTracking.weBarredEvents.indexOf(this.eventParam.event_id) == -1 ) { // webengage.track(WebTracking.events[this.eventParam.event_id].action, this.eventParam.event_data); // console.log('event push to Kafka', this.eventParam.event_data); var obj_length = 0; for (eventAttributeKey in this.eventParam.event_data) { // console.log('eventAttributeKey',eventAttributeKey) if ( typeof this.eventParam.event_data[eventAttributeKey] == "undefined" || this.eventParam.event_data[eventAttributeKey] == "" ) { delete this.eventParam.event_data[eventAttributeKey]; } else { obj_length += 1; } } weData = this.cloneData(this.eventParam.event_data); //Array.from(this.eventParam.event_data); if ( typeof webengage != "undefined" && typeof webengage.state != "undefined" ) { var weUserData = webengage.state.getForever(); if ( typeof weUserData != "undefined" && typeof weUserData["cuid"] != "undefined" ) weData["we_user_id"] = weUserData["cuid"]; if ( typeof weUserData != "undefined" && typeof weUserData["luid"] != "undefined" ) weData["we_anon_id"] = weUserData["luid"]; } weData["sl_page_url"] = document.URL; weData["event_name"] = WebTracking.events[this.eventParam.event_id].action; weData["event_id"] = this.eventParam.event_id; var params = { records: [ { value: weData, key: this.eventParam.event_id, }, ], }; if (obj_length > 0) { await this.sendEventsSL(params); if ( typeof webengage != "undefined" && typeof webengage.state != "undefined" ) { var weUserData = webengage.state.getForever(); if ( typeof weUserData == "undefined" || (typeof weUserData != "undefined" && typeof weUserData["cuid"] == "undefined") ) { if (sessionStorage) { var userData = JSON.parse( sessionStorage.getItem(this.event_data_key) ); if (typeof userData == "undefined" || userData == null) { userData = []; } userData.push(weData); sessionStorage.setItem( this.event_data_key, JSON.stringify(userData) ); setSlGlobalData(this.event_data_key, userData); } } } if (printGaInConsole) console.log("event push to Kafka", params); } } }, // event push to Kafka userAttPushSL: async function () { if ( typeof this.userAttrPush != "undefined" && !this.isEmpty(this.userAttrPush) ) { var weData = {}; weData["sl_event_time"] = typeof this.userAttrPush["sl_event_time"] != "undefined" ? this.userAttrPush["sl_event_time"] : Math.floor(new Date()); weData["sl_page_url"] = document.URL; weData["user_attr"] = this.cloneData(this.userAttrPush); //Array.from(this.userAttrPush); if ( typeof webengage != "undefined" && typeof webengage.state != "undefined" ) { var weUserData = webengage.state.getForever(); if ( typeof weUserData != "undefined" && typeof weUserData["cuid"] != "undefined" ) weData["we_user_id"] = weUserData["cuid"]; if ( typeof weUserData != "undefined" && typeof weUserData["luid"] != "undefined" ) weData["we_anon_id"] = weUserData["luid"]; } var params = { records: [ { value: weData, key: "we_user_attr_update", }, ], }; await this.sendEventsSL(params); if ( typeof webengage != "undefined" && typeof webengage.state != "undefined" ) { var weUserData = webengage.state.getForever(); if ( typeof weUserData == "undefined" || (typeof weUserData != "undefined" && typeof weUserData["cuid"] == "undefined") ) { if (sessionStorage) { var userData = JSON.parse( sessionStorage.getItem(this.user_attr_key) ); if (typeof userData == "undefined" || userData == null) { userData = []; } userData.push(weData); sessionStorage.setItem( this.user_attr_key, JSON.stringify(userData) ); setSlGlobalData(this.user_attr_key, userData); } } } if (printGaInConsole) console.log("user att event push to Kafka", params); } }, //send events to KAfka sendEventsSL: function (params) { var xhr = new XMLHttpRequest(); // xhr.withCredentials = true; xhr.open("POST", eventsSLURL, true); xhr.setRequestHeader( "Content-Type", "application/vnd.kafka.json.v2+json;charset=utf-8;" ); // xhr.setRequestHeader("cache-control", "no-cache"); // xhr.setRequestHeader("Authorization", "Basic " + btoa(eventsSLUser + ":" + eventsSLPass)); xhr.onload = function () { if (printGaInConsole) console.log("sendEventsSL response", xhr.response); return xhr.response; }; xhr.onerror = function () { if (printGaInConsole) console.log("sendEventsSL error response", xhr.response); return xhr.response; }; xhr.send(JSON.stringify(params)); }, // parse event data and push event to GA eventPushGA: async function () { if ( typeof this.eventParam != "undefined" && typeof this.eventParam.event_data != "undefined" && typeof this.eventParam.event_id != "undefined" && typeof WebTracking.events[this.eventParam.event_id] != "undefined" ) { await this.preparePushParam(); this.gaPush(); // console.log('event push to GA', this.eventParam.event_data); // console.log('event push to Kafka'); } }, postEvent: function () { var event = typeof this.eventParam.event_id != "undefined" ? this.eventParam.event_id : ""; if (printGaInConsole) { console.log("event done", event); } }, preparePushParam: function () { if ( typeof this.eventParam !== "undefined" && typeof this.eventParam.event_id !== "undefined" ) { if (typeof WebTracking.events[this.eventParam.event_id] !== "undefined") { var value = 0; var eventDetail = WebTracking.events[this.eventParam.event_id]; var funnelString = eventDetail.category; var funnelAction = eventDetail.action; var funnelLabel = ""; var noninteractiveness = eventDetail.noninteractiveness; if (eventDetail.labelRequired) { funnelLabel = user_params.user_id || "undefined"; for (eventAttributeKey in this.eventParam.event_data) { // console.log('eventAttributeKey',eventAttributeKey) if ( WebTracking.gaBarredAttributes.indexOf(eventAttributeKey) == -1 && this.eventParam.event_data[eventAttributeKey] != "" ) { if ( typeof this.eventParam.event_data[eventAttributeKey] == "object" ) funnelLabel += " || " + JSON.stringify(this.eventParam.event_data[eventAttributeKey]); else funnelLabel += " || " + this.eventParam.event_data[eventAttributeKey]; } } funnelLabel += typeof this.eventParam.entry_page != "undefined" ? " || " + this.eventParam.entry_page : " || " + document.URL; // console.log('funnelLabel',funnelLabel) this.finalGaParam = [ "_trackEvent", funnelString, funnelAction, funnelLabel, value, noninteractiveness, ]; } else { this.finalGaParam = [ "_trackEvent", funnelString, funnelAction, funnelLabel, value, noninteractiveness, ]; } } // console.log('preparePushParam',this.finalGaParam); } }, gaPush: function () { var arrLength = this.finalGaParam.length; if (arrLength > 0) { if (printGaInConsole) { console.log(this.finalGaParam); } if (typeof _gaq !== "undefined") { _gaq.push(this.finalGaParam); } } }, isEmpty: function (obj) { for (var key in obj) { if (obj.hasOwnProperty(key)) return false; } return true; }, IsJsonString: function (str) { try { JSON.parse(str); } catch (e) { return false; } return true; }, cloneData: function (data) { return JSON.parse(JSON.stringify(data)); }, }; WebTracking.setUserParams = function (key, value) { user_params[key] = value; }; // =============================================================================================================== // WebTracking.eventReq = { // user: "", // event_data_key: 'we_event_data', // user_attr_key: 'we_attr_data', // uattr: {}, // eventParam: [], // finalGaParam: [], // userAttrPush: {}, // // check if WE logged in email is different than new event email and login, create user cookie // loginUser: async function () { // if (typeof this.eventParam != 'undefined' && typeof this.eventParam.event_data != 'undefined' && typeof this.eventParam.event_data['sl_user_email'] != 'undefined' // && this.eventParam.event_data['sl_user_email'] != '' && this.eventParam.event_data['sl_user_email'] != this.user) { // this.user = this.eventParam.event_data['sl_user_email']; // webengage.user.login(this.user); // } // }, // logoutUser: function () { // if (typeof webengage != 'undefined' && typeof webengage.state != 'undefined') { // var weUserData = webengage.state.getForever(); // if (typeof weUserData != 'undefined' && typeof weUserData['cuid'] != 'undefined') { // webengage.user.logout(); // } // } // }, // getDataFromUserParams: function (fields) { // var self = this; // if (Array.isArray(fields)) { // var data = {}; // fields.forEach(function (key) { // data[key] = (typeof user_params[key] != 'undefined') ? user_params[key] : null; // if (!isNaN(data[key])) { // data[key] = Number(data[key]) || 0; // } else if (self.IsJsonString(data[key])) { // data[key] = JSON.parse(data[key]) || {}; // } else { // data[key] = data[key] || ""; // } // }); // return data; // } // return {}; // }, // setEventParams: function (params) { // this.eventParam = params; // if (typeof this.eventParam.event_data == 'undefined') { // this.eventParam.event_data = {} // } // if (typeof webengage != 'undefined' && typeof webengage.state != 'undefined') { // var weUserData = webengage.state.getForever(); // // if(!weUserData) return; // var hashKey = ''; // if (typeof this.eventParam.event_data['sl_user_email'] != 'undefined') { // hashKey = this.eventParam.event_data['sl_user_email']; // } else if (typeof weUserData != 'undefined' && typeof weUserData['cuid'] != 'undefined') { // this.user = weUserData['cuid']; // hashKey = this.user; // } // if (typeof this.eventParam.event_data['sl_user_phone'] != 'undefined') { // hashKey += "," + this.eventParam.event_data['sl_user_phone']; // } else if (typeof weUserData != 'undefined' && typeof weUserData['we_phone'] != 'undefined') { // hashKey += "," + weUserData['we_phone']; // } // this.eventParam.event_data['sl_user_email_hash'] = btoa(hashKey); // if (typeof weUserData != 'undefined' && typeof weUserData['uattr'] != 'undefined') // this.uattr = weUserData['uattr']; // } // if (typeof this.eventParam.event_data['sl_user_type'] == 'undefined') { // this.eventParam.event_data['sl_user_type'] = (typeof user_params.sl_user_type !== 'undefined') ? user_params.sl_user_type : 'b2c'; // } // if (typeof this.uattr['sl_user_type'] != 'undefined' && this.uattr['sl_user_type'] == 'b2b') { // this.eventParam.event_data['sl_user_type'] = this.uattr['sl_user_type']; // } // this.eventParam.event_data['sl_event_time'] = Math.floor(new Date()); // this.eventParam.event_data['sl_utm_src'] = fetchUTMSource(); // var user = getUserInfo(); // for (userKey in WebTracking.commonUserAttr['sl_user_attr']) { // if (typeof this.eventParam.event_data[userKey] == 'undefined' && typeof this.eventParam['user_attributes'] != 'undefined' && this.eventParam['user_attributes'].indexOf(userKey) != -1) // this.eventParam.event_data[userKey] = user[WebTracking.commonUserAttr['sl_user_attr'][userKey]]; // } // if (typeof this.eventParam != 'undefined' && typeof this.eventParam.common != 'undefined' && typeof WebTracking.commonData != 'undefined' && typeof WebTracking.commonData[this.eventParam.common] != 'undefined') { // for (keyN in WebTracking.commonData[this.eventParam['common']]) { // commonKey = WebTracking.commonData[this.eventParam['common']][keyN]; // if (typeof this.eventParam.event_data[commonKey] == 'undefined') { // var valueCommonKey = ""; // if (typeof user_params[commonKey] != 'undefined' && user_params[commonKey] !== '') { // if (user_params[commonKey] === 'true') { // valueCommonKey = true; // } else if (user_params[commonKey] === 'false') { // valueCommonKey = false; // } else if (!isNaN(user_params[commonKey])) { // valueCommonKey = Number(user_params[commonKey]) || 0; // } else if (this.IsJsonString(user_params[commonKey])) { // valueCommonKey = JSON.parse(user_params[commonKey]) || {}; // } else { // valueCommonKey = user_params[commonKey] || ""; // } // if (valueCommonKey != "" && valueCommonKey != 0) // this.eventParam.event_data[commonKey] = valueCommonKey; // } // } // } // } // if (typeof this.eventParam != 'undefined' && typeof this.eventParam.user_attributes == 'undefined') { // this.eventParam.user_attributes = WebTracking.commonUserAttr['user_attributes']; // } // else if (typeof this.eventParam != 'undefined' && typeof this.eventParam.user_attributes != 'undefined') { // this.eventParam.user_attributes = this.eventParam.user_attributes.concat(WebTracking.commonUserAttr['user_attributes']).filter(onlyUnique); // } // if (typeof this.eventParam != 'undefined' && typeof this.eventParam.common != 'undefined' && typeof WebTracking.commonUserAttr != 'undefined' && typeof WebTracking.commonUserAttr[this.eventParam.common] != 'undefined') { // this.eventParam.user_attributes = this.eventParam.user_attributes.concat(WebTracking.commonUserAttr[this.eventParam.common]).filter(onlyUnique); // } // if (printGaInConsole) { // console.log('this.eventParam.event_data', this.eventParam.event_data) // } // }, // // trigger fuction calls for doing tasks on an event // triggerEvent: function (params) { // var self = this; // webengage.onReady(function () { // // console.log(params) // self.setEventParams(params); // try { // var fnCalls = [ // self.loginUser(), // self.userAttributesWE(), // self.eventPushWE(), // // self.eventPushSL(), // // self.userAttPushSL(), // self.eventPushGA()]; // Promise.all(fnCalls).then(self.postEvent()); // } catch (err) { // console.log('Event tracking error : ', err) // } // }); // }, // userAttributesWE: async function () { // if (typeof this.eventParam != 'undefined' && typeof this.eventParam.user_attributes != 'undefined') { // var userAttrs = {}; // if (typeof webengage != 'undefined' && typeof webengage.state != 'undefined') { // var weUserData = webengage.state.getForever(); // userAttrs = typeof weUserData != 'undefined' && typeof weUserData['uattr'] != 'undefined' ? weUserData['uattr'] : {}; // } // for (index in this.eventParam.user_attributes) { // var userAttributeKey = this.eventParam.user_attributes[index] // var uAttrName = ""; // // console.log('userAttributeKey',userAttributeKey) // if (typeof this.eventParam.userAttributesMap != 'undefined' && typeof this.eventParam.userAttributesMap[userAttributeKey] != 'undefined' && typeof this.eventParam.event_data[userAttributeKey] != 'undefined' && this.eventParam.event_data[userAttributeKey] != '') { // uAttrName = this.eventParam.userAttributesMap[userAttributeKey]; // } else if (typeof WebTracking.userAttributesMap[userAttributeKey] != 'undefined' && typeof this.eventParam.event_data[userAttributeKey] != 'undefined' && this.eventParam.event_data[userAttributeKey] != '') { // uAttrName = WebTracking.userAttributesMap[userAttributeKey]; // } else if (typeof this.eventParam.event_data[userAttributeKey] != 'undefined' && this.eventParam.event_data[userAttributeKey] != '') { // uAttrName = userAttributeKey; // } // if (uAttrName != '') { // // console.log('uAttrName', userAttributeKey, WebTracking.commonUserAttr['sl_user_attr_no_update'][userAttributeKey]); // if (WebTracking.commonUserAttr['we_location_attrs'].indexOf(uAttrName) != -1 && typeof webengage.util != 'undefined') { // var sessionObj = webengage.util.getSessionCookie(); // sessionObj[uAttrName] = this.eventParam.event_data[userAttributeKey]; //all manipulations you want to do with we_city, we_country and we_region // webengage.util.setSessionCookie(sessionObj) // } else { // webengage.user.setAttribute(uAttrName, this.eventParam.event_data[userAttributeKey]); // } // this.userAttrPush[uAttrName] = this.eventParam.event_data[userAttributeKey]; // if (typeof this.eventParam['sl_user_attr_no_update'] != 'undefined' // && typeof this.eventParam['sl_user_attr_no_update'][userAttributeKey] != 'undefined' // && typeof userAttrs[this.eventParam['sl_user_attr_no_update'][userAttributeKey]] == 'undefined') { // webengage.user.setAttribute(this.eventParam['sl_user_attr_no_update'][userAttributeKey], this.eventParam.event_data[userAttributeKey]); // this.userAttrPush[this.eventParam['sl_user_attr_no_update'][userAttributeKey]] = this.eventParam.event_data[userAttributeKey]; // } else if (typeof WebTracking.commonUserAttr['sl_user_attr_no_update'][userAttributeKey] != 'undefined' // && typeof userAttrs[WebTracking.commonUserAttr['sl_user_attr_no_update'][userAttributeKey]] == 'undefined') { // webengage.user.setAttribute(WebTracking.commonUserAttr['sl_user_attr_no_update'][userAttributeKey], this.eventParam.event_data[userAttributeKey]); // this.userAttrPush[WebTracking.commonUserAttr['sl_user_attr_no_update'][userAttributeKey]] = this.eventParam.event_data[userAttributeKey]; // } // } // } // // console.log('update user attributes in WE',this.eventParam.user_attributes); // // console.log('user attributes event push to Kafka'); // } // }, // // event push to WE // eventPushWE: async function () { // if (typeof this.eventParam != 'undefined' && typeof this.eventParam.event_data != 'undefined' // && typeof this.eventParam.event_id != 'undefined' // && typeof WebTracking.events[this.eventParam.event_id] != 'undefined' // && WebTracking.weBarredEvents.indexOf(this.eventParam.event_id) == -1) { // var obj_length = 0; // for (eventAttributeKey in this.eventParam.event_data) { // // console.log('eventAttributeKey',eventAttributeKey) // if (typeof this.eventParam.event_data[eventAttributeKey] == 'undefined' || this.eventParam.event_data[eventAttributeKey] == '') { // delete this.eventParam.event_data[eventAttributeKey]; // } else { // obj_length += 1; // } // } // var weData = this.eventParam.event_data; // weData['event_name'] = WebTracking.events[this.eventParam.event_id].action; // if (obj_length > 0) { // webengage.track(this.eventParam.event_id, this.eventParam.event_data); // } // //console.log('event push to WE', this.eventParam.event_data, obj_length); // } // }, // // event push to Kafka // eventPushSL: async function () { // if (typeof this.eventParam != 'undefined' && typeof this.eventParam.event_data != 'undefined' // && typeof this.eventParam.event_id != 'undefined' // && typeof WebTracking.events[this.eventParam.event_id] != 'undefined' // && WebTracking.weBarredEvents.indexOf(this.eventParam.event_id) == -1) { // // webengage.track(WebTracking.events[this.eventParam.event_id].action, this.eventParam.event_data); // // console.log('event push to Kafka', this.eventParam.event_data); // var obj_length = 0; // for (eventAttributeKey in this.eventParam.event_data) { // // console.log('eventAttributeKey',eventAttributeKey) // if (typeof this.eventParam.event_data[eventAttributeKey] == 'undefined' || this.eventParam.event_data[eventAttributeKey] == '') { // delete this.eventParam.event_data[eventAttributeKey]; // } else { // obj_length += 1; // } // } // weData = this.cloneData(this.eventParam.event_data); // //Array.from(this.eventParam.event_data); // if (typeof webengage != 'undefined' && typeof webengage.state != 'undefined') { // var weUserData = webengage.state.getForever(); // if (typeof weUserData != 'undefined' && typeof weUserData['cuid'] != 'undefined') // weData['we_user_id'] = weUserData['cuid']; // if (typeof weUserData != 'undefined' && typeof weUserData['luid'] != 'undefined') // weData['we_anon_id'] = weUserData['luid']; // } // weData['sl_page_url'] = document.URL; // weData['event_name'] = WebTracking.events[this.eventParam.event_id].action; // weData['event_id'] = this.eventParam.event_id; // var params = { "records": [{ "value": weData, "key": this.eventParam.event_id }] } // if (obj_length > 0) { // await this.sendEventsSL(params) // if (typeof webengage != 'undefined' && typeof webengage.state != 'undefined') { // var weUserData = webengage.state.getForever(); // if (typeof weUserData == 'undefined' || (typeof weUserData != 'undefined' && typeof weUserData['cuid'] == 'undefined')) { // if (sessionStorage) { // var userData = JSON.parse(sessionStorage.getItem(this.event_data_key)); // if (typeof userData == 'undefined' || userData == null) { // userData = []; // } // userData.push(weData); // sessionStorage.setItem(this.event_data_key, JSON.stringify(userData)) // setSlGlobalData(this.event_data_key, userData); // } // } // } // if (printGaInConsole) // console.log('event push to Kafka', params); // } // } // }, // // event push to Kafka // userAttPushSL: async function () { // if (typeof this.userAttrPush != 'undefined' && !this.isEmpty(this.userAttrPush)) { // var weData = {}; // weData['sl_event_time'] = typeof this.userAttrPush['sl_event_time'] != 'undefined' ? this.userAttrPush['sl_event_time'] : Math.floor(new Date()); // weData['sl_page_url'] = document.URL; // weData['user_attr'] = this.cloneData(this.userAttrPush); // //Array.from(this.userAttrPush); // if (typeof webengage != 'undefined' && typeof webengage.state != 'undefined') { // var weUserData = webengage.state.getForever(); // if (typeof weUserData != 'undefined' && typeof weUserData['cuid'] != 'undefined') // weData['we_user_id'] = weUserData['cuid']; // if (typeof weUserData != 'undefined' && typeof weUserData['luid'] != 'undefined') // weData['we_anon_id'] = weUserData['luid']; // } // var params = { "records": [{ "value": weData, "key": 'we_user_attr_update' }] }; // await this.sendEventsSL(params); // if (typeof webengage != 'undefined' && typeof webengage.state != 'undefined') { // var weUserData = webengage.state.getForever(); // if (typeof weUserData == 'undefined' || (typeof weUserData != 'undefined' && typeof weUserData['cuid'] == 'undefined')) { // if (sessionStorage) { // var userData = JSON.parse(sessionStorage.getItem(this.user_attr_key)); // if (typeof userData == 'undefined' || userData == null) { // userData = []; // } // userData.push(weData); // sessionStorage.setItem(this.user_attr_key, JSON.stringify(userData)) // setSlGlobalData(this.user_attr_key, userData); // } // } // } // if (printGaInConsole) // console.log('user att event push to Kafka', params); // } // }, // //send events to KAfka // sendEventsSL: function (params) { // var xhr = new XMLHttpRequest(); // // xhr.withCredentials = true; // xhr.open("POST", eventsSLURL, true); // xhr.setRequestHeader("Content-Type", "application/vnd.kafka.json.v2+json;charset=utf-8;"); // // xhr.setRequestHeader("cache-control", "no-cache"); // // xhr.setRequestHeader("Authorization", "Basic " + btoa(eventsSLUser + ":" + eventsSLPass)); // xhr.onload = function () { // if (printGaInConsole) // console.log('sendEventsSL response', xhr.response) // return xhr.response; // }; // xhr.onerror = function () { // if (printGaInConsole) // console.log('sendEventsSL error response', xhr.response) // return xhr.response; // }; // xhr.send(JSON.stringify(params)); // }, // // parse event data and push event to GA // eventPushGA: async function () { // if (typeof this.eventParam != 'undefined' && typeof this.eventParam.event_data != 'undefined' // && typeof this.eventParam.event_id != 'undefined' && typeof WebTracking.events[this.eventParam.event_id] != 'undefined') { // await this.preparePushParam() // this.gaPush() // // console.log('event push to GA', this.eventParam.event_data); // // console.log('event push to Kafka'); // } // }, // postEvent: function () { // var event = typeof this.eventParam.event_id != 'undefined' ? this.eventParam.event_id : ""; // if (printGaInConsole) { // console.log('event done', event); // } // }, // preparePushParam: function () { // if (typeof this.eventParam !== "undefined" && typeof this.eventParam.event_id !== "undefined") { // if (typeof WebTracking.events[this.eventParam.event_id] !== "undefined") { // var value = 0; // var eventDetail = WebTracking.events[this.eventParam.event_id]; // var funnelString = eventDetail.category; // var funnelAction = eventDetail.action; // var funnelLabel = ''; // var noninteractiveness = eventDetail.noninteractiveness; // if (eventDetail.labelRequired) { // funnelLabel = user_params.user_id || 'undefined'; // for (eventAttributeKey in this.eventParam.event_data) { // // console.log('eventAttributeKey',eventAttributeKey) // if (WebTracking.gaBarredAttributes.indexOf(eventAttributeKey) == -1 && this.eventParam.event_data[eventAttributeKey] != '') { // if (typeof this.eventParam.event_data[eventAttributeKey] == "object") // funnelLabel += ' || ' + JSON.stringify(this.eventParam.event_data[eventAttributeKey]); // else // funnelLabel += ' || ' + this.eventParam.event_data[eventAttributeKey]; // } // } // funnelLabel += typeof this.eventParam.entry_page != 'undefined' ? " || " + this.eventParam.entry_page : " || " + document.URL; // // console.log('funnelLabel',funnelLabel) // this.finalGaParam = ['_trackEvent', funnelString, funnelAction, funnelLabel, value, noninteractiveness]; // } else { // this.finalGaParam = ['_trackEvent', funnelString, funnelAction, funnelLabel, value, noninteractiveness]; // } // } // // console.log('preparePushParam',this.finalGaParam); // } // }, // gaPush: function () { // var arrLength = this.finalGaParam.length; // if (arrLength > 0) { // if (printGaInConsole) { // console.log(this.finalGaParam); // } // if (typeof _gaq !== 'undefined') { // _gaq.push(this.finalGaParam); // } // } // }, // isEmpty: function (obj) { // for (var key in obj) { // if (obj.hasOwnProperty(key)) // return false; // } // return true; // }, // IsJsonString: function (str) { // try { // JSON.parse(str); // } catch (e) { // return false; // } // return true; // }, // cloneData: function (data) { // return JSON.parse(JSON.stringify(data)); // } // }; // WebTracking.setUserParams = function (key, value) { // user_params[key] = value; // }; WebTracking.eventReq.setType = function (value) { if (typeof value != "undefined" && value != "") { if (value === "true") { value = true; } else if (value === "false") { value = false; } else if (!isNaN(value)) { value = Number(value) || 0; } else if (this.IsJsonString(value)) { value = JSON.parse(value) || {}; } else { value = value || ""; } } else { value = ""; } return value; }; /*------------- End : WebEvents.js-----------*/ /*------------- Begin : CountryData.js-----------*/ var countryDataIe = [{"id":"34","name":"United States","code":"US","phnCode":"1"},{"id":"2","name":"Australia","code":"AU","phnCode":"61"},{"id":"14","name":"United Kingdom","code":"GB","phnCode":"44"},{"id":"6","name":"India","code":"IN","phnCode":"91"},{"id":"30","name":"Saudi Arabia","code":"SA","phnCode":"966"},{"id":"24","name":"United Arab Emirates","code":"AE","phnCode":"971"},{"id":"35","name":"Canada","code":"CA","phnCode":"1"},{"id":"213","name":"Singapore","code":"SG","phnCode":"65"},{"id":"23","name":"Switzerland","code":"CH","phnCode":"41"},{"id":"67","name":"South Africa","code":"ZA","phnCode":"27"},{"id":"104","name":"Afghanistan","code":"AF","phnCode":"93"},{"id":"111","name":"Aland Islands","code":"AX","phnCode":"358"},{"id":"107","name":"Albania","code":"AL","phnCode":"355"},{"id":"137","name":"Algeria","code":"DZ","phnCode":"213"},{"id":"109","name":"American Samoa","code":"AS","phnCode":"1684"},{"id":"103","name":"Andorra","code":"AD","phnCode":"376"},{"id":"74","name":"Angola","code":"AO","phnCode":"244"},{"id":"106","name":"Anguilla","code":"AI","phnCode":"1264"},{"id":"108","name":"Antarctica","code":"AQ","phnCode":"672"},{"id":"105","name":"Antigua and Barbuda","code":"AG","phnCode":"1268"},{"id":"50","name":"Argentina","code":"AR","phnCode":"54"},{"id":"93","name":"Armenia","code":"AM","phnCode":"374"},{"id":"110","name":"Aruba","code":"AW","phnCode":"297"},{"id":"20","name":"Austria","code":"AT","phnCode":"43"},{"id":"69","name":"Azerbaijan","code":"AZ","phnCode":"994"},{"id":"120","name":"Bahamas","code":"BS","phnCode":"1242"},{"id":"59","name":"Bahrain","code":"BH","phnCode":"973"},{"id":"113","name":"Bangladesh","code":"BD","phnCode":"880"},{"id":"112","name":"Barbados","code":"BB","phnCode":"1246"},{"id":"96","name":"Belarus","code":"BY","phnCode":"375"},{"id":"22","name":"Belgium","code":"BE","phnCode":"32"},{"id":"124","name":"Belize","code":"BZ","phnCode":"501"},{"id":"115","name":"Benin","code":"BJ","phnCode":"229"},{"id":"37","name":"Bermuda","code":"BM","phnCode":"1441"},{"id":"121","name":"Bhutan","code":"BT","phnCode":"975"},{"id":"118","name":"Bolivia","code":"BO","phnCode":"591"},{"id":"86","name":"Bosnia and Herzegovina","code":"BA","phnCode":"387"},{"id":"123","name":"Botswana","code":"BW","phnCode":"267"},{"id":"122","name":"Bouvet Island","code":"BV","phnCode":"47"},{"id":"51","name":"Brazil","code":"BR","phnCode":"55"},{"id":"164","name":"British Indian Ocean Territory","code":"IO","phnCode":"246"},{"id":"117","name":"Brunei Darussalam","code":"BN","phnCode":"673"},{"id":"41","name":"Bulgaria","code":"BG","phnCode":"359"},{"id":"114","name":"Burkina Faso","code":"BF","phnCode":"226"},{"id":"70","name":"Burundi","code":"BI","phnCode":"257"},{"id":"249","name":"Cambodia","code":"KH","phnCode":"855"},{"id":"129","name":"Cameroon","code":"CM","phnCode":"237"},{"id":"132","name":"Cape Verde","code":"CV","phnCode":"238"},{"id":"119","name":"Caribbean Netherlands ","code":"BQ","phnCode":"599"},{"id":"171","name":"Cayman Islands","code":"KY","phnCode":"1345"},{"id":"126","name":"Central African Republic","code":"CF","phnCode":"236"},{"id":"227","name":"Chad","code":"TD","phnCode":"235"},{"id":"52","name":"Chile","code":"CL","phnCode":"56"},{"id":"3","name":"China","code":"CN","phnCode":"86"},{"id":"134","name":"Christmas Island","code":"CX","phnCode":"61"},{"id":"125","name":"Cocos (Keeling) Islands","code":"CC","phnCode":"61"},{"id":"55","name":"Colombia","code":"CO","phnCode":"57"},{"id":"168","name":"Comoros","code":"KM","phnCode":"269"},{"id":"81","name":"Congo","code":"CG","phnCode":"242"},{"id":"73","name":"Congo, Democratic Republic of","code":"CD","phnCode":"243"},{"id":"128","name":"Cook Islands","code":"CK","phnCode":"682"},{"id":"130","name":"Costa Rica","code":"CR","phnCode":"506"},{"id":"127","name":"Cote d'Ivoire","code":"CI","phnCode":"225"},{"id":"48","name":"Croatia","code":"HR","phnCode":"385"},{"id":"131","name":"Cuba","code":"CU","phnCode":"53"},{"id":"133","name":"Curacao","code":"CW","phnCode":"599"},{"id":"97","name":"Cyprus","code":"CY","phnCode":"357"},{"id":"39","name":"Czech Republic","code":"CZ","phnCode":"420"},{"id":"31","name":"Denmark","code":"DK","phnCode":"45"},{"id":"49","name":"Djibouti","code":"DJ","phnCode":"253"},{"id":"135","name":"Dominica","code":"DM","phnCode":"1767"},{"id":"136","name":"Dominican Republic","code":"DO","phnCode":"1809"},{"id":"138","name":"Ecuador","code":"EC","phnCode":"593"},{"id":"68","name":"Egypt","code":"EG","phnCode":"20"},{"id":"223","name":"El Salvador","code":"SV","phnCode":"503"},{"id":"154","name":"Equatorial Guinea","code":"GQ","phnCode":"240"},{"id":"140","name":"Eritrea","code":"ER","phnCode":"291"},{"id":"89","name":"Estonia","code":"EE","phnCode":"372"},{"id":"141","name":"Ethiopia","code":"ET","phnCode":"251"},{"id":"143","name":"Falkland Islands","code":"FK","phnCode":"500"},{"id":"145","name":"Faroe Islands","code":"FO","phnCode":"298"},{"id":"142","name":"Fiji","code":"FJ","phnCode":"679"},{"id":"42","name":"Finland","code":"FI","phnCode":"358"},{"id":"13","name":"France","code":"FR","phnCode":"33"},{"id":"148","name":"French Guiana","code":"GF","phnCode":"594"},{"id":"203","name":"French Polynesia","code":"PF","phnCode":"689"},{"id":"228","name":"French Southern Territories","code":"TF","phnCode":"262"},{"id":"146","name":"Gabon","code":"GA","phnCode":"241"},{"id":"152","name":"Gambia","code":"GM","phnCode":"220"},{"id":"66","name":"Georgia","code":"GE","phnCode":"995"},{"id":"15","name":"Germany","code":"DE","phnCode":"49"},{"id":"150","name":"Ghana","code":"GH","phnCode":"233"},{"id":"98","name":"Gibraltar","code":"GI","phnCode":"350"},{"id":"18","name":"Greece","code":"GR","phnCode":"30"},{"id":"151","name":"Greenland","code":"GL","phnCode":"299"},{"id":"147","name":"Grenada","code":"GD","phnCode":"1473"},{"id":"100","name":"Guadeloupe","code":"GP","phnCode":"590"},{"id":"157","name":"Guam","code":"GU","phnCode":"1671"},{"id":"156","name":"Guatemala","code":"GT","phnCode":"502"},{"id":"149","name":"Guernsey","code":"GG","phnCode":"44"},{"id":"153","name":"Guinea","code":"GN","phnCode":"224"},{"id":"158","name":"Guinea-Bissau","code":"GW","phnCode":"245"},{"id":"102","name":"Guyana","code":"GY","phnCode":"592"},{"id":"161","name":"Haiti","code":"HT","phnCode":"509"},{"id":"159","name":"Heard and McDonald Islands","code":"HM","phnCode":null},{"id":"160","name":"Honduras","code":"HN","phnCode":"504"},{"id":"9","name":"Hong Kong","code":"HK","phnCode":"852"},{"id":"45","name":"Hungary","code":"HU","phnCode":"36"},{"id":"78","name":"Iceland","code":"IS","phnCode":"354"},{"id":"162","name":"Indonesia","code":"ID","phnCode":"62"},{"id":"32","name":"Iran","code":"IR","phnCode":"98"},{"id":"64","name":"Iraq","code":"IQ","phnCode":"964"},{"id":"40","name":"Ireland","code":"IE","phnCode":"353"},{"id":"163","name":"Isle of Man","code":"IM","phnCode":"44"},{"id":"25","name":"Israel","code":"IL","phnCode":"972"},{"id":"17","name":"Italy","code":"IT","phnCode":"39"},{"id":"165","name":"Jamaica","code":"JM","phnCode":"1876"},{"id":"4","name":"Japan","code":"JP","phnCode":"81"},{"id":"83","name":"Jersey","code":"JE","phnCode":"44"},{"id":"63","name":"Jordan","code":"JO","phnCode":"962"},{"id":"28","name":"Kazakhstan","code":"KZ","phnCode":"7"},{"id":"166","name":"Kenya","code":"KE","phnCode":"254"},{"id":"167","name":"Kiribati","code":"KI","phnCode":"686"},{"id":"58","name":"Kuwait","code":"KW","phnCode":"965"},{"id":"91","name":"Kyrgyzstan","code":"KG","phnCode":"996"},{"id":"172","name":"Lao People's Democratic Republic","code":"LA","phnCode":"856"},{"id":"90","name":"Latvia","code":"LV","phnCode":"371"},{"id":"60","name":"Lebanon","code":"LB","phnCode":"961"},{"id":"176","name":"Lesotho","code":"LS","phnCode":"266"},{"id":"175","name":"Liberia","code":"LR","phnCode":"231"},{"id":"92","name":"Libya","code":"LY","phnCode":"218"},{"id":"82","name":"Liechtenstein","code":"LI","phnCode":"423"},{"id":"75","name":"Lithuania","code":"LT","phnCode":"370"},{"id":"47","name":"Luxembourg","code":"LU","phnCode":"352"},{"id":"185","name":"Macau","code":"MO","phnCode":"853"},{"id":"80","name":"Macedonia","code":"MK","phnCode":"389"},{"id":"180","name":"Madagascar","code":"MG","phnCode":"261"},{"id":"191","name":"Malawi","code":"MW","phnCode":"265"},{"id":"7","name":"Malaysia","code":"MY","phnCode":"60"},{"id":"190","name":"Maldives","code":"MV","phnCode":"960"},{"id":"182","name":"Mali","code":"ML","phnCode":"223"},{"id":"189","name":"Malta","code":"MT","phnCode":"356"},{"id":"181","name":"Marshall Islands","code":"MH","phnCode":"692"},{"id":"101","name":"Martinique","code":"MQ","phnCode":"596"},{"id":"187","name":"Mauritania","code":"MR","phnCode":"222"},{"id":"99","name":"Mauritius","code":"MU","phnCode":"230"},{"id":"248","name":"Mayotte","code":"YT","phnCode":"262"},{"id":"36","name":"Mexico","code":"MX","phnCode":"52"},{"id":"144","name":"Micronesia, Federated States of","code":"FM","phnCode":"691"},{"id":"79","name":"Moldova","code":"MD","phnCode":"373"},{"id":"177","name":"Monaco","code":"MC","phnCode":"377"},{"id":"184","name":"Mongolia","code":"MN","phnCode":"976"},{"id":"178","name":"Montenegro","code":"ME","phnCode":"382"},{"id":"188","name":"Montserrat","code":"MS","phnCode":"1664"},{"id":"250","name":"Morocco","code":"MA","phnCode":"212"},{"id":"192","name":"Mozambique","code":"MZ","phnCode":"258"},{"id":"183","name":"Myanmar","code":"MM","phnCode":"95"},{"id":"193","name":"Namibia","code":"NA","phnCode":"264"},{"id":"199","name":"Nauru","code":"NR","phnCode":"674"},{"id":"198","name":"Nepal","code":"NP","phnCode":"977"},{"id":"21","name":"Netherlands","code":"NL","phnCode":"31"},{"id":"194","name":"New Caledonia","code":"NC","phnCode":"687"},{"id":"201","name":"New Zealand","code":"NZ","phnCode":"64"},{"id":"197","name":"Nicaragua","code":"NI","phnCode":"505"},{"id":"195","name":"Niger","code":"NE","phnCode":"227"},{"id":"77","name":"Nigeria","code":"NG","phnCode":"234"},{"id":"200","name":"Niue","code":"NU","phnCode":"683"},{"id":"196","name":"Norfolk Island","code":"NF","phnCode":"672"},{"id":"170","name":"North Korea","code":"KP","phnCode":"850"},{"id":"186","name":"Northern Mariana Islands","code":"MP","phnCode":"1670"},{"id":"33","name":"Norway","code":"NO","phnCode":"47"},{"id":"62","name":"Oman","code":"OM","phnCode":"968"},{"id":"85","name":"Pakistan","code":"PK","phnCode":"92"},{"id":"208","name":"Palau","code":"PW","phnCode":"680"},{"id":"87","name":"Palestinian Territory, Occupied","code":"PS","phnCode":"970"},{"id":"54","name":"Panama","code":"PA","phnCode":"507"},{"id":"204","name":"Papua New Guinea","code":"PG","phnCode":"675"},{"id":"88","name":"Paraguay","code":"PY","phnCode":"595"},{"id":"202","name":"Peru","code":"PE","phnCode":"51"},{"id":"11","name":"Philippines","code":"PH","phnCode":"63"},{"id":"206","name":"Pitcairn","code":"PN","phnCode":"870"},{"id":"38","name":"Poland","code":"PL","phnCode":"48"},{"id":"29","name":"Portugal","code":"PT","phnCode":"351"},{"id":"207","name":"Puerto Rico","code":"PR","phnCode":"1"},{"id":"61","name":"Qatar","code":"QA","phnCode":"974"},{"id":"209","name":"Reunion","code":"RE","phnCode":"262"},{"id":"44","name":"Romania","code":"RO","phnCode":"40"},{"id":"27","name":"Russian Federation","code":"RU","phnCode":"7"},{"id":"210","name":"Rwanda","code":"RW","phnCode":"250"},{"id":"116","name":"Saint Barthelemy","code":"BL","phnCode":"590"},{"id":"214","name":"Saint Helena","code":"SH","phnCode":"290"},{"id":"169","name":"Saint Kitts and Nevis","code":"KN","phnCode":"1869"},{"id":"173","name":"Saint Lucia","code":"LC","phnCode":"1758"},{"id":"244","name":"Saint Vincent and the Grenadines","code":"VC","phnCode":"1784"},{"id":"179","name":"Saint-Martin (France)","code":"MF","phnCode":"1599"},{"id":"224","name":"Saint-Martin (Pays-Bas)","code":"SX","phnCode":"1721"},{"id":"247","name":"Samoa","code":"WS","phnCode":"685"},{"id":"217","name":"San Marino","code":"SM","phnCode":"378"},{"id":"222","name":"Sao Tome and Principe","code":"ST","phnCode":"239"},{"id":"218","name":"Senegal","code":"SN","phnCode":"221"},{"id":"76","name":"Serbia","code":"RS","phnCode":"381"},{"id":"84","name":"Seychelles","code":"SC","phnCode":"248"},{"id":"216","name":"Sierra Leone","code":"SL","phnCode":"232"},{"id":"46","name":"Slovakia (Slovak Republic)","code":"SK","phnCode":"421"},{"id":"43","name":"Slovenia","code":"SI","phnCode":"386"},{"id":"211","name":"Solomon Islands","code":"SB","phnCode":"677"},{"id":"219","name":"Somalia","code":"SO","phnCode":"252"},{"id":"155","name":"South Georgia and the South Sandwich Islands","code":"GS","phnCode":"500"},{"id":"8","name":"South Korea","code":"KR","phnCode":"82"},{"id":"221","name":"South Sudan","code":"SS","phnCode":"211"},{"id":"19","name":"Spain","code":"ES","phnCode":"34"},{"id":"174","name":"Sri Lanka","code":"LK","phnCode":"94"},{"id":"205","name":"St. Pierre and Miquelon","code":"PM","phnCode":"508"},{"id":"212","name":"Sudan","code":"SD","phnCode":"249"},{"id":"220","name":"Suriname","code":"SR","phnCode":"597"},{"id":"215","name":"Svalbard and Jan Mayen Islands","code":"SJ","phnCode":"47"},{"id":"225","name":"Swaziland","code":"SZ","phnCode":"268"},{"id":"16","name":"Sweden","code":"SE","phnCode":"46"},{"id":"57","name":"Syria","code":"SY","phnCode":"963"},{"id":"10","name":"Taiwan","code":"TW","phnCode":"886"},{"id":"230","name":"Tajikistan","code":"TJ","phnCode":"992"},{"id":"238","name":"Tanzania","code":"TZ","phnCode":"255"},{"id":"5","name":"Thailand","code":"TH","phnCode":"66"},{"id":"232","name":"Timor-Leste","code":"TL","phnCode":"670"},{"id":"229","name":"Togo","code":"TG","phnCode":"228"},{"id":"231","name":"Tokelau","code":"TK","phnCode":"690"},{"id":"235","name":"Tonga","code":"TO","phnCode":"676"},{"id":"236","name":"Trinidad and Tobago","code":"TT","phnCode":"1868"},{"id":"234","name":"Tunisia","code":"TN","phnCode":"216"},{"id":"65","name":"Turkey","code":"TR","phnCode":"90"},{"id":"233","name":"Turkmenistan","code":"TM","phnCode":"993"},{"id":"226","name":"Turks and Caicos Islands","code":"TC","phnCode":"1649"},{"id":"237","name":"Tuvalu","code":"TV","phnCode":"688"},{"id":"239","name":"Uganda","code":"UG","phnCode":"256"},{"id":"26","name":"Ukraine","code":"UA","phnCode":"380"},{"id":"240","name":"United States Minor Outlying Islands","code":"UM","phnCode":"699"},{"id":"241","name":"Uruguay","code":"UY","phnCode":"598"},{"id":"242","name":"Uzbekistan","code":"UZ","phnCode":"998"},{"id":"245","name":"Vanuatu","code":"VU","phnCode":"678"},{"id":"243","name":"Vatican","code":"VA","phnCode":"39"},{"id":"53","name":"Venezuela","code":"VE","phnCode":"58"},{"id":"12","name":"Vietnam","code":"VN","phnCode":"84"},{"id":"94","name":"Virgin Islands (British)","code":"VG","phnCode":"1284"},{"id":"56","name":"Virgin Islands (U.S.)","code":"VI","phnCode":"1340"},{"id":"246","name":"Wallis and Futuna Islands","code":"WF","phnCode":"681"},{"id":"139","name":"Western Sahara","code":"EH","phnCode":"212"},{"id":"95","name":"Yemen","code":"YE","phnCode":"967"},{"id":"71","name":"Zambia","code":"ZM","phnCode":"260"},{"id":"72","name":"Zimbabwe","code":"ZW","phnCode":"263"}] /*------------- End : CountryData.js-----------*/ /*------------- Begin : FrsGaEvents.js-----------*/ /** * * Frs Ga Events * Author : Syed Asfaquz Zaman */ var CaldonGA = CaldonGA || {}; CaldonGA.events = { //job assist page 'jobAssistUserClickSubmitButton': {'category': "Job Assist - Engagement", 'action': "Submit profile", 'labelRequired': true, 'noninteractiveness': false}, //listing page 'listingchangeSegment': {'category': "FRS - Engagement", 'action': "Category Select - dropdown", 'labelRequired': true, 'noninteractiveness': false}, 'resoursetypeselect': {'category': "FRS - Engagement", 'action': "Resource Type Select - Tab", 'labelRequired': true, 'noninteractiveness': false}, 'sharingiconclick': {'category': "FRS - Engagement", 'action': "Sharing icon clicked", 'labelRequired': true, 'noninteractiveness': false}, //On demand webinar GA 'clickPlayVideoButton': {'category': "FRS - Lead Capture", 'action': "Webcast Lead form Clicked", 'labelRequired': true, 'noninteractiveness': false}, 'playvideoleadinitiate': {'category': "FRS - Lead Capture", 'action': "Lead process Initiated", 'labelRequired': true, 'noninteractiveness': false}, 'clicksOnLeadSubmitButton' : {'category': 'On-Demand-Webinar:Click_Submit_Button', 'action': 'User clicks submit button to give lead', 'labelRequired': true, 'noninteractiveness': false}, //Caldon Detail Page 'detailarticleLeadPopUpSubmitted': {'category': "FRS - Pop up Lead Capture", 'action': "Lead Submitted", 'labelRequired': true, 'noninteractiveness': false}, 'detailebookLeadSubmitted': {'category': 'FRS - Ebook Lead Capture', 'action': 'User clicks on the download button', 'labelRequired': true, 'noninteractiveness': false}, 'detailwebinarLeadSubmitted': {'category': "FRS - Lead Capture", 'action': "Lead Submitted", 'labelRequired': true, 'noninteractiveness': false}, 'detailonscroll': {'category': "FRS - Engagement", 'action': "Scroll", 'labelRequired': true, 'noninteractiveness': false}, 'detailpanelClickedOnResource': {'category': "FRS - Navigation", 'action': "Resource Card", 'labelRequired': true, 'noninteractiveness': false}, 'detailauthornameclick': {'category': "FRS - Navigation", 'action': "Author Name clicked", 'labelRequired': true, 'noninteractiveness': false}, 'detailarticleCommentClick': {'category': "FRS - Engagement", 'action': "Leave Comment clicked", 'labelRequired': true, 'noninteractiveness': false}, 'detailhomeClicked': {'category': "FRS - Navigation", 'action': "FRS - Home page icon", 'labelRequired': true, 'noninteractiveness': false}, 'SuggestedArticleClicked' : {'category': "FRS - Navigation", 'action': "Suggested article clicked", 'labelRequired': true, 'noninteractiveness': false}, //Caldon Detail Page 'detailresourceConsumed': {'category': 'FRS - Engagement', 'action': 'Scroll', 'labelRequired': true, 'noninteractiveness': false}, 'detailarticleLeadPopUp': {'category': 'FRS - Pop up Lead Capture', 'action': 'Lead Pop up Seen', 'labelRequired': true, 'noninteractiveness': true}, 'detailarticleLeadPopUp45': {'category': 'FRS - Pop up Lead Capture ', 'action': 'Lead Pop up Seen', 'labelRequired': true, 'noninteractiveness': true}, // 'detailtimeSpendSingleResource': {'category': 'Details_Page:time_spend_on_one_resource', 'action': 'Change of URL', 'labelRequired': true, 'noninteractiveness': false}, 'detailarticleLeadPopUpInitiated': {'category': 'FRS - Pop up Lead Capture', 'action': 'User type on email section to enter details', 'labelRequired': true, 'noninteractiveness': true}, 'detailarticleLeadPopUpInitiated45': {'category': 'FRS - Pop up Lead Capture', 'action': 'User enters email in 45 second lead pop up', 'labelRequired': true, 'noninteractiveness': true}, 'detailarticleCommentTopClick': {'category': 'Details_Page:article_comments_top_click', 'action': 'User clicks on comments link on top of article and gets scrolled down to comments section', 'labelRequired': true, 'noninteractiveness': false}, //'detailarticleCommentSubmitted': {'category': 'Details_Page:article_comment_submitted', 'action': 'User clicks on submit button of the comment', 'labelRequired': true, 'noninteractiveness': false}, 'detailresourceShared': {'category': 'FRS - Engagement', 'action': 'Sharing icon clicked', 'labelRequired': true, 'noninteractiveness': false}, 'detailpopularTab': {'category': 'Details_Page:Popular_Tab', 'action': 'User clicks on Popular Tab while on Latest Tab', 'labelRequired': true, 'noninteractiveness': false}, 'detaillatestTab': {'category': 'Details_Page:Latest_Tab', 'action': 'User clicks on Latest Tab while on Popular Tab', 'labelRequired': false, 'noninteractiveness': false}, 'detailchangeSegment': {'category': 'Details_Page:Change_Segment', 'action': 'User clicks on drop down menu to change segment', 'labelRequired': true, 'noninteractiveness': false}, 'detailebookLeadInitiated': {'category': 'FRS - Pop up Lead Capture', 'action': 'Ebook Lead process Initiated', 'labelRequired': true, 'noninteractiveness': false}, 'detailwebinarLeadInitiated': {'category': 'FRS - Pop up Lead Capture', 'action': 'Webinar Lead process Initiated', 'labelRequired': true, 'noninteractiveness': false}, 'detailEnterpriseClickRegister': {'category':'Details_Page:Enterprise_Click_Register','action':'User clicks on register/download of an Enterprise Resource','labelRequired': true, 'noninteractiveness': false}, // 'detailvideoWatched': {'category': 'Details_Page:Video_Watched', 'action': 'User clicks on play video', 'labelRequired': true, 'noninteractiveness': false}, 'detailredirectionToSimplilearnHome': {'category': 'Navigation', 'action': 'Simplilearn Logo', 'labelRequired': true, 'noninteractiveness': false}, 'detailViewOtherWebinar': {'category': 'Details_Page:Webinars', 'action': 'User click on view other webinars', 'labelRequired': true, 'noninteractiveness': false}, 'detailViewOtherEbook': {'category': 'Details_Page:Ebooks', 'action': 'User click on view other ebooks', 'labelRequired': true, 'noninteractiveness': false}, 'detailTabClick' : {'category': 'Details_Page:Tab_Click','action':'The user clicks on this of details page', 'labelRequired': true, 'noninteractiveness': false}, // 'detailTabClickWebinars' : {'category': 'Details_Page:Tab_Click_Webinars','action':'The user clicks on the Webinars tab of details page', 'labelRequired': true, 'noninteractiveness': false}, // 'detailTabClickEbooks' : {'category': 'Details_Page:Tab_Click_Ebooks','action':'The user clicks on the Ebooks tab of details page', 'labelRequired': true, 'noninteractiveness': false}, // 'detailTabClickAllResources' : {'category': 'Details_Page:Tab_Click_All Resources','action':'The user clicks on the All Resources tab of details page', 'labelRequired': true, 'noninteractiveness': false}, //Caldon Listing Page 'listinghomeClicked': {'category': 'Listing_Page:Home_Clicked', 'action': 'User clicks home to go back to Free resource landing page', 'labelRequired': true, 'noninteractiveness': false}, 'listingpopularTab': {'category': 'Listing_Page:Popular_Tab', 'action': 'User clicks on Popular Tab while on Latest Tab', 'labelRequired': true, 'noninteractiveness': false}, 'listinglatestTab': {'category': 'Listing_Page:Latest_Tab', 'action': 'User clicks on Latest Tab while on Popular Tab', 'labelRequired': false, 'noninteractiveness': false}, 'listingresourceShared': {'category': 'Listing_Page:resource_shared', 'action': 'Click on fb, linkedin, twitter & g+ share', 'labelRequired': true, 'noninteractiveness': false}, 'listingredirectionToSimplilearnHome': {'category': 'Navigation', 'action': 'Simplilearn Logo', 'labelRequired': true, 'noninteractiveness': false}, 'listingviewmoreClicked': {'category': 'Listing_Page:Click_on_View_more', 'action': 'User clicks on view more on the Listing page to see more segments', 'labelRequired': false, 'noninteractiveness': false}, 'listingresourceCard': {'category': 'Listing_page:Click_on_resource_card', 'action': 'User clicks on the resource (article/ebook/webinar/video) card', 'labelRequired': true, 'noninteractiveness': false}, //Caldon Home Page 'homepopularTab': {'category': 'Homepage:Popular_Tab', 'action': 'User clicks on Popular Tab while on Latest Tab', 'labelRequired': true, 'noninteractiveness': false}, 'homelatestTab': {'category': 'Homepage:Latest_Tab', 'action': 'User clicks on Latest Tab while on Popular Tab', 'labelRequired': false, 'noninteractiveness': false}, 'homeredirectionToSimplilearnHome': {'category': 'Navigation', 'action': 'Simplilearn Logo', 'labelRequired': true, 'noninteractiveness': false}, 'homeviewmoreClicked': {'category': 'Homepage:View_More', 'action': 'User clicks on the view more button on homepage', 'labelRequired': false, 'noninteractiveness': false}, 'homeviewmoreSegmentClicked': {'category': 'Homepage:Segment_Click_More', 'action': 'User clicks on the more of a segment', 'labelRequired': true, 'noninteractiveness': false}, 'homeScrollSegment': {'category': 'Homepage:Segment_Explore_Right_Scroll', 'action': 'User clicks on right scroll of a segment', 'labelRequired': true, 'noninteractiveness': false}, //On demand webinar GA 'startLeadOnForm' : {'category': 'On-Demand-Webinar:Start_Lead_Form', 'action': 'User starts giving lead on the form', 'labelRequired': true, 'noninteractiveness': false}, 'videoStartsPlaying' : {'category': 'On-Demand-Webinar:Video_Starts_Playing', 'action': 'Video starts playing', 'labelRequired': true, 'noninteractiveness': false}, 'videoStopsPlaying' : {'category': 'On-Demand-Webinar:Video_Stops_Playing', 'action': 'Video stops playing', 'labelRequired': true, 'noninteractiveness': false}, 'closeVideoMidway' : {'category': 'On-Demand-Webinar:Close_Video_Midway', 'action': 'User closes video midway', 'labelRequired': true, 'noninteractiveness': false}, 'closeVideoByClickingCloseButton' : {'category': 'On-Demand-Webinar:Close_Video_Clicking_Close_Button', 'action': 'User closes video by clicking close button', 'labelRequired': true, 'noninteractiveness': false}, // Persistent pop 'detailViewPersistentPopSeen': {'category': 'FRS - Pop up Lead Capture', 'action': 'Lead Pop up Closed', 'labelRequired': true, 'noninteractiveness': false}, 'detailViewClickSmallPopUp': {'category': 'FRS - Pop up Lead Capture', 'action': 'Persistent Pop up Clicked', 'labelRequired': true, 'noninteractiveness': false}, 'detailViewPersistentPopupCancel': {'category': 'User cancels the pop up', 'action': 'Lead Pop up Closed.', 'labelRequired': true, 'noninteractiveness': false}, 'detailViewPersistentPopupSubmit': {'category': 'User submits the pop up', 'action': 'The user submits the lead in the pop up created by Persistent pop up', 'labelRequired': true, 'noninteractiveness': false}, 'detailViewPopupGotoCourse': {'category': 'FRS - Pop up Lead Capture', 'action': 'Lead Pop up Clicked', 'labelRequired': true, 'noninteractiveness': false}, //job assist page 'jobAssistUserViewJobLeadForm' : {'category':'JobAssist','action':'User views the Job Lead form','labelRequired': false, 'noninteractiveness': false}, 'jobAssistUserNotApplicable' : {'category':'JobAssist','action':'User not applicable for the Job Assist Program','labelRequired': true, 'noninteractiveness': false}, //GDPR Optin Checkbox Ga Events 'gdprOptinCheckboxChecked':{'category': "Engagement", 'action': "Click on Consent check box", 'labelRequired': true, 'noninteractiveness': false}, }; CaldonGA.triggerEvent = { eventParam: [], finalGaParam: [], tempParam: [], preparePushParam: function () { if (typeof this.eventParam !== "undefined" && typeof this.eventParam.eventType !== "undefined") { if (typeof CaldonGA.events[this.eventParam.eventType] !== "undefined") { var value = 0; var eventDetail = CaldonGA.events[this.eventParam.eventType]; var funnelString = eventDetail.category; var funnelAction = eventDetail.action; var funnelLabel = ''; var noninteractiveness = eventDetail.noninteractiveness; if (eventDetail.labelRequired) { funnelLabel = this.eventParam.label; this.finalGaParam = ['_trackEvent', funnelString, funnelAction, funnelLabel, value, noninteractiveness]; this.tempGaParam = ['_trackEvent', funnelString, funnelAction, funnelLabel, value, noninteractiveness]; } else { this.finalGaParam = ['_trackEvent', funnelString, funnelAction, funnelLabel, value, noninteractiveness]; this.tempGaParam = ['_trackEvent', funnelString, funnelAction, funnelLabel, value, noninteractiveness]; } } } }, gagInitiate: function (param) { this.eventParam = param; this.preparePushParam(); this.gagPush(); }, gagPush: function () { var arrLength = this.finalGaParam.length; if (arrLength > 0) { if (printGaInConsole) { console.log(this.tempGaParam); } _gaq.push(this.finalGaParam); } } }; function redirectToHomeEvent() { var referrerUrl = window.location.href; var pagename = document.getElementById("frs-page-name").value; var eventObj = {}; if (pagename === "frs_details") { eventObj = { 'eventType': 'detailredirectionToSimplilearnHome', 'label': user_params.user_id + ' || ' + referrerUrl + ' || frs_details' }; } if (pagename === "frs_content_listing") { eventObj = { 'eventType': 'listingredirectionToSimplilearnHome', 'label': user_params.user_id + ' || ' + referrerUrl + ' || frs_content_listing' }; } if (pagename === "frs_content_home") { eventObj = { 'eventType': 'homeredirectionToSimplilearnHome', 'label': user_params.user_id + ' || ' + referrerUrl + ' || frs_content_home' }; } if (JSON.stringify(eventObj) !== '{}') { CaldonGA.triggerEvent.gagInitiate(eventObj); WebTracking.eventReq.triggerEvent({ event_id: "sl_nav_user_clicks_on_simplilearn_logo", event_data: { 'sl_destination_link': frontendUrl || '', 'sl_destination_page_type': 'home' }, common: "product", }); } return; } function frsHomeIconClicked() { var referrerUrl = window.location.href; var pagename = document.getElementById("frs-page-name").value; if (pagename === "frs_content_listing") { var eventObj = { 'eventType': 'listinghomeClicked', 'label': referrerUrl }; CaldonGA.triggerEvent.gagInitiate(eventObj); } return; } function popularTabEvent() { var referrerUrl = window.location.href; var pagename = document.getElementById("frs-page-name").value; var eventObj = {}; if (pagename === "frs_content_listing") { eventObj = { 'eventType': 'listingpopularTab', 'label': referrerUrl }; } if (pagename === "frs_content_home") { eventObj = { 'eventType': 'homepopularTab', 'label': referrerUrl }; } if (JSON.stringify(eventObj) !== '{}') { CaldonGA.triggerEvent.gagInitiate(eventObj); WebTracking.setUserParams('sl_frs_resource_filter_selected', "all resources"); var eventData = WebTracking.eventReq.getDataFromUserParams(['sl_frs_segment_id', 'sl_frs_segment_name', 'sl_frs_resource_filter_selected', 'sl_page_type','sl_user_type']); if (eventData['sl_frs_segment_name'] == "Other Segments") { eventData['sl_frs_segment_id'] = 0; } WebTracking.eventReq.triggerEvent({ event_id: "sl_frs_eng_user_clicks_on_resource_filter_on_frs", event_data: eventData }); } return; } function resourceTypeEvent(type) { var eventObj = { 'eventType': 'resoursetypeselect', 'label': user_params.user_id + ' || ' + type + ' || ' + document.URL }; if(type == "Articles"){ WebTracking.setUserParams('sl_frs_resource_filter_selected', "articles"); } else if(type == "E-Books"){ WebTracking.setUserParams('sl_frs_resource_filter_selected', "ebooks"); }else if(type == "On-Demand Webinars"){ WebTracking.setUserParams('sl_frs_resource_filter_selected', "on demand webinar"); }else if(type == "Live Webinars"){ WebTracking.setUserParams('sl_frs_resource_filter_selected', "webinars"); } CaldonGA.triggerEvent.gagInitiate(eventObj); var eventData = WebTracking.eventReq.getDataFromUserParams(['sl_frs_segment_id', 'sl_frs_segment_name', 'sl_frs_resource_filter_selected', 'sl_page_type','sl_user_type']); if (eventData['sl_frs_segment_name'] == "Other Segments") { eventData['sl_frs_segment_id'] = 0; } WebTracking.eventReq.triggerEvent({ event_id: "sl_frs_eng_user_clicks_on_resource_filter_on_frs", event_data: eventData }); return; } function latestTabEvent() { var referrerUrl = window.location.href; var pagename = document.getElementById("frs-page-name").value; var eventObj = {}; if (pagename === "frs_content_listing") { eventObj = { 'eventType': 'listinglatestTab', 'label': referrerUrl }; } if (pagename === "frs_content_home") { eventObj = { 'eventType': 'homelatestTab', 'label': referrerUrl }; } if (JSON.stringify(eventObj) !== '{}') { CaldonGA.triggerEvent.gagInitiate(eventObj); } return; } /*------------- End : FrsGaEvents.js-----------*/ /*------------- Begin : SearchTags.js-----------*/ var search_tags = {"0":"business","1":"technology","2":"agile and scrum","3":"pas","4":"agile","5":"scrum","6":"technology management","7":"project","8":"sprint","9":"tdd","10":"planning","11":"it","12":"exin","13":"agile scrum","14":"agile methodology","15":"scrum practice","16":"safe","17":"csd","18":"all","21":"capm","22":"exam","23":"prep","24":"banking","25":"software development","26":"healthcare","28":"services","29":"consulting","30":"including integration","31":"cost","32":"time","33":"scope","34":"quality","35":"communications","36":"human","37":"resource","38":"management","39":"risk","40":"procurement","43":"project management","44":"risk management","45":"time management","46":"primevera","47":"pmi","51":"csm","52":"scrummaster","53":"certified scrum master","55":"master","56":"planning management","58":"scrum master","59":"scrum alliance","61":"psm","67":"cspo certification training","69":"cspo","77":"scrumalliance","80":"product owner","84":"msp","85":"governance","86":"leadership","87":"stakeholder","88":"engagement","89":"programme","91":"benefits","92":"blueprints","94":"control","95":"issue","97":"transformational","98":"managing successful programmes","102":"program","105":"professional","106":"pgmp","109":"assessment","111":"life","112":"cycle","114":"closure","115":"supporting","116":"process","117":"multiple","118":"projects","122":"agile certified practitioner","123":"pmi-acp","125":"acp","129":"dsdm","130":"pmbok","131":"apm","132":"kanban","135":"pmi acp","139":"pmp","141":"pdu","142":"waterfall","143":"cascade","144":"structure","145":"model","146":"responsive","147":"forecasting","151":"schedule","153":"overrun","155":"processes","156":"group","157":"knowledge","158":"area","159":"construction","160":"infrastructure","161":"delivery","162":"optimization","163":"certification","165":"modelling","167":"leverage","168":"mitigation","169":"predictive","173":"project manager","175":"ipma","176":"project +","180":"45 pdu","182":"plan","184":"change","185":"prince2","188":"stage","190":"controlling","191":"boundary","192":"apmg","193":"practitioner","194":"ato","196":"foundation","204":"qualitative","205":"analysis","206":"quantitative","207":"responses","210":"rmp","211":"audits","212":"reassessment","213":"pmi rmp","217":"big-data and hadoop developer","218":"bigdata","219":"hadoop","220":"pig","221":"hive","222":"mapreduce","223":"hbase","224":"zookeeper","225":"sqoop","226":"flume","227":"deployment","228":"cloudera","229":"cloud","230":"analytics","231":"datascience","232":"research","233":"modeling","234":"big data","235":"data science","236":"business analytics","237":"data scientist","238":"big data and hadoop","239":"data analysis","240":"machine learning","241":"business analysis","242":"data analyst","243":"hadoop admin","244":"scala","245":"cassandra","246":"bdh","247":"spark","251":"itil foundation","252":"itil","253":"axelos","255":"information technology","257":"itil v3","258":"it service","259":"service strategy","260":"service transition","261":"infrastructure library","262":"itilv3","263":"cmdb","267":"itil intermediate csi","271":"information","274":"service","275":"servicestrategy","276":"servicetransition","278":"library","280":"osa","281":"ppo","282":"rv","283":"soa","284":"malc","285":"capability","286":"expert","291":"itil intermediate osa","315":"itil intermediate ppo","339":"itil intermediate rcv","363":"itil intermediate sd","387":"itil intermediate so","407":"kepner","408":"tregoe","413":"itil intermediate soa","437":"itil intermediate ss","461":"itil intermediate st","485":"itil managing across the lifecycle (malc)","509":"itsm","516":"cisa","517":"audit","518":"cyber","519":"security","520":"pentesting","521":"cryptography","523":"networking","524":"network","525":"hack","526":"secure","527":"trojan","528":"countermeasure","529":"backdoors","530":"firewalls","531":"honeypots","532":"wireless","533":"virus","534":"defense","535":"regulations","536":"compliance","537":"informaton","538":"auditor","539":"crisc","540":"cgeit","541":"is27001","542":"cissa","545":"cissp","566":"isc2","567":"architecture","569":"csslp","572":"cobit5","573":"cobit","595":"prm","596":"pam","602":"ctfl","604":"software","605":"static","606":"tester","607":"ctal","611":"certified lean six sigma black belt","612":"defect","613":"defects","614":"six","615":"sigma","616":"green belt","617":"asq","619":"statistical","620":"statistics management","621":"define","622":"iassc","623":"measure","624":"analyze","625":"improve","627":"dmaic","628":"manufacturing","632":"retail","633":"supply chain","634":"minitab","635":"cssgb","636":"electronics","637":"lean","638":"lssgb","639":"lssbb","640":"istqb","641":"astqb","642":"blackbelt","643":"sixsigma","644":"csqa","648":"certified six sigma green belt","653":"quality management","665":"supply","666":"chain","679":"tool","680":"six sigma","682":"black belt","686":"ccnp-routing & switching","687":"cisco","689":"routing","690":"switching","691":"ccie","695":"lean management","697":"volume","702":"ceh (v9)- certified ethical hacker","703":"ceh","704":"v9","705":"ethical","706":"hacking","707":"hacker","711":"spoofing","716":"ilabs","717":"eccouncil","727":"312-50","729":"cnd","732":"ec","733":"disaster","734":"v9ilabs","736":"ec-council","740":"software estimation","742":"sizing","743":"effort","744":"estimation","745":"ifpug","746":"counting","747":"rules","748":"table","749":"complexity","750":"fpa","751":"nesma","752":"seot","755":"microsoft project 2013","756":"microsoft","757":"projects 2013","760":"pooling","761":"consolidation","762":"development","763":"business management","773":"ccba","774":"iiba","777":"cbap","778":"requirement","779":"swot","780":"communication","781":"babok","783":"business analyst","784":"risk analysis","785":"enterprise analysis","786":"swot analysis","787":"capability analysis","788":"requirement analysis","789":"bacp","790":"pba","793":"salesforce administrator","794":"salesforce admin","795":"administrator","796":"adm 201","797":"201","798":"sfdc","800":"sales","801":"app exchange","802":"force.com","803":"chatter","805":"administrators","806":"crm","807":"siebel","810":"salesforce developer","811":"salesforce app builder","812":"salesforce","813":"developer dev 401","816":"data model","817":"application","824":"togaf 9.1","825":"togaf","826":"the open group","827":"enterprise architecture","828":"solution architect","829":"togaf level1","830":"togaf level2","831":"adm","832":"togaf9 foundation","833":"architecture framework","834":"architecture forum","837":"70-411","838":"administering windows server 2012 - r2","839":"windows","841":"ms 2012 server","842":"r2","843":"administering","844":"db","845":"gpo","846":"encryption","847":"vpn","850":"70-332","851":"advanced solutions of ms sharepoint server 2013","852":"ms","854":"sharepoint server","855":"solutions","858":"syo-401","859":"comptia security+ syo-401","860":"comptia","862":"green it","863":"301","864":"401","865":"syo","866":"host","867":"crypography","868":"scada","869":"byod","870":"casp","872":"security+","875":"642-832","876":"ccnp tshoot -troubleshooting & maintaining cisco ip networks","878":"tshoot","879":"ccnp","880":"troubleshooting","881":"maintaining","882":"ip","884":"palo alto","885":"iot","890":"certified data scientist with sas and excel","891":"business analytics foundation - sas","892":"sas","893":"predict","899":"analyst","901":"machine","903":"logistic","904":"linear","905":"regression","906":"summary","907":"data","908":"datascientist","909":"datamining","910":"database","911":"oracle","912":"dbms","913":"datawarehouse","914":"reporting","915":"intelligence","916":"metric","923":"predictive modeling","924":"data modeling","925":"logistic regression","926":"linear regression","927":"statistical modeling","928":"statistics","934":"salesforce administrator & developer","936":"admin","943":"appexchange","948":"developer","949":"dev","951":"dev401","961":"certified data scientist with r","962":"certified analytics professional r language","963":"business analytics professional - r language","964":"rlanguage","1008":"certified lean six sigma green belt","1035":"lean.lssgb","1043":"php development suite","1044":"php development","1045":"cms","1046":"mysql","1047":"laravel4","1048":"codeigniter","1051":"javascript development suite","1052":"javascript","1054":"ajax","1055":"jquery","1056":"node.js","1057":"selenium","1058":"scjp","1059":"nodejs","1062":"python development suite","1063":"python development","1064":"programming","1065":"phyton","1068":"html\/html5 and css\/css3 suite","1069":"html","1070":"html5","1071":"css","1072":"css3","1073":"sass","1074":"developers","1077":"content marketing","1078":"content","1079":"marketing","1080":"online","1081":"digital","1083":"internet","1084":"google","1085":"seo","1086":"ecommerce","1089":"conversion optimization","1090":"conversion","1091":"optimisation","1092":"roi","1101":"mobile marketing","1102":"mobile","1108":"app","1109":"adwords","1110":"admob","1114":"remarketing","1115":"pay per click (ppc)","1116":"ppc","1117":"click","1124":"bing","1128":"search engine optimization (seo)","1133":"online marketing","1135":"search engine","1139":"social media","1144":"facebook","1145":"twitter","1147":"g+","1148":"digital marketing","1150":"internet marketing","1154":"web analytics","1155":"web","1167":"certified sas base programmer","1201":"sas base","1202":"sas programmer","1205":"introduction to online marketing","1220":"complete web development suite","1222":"developmentcss3","1228":"php","1229":"mongodb","1232":"android app development","1233":"android","1236":"certified android app developer","1240":"introduction to project management","1242":"introduction","1243":"introductory","1246":"methodology","1247":"portfolio","1250":"triple","1251":"constraints","1256":"ccna-routing & switching","1258":"ccna","1267":"certified business analysis professional (cbap)","1286":"cbip","1289":"70-412","1290":"configuring advanced windows server 2012 r2 services","1291":"windows server","1293":"microsoft 2012","1295":"configuring","1296":"ipam","1297":"dhcp","1298":"adds","1299":"dns","1303":"core solutions of ms sharepoint server 2013","1306":"solution","1307":"70-331","1310":"70-410","1311":"installing and configuring ms windows server 2012 r2","1314":"windows server 2012","1317":"installing","1318":"manager","1319":"hyper-v","1320":"storage","1325":"microsoft excel 2013 foundation","1327":"microsoft 2013","1328":"office","1329":"excel","1330":"macros","1331":"reports","1332":"vlookup","1333":"pivot","1334":"hyperlinks","1335":"formulas","1336":"functions","1337":"worksheet","1338":"charts","1339":"vba","1342":"microsoft excel 2013 intermediate","1357":"77-427","1360":"microsoft excel 2013-advanced","1375":"77-428","1385":"uk","1386":"europe","1391":"usa","1403":"big data and hadoop administrator","1404":"hadoop administrator","1405":"hadoop administrator training","1407":"hadoop administration","1437":"smac stack services","1438":"social","1441":"simplilearn","1448":"online tutorial","1450":"training","1459":"tutorial","1465":"courses","1468":"fundamentals","1472":"python","1473":"matlab","1479":"basics","1480":"beginners","1481":"guide","1486":"websites","1487":"bootstrap","1488":"3","1489":"webservice","1493":"impala","1494":"open source","1495":"sql","1531":"lean 6 sigma application training","1533":"6 sigma certification","1536":"6 sigma","1541":"apache","1544":"classes","1578":"access","1579":"2013","1581":"mos","1585":"queries","1589":"77-424","1593":"outlook","1598":"mail","1599":"calender","1600":"task","1601":"message","1603":"files","1604":"mailmerge","1606":"77-423","1612":"powerpoint","1614":"2010","1615":"presentation","1616":"tables","1618":"texts","1619":"multimedia","1620":"autoshapes","1621":"animation","1632":"microsoft office","1633":"mos 77-422","1637":"2011","1638":"mac","1641":"ibooks author","1644":"microsoft onenote","1646":"onenote","1649":"linux","1651":"level 1","1654":"apple","1655":"iwork 2013","1658":"quickbooks 14","1662":"lean sigma","1664":"6 sigma healthcare","1667":"quickstart office 365","1673":"word","1674":"ms word","1679":"layout","1680":"formatting","1682":"page-layout","1683":"proof-reading","1693":"develop","1700":"apache kafka","1705":"email marketing","1712":"youtube marketing","1713":"video marketing","1719":"twitter marketing","1720":"twitter advertising","1726":"pinterest marketing","1732":"holiday ppc advertising","1738":"facebook marketing","1739":"facebook advertising","1745":"display advertising","1751":"cism","1755":"course","1758":"exam 70-413","1759":"designing","1760":"implementing","1770":"dmca","1771":"digital marketing certified associate","1775":"apache spark","1776":"apache scala","1779":"spark training","1780":"scala training","1781":"spark certification","1782":"scala certification","1783":"scala programming","1784":"spark and scala","1785":"spark and scala training","1786":"spark and scala certification","1790":"crisc certification","1797":"apache storm tutorial","1803":"apple watch app development tutorial","1804":"how to get apple watch app","1805":"apple watch app development","1809":"tableau training","1810":"tableau certification","1811":"tableau desktop 9","1814":"digital marketing in asia","1815":"digital marketing asia","1825":"ios","1826":"ios app","1827":"ios development","1828":"ios developer","1832":"agile scrum master","1833":"advanced agile scrum","1836":"microsoft sharepoint server","1837":"sharepoint server 2013","1838":"developing core solutions","1841":"personal branding","1842":"build a personal brand","1843":"brand yourself","1847":"aws technical essentials","1848":"aws services","1849":"aws certification","1850":"cloud training","1853":"google adwords","1854":"adwords certification","1855":"adwords training","1856":"google ppc","1860":"business analytics training","1861":"business analytics with excel","1862":"business analytics course","1865":"pay per click","1867":"ppc foundation","1868":"ppc course","1871":"seo basics","1872":"seo foundation","1873":"seo course","1874":"seo training","1875":"search engine optimization","1879":"email marketing basics","1880":"email marketing course","1883":"marketing automation","1884":"marketing automation course","1885":"marketing automation basics","1888":"programmatic buying","1889":"programmatic buying course","1890":"programmatic buying training","1894":"aws solutions architect","1895":"aws training","1897":"aws course","1901":"google cloud platform fundamentals","1902":"google cloud platform","1903":"google cloud platform training","1904":"google cloud platform certification","1905":"cp100a","1909":"systems operations professional","1910":"cpo200","1913":"google cloud-based apps","1914":"developing solutions for google cloud platform","1915":"cpd200","1920":"big data & machine learning","1921":"cpb100","1925":"google bigquery","1926":"data analysts","1927":"cpb200","1930":"salesforce platform developer","1931":"salesforce platform developer certification","1932":"salesforce course","1936":"content marketing basics","1937":"content marketing for beginners","1941":"mobile marketing for beginners","1942":"mobile advertising","1947":"developing microsoft azure solutions","1948":"azure certification","1949":"70-532 exam","1950":"azure training","1954":"cloud trining","1955":"implementing microsoft azure infrastructure solutions","1956":"azure infrastructure solutions","1957":"70-533 exam","1961":"architecting microsoft azure solutions","1962":"70-534 exam","1967":"python for data analysis","1968":"r vs python","1969":"python data science","1970":"python for data science","1971":"data science with python","1974":"ethical hacking course","1975":"ethical hacking certification","1976":"ethical hacking training","1980":"machine learning training","1981":"machine learning course","1982":"machine learning certification","1985":"aws developer certification","1986":"aws developer training","1987":"aws developer course","1990":"aws sysops certification","1991":"aws sysops training","1992":"aws sysops course","1996":"advertising","2000":"media","2001":"tweet","2005":"conversion optimization training","2006":"conversions optimization foundation course","2007":"cro","2012":"java","2013":"java training","2014":"java ee","2015":"java soa","2016":"java course","2017":"java soa course","2018":"j2ee training","2019":"java spring","2020":"hibernate","2030":"blueprint","2037":"devops","2042":"certified","2043":"workflow","2045":"operations","2048":"active directory","2050":"active directory services certification","2054":"system center 2012","2055":"system center 1012 configuration manager","2060":"iis","2061":"web server iis","2063":"certificatin","2068":"windows poweshell","2069":"advanced automated administration","2076":"window server infrastructure","2077":"windows server findamentals training","2081":"identity","2083":"windows server 2016","2090":"installation","2104":"tableau","2105":"server10","2112":"poweshell","2113":"automating","2114":"administration","2115":"server","2120":"core","2122":"exchange","2133":"advanced","2140":"upgrade","2145":"2012","2148":"securing","2151":"2016","2155":"skills","2163":"developing","2165":"sharepoint","2184":"technologies","2190":"datacenter","2191":"monitoring","2192":"with","2193":"system","2194":"center","2195":"operation","2212":"deploying and managing windows 10 using enterprise services","2213":"windows 10 deployment","2214":"m20697-2","2217":"enabling office 365 services","2218":"enabling office 365 services training","2221":"installing and configuring windows 10","2222":"windows 10 training","2223":"windows 10 course","2226":"system center 2012 orchestrator","2227":"system center orchestrator training","2230":"system center 2012 r2 operation manager","2231":"system center 2012 r2 operation manager training","2232":"cloud and datacenter monitoring","2233":"system center 2012 r2 operation manager course","2236":"configuring and deploying a private cloud","2237":"cloud configuration and deployment training","2240":"infrastructure provisioning with system center","2241":"system center 2012 r2 virtual machine manager","2244":"microsoft.azure","2255":"cxo","2256":"cheifs","2259":"dummy text","2263":"test","2266":"masters program 20","2267":"masters program 21","2268":"masters program 22","2269":"masters program 23","2270":"masters program 24","2271":"masters program 25","2272":"masters program 26","2273":"masters program 27","2274":"masters program 17","2275":"masters program 18","2276":"masters program 19","2277":"masters program","2278":"master program","2279":"master program 1","2280":"masters program 1","2281":"master program 2","2282":"masters program 2","2283":"master program 3","2284":"masters program 4","2285":"master program 5","2286":"masters program 6","2287":"master program 7","2288":"masters program 8","2289":"master program 9","2290":"masters program 10","2291":"master program 11","2292":"master program 12","2293":"masters program 13","2294":"master program 14","2295":"masters program 15","2297":"masters","2300":"masters program 3","2302":"all in one","2304":"advanced online marketing suite","2307":"seo 1","2308":"seo 2","2309":"seo 3","2310":"seo 4","2311":"seo 5","2312":"sem 1","2313":"sem 2","2317":"converision","2319":"branding","2320":"social media 1","2321":"social media 2","2322":"social media 3","2329":"itil expert suite","2332":"cs","2333":"ss","2334":"so","2338":"cita","2340":"itil expert","2345":"bundle","2351":"quality management suite","2366":"greenbelt","2369":"lean six sigma","2378":"data scientist 1","2379":"data scientist 2","2380":"data scientist 3","2381":"data scientist 4","2382":"data scientist 5","2384":"senior data scientist","2385":"learning path","2394":"master program 4","2395":"masters program 5","2435":"pmi-","2437":"social media specialist","2438":"social media specialist 1","2439":"social media specialist 2","2440":"social media specialist 3","2441":"social media specialist 4","2442":"social media specialist 5","2443":"social media specialist 6","2447":"ppc specialist","2449":"ppc specialist 1","2450":"ppc specialist 2","2451":"ppc specialist 3","2452":"ppc specialist 4","2453":"ppc specialist 5","2454":"ppc specialist 6","2455":"ppc specialist 7","2456":"ppc specialist 8","2460":"big data solutions architect 1","2461":"big data solutions architect 3","2463":"solutions architect 5","2464":"solutions architect 6","2465":"solutions architect 7","2466":"solutions architect 8","2476":"masters program 28","2477":"masters program 29","2478":"masters program 30","2479":"masters program 16","2489":"master program 6","2490":"masters program 7","2491":"master program 8","2492":"masters program 9","2493":"master program 10","2494":"masters program 11","2500":"masters 1","2502":"masters 2","2503":"masters 3","2504":"masters 4","2505":"masters 5","2509":"cloud computing 1","2510":"cloud computing 2","2511":"cloud computing 3","2512":"cloud computing 4","2513":"cloud computing 5","2514":"cloud computing 6","2515":"aws","2517":"aws devops architect","2518":"devops architect","2519":"aws architect","2526":"architecting","2529":"azure","2531":"70-533","2532":"70-534","2533":"70-532","2536":"big","2539":"sdsadsa","2540":"gdfgfdgdf","2541":"rytryr","2544":"sadsa","2545":"fdsafdasf"} /*------------- End : SearchTags.js-----------*/ /*------------- Begin : Common.js-----------*/ angular.module('CommonPlugins', [ ]) .directive("ngMobileClick", [function () { return function (scope, elem, attrs) { elem.bind("touchstart click", function (e) { //e.preventDefault(); // e.stopPropagation(); scope.$apply(attrs["ngMobileClick"]); }); } }]) .directive("ngMobileBackClick", [function () { return function (scope, elem, attrs) { elem.bind("touchstart click", function (e) { e.preventDefault(); e.stopPropagation(); scope.$apply(attrs["ngMobileBackClick"]); }); } }]) .directive('dirPlaceholder', function($timeout) { return { scope: { placeholder: '@dirPlaceholder', model: '=ngModel' }, restrict: 'A', replace: false, require: 'ngModel', link: function(scope, elem, attrs) { var mobileTooltip = elem.parent()[0].getElementsByClassName("mobile_tooltip"); $timeout(function() { elem.next().html(scope.placeholder); elem.next().css('color', '#AAA'); if (elem.val() !== '') { elem.next().css('display', 'none'); } elem.next().on('click', function() { elem[0].focus(); }); elem.on('focus', function() { elem.next().css('color', '#DDD'); if(mobileTooltip != null && mobileTooltip.length > 0){ mobileTooltip[0].className = mobileTooltip[0].className.replace(" hidden_class",""); } }); elem.on('blur', function() { elem.next().css('color', '#AAA'); if(mobileTooltip != null && mobileTooltip.length > 0){ mobileTooltip[0].className = mobileTooltip[0].className+" hidden_class"; } }); scope.$watch('model', function(newValue) { if (typeof newValue == 'undefined' || newValue == '') { elem.next().css('display', 'inline'); } else { elem.next().css('display', 'none'); } }); elem.on('input keyup keydown', function(){ if (elem.val() == '') { elem.next().css('display', 'inline'); } else { elem.next().css('display', 'none'); } }); }, 0); } }; }) .directive('stopccp', function(){ return { scope: {}, link:function(scope,element){ element.on('cut copy paste', function (event) { event.preventDefault(); }); } }; }) .directive('dirFormTooltip', function($timeout, $window) { return { scope: { tooltipClassname: '@', tooltipForClassname: '@' //optional attribute }, restrict: 'A', replace: false, link: function(scope, elem, attrs) { $timeout(function() { var target_elem_nodes = elem[0].querySelectorAll('input,select,a'); var tooltip_node = elem[0].getElementsByClassName(scope.tooltipClassname); var helpers = new $window.helpers(); if( target_elem_nodes.length && tooltip_node ) { var target_elem = angular.element(target_elem_nodes); var target_tooltip = angular.element(tooltip_node[0]); target_elem.bind('focus keyup', function(){ if( scope.tooltipForClassname ) { var classified_nodes = elem[0].querySelectorAll('input.'+scope.tooltipForClassname+',select.'+scope.tooltipForClassname+',a.'+scope.tooltipForClassname+',span.'+scope.tooltipForClassname+',div.'+scope.tooltipForClassname); if( classified_nodes.length ) { var tooltip_text = helpers.GetFormElemTooltipText(classified_nodes[0]); if( tooltip_text ) { target_tooltip.html(tooltip_text); target_tooltip.css('display', 'block'); } else { target_tooltip.css('display', 'none'); } } else { target_tooltip.css('display', 'none'); } } else { target_tooltip.css('display', 'block'); } }); target_elem.bind('blur', function(){ target_tooltip.css('display', 'none'); }); } }, 0); } }; }) .directive('dirFocusInvalidForm', function ($timeout) { return { restrict: 'A', replace: false, scope:{}, link: function (scope, elem) { // set up event handler on the form element elem.on('submit', function () { focusInvalidElem(); }); elem.find('button').on('click', function () { focusInvalidElem(); }); var focusInvalidElem = function() { // find the first invalid element var invalidElems = angular.element( elem[0].querySelector('.ng-invalid') ); if (invalidElems.length) { $timeout( function() { invalidElems[0].focus(); }, 100); } }; } }; }) .directive('dirCarousel', function($timeout, $interval, HelperService, $rootScope,$compile) { return { scope: { carousel_name: '@dirCarousel', prev_active_class: '@prevActive', prev_inactive_class: '@prevInactive', next_active_class: '@nextActive', next_inactive_class: '@nextInactive', on_page_load:'@onPageLoad', auto_scroll:'@autoScroll', is_custom:'@isCustom', show_all:'@showAll', desktop_disabled:'@desktopDisabled' }, restrict: 'A', replace: false, link: function(scope, elem, attrs) { if(!(isDesktopDevice() && scope.desktop_disabled == 1)){ var carousel = function() { var hf, move_unit, move_timeout, bullet_flag, scrolling_status, visible_portion, list_parent, list_elements, list_elements_size, list_elem_width, running_status, prev_limit, visible_list_elems, next_limit, prev_arrow, next_arrow, computedWidthVal, move_count,already_moved,emptyLis,liList; var self = this, hf = HelperService, running_status = 0, move_unit = 50; move_timeout = 10, bullet_flag = 0, scrolling_status = 1, blocksToMove=0, already_moved=0,extraLiBucket=[]; var originalList=null; if (elem[0].getElementsByClassName('c_bullet').length !== 0) { bullet_flag = 1; } if(originalList == null){ originalList = []; list_parent = elem[0].getElementsByClassName('c_list')[0]; var objcopys = []; var objclones = []; for(var i=0;i 0){ blocksToMove = Math.round(visible_portion.offsetWidth/list_elements[i].offsetWidth); break; } } return blocksToMove; } var reArrangeList = function(list_parent){ var listChildren = list_parent.children.length; for(var i=0;i 0){ for(var i=0;i maxToShow){ list_elements[i].className = list_elements[i].className+" hidden_class"; angular.element(fullScheduleDiv).removeClass("hidden_class"); }else{ list_elements[i].className = list_elements[i].className.replace(" hidden_class",""); angular.element(fullScheduleDiv).addClass("hidden_class"); } } } list_elements_size = list_elements.length; var aa = list_elements_size%blocksToMove; if(aa != 0){ var bb = blocksToMove-aa; liList = []; for(var i=0;i 0){ if(list_elements_size < (blocksToMove*5)){ for(var i=0;i 0){ list_parent.getElementsByClassName("download_schedule_div")[0].style.width = visible_portion.offsetWidth+'px'; } }; this.init(); //count total number of batches var listparentchildrenlen = list_parent.children.length; var totalBatchesCount=0; for(var i=0;i 0){ elem[0].getElementsByClassName("dirCarouselCounter")[0].innerHTML = currEleIndex; } } var showCounter = function(){ var listparentchildrenlen = list_parent.children.length; for(var i=0;i 0){ elem[0].getElementsByClassName("dirCarouselCounter")[0].innerHTML = currEleIndex; } break; }else if(currEle.className.indexOf("download_schedule_div")!=-1){ elem[0].getElementsByClassName("all_batches")[0].className = elem[0].getElementsByClassName("all_batches")[0].className.replace(" hidden_class",""); elem[0].getElementsByClassName("batches_counter_span")[0].className = elem[0].getElementsByClassName("batches_counter_span")[0].className+" hidden_class"; break; } } } var calculateHiddenElements = function(listEleLen){ var hiddenEleCount=0; for(var i=0;i