// 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([
				'<param name="', i,
				'" value="', _objectToArguments(obj[i]), '" />'
			].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 = [
				'<object ', _objectFromObject(attrs), '>',
				_paramsFromObject(obj),
				'</object>'
			].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
));
// jQuery SWFPreloadAd v1.0 by Michiel Drenth
(function( $ ){
	/*
	  swf	 	: '<$url$>',
	  width  	: <$width$>,
	  height 	: <$height$>,
	  gameid	: 'gameswf',
	  gameframe : 'gameframe',
	  adframe 	: 'adframe'
	*/
  var settings = {};
  var timeout;
  var applygameiframe = function() {
	  var gc = '#'+settings.gameframe;
	  $(gc).append('<iframe id="'+settings.gameid+'" src="'+settings.swf+'" style="height:'+settings.height+'px;width:'+settings.width+'px;" frameborder="0" scrolling="no" marginwidth="0" marginheight="0"></iframe>');
	  return true;
  }
  var applygame = function() {
	  if(!$.flash.available) {
		  $(gc).html('<div style="margin-top:100px"><img style="margin-right:10px;" src="http://www.adobe.com/shockwave/download/images/fl_player_appicon.jpg" />Please download the <a target="_blank" href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">Adobe flash player</a> to play this game.</div>');
	 		return false;
	  }
	  var gc = '#'+settings.gameframe;
	  if(!$.browser.msie) {
		   $(gc).flash(
				{ swf: settings.swf,
				  id: settings.gameid,
				  width: settings.width,
				  height: settings.height,
				  allowscriptaccess:'sameDomain',
				  base:settings.base,
				  swLiveConnect:'true',
				  wmode:'window'
			}
			);
	  } else {
		  var flashtpl = '<object id="'+settings.gameid+'" name="'+settings.gameid+'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%">';
				flashtpl += '<param name="movie" value="'+settings.swf+'" />';
				flashtpl += '<param name="wmode" VALUE="window">';
				flashtpl += '<param name="quality" value="high" /><param name="base" value="'+settings.base+'" />';
				flashtpl += '<param name="allowScriptAccess" value="sameDomain" />';
				flashtpl += '<param name="swLiveConnect" value="true" />';
				flashtpl += '<object type="application/x-shockwave-flash" data="'+settings.swf+'" width="100%" height="100%">';
				flashtpl += '<param name="quality" value="high" /><param name="allowScriptAccess" value="sameDomain" />';
				flashtpl += '</object>';
				$(gc).html(flashtpl);
		  
	  }
		return true;
  }
  var getFlashMovieObject = function(movieName) {
  	if (window.document[movieName]) {
    	return window.document[movieName];
  	}
    if (navigator.appName.indexOf("Microsoft Internet")==-1) {
    	if (document.embeds && document.embeds[movieName])
     		 return document.embeds[movieName]; 
    } else { // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  		 return document.getElementById(movieName);
  	}
  }
  var showad = function() {
	  var ac = '#'+settings.adframe;
	  $('#progress').html('<div id="pbar"></div> <div id="pskip"></div>');
	  $('#plad').html(settings.adcode);
	  $(ac).show();
  }
  var trackprogress = function() {
  	  var game = settings.gameid;
	  try {
	 	var loaded = getFlashMovieObject(game).PercentLoaded();
		return loaded;  
	  } catch(e) {return 0;}
  }
  var timeprogress = function() {
	 var cDate = new Date()
	 var timenow = cDate.getTime();
	 var totaltime = settings.pltime;
	 var ctime = settings.pltime - (settings.endtime-timenow);
	 return parseInt((ctime/settings.pltime)*100);
  }
  var loadprogress = function(endtime) {
	  var ac   = '#' + settings.adframe;
	  var game = '#' + settings.gameframe;
	  var l 	= trackprogress();
	  var pt	= timeprogress();
	  if(settings.gametype == 'swf') {
		  if(l >= pt) {
			 var percentage = pt;  
		  } else {
			  var percentage = l;
		  }
		  if(l >= 100 && percentage > 30 && !this.gameisloaded) {
			  this.gameisloaded = true;
			  $('#pskip').html('<a onclick="skipad()" href="javascript:void(0)">'+settings.skiptxt+'</a>');
		  }
	  } else {
		  var percentage = pt;  
	  }
	  showprogress(percentage);
	 
	  if(percentage >= 100) { 
	  	clearInterval(timeout);
		showgame();
	  }
  }
  var showprogress = function (p) {
	  $('#pbar').css('width',(p*2)+'px');
	  if(!this.gameisloaded) {
	 	 $('#pskip').html('Loading game: ' + p + '%');
	  }
  }
  var showgame = function() {
	  var ac   = '#' + settings.adframe;
	  var game = '#' + settings.gameframe;
	  $(ac).hide();
	  $(game).css('width',settings.width+'px');
	  $(game).css('height',settings.height+'px');
  }
  $.fn.preloadad = function( options ) {
		$.extend(settings, options);
		var cDate = new Date()
		var ctimenow = cDate.getTime();
		settings.endtime = ctimenow + settings.pltime;
		if(settings.showad == 1) {
			if(settings.gametype == 'swf') {
				if(applygame()) {
					showad();
					timeout = setInterval(loadprogress, 500);
				}
			} else {
				if(applygameiframe()) {
					showad();
					timeout = setInterval(loadprogress, 500);
				}
			}
		} else {
			if(settings.gametype == 'swf') {
				if(applygame()) {
					showgame();
				}
			} else {
				if(applygameiframe()) {
					showgame();	
				}
			}
		}
  };

})( jQuery );

