
// extern jquery
jQuery.fn.shake = function(intShakes /*Amount of shakes*/, intDistance /*Shake distance*/, intDuration /*Time duration*/) {
this.each(function() {
$(this).css({position:'relative'});
for (var x=1; x<=intShakes; x++) {
$(this).animate({left:(intDistance*-1)}, (((intDuration/intShakes)/4)))
.animate({left:intDistance}, ((intDuration/intShakes)/2))
.animate({left:0}, (((intDuration/intShakes)/4)));
}
});
return this;
};

function showPowerPunchOLD()	{
	$('#container').shake(5,30,300);
}
function showPowerPunchX()	{

}

function showPowerPunch()	{
	_meef.game.fights.showOverlay();
}


(function(container){

	var self = {

		flashWidth: 680,
		flashHeight: 425,
		flashFile: 'FightViewer.swf',
		updateOnClose: false,
		overlay: false,
		readyInSeconds: 0,
		timeCounter: null,


		init:		function()	{
			// add on click handler
			$('.showFightLink').bind('click', self.showFightLink);

			if (typeof(directShowFightID) !== 'undefined' && directShowFightID > 0 )	{
				self.updateOnClose = true;
				self.showFight(directShowFightID);
			}
			
			if (fight3D == 1)	{
				self.flashWidth = 750;
				self.flashHeight = 500;
				self.flashFile = 'FightViewer3D.swf'
			}

		},

		showFightLink:	function(event)	{
			event.preventDefault();
			var fightID = $(this).attr('rel');
			if ($(this).hasClass('updateOnClose'))	{
				// refresh page on close of modal window
				self.updateOnClose = true;
			} else {
				self.updateOnClose = false;
			}
			self.showFight(fightID);
		},

		showFight:				function(fightID)	{
			// get fight data by ajax
			var post = {id: fightID};
			var url = '/fights/ajax-view-fight/?' + SID;
			$.ajax({
				type:	'POST',
				url:	url,
				cache:	false,
				data:	post,
				error:	self.ajaxError,
				success:self.showFightComplete,
				dataType: 'json'
			});

		},

		ajaxError:		function()	{
			alert('Unbekannter Fehler (AJAX Error)');
		},

		showFightComplete:		function(data, textStatus)	{
			
			
			// show fight in a new modal window
			var html = '<div style="overflow: hidden; display: block; width:' + self.flashWidth + 'px; height: ' + self.flashHeight + 'px;"><div id="flashFight"  >'
						+ '<p style="font-size: 14px; padding:40px">Um den Kampf ansehen zu können, benötigst Du den Flash-Player Version 10. Diesen kannst Du <a href="http://www.adobe.com/de/products/flashplayer/" >hier kostenlos downloaden: http://www.adobe.com/de/products/flashplayer/</a></p>'
						+ '</div></div>';
			self.lastFightData = data;
			var options = {onShow: self.onModalShow, onClose: self.onModalClose, containerCss: {width: self.flashWidth, height:self.flashHeight} };
			
			// check if fight is incomplete... if so, display wait timer
			if (data.incomplete)	{
				//var text_shortly = data.textShorty;
				var text_shortly = data.text_shortly;
				html = '<div style="background: #000; color: #fff;overflow: hidden; display: block; width:' + self.flashWidth + 'px; height: ' + self.flashHeight + 'px;"><div id="flashFight"  >'
					+ '<p style="font-size: 14px; padding:40px; text-align:center">' + text_shortly + '<br><span style="font-size:150px" id="showFightWaitCounter" >' + data.readyInSeconds + ' Sekunden</span></p>';
					+ '</div></div>';
				options.onShow = self.onModalShowWait;
				self.readyInSeconds = data.readyInSeconds;
				$.getScript('/scripts/game/timeCounter.js?fightID=' + data.fightID, self.initWaitTimer);
			}

			$.modal(html, options);

		},

		onModalClose:	function(modal)	{
			$.modal.close();
			if (self.timeCounter != null)	self.timeCounter.stop();
			if (self.updateOnClose)	{
				// refresh this page
				location.href = location.href + '&rdr=1&jsredir=1';
			}
		},
		
		
		initWaitTimer:		function()	{
			self.timeCounter = container.game.timeCounter.init('showFightWaitCounter', self.readyInSeconds, {onComplete: self.timeCounterComplete});
		},
		timeCounterComplete: function()	{
			$.modal.close();
			self.showFight(self.lastFightData.fightID);
		},
		
		onModalShowWait:	function(modal)	{
			self.onModalShow(modal, true);
		},

		onModalShow:	function(modal, doNotShowFight)	{
			var wHeight = $(window).height();
			var top = 0;
			if (wHeight < 440)		{
				top = 0;
			} else {
				top = Math.floor(wHeight / 2) - 220;
			}
			var css = {top: top + 'px', width: self.flashWidth, height: self.flashHeight, 'margin-left': Math.round(self.flashWidth* -0.5)};
			//modal.container.css(css);
			var data = self.lastFightData;
			if (doNotShowFight != true) self.showFlash('flashFight', data.fightID, data.boxerID, data.boxerOpponentID, data.sessionID, data.fileVersion);
		},

		showFlash:		function(idOfContainer, fightID, boxerID, boxerOpponentID, sessionID, fileVersion)	{
			var swfparams = {wmode: 'window'};
			var flashVars = {
				fightID: fightID,
				boxerID: boxerID,
				boxerOpponentID: boxerOpponentID,
				sessionID: sessionID,
				fileVersion: fileVersion,
				gameVersion: self.lastFightData.version
			};
			var host = '';
			if (fight3D == 1){
				if (SERVERID < 0)	host = 'http://smashdown.devel.mindvent.de';
				if (SERVERID > 0)	host = 'http://smashdown.de';
			}
			swfobject.embedSWF(host  + '/flash/' + self.flashFile + '?ver=' + fileVersion, 'flashFight', self.flashWidth, self.flashHeight, "9.0.0", null, flashVars, swfparams);
		},

		showOverlay:	function()	{
			// insert overlay flash div
			if (self.overlay != false)	return;	// already displaying overlay
			self.overlay = $('<div>')
						.attr('id', 'showFightOverlayFlash')
						.css({
							opacity: 0,
							backgroundColor: '#f00',
							height: '100%',
							width: '100%',
							position: 'fixed',
							left: 0,
							top: 0,
							zIndex: 3000
						});

			// fix old ie?
			if ($.browser.msie && ($.browser.version < 7)) {
				var wHeight = $(document.body).height() + 'px';
				var wWidth = $(document.body).width() + 'px';
				self.overlay.css({position: 'absolute', height: wHeight, width: wWidth});
			}
			self.overlay.appendTo('body')
						.animate({'opacity': 1}, 300)
						.animate({'opacity': 0}, 300, null, self.removeOverlay)
		},
		removeOverlay:	function()	{
			self.overlay.remove();
			self.overlay = false;
		}


	};

	container.game.fights = self;
})(_meef);
$(_meef.game.fights.init);