// jQuery SWFObject v1.1.1 MIT/GPL @jon_neal // http://jquery.thewikies.com/swfobject (function($, flash, Plugin) { var OBJECT = 'object', ENCODE = true; function _compareArrayIntegers(a, b) { var x = (a[0] || 0) - (b[0] || 0); return x > 0 || ( !x && a.length > 0 && _compareArrayIntegers(a.slice(1), b.slice(1)) ); } function _objectToArguments(obj) { if (typeof obj != OBJECT) { return obj; } var arr = [], str = ''; for (var i in obj) { if (typeof obj[i] == OBJECT) { str = _objectToArguments(obj[i]); } else { str = [i, (ENCODE) ? encodeURI(obj[i]) : obj[i]].join('='); } arr.push(str); } return arr.join('&'); } function _objectFromObject(obj) { var arr = []; for (var i in obj) { if (obj[i]) { arr.push([i, '="', obj[i], '"'].join('')); } } return arr.join(' '); } function _paramsFromObject(obj) { var arr = []; for (var i in obj) { arr.push([ '' ].join('')); } return arr.join(''); } try { var flashVersion = Plugin.description || (function () { return ( new Plugin('ShockwaveFlash.ShockwaveFlash') ).GetVariable('$version'); }()) } catch (e) { flashVersion = 'Unavailable'; } var flashVersionMatchVersionNumbers = flashVersion.match(/\d+/g) || [0]; $[flash] = { available: flashVersionMatchVersionNumbers[0] > 0, activeX: Plugin && !Plugin.name, version: { original: flashVersion, array: flashVersionMatchVersionNumbers, string: flashVersionMatchVersionNumbers.join('.'), major: parseInt(flashVersionMatchVersionNumbers[0], 10) || 0, minor: parseInt(flashVersionMatchVersionNumbers[1], 10) || 0, release: parseInt(flashVersionMatchVersionNumbers[2], 10) || 0 }, hasVersion: function (version) { var versionArray = (/string|number/.test(typeof version)) ? version.toString().split('.') : (/object/.test(typeof version)) ? [version.major, version.minor] : version || [0, 0]; return _compareArrayIntegers( flashVersionMatchVersionNumbers, versionArray ); }, encodeParams: true, expressInstall: 'expressInstall.swf', expressInstallIsActive: false, create: function (obj) { var instance = this; if ( !obj.swf || instance.expressInstallIsActive || (!instance.available && !obj.hasVersionFail) ) { return false; } if (!instance.hasVersion(obj.hasVersion || 1)) { instance.expressInstallIsActive = true; if (typeof obj.hasVersionFail == 'function') { if (!obj.hasVersionFail.apply(obj)) { return false; } } obj = { swf: obj.expressInstall || instance.expressInstall, height: 137, width: 214, flashvars: { MMredirectURL: location.href, MMplayerType: (instance.activeX) ? 'ActiveX' : 'PlugIn', MMdoctitle: document.title.slice(0, 47) + ' - Flash Player Installation' } }; } attrs = { data: obj.swf, type: 'application/x-shockwave-flash', id: obj.id || 'flash_' + Math.floor(Math.random() * 999999999), width: obj.width || 320, height: obj.height || 180, style: obj.style || '' }; ENCODE = typeof obj.useEncode !== 'undefined' ? obj.useEncode : instance.encodeParams; obj.movie = obj.swf; obj.wmode = obj.wmode || 'opaque'; delete obj.fallback; delete obj.hasVersion; delete obj.hasVersionFail; delete obj.height; delete obj.id; delete obj.swf; delete obj.useEncode; delete obj.width; var flashContainer = document.createElement('div'); flashContainer.innerHTML = [ '', _paramsFromObject(obj), '' ].join(''); return flashContainer.firstChild; } }; $.fn[flash] = function (options) { var $this = this.find(OBJECT).andSelf().filter(OBJECT); if (/string|object/.test(typeof options)) { this.each( function () { var $this = $(this), flashObject; options = (typeof options == OBJECT) ? options : { swf: options }; options.fallback = this; flashObject = $[flash].create(options); if (flashObject) { $this.children().remove(); $this.html(flashObject); } } ); } if (typeof options == 'function') { $this.each( function () { var instance = this, jsInteractionTimeoutMs = 'jsInteractionTimeoutMs'; instance[jsInteractionTimeoutMs] = instance[jsInteractionTimeoutMs] || 0; if (instance[jsInteractionTimeoutMs] < 660) { if (instance.clientWidth || instance.clientHeight) { options.call(instance); } else { setTimeout( function () { $(instance)[flash](options); }, instance[jsInteractionTimeoutMs] + 66 ); } } } ); } return $this; }; }( jQuery, 'flash', navigator.plugins['Shockwave Flash'] || window.ActiveXObject ));