/** * Cart Status Class * Retrieves trivial statistics from the current PHP session's MediaCart. * **/ var CartStatus = new Class({ Implements: Options, options: { // The absolute url to request session information from requestURL: 'http://localhost/essentialradio/media-zip.php?act=status', // Function to run when AJAX data has been updated in the CartStatus object (bound as `this`). onComplete: function() {} }, initialize: function(options) { this.mNumItems = 0; // number of items in cart this.mTotalFilesize = '0 B'; // filesize of cart contents (uncompressed) this.setOptions(options); this.options.onComplete = this.options.onComplete.bind(this); this.request = new Request.JSON( { 'url': this.options.requestURL, onComplete: function(result) { if (result != null) { this.cartStatusObject.mNumItems = result.numItems; this.cartStatusObject.mTotalFilesize = result.totalFilesize; this.cartStatusObject.options.onComplete(); } // break closure loop this.cartStatusObject.request = null; this.cartStatusObject = null; return; } }); this.request.cartStatusObject = this; this.request.get(); } });