// Flash (http://jquery.lukelutman.com/plugins/flash)
;(function () {

	var $$;
	$$ = jQuery.fn.flash = function (htmlOptions, pluginOptions, replace, update) {
		var block = replace || $$.replace;
		pluginOptions = $$.copy($$.pluginOptions, pluginOptions);
		if (!$$.hasFlash(pluginOptions.version)) {
			if (pluginOptions.expressInstall && $$.hasFlash(6, 0, 65)) {
				var expressInstallOptions = {
					flashvars: {
						MMredirectURL: location,
						MMplayerType: 'PlugIn',
						MMdoctitle: jQuery('title').text()
					}
				};
			} else if (pluginOptions.update) {
				block = update || $$.update;
			} else {
				return this;
			}
		}
		htmlOptions = $$.copy($$.htmlOptions, expressInstallOptions, htmlOptions);
		return this.each(function () {
			block.call(this, $$.copy(htmlOptions));
		});
	};

	$$.copy = function () {
		var options = {}, flashvars = {};
		for (var i = 0; i < arguments.length; i++) {
			var arg = arguments[i];
			if (arg == undefined) continue;
			jQuery.extend(options, arg);
			if (arg.flashvars == undefined) continue;
			jQuery.extend(flashvars, arg.flashvars);
		}
		options.flashvars = flashvars;
		return options;
	};

	$$.hasFlash = function () {
		if (/hasFlash\=true/.test(location)) return true;
		if (/hasFlash\=false/.test(location)) return false;
		var pv = $$.hasFlash.playerVersion().match(/\d+/g);
		var rv = String([arguments[0], arguments[1], arguments[2]]).match(/\d+/g) || String($$.pluginOptions.version).match(/\d+/g);
		for (var i = 0; i < 3; i++) {
			pv[i] = parseInt(pv[i] || 0);
			rv[i] = parseInt(rv[i] || 0);
			if (pv[i] < rv[i]) return false;
			if (pv[i] > rv[i]) return true;
		}
		return true;
	};

	$$.hasFlash.playerVersion = function () {
		try {
			try {
				var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
				try {
					axo.AllowScriptAccess = 'always';
				}
				catch (e) {
					return '6,0,0';
				}
			} catch (e) {}
			return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
		} catch (e) {
			try {
				if (navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin) {
					return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
				}
			} catch (e) {}
		}
		return '0,0,0';
	};

	$$.htmlOptions = {
		width: 320,
		height: 240,
		flashvars: {},
		pluginspage: 'http://www.adobe.com/go/getflashplayer',
		src: '#',
		type: 'application/x-shockwave-flash',
		wmode: 'transparent'
	};

	$$.pluginOptions = {
		expressInstall: false,
		update: true,
		version: '6.0.65'
	};

	$$.replace = function (htmlOptions) {
		this.innerHTML = '<div class="alt">' + this.innerHTML + '</div>';
		jQuery(this).addClass('flash-replaced').prepend($$.transform(htmlOptions));
	};

	$$.update = function (htmlOptions) {
		var url = String(location).split('?');
		url.splice(1, 0, '?hasFlash=true&');
		url = url.join('');
		var msg = 'Sadržaj nije moguće prikazati. Instalirajte <A href="http://www.adobe.com/go/getflashplayer">Flash Player</A>.';
		this.innerHTML = '<span class="alt">' + this.innerHTML + '</span>';
		jQuery(this).addClass('flash-update').prepend(msg);
	};

	function toAttributeString() {
		var s = '';
		for (var key in this)
		if (typeof this[key] != 'function') s += key + '="' + this[key] + '" ';
		return s;
	};

	function toFlashvarsString() {
		var s = '';
		for (var key in this)
		if (typeof this[key] != 'function') s += key + '=' + encodeURIComponent(this[key]) + '&';
		return s.replace(/&$/, '');
	};

	$$.transform = function (htmlOptions) {
		htmlOptions.toString = toAttributeString;
		if (htmlOptions.flashvars) htmlOptions.flashvars.toString = toFlashvarsString;
		return '<embed ' + String(htmlOptions) + '/>';
	};


	if (window.attachEvent) {
		window.attachEvent("onbeforeunload", function () {
			__flash_unloadHandler = function () {};
			__flash_savedUnloadHandler = function () {};
		});
	}

})();