dist/ext/disqus.js

File

			(function(global, undefined) { var kafe = global.kafe, $ = kafe.dependencies.jQuery; kafe.bonify({name:'ext.disqus', version:'0.1.0', obj:(function(){
			
				var
					_params = {
						shortname: '',
						language: ''
					},
			
					_interval = null,
					_callback = null,
			
					_isDisqusLoaded = function() {
						if ($('#dsq-content #dsq-reply').length) {
							global.clearInterval(disqus.interval);
							disqus.loaded = true;
							disqus.callback();
						}
					}
				;
			
				global.disqus_title      = null;
				global.disqus_shortname  = null;
				global.disqus_url        = null;
				global.disqus_identifier = null;
			
			
				/**
				* ### Version 0.1.0
				* Extra methods for the Disqus API.
				*
				* @module kafe.ext
				* @class kafe.ext.disqus
				*/
				var disqus = {};
			
			
				/**
				* Init Disqus async.
				*
				* @method init
				* @param {Object} options Options.
				*	@param {String} options.title TODO
				*	@param {String} options.shortname TODO
				*	@param {String} options.url TODO
				*	@param {String} options.identifier TODO
				*	@param {String} options.language TODO
				*	@param {Function} [options.callback] TODO
				*/
				disqus.init = function (options) {
					var p = $.extend({}, _params, options);
			
					global.disqus_title = p.title;
					global.disqus_shortname = p.shortname;
					global.disqus_url = p.url;
					global.disqus_identifier = p.identifier;
			
					global.disqus_config = function () {
						this.language = p.language;
					};
			
					var dsq = document.createElement('script');
					dsq.type = 'text/javascript';
					dsq.async = true;
			
					dsq.src = '//' + p.shortname + '.disqus.com/embed.js';
					(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
			
					if (p.callback && typeof (p.callback) == 'function') {
						if ($('#dsq-content #dsq-reply').length === 0) {
							_callback = p.callback;
							_interval = global.setInterval(_isDisqusLoaded, 200);
						} else {
							p.callback();
						}
					}
				};
			
			
				/**
				* Reset Disqus.
				*
				* @method reset
				* @param {String} pageId TODO
				* @param {String} url TODO
				*/
				disqus.reset = function (pageId, url) {
					DISQUS.reset({
						reload: true,
						config: function () {
							this.page.identifier = pageId;
							this.page.url = url;
						}
					});
				};
			
			
				return disqus;
			
			})()}); })(typeof window !== 'undefined' ? window : this);