;(function($,_,undefined){"use strict";ips.controller.register('coderedeemer.redeem',{initialize:function(){var self=this;this.setup();this.on('click','.redeemer__apply-input',this.setInputFocus);this.on('input','.redeemer__apply-input > input',this.setApplyButtonState);this.on('keydown','.redeemer__apply-input > input',this.dropStatuses);this.on('keydown','.redeemer__apply-input > input',function(e){if(e.keyCode===13){self.checkCode();}});this.on('click','.redeemer__apply-button',self.checkCode);this.on('click','.redeemer__copy-button',function(){self.goToStage('check');});},setup:function(){this._maxPollingAttempts=15;this._pollingInterval=1000;this._isRequestProcessing=false;this._step=this.scope.attr('data-step');this._platform=this.scope.attr('data-login');if(this._step==='2'&&this._platform==='Play Station'){}else{this.setInputFocus();}},validateInput:function(){},dropStatuses:function(){this.scope.find('.redeemer__apply-input').removeClass('apply-input--error');},setInputFocus:function(){this.scope.find('.redeemer__apply-input > input').focus();},showRegionModal:function(){this.on('click','.redeemer-modal__confirm',this.closeRegionModal);this.on('click','.redeemer-modal__country',this.setRegion);this.scope.find('.redeemer-modal').show().addClass('animation--visible');},closeRegionModal:function(){this.scope.find('.redeemer-modal').removeClass('animation--visible');setTimeout(()=>{this.scope.find('.redeemer-modal').hide();},300);this.setInputFocus();},setRegion:function(e){this._region=$(e.target).attr('data-region');this.scope.find('.redeemer-modal__country').removeClass('country--active');$(e.target).addClass('country--active');this.scope.find('.redeemer-modal__confirm').removeClass('confirm--disabled');},setApplyButtonState:function(e){this._code=$(e.target).val().trim();if(this._code){this.scope.find('.redeemer__apply-button').removeClass('apply-button--disabled');}else{this.scope.find('.redeemer__apply-button').addClass('apply-button--disabled');}},checkCode:function(){if(this._isRequestProcessing){return false;}
this._isRequestProcessing=true;this._closeLoader=this.createLoaderOverlay();this._totalAttempts=0;ips.getAjax()(ips.getSetting('baseURL')+'code-redeemer/check/',{data:_.extend({region:this._region,code:this._code})}).done(_.bind(this.handleResponse,this)).fail(_.bind(this.handleError,this));},checkResult:function(){ips.getAjax({timeout:15000})(ips.getSetting('baseURL')+'code-redeemer/result/').done(_.bind(this.handleResponse,this)).fail(_.bind(this.handleError,this));},handleError:function(){var resultTextMap={errorTitle:ips.getString('coderedeemer_error_title'),serverDown:ips.getString('coderedeemer_error_server_down')};this.scope.find('.text--1').text(resultTextMap.errorTitle);this.scope.find('.text--2').text(resultTextMap.serverDown);this._isRequestProcessing=false;if(this._closeLoader){this._closeLoader();}
return false;},handleResponse:function(resp){var response=resp||{};var isSuccess=response.status==='ok';var code=response.code;var message=response.message;var resultTextMap={okTitle:ips.getString('coderedeemer_ok_title'),errorTitle:ips.getString('coderedeemer_error_title')};this._totalAttempts+=1;if(this._totalAttempts>this._maxPollingAttempts){this.handleError();return false;}
switch(parseInt(code)){case 200:case 201:case 103:window.setTimeout(_.bind(this.checkResult,this),this._pollingInterval);return false;}
if(isSuccess){this.scope.find('.text--1').text(resultTextMap.okTitle);this.goToStage('result');}else{this.scope.find('.text--1').text(resultTextMap.errorTitle);this.scope.find('.redeemer__apply-input').addClass('apply-input--error');this.scope.find('.step--active').removeClass('step--active').addClass('step--error');}
if(message){this.scope.find('.text--2').text(message);}
this._isRequestProcessing=false;if(this._closeLoader){this._closeLoader();}},goToStage:function(stage){this.scope.find('.step').removeClass('step--error').removeClass('step--active');if(stage==='check'){this.scope.find('[data-stage=init]').addClass('step--passed');this.scope.find('[data-stage=check]').addClass('step--active');this.scope.find('[data-stage=result]').removeClass('step--passed');this.scope.find('.redeemer__apply-input > input').val('');var text1=this.scope.find('.text--1');text1.text(text1.attr('data-text-default'));var text2=this.scope.find('.text--2');text2.text(text2.attr('data-text-default'));this.scope.find('.redeemer__apply').show();this.scope.find('.redeemer__copy').hide();}else if(stage==='result'){this.scope.find('.step').addClass('step--passed');this.scope.find('.redeemer__apply').hide();this.scope.find('.redeemer__copy').show();}},createLoaderOverlay:function(){const element=$(`
    <div class="wowsl-overlay">
     <div class="wowsl-loader"></div>
     <div class="wowsl-logo"></div>
    </div>`);$('body').append(element);return function(){element.remove();}}});}(jQuery,_));;