Guest User

Untitled

a guest
Sep 3rd, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. jQuery(document).ready(function($) {
  2.  
  3.     // hide messages
  4.     $("#error").hide();
  5.     $("#success").hide();
  6.        
  7.     var errorColor = "#fec5c5";
  8.    
  9.     // USERNAME CHECK
  10.     var usernameTimer;
  11.     var doneTypingInterval = 1000;  
  12.     //on keyup, start the countdown
  13.     $('input#username').keyup(function(){
  14.         clearTimeout(usernameTimer);
  15.         if ($('input#username').val) {
  16.             usernameTimer = setTimeout(doneTypingUsername, doneTypingInterval);
  17.         }
  18.     });
  19.     function doneTypingUsername () {
  20.         if(!anyInput("username", 3, 20, "Korisničko ime", errorColor)){
  21.             return false;
  22.         }
  23.     }
  24.    
  25.     // PASSWORD CHECK
  26.     var passwordTimer;
  27.     $('input#password').keyup(function(){
  28.         clearTimeout(passwordTimer);
  29.         if ($('input#password').val) {
  30.             passwordTimer = setTimeout(doneTypingPassword, 500);
  31.         }
  32.     });
  33.     function doneTypingPassword () {
  34.         if(!passwordInput("password", "Šifra", errorColor)){
  35.             return false;
  36.         }
  37.     }
  38.  
  39.     // NAME CHECK
  40.     var nameTimer;
  41.     $('input#name').keyup(function(){
  42.         clearTimeout(nameTimer);
  43.         if ($('input#name').val) {
  44.             nameTimer = setTimeout(doneTypingName, doneTypingInterval);
  45.         }
  46.     });
  47.     function doneTypingName () {
  48.         if(!onlyTextInput("name", 3, 20, "Ime", errorColor)){
  49.             return false;
  50.         }
  51.     }
  52.    
  53.     // SURNAME CHECK
  54.     var surnameTimer;
  55.     $('input#surname').keyup(function(){
  56.         clearTimeout(surnameTimer);
  57.         if ($('input#surname').val) {
  58.             surnameTimer = setTimeout(doneTypingSurname, doneTypingInterval);
  59.         }
  60.     });
  61.     function doneTypingSurname () {
  62.         if(!onlyTextInput("surname", 3, 20, "Prezime", errorColor)){
  63.             return false;
  64.         }
  65.     }
  66.    
  67.     // DATE CHECK
  68.     var dateTimer;
  69.     $('input#date').keyup(function(){
  70.         clearTimeout(dateTimer);
  71.         if ($('input#date').val) {
  72.             dateTimer = setTimeout(doneTypingDate, 1000);
  73.         }
  74.     });
  75.     function doneTypingDate () {
  76.         if(!dateInput("date", "Datum rođenja", errorColor)){
  77.             return false;
  78.         }
  79.     }
  80.  
  81.     // EMAIL CHECK
  82.     var emailTimer;
  83.     $('input#email').keyup(function(){
  84.         clearTimeout(emailTimer);
  85.         if ($('input#email').val) {
  86.             emailTimer = setTimeout(doneTypingEmail, 1000);
  87.         }
  88.     });
  89.     function doneTypingEmail () {
  90.         if(!emailInput("email", "Email", errorColor)){
  91.             return false;
  92.         }
  93.     }
  94.     // on submit...
  95.     $("#registerForm #submit").click(function() {
  96.         $("#error").hide();
  97.         var genders = ["Muski", "Zenski"];
  98.         var error = 0;
  99.        
  100.         if(!anyInput("username", 3, 20, "Korisničko ime", errorColor)){
  101.             error = 1;
  102.         }
  103.         if(!passwordInput("password", "Šifra", errorColor)){
  104.             error = 1;
  105.         }
  106.         if(!checkPasswordMatch("password", "retypepassword", "Šifra", errorColor)){
  107.             error = 1
  108.         }
  109.         if(!onlyTextInput("name", 3, 20, "Ime", errorColor)){
  110.             error = 1;
  111.         }
  112.         if(!onlyTextInput("surname", 3, 20, "Prezime", errorColor)){
  113.             error = 1;
  114.         }
  115.         if(!dateInput("date", "Datum rođenja", errorColor)){
  116.             error = 1;
  117.         }
  118.         if(!selectInput("gender", "Pol", errorColor, genders)){
  119.             error = 1;
  120.         }
  121.         if(!emailInput("email", "Email", errorColor)){
  122.             error = 1;
  123.         }  
  124.        
  125.         if (error == 0)
  126.         {
  127.             var username = $("input#username").val();
  128.             var password = $("input#password").val();
  129.             var name = $("input#name").val();
  130.             var surname = $("input#surname").val();
  131.             var date = $("input#date").val();
  132.             var gender = $("#gender").val();
  133.             var email = $("input#email").val();
  134.                
  135.             var dataString = 'username='+ username
  136.             + '&password=' + password        
  137.             + '&name=' + name
  138.             + '&surname=' + surname
  139.             + '&date=' + date
  140.             + '&gender=' + gender
  141.             + '&email=' + email;
  142.            
  143.             //$("#success").fadeIn();
  144.             //$("#registerForm").fadeOut();
  145.            
  146.             $.ajax({
  147.                 type:"POST",
  148.                 url: "../utility/register_check.php",
  149.                 data: dataString,
  150.                 success: success()
  151.             });
  152.         }
  153.        
  154.     });
  155.     function success(){
  156.         $("#success").fadeIn();
  157.         $("#registerForm").fadeOut();
  158.     }
  159.     return false;
  160. });
  161.  
  162. function markErrorInField(fieldId, errorColor, errorMsg){
  163.     document.getElementById(fieldId).setAttribute("title",errorMsg);
  164.     $("input#" + fieldId).poshytip({
  165.         className: 'tip-yellowsimple',
  166.         showOn: 'focus',
  167.         alignTo: 'target',
  168.         alignX: 'right',
  169.         alignY: 'center',
  170.         offsetX: 5
  171.     });
  172.     $("input#" + fieldId).css("background", errorColor);
  173.     return false;
  174. }
  175.  
  176. function markNoErrorInField(fieldId, msg){
  177.     document.getElementById(fieldId).setAttribute("title",msg);
  178.     $("input#" + fieldId).poshytip({
  179.         className: 'tip-yellowsimple',
  180.         showOn: 'focus',
  181.         alignTo: 'target',
  182.         alignX: 'right',
  183.         alignY: 'center',
  184.         offsetX: 5
  185.     });
  186.     $("input#" + fieldId).css("background", "#d7f8cb");
  187.     return true;
  188. }
  189.  
  190. function markErrorInSelectField(fieldId, errorColor, errorMsg){
  191.     document.getElementById(fieldId).setAttribute("title",errorMsg);
  192.     $("#" + fieldId).poshytip({
  193.         className: 'tip-yellowsimple',
  194.         showOn: 'focus',
  195.         alignTo: 'target',
  196.         alignX: 'right',
  197.         alignY: 'center',
  198.         offsetX: 5
  199.     });
  200.     $("#" + fieldId).css("background", errorColor);
  201.     return false;
  202. }
  203.  
  204. function markNoErrorInSelectField(fieldId, msg){
  205.     document.getElementById(fieldId).setAttribute("title", msg);
  206.     $("#" + fieldId).poshytip({
  207.         className: 'tip-yellowsimple',
  208.         showOn: 'focus',
  209.         alignTo: 'target',
  210.         alignX: 'right',
  211.         alignY: 'center',
  212.         offsetX: 5
  213.     });
  214.     $("#" + fieldId).css("background", "#d7f8cb");
  215.     return true;
  216. }
  217.  
  218. function onlyTextInput(fieldId, minLenght, maxLength, fieldName, errorColor){
  219.    
  220.     var field = $("input#" + fieldId).val();
  221.    
  222.     if(field == ""){
  223.         return markErrorInField(fieldId, errorColor, fieldName + " je obavezno.");
  224.     }
  225.     else if (field.length < minLenght){
  226.         return markErrorInField(fieldId, errorColor, fieldName + " je prekratko.");
  227.     }
  228.     else if (field.length > maxLength){
  229.         return markErrorInField(fieldId, errorColor, fieldName + " je predugo. Dozvoljeno je " + maxLength + " znakova.");
  230.     }
  231.     else {
  232.         for (var i = 0; i < field.length; i++){
  233.            
  234.             if(!(field.charAt(i).toUpperCase() >= "A" && field.charAt(i).toUpperCase() <= "Z"))
  235.             {
  236.                 return markErrorInField(fieldId, errorColor, fieldName + " sadrži znakove koji nisu slova.");
  237.             }
  238.         }
  239.         return markNoErrorInField(fieldId, "Unesite " + fieldName.toString().toLowerCase());
  240.     }
  241. }
  242.  
  243. function anyInput(fieldId, minLenght, maxLength, fieldName, errorColor){
  244.     var field = $("input#" + fieldId).val();
  245.    
  246.     if(field == ""){
  247.         return markErrorInField(fieldId, errorColor, fieldName + " je obavezno.");
  248.     }
  249.     else if (field.length < minLenght){
  250.         return markErrorInField(fieldId, errorColor, fieldName + " je prekratko.");
  251.     }
  252.     else if (field.length > maxLength){
  253.         return markErrorInField(fieldId, errorColor, fieldName + " je predugo. Dozvoljeno je " + maxLength + " znakova.");
  254.     }
  255.     else
  256.         return markNoErrorInField(fieldId, "Unesite " + fieldName.toString().toLowerCase());
  257. }
  258.  
  259. function dateInput(fieldId, fieldName, errorColor){
  260.     var field = $("input#" + fieldId).val();
  261.     if(field == "")
  262.         return markErrorInField(fieldId, errorColor, fieldName + " je obavezno.");
  263.     var dateRegEx = /^([0]?[1-9]|[1|2][0-9]|[3][0|1])[./-]([0]?[1-9]|[1][0-2])[./-]([0-9]{4}|[0-9]{2})$/;
  264.     if(!dateRegEx.test(field))
  265.         return markErrorInField(fieldId, errorColor, "Datum mora biti u dd.mm.gggg formatu.");
  266.     else
  267.         return markNoErrorInField(fieldId, "Unesite " + fieldName.toString().toLowerCase() + " u dd.mm.gggg formatu.");
  268. }
  269.  
  270. function emailInput(fieldId, fieldName, errorColor){
  271.     var field = $("input#" + fieldId).val();
  272.     if(field == "")
  273.         return markErrorInField(fieldId, errorColor, fieldName + " je obavezno.");
  274.     var emailRegEx = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
  275.     if(!emailRegEx.test(field))
  276.         return markErrorInField(fieldId, errorColor, "Unesena email adresa nije ispravna");
  277.     else
  278.         return markNoErrorInField(fieldId, "Unesite " + fieldName.toString().toLowerCase() + ".");
  279. }
  280.  
  281. function passwordInput(fieldId, fieldName, errorColor){
  282.     var field = $("input#" + fieldId).val();
  283.     if(field == "")
  284.         return markErrorInField(fieldId, errorColor, fieldName + " je obavezno.");
  285.     else if(field.length < 6)
  286.         return markErrorInField(fieldId, errorColor, "Šifra mora biti minimalno duga 6 znakova");
  287.     else{
  288.         var passwordStrength = 1;
  289.         var numRegEx = /[0-9]/;
  290.         var specRegEx = /[!."#$%&\/\[\]()=?*_-]/;
  291.         var clRegex = /[A-Z]/;
  292.         passwordStrength +=  numRegEx.test(field) + specRegEx.test(field) + clRegex.test(field);
  293.         return markPasswordStrengthField(fieldId, passwordStrength);
  294.     }
  295. }
  296.  
  297. function markPasswordStrengthField(fieldId, passwordStrength){
  298.     if (passwordStrength == 1)
  299.         $("input#" + fieldId).css("background", "#fee0b4");
  300.     else if (passwordStrength == 2)
  301.         $("input#" + fieldId).css("background", "#fbfdb3");
  302.     else if (passwordStrength == 3)
  303.         $("input#" + fieldId).css("background", "#d7f8cb");
  304.     else
  305.         $("input#" + fieldId).css("background", "#83fa76");
  306.    
  307.     document.getElementById(fieldId).setAttribute("title","Sigurnost šifre: " + passwordStrength);
  308.     $("input#" + fieldId).poshytip({
  309.         className: 'tip-yellowsimple',
  310.         showOn: 'focus',
  311.         alignTo: 'target',
  312.         alignX: 'right',
  313.         alignY: 'center',
  314.         offsetX: 5
  315.     });
  316.    
  317.     return true;
  318. }
  319.  
  320. function selectInput(fieldId, fieldName, errorColor, listOfValues){
  321.     var field = $("#" + fieldId).val();
  322.     if(field == "Odaberite" || field == "")
  323.         return markErrorInSelectField(fieldId, errorColor, "Odaberite vrijednost za polje " + fieldName + ".");
  324.     else {
  325.         for (var i = 0; i < listOfValues.length; i++){
  326.             if (field == listOfValues[i])
  327.                 return markNoErrorInSelectField(fieldId, "Odaberite " + fieldName.toString().toLowerCase() + ".");
  328.         }
  329.         return markErrorInSelectField(fieldId, errorColor, "Niste odabrali vrijednost.");
  330.     }  
  331. }
  332.  
  333. function checkPasswordMatch(passFieldId1, passFieldId2, fieldName, errorColor){
  334.    
  335.     var field = $("input#" + passFieldId2).val();
  336.     if(field == "")
  337.         return markErrorInField(passFieldId2, errorColor, fieldName + " je obavezno.");
  338.    
  339.     var password1 = $("input#" + passFieldId1).val();
  340.     var password2 = $("input#" + passFieldId2).val();
  341.     if (password1 != password2){
  342.         markErrorInField(passFieldId1, errorColor, "Šifre se ne poklapaju.");
  343.         markErrorInField(passFieldId2, errorColor, "Šifre se ne poklapaju");
  344.         return false;
  345.     }
  346.     else
  347.     {
  348.         markNoErrorInField(passFieldId1, "Unesite šifru.");
  349.         markNoErrorInField(passFieldId2, "Unesite šifru.");
  350.         return true;
  351.     }
  352. }
Add Comment
Please, Sign In to add comment