(function ($) { $.widget("portal.liveintervals", { options: { intervalitemlist: [], intervaltime: 30000 }, _create: function () { var $that = this; setInterval(function () { $that.callliveupdates(); }, $that.options.intervaltime); }, callliveupdates: function() { var $that = this; for (var p = 0; p < $that.options.intervalitemlist.length; p++) { runupdate = function(e) { var $item = $that.options.intervalitemlist[e]; if ($item.parms) $.post($item.sourceurl, $item.parms, function (data) { var callback = $item.callbackfunction; callback(data); }); else $.post($item.sourceurl, function (data) { var callback = $item.callbackfunction; callback(data); }); } runupdate(p); } }, addintervalitem: function(url, func, parms) { var $that = this; // add interval item $that.options.intervalitemlist.push({ sourceurl: url, callbackfunction: func, parms: parms }); if (parms) $.post(url, parms, function (data) { func(data); }); else $.post(url, function (data) { func(data); }); }, destroy: function () { this.element.removeData(); } }); })(jQuery);