/* Instant Fortune - goldRush.js */
var instantFortuneStyles={
	scratchSquare:".instantFortune_ScratchSquare",
	scratchedSquare:"instantFortune_PrizeScratch",
	prizeText:"instantFortune_PrizeText",
	scratchCardDelimiter:"scratch_",
	depositFunds:".instantFortune_depositFunds",
	depositDialog:".instantFortune_depositDialog",
	scratchButton:".instantFortune_scratchButton",
	playButton:".instantFortune_playButton",
	scratchGhost:".scratch_ghost",
	playAgainDialog:".instantFortune_playAgainDialog",
	youWonDialog:".instantFortune_youWonDialog",
	playAgain:".instantFortune_playAgain",
	noThanks:".instantFortune_noThanks"
};
var _if={
	scratchCard : null,
	askForLogin :function (){
		$.blockUI({message:$("#play_not_signed")});
		$(".unblock").click(_if.unblock);
	},
	unblock : function(){
		$.unblockUI();
	},
	request : function(param,callback){
		$.ajax({
			type: "GET",
			url: "/otto-portal/flashdata",
			data: param,
			dataType:'json',
			contentType: "application/json; charset=utf-8",
			success: callback
		});
	},
	populateScratchCard : function(scratchCard){
		_if.scratchCard=scratchCard;
		var delim='.'+instantFortuneStyles.scratchCardDelimiter;
		for(var i=0; 9>i; i++){
			$(delim+i).children().html('&euro;'+scratchCard.playField1[i]);
			$(delim+(9+i)).children().html('&euro;'+scratchCard.playField2[i]);
		}
		$(instantFortuneStyles.scratchGhost).hide();
		$(instantFortuneStyles.playButton)
				.unbind("click")
				.click(this.randomScratch)
				.unbind("mouseup")
				.mouseup(function (){ $(this).removeClass("scratch_clicked")})
				.unbind("mousedown")
				.mousedown(function (){ $(this).addClass("scratch_clicked")})
				.addClass("scratch_neutral");
	},
	attachEvents : function(){
		$.blockUI.defaults.css={};
		$(instantFortuneStyles.playButton)
				.click(0===uid?this.askForLogin:this.playTicket)
				.mousedown(function (){$(this).addClass("play_clicked")})
				.mouseup(function (){ $(this).removeClass("play_clicked")});
		$(instantFortuneStyles.playAgain).click(this.refresh);
		$(instantFortuneStyles.noThanks).click(this.noThanks);
	},
	noThanks : function(){
		window.location="/";
	},
	refresh : function(){
		window.location="/instantfortune/goldrush/";
	},
	performScratch : function(){
		$(this).children().hide();
		$(this).children().addClass(instantFortuneStyles.scratchedSquare);
		$(this).children().children().fadeIn(1000);
		$(this).children().show("blind",{ direction: "horizontal" },500,_if.checkState());
		$(this).unbind("click",_if.performScratch);
		$(this).addClass(".disabled");
	},
	resetPlayField : function(){
		$(instantFortuneStyles.scratchSquare).children().removeClass(instantFortuneStyles.scratchedSquare);
		$(instantFortuneStyles.scratchSquare).removeClass('.disabled');
		$(instantFortuneStyles.scratchSquare).click(_if.performScratch);
		$(instantFortuneStyles.scratchSquare).children().hide();
		$(instantFortuneStyles.playButton)
				.unbind("click")
				.click(0===uid?this.askForLogin:this.playTicket)
				.unbind("mouseup")
				.mouseup(function (){ $(this).removeClass("play_clicked")})
				.unbind("mousedown")
				.mousedown(function (){ $(this).addClass("play_clicked")})
				.removeClass("scratch_neutral");
	},
	randomScratch : function(){
		$(instantFortuneStyles.scratchButton)
				.addClass("disabled")
				.unbind("click",_if.randomScratch);
		$(instantFortuneStyles.scratchSquare).trigger('click');
	},
	checkState : function(){
		if(18==$("."+instantFortuneStyles.scratchedSquare).length){
			if(0<_if.scratchCard.winAmount){
				$("#winAmount").html(_if.scratchCard.winAmount);
				_if.scratchCard=null;
				$.blockUI({message:$(instantFortuneStyles.youWonDialog)});
			}
			else{
				$.blockUI({message:$(instantFortuneStyles.playAgainDialog)});
			}
		}
	},
	performDeposit : function(){
		window.location="/account/add-funds";
	},
	playTicket : function(){
		_if.resetPlayField();
		$(instantFortuneStyles.playAgainDialog).hide();
		$(instantFortuneStyles.youWonDialog).hide();
		_if.request({uid:uid,scratchCard:"play",configuration:0},function(data){
			if("ERROR_NOT_LOGGED_IN"==data.result) window.location="/error/login"; else if("OK"==data.result){
				_if.populateScratchCard(data.scratchCard);
				refreshMemberDisplay();
			} else if("ERROR"==data.result){
				if(data.errormessage&&"INSUFFICIENT_FUNDS"==data.errormessage.shortname){
					$(instantFortuneStyles.depositFunds).click(_if.performDeposit);
					$.blockUI({message:$(instantFortuneStyles.depositDialog)});
				}
				else{
					window.location="/";
				}
			}
		});
	}
};
$(function(){
	_if.attachEvents();
});
