/*! jquery.swfobject.license.txt *//*



jQuery SWFObject Plugin v1.0.4 <http://jquery.thewikies.com/swfobject/>

Copyright (c) 2009 Jonathan Neal

This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>

This software is released under the GPL License <http://www.opensource.org/licenses/gpl-2.0.php>



SWFObject v2.1 <http://code.google.com/p/swfobject/>

Copyright (c) 2007-2009 Geoff Stearns, Michael Williams, and Bobby van der Sluis

This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>



jQuery v1.2.6 <http://jquery.com/>

Copyright (c) 2009 John Resig

This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>

This software is released under the GPL License <http://www.opensource.org/licenses/gpl-2.0.php>



*//*jslint

	passfail: false,

	white: true,

	browser: true,

	widget: false,

	sidebar: false,

	rhino: false,

	safe: false,

	adsafe: false,

	debug: false,

	evil: false,

	cap: false,

	on: false,

	fragment: false,

	laxbreak: false,

	forin: true,

	sub: false,

	css: false,

	undef: true,

	nomen: false,

	eqeqeq: true,

	plusplus: false,

	bitwise: true,

	regexp: false,

	onevar: true,

	strict: false

*//*global

	jQuery,

	ActiveXObject

*/



(function ($) {

	var win = window,

	doc = document,

	x = '',

	object = 'object';



	/* $.flashPlayerVersion */

	$.flashPlayerVersion = (function () {

		var flashVersion, activeX = null,

		fp6Crash = false,

		shockwaveFlash = 'ShockwaveFlash.ShockwaveFlash';



		/* If Internet Explorer */

		if (! (flashVersion = navigator.plugins['Shockwave Flash'])) {

			try {

				activeX = new ActiveXObject(shockwaveFlash + '.7');

			} catch (errorA) {

				try {

					activeX = new ActiveXObject(shockwaveFlash + '.6');

					flashVersion = [6, 0, 21];

					activeX.AllowScriptAccess = 'always';

				} catch (errorB) {

					if (flashVersion && flashVersion[0] === 6) {

						fp6Crash = true;

					}

				}

				if (!fp6Crash) {

					try {

						activeX = new ActiveXObject(shockwaveFlash);

					} catch (errorC) {

						flashVersion = 'X 0,0,0';

					}

				}

			}

			if (!fp6Crash && activeX) {

				try {

					/* Will crash fp6.0.21/23/29 */

					flashVersion = activeX.GetVariable('$version');

				} catch (errorD) {}

			}

		}



		/* If NOT Internet Explorer */

		else {

			flashVersion = flashVersion.description;

		}



		/* Return flash version */

		flashVersion = flashVersion.match(/^[A-Za-z\s]*?(\d+)(\.|,)(\d+)(\s+r|,)(\d+)/);

		return [flashVersion[1] * 1, flashVersion[3] * 1, flashVersion[5] * 1];

	}());



	/* $.flashExpressInstaller */

	$.flashExpressInstaller = 'expressInstall.swf';



	/* $.hasFlashPlayer */

	$.hasFlashPlayer = ($.flashPlayerVersion[0] !== 0);



	/* $.hasFlashPlayerVersion */

	$.hasFlashPlayerVersion = function (options) {

		var flashVersion = $.flashPlayerVersion;

		options = (/string|integer/.test(typeof options)) ? options.toString().split('.') : options;

		options = [options.major || options[0] || flashVersion[0], options.minor || options[1] || flashVersion[1], options.release || options[2] || flashVersion[2]];



		/* Return true or false */

		return ($.hasFlashPlayer && (options[0] > flashVersion[0] || (options[0] === flashVersion[0] && (options[1] > flashVersion[1] || (options[1] === flashVersion[1] && options[2] >= flashVersion[2])))));

	};



	/* $.flash */

	$.flash = function (options) {

		/* Check if Flash is installed, return false if it isn't */

		if (!$.hasFlashPlayer) {

			return false;

		}



		var movieFilename = options.swf || x,

		paramAttributes = options.params || {},

		buildDOM = doc.createElement('body'),

		aArr,

		bArr,

		cArr,

		dArr,

		a,

		b,

		c,

		d;



		/* Set the default height and width if not already set */

		options.height = options.height || 180;

		options.width = options.width || 320;



		/* Inject ExpressInstall if "hasVersion" is requested and the version requirement is not met */

		if (options.hasVersion && !$.hasFlashPlayerVersion(options.hasVersion)) {

			$.extend(options, {

				id: 'SWFObjectExprInst',

				height: Math.max(options.height, 137),

				width: Math.max(options.width, 214)

			});

			movieFilename = options.expressInstaller || $.flashExpressInstaller;

			paramAttributes = {

				flashvars: {

					MMredirectURL: win.location.href,

					MMplayerType: ($.browser.msie && $.browser.win) ? 'ActiveX': 'PlugIn',

					MMdoctitle: doc.title.slice(0, 47) + ' - Flash Player Installation'

				}

			};

		}



		/* Append as a param if specified separately */

		if (typeof paramAttributes === object) {

			/* flashvars */

			if (options.flashvars) {

				paramAttributes.flashvars = options.flashvars;

			}



			/* wmode */

			if (options.wmode) {

				paramAttributes.wmode = options.wmode;

			}

		}



		/* Delete the reformatted constructors */

		for (a in (b = ['swf', 'expressInstall', 'hasVersion', 'params', 'flashvars', 'wmode'])) {

			delete options[b[a]];

		}



		/* Create the OBJECT tag attributes */

		aArr = [];

		for (a in options) {

			if (typeof options[a] === object) {

				bArr = [];

				for (b in options[a]) {

					bArr.push(b.replace(/([A-Z])/, '-$1').toLowerCase() + ':' + options[a][b] + ';');

				}

				options[a] = bArr.join(x);

			}

			aArr.push(a + '="' + options[a] + '"');

		}

		options = aArr.join(' ');



		/* Create the PARAM tags */

		if (typeof paramAttributes === object) {

			aArr = [];

			for (a in paramAttributes) {

				if (typeof paramAttributes[a] === object) {

					bArr = [];

					for (b in paramAttributes[a]) {

						if (typeof paramAttributes[a][b] === object) {

							cArr = [];

							for (c in paramAttributes[a][b]) {

								if (typeof paramAttributes[a][b][c] === object) {

									dArr = [];

									for (d in paramAttributes[a][b][c]) {

										dArr.push([d.replace(/([A-Z])/, '-$1').toLowerCase(), ':', paramAttributes[a][b][c][d], ';'].join(x));

									}

									paramAttributes[a][b][c] = dArr.join(x);

								}

								cArr.push([c, '{', paramAttributes[a][b][c], '}'].join(x));

							}

							paramAttributes[a][b] = cArr.join(x);

						}

						bArr.push([b, '=', win.escape(win.escape(paramAttributes[a][b]))].join(x));

					}

					paramAttributes[a] = bArr.join('&amp;');

				}

				aArr.push(['<PARAM NAME="', a, '" VALUE="', paramAttributes[a], '">'].join(x));

			}

			paramAttributes = aArr.join(x);

		}



		/* Unify the visual display between all browsers */

		if (! (/style=/.test(options))) {

			options += ' style="vertical-align:text-top;"';

		}

		if (! (/style=(.*?)vertical-align/.test(options))) {

			options = options.replace(/style="/, 'style="vertical-align:text-top;');

		}



		/* Specify the object and param tags between browsers */

		if ($.browser.msie) {

			options += ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';

			paramAttributes = '<PARAM NAME="movie" VALUE="' + movieFilename + '">' + paramAttributes;

		} else {

			options += ' type="application/x-shockwave-flash" data="' + movieFilename + '"';

		}



		/* Return the jQuery'd flash OBJECT */

		buildDOM.innerHTML = ['<OBJECT ', options, '>', paramAttributes, '</OBJECT>'].join(x);

		return $(buildDOM.firstChild);

	};



	/* $.fn.flash */

	$.fn.flash = function (options) {

		/* Check if Flash is installed, return the jQuery node if it isn't */

		if (!$.hasFlashPlayer) {

			return this;

		}



		var a = 0,

		each;



		/* Each */

		while ((each = this.eq(a++))[0]) {

			each.html($.flash($.extend({},

			options)));

			if (document.getElementById('SWFObjectExprInst')) {

				a = this.length;

			}

		}



		/* Return the jQuery node */

		return this;

	};

}(jQuery));
