// 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 = [
''
].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
));