function login(){
	var login_choose;
      var level;
      
	if(Validator.Validate(document.loginForm,2)){
	
		var username=$("username").value;
		var password=$("password").value;
		var salt=$("login_salt").value;
		 
		var autologin=false;
		if($("autologin").checked){
			autologin=true;
		}
		
		var failtimes=parseInt(getCookie("failtimes"));
		if(!failtimes){failtimes=0;}
		var validate=false;
        if(failtimes>=3&&failtimes<5){
			validate=true;
     	}
	   	addCookie("failtimes",0,60*60*1000);
	  
		showLoading();
		UserAction.login(username,password,salt,validate,{
			callback:function(data){
			hideLoading();
			if(autologin){
					addUserCookie(username,password);
				}
			
			UserAction.getUserByUsername(username,{callback:function(user){
		
			 UserAction.getExtensionByUserid(user.id,{callback:function(extension){
		           login_choose=extension.choose;
		        
                  	UserAction.getLevelById(user.levelid,{callback:function(levels){
		            level=levels.edition;
		  		if(data && login_choose==0){
					window.location="/user/index.jsp";
				}else if(data && login_choose=="1" && level=="IE"){
					window.location="/IEchoose.jsp";
				}
				else{
					window.location="/user/";
				}
		                 }});
                  }
                });
                
		               }});
		
			},
			errorHandler:function(msg){
			hideLoading();
				alert(msg);
				failtimes=failtimes+1;
				if(failtimes>=3&&failtimes<5){
					showSalt();
				}
				if(failtimes>=5){
					showDiv();
					closeSalt();
				}
				addCookie("failtimes",failtimes,60*60*1000);
			}
		});
		return false;
	}
	return false;
}

function logoff(){
	if(confirm("Quit now?")){
		window.location="/logoff.jsp";
	}
}
function showSalt(){
	$('saltdiv').style.display="block";
	$("login_salt").setAttribute('dataType','Require');
	$('login_saltimg').src='user.salt?update='+Math.random();
}
function closeSalt(){
	$('saltdiv').style.display="none";
	$("login_salt").setAttribute('dataType','');
}