/**
* JS povezani s prijavo in registracijo
*/
(function ($) {
'use strict';
// To understand behaviors, see https://drupal.org/node/756722#behaviors
/* Drupal.behaviors.prijavaInRegistracija = {
attach: function (context, settings) {
}
};*/
jQuery(document).ready(function () {
// Ob zaprtju modala odstranimo vse napake
jQuery('.closemodal').on('click', function(){
jQuery('.error-message').hide();
});
/*
* LOGIN SKRIPTE
*/
jQuery('#modal-open-login, .odpri-login').on('click', function () {
document.cookie = "nakup=1;expires=Thu, 01 Jan 1970 00:00:01 GMT";
odpriAaiLoginObvestilo();
});
jQuery('.nakup-brez-registracije').on('click', function () {
var paket = jQuery(this).attr('data-paket');
var cas = new Date();
cas.setMinutes(cas.getMinutes() + 120);
document.cookie = "nakup=1;expires=" + cas + ";path=/";
document.cookie = "paket=" + paket + ";expires=" + cas + ";path=/";
odpriAaiLoginObvestilo();
});
// Drupal nova prijava
jQuery('#forma-prijava .submit-prijava').on('click', function(){
izvediPrijavoUporabnika();
});
jQuery('.prijava-password-input').keyup(function(e){
if(e.keyCode == 13){
izvediPrijavoUporabnika();
}
});
// Odpremo drop down menu za uporabnika
jQuery('#user-login-menu').on('click', function () {
jQuery('#user-menu').toggle();
});
// Odpremo drop down menu za uporabnika
jQuery('#user-login-menu-mobile').on('click', function () {
jQuery('#user-menu-mobile').toggle();
});
// Obnovitev gesla
jQuery('#open-modal-lost-password').on('click', function () {
jQuery('#modal-login').hide();
jQuery('#modal-lost-password').css('display', 'flex');
});
jQuery('#submit-lost-password').on('click', function () {
jQuery('.obvestilo').empty().hide();
jQuery('#input-obnovitev-email').removeClass('error');
var emailObnovitev = jQuery('#obnovitev-gesla-email').val();
if (emailObnovitev.length == 0 || emailObnovitev.length > 1 && (emailObnovitev.search('@') == -1 || emailObnovitev.indexOf('.') == -1)) {
jQuery('#input-obnovitev-email').addClass('error');
return false;
}
// V kolikor je vse ok poljemo POST request, da preverimo v bazi
jQuery.post('/api/drupal/reset_password', {
email: emailObnovitev,
ajax: true,
jezik: pridobiJezik()
}).done(function (val) {
val = JSON.parse(val);
jQuery('#modal-lost-password .w-form-done').html('').hide();
jQuery('#modal-lost-password .w-form-fail').hide();
if (val.type == 'success') {
jQuery('#modal-lost-password .w-form-done').html('
' + val.data.text + '
').show();
// Če je bil email uspešno poslal potem okno zapremo po 5 sekundah
setTimeout(function () {
jQuery("#modal-lost-password").hide();
jQuery('#modal-lost-password .w-form-done').hide();
jQuery("#obnovitev-gesla").val('');
}, 2000);
} else {
// Napaka, če email ne obstaja v bazi
jQuery('#modal-lost-password #error-lost-password').html('' + val.data.text + '
').show();
}
});
});
// AKtivacija izgubljenega gesla
if (window.location.hash == '#aktivacija-gesla') {
jQuery('#modal-lost-password-activate').show();
}
jQuery('#submit-lost-password-activation').on('click', function () {
jQuery('.w-form-fail').hide();
jQuery('.error').removeClass('error');
var email = jQuery('#aktivacija-email').val();
var geslo = jQuery('#aktivacija-geslo').val();
var koda = '';
var jezik = jQuery('#modal-lost-password [name="jezik"]').val();
var results = new RegExp('[\?&]code=([^]*)').exec(window.location.href);
if (results[1].length > 10)
koda = results[1];
if (email.length == 0 || geslo.length == 0 || koda.length == 0) {
jQuery('#error-aktivacija-gesla').show();
if (email.length == 0) {
jQuery('#aktivacija-email').addClass('error');
}
if (geslo.length == 0) {
jQuery('#aktivacija-geslo').addClass('error');
}
return false;
}
// V kolikor je vse ok poljemo POST request, da preverimo v bazi
jQuery.post('/frontend/api/api.php?action=reset_password_activate', {
email: email,
pass: geslo,
code: koda,
ajax: true,
lang: jezik
}).done(function (val) {
val = JSON.parse(val);
jQuery('#error-aktivacija-gesla').removeClass('w-form-fail').removeClass('w-form-done').html('').hide();
if (val.type == 'success') {
jQuery('#error-aktivacija-gesla').addClass('w-form-done').html('' + val.text + '
').show();
// Če je bil email uspešno poslal potem okno zapremo po 5 sekundah
setTimeout(function () {
window.location.href = val.action;
}, 5000);
} else {
// Napaka, če email ne obstaja v bazi
jQuery('#error-aktivacija-gesla').addClass('w-form-fail').html('' + val.text + '
').show();
}
});
});
/** END LOGIN SKRIPTE **/
/*
* REGISTRACIJA UPORABNIKA IN SKRIPTE POVEZANE S TEM
*/
// Forma za registracijo
jQuery('#registracija-uporabnika .submit-btn').on('click', function (event) {
jQuery('.error-field').removeClass('error-field');
jQuery('.error').removeClass('error');
jQuery('.error-empty, .error-message').hide();
// Obravnamo manjkajoča polja
if (jQuery('#register-form [name="email"]').val().length < 2) {
jQuery('#register-form [name="email"]').addClass('error error-field').siblings('.error-empty').addClass('error').show();
}
if (jQuery('#register-form [name="ime"]').val().length < 2) {
jQuery('#register-form [name="ime"]').addClass('error error-field').siblings('.error-empty').addClass('error').show();
}
if (jQuery('#register-form #geslo').val().length < 2) {
jQuery('#register-form #geslo').addClass('error error-field').siblings('.error-empty').addClass('error').show();
}
if (jQuery('#register-form #geslo2').val().length < 2) {
jQuery('#register-form #geslo2').addClass('error error-field').siblings('.error-empty').addClass('error').show();
}
if (!jQuery('#register-form [name="agree"]').is(':checked')) {
jQuery('#register-form [name="agree"]').addClass('error').siblings('#agreelabel, .checkbox-display').addClass('error').find('.error-empty').addClass('error').show();
}
if (jQuery('#register-form [name="email"]').val().length == 0 ||
jQuery('#register-form [name="ime"]').val().length == 0 ||
!jQuery('#register-form [name="agree"]').is(':checked')
) {
return false;
}
event.preventDefault();
var sendVariables = jQuery('#registracija-uporabnika :input').serialize();
sendVariables += '&ajax=1';
jQuery.post('/api/drupal/register', sendVariables, function (data) {
jQuery('.napaka-registracija').hide();
var response = JSON.parse(data);
jQuery('.error-field').removeClass('error-field');
if (response.type && response.type == 'success') {
jQuery('#reg-confirm-email').text(jQuery('#register-form [name="email"]').val());
jQuery('#reg-confirm-ime').text(jQuery('#register-form [name="ime"]').val());
jQuery('#reg-confirm-geslo').text('****');
jQuery('#reg-confirm-gdpr').text('NE');
if (window.location.href.search('/d/en') > 0) {
if (jQuery('#GdprAgree').is(':checked')) {
jQuery('#reg-confirm-gdpr').text('YES');
} else {
jQuery('#reg-confirm-gdpr').text('NO');
}
} else {
if (jQuery('#GdprAgree').is(':checked')) {
jQuery('#reg-confirm-gdpr').text('DA');
}
}
if (jQuery('#register-form [name="geslo"]').val().length == 0) {
jQuery('#reg-confirm-geslo').text('/');
}
jQuery('#register-form').hide();
jQuery('.glavni-naslov').hide();
jQuery('#register-form-confirm').css('display', 'flex');
} else {
// Izpišemo napake
if(response.type == 'error') {
if (response.data.napaka && response.data.napaka.length > 0) {
jQuery('.napaka-registracija').show();
var napake = '';
jQuery.each(response.data.napaka, function (key, val) {
napake += '' + val + '
';
});
jQuery('.napaka-registracija').html(napake);
}
if (response.error_email) {
jQuery('#register-form [name="email"]').addClass('error-field');
}
if (response.error_ime) {
jQuery('#register-form [name="ime"]').addClass('error-field');
}
if (response.error_geslo) {
jQuery('#register-form [name="geslo"]').addClass('error-field');
jQuery('#register-form [name="geslo2"]').addClass('error-field');
}
}
if (response.data.new_username.length > 0) {
jQuery('#register-form #registracija-vzdevek').val(response.data.new_username);
}
//Ponastavi reCaptcho
if (grecaptcha) {
grecaptcha.reset();
}
}
});
});
// Pri potrditvi omogočimo gum nazaj
jQuery('#reg-confirm-back').on('click', function () {
jQuery('#register-form-confirm').hide();
jQuery('#register-form').css('display', 'flex');
});
// Pri potrditvi omogočimo gum nazaj
jQuery('#lost-password-back').on('click', function () {
jQuery('#modal-lost-password').hide();
jQuery('#modal-login').css('display', 'flex');
});
//Pošljemo potrditven email
jQuery('#reg-confirm-next').on('click', function (event) {
event.preventDefault();
var sendVariables = jQuery('#registracija-uporabnika :input').serialize();
sendVariables += '&ajax=1';
jQuery.post('/api/drupal/register_confirm', sendVariables, function (data) {
var response = JSON.parse(data);
if (response.type && response.type == 'success') {
var text = jQuery('#register-form-email-sent').html().replace(/SFMAIL/gi, jQuery('#reg-confirm-email').text());
jQuery('#register-form-email-sent').html(text);
jQuery('#reg-confirm-email').text('');
jQuery('#reg-confirm-ime').text('');
jQuery('#reg-confirm-geslo').text('');
jQuery('#reg-confirm-gdpr').text('');
// Počistimo formo
jQuery(':input', '#register-form')
.not(':button, :submit')
.val('')
.removeAttr('checked');
jQuery('#register-form-confirm').hide();
jQuery('#register-form-email-sent').css('display', 'flex');;
}
});
});
// GUmbi na desni front
jQuery('#odpri-prijavo, .odpri-prijavo').on('click', function () {
jQuery('.error-message').html('').hide();
jQuery('.rexister-modal').hide();
jQuery('#modal-login').css('display', 'flex');
});
jQuery(document).on('click', "#odpri-registracijo", function () {
jQuery('.rexister-modal').hide();
jQuery('.error-message').html('').hide();
jQuery('#modal-registration').css('display', 'flex');
});
if (window.location.hash == '#neregistriran-uporabnik') {
jQuery('#spletna-uporaba-modal').show();
}
jQuery(document).on('click', '#gumb-spletna-uporaba, .gumb-spletna-uporaba', function (e) {
e.preventDefault();
if(jQuery('html')[0].lang == 'sl') {
odpriAaiLoginObvestilo();
} else {
jQuery('#spletna-uporaba-modal').show();
}
});
jQuery('#gumb-lastna-namestitev').on('click', function () {
jQuery('#lastna-namestitev-modal').show();
});
// Odjava v Drupalu
jQuery('#poslji-odjavo').on('click', function(){
jQuery.post(jQuery('[name="odjava"]').attr('action'), {
ajax: true,
}, function (data) {
var response = JSON.parse(data);
if(response.type == 'success') {
setTimeout(function () {
window.location = response.data.url;
}, 500);
}
});
});
});
})(jQuery);
function izvediPrijavoUporabnika()
{
// ODstranimo vse napake
jQuery('.error-field').removeClass('error-field');
jQuery('.error-empty, .error-message').hide();
jQuery(':input[required]:visible').each(function () {
if (jQuery(this).val() == '') {
jQuery(this).addClass('error-field').siblings('.error-empty').addClass('error').show();
}
});
if( jQuery('.error-field').length > 0){
return false;
}
jQuery('#prijava-1ka .error-message').empty().hide();
var sendVariables = jQuery('#forma-prijava :input').serialize();
var url = jQuery('#forma-prijava').attr('action');
jQuery.post(url, sendVariables, function (data) {
var response = JSON.parse(data);
if(response.type == 'success'){
return window.location = response.data.url;
} else if(response.type == 'error') {
let sporocilo = vrniBesediloNapake(response.data);
jQuery('#prijava-1ka .error-message').append(sporocilo).show();
}
});
}
function vrniBesediloNapake(besedilo){
let sporocilo;
if(jQuery.isArray(besedilo)){
sporocilo = '';
jQuery.each(besedilo, function (index, value){
sporocilo += '- ' + value + '
';
});
sporocilo += '
';
} else {
sporocilo = besedilo;
}
return sporocilo;
}
function CheckEmail(text) {
jQuery('#modal-registration .w-form-fail').html('').hide();
jQuery('.w-input').removeClass('error');
var text = text || 'Prosimo, popravite email';
var Email = jQuery('#register-form [name="email"]').val();
if (Email.length > 1 && (Email.search('@') == -1 || Email.indexOf('.') == -1)) {
jQuery('#modal-registration .w-form-fail').html('' + text + '
').show();
jQuery('#modal-registration [type="email"]').addClass('error');
return false;
}
return true;
}
function InsertName() {
var Email = jQuery('#register-form [name="email"]').val();
var lokacija = Email.search('@');
if (Email.search('@') == -1) {
lokacija = Email.length;
}
var Ime = Email.substring(0, lokacija);
if (jQuery('#register-form [name="ime"]').val().length < 2) {
jQuery('#register-form [name="ime"]').val(Ime);
}
}
function CheckEmailTypo(text) {
var email = jQuery('#register-form [name="email"]').val();
var domains = ['gmail.com', 'hotmail.com', 'guest.arnes.si', 'siol.net'];
var splitEmail = email.split('@');
for (var i = 0; i < domains.length; i++) {
var domain = domains[i];
if (preveriZaTipkarskoNapakoVemailu(splitEmail[1], domain)) {
jQuery('#modal-registration .w-form-fail').html('' + text + ' @' + domain + '?
').show();
return jQuery('#modal-registration [type="email"]').addClass('error');
}
}
return '';
}
function preveriZaTipkarskoNapakoVemailu(uporabnikovaDomena, domena) {
// Domeni se ujemata
if (uporabnikovaDomena && domena && uporabnikovaDomena.includes(domena))
return false;
//Preverimo če vsebuje dve piki ali vejico
if (new RegExp('(\\.{2})|(\,)').test(uporabnikovaDomena) && uporabnikovaDomena.substring(0, 3) == domena.substring(0, 3)) {
return true;
}
// domeno razbijemo, da preverimo napake za posamezne črke gm|ail
for (var i = 1; i < domena.length; i++) {
var prviDel = domena.substring(0, i);
var preostenekBesede = domena.substring(i);
// preverimo, če so črke napačne
if (new RegExp(prviDel + '.' + preostenekBesede.substring(1)).test(uporabnikovaDomena)) {
return true;
}
// preverimo, če je dodana črka preveč
if (new RegExp(prviDel + '.' + preostenekBesede).test(uporabnikovaDomena)) {
return true;
}
// majkajoča črka
if (preostenekBesede !== 'mail' && new RegExp('(' + prviDel + '{0}' + preostenekBesede + ')|(' + domena + '{0})').test(uporabnikovaDomena)) {
return true;
}
if (domena == 'gmail.com' && new RegExp('gmail.si|gmail.net').test(uporabnikovaDomena) ||
domena == 'guest.arnes.si' && new RegExp('arnes.si').test(uporabnikovaDomena) ||
domena == 'siol.net' && new RegExp('siol.com').test(uporabnikovaDomena)) {
return true;
}
if (domena == 'hotmail.com' && new RegExp('hotmail.si').test(uporabnikovaDomena)) {
return true;
}
// test for switched letters
var switchedLetters = [
domena.substring(0, i - 1),
domena.charAt(i),
domena.charAt(i - 1),
domena.substring(i + 1)
].join('');
if (uporabnikovaDomena.includes(switchedLetters)) {
return true;
}
}
return false;
}
function pridobiJezik() {
return jQuery('html')[0].lang;
}
function odpriAaiLoginObvestilo(){
jQuery('.modal-intro-title').hide();
jQuery('.nakup-prijava').hide();
jQuery('.modal-intro-login-text').css('display', 'flex');
if(pridobiJezik() == 'sl') {
jQuery('#modal-open-1ka').removeClass('modal-goto-registration').addClass('modal-open-login-obrazec');
jQuery('#modal-info-login').css('display', 'flex');
// V kolikor gre za nakup prikažemo še obvestilo o nakupu
if (document.cookie.indexOf('nakup=') > 0) {
jQuery('.nakup-prijava').css('display', 'flex');
}
} else {
jQuery('#modal-login').css('display', 'flex');
}
}
function CookieAlert(link, jezik, url) {
var link = link || '/';
var jezik = jezik || 'sl';
var url = url || false;
if (link == 'fb') {
link = '/frontend/api/api.php?action=login_facebook';
// link = 'https://www.1ka.si/fb_login.php';
}
// if (link == 'google') {
// link = '/frontend/api/api.php?action=login_google';
// }
if (link == 'aai') {
link = 'https://aai.1ka.si/Shibboleth.sso/Login';
}
var da = 'Nadaljuj';
var ne = 'Prekliči';
if (jezik == 'en') {
var da = 'Continue';
var ne = 'Cancel';
}
jQuery('#kuki').dialog({
height: "auto",
width: 520,
dialogClass: 'pojavno-okno-1ka',
modal: true,
buttons: [{
text: da,
class: "gumbi-pri-zunanji-prijavi",
click: function () {
jQuery(this).dialog("close");
document.location.href = link;
}
}, {
text: ne,
click: function () {
jQuery(this).dialog("close");
if (url) {
return false;
}
else {
document.location.href = '/';
}
}
}]
});
// Če strinjanje ne obstaja, prikažemo vse gumbe
if(jQuery('#pogoji-strinjanje').length == 0)
jQuery('.gumbi-pri-zunanji-prijavi').show();
}
// Za google prijavo moramo postati formo - kar sestavimo direktno url
/*
*/
function CookieAlertGoogle(jezik, url) {
//var link = link || '/';
var jezik = jezik || 'sl';
var url = url || false;
// Sestavimo url
var url = 'https://accounts.google.com/o/oauth2/auth?';
url += 'response_type=code';
url += '&client_id=944153399779-m39ehn45vm6b64l0sac7hphtpm0esgqs.apps.googleusercontent.com';
url += '&redirect_uri=https://www.1ka.si/frontend/api/google-oauth2.php';
if(jezik == 'en')
url += '&state=regFromEnglish';
else
url += '&state=';
url += '&scope=email';
url += '&access_type=online';
url += '&prompt=consent';
url += '&openid.realm=https://www.1ka.si';
var da = 'Nadaljuj';
var ne = 'Prekliči';
if (jezik == 'en') {
var da = 'Continue';
var ne = 'Cancel';
}
jQuery('#kuki').dialog({
height: "auto",
width: 520,
dialogClass: 'pojavno-okno-1ka',
modal: true,
buttons: [{
text: da,
class: "gumbi-pri-zunanji-prijavi",
click: function () {
jQuery(this).dialog("close");
document.location.href = url;
}
}, {
text: ne,
click: function () {
jQuery('#pogoji-strinjanje').attr('checked', false);
jQuery(this).dialog("close");
if (url) {
return false;
}
else {
document.location.href = '/';
}
}
}]
});
// Če strinjanje ne obstaja, prikažemo vse gumbe
if(jQuery('#pogoji-strinjanje').length == 0)
jQuery('.gumbi-pri-zunanji-prijavi').show();
}