/* (c) 2008-2010 Agnition Enterprises, Inc. */

Agnition.Zleek.Registration={};Agnition.Zleek.Registration.Register=function(){var userName=$("#userName").val();var firstName=$("#firstName").hasClass("watermark")?"":$("#firstName").val();var lastName=$("#lastName").hasClass("watermark")?"":$("#lastName").val();var emailAddress=$("#emailAddress").val();var pwdField=$("#password");var password=pwdField.val();var repeatPwdField=$("#repeatPassword");var repeatPassword=repeatPwdField.val();var termsAccepted=$("#termsAccepted").attr("checked");pwdField.val("");repeatPwdField.val("");if(facebookId===undefined){facebookId=null;}
if(password===undefined){password=null;}
$("#errorMessage,.validator").text("");$("#userName,#firstName,#lastName,#emailAddress,#password,#repeatPassword,#termsAccepted").removeClass("invalid");var valid=true;var errorMessage=new StringBuilder();if(!Agnition.Zleek.Validate(userName.length!==0,"User Name is required.","#userName","#userNameValidator",errorMessage)){valid=false;}
if(!Agnition.Zleek.Validate(firstName.length!==0,"First Name is required.","#firstName","#firstNameValidator",errorMessage)){valid=false;}
else if(!Agnition.Zleek.Validate(Agnition.Zleek.RegularExpressions.Name.test(firstName),"First Name must be a valid name.","#firstName","#firstNameValidator",errorMessage)){valid=false;}
if(!Agnition.Zleek.Validate(lastName.length!==0,"Last Name is required.","#lastName","#lastNameValidator",errorMessage)){valid=false;}
else if(!Agnition.Zleek.Validate(Agnition.Zleek.RegularExpressions.Name.test(lastName),"Last Name must be a valid name.","#lastName","#lastNameValidator",errorMessage)){valid=false;}
if(!Agnition.Zleek.Validate(emailAddress.length!==0,"E-mail Address is required.","#emailAddress","#emailAddressValidator",errorMessage)){valid=false;}
else if(!Agnition.Zleek.Validate(Agnition.Zleek.RegularExpressions.EmailAddress.test(emailAddress),"E-mail Address must be a valid e-mail address.","#emailAddress","#emailAddressValidator",errorMessage)){valid=false;}
if((password!==null)&&(!Agnition.Zleek.Validate(password.length!==0,"Password is required.","#password","#passwordValidator",errorMessage))){valid=false;}
if(!valid){$("#errorMessage").css("display","block").html(errorMessage.toString());return;}
$("#errorMessage").css("display","none").text("");$("#loadingMessage").css("display","block").text("Registering...");var regRequest=new Agnition.Zleek.Registration.RegistrationRequest(userName,firstName,lastName,emailAddress,password,facebookId,Agnition.Zleek.UserServiceAddress);regRequest.Register(function(userData,statusText){Agnition.Zleek.Web.UI.SetUserLogin(userData);$("#loadingMessage").css("display","none").text("");$("#successMessage").css("display","block").focus();},function(request,statusText){$("#loadingMessage").css("display","none").text("");if((request.status===400)&&(request.statusText.length>0)){$("#errorMessage").css("display","block").text(request.statusText).focus();}
else{Agnition.Zleek.LogError(request.status+": "+request.statusText);$("#errorMessage").css("display","block").text("Error: Unable to perform registration.").focus();}});};$(document).ready(function(){$("#register").bind("click",Agnition.Zleek.Registration.Register);if($.browser.msie){$(".text,.checkbox").keydown(Agnition.Zleek.Registration.HandleKeyPress);}
else{$(".text,.checkbox").keypress(Agnition.Zleek.Registration.HandleKeyPress);}
$("#firstName").focus(function(){$(this).filter(function(){return($(this).val().length===0)||(($(this).val()=="first")&&($(this).hasClass("watermark")));}).removeClass("watermark").val("");});$("#firstName").blur(function(){$(this).filter(function(){return $(this).val().length===0;}).addClass("watermark").val("first");});$("#lastName").focus(function(){$(this).filter(function(){return($(this).val().length===0)||(($(this).val()=="last")&&($(this).hasClass("watermark")));}).removeClass("watermark").val("");});$("#lastName").blur(function(){$(this).filter(function(){return $(this).val().length===0;}).addClass("watermark").val("last");});if(facebookFirstName&&facebookLastName){$("#firstName").val(facebookFirstName).removeClass("watermark");$("#lastName").val(facebookLastName).removeClass("watermark");$("#userName").val(facebookFirstName.toUpperCase().substring(0,1)+
facebookLastName.toUpperCase().substring(0,1)+
facebookLastName.toLowerCase().substring(1));$("#emailAddress").focus();}
else if(facebookFirstName){$("#firstName").val(facebookFirstName).removeClass("watermark");$("#userName").val(facebookFirstName.toUpperCase().substring(0,1)+
facebookFirstName.toLowerCase().substring(1));$("#lastName").focus();}
else if(facebookLastName){$("#lastName").val(facebookLastName).removeClass("watermark");$("#userName").val(facebookLastName.toUpperCase().substring(0,1)+
facebookLastName.toLowerCase().substring(1));$("#firstName").focus();}
else{$("#userName").focus();}});Agnition.Zleek.Registration.HandleKeyPress=function(e){if(e.keyCode===13){Agnition.Zleek.Registration.Register();if(e.preventDefault){e.preventDefault();}else{e.returnValue=false;}
return false;}
return true;};Agnition.Zleek.Registration.RegistrationRequestData=function(userName,firstName,lastName,emailAddress,password,facebookId){this.__class=true;this.UserName=userName;this.FirstName=firstName;this.LastName=lastName;this.EmailAddress=emailAddress;this.Password=password;this.FacebookId=facebookId;};Agnition.Zleek.Registration.RegistrationRequest=function(userName,firstName,lastName,emailAddress,password,facebookId,serviceAddress){this.__class=true;this.ServiceAddress=serviceAddress;this.RegistrationData=new Agnition.Zleek.Registration.RegistrationRequestData(userName,firstName,lastName,emailAddress,password,facebookId);this.Register=function(successCallback,errorCallback){var jsonRequest=new Agnition.Net.WebRequest();var url=this.ServiceAddress+"/Register";jsonRequest.PostJson(url,this.RegistrationData,null,successCallback,errorCallback,null);};};