

var validator = new function() {
       // $.fn.validate = validate() {};
    $.fn.validate = {
    		registerLang: "",
    		registerADC:"",
    		registerLanding:"",	
    		
    	uservalid:false,
    	emailvalid:false,
    	passwordvalid:false,
    	usernameError:"",
    	usernameShortError:"",
    	usernameLongError:"",
    	passError:"",
    	emailError:"",
        init: function(o) {
    
          if(o.name == 'username') { this.username(o) };
          if(o.name == 'password') { this.password(o) };
          if(o.name == 'email') { this.email(o) };
         if(this.allvalid())
        	 this.setButtonActive();
         else
        	 this.setButtonInactive();
        	 
         
        },
        username: function(o) {
           var user = /[^A-Za-z0-9_ ]|\s{2}/;
           
          if (o.value.match(user) ) {
        	  this.doError(o,this.usernameError);
              uservalid = false;
          }else if(o.value.length < 3)
          {
        	  this.doError(o,this.usernameShortError);
              uservalid = false;
          }else if(o.value.length > 15)
          {
        	  this.doError(o,this.usernameLongError);
              uservalid = false; 
          }else {
            	
             this.doSuccess(o);
      	   uservalid = true;
            };
          
        },
        password: function(o) {
         
        
           if (o.value.length >= 6) {
        	   this.doSuccess(o)
        	   passwordvalid = true;
            } else {
            	this.doError(o,this.passError);
             passwordvalid = false;
            };
            
        },
        email: function(o) {
          var email  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
           if (o.value.match(email)) {
        	   this.doSuccess(o);
              emailvalid = true;
            } else {
            	this.doError(o,this.emailError);
              emailvalid = false;
            };
           
        },
        validateAll: function() {
        	
        	this.username($("#reg_username input").get(0));
        	this.password($("#reg_password input").get(0));
        	this.email($("#reg_email input").get(0));

        },
        allvalid: function() {
        	
        	if(uservalid && emailvalid && passwordvalid )
        		return true;
        	else
        		return false;

        },
        doSuccess: function(o) {
        	
        	 $(o).parent().removeClass("error"); 
        	 $(o).parent().addClass("success");
        	 $( "#"+$(o).parent().attr('id') + " .errortooltip").fadeOut(300, function() {
        		 $( "#"+$(o).parent().attr('id') + " .errortooltip").css('display','none')
        		  
        	}); 

        },
        doError: function(o,m) {
        	
        	$(o).parent().removeClass("success");
        	$(o).parent().addClass("error");
        
        	 $("#"+$(o).parent().attr('id') + " .errortooltip").html(m);
        	
        	 $("#"+$(o).parent().attr('id') + " .errortooltip").fadeIn(300, function() {
        		 $("#"+$(o).parent().attr('id') + " .errortooltip").css('display','block')
        		  
        	}); 

        },
        setButtonActive: function() {
        	
       	 $('#register #submit a').removeClass("inactive");
       	
       	

       },
       setButtonInactive: function() {
       	
    	   $('#register #submit a').addClass("inactive");

      }
     };
};
function parse(requestData)
{
	var split = requestData.split("\n");
	var rdata = [];
	$.each(split, function(index, value) { 
		  
		  	if(split[index] != "")
			{
				var keyindex = value.indexOf('=');
				
				
				rdata[value.substr(0,keyindex)] = value.substr(keyindex+1,value.length - keyindex);
			}
		});
	
	return rdata;
	
}
function request_login() {
	
	var userinput = $('#login_username input');
	
	var passinput = $('#login_password input');
	var data = {};
	
	
	data.user = userinput.val();
	data.hash = passinput.val();
	
	alert("login");
	$.post('../gateways/externalLogin.php', data, 
		function(respData) {
         	var resp = parse(respData);
            if(resp.suc == "true")
         	{
            	window.open(resp.gamelink,
            			'Continue_to_Application','width=200,height=400');
            			
         	}
         	else
         	{
         		if (resp.erroruser != "false") {
         			$(this).validate.doSuccess(userinput.get(0));
         			$(this).validate.uservalid = true;
     	        } 
     	          
         	}
		
     });
}
function request_register() {
	 
	 $(this).validate.validateAll();
	 
	 if($(this).validate.allvalid())
	 {
		 $("#submit").css("display","none");
		 $("#loader").css("display","block");
		 
		 
		var userinput = $('#reg_username input');
		var emailinput = $('#reg_email input');
		var passnput = $('#reg_password input');
		var data = {};
		
		data.lang = $(this).validate.registerLang;
		data.realm = "r1";
		data.user = userinput.val();
		data.email = emailinput.val();
		data.pass = passnput.val() ;
		data.landing = $(this).validate.registerLanding;
		data.adc = $(this).validate.registerADC;
		
		$.post('../gateways/externalRegister.php', data, 
			function(respData) {
	         	var resp = parse(respData);
	            if(resp.suc == "true")
	         	{
	            	//console.log(resp.gamelink)
	            	window.location.href = resp.gamelink;
	            	//window.open(resp.gamelink,
	            	//		'Dogs of the Seas - Game','width=1000,height=700,scrollbars=no');
	            			
	         	}
	         	else
	         	{
	         		 $("#submit").css("display","block");
	        		 $("#loader").css("display","none");
	         		if (resp.erroruser != "false") {
	         			$(this).validate.doSuccess(userinput.get(0));
	         			$(this).validate.uservalid = true;
         	        } else {
         	        	$(this).validate.doError(userinput.get(0),resp.errormsg);
         	        	$(this).validate.uservalid = false;
         	        };
         	        if (resp.errormail != "false") {
         	        	$(this).validate.doSuccess(emailinput.get(0));
         	        	$(this).validate.emailvalid = true;
      	            } else {
      	            	$(this).validate.doError(emailinput.get(0),resp.errormsg);
      	            	$(this).validate.emailvalid = false;
      	            };
      	            if (resp.errorpass != "false") {
      	            	$(this).validate.doSuccess(passnput.get(0));
      	            	$(this).validate.passwordvalid = true;
     	            } else {
     	            	$(this).validate.doError(passnput.get(0),resp.errormsg);
     	            	$(this).validate.passwordvalid = false;
     	            };
         	          
	         	}
			
         });
	 }
	
		 
  
};


