1function ci_addLog(typeAction, type, communicationData){ 2 3 let url = ci_addLog_url; 4 5 let data = { 6 "typeAction": typeAction, 7 "type": type, 8 "communicationData": communicationData, 9 }; 10 11 $.ajax({ 12 type: 'POST', 13 url: url, 14 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 15 data: data, 16 dataType: 'json', 17 success: function(response) { 18 19 } 20 }); 21} 22 23function ci_gigyaLiseners(isSsoInstance){ 24 console.log('gigya EventHandlers') 25 26 if(typeof isSsoInstance === "undefined"){ 27 isSsoInstance = 0; 28 } 29 30 if(isSsoInstance == 1){ 31 32 gigya.accounts.addEventHandlers({ 33 onLogin: function() { 34 gigya.sso.continue(); 35 } 36 }) 37 38 gigya.hasSession().then(function(sessionExist) { 39 if(sessionExist) { 40 gigya.sso.continue(); 41 } else { 42 showLogin(); 43 } 44 }) 45 46 } else { 47 48 gigya.accounts.addEventHandlers({ 49 onLogin: function(event) { 50 51 $("#nav-user-ci .fa-spinner").removeClass('hidden'); 52 $(".nav-main-useractions .login-btn .fa-spinner, .mobile-menu-useractions .login-btn .fa-spinner").removeClass('hidden'); 53 54 var uid = event.UID 55 56 gigya.accounts.getJWT({ 57 callback: function(response){ 58 if (response.errorCode === 0) {//uspesno je ulogovan! 59 60 var jwtToken = response.id_token; 61 62 localStorage.setItem("ci_jwtToken", jwtToken); 63 64 let userInfo = ci_callOnLogin(uid, jwtToken) 65 66 nbshopJS.CustomEventTrigger('LoginEvent', { userInfo: userInfo, event_id: generateEventId() }); 67 68 } else { 69 ci_addLog('gigya.accounts.getJWT', 'response', JSON.stringify(response)); 70 console.log("Došlo je do pogreške pri preuzimanju JWT tokena: " + response.errorMessage); 71 } 72 73 74 } 75 }); 76 nbshopJS.CustomEventTrigger('loginUserNew'); 77 //nbshopJS.CustomEventTrigger('registerUserSuccess'); 78 } 79 }); 80 81 82 83 84 if(nb_active_page_url.indexOf('sbapply=1') > -1){ 85 gigya.hasSession().then(function(sessionExist) { 86 if(sessionExist) { 87 gigya.accounts.getAccountInfo({ callback: ci_showSportAndBonusModal }); 88 } 89 }) 90 } 91 92 function ci_showSportAndBonusModal(response){ 93 var prefix = ci_prefix; 94 95 // var show = true; 96 var show = false; 97 98 if(response.hasOwnProperty('errorCode') && response.errorCode == 0) { 99 100 if(!response.hasOwnProperty('data')){ 101 show = true; 102 } else { 103 if(response.data.hasOwnProperty('employee') && response.data.employee.hasOwnProperty('isCompanyEmployee') && response.data.employee.isCompanyEmployee == 1){ 104 show = false; 105 } else { 106 if(!response.data.hasOwnProperty('loyalty')){ 107 show = true; 108 } else { 109 if(!response.data.loyalty.hasOwnProperty('sportAndBonus')){ 110 show = true; 111 } else { 112 if(!response.data.loyalty.sportAndBonus.hasOwnProperty('cardNumber')){ 113 show = true; 114 } else { 115 if(response.data.loyalty.sportAndBonus.cardNumber == ''){ 116 show = true; 117 } 118 } 119 } 120 } 121 } 122 } 123 124 } 125 if(show){ 126 ciShowScreenSet.gigyaApplyForLoyaltyCardScreen(prefix+'-ProfileUpdate', 'gigya-apply-for-loyalty-card-screen', 'ci_modal', '', 'yes'); 127 } 128 } 129 } 130 131} 132 133function ci_login(e){ 134 //$('#ci_modal_1').modal('show'); 135 var ssName = ci_register_ssName; 136 gigya.apiKey = ci_centralApi; 137 138 ciShowScreenSet.gigyaLoginScreen(ssName, 'gigya-login-screen', 'ci_modal'); 139 140 141 return false;
142} 143 144function ci_register(e){ 145 e.preventDefault(); 146 var ssName = ci_register_ssName; 147 ciShowScreenSet.gigyaRegisterScreen(ssName, 'gigya-register-screen', 'ci_modal'); 148 nbshopJS.CustomEventTrigger('openCIRegistrationModal'); 149} 150 151function ci_logout(e){ 152 e.preventDefault(); 153 gigya.accounts.logout({callback: ci_logoutCallback}); 154 return false; 155} 156 157function ci_logoutAjax(){ 158 $.ajax({ 159 type: "POST", 160 url: ci_logoutAjax_url, //definisano u linku 161 data: { 162 task: 'ci_logout_ajax', //definisano u linku 163 ajax:'yes' 164 }, 165 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 166 dataType: 'json', 167 success: function(ret) { 168 location.reload(); 169 } 170 }); 171} 172 173function ci_removeMarkedForDeletion(){ 174 var params = { 175 data: { 176 deletion: { 177 isMarkedForDeletion: false 178 } 179 } 180 } 181 182 params.callback = function (response){ 183 ci_addLog('ci_removeMarkedForDeletion - response', 'response', JSON.stringify(response)); 184 ci_updateUserData('remove_deletion'); 185 location.reload(); 186 } 187 188 ci_addLog('ci_removeMarkedForDeletion - request', 'request', JSON.stringify(params)); 189 190 gigya.accounts.setAccountInfo(params); 191} 192 193function ci_updateUserData(type){ 194 gigya.accounts.getAccountInfo({ 195 callback: function (response){ 196 if(response.errorCode != 0){ 197 ci_addLog('ci_updateUserData ['+type+']', 'response', JSON.stringify(response)); 198 } 199 ci_callOnLogin(response.UID, '', type); 200 } 201 }); 202} 203 204function ci_callOnLogin(uid, jwtToken, type){ 205 206 let loader = $('#customer_identity_layout_modal .screen-set-loader'); 207 208 var data = { 209 task: 'ci_onlogin_ajax', 210 ajax: 'yes', 211 uid: uid, 212 jwtToken: jwtToken, 213 type: type 214 }; 215 216 let userInfo = false; 217 218 var url = ci_regUrl; 219 $.ajax({ 220 type: 'POST', 221 url: url, 222 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 223 data: data, 224 dataType: 'json', 225 async: false, 226 success: function(response) { 227 228 userInfo = { 229 email: response.email, 230 firstName: response.firstname, 231 lastName: response.lastname 232 } 233 234 if(jwtToken != ''){ 235 // $("#nav-user-ci").html(response.html); 236 localStorage.removeItem('ci_initOfLogin'); 237 238 var ci_initOfRegister = localStorage.getItem('ci_initOfRegister') 239 240 if(typeof ci_initOfRegister !== "undefined" && ci_initOfRegister != null && ci_initOfRegister != ""){ 241 242 if(ci_initOfRegister.indexOf('?') > -1){ 243 redirectUrl = ci_initOfRegister+'&sbapply=1'; 244 } else { 245 redirectUrl = ci_initOfRegister+'?sbapply=1'; 246 } 247 248 var evt = new CustomEvent('registerUserSuccess', { detail: '' || true }); 249 window.dispatchEvent(evt); 250 251 nbshopJS.CustomEventTrigger('RegisterEvent', { userInfo: userInfo, event_id: generateEventId() }); 252 253 localStorage.removeItem('ci_initOfRegister'); 254 location.href = redirectUrl; 255 } else { 256 location.reload(); 257 } 258 259 } 260 261 var ssName = ci_profileUpdate_ssName; 262 ciShowScreenSet.gigyaSubscribeWithEmailForLoggedinUserScreen(ssName, 'gigya-subscribe-with-email-for-loggedin-user', 'newsletter-ci', '', 'yes') 263 264 }, 265 error: function (xhr, ajaxOptions, thrownError) { 266 ci_addLog('ci_callOnLogin', 'response', JSON.stringify(xhr)); 267 } 268 }); 269 270 return userInfo; 271 272} 273 274function ci_showApplyForSportAndBonus(){ 275 var prefix = ci_prefix; 276 ciShowScreenSet.gigyaApplyForLoyaltyCardScreen(prefix+'-ProfileUpdate', 'gigya-apply-for-loyalty-card-screen', 'ci_modal', '', 'yes'); 277} 278 279function ci_showSS(ssName, ssId, id, redirectUrl, ssCiVrfy) { 280 281 var ssFunction = { 282 'gigya-communication-screen': function () { 283 ciShowScreenSet.gigyaCommunicationScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 284 }, 285 'gigya-my-family-screen': function () { 286 ciShowScreenSet.gigyaMyFamilyScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 287 }, 288 'gigya-update-profile-screen': function () { 289 ciShowScreenSet.gigyaUpdateProfileScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 290 }, 291 'gigya-my-favorites-screen': function () { 292 ciShowScreenSet.gigyaMyFavoritesScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 293 }, 294 'gigya-change-password-screen': function () { 295 ciShowScreenSet.gigyaChangePasswordScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 296 }, 297 'gigya-register-screen': function () { 298 ciShowScreenSet.gigyaRegisterScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 299 }, 300 'gigya-apply-for-loyalty-card-screen': function () { 301 ciShowScreenSet.gigyaApplyForLoyaltyCardScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 302 }, 303 'gigya-change-email-screen': function () { 304 ciShowScreenSet.gigyaChangeEmailScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 305 }, 306 'gigya-login-screen': function () { 307 ciShowScreenSet.gigyaLoginScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 308 }, 309 'gigya-reset-password-screen': function () { 310 ciShowScreenSet.gigyaResetPasswordScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 311 }, 312 'gigya-request-deletion-screen': function () {
313 ciShowScreenSet.gigyaRequestDeletionScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 314 }, 315 'gigya-subscribe-with-email-screen': function () { 316 ciShowScreenSet.gigyaSubscribeWithEmailScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 317 }, 318 'gigya-subscribe-with-email-for-loggedin-user': function () { 319 ciShowScreenSet.gigyaSubscribeWithEmailForLoggedinUserScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 320 }, 321 'gigya-verification-link-expired-screen' : function () { 322 ciShowScreenSet.gigyaVerificationLinkExpiredScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 323 }, 324 'gigya-forgot-password-screen' : function () { 325 ciShowScreenSet.gigyaForgotPasswordScreen(ssName, ssId, id, redirectUrl, ssCiVrfy); 326 }, 327 328 }; 329 330 return ssFunction[ssId](); 331} 332 333function ci_showScreenSet(data) { 334 335 nbshopJS.CustomEventTrigger(data.startScreen); 336 337 gigya.accounts.showScreenSet(data); 338 339} 340 341function ci_publicVerification(verify) { 342 if(verify == 'yes'){ 343 344 var params = { 345 callback: function (response){ 346 var ci_jwtToken = localStorage.getItem('ci_jwtToken'); 347 348 if(!response.hasOwnProperty('errorCode') || response.errorCode != 0){ //2. 349 ci_logoutUser(nb_site_url); 350 } else if(ci_jwtToken == null){ 351 ci_logoutUser(nb_site_url); 352 } 353 } 354 } 355 356 gigya.accounts.session.verify(params); 357 358 } 359} 360 361function ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, onBeforeScreenLoad, onAfterScreenLoad, onAfterSubmit, onError) { 362 363 if((typeof gigya == "undefined")) { 364 ci_addLog('gigya undefined', 'response', JSON.stringify(event)); 365 } 366 367 if(!containerID){ 368 containerID = 'ci-screen-sets'; 369 } 370 371 var jsSSPrefixParam = gigya.getUrlParam('ssPrefix'); 372 if(typeof jsSSPrefixParam !== "undefined" && jsSSPrefixParam != null){ 373 screenSetName = screenSetName.replace("SV-", jsSSPrefixParam+'-'); 374 } 375 let lang = ci_lang; 376 377 let data = {}; 378 data.screenSet = screenSetName; 379 data.startScreen = startScreenID; 380 data.containerID = containerID; 381 data.sessionExpiration = -2; 382 data.onError = onError; 383 data.onBeforeScreenLoad = onBeforeScreenLoad; 384 data.onAfterScreenLoad = onAfterScreenLoad; 385 data.onAfterSubmit = onAfterSubmit; 386 data.lang = lang; 387 388 if(typeof redirectUrl !== "undefined"){ 389 data.redirectURL = redirectUrl; 390 } 391 392 return data; 393} 394 395function CiShowScreenSet() {}; 396 397var ciShowScreenSet = new CiShowScreenSet(); 398 399CiShowScreenSet.prototype.gigyaCommunicationScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 400 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, ci_isMarkedForDeletion, ci_onAfterScreenLoadCommunication, ci_onAfterSubmitNotification, ci_handleSSErrors); 401 ci_publicVerification(verify); 402 ci_showScreenSet(data); 403} 404 405CiShowScreenSet.prototype.gigyaMyFamilyScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 406 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, ci_isMarkedForDeletion, ci_onAfterScreenLoadMyFamilyScreen, ci_onAfterMyFamily, ci_handleSSErrors); 407 ci_publicVerification(verify); 408 ci_showScreenSet(data); 409} 410 411CiShowScreenSet.prototype.gigyaUpdateProfileScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 412 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, ci_isMarkedForDeletion, ci_onAfterScreenLoadProfileUpdate, ci_onAfterSubmitPersonalData, ci_handleSSErrors); 413 ci_publicVerification(verify); 414 ci_showScreenSet(data); 415} 416 417CiShowScreenSet.prototype.gigyaMyFavoritesScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 418 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, ci_isMarkedForDeletion, ci_onAfterScreenLoadMyFavorites, ci_onAfterMyInterests, ci_handleSSErrors); 419 ci_publicVerification(verify); 420 ci_showScreenSet(data); 421} 422 423CiShowScreenSet.prototype.gigyaChangePasswordScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 424 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, ci_isMarkedForDeletion, ci_onAfterScreenLoadChangePassword, ci_onAfterSubmitChangePassword, ci_handleSSErrors); 425 ci_publicVerification(verify); 426 ci_showScreenSet(data); 427} 428 429CiShowScreenSet.prototype.gigyaRegisterScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 430 localStorage.setItem('ci_initOfRegister', nb_active_page_url); 431 432 function ci_onAfterLoadRegister() {}; 433 if(containerID == 'ci_modal') { 434 ci_onAfterLoadRegister = ci_onAfterScreenLoadRegisterModal; 435 } else { 436 ci_onAfterLoadRegister = ci_onAfterScreenLoadRegister; 437 } 438 439 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, '', ci_onAfterLoadRegister, ci_handleVerificationSent, ci_handleRegisterErrors); 440 ci_publicVerification(verify); 441 ci_showScreenSet(data); 442} 443 444CiShowScreenSet.prototype.gigyaApplyForLoyaltyCardScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 445 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, '', ci_onAfterScreenLoadSBModal, ci_onAfterSubmitLoyalty, ci_handleSSErrors); 446 nbshopJS.CustomEventTrigger('openCILoyaltyModal'); 447 ci_publicVerification(verify); 448 ci_showScreenSet(data); 449} 450 451CiShowScreenSet.prototype.gigyaChangeEmailScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 452 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, '', ci_onAfterScreenLoadChangeEmail, ci_onAfterChangeEmail, ci_handleSSErrors); 453 ci_publicVerification(verify); 454 ci_showScreenSet(data); 455} 456 457CiShowScreenSet.prototype.gigyaLoginScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 458 if(containerID == 'ci_modal') { 459 ci_onAfterScreenLogin = ci_onAfterScreenLoadLoginModal; 460 } else { 461 ci_onAfterScreenLogin = ci_onAfterScreenLoadLogin; 462 } 463 464 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, '', ci_onAfterScreenLogin, ci_onAfterSubmitLoginModal, ci_handleSSErrors); 465 466 ci_publicVerification(verify); 467 ci_showScreenSet(data); 468} 469 470CiShowScreenSet.prototype.gigyaResetPasswordScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 471 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, '', ci_onAfterScreenLoadResetPassword, ci_onAfterSubmitForgotPassword, ci_handleSSErrors); 472 ci_publicVerification(verify); 473 ci_showScreenSet(data); 474} 475
476CiShowScreenSet.prototype.gigyaRequestDeletionScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 477 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, '', ci_onAfterScreenLoadRequestDeletion, ci_onAfterSubmitDeletion, ci_handleSSErrors); 478 ci_publicVerification(verify); 479 ci_showScreenSet(data); 480} 481 482CiShowScreenSet.prototype.gigyaSubscribeWithEmailScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 483 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, '', ci_onAfterScreenLoadNewsletter, ci_newsletterGTMEvent, ci_handleSSErrors); 484 ci_publicVerification(verify); 485 ci_showScreenSet(data); 486} 487 488CiShowScreenSet.prototype.gigyaSubscribeWithEmailForLoggedinUserScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 489 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, ci_isMarkedForDeletion, ci_onAfterScreenLoadNewsletter, '', ci_handleSSErrors); 490 ci_publicVerification(verify); 491 ci_showScreenSet(data); 492} 493 494CiShowScreenSet.prototype.gigyaVerificationLinkExpiredScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 495 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, '', ci_onAfterScreenLoadVerificationLinkExpired, '', ci_handleSSErrors); 496 ci_publicVerification(verify); 497 ci_showScreenSet(data); 498} 499 500CiShowScreenSet.prototype.gigyaForgotPasswordScreen = function(screenSetName, startScreenID, containerID, redirectUrl, verify) { 501 let data = ci_setScreenSetData(screenSetName, startScreenID, containerID, redirectUrl, verify, '', ci_onAfterScreenLoadForgotPassword, '', ci_handleSSErrors); 502 ci_publicVerification(verify); 503 ci_showScreenSet(data); 504} 505 506 507//onAfterLoad funkcije 508 509function ci_onAfterLoadForAllScreen() { 510 changeH1ElementsInSS(); 511 ci_loader(); 512} 513 514function ci_onAfterScreenLoadCommunication() { 515 ci_showContentOnIconHover(); 516 ci_revokeConsent(); 517 ci_addActiveClassOnClick(); 518 ci_loadAllImages('icon', ci_imagePath); 519 ci_onAfterLoadForAllScreen(); 520} 521 522function ci_onAfterScreenLoadMyFamilyScreen() { 523 ci_initYearPickerMyFamily(); 524 ci_turnOffAutocomplete(); 525 ci_myFamilyBirthYear(); 526 removeFamilyMember(); 527 ci_onAfterLoadForAllScreen(); 528} 529 530function ci_onAfterScreenLoadProfileUpdate() { 531 ci_addReadonlyAttribute(); 532 ci_turnOffAutocomplete(); 533 ci_showContentOnIconHover(); 534 ci_hidePhoneIcon(); 535 ci_applyForSportAndBonus(); 536 ci_openSSForEmailInModal(ci_prefix); 537 ci_onAfterLoadForAllScreen(); 538 if(!$('body').hasClass('lc-ro') && !$('body').hasClass('lc-si')) { 539 ci_userCityProfile(); 540 ci_userStreetProfile(); 541 ci_validateAddressProfile(); 542 } 543 ci_userRegionProfile(); 544 ci_userCountryProfile(); 545 ci_smartFormInit(); 546} 547 548function ci_onAfterScreenLoadMyFavorites() { 549 ci_addActiveClassOnClick(); 550 ci_loadAllImages('icon', ci_imagePath); 551 ci_onAfterLoadForAllScreen(); 552} 553 554function ci_onAfterScreenLoadChangePassword() { 555 ci_forbidPasswordCopying(); 556 ci_disablePasteOnPasswordInput(); 557 ci_loadAllImages('icon', ci_imagePath); 558 ci_showPassword(); 559 ci_passwordStrength(); 560 ci_showPasswordBubble(); 561 ci_closeFormErrorAlert(); 562 ci_onAfterLoadForAllScreen(); 563} 564 565function ci_onAfterScreenLoadRegister() { 566 ci_forbidPasswordCopying(); 567 ci_disablePasteOnPasswordInput(); 568 ci_loadAllImages('logo', ci_imagePath, '_3'); 569 ci_loadAllImages('icon', ci_imagePath); 570 ci_showContentOnIconHover(); 571 ci_showPassword(); 572 ci_closeFormErrorAlert(); 573 ci_initAllDateTimePickers(); 574 ci_passwordStrength(); 575 ci_showPasswordBubble(); 576 ci_changeSBlinkOnRegistrationSS(); 577 ci_checkAllCheckboxes(); 578 ci_resendRegActivationLinkAlert(); 579 ci_hideSocialLoginForApp(); 580 ci_loginLinkInRegistration(); 581 ci_onAfterLoadForAllScreen(); 582} 583 584function ci_onAfterScreenLoadRegisterModal() { 585 ci_onAfterScreenLoadRegister(); 586 ci_showModal(); 587} 588 589function ci_onAfterScreenLoadLoginModal() { 590 ci_onAfterScreenLoadLogin(); 591 ci_showModal(); 592} 593 594function ci_onAfterScreenLoadForgotPassword() { 595 ci_showPassword(); 596 ci_forgotPasswordClose(); 597 ci_disablePasteOnPasswordInput(); 598 ci_onAfterLoadForAllScreen(); 599} 600 601function ci_onAfterSubmitLoginModal() { 602 let loader = $('#customer_identity_layout_modal:has(.gigya-login-container) .screen-set-loader'); 603 loader.removeClass('hidden'); 604 605 606 let timer = setInterval(function(){ 607 let error = $('#gigya-login-form .gigya-error-display-active, #gigya-login-form .gigya-error-msg-active'); 608 609 if(error.length){ 610 loader.addClass('hidden'); 611 clearInterval(timer); 612 } 613 614 if($('customer_identity_layout_modal').find('.gigya-login-container').length === 0) { 615 $('#customer_identity_layout_modal .screen-set-loader').addClass('hidden'); 616 } 617 618 }, 500); 619 620} 621 622function ci_onAfterScreenLoadSBModal() { 623 updateAppyForSportAndBonusFlowStatus(); 624 ci_showModal(); 625 ci_loadAllImages('image',ci_imagePath, '_1', "jpg"); 626 ci_createInputFields(6,'',true); 627 ci_createInputFields(6,'',false); 628 ci_loadAllImages('logo', ci_imagePath, '_3'); 629 ci_resendVerificationLinkForSBAlert(); 630 ci_closeFormErrorAlert(); 631 ci_closeSuccesSBModal(); 632 ci_onAfterLoadForAllScreen(); 633} 634 635function ci_onAfterScreenLoadChangeEmail() { 636 ci_createInputFields(6, '.gigya-verify-new-email-container', true); 637 ci_createInputFields(6, '.gigya-verify-new-email-container', false); 638 ci_closeFormErrorAlert(); 639 ci_resendEmailVerificationAlert(); 640 ci_showModal(); 641 ci_onAfterLoadForAllScreen(); 642} 643 644function ci_onAfterScreenLoadLogin() { 645 ci_loadAllImages('logo', ci_imagePath, '_3'); 646 ci_loadAllImages('icon', ci_imagePath); 647 ci_forbidPasswordCopying(); 648 ci_disablePasteOnPasswordInput(); 649 ci_showContentOnIconHover(); 650 ci_checkAllCheckboxes(); 651 ci_initAllDateTimePickers(); 652 ci_showPassword(); 653 ci_closeFormErrorAlert(); 654 ci_loadRegUrl(ci_defaultSiteUrl, ci_registerPermalink); 655 ci_forgotPasswordClose(); 656 ci_turnOffAutocomplete(); 657 ci_hideSocialLoginForApp(); 658 ci_onAfterLoadForAllScreen(); 659} 660 661function ci_onAfterScreenLoadResetPassword() { 662 ci_loadAllImages('icon', ci_imagePath); 663 ci_forbidPasswordCopying(); 664 ci_disablePasteOnPasswordInput(); 665 ci_closeFormErrorAlert(); 666 ci_showPassword(); 667 ci_passwordStrength(); 668 ci_showPasswordBubble(); 669 var isAppParamRequest = gigya.getUrlParam('isapp'); 670 ci_closeWindowOnClickButton(isAppParamRequest); 671 ci_onAfterLoadForAllScreen(); 672} 673
674function ci_onAfterScreenLoadRequestDeletion() { 675 ci_showModal(); 676 ci_onAfterLoadForAllScreen(); 677} 678 679function ci_onAfterScreenLoadNewsletter() { 680 ci_onAfterLoadForAllScreen(); 681 if(typeof modelNBAccessibility != "undefined") { 682 modelNBAccessibility.checkWithKeyboard(); 683 } 684} 685 686function ci_onAfterScreenLoadVerificationLinkExpired() { 687 ci_loadAllImages('logo', ci_imagePath, '_3'); 688 ci_verificationEmailExpired(); 689 ci_onAfterLoadForAllScreen(); 690} 691 692//onAfterSubmit funkcije 693 694function ci_onAfterMyFamily(event){ 695 if(event.response.errorCode == 0){ 696 ci_createAlert('#ci-alert-successful-saved-changes', '#alert-successful-saved-changes'); 697 ci_updateUserData('myfamily'); 698 } 699} 700 701function ci_onAfterMyInterests(event){ 702 if(event.response.errorCode == 0){ 703 ci_createAlert('#ci-alert-successful-saved-changes', '#alert-successful-saved-changes'); 704 ci_updateUserData('myinterests'); 705 } 706} 707 708function ci_onAfterSubmitDeletion(event){ 709 if(event.screen == "gigya-request-deletion-confirmation-screen" && event.response.errorCode == 0){ 710 ci_updateUserData('deletion'); 711 location.reload(); 712 } 713} 714 715function ci_onAfterSubmitPersonalData(event){ 716 if(event.response.errorCode == 0){ 717 ci_createAlert('#ci-alert-successful-saved-changes', '#alert-successful-saved-changes'); 718 ci_callOnLogin(event.response.UID, '', 'save_personal_data') 719 } 720} 721 722function ci_onAfterSubmitNotification(event){ 723 if(event.response.errorCode == 0){ 724 ci_createAlert('#ci-alert-successful-saved-changes', '#alert-successful-saved-changes'); 725 ci_updateUserData('notification'); 726 } 727} 728 729function ci_handleVerificationSent(event){ 730 if(event.screen == "gigya-complete-registration-screen" && event.response.errorCode != 0){ 731 nbshopJS.CustomEventTrigger('CIRegistrationSuccess'); 732 } 733} 734 735function ci_onAfterChangeEmail(event){ 736 737 if(event.screen == 'gigya-email-code-verification-screen' && event.response.errorCode == 0){ 738 739 gigya.accounts.getAccountInfo({ 740 callback: function (response){ 741 742 ci_callOnLogin(response.UID, '', 'change_email'); 743 744 var prefix = ci_prefix; 745 ciShowScreenSet.gigyaUpdateProfileScreen(prefix+'-ProfileUpdate', 'gigya-update-profile-screen', 'ci-profile-personal-data', '', 'yes') 746 } 747 }); 748 749 $ci_modal = $('#customer_identity_layout_modal'); 750 $ci_modal.modal('hide'); 751 } 752 753} 754 755function ci_onAfterSubmitForgotPassword(event){ 756 if(event.response.errorCode == 0){ 757 ci_createAlert('#ci-alert-password-change-no-login', '#alert-password-change-no-login'); 758 $(".login-btn").trigger("click"); 759 ci_addLoginButtonAfterPasswordChange(); 760 } 761} 762 763function ci_onAfterSubmitLoyalty(event){ 764 765 if(event.screen == 'gigya-apply-for-loyalty-card-screen'){ 766 nbshopJS.CustomEventTrigger('openCISmsCodeModal'); 767 console.log('openCISmsCodeModal') 768 } 769 770 if(event.screen == 'gigya-apply-for-loyalty-card-verification-screen'){ 771 772 773 774 gigya.accounts.getAccountInfo({ 775 callback: function (response){ 776 var uid = response.UID; 777 778 var phone = ''; 779 if(typeof response.phoneNumber !== 'undefined'){ 780 phone = response.phoneNumber; 781 } 782 783 var email = ''; 784 if(typeof response.profile.email !== 'undefined'){ 785 email = response.profile.email; 786 } 787 788 var data = { 789 task: 'ci_loyalty_ajax', 790 ajax: 'yes', 791 uid: uid, 792 phone: phone, 793 email: email 794 }; 795 796 var url = ci_profileUrl; 797 var urlLoyalty = ci_profileUrlLoyalty; 798 $.ajax({ 799 type: 'POST', 800 url: urlLoyalty, 801 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 802 data: data, 803 dataType: 'json', 804 success: function(response) { 805 ci_callOnLogin(uid, ''); 806 807 var prefix = ci_prefix; 808 ciShowScreenSet.gigyaUpdateProfileScreen(prefix+'-ProfileUpdate', 'gigya-update-profile-screen', 'ci-profile-personal-data', '', 'yes') 809 810 if(response.flag) { 811 nbshopJS.CustomEventTrigger('endCIPhoneRegister'); 812 console.log('endCIPhoneRegister') 813 } 814 }, 815 error: function (xhr, ajaxOptions, thrownError) { 816 ci_addLog(event.screen, 'response', JSON.stringify(event)); 817 } 818 }); 819 } 820 }); 821 //nbshopJS.CustomEventTrigger('openCILoyaltyModal'); 822 } 823 824 ci_getStyleForModal(); 825 826} 827 828function ci_handleRegisterErrors(event){ 829 830 if(event.screen == "gigya-register-screen" && event.response.errorCode != 0){ 831 console.log(event); 832 } 833} 834 835function ci_showDeleteOptions(response){ 836 var prefix = ci_prefix; 837 838 if(response.hasOwnProperty('data') && response.data.hasOwnProperty('deleti
838on') 839 && response.data.deletion.hasOwnProperty('isMarkedForDeletion') 840 && response.data.deletion.isMarkedForDeletion){ 841 842 $('.profile .ci-header-alert').removeClass('hidden'); 843 $('.gigya-communication-container .js-delete-user').remove(); 844 } else { 845 $(".gigya-communication-container .js-delete-user").each(function(){ 846 847 $(this).on('click', function (e){ 848 e.preventDefault(); 849 ciShowScreenSet.gigyaRequestDeletionScreen(prefix+'-ProfileUpdate', 'gigya-request-deletion-screen', 'ci_modal', '', 'yes'); 850 }); 851 852 }); 853 } 854 855} 856 857function ci_isMarkedForDeletion(){ 858 gigya.accounts.getAccountInfo({ callback: ci_showDeleteOptions }); 859} 860 861function ci_onAfterSubmitChangePassword(event){ 862 var prefix = ci_prefix; 863 if(event.response.errorCode == 0){ 864 ci_succesfullPasswordChange(); 865 } 866} 867 868function ci_newsletterGTMEvent(){ 869 var evt = new CustomEvent('newsletter_login_success', { detail: '' || true }); 870 window.dispatchEvent(evt); 871} 872 873function ci_applyForSportAndBonus(){ 874 var prefix = ci_prefix; 875 876 $(".js-apply-for-sportandbonus").each(function(){ 877 $(this).on('click', function (e){ 878 e.preventDefault(); 879 ciShowScreenSet.gigyaApplyForLoyaltyCardScreen(prefix+'-ProfileUpdate', 'gigya-apply-for-loyalty-card-screen', 'ci_modal', '', 'yes'); 880 }); 881 }); 882} 883 884function selectAndCopy(){ 885 var textToCopy = $('#text-to-copy').text(); 886 var tempTextarea = $('<textarea>'); 887 $('body').append(tempTextarea); 888 tempTextarea.val(textToCopy).select(); 889 document.execCommand('copy'); 890 tempTextarea.remove(); 891 ci_createAlert("#ci-alert-copy-ticket-number", "#alert-copy-ticket-number"); 892} 893 894function ci_addLog(typeAction, type, communicationData){ 895 896 let url = ci_addLog_url; 897 898 let data = { 899 "typeAction": typeAction, 900 "type": type, 901 "communicationData": communicationData, 902 }; 903 904 $.ajax({ 905 type: 'POST', 906 url: url, 907 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 908 data: data, 909 dataType: 'json', 910 success: function(response) { 911 912 } 913 }); 914} 915 916function ci_handleSSErrors(event){ 917 ci_addLog(event.response.info.screen, 'response', JSON.stringify(event)); 918} 919 920function ci_showModal() { 921 $ci_modal = $('#customer_identity_layout_modal'); 922 $ci_modal.modal('show'); 923 ci_closeModal(); 924 ci_getStyleForModal(); 925} 926 927function ci_logoutUser(redirectUrl){ 928 $("#ci-logout-button").trigger("click", function (){ 929 if(typeof redirectUrl !== "undefined" && redirectUrl != ""){ 930 // window.location.href = redirectUrl; 931 } 932 }); 933} 934 935function ci_verificationEmailExpired(){ 936 var prefix = ci_prefix; 937 $(".js-verification-login-btn").each(function(){ 938 $(this).on('click', function (e){ 939 e.preventDefault(); 940 $(".login-btn").trigger("click"); 941 }); 942 }); 943} 944 945function ci_hideSocialLoginForApp() { 946 var isAppParamRequest = gigya.getUrlParam('isapp'); 947 948 if(Number(isAppParamRequest) > 0){ 949 $('.gigya-social-devider').remove(); 950 $('.gigya-composite-control-social-login .gigya-social-login').remove(); 951 } 952} 953 954const _logut = 'ci_logout_ajax'; 955const _login = 'ci_login_ajax'; 956function showScreenSet(screenSetName) { 957 gigya.accounts.showScreenSet({'screenSet': screenSetName}); 958} 959 960function nb_dump(string,color){ 961 let style ; 962 963 if(!color){ 964 style = "color: white;"; 965 }else{ 966 style = "color: white; background: "+color+";"; 967 } 968 969 if(color){ 970 console.log("%c"+string+" ",style); 971 972 } 973 974} 975 976/*Prikazivanje/sakrivanje loadera na SS-ovima*/ 977function ci_loader() { 978 979 setTimeout(function (){ 980 $('.ci-main-wrapper').addClass('ci-loaded'); 981 }, 500) 982 983 let loader = $('.ci-main-wrapper:not(.no-remove) .screen-set-loader'); 984 loader.removeClass('hidden'); 985 986 if($('.ci-wrapper').find('.gigya-screen').length !== 0) { 987 loader.addClass('hidden'); 988 } 989} 990 991function ci_changeSBlinkOnRegistrationSS() { 992 993 if(typeof nb_site_url_with_country_lang !== "undefined") { 994 var siteUrl = nb_site_url_with_country_lang; 995 } 996 997 let link = $('.gigya-registration-container .lnk-apply-for-sp
997ort-and-bonus'); 998 999 if(link.length) { 1000 let linkHrefSplited = link.attr("href").split("/"); 1001 let pageLink = linkHrefSplited[3]; 1002 1003 let newLink = `${siteUrl}/${pageLink}`; 1004 link.attr("href", newLink); 1005 } 1006} 1007 1008function ci_mobileHeaderLoader() { 1009 let loginItem = $('.header .login-btn'); 1010 1011 if(loginItem.find('.fa-spinner').length === 0) { 1012 $('<i class="icon fa fa-spinner hidden" aria-hidden="true"></i>').appendTo(loginItem); 1013 } 1014} 1015 1016function ci_addLoginButtonAfterPasswordChange() { 1017 1018 let loginBtnText = $('.ci-wrapper').data("loginBtnText"); 1019 $('.gigya-reset-password-container .gigya-reset-password-form .gigya-layout-row').addClass('hidden'); 1020 $('.gigya-reset-password-container .gigya-reset-password-form').append($(`<button class="btn ci-login-btn gigya-input-submit">${loginBtnText}</button>`)); 1021 1022 $('.ci-login-btn').click(function() { 1023 $(".login-btn").trigger("click"); 1024 }) 1025} 1026 1027function ci_loadRegUrl(defaultSiteUrl, _ci_register){ 1028 1029 // let jsSSRegUrl = gigya.getUrlParam('ssRegUrl'); 1030 // if(typeof jsSSRegUrl == "undefined" || jsSSRegUrl == null){ 1031 // jsSSRegUrl = defaultSiteUrl+'/'+_ci_register; 1032 // } 1033 1034 var ssName = ci_register_ssName; 1035 1036 $(".lnk-register").on('click', function (e){ 1037 e.preventDefault(); 1038 // window.location.href = jsSSRegUrl; 1039 gigya.apiKey = ci_themeApi; 1040 ciShowScreenSet.gigyaRegisterScreen(ssName, 'gigya-register-screen', 'ci_modal'); 1041 }); 1042 1043} 1044 1045function ci_addTableClass() { 1046 let tables = $('.ci-page table'); 1047 1048 tables.each(function () { 1049 if(!$(this).hasClass('table')) { 1050 $(this).addClass('table'); 1051 } 1052 }) 1053 1054} 1055 1056function ci_resendEmailVerificationAlert() { 1057 let resendVerificationLinkForEmail = $('.gigya-verify-new-email-container .lnk-resend-verification-code a'); 1058 1059 resendVerificationLinkForEmail.click(function () { 1060 ci_createAlert("#ci-alert-resend-verification-email-change", "#alert-resend-verification-email-change"); 1061 }) 1062} 1063 1064function ci_resendRegActivationLinkAlert() { 1065 let resendRegActivationLink = $('.gigya-verification-sent-container .lnk-resend-verification .gigya-input-submit'); 1066 1067 resendRegActivationLink.click(function () { 1068 ci_createAlert("#ci-alert-resend-verification-email-registration", "#alert-resend-verification-email-registration") 1069 }) 1070} 1071 1072function ci_resendVerificationLinkForSBAlert() { 1073 let resendVerificationLinkForSB = $('.gigya-verify-sportandbonus-application-container .gigya-composite-control-link a'); 1074 1075 resendVerificationLinkForSB.click(function () { 1076 ci_createAlert("#ci-alert-resend-verification-code-sb", "#alert-resend-verification-code-sb") 1077 }) 1078} 1079 1080function ci_closeWindowOnClickButton(isApp) { 1081 let button = $('.ci-wrapper .gigya-forgot-password-sent-containter .js-forgot-password-ok-btn'); 1082 1083 button.click(function () { 1084 if(isApp){ 1085 window.history.back(); 1086 }else{ 1087 setTimeout('window.close();',500); 1088 } 1089 1090 }) 1091} 1092 1093function ci_getStyleForModal() {
1094 let container = $('.gigya-apply-for-sportandbonus-container'); 1095 1096 $('#ci_modal').find('.gigya-screen-caption').removeClass('hidden'); 1097 $('#ci_modal').css("padding", "40px 20px 30px"); 1098 $('#ci_modal').find('.close-icon').removeClass('white-icon'); 1099 1100 if(container.find('.image-apply-for-sportandbonus').length) { 1101 container.closest('#ci_modal').find('.gigya-screen-caption').addClass('hidden'); 1102 container.closest('#ci_modal').css("padding", "0 0 25px"); 1103 container.closest('#ci_modal').find('.close-icon').addClass('white-icon'); 1104 } 1105 1106 1107} 1108 1109function ci_succesfullPasswordChange() { 1110 ci_createAlert('#ci-alert-password-change', '#alert-password-change'); 1111 1112 let inputPasswordFields = $('.gigya-change-password-container .gigya-input-password'); 1113 1114 inputPasswordFields.each(function () { 1115 $(this).val(''); 1116 $(this).attr("value", ""); 1117 }) 1118} 1119 1120function ci_addReadonlyAttribute() { 1121 let emailInput = $('.gigya-update-profile-container input[type=email]'); 1122 let dateInput = $('.gigya-update-profile-container .gigya-date-of-birth .gigya-input-text') 1123 1124 emailInput.attr("readonly", "true"); 1125 dateInput.attr("readonly", "true"); 1126} 1127 1128function ci_myFamilyBirthYear() { 1129 let birthYearInput = $('.gigya-my-family-container .js-birthYear .gigya-input-text'); 1130 let currentDate = new Date(); 1131 let currentYear = currentDate.getFullYear(); 1132 1133 birthYearInput.each(function () { 1134 // $(this).attr('maxlength', '4'); 1135 1136 $(this).keyup(function () { 1137 if($(this).val() > currentYear) { 1138 $(this).val(currentYear); 1139 } 1140 }) 1141 1142 $(this).change(function () { 1143 if($(this).val() > currentYear) { 1144 $(this).val(currentYear); 1145 } 1146 }) 1147 }) 1148} 1149 1150/*Zatvaranje modala na klik dugmeta nakon uspesne prijave na S&B*/ 1151function ci_closeSuccesSBModal() { 1152 if($('#ci_modal .gigya-success-sportandbonus-application-container .gigya-composite-control-link').length === 0) { 1153 return false; 1154 } 1155 let button = $('#ci_modal .gigya-success-sportandbonus-application-container .gigya-composite-control-link'); 1156 let closeModalIcon = button.closest('#ci_modal').find('.close-icon'); 1157 1158 button.click(function () { 1159 closeModalIcon.click(); 1160 1161 setTimeout(function(){ 1162 location.reload(); 1163 },2000); 1164 1165 }) 1166} 1167 1168/*Sakrivanje ikonice za prijavu na S&B, kada je korisnik vec prijavljen*/ 1169function ci_hidePhoneIcon() { 1170 let show = false; 1171 let phoneIcon = $('.gigya-update-profile-container .js-phone-info-icon'); 1172 if(phoneIcon.length){ 1173 gigya.accounts.getAccountInfo({ 1174 callback: function (response){ 1175 1176 if(response.data.hasOwnProperty('employee') && response.data.employee.hasOwnProperty('isCompanyEmployee') && response.data.employee.isCompanyEmployee == 1){ 1177 show = false; 1178 } else { 1179 if(!response.data.hasOwnProperty('loyalty')){ 1180 show = true; 1181 } else { 1182 if(!response.data.loyalty.hasOwnProperty('sportAndBonus')){ 1183 show = true; 1184 } else { 1185 if(!response.data.loyalty.sportAndBonus.hasOwnProperty('cardNumber')){ 1186 show = true; 1187 } else { 1188 if(response.data.loyalty.sportAndBonus.cardNumber == ''){ 1189 show = true; 1190 } 1191 } 1192 } 1193 } 1194 } 1195 if(!show){ 1196 phoneIcon.addClass('hidden'); 1197 } 1198 } 1199 }); 1200 } 1201} 1202 1203/*Zatvaranje mobilnog menija na profilu*/ 1204function ci_closeMenu() {
1205 let closeIcon = $('.profile-sidebar .close-icon'); 1206 1207 closeIcon.click(function() { 1208 closeIcon.parent().removeClass('open'); 1209 }) 1210} 1211 1212/*Aktivno stanje na check poljima*/ 1213function ci_addActiveClassOnClick() { 1214 1215 let label = document.querySelectorAll('.gigya-profile-form .gigya-composite-control-checkbox .gigya-label'); 1216 1217 label.forEach((l) => { 1218 1219 l.onclick = function() { 1220 l.classList.toggle('active'); 1221 } 1222 1223 l.setAttribute("tabindex", "0"); 1224 1225 l.removeEventListener('keydown', l._keydownHandler); 1226 l._keydownHandler = function(e) { 1227 if (e.key === 'Enter') { 1228 if (typeof preventDefault !== 'undefined' && preventDefault) { 1229 e.preventDefault(); 1230 } 1231 l.click(); 1232 e.stopPropagation(); 1233 } 1234 }; 1235 l.addEventListener('keydown', l._keydownHandler); 1236 1237 //Podesavanje inicijalnog stanja 1238 if(l.parentElement.querySelector('input').checked) { 1239 l.classList.add('active'); 1240 } 1241 }); 1242} 1243 1244/*Collaps na mobilnom meniju*/ 1245function ci_handleCollapsingProfileMenu() { 1246 let btnCollapse = $('.profile-sidebar .btn-menu-collapse'); 1247 let profileSidebar = $('.profile-sidebar'); 1248 1249 if(profileSidebar) { 1250 btnCollapse.on("click", function(){ 1251 $('.profile-sidebar .nav-vertical.nav').toggleClass('open'); 1252 }); 1253 } 1254} 1255 1256function ci_showContentOnIconHoverFunction(icon, content) { 1257 1258 let closeIcon = $('.js-btn-close'); 1259 $(icon).hover(function() { 1260 $(icon).parent().find(content).show(); 1261 $(icon).parent().find('.icon-popup-close').removeClass('hidden'); 1262 }) 1263 1264 $(icon).mouseleave(function() { 1265 setTimeout(function(){ 1266 $(content +':not(:hover)').hide(); 1267 },2000); 1268 }); 1269 1270 $(content).mouseleave(function() { 1271 $(content).hide(); 1272 }) 1273 1274 closeIcon.click(function () { 1275 $(content).hide(); 1276 }) 1277} 1278 1279/*S&B popup na hover ikonice*/ 1280function ci_showContentOnIconHover() { 1281 ci_showContentOnIconHoverFunction('.js-phone-info-icon', '.js-phone-info'); 1282 ci_showContentOnIconHoverFunction('.js-profiling-consent-icon', '.js-profiling-consent'); 1283 ci_showContentOnIconHoverFunction('.js-birthday-info-icon', '.js-birthday-info'); 1284} 1285 1286/*Kopiranje sadrzaja iz template tag-a*/ 1287function ci_getTemplateContent(idTemplate) { 1288 var temp = document.querySelector(idTemplate); 1289 var clon = temp.content.cloneNode(true); 1290 1291 return clon; 1292} 1293 1294function ci_createAlert(idTemplate, idAlert) { 1295 var templateContent = ci_getTemplateContent(idTemplate); 1296 1297 //Dodavanje kloniranog elementa u modal ili ci-wrapper 1298 if (document.body.classList.contains('modal-open') && document.querySelector('body #ci_modal ' + idAlert) === null) { 1299 document.querySelector('#ci_modal form').appendChild(templateContent); 1300 } else if(document.querySelector('body .profile-loyalty-benefits ' + idAlert) === null && idAlert === "#alert-copy-ticket-number") { 1301 document.querySelector('.profile-loyalty-benefits .ticketing-card-wrapper .row').appendChild(templateContent); 1302 } else if (document.querySelector('body .ci-wrapper ' + idAlert) === null && document.querySelector('body ' + idAlert) === null) { 1303 document.querySelector('.ci-wrapper form').appendChild(templateContent); 1304 } else { 1305 document.querySelector(idAlert).classList.remove('hidden'); 1306 } 1307 1308 setTimeout(function(){ 1309 document.querySelector('body ' + idAlert).remove(); 1310 },3000); 1311} 1312 1313/*Funkcija za zatvaranje alerta*/ 1314function ci_closeAlert(el) { 1315 el.parentNode.classList.add('hidden'); 1316} 1317 1318/*Zabrana kopiranja iz polja za unos lozinke*/ 1319function ci_forbidPasswordCopying() { 1320 let inputPassword = document.querySelectorAll('.gigya-input-password'); 1321 1322 inputPassword.forEach((input) => { 1323 1324 input.addEventListener("copy", (e) => { 1325 ci_createAlert('#ci-alert-password-copying', '#alert-password-copying'); 1326 }); 1327 }) 1328} 1329 1330/*Zatvaranje alerta na formi*/ 1331function ci_closeFormErrorAlert() { 1332 1333 $('.gigya-composite-control-form-error.gigya-error-display').each(function() { 1334 if($(this).find('.close-icon').length === 0) { 1335 $('<span class="close-icon"></span>').appendTo($(this)) 1336 } 1337 }); 1338 1339 $('.gigya-composite-control-form-error.gigya-error-display .close-icon').on("click", function() { 1340 $(this).parent().removeClass('gigya-error-display-active'); 1341 $(this).parent().find('.gigya-error-msg').removeClass('gigya-error-msg-active'); 1342 }) 1343 1344} 1345 1346/*Dodavanje strelica na modalima za progresivno profiliranje*/ 1347function ci_appendModalWithArrow() { 1348 let leftArrow = $('<span class="arrow arrow-left"></span>'); 1349 let rightArrow = $('<span class="arrow arrow-right"></span>'); 1350 1351 let modal = $('#ci_modal.modal-content'); 1352 1353 if(modal.find('.gigya-favorite-categories-container').length) { 1354 modal.find('.arrow.arrow-left').remove(); 1355 modal.find('.arrow.arrow-right').remove(); 1356 modal.append(rightArrow); 1357 modal.append(leftArrow); 1358 $("#ci_modal:has(.gigya-favorite-categories-container)").find('.arrow.arrow-right').addClass('categories'); 1359 $("#ci_modal:has(.gigya-favorite-categories-container)").find('.arrow.arrow-left').addClass('categories'); 1360 1361 } else if(modal.find('.gigya-favorite-sports-container').length) { 1362 modal.find('.arrow.arrow-left').remove(); 1363 modal.find('.arrow.arrow-right').remove(); 1364 modal.append(rightArrow); 1365 modal.append(leftArrow); 1366 $("#ci_modal:has(.gigya-favorite-sports-container)").find('.arrow.arrow-right').addClass('sports'); 1367 $("#ci_modal:has(.gigya-favorite-sports-container)").find('.arrow.arrow-left').addClass('sports'); 1368 } else if(modal.find('.gigya-favorite-brands-container').length) { 1369 if(modal.find('.arrow.arrow-right').length === 0) { 1370 modal.append(rightArrow); 1371 $("#ci_modal:has(.gigya-favorite-brands-container)").find('.arrow.arrow-right').addClass('brands'); 1372 } else { 1373 modal.find('.arrow.arrow-left').remove(); 1374 modal.find('.arrow.arrow-right').remove(); 1375 modal.append(rightArrow); 1376 $("#ci_modal:has(.gigya-favorite-brands-container)").find('.arrow.arrow-right').addClass('brands'); 1377 } 1378 1379 } else { 1380 if(modal.find('.arrow.arrow-left').length !== 0 && modal.find('.arrow.arrow-right').length !== 0) { 1381 modal.find('.arrow.arrow-left').remove(); 1382 modal.find('.arrow.arrow-right').remove(); 1383 } 1384 } 1385} 1386 1387/*Dodavanja funkcionalnosti za strelice na progresivnom profiliranju*/ 1388function ci_addArrow() { 1389 1390 ci_appendModalWithArrow(); 1391 1392 let leftArrowSports = $('.arrow.arrow-left.sports'); 1393 let leftArrowCategories = $('.arrow.arrow-left.categories'); 1394 let rightArrowBrands = $('.arrow.arrow-right.brands'); 1395 let rightArrowSports = $('.arrow.arrow-right.sports'); 1396 let rightArrowCategories = $('.arrow.arrow-right.categories'); 1397 1398 1399 rightArrowBrands.on('click', function () { 1400 rightArrowBrands.parent().find('.js-brands-favorites-next .gigya-input-submit').click(); 1401 }) 1402 1403 rightArrowSports.on('click', function() { 1404 rightArrowSports.parent().find('.js-sports-favorites-next .gigya-input-submit').click(); 1405 }) 1406 1407 rightArrowCategories.on('click', function() { 1408 rightArrowCategories.parent().find('.js-categories-favorites-next .gigya-input-submit').click(); 1409 }) 1410 1411 leftArrowSports.on('click', function() { 1412 leftArrowSports.parent().find('a.js-sports-favorites-back')[0].click(); 1413 }) 1414 1415 leftArrowCategories.on('click', function() { 1416 leftArrowCategories.parent().find('a.js-categories-favorites-back')[0].click(); 1417 }) 1418} 1419 1420/*Dodavanje ikonice koja zatvara modal*/ 1421function ci_closeModal() {
1422 let closeIcon = $('<span class="close-icon" data-dismiss="modal" tabindex="0" role="button"></span>'); 1423 1424 $('#ci_modal').each(function() { 1425 if($(this).children('.close-icon').length === 0) { 1426 $(this).append(closeIcon); 1427 } 1428 }); 1429 if(typeof modelNBAccessibility != "undefined") { 1430 modelNBAccessibility.clickWithKeyboard('#customer_identity_layout_modal .close-icon'); 1431 } 1432} 1433 1434/*Funkcija za povlacenje saglasnosti na SS Obavestenja*/ 1435function ci_revokeConsent() { 1436 $(".gigya-screen-content .js-revoke-consent").each(function() { 1437 $(this).attr("tabindex", "0"); 1438 $(this).attr("role", "button"); 1439 1440 $(this).off('keydown').on('keydown', function (e) { 1441 if (e.key === 'Enter') { 1442 if(typeof preventDefault !== 'undefined' && preventDefault){ 1443 e.preventDefault(); 1444 } 1445 $(this).click(); 1446 e.stopPropagation(); 1447 } 1448 }); 1449 1450 $(this).click(function () { 1451 $(this).parent().next().find('.gigya-input-checkbox').prop('checked', false); 1452 $(this).parent().next().find('.gigya-label').removeClass('active'); 1453 }); 1454 }) 1455} 1456 1457/*Prikaz popup-a za jacinu lozinke na password tipu polja*/ 1458function ci_showPasswordBubble() { 1459 1460 let newPasswordInputs = $('.gigya-register-form .gigya-password .gigya-input-password, .gigya-reset-password-container .gigya-composite-control-password #gigya-password-newPassword, .gigya-change-password-container .gigya-new-password .gigya-input-password'); 1461 newPasswordInputs.keyup(function() { 1462 1463 if($(this).parent().find('.password-strength-wrapper').length === 0) { 1464 var clon = $('#ci-password-strength').html(); 1465 $(this).parent().append(clon); 1466 } 1467 if($(this).val().length === 0) { 1468 $(this).parent().find('.password-strength-wrapper').addClass('hidden'); 1469 } else { 1470 $(this).parent().find('.password-strength-wrapper').removeClass('hidden'); 1471 } 1472 1473 }); 1474 1475 newPasswordInputs.click(function() { 1476 if($(this).val().length !== 0) { 1477 $(this).parent().find('.password-strength-wrapper').removeClass('hidden'); 1478 } 1479 }); 1480} 1481 1482/*Funkcionalnost za jacinku lozinke*/ 1483function ci_passwordStrength() { 1484 1485 let newPasswordInputs = $('.gigya-register-form .gigya-password .gigya-input-password, .gigya-reset-password-container .gigya-composite-control-password #gigya-password-newPassword, .gigya-change-password-container .gigya-new-password .gigya-input-password'); 1486 newPasswordInputs.keyup(function() { 1487 1488 var characterNb = this.value.length; 1489 var number = $(this).val().match(/\d+/); 1490 var capital = $(this).val().match(/[A-Z]/); 1491 var lower = $(this).val().match(/[a-z]/); 1492 let specialCaracter = $(this).val().match(/[!@#$%^&*()_+~{}'\-;:\\"/.,<>?]/); 1493 1494 //Ispitivanje koji uslovi su ispunjeni 1495 if(characterNb > 7 ){characterNb = 1;} else {characterNb = 0} 1496 if(lower !== null ){lower = 1;} else {lower = 0} 1497 if(specialCaracter !== null ){specialCaracter = 1;} else {specialCaracter = 0} 1498 if(number !== null ){number = 1;} else {number = 0} 1499 if(capital !== null ){capital = 1;} else {capital = 0} 1500 var count = (characterNb+number+capital+lower+specialCaracter); 1501 1502 $('.password-strength-wrapper .strength-wrapper > div').each(function(){ 1503 $(this).removeClass('password-label-very-weak'); 1504 $(this).removeClass('password-label-weak'); 1505 $(this).removeClass('password-label-strong'); 1506 $(this).removeClass('password-label-very-strong'); 1507 }); 1508 1509 $('.password-label-wrapper .label > span').each(function(){ 1510 $(this).addClass('hidden'); 1511 }); 1512 1513 //Ispisivanje labele koja odgovara jacini i prikaz linije 1514 switch(count) { 1515 case 0: 1516 case 1: 1517 case 2: 1518 $('.password-strength-wrapper .strength-wrapper > .password-strength-first').addClass('password-label-very-weak'); 1519 $('.password-label-wrapper .label > span.password-label-very-weak').removeClass('hidden'); 1520 break; 1521 case 3: 1522 $('.password-strength-wrapper .strength-wrapper > .password-strength-first').addClass('password-label-very-weak'); 1523 $('.password-strength-wrapper .strength-wrapper > .password-strength-second').addClass('password-label-weak'); 1524 $('.password-label-wrapper .label > span.password-label-weak').removeClass('hidden'); 1525 break; 1526 case 4: 1527 $('.password-strength-wrapper .strength-wrapper > .password-strength-first').addClass('password-label-very-weak'); 1528 $('.password-strength-wrapper .strength-wrapper > .password-strength-second').addClass('password-label-weak'); 1529 $('.password-strength-wrapper .strength-wrapper > .password-strength-third').addClass('password-label-strong'); 1530 $('.password-label-wrapper .label > span.password-label-strong').removeClass('hidden'); 1531 break; 1532 case 5: 1533 $('.password-strength-wrapper .strength-wrapper > .password-strength-first').addClass('password-label-very-weak'); 1534 $('.password-strength-wrapper .strength-wrapper > .password-strength-second').addClass('password-label-weak'); 1535 $('.password-strength-wrapper .strength-wrapper > .password-strength-third').addClass('password-label-strong'); 1536 $('.password-strength-wrapper .strength-wrapper > .password-strength-fourth').addClass('password-label-very-strong'); 1537 $('.password-label-wrapper .label > span.password-label-very-strong').removeClass('hidden'); 1538 break; 1539 } 1540 }); 1541 1542 newPasswordInputs.focusout(function () { 1543 $('.password-strength-wrapper').addClass('hidden'); 1544 }) 1545 1546 //Klik van input polja, zatvara popup za jacinu lozinke 1547 $(document).click(function(e) 1548 { 1549 let container = $('.gigya-register-form .gigya-password .gigya-input-password, .gigya-reset-password-container .gigya-composite-control-password #gigya-password-newPassword, .gigya-change-password-container .gigya-new-password .gigya-input-password'); 1550 // if the target of the click isn't the container nor a descendant of the container 1551 if (!container.is(e.target) && container.has(e.target).length === 0) 1552 { 1553 $('.password-strength-wrapper').addClass('hidden'); 1554 } 1555 }); 1556 1557} 1558 1559/*Ucitavanje slika preko naziva klasa*/ 1560function ci_loadAllImages(classPrefix, pathImage,name_sufix ,imgExtension) { 1561
1562 let clsPrefix = "logo"; 1563 let path = "http://dev.sportvision.rs/files/images/customer_identity/"; 1564 let ext = "png"; 1565 let sufix = ''; 1566 1567 1568 if(classPrefix) { 1569 clsPrefix = classPrefix; 1570 } 1571 1572 if(pathImage) { 1573 path = pathImage; 1574 } 1575 1576 if(imgExtension) { 1577 ext = imgExtension; 1578 } 1579 1580 if(name_sufix) { 1581 sufix = name_sufix; 1582 } 1583 1584 let elementsWithBrands = document.querySelectorAll(`.gigya-screen [class*= ${clsPrefix}-]`); 1585 1586 elementsWithBrands.forEach(function (element) { 1587 let classes = element.classList; 1588 1589 //Prolazak kroz sve klase elementa 1590 classes.forEach(function (cls) { 1591 1592 if (cls.startsWith(`${clsPrefix}-`)) { 1593 1594 //Uzimanje naziva slike iz naziva klase 1595 const imageName = cls.split(`${clsPrefix}-`); 1596 const img = new Image(); 1597 img.src = `${path}${imageName[1]}${sufix}.${ext}`; 1598 1599 //Dodavanje slike (ukoliko vec ne postoji) na odgovarajuce mesto 1600 img.onload = function () { 1601 if(clsPrefix === "icon") { 1602 if (element.hasChildNodes() && element.getElementsByTagName('img').length === 0) { 1603 element.children[1].append(img); 1604 } else if (element.getElementsByTagName('img').length === 0) { 1605 element.append(img); 1606 } 1607 } else if (element.getElementsByTagName('img').length === 0) { 1608 element.innerHTML = '' 1609 element.append(img); 1610 } 1611 1612 if ($(window).width() < 576 && cls==="image-apply-for-sportandbonus") { 1613 img.src = `${path}${imageName[1]}-mobile${sufix}.${ext}`; 1614 } 1615 1616 }; 1617 //Ukoliko ne nadje sliku, sakriva element 1618 img.onerror = function () { 1619 if(element.classList[0] !== 'icon-view'){ 1620 element.classList.add('hidden'); 1621 } 1622 }; 1623 } 1624 }); 1625 }); 1626 1627 /* dodavanje klase za i wrapper */ 1628 $('.js-profiling-consent-icon').parents('.ui-sortablew').addClass('nb-class-profilisanje'); 1629 1630} 1631 1632/*Inicijalizacija kalendara*/ 1633function nbDatePicker(element,options){ 1634 element.AnyPicker(options); 1635} 1636 1637function getSiteLang() { 1638 let lang = nb_lang; 1639 return lang; 1640} 1641 1642function getLangForPicker(isMobile) { 1643 let lang = getSiteLang(); 1644 let dateLocale = {}; 1645 let dateLocaleMobile = 'en'; 1646 1647 switch(lang) { 1648 case "cz": 1649 dateLocale = localeDatePicker.cz; 1650 dateLocaleMobile = "cz"; 1651 break; 1652 case 'sk': 1653 dateLocale = localeDatePicker.sk; 1654 dateLocaleMobile = "sk"; 1655 break; 1656 default: 1657 dateLocale = localeDatePicker.en; 1658 } 1659 1660 if(isMobile) { 1661 return dateLocaleMobile; 1662 } else { 1663 return dateLocale; 1664 } 1665 1666 1667} 1668 1669function ci_initAllDateTimePickers() { 1670 let dateTimePickers = document.querySelectorAll('.gigya-date-of-birth .gigya-input-text'); 1671 let dateTimePickersMobile = $('.gigya-date-of-birth .gigya-input-text'); 1672 1673 //Restrikcije da korisnik ne moze da bude mladji od 16god 1674 const minDateRestrictions = new Date(); 1675 minDateRestrictions.setFullYear(minDateRestrictions.getFullYear() - 16); 1676 minDateRestrictions.setDate(minDateRestrictions.getDate() - 1); 1677 1678 let currentDate = new Date(); 1679 let minDay = currentDate.getDate().toString(); 1680 let minMonth = '0' + (currentDate.getMonth() + 1).toString(); 1681 let minYear = (currentDate.getFullYear() - 16); 1682 1683 let format2= new Intl.DateTimeFormat("en-GB").format(minDateRestrictions); 1684 1685 let dateLocaleMobile = getLangForPicker(true); 1686 1687 if(window.innerWidth < 576) { 1688 dateTimePickersMobile.each(function () { 1689 nbDatePicker($(this),{mode: "datetime",dateTimeFormat: 'dd/MM/yyyy',theme:"iOS",maxValue:format2,maxRows: 180, lang: dateLocaleMobile}); 1690 $(this).attr("readonly", "true"); 1691 }) 1692 } else {
1693 dateTimePickers.forEach((datePicker) => { 1694 1695 IMask(datePicker, 1696 { 1697 mask: Date, 1698 lazy: false, 1699 autofix: false, 1700 pattern: 'd/`m/`Y', 1701 blocks: { 1702 d: {mask: IMask.MaskedRange, placeholderChar: 'd', from: 1, to: 31, maxLength: 2}, 1703 m: {mask: IMask.MaskedRange, placeholderChar: 'm', from: 1, to: 12, maxLength: 2}, 1704 Y: {mask: IMask.MaskedRange, placeholderChar: 'y', from: 1900, to: minYear, maxLength: 4} 1705 }, 1706 1707 1708 format: function (date) { 1709 var day = date.getDate(); 1710 var month = date.getMonth() + 1; 1711 var year = date.getFullYear(); 1712 1713 if (day < 10) day = "0" + day; 1714 if (month < 10) month = "0" + month; 1715 1716 return [day, month, year].join('/'); 1717 }, 1718 1719 parse: function (str) { 1720 var yearMonthDay = str.split('/'); 1721 return new Date(yearMonthDay[2], yearMonthDay[1] - 1, yearMonthDay[0]); 1722 }, 1723 min: new Date(1900, 0, 1), 1724 max: minDateRestrictions, 1725 }); 1726 }); 1727 } 1728} 1729 1730/*Inicijalizacija godine godjenja na SS Moja porodica*/ 1731function ci_initYearPickerMyFamily() { 1732 1733 let yearPickers = document.querySelectorAll('.gigya-my-family-container .js-birthYear .gigya-input-text'); 1734 1735 let dateLocale = getLangForPicker(false); 1736 dateLocale.format = 'yyyy'; 1737 1738 yearPickers.forEach((datePicker) => { 1739 1740 if(!datePicker.classList.contains('initialized')) { 1741 new tempusDominus.TempusDominus(datePicker, 1742 { 1743 display: { 1744 icons: { 1745 type: 'icons', 1746 time: 'fas fa-clock', 1747 date: 'fas fa-calendar', 1748 up: 'arrow arrow-up', 1749 down: 'arrow arrow-down', 1750 previous: 'arrow arrow-prev', 1751 next: 'arrow arrow-next', 1752 today: 'fas fa-calendar-check', 1753 clear: 'fas fa-trash', 1754 close: 'fas fa-times' 1755 }, 1756 sideBySide: false, 1757 calendarWeeks: false, 1758 viewMode: 'calendar', 1759 toolbarPlacement: 'bottom', 1760 keepOpen: false, 1761 buttons: { 1762 today: false, 1763 clear: false, 1764 close: false 1765 }, 1766 components: { 1767 calendar: true, 1768 date: false, 1769 month: false, 1770 year: true, 1771 decades: true, 1772 clock: false 1773 }, 1774 inline: false, 1775 theme: 'light' 1776 }, 1777 localization: dateLocale, 1778 restrictions: { 1779 minDate: undefined, 1780 maxDate: new Date(), 1781 disabledDates: [], 1782 enabledDates: [], 1783 daysOfWeekDisabled: [], 1784 disabledTimeIntervals: [], 1785 disabledHours: [], 1786 enabledHours: [] 1787 } 1788 }) 1789 } 1790 1791 datePicker.classList.add('initialized'); 1792 }) 1793 1794 $('.gigya-my-family-container .gigya-array-add-btn').click (function () { 1795 ci_initYearPickerMyFamily(); 1796 ci_myFamilyBirthYear(); 1797 }) 1798} 1799 1800/*Inicijalizacija datuma na stranici moje kupovine*/ 1801function ci_initMyPurchasesDatePicker() { 1802 let dateTimePickers = document.querySelectorAll('.profile-loyalty-purchases .date-input-wrapper input'); 1803 1804 let dateLocale = getLangForPicker(); 1805 dateLocale.format = 'dd.MM.yyyy'; 1806
1807 dateTimePickers.forEach((date) => { 1808 1809 if(!date.classList.contains('initialized')) { 1810 new tempusDominus.TempusDominus(date, 1811 { 1812 display: { 1813 icons: { 1814 type: 'icons', 1815 time: 'fas fa-clock', 1816 date: 'fas fa-calendar', 1817 up: 'arrow arrow-up', 1818 down: 'arrow arrow-down', 1819 previous: 'arrow arrow-prev', 1820 next: 'arrow arrow-next', 1821 today: 'fas fa-calendar-check', 1822 clear: 'fas fa-trash', 1823 close: 'fas fa-times' 1824 }, 1825 sideBySide: false, 1826 calendarWeeks: false, 1827 viewMode: 'calendar', 1828 toolbarPlacement: 'bottom', 1829 keepOpen: false, 1830 buttons: { 1831 today: false, 1832 clear: false, 1833 close: false 1834 }, 1835 components: { 1836 calendar: true, 1837 date: true, 1838 month: true, 1839 year: true, 1840 decades: true, 1841 clock: false 1842 }, 1843 inline: false, 1844 theme: 'light' 1845 }, 1846 localization: dateLocale, 1847 restrictions: { 1848 minDate: undefined, 1849 maxDate: undefined, 1850 disabledDates: [], 1851 enabledDates: [], 1852 daysOfWeekDisabled: [], 1853 disabledTimeIntervals: [], 1854 disabledHours: [], 1855 enabledHours: [] 1856 }, 1857 1858 useCurrent: false, 1859 }); 1860 }; 1861 date.classList.add('initialized'); 1862 }) 1863 1864} 1865 1866function ci_closeDatetimePicker() { 1867 1868 let dateInput = $('.profile-loyalty-purchases .date-input-wrapper input') 1869 let br = 0; 1870 dateInput.each(function (index, element) { 1871 1872 $(this).click(function () { 1873 1874 if(!$(this).is('[class*="datepicker"]')) { 1875 $(this).addClass('datepicker-'+ br +'') 1876 } 1877 1878 let cls = parseInt($(this).attr("class").split(' ')[3].split('-')[1]); 1879 1880 let datepickers = $('.tempus-dominus-widget'); 1881 1882 datepickers.each(function () { 1883 1884 datepickers.addClass('hidden'); 1885 datepickers.removeClass('visible-date'); 1886 1887 datepickers.eq(cls).removeClass('hidden'); 1888 datepickers.eq(cls).addClass('visible-date'); 1889 1890 }) 1891 1892 br++; 1893 }) 1894 1895 }) 1896 1897 $('body.uc-ci_profile_loyalty_purchases').click(function(e) { 1898 let dateInput = $('.profile-loyalty-purchases .date-input-wrapper .date-to, .tempus-dominus-widget .calendar-header, .tempus-dominus-widget .date-container-decades, .tempus-dominus-widget .date-container-years, .tempus-dominus-widget .date-container-months, .profile-loyalty-purchases .date-input-wrapper .date-from') 1899 if (!dateInput.is(e.target) && dateInput.has(e.target).length === 0) 1900 { 1901 $('.tempus-dominus-widget').addClass('hidden'); 1902 $('.tempus-dominus-widget').removeClass('visible-date'); 1903 } 1904 }); 1905 1906} 1907 1908/*Funkcionalnost Oznaci sve na SS Saglasnost*/ 1909function ci_checkAllCheckboxes() { 1910 $(".gigya-registration-completion-container .consent-check-all .gigya-input-checkbox").click(function () { 1911 //Ukoliko je "Oznaci sve" cekiran, cekiraju se svi ostali koji nisu oznaceni 1912 if($(this).prop('checked')){ 1913 $('.gigya-registration-completion-container .gigya-input-checkbox').not(this).each(function(){ 1914 let $this = $(this); 1915 if (!$this.prop('checked')) { 1916 $this.parent().find('label.gigya-label').trigger('click'); 1917 } 1918 }); 1919 1920 }else{ 1921 //Ukoliko "Oznaci sve" nije cekiran, odcekiraj sve ostale koji su cekirani 1922 $('.gigya-registration-completion-container .gigya-input-c
1922heckbox').not(this).each(function(){ 1923 let $this = $(this); 1924 if ($this.prop('checked')) { 1925 $this.parent().find('label.gigya-label').trigger('click'); 1926 } 1927 }); 1928 } 1929 1930 }); 1931 1932 //klik na ostale checkboxove 1933 $('.gigya-registration-completion-container .gigya-composite-control-checkbox:not(.consent-check-all) input:checkbox').click(function(){ 1934 $('.gigya-registration-completion-container .consent-check-all .gigya-input-checkbox').prop('checked', false); 1935 }) 1936 1937} 1938 1939/*Zabrana paste opcije na input polje koje je type="password"*/ 1940function ci_disablePasteOnPasswordInput() { 1941 let inputPassword = document.querySelectorAll('.gigya-input-password'); 1942 inputPassword.forEach((input) => { 1943 input.addEventListener('paste', (e) => { 1944 e.preventDefault(); 1945 1946 ci_createAlert('#ci-alert-password-copying', '#alert-password-copying'); 1947 1948 }); 1949 }) 1950} 1951 1952/* Uklanjanje poslednjeg clana porodice */ 1953 1954function removeFamilyMember(){ 1955 1956 if(!$('.gigya-screen .gigya-array-manager').length){ 1957 return false; 1958 } 1959 if(!$('#ci-profile-family_content .reset-family-member-lnk.js-reset-family-members').length){ 1960 return false; 1961 } 1962 1963 /* dugme remove */ 1964 let removeBTNLast = '.gigya-screen .gigya-array-manager.disable-delete:visible > .gigya-array-template > .buttons-wrapper button.gigya-array-remove-btn'; 1965 let removeBTN = '.gigya-screen .gigya-array-manager:visible > .gigya-array-template > .buttons-wrapper button.gigya-array-remove-btn'; 1966 let $removeBTN = $(removeBTN); 1967 let $btnADD = $('.gigya-array-add-btn'); 1968 $btnADD.add($(removeBTN)).on('click', function(){ 1969 $(removeBTN).each(function(){ 1970 if($(this).hasClass('nb--noted')){ 1971 //za svaki slucaj*/ 1972 }else{ 1973 $(this).addClass('nb--noted'); 1974 } 1975 }) 1976 1977 if($(removeBTN).length === 1){ 1978 if($('.gigya-screen .gigya-array-manager').hasClass('disable-delete')){ 1979 removeLastMember(); 1980 } 1981 } 1982 }) 1983 //za slucaj ako je na load stranice samo jedan clan 1984 if($('.gigya-screen .gigya-array-manager').hasClass('disable-delete')){ 1985 removeLastMember() 1986 } 1987 function removeLastMember(){ 1988 if($(removeBTN+'> a').length){ 1989 return false 1990 } 1991 1992 $('#ci-profile-family_content .reset-family-member-lnk.js-reset-family-members').clone().appendTo(removeBTN) 1993 $('.reset-family-member-lnk.js-reset-family-members').on('click',function(e){ 1994 e.stopPropagation(); 1995 e.preventDefault(); 1996 $('input[name="data.family.member[0].birthYear"]').val(''); 1997 $('select[name="data.family.member[0].gender"]').val(''); 1998 }) 1999 } 2000 /* $('.gigya-screen-content .gigya-screen.gigya-my-family-container .gigya-array-template .buttons-wrapper .gigya-array-remove-btn').on('click',function(){ 2001 if($('.gigya-screen .gigya-array-manager').hasClass('disable-delete')){ 2002 $('#ci-profile-family_content .reset-family-member-lnk.js-reset-family-members:visible').clone().appendTo(removeBTN) 2003 $('.reset-family-member-lnk.js-reset-family-members').on('click',function(e){ 2004 e.stopPropagation(); 2005 e.preventDefault(); 2006 $('input[name="data.family.member[0].birthYear"]').val(''); 2007 }) 2008 } 2009 })*/ 2010} 2011 2012/*Funkcioanlnost za prikazivanje/sakrivanje lozinke*/ 2013function ci_showPassword() { 2014 let iconShowPassword = document.querySelectorAll(".gigya-composite-control-password .icon-view"); 2015 2016 2017 iconShowPassword.forEach((icon) => { 2018 2019 icon.onclick = function() { 2020 2021 let input = icon.closest('.gigya-composite-control-password').querySelector('.gigya-input-password'); 2022 2023 icon.classList.toggle('active'); 2024 2025 //Menjanje atributa type 2026 if(input.getAttribute("type") === "password") { 2027 input.setAttribute("type","text"); 2028 }else { 2029 input.setAttribute("type","password"); 2030 } 2031 } 2032 }); 2033 2034} 2035 2036/*Iskljucivanje autocomplete-a na poljima forme*/ 2037function ci_turnOffAutocomplete() { 2038 $("input, select, textarea").attr("autocomplete", "off"); 2039 2040 $('.gigya-login-form input').attr("autocomplete", "new-password"); 2041} 2042 2043/*Kreiranje input polja za unos verifikacionog koda*/ 2044function ci_createInputFields(inputNum, containerClass,on_modal) { 2045 2046 let isModal = false;
2047 if(on_modal){ 2048 isModal = true 2049 } 2050 let modal = '.ci-wrapper '; 2051 if (isModal){ 2052 modal = '#ci_modal '; 2053 } 2054 2055 2056 var numberOfInputs = 6; 2057 2058 let containerClassDefault ='.gigya-verify-sportandbonus-application-container'; 2059 2060 if(containerClass) { 2061 containerClassDefault = containerClass; 2062 } 2063 2064 if(document.querySelector(modal+containerClassDefault) === null) { 2065 return; 2066 } 2067 2068 if (inputNum) { 2069 numberOfInputs = inputNum; 2070 } 2071 2072 let firstInput = document.querySelector(modal+containerClassDefault+' .gigya-composite-control-textbox .gigya-input-text'); 2073 2074 let placeForInputs = document.querySelector(modal+containerClassDefault+' .gigya-composite-control-textbox'); 2075 2076 if(firstInput.length === 0) { 2077 return; 2078 } 2079 2080 //Pravljenje input polja 2081 if(document.querySelector(modal+containerClassDefault+' .gigya-composite-control-textbox .small-input') === null) { 2082 2083 for (let i = 0; i < numberOfInputs; i++) { 2084 let inputField = document.createElement("input"); 2085 2086 inputField.setAttribute("type", "text"); 2087 inputField.setAttribute("class", "small-input"); 2088 inputField.setAttribute("id", `inputField${i}`); 2089 inputField.setAttribute("value", ""); 2090 inputField.setAttribute("maxlength", "1"); 2091 inputField.setAttribute("number", `${i.toString()}`); 2092 2093 if (document.querySelectorAll(modal+containerClassDefault+' .gigya-composite-control-textbox .small-input').length < numberOfInputs) { 2094 placeForInputs.append(inputField); 2095 } 2096 2097 } 2098 } 2099 2100 let inputs = $('.small-input'); 2101 2102 var array= []; 2103 let num; 2104 let data; 2105 2106 2107 //Uzimanje vrednosti unetih u input polja i upisivanje u glavno input polje 2108 inputs.each(function() { 2109 2110 $(this).change(function() { 2111 2112 num = $(this).val(); 2113 data = $(this).attr("number"); 2114 2115 array[parseInt(data)] = num; 2116 2117 firstInput.setAttribute("value", array.toString().replaceAll(',', '')); 2118 }) 2119 2120 }) 2121 2122 //Kada se input polje popuni predji na sledece 2123 inputs.keyup(function () { 2124 if (this.value.length === this.maxLength) { 2125 $(this).next(".small-input").focus(); 2126 } 2127 }); 2128 2129 //Brisanje vrednosti iz input polja 2130 $(':input').keydown(function(e) { 2131 if ((e.which === 8 || e.which === 46) && $(this).val() ==='') { 2132 $(this).prev('input').focus(); 2133 } 2134 }); 2135 2136 //Kopiranje u input polja 2137 document.addEventListener("paste", function(e) { 2138 2139 if (e.target.classList.contains('small-input')) { 2140 var data = e.clipboardData.getData('Text'); 2141 // split clipboard text into single characters 2142 data = data.split('').slice(0, numberOfInputs); 2143 array = data; 2144 2145 [].forEach.call(document.querySelectorAll(".small-input"), (node, index) => { 2146 // And set input value to the relative character 2147 node.value = data[index]; 2148 }); 2149 } 2150 firstInput.setAttribute("value", array.toString().replaceAll(',', '')); 2151 }); 2152 2153 //Klik na dugme "Posalji link ponovo" brise unete vrednosti u input polja 2154 document.querySelector(modal+containerClassDefault+' .gigya-composite-control-link a').onclick = function () { 2155 document.querySelectorAll('.small-input').forEach(function(input) { 2156 input.value = ""; 2157 input.setAttribute("value", "") 2158 }) 2159 2160 array=[]; 2161 document.querySelector(modal+containerClassDefault+' .gigya-composite-control-textbox .gigya-input-text').setAttribute("value", ""); 2162 //document.querySelector(modal+containerClassDefault+' .gigya-composite-control-textbox .gigya-input-text').value=""; 2163 } 2164 2165 document.querySelector(modal+containerClassDefault+' .gigya-composite-control-submit .gigya-input-submit').onclick = function () { 2166 document.querySelectorAll('.small-input').forEach(function(input) { 2167 input.value = ""; 2168 input.setAttribute("value", "") 2169 }) 2170 } 2171} 2172 2173function ci_getIndex(element){ 2174 if(element.data('ss-index')){ 2175 return element.data('ss-index'); 2176 }else{ 2177 return false;
2178 } 2179} 2180 2181function ci_getTask(element){ 2182 if(element.data('ss-task')){ 2183 return element.data('ss-task'); 2184 }else{ 2185 return false; 2186 } 2187} 2188 2189function ci_getUserNavForm(element){ 2190 if(element.data('ss-form')){ 2191 return element.data('ss-form'); 2192 }else{ 2193 return ''; 2194 } 2195} 2196 2197function ci_getIsExternalLink(element){ 2198 if(element.data('ss-external')){ 2199 if(element.data('ss-external') === 'yes'){ 2200 return true; 2201 } 2202 return false; 2203 }else{ 2204 return false; 2205 } 2206} 2207 2208function ci_disableLink(element){ 2209 element.css('pointer-events','none'); 2210} 2211 2212function ci_enableLink(element){ 2213 element.css('pointer-events','none'); 2214} 2215 2216function ci_isLogut(element){ 2217 if(ci_getTask(element) === _logut){ 2218 return true; 2219 } 2220 return false; 2221} 2222 2223function ci_isLogin(element){ 2224 if(ci_getTask(element) === _login){ 2225 return true; 2226 } 2227 return false; 2228} 2229 2230function ci_logoutCallback(response) { 2231 2232 if (response.errorCode === 0) { 2233 localStorage.removeItem("ci_jwtToken"); 2234 nbshopJS.logoutUser(); 2235 2236 ci_logoutAjax(); 2237 2238 // location.reload(); 2239 console.log("Logout info"); 2240 } else { 2241 // ako se dogodi greška, ispiši je u konzolu 2242 console.log("Logout error: " + response.errorMessage); 2243 ci_addLog('ci_logoutCallback', 'response', JSON.stringify(response)); 2244 } 2245 2246} 2247 2248function ci_onloadPage(redirectUrl,id){ 2249 if(redirectUrl != ''){ 2250 window.location.href = redirectUrl; 2251 } 2252 2253 return false; 2254} 2255 2256function ci_userNavAjax(element,e){ 2257 nb_dump('Pokrenut zahtev','green'); 2258 e.preventDefault(); 2259 if(!ci_getIndex(element) || !ci_getTask(element)){ 2260 alert('Problem! '); 2261 } 2262 //modal na koji ce se ucitati SS iz ajaxa 2263 $ci_modal = $('#customer_identity_layout_modal'); 2264 2265 //ako je vec uctana trazena forma, ne ide na ajax nego samo otvori modal 2266 if($ci_modal.find('#gigya-'+ci_getUserNavForm(element)+'-form').length){ 2267 $ci_modal.modal('show'); 2268 return false; 2269 } 2270 // ci_disableLink(element); 2271 2272 2273 2274 //ajax zahtev 2275 $.ajax({ 2276 type: "POST", 2277 url: ci_getIndex(element), //definisano u linku 2278 data: { 2279 task: ci_getTask(element), //definisano u linku 2280 ajax:'yes', 2281 external: ci_getIsExternalLink(element)//definisano u linku - da li ce ici na drugi sajt ili otvara modal 2282 }, 2283 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 2284 dataType: 'json', 2285 beforeSend: function() { 2286 nb_dump('Salje se zahtev'); 2287 }, 2288 success: function(ret) { 2289 nb_dump('Vracen zahtev'); 2290 //ako nije ucitana gigya ucitava header_script iz ajaxa 2291 if((typeof gigya == "undefined")) { 2292 $('body').append(ret.html); 2293 checkGigya1 = setInterval(function () { 2294 if((typeof gigya !== "undefined")){ 2295 ci_gigyaLiseners() 2296 clearInterval(checkGigya1); 2297 } 2298 }, 100); 2299 } 2300 2301 if(ci_isLogut(element)){ 2302 checkGigya = setInterval(function () { 2303 if((typeof gigya !== "undefined")){ 2304 gigya.accounts.logout({callback: ci_logoutCallback}); 2305 // location.reload(); 2306 clearInterval(checkGigya); 2307 } 2308 }, 100); 2309 2310 return false; 2311 } 2312 if(ci_isLogin(element) && ci_getIsExternalLink(element) === 'no'){ 2313 location.reload(); 2314 } 2315 2316 //ako je u linku definisano 'yes' ide na drugi sajt 2317 if(ci_getIsExternalLink(element)){ 2318 2319 redirectUrl = nb_active_page_url; 2320 2321 if(e.which || (!e.hasOwnProperty('which') && e.hasOwnProperty('type') && e.type == 'show')) { 2322 localStorage.setItem('ci_initOfLogin', nb_active_page_url); 2323 } else { 2324 2325 ci_initOfLogin = localStorage.getItem('ci_initOfLogin') 2326 2327 if(typeof ci_initOfLogin !== "undefined" && ci_initOfLogin != null){ 2328 // alert('ci ini inside'); 2329 redirectUrl = ci_initOfLogin; 2330 } 2331 } 2332 2333 2334 2335 // alert(redirectUrl); 2336 var dataSSOLogin = { 2337 authFlow: 'popup', 2338 redirectURL: redirectUrl, 2339 useChildContext: true, 2340 context: { 2341 ssPrefix: ret.ssPrefix, 2342 ssRegUrl: ci_getIndex(element) 2343 } 2344 } 2345 2346 gigya.sso.login(dataSSOLogin); 2347 2348 // window.location.href = ret.link; 2349 return false;
2350 } 2351 2352 //podaci o SS iz ajaxa 2353 ssName = ret.ssName; 2354 ssId = ret.ssId; 2355 id = 'ci_modal'; 2356 2357 //inicijalizacija funkcije kada se ucita skripta 2358 checkGigya = setInterval(function () { 2359 if((typeof gigya !== "undefined")){ 2360 //ci_showScreenSetWithStartScreen(ssName,ssId,id) 2361 clearInterval(checkGigya); 2362 element.css('pointer-events','all'); 2363 } 2364 }, 100); 2365 // ci_enableLink(element) 2366 }, 2367 error: function(ret) { 2368 alert('GRESKA!!!') 2369 } 2370 }); 2371} 2372 2373function ci_openSSForEmailInModal(prefix) { 2374 2375 if($('.gigya-update-profile-container .gigya-composite-control-link').has('.gigya-email-edit').length !== 0) { 2376 $('.gigya-update-profile-container .gigya-composite-control-link').has('.gigya-email-edit').each(function() { 2377 $(this).click(function (e) { 2378 e.preventDefault(); 2379 e.stopImmediatePropagation(); 2380 ciShowScreenSet.gigyaChangeEmailScreen(prefix+'-ProfileUpdate','gigya-change-email-screen','ci_modal'); 2381 }) 2382 }) 2383 } 2384} 2385 2386function loadPurchasesData(page, loadStores){ 2387 $("#purchases-table .loader-wrapper").removeClass("hidden"); 2388 2389 var dateFrom = $('#search_lp_date_from').val(); 2390 var dateTo = $('#search_lp_date_to').val(); 2391 var storeCode = $('#place_lp').val(); 2392 var productCode = $('#product_code_lp').val(); 2393 2394 $.ajax({ 2395 type: "POST", 2396 url: nb_active_page_url, 2397 data: { 2398 search_lp_date_from: dateFrom, 2399 search_lp_date_to: dateTo, 2400 place_lp: storeCode, 2401 product_code_lp: productCode, 2402 ajax: 'yes', 2403 page: page, 2404 task: "ci_profile" 2405 }, 2406 dataType: 'json', 2407 success: function (ret) { 2408 if(ret.flag){ 2409 $('#purchases-table').html(ret.html); 2410 2411 if(ret.storesSelectHtml != '' && loadStores){ 2412 $('#place_lp').html(ret.storesSelectHtml); 2413 } 2414 } 2415 $("#purchases-table .loader-wrapper").addClass("hidden"); 2416 } 2417 }); 2418} 2419 2420 2421function updateAppyForSportAndBonusFlowStatus(){ 2422 nb_dump('updateAppyForSportAndBonusFlowStatus Start'); 2423 2424 if(typeof event === 'undefined'){ 2425 nb_dump('ERROR updateAppyForSportAndBonusFlowStatus','red'); 2426 return false; 2427 } 2428 2429 if (event.currentScreen === 'gigya-apply-for-loyalty-card-screen'){ 2430 nb_dump('true') 2431 var currentDate = new Date().toJSON().slice(0, 10); 2432 2433 var flowApplyForSportAndBonusCount = gigya.accounts.getAccountInfo({"include":"data.flows.applyForSportAndBonus.Count"}); 2434 nb_dump(flowApplyForSportAndBonusCount) 2435 var params = { 2436 data: { 2437 flows: { 2438 applyForSportAndBonus : { 2439 Date: currentDate, 2440 Count: (flowApplyForSportAndBonusCount == null ? 1 : flowApplyForSportAndBonusCount+1) 2441 } 2442 } 2443 } 2444 }; 2445 nb_dump('okida se gigya') 2446 gigya.accounts.setAccountInfo(params); 2447 } 2448 nb_dump('updateAppyForSportAndBonusFlowStatus End'); 2449} 2450 2451function ci_disableLoginUserPopupAndRedirect(){ 2452 $('#login_modal').on('show.bs.modal', function (e) { 2453 $('.header .login-btn').trigger('click',e); 2454 return e.preventDefault() // stops modal from being shown 2455 }) 2456 2457 $('#register_modal').on('show.bs.modal', function (e) { 2458 $('.header .register-btn').trigger('click',e); 2459 $('#register_modal').addClass('hidden') 2460 return e.preventDefault() // stops modal from being shown 2461 }) 2462} 2463 2464let isValidCity = false; 2465let isValidAddress = false; 2466 2467function ci_resetFieldOnRegionChange() { 2468 $('.js-address-region .ci-region-profile').change(function () { 2469 let regionValue = $(this).find(":selected").text(); 2470 let regionID = $(this).find(":selected").val(); 2471 $(this).parent('.js-address-region').find('input.gigya-input-text').val(regionValue); 2472 $(this).parent('.js-address-region').find('input.gigya-input-text').click(); 2473 $(this).closest('.gigya-profile-form').find('#nbAddress').val(''); 2474 $(this).closest('.gigya-profile-form').find('.js-address-street input[name="data.address.street"]').val(''); 2475 $(this).closest('.gigya-profile-form').find('#nbCity').val(''); 2476 $(this).closest('.gigya-profile-form').find('.js-address-city input[name="data.address.cityAndMunicipality"]').val(''); 2477 $(this).closest('.gigya-profile-form').find('.js-address-street
2477-number input[name="data.address.streetNumber"]').val(''); 2478 $(this).closest('.gigya-profile-form').find('.js-postal-code input[name="data.address.postalCode"]').val(''); 2479 2480 $('#nbCity').typeahead('destroy'); 2481 ci_userCityProfile(regionID); 2482 }) 2483} 2484 2485function ci_resetFieldOnCountryChange() { 2486 let postcodeInput = $('.js-postal-code input[name="data.address.postalCode"]'); 2487 $('.js-address-country .ci-country-profile').change(function () { 2488 let countryValue = $(this).find(":selected").text(); 2489 let countryID = $(this).find(":selected").val(); 2490 postcodeInput.removeAttr("readonly"); 2491 $(this).parent('.js-address-country').find('input.gigya-input-text').val(countryValue); 2492 $(this).parent('.js-address-country').find('input.gigya-input-text').click(); 2493 $(this).closest('.gigya-profile-form').find('#nbAddress').val(''); 2494 $(this).closest('.gigya-profile-form').find('.js-address-street input[name="data.address.street"]').val(''); 2495 $(this).closest('.gigya-profile-form').find('#nbCity').val(''); 2496 $(this).closest('.gigya-profile-form').find('.js-address-city input[name="data.address.cityAndMunicipality"]').val(''); 2497 $(this).closest('.gigya-profile-form').find('.js-address-street-number input[name="data.address.streetNumber"]').val(''); 2498 $(this).closest('.gigya-profile-form').find('.js-postal-code input[name="data.address.postalCode"]').val(''); 2499 2500 if($('#nbCity').length > 0) { 2501 $('#nbCity').typeahead('destroy'); 2502 } 2503 if(countryValue == 'Slovenia' || countryValue == 'Slovenija') { 2504 ci_userCityProfile(''); 2505 postcodeInput.attr("readonly", "true"); 2506 } 2507 }) 2508} 2509 2510function ci_resetFieldOnCityChange() { 2511 $('.js-address-city #nbCity').change(function () { 2512 let country = $('.js-address-country .ci-country-profile').find(":selected").text(); 2513 let cityId = $(this).closest('.js-address-city').find("#ci_selected_city").val(); 2514 $(this).closest('.gigya-profile-form').find('#nbAddress').val(''); 2515 $(this).closest('.gigya-profile-form').find('.js-address-street input[name="data.address.street"]').val(''); 2516 $(this).closest('.gigya-profile-form').find('.js-address-street-number input[name="data.address.streetNumber"]').val(''); 2517 if($(this).closest('.gigya-profile-form').find('.js-address-entrance').length !== 0) { 2518 $(this).closest('.gigya-profile-form').find('.js-address-entrance input[name="data.address.entrance"]').val(''); 2519 } 2520 if($(this).closest('.gigya-profile-form').find('.js-address-block').length !== 0) { 2521 $(this).closest('.gigya-profile-form').find('.js-address-block input[name="data.address.block"]').val(''); 2522 } 2523 if(ci_typeaheadStrictType != "postCodeAutoFillByCity") { 2524 $(this).closest('.gigya-profile-form').find('.js-postal-code input[name="data.address.postalCode"]').val(''); 2525 } 2526 2527 if($('#nbAddress').length > 0) { 2528 $('#nbAddress').typeahead('destroy'); 2529 } 2530 2531 if(country == 'Slovenia' || country == '' || country == 'Slovenija') { 2532 ci_userStreetProfile(cityId); 2533 } 2534 2535 }) 2536} 2537 2538function ci_resetFieldOnAddressChange() { 2539 $('.js-address-street #nbAddress').change(function () { 2540 $(this).closest('.gigya-profile-form').find('.js-address-street-number input[name="data.address.streetNumber"]').val(''); 2541 if(ci_typeaheadStrictType != "postCodeAutoFillByCity") { 2542 $(this).closest('.gigya-profile-form').find('.js-postal-code input[name="data.address.postalCode"]').val(''); 2543 } 2544 }) 2545} 2546 2547//si country 2548function ci_userCountryProfile() { 2549 2550 if(!ci_countryFieldOnPersonalData) { 2551 return false; 2552 } 2553 2554 let countryField = $('.js-address-country:visible'); 2555 let countryFieldLabel = countryField.find('> label'); 2556 let countryInputField = countryField.find('input.gigya-input-text'); 2557 let countryInputFieldVal = countryInputField.val(); 2558 let cityId = $('.js-address-city').find("#ci_selected_city").val(); 2559 let postcodeInput = $('.js-postal-code input[name="data.address.postalCode"]'); 2560 2561 if(countryField.length === 0) { 2562 return false;
2563 } 2564 2565 if(countryInputFieldVal == 'Slovenia' || countryInputFieldVal == 'Slovenija') { 2566 ci_userCityProfile(''); 2567 ci_userStreetProfile(cityId); 2568 postcodeInput.attr("readonly", "true"); 2569 } 2570 2571 countryInputField.css("display", "none"); 2572 let selectField = '<select id="ci_country_profile" class="gigya-input-text ci-country-profile"></select>'; 2573 2574 $(selectField).insertAfter(countryFieldLabel); 2575 2576 $.ajax({ 2577 type: "POST", 2578 url: nb_site_url, 2579 data: { 2580 nbAjax: '1', 2581 ajax: 'yes', 2582 task: 'search_countriesgeo' 2583 }, 2584 dataType: 'json', 2585 success: function (ret) { 2586 if (ret.flag) { 2587 2588 if(ret.list != 'undefined' && !$.isEmptyObject(ret.list)){ 2589 2590 var options = '<option value=""></option>'; 2591 2592 let selectedOption = ''; 2593 2594 for(var i in ret.list) { 2595 if(countryInputFieldVal != '' && countryInputFieldVal == ret.list[i].name) { 2596 selectedOption = 'selected'; 2597 } 2598 options += '<option '+selectedOption+' value="'+ ret.list[i].id +'">' + ret.list[i].name + '</option>'; 2599 2600 selectedOption = ''; 2601 } 2602 } 2603 2604 $('.js-address-country .ci-country-profile').html(options); 2605 } 2606 } 2607 2608 }); 2609 2610 ci_resetFieldOnCountryChange(); 2611 2612} 2613 2614//ro instance with region 2615function ci_userRegionProfile() { 2616 2617 if(!ci_regionFieldOnPersonalData) { 2618 return false; 2619 } 2620 2621 let regionField = $('.js-address-region:visible'); 2622 let regionFieldLabel = regionField.find('> label'); 2623 let regionInputField = regionField.find('input.gigya-input-text'); 2624 let regionInputFieldVal = regionInputField.val(); 2625 let cityId = $('.js-address-city').find("#ci_selected_city").val(); 2626 let postcodeInput = $('.js-postal-code input[name="data.address.postalCode"]'); 2627 postcodeInput.attr("readonly", "true"); 2628 2629 if(regionField.length === 0) { 2630 return false; 2631 } 2632 2633 ci_userCityProfile(regionInputFieldVal); 2634 ci_userStreetProfile(cityId); 2635 ci_userStreetNumberProfile(); 2636 2637 regionInputField.css("display", "none"); 2638 let selectField = '<select id="ci_region_profile" class="gigya-input-text ci-region-profile"></select>'; 2639 2640 $(selectField).insertAfter(regionFieldLabel); 2641 2642 $.ajax({ 2643 type: "POST", 2644 url: nb_site_url, 2645 data: { 2646 nbAjax: '1', 2647 ajax: 'yes', 2648 task: 'search_regions' 2649 }, 2650 dataType: 'json', 2651 success: function (ret) { 2652 if (ret.flag) { 2653 2654 if(ret.list != 'undefined' && !$.isEmptyObject(ret.list)){ 2655 2656 var options = '<option value=""></option>'; 2657 2658 let selectedOption = ''; 2659 2660 for(var i in ret.list) { 2661 if(regionInputFieldVal != '' && regionInputFieldVal == ret.list[i].name) { 2662 selectedOption = 'selected'; 2663 } 2664 options += '<option '+selectedOption+' value="'+ ret.list[i].id +'">' + ret.list[i].name + '</option>'; 2665 2666 selectedOption = ''; 2667 } 2668 } 2669 2670 $('.js-address-region .ci-region-profile').html(options); 2671 } 2672 } 2673 2674 }); 2675 2676 ci_resetFieldOnRegionChange(); 2677 2678} 2679 2680function ci_userCityProfile(regionId){ 2681 2682 if(smartformId !== '') { 2683 return false; 2684 } 2685 2686 let selectedRegionID = ''; 2687 2688 if(regionId != '') { 2689 selectedRegionID = regionId; 2690 } 2691 2692 // let link = nb_site_url+'?nbAjax=1&ajax=yes&task=search_cities&search=%QUERY'; 2693 let link = nb_site_url_with_country_lang+'?nbAjax=1&ajax=yes&task=search_cities&search=%QUERY'; 2694 2695 if(selectedRegionID != '') { 2696 // link = nb_site_url+'?nbAjax=1&ajax=yes&task=search_cities&search=%QUERY®ionId='+selectedRegionID; 2697 link = nb_site_url_with_country_lang+'?nbAjax=1&ajax=yes&task=search_cities&search=%QUERY®ionId='+selectedRegionID; 2698 } 2699
2700 let cityField = $('.profile .js-address-city input[name="data.address.cityAndMunicipality"]'); 2701 2702 if(cityField.parent().find('#nbCity').length == 0) { 2703 cityField.parent().append('<input id="nbCity" type="text" class="gigya-input-text">'); 2704 cityField.parent().append('<input id="ci_selected_city" type="hidden" class="gigya-input-text" value="">'); 2705 } 2706 2707 cityField.addClass('hidden'); 2708 2709 let cityPostcodeField = $('input[name="data.address.postalCode"]:visible'); 2710 2711 if(cityField.length){ 2712 var ci_selectCity = new Bloodhound({ 2713 datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), 2714 queryTokenizer: Bloodhound.tokenizers.whitespace, 2715 limit: 50, 2716 remote: { 2717 url: link, 2718 filter: function (cities){ 2719 return $.map(cities.list, function (elem) { 2720 return elem; 2721 }); 2722 } 2723 } 2724 }); 2725 2726 //definisanje novog inputa 2727 let cityField_new = $('#nbCity'); 2728 cityField_new.val(cityField.val()) // dodela vrednosti iz gygia inputa 2729 cityField_new.attr('placeholder',cityField.attr('placeholder')); 2730 2731 cityField_new.on('keyup', function(e){ 2732 if($('.js-address-city .twitter-typeahead').length == 0) { 2733 isValidCity = true; 2734 } else { 2735 isValidCity = false; 2736 } 2737 2738 cityField.val(cityField_new.val()) 2739 }); 2740 2741 cityField_new.on('focusout', function(e){ 2742 if(isValidCity === false) { 2743 $(this).closest('.gigya-profile-form').find('.js-address-city input[name="data.address.cityAndMunicipality"]').val(''); 2744 setTimeout(function () { 2745 $('#nbCity').val(''); 2746 }, 300); 2747 if(ci_typeaheadStrictType == "postCodeAutoFillByCity") { 2748 cityPostcodeField.val('') 2749 } 2750 } 2751 }); 2752 2753 cityField_new.typeahead(null, { 2754 name: 'grad', 2755 display: 'name', 2756 limit: 50, 2757 highlight: true, 2758 source: ci_selectCity.ttAdapter() 2759 }).on('typeahead:selected', function (e, ret){ 2760 $('#ci_selected_city').val(ret.cityId); 2761 cityField.val(ret.name); 2762 isValidCity = true; 2763 if(ci_typeaheadStrictType == "postCodeAutoFillByCity") { 2764 cityPostcodeField.val(ret.postCode) 2765 } 2766 }); 2767 2768 ci_selectCity.initialize(); 2769 } 2770 2771 ci_resetFieldOnCityChange(); 2772} 2773 2774function ci_userStreetNumberProfile() { 2775 let steetNumber = $('.profile .js-address-street-number input[name="data.address.streetNumber"]'); 2776 2777 steetNumber.keyup(function (){ 2778 var streetNameValue = $('#nbAddress').val(); 2779 2780 if($(this).val() != '') { 2781 $.ajax({ 2782 type: "POST", 2783 url: nb_active_page_url, 2784 data: { 2785 nbAjax: '1', 2786 ajax: 'yes', 2787 task: 'search_street_nb', 2788 streetname: streetNameValue, 2789 cityid: $('#ci_selected_city').val(), 2790 streetnumber: $(this).val() 2791 }, 2792 dataType: 'json', 2793 success: function (ret) { 2794 if (ret.flag) { 2795 $('.profile .js-postal-code .gigya-input-text').val(ret.list[0].postcode); 2796 } else { 2797 $('.profile .js-postal-code .gigya-input-text').val(''); 2798 } 2799 } 2800 }); 2801 } else { 2802 $('.profile .js-postal-code .gigya-input-text').val(''); 2803 } 2804 }); 2805} 2806 2807function ci_validateAddressProfile() { 2808 $('#nbCity, input[name="data.address.postalCode').change(function () { 2809 let city = $('#nbCity').val(); 2810 let postcode = $('input[name="data.address.postalCode"]:visible').val(); 2811 2812 city = encodeURIComponent(city); 2813 postcode = encodeURIComponent(postcode); 2814 2815 2816 $.ajax({ 2817 type: "POST", 2818 url: nb_active_page_url, 2819 data:'nbAjax=1&task=validateAddressExistence&&city='+city+'&postcode='+postcode, 2820 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 2821 dataType: 'json', 2822 success: function (ret) { 2823 if(!ret.flag) { 2824 $('#nbCity').val(""); 2825 $('input[name="data.address.postalCode"]:visible').val(""); 2826 ci_createAlert('#ci-alert-invalid-address', '#alert-invalid-address') 2827 } 2828 } 2829 2830 }) 2831 }) 2832} 2833
2834function ci_userStreetProfile(cityId){ 2835 2836 if(smartformId !== '' || !ci_streetFieldAutocomplete) { 2837 return false; 2838 } 2839 2840 let selectedCityID = ''; 2841 2842 if(cityId != '') { 2843 selectedCityID = cityId; 2844 } 2845 2846 // let link = nb_site_url+'?nbAjax=1&ajax=yes&task=search_streets&search=%QUERY'; 2847 let link = nb_site_url_with_country_lang+'?nbAjax=1&ajax=yes&task=search_streets&search=%QUERY'; 2848 2849 if(selectedCityID != '') { 2850 // link = nb_site_url+'?nbAjax=1&ajax=yes&task=search_streets&search=%QUERY&cityid='+selectedCityID; 2851 link = nb_site_url_with_country_lang+'?nbAjax=1&ajax=yes&task=search_streets&search=%QUERY&cityid='+selectedCityID; 2852 } 2853 2854 let addressField = $('.profile .js-address-street input[name="data.address.street"]'); 2855 2856 if(addressField.parent().find('#nbAddress').length == 0) { 2857 addressField.parent().append('<input id="nbAddress" type="text" class="gigya-input-text">'); 2858 } 2859 2860 addressField.addClass('hidden'); 2861 2862 if(addressField.length){ 2863 2864 var ci_selectAddress = new Bloodhound({ 2865 datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), 2866 queryTokenizer: Bloodhound.tokenizers.whitespace, 2867 limit: 30, 2868 remote: { 2869 url: link, 2870 filter: function (address){ 2871 return $.map(address.list, function (elem) { 2872 return elem; 2873 }); 2874 } 2875 } 2876 }); 2877 2878 //definisanje novog inputa 2879 let addressField_new = $('#nbAddress'); 2880 addressField_new.val(addressField.val()) // dodela vrednosti iz gygia inputa 2881 addressField_new.attr('placeholder',addressField.attr('placeholder')); 2882 2883 addressField_new.on('keyup', function(e){ 2884 if($('.js-address-street .twitter-typeahead').length == 0) { 2885 isValidAddress = true; 2886 } else { 2887 isValidAddress = false; 2888 } 2889 2890 addressField.val(addressField_new.val()) 2891 }); 2892 2893 addressField_new.on('focusout', function(e){ 2894 if(isValidAddress === false) { 2895 $(this).closest('.gigya-profile-form').find('.js-address-street input[name="data.address.street"]').val(''); 2896 setTimeout(function () { 2897 $('#nbAddress').val(''); 2898 }, 300); 2899 } 2900 }); 2901 2902 addressField_new.typeahead(null, { 2903 name: 'ulica', 2904 display: 'name', 2905 highlight: true, 2906 source: ci_selectAddress.ttAdapter() 2907 }).on('typeahead:selected', function (e, ret){ 2908 addressField.val(ret.name); 2909 isValidAddress = true; 2910 }); 2911 2912 ci_selectAddress.initialize(); 2913 2914 } 2915 2916 ci_resetFieldOnAddressChange(); 2917} 2918 2919function ci_forgotPasswordClose(){ 2920 let closeModalIcon = $('#ci_modal .close-icon'); 2921 $('.js-forgot-password-ok-btn').on('click', function () { 2922 // setTimeout('window.close();',500); 2923 closeModalIcon.click(); 2924 }) 2925} 2926 2927function ci_NBLog(object){ 2928 console.log(object); 2929 2930} 2931 2932function showHideLoyaltyPurchaseFilters(){ 2933 let $items_wrapper = $('.form-filters-wrapper-items-wrapper'); 2934 let $headline = $('.headline-form-filters'); 2935 if(!$items_wrapper.length || !$headline.length){ 2936 return false; 2937 } 2938 $headline.on('click',function(){ 2939 $items_wrapper.toggleClass('active'); 2940 }) 2941 2942} 2943 2944function ci_smartFormInit() { 2945 2946 if($('.gigya-update-profile-screen').length !== 0 && smartformId !== '') { 2947 let street = $('.gigya-update-profile-screen .js-address-street'); 2948 let streetNumber = $('.gigya-update-profile-screen .js-address-street-number'); 2949 let city = $('.gigya-update-profile-screen .js-address-city'); 2950 let postCode = $('.gigya-update-profile-screen .js-postal-code'); 2951 2952 street.find("input").addClass('smartform-address-street smartform-instance-ci'); 2953 streetNumber.find("input").addClass('smartform-address-number smartform-instance-ci'); 2954 city.find("input").addClass('smartform-address-city smartform-instance-ci'); 2955 postCode.find("input").addClass('smartform-address-zip smartform-instance-ci'); 2956 2957 if(typeof city !== "undefined" && typeof street != "undefined" && typeof streetNumber != "undefined" && typeof postCode !== "undefined") { 2958 postCode.find("input").removeAttr("readonly"); 2959 city.find("input").attr("readonly", true); 2960 city.find("input").css("background-color", "#F7F7F7"); 2961 city.find("input").css("pointer-events", "none"); 2962 } 2963 2964 var inputChanged = false;
2965 var smartFormArrayOfHits = []; 2966 var smartFormClickedElement = false; 2967 2968 smartform.beforeInit = function () { 2969 if(typeof smartformId !== 'undefined' && smartformId !==''){ 2970 smartform.setClientId(smartformId); 2971 } 2972 } 2973 2974 function afterRebind() { 2975 smartform.getInstance('smartform-instance-ci'); 2976 } 2977 2978 smartform.rebindAllForms(afterRebind); 2979 2980 function validationCallback(result) { 2981 let smartFormAddress = $(inputChanged).closest('.gigya-update-profile-screen').find('.js-address-street .gigya-input-text'); 2982 let smartFormAddressNumber = $(inputChanged).closest('.gigya-update-profile-screen').find('.js-address-street-number .gigya-input-text'); 2983 2984 smartFormArrayOfHits.push(result.result.type); 2985 2986 2987 if (smartFormArrayOfHits.length === 2 && smartFormArrayOfHits[1] === smartform.AddressValidationResultType.HIT) { 2988 smartFormArrayOfHits = []; 2989 } 2990 2991 if (smartFormArrayOfHits.length === 2 && smartFormArrayOfHits[1] !== smartform.AddressValidationResultType.HIT) { 2992 clearSmartFormField(); 2993 smartFormArrayOfHits = []; 2994 } 2995 2996 if (smartFormArrayOfHits.length === 1 && smartFormAddress.val() !== '' && !$(inputChanged).is($(smartFormAddressNumber)) && 2997 smartFormArrayOfHits[0] !== smartform.AddressValidationResultType.HIT) { 2998 clearSmartFormField(); 2999 smartFormArrayOfHits = []; 3000 } 3001 3002 if (smartFormArrayOfHits.length === 1 && smartFormAddress.val() !== '' && $(inputChanged).is($(smartFormAddressNumber)) && 3003 smartFormArrayOfHits[0] === smartform.AddressValidationResultType.INSUFFICIENT_DATA) { 3004 clearSmartFormField(); 3005 smartFormArrayOfHits = []; 3006 } 3007 } 3008 3009 function clearSmartFormField() { 3010 let smartFormAddress = $(inputChanged).closest('.gigya-update-profile-screen').find('.js-address-street .gigya-input-text'); 3011 let smartFormAddressNumber = $(inputChanged).closest('.gigya-update-profile-screen').find('.js-address-street-number .gigya-input-text'); 3012 let smartFormCity = $(inputChanged).closest('.gigya-update-profile-screen').find('.js-address-city .gigya-input-text'); 3013 let smartFormPostalCode = $(inputChanged).closest('.gigya-update-profile-screen').find('.js-postal-code .gigya-input-text'); 3014 3015 if($(smartFormAddress).attr("class").indexOf("smartform") >= 0 && smartFormAddressNumber.val() !== '' && $(inputChanged).is($(smartFormAddress))) { 3016 $(smartFormAddressNumber).val(''); 3017 $(smartFormCity).val(''); 3018 $(smartFormPostalCode).val(''); 3019 return; 3020 } 3021 if($(smartFormAddress).attr("class").indexOf("smartform") >= 0 && smartFormAddress.val() !== '' && !$(inputChanged).is($(smartFormAddress))) { 3022 $(inputChanged).val(''); 3023 $(smartFormCity).val(''); 3024 $(smartFormPostalCode).val(''); 3025 return; 3026 } 3027 if($(smartFormAddress).attr("class").indexOf("smartform") >= 0 && smartFormAddressNumber.val() !== '') { 3028 $(inputChanged).val(''); 3029 } 3030 } 3031 3032 smartform.afterInit = function () { 3033 var inv_id_country = $("html").attr('lang').toUpperCase(); 3034 var instances = smartform.getInstanceIds(); 3035 3036 $(document).on("change", function (e) { 3037 if($(e.target).hasClass("gigya-input-text") && $(e.target).attr("class").indexOf("smartform") >= 0) { 3038 inputChanged = $(e.target); 3039 } else inputChanged = false 3040 }) 3041 3042 $(document).on("click", function (e) { 3043 smartFormClickedElement = $(e.target); 3044 }) 3045 3046 for(let instance of instances) { 3047 smartform.getInstance(instance).addressControl.setCountry(inv_id_country); 3048 smartform.getInstance(instance).addressControl.addValidationCallback(validationCallback); 3049 } 3050 3051 } 3052 3053 setTimeout(function () { 3054 smartform.afterInit(); 3055 }, 200) 3056 } 3057} 3058 3059function changeH1ElementsInSS(){ 3060 function changeThis(elementObj,tag){ 3061 3062 changedClass = 'nb-changed'; 3063 if(!tag){ 3064 tag = 'div'; 3065 } 3066 if(elementObj.hasClass(changedClass)){ 3067 //ako ima ne radi nista za sada 3068 }else{ 3069 elementObj.replaceWith(function() { 3070 return "<"+tag+" id='"+$(this).attr('id')+"' class='"+$(this).attr('class')+" "+changedClass+"' style='"+$(this).attr('style')+"'>" + this.innerHTML + "</"+tag+">"; 3071 }); 3072 } 3073 } 3074 3075 changeThis($('#newsletter-ci_content_caption')); 3076 changeThis($('#ci_modal_content_caption'),'h2'); 3077 3078} 3079
3080function loadCiOrdersData(page){ 3081 $(".profile-orders .loader-wrapper").removeClass("hidden"); 3082 $.ajax({ 3083 type: "POST", 3084 url: nb_active_page_url, 3085 data:{ 3086 ajax: 'yes', 3087 page: page, 3088 task: "ci_profile" 3089 }, 3090 dataType: 'json', 3091 success: function (ret) { 3092 if(ret.flag){ 3093 $('#order-table').html(ret.html); 3094 nbProduct.handleBuyProductOnListing('.orderdetails-modal'); 3095 $("html, body").animate({scrollTop: 0}, 500); 3096 } 3097 3098 $(".profile-orders .loader-wrapper").addClass("hidden"); 3099 } 3100 3101 }); 3102} 3103 3104function ci_addLog(typeAction, type, communicationData){ 3105 3106 let url = ci_addLog_url; 3107 3108 let data = { 3109 "typeAction": typeAction, 3110 "type": type, 3111 "communicationData": communicationData, 3112 }; 3113 3114 $.ajax({ 3115 type: 'POST', 3116 url: url, 3117 contentType: "application/x-www-form-urlencoded;charset=UTF-8", 3118 data: data, 3119 dataType: 'json', 3120 success: function(response) { 3121 3122 } 3123 }); 3124} 3125 3126function loadSSInWrapper() { 3127 let ssName, 3128 ssId, 3129 id, 3130 $wrapper = $('.ci-wrapper'); 3131 $wrapperNo = $('.ci-no-wrapper'); 3132 $profileSidebar = $('.ci-profile-sidebar'); 3133 3134 if ($wrapper.length) { 3135 $wrapper.each(function () { 3136 ssName = $(this).data('ss-name'); 3137 ssId = $(this).data('ss-id'); 3138 ssCiVrfy = $(this).data('ss-civrfy'); 3139 3140 redirectUrl = $(this).data('ss-redirect-url'); 3141 id = $(this).attr('id'); 3142 3143 ci_showSS(ssName, ssId, id, redirectUrl, ssCiVrfy); 3144 3145 }); 3146 3147 } 3148 3149 if ($wrapperNo.length) { 3150 redirectUrl = $wrapperNo.data('no-ss-redirect-link'); 3151 id = $wrapperNo.attr('id'); 3152 ci_onloadPage(redirectUrl, id) 3153 } 3154} 3155 3156 3157function resetApiOnCloseLoginModal(){ 3158 $('#customer_identity_layout_modal.'+ci_register_ssName).on('hidden.bs.modal', function() { 3159 gigya.apiKey = ci_themeApi; 3160 }); 3161} 3162 3163function ci_loginLinkInRegistration() { 3164 let loginBtn = $('.gigya-registration-container .js-login-lnk'); 3165 3166 loginBtn.click(function () { 3167 ci_login(); 3168 }) 3169} 3170 3171 3172window.onGigyaServiceReady = function () { 3173 3174}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.