// created by Kahraman on 29.03.2020

App = angular.module('App', ['ui.bootstrap', 'ui.mask', 'ngCookies', 'ngSanitize', 'cp.ngConfirm', 'ngFileUpload']);
App.config(['$locationProvider', '$controllerProvider', '$compileProvider', '$filterProvider', '$provide', 'uiMask.ConfigProvider',
    function ($locationProvider, $controllerProvider, $compileProvider, $filterProvider, $provide, uiMaskConfigProvider) {
        $locationProvider.html5Mode(true);
        uiMaskConfigProvider.clearOnBlur(false);
        App.controller = $controllerProvider.register;
        App.directive = $compileProvider.directive;
        App.filter = $filterProvider.register;
        App.factory = $provide.factory;
        App.service = $provide.service;
    }
]);

App.directive('onlyNumbers', function () {
    return {
        restrict: 'A',
        link: function (scope, elm, attrs, ctrl) {
            elm.on('keydown', function (event) {
                if (event.shiftKey) { event.preventDefault(); return false; }
                //console.log(event.which);
                if ([8, 13, 27, 37, 38, 39, 40].indexOf(event.which) > -1) {
                    // backspace, enter, escape, arrows
                    return true;
                } else if (event.which >= 48 && event.which <= 57) {
                    // numbers
                    return true;
                } else if (event.which >= 96 && event.which <= 105) {
                    // numpad number
                    return true;
                }
                else {
                    event.preventDefault();
                    return false;
                }
            });
        }
    }
})

App.controller('commonController', ['$scope', '$http', '$location', '$window', '$timeout', '$interval', '$q', commonController]);

function commonController($scope, $http, $location, $window, $timeout, $interval, $q) {
     function closeModal(form) {
          $scope = {}
          $(`${form}`)[0].reset()
    }

    $('.modal .closeButton button.close').live('click', function() {
    })

    $scope.resetPassword = function() {
          var email = $('#forgot_email').val()
          var emailFormat = new RegExp("^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$")
          //- var verifyRecaptcha = grecaptcha.getResponse(forgot_recaptcha)

          if(email.length==0) {
               $.toast({
                    heading: 'EKSİK BİLGİ!',
                    text: 'Eposta Adresi boş olamaz!',
                    icon: 'warning',
                    loader: true,
                    position: 'mid-center',
                    stack: false
               });
          }
          else if(emailFormat.test(email)==false) {
               $.toast({
                    heading: 'HATA!',
                    text: 'Geçersiz Eposta formatı!',
                    icon: 'error',
                    loader: true,
                    position: 'mid-center',
                    stack: false
               });
          }
          /* else if(verifyRecaptcha=='') {
               $.toast({
                    heading: 'UYARI!',
                    text: 'Robot olmadığınızı doğrulayın!',
                    icon: 'warning',
                    loader: true,
                    position: 'mid-center',
                    stack: false
               });
          } */
          else {
               $http.post('/api/changeOldPassword', {
                    email: email
               }).then(function (response) {
                    response = response.data
                    if(response.state) {
                         $('#forgotPasswordModal').modal('hide')
                         $('#forgotPasswordModal').on('hidden.bs.modal', function() {
                              closeModal('#forgotPasswordForm')
                         })
                         $.toast({
                              heading: 'GÖNDERİLDİ...',
                              text: 'Size bir mail gönderdik. Posta kutunuzu kontrol edin.',
                              icon: 'success',
                              loader: true,
                              position: 'mid-center',
                              stack: false
                         });
                    }
                    /* else if(response.code && response.code=='notactivated') {
                         $('.modal.forgot').modal('hide')
                         $('.modal.activation').modal('show')
                    } */
                    else {
                         $.toast({
                              heading: 'HATA!',
                              text: 'Mail gönderilemedi! Lütfen tekrar deneyin',
                              icon: 'error',
                              loader: true,
                              position: 'mid-center',
                              stack: false
                         });
                    }
               }).catch(function (err) {
                    console.error(err)
               })
          }
    }

    $scope.resetCountDown = function() {
         var element = $('.charCountdown').data('element')
         var maxlength = $(`.charCountdown.${element}`).data('maxlength')
         $scope.countDown = maxlength
    }

    $scope.maxCountdown = function(value, maxlength) {
         var timer = maxlength-value
         if(timer<=0) {
               $scope.countDown = '0'
         }
         else {
              $scope.countDown = timer
         }

         console.log($scope.countDown)

         if(timer<=0) {
               $.toast({
                    heading: 'UYARI!',
                    text: 'Maksimum karakter sayısına ulaştınız!',
                    icon: 'warning',
                    loader: true,
                    position: 'mid-center',
                    stack: false
               });
         }
    }

    $scope.maxCountKeyup = function(e, maxlength) {
         var value = e.target.value
         $scope.maxCountdown(value.length, maxlength)
    }

    $scope.registerActivation = function() {
          var activationKey = $('#activation_key').val()
          var activationUsername = $('#activation_username').val()
          
          if(activationKey.length<4) {
               $.toast({
                    heading: 'UYARI!',
                    text: 'Aktivasyon Kodunu girin!',
                    icon: 'warning',
                    loader: false,
                    position: 'mid-center',
                    stack: false
               });
          }
          else {
               $http.post('/api/activation/email', {
                    activationKey: activationKey,
                    userName: activationUsername
               }).then(function (response) {
                    response = response.data
                    if(response.state) {
                         $('.modal').modal('hide')
                         $('#loginSubmitButton').waitMe('hide');
                         $('[name="activationForm"]')[0].reset()
                         
                         $.toast({
                              heading: 'BAŞARILI!',
                              text: 'Aktivasyon işlemi tamamlandı!',
                              icon: 'success',
                              loader: false,
                              position: 'top-center',
                              stack: false
                         });
                         
                         $('.modal.login').modal('show')
                    }
                    else if(response.code=="invalidKey") {
                         $.toast({
                              heading: 'HATA!',
                              text: response.errorMessage,
                              icon: 'error',
                              loader: false,
                              position: 'mid-center',
                              stack: false
                         });
                    }
                    else if(response.code=='failedact') {
                         $.toast({
                              heading: 'HATA!',
                              text: response.errorMessage,
                              icon: 'error',
                              loader: false,
                              position: 'mid-center',
                              stack: false
                         });
                    }
                    else {
                         $.toast({
                              heading: 'HATA!',
                              text: 'Beklenmedik bir durum oluştu. Lütfen tekrar deneyin',
                              icon: 'error',
                              loader: false,
                              position: 'mid-center',
                              stack: false
                         });
                    }
                    $scope.loading = false
               }).catch(function (err) {
                    console.error(err)
               })
          }
     }

     $scope.pageSkin = function() {
          var path = $location.path()
          
          if(path=='/' || path=='/index')
          $http.get('/api/advertisement/pageskins').then(function (response) {
               response = response.data
               var adsLength = _.size(response.pageskins)
               var index = (adsLength>1) ? _.random(adsLength-1) : 0
               response.pageskin = response.pageskins[index]
               console.log(response.pageskin)
               if(response.state) {
                    var width = $('body').width();
                    if (width>=576) {
                         $("body").addClass("coverup").css("background-image",`url(http://cdn.sinematurk.com/media/${response.pageskin.ads_banner})`);
                         $(".padder").after(`<a class="coverup" href="${response.pageskin.url}" target="_blank" style="z-index:0;width:100%;height:1341px;position:fixed;left:0px;top:0px;"></a>`);
                         $(".padder.pstop").css("height","120px")
                    }
                    else {
                         $("body").removeClass("coverup").css("background-image", "none");
                         $(".padder.pstop").css("height", "0px");
                    }
               }
          }).catch(function (err) {
               console.error(err)
          })
     }

     $scope.init = function() {
          $scope.pageSkin()
     }

     $scope.init()

    /* $scope.init = function() {
          $http.get('/api/appCommon').then(function(response) {
               var response = response.data
               console.log(response.user_id)
          })
          .catch(function(err) {
               console.log(err)
          })
    }

    $scope.init() */
}