var userRegistration = new Class({
              Implements: [Options, Events],
              options: {
                  username : '',
                  email : '',
                  password : '',
                  adresa : '', 
                  telefon : '',
                  mobilni : '',
                  newsletter : 1
              },
              initialize: function(username, email, password, adresa, telefon, mobilni, newsletter, options){
                  this.setOptions(options);
                  this.options.username = username;
                  this.options.email = email;
                  this.options.password = password;
                  this.options.adresa = adresa;
        		  this.options.telefon = telefon;
        		  this.options.mobilni = mobilni;
        		  this.options.newsletter = newsletter;
                  
        		  var userCheck = this.checkUsername();
        		  if(userCheck){
        		      if(this.checkPassword()){
        		          if(this.checkEmail()){
        		              if(this.checkAdresa()){
        		                  if(this.checkTelefon()){
        		                      return this.registrationProcess();
        		                  } else {
        		                      return false;
        		                  }
        		              } else {
        		                  return false;
        		              }
        		          } else {
        		              return false;
        		          }
        		      } else {
        		          return false;
        		      }
        		  } else {
        		      return false;
        		  }
        		  
              },
              registrationProcess : function() {
                  var jsonRequest = new Request.JSON({"url":'http://www.idikupi.com/?a=user_registration', 
    		            onComplete: function(transporter) {
        		             if(transporter[0].code == '1'){
            		             var obj2 = $('kreiraj-nalog');
            		             var Slider1 = new Fx.Slide(obj2);
                                 Slider1.toggle();
                                 
                                 
                                 
            		             var obj1 = $('login-form');
            		             var Slider = new Fx.Slide(obj1);
                                 Slider.hide();
                                 obj1.setStyle('display','block');
                                 Slider.toggle();
                                
                                 $('closeLoginBtn').addEvent('click',function(){
                                    Slider.toggle();
                                 });
            		             
                                 alert('Vaš nalog je kreiran.\nNa email adresu koju ste uneli je poslat aktivacioni email.\nMolimo Vas proverite Vasu poštu i kliknite na link u emailu koji ste dobili. ');
                                 $('usernameReg').value = '';
                                 $('passwordReg').value = '';
                                 $('email').value    = '';
                                 $('adresa').value   = '';
                                 $('telefon').value  = '';
                                 $('mobilni').value  = '';
                                 $('registerBtn').disabled = 0;  
                                 $('registerBtn').set('value','Registruj me');
            		             return true;
        		             } else {
        		                 alert('Greška u kreiranju naloga.\n\n Korisničko ime koje ste izabrali je zauzeto.\nMolimo Vas promenite korisničko ime i probajte ponovo');
        		                 $('registerBtn').disabled = 0;  
                                 $('registerBtn').set('value','Registruj me');
        		                 return false;
        		             }
        		        }, 
            			onRequest: function() {
            				$('registerBtn').disabled = 1;  
                            $('registerBtn').set('value','Registracija u toku...');
            			}
        		  }).POST(
        		          {
        		           'username' : this.options.username, 
        		           'password' : this.options.password, 
        		           'email'    : this.options.email, 
        		           'adresa'   : this.options.adresa, 
        		           'telefon'  : this.options.telefon, 
        		           'mobilni'  : this.options.mobilni, 
        		           'newsletter' : this.options.newsletter,
        		           'action'   :'kreirajKorisnika'
        		          }
        		        );
              },
              checkUsername: function(){
                    var u = this.options.username;
                    if(u.length < 6 || u.length > 16){
                        alert('Korisničko ime mora da bude dužine od 6 i kraće od 16 karaktera\nDužina Vašeg korisničkog imena iznosi ' + u.length);
                        return false;
                    }
                    return true;
              },
              checkPassword: function(){
                    var p = this.options.password;
                    if(p.length < 6 || p.length > 16){
                        alert('Šifra ne može biti kraća od 6 i duža od 16 karaktera');
                        return false;
                    }
                    return true;
              },
              checkEmail : function() {
                var e = this.options.email;
                if(!e.length){
                    alert('E-mail polje je obavezno');
                    return false;   
                }
                
                var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
                if (!filter.test(e)) {
                    alert('Uneta email adresa nije ispravna');
                    $('email').focus;
                    return false;
                }
                
                return true;
              },
              checkAdresa : function(){
                    var a = this.options.adresa;
                    if(a.length == 0){
                        alert('Polje Adresa je obavezno');
                        return false;
                    }
                    if (!this.trim(a)) {
                        alert('Polje Adresa je obavezno');
                        $('adresa').value = this.trim(a);
                        return false;
                    }
                    $('adresa').value = this.trim(a);
                    return true;
              }, 
              trim : function (str, chars) {
                    return this.ltrim(this.rtrim(str, chars), chars);
              },
              ltrim : function (str, chars) {
                    chars = chars || "\\s";
                    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
              },
              rtrim : function (str, chars) {
                    chars = chars || "\\s";
                    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
              },
              checkTelefon : function(){
                    var t = this.options.telefon;
                    if(t.length == 0){
                        alert('Polje Telefon je obavezno i treba da bude oblika 034123456');
                        return false;
                    }
                    if (!this.trim(t)) {
                        alert('Polje Telefon je obavezno i treba da bude oblika 034123456');
                        $('telefon').value = this.trim(t);
                        return false;
                    }
                    var filter = /^([0-9]{9,11})+$/;
                    if (!filter.test(t)) {
                        alert('Telefon koji ste uneli nije ispravan. Unesite telefon oblika 034123456');
                        return false;
                    }
                    $('telefon').value = this.trim(t);
                    return true;
              }
        });