function user(web_root)
{
 var self=this;
 
 
 this.login_user=function()
 {
  var user=document.getElementById('login_user_name').value;
  var pass=document.getElementById('login_password').value;
  
  var error=[];
  if(user == "")
  {
   error.push("Please type in your user name");
  }
  if(pass == "")
  {
   error.push("Please type in your password.");
  }
  
  if(error.length > 0)
  {
   post_message(error.join('<br>'),'error');
   return false;
  }
  post_message("Logging in.","info");
  var vars={};
  vars.inp="page=login_user";
  vars.data="user="+escape(user)+"&pass="+escape(pass);
  vars.completedVars={"success":0,"message":"","location":web_root+"user/"}
  vars.completedFunction=self.check_login;
  Request(web_root+"request.php","POST",vars);
  return false;
 }
 
 this.check_login=function(vars)
 {
  if(vars.success)
  {
   window.location=vars.location;
  }
  else
  {
   post_message(vars.message,"error");
  }
 }
 
 this.create_user=function()
 {
  var data_names=["user_name","password","password2","email","name"];
  var data={};
  var info=[];
  data['newsletter']=document.getElementById("login_newsletter").checked;
  for(var a=0;a<data_names.length;a++)
  {
   var name=data_names[a];
   data[name]=document.getElementById("login_"+name).value;
  }
  
  var error=[];
  
  if(data.user_name.length < 4)
  {
   error.push("User name too short.");
  }
  if(data.user_name.length > 16)
  {
   error.push("User name too long.");
  }
  if(data.password.length < 6)
  {
   error.push("Password too short.");
  }
  if(data.password != data.password2)
  {
   error.push("Passwords not the same.");
  }
  if(data.email.length < 5)
  {
   error.push("Please enter a valid Email.");
  }
  
  if(error.length > 0)
  {
   post_message(error.join("<br>"),"error");
   return false;
  }
  post_message("Creating User.","info");
  var vars={};
  var cols=['user_name','password','email','name','newsletter'];
  for(var a in cols)
  {
   var col=cols[a];
   info.push(col+"="+data[col]);
  }
  vars.inp="page=create_user";
  vars.data=info.join("&");
  vars.completedVars={"success":0,"message":"","location":web_root+"user/"}
  vars.completedFunction=self.check_login;
  Request(web_root+"request.php","POST",vars);
  return false;
 }
 
 this.update_user=function()
 {
  var data_names=["password","password2","email","name"];
  var data={};
  var info=[];
  data['newsletter']=document.getElementById("login_newsletter").checked;
  for(var a=0;a<data_names.length;a++)
  {
   var name=data_names[a];
   data[name]=document.getElementById("login_"+name).value;
  }


  var error=[];

  if(data.email.length < 5)
  {
   error.push("Please enter a valid Email.");
  }
  if(data.password.length != 0)
  {
   if(data.password.length < 6)
   {
    error.push("Password too short.");
   }
   if(data.password != data.password2)
   {
    error.push("Passwords not the same.");
   }
  }
  
  if(error.length > 0)
  {
   post_message(error.join("<br>"),"error");
   return false;
  }
 
  post_message("Updating User.","info");
  var vars={};
  var cols=['password','email','name','newsletter'];
  for(var a in cols)
  {
   var col=cols[a];
   info.push(col+"="+data[col]);
  }
  vars.inp="page=update_user";
  vars.data=info.join("&");
  vars.completedVars={"success":0,"message":"","location":web_root+"user/"}
  vars.completedFunction=self.check_login;
  Request(web_root+"request.php","POST",vars);
  return false;
 }
 
 
 function post_message(message,type)
 {
  var res=document.getElementById('post_comment_result');
  res.innerHTML=message;
  res.className=type;
 }
 
}
