/**
 * 用户点击Connection开始登录程序
 */
function goLogin()
{
	/*不再使用这个记录
	if($("#HLoginButton").attr("value") == 1)
		return;
	buttonSetter('HLoginButton',1);
	*/
	var account = checkLoginAccount();
	var password = checkLoginPassword();
	if(account&&password){
		doDurRequestLog();
		loadingShowPopup();
		doLogin();
	}else{
		jAlert('Identifiant ou mot de passe invalide. Merci de réessayer.',"Tboks");
		buttonSetter('HLoginButton',0);
	}
}
/**
 * 真正开始登录过程
 */
function doLogin()
{
	var origin = $("#HOrigin").attr("value");
	var par = "method=LOGIN&account="+$("#LoginAccount").attr("value")+"&pwd="+$("#LoginPassword").attr("value")+"&ori="+origin;
	
	$.ajax({
		url:"./ws/Account.ws.php",
		type:"POST",
		data:par,
		success:doLoginResult,
		error:onError
	});
}
/**
 * 登录过程返回函数
 * @param {Object} result
 */
function doLoginResult(result){
	var r = $.trim(result);
	if(r.length){
		var rf = r.substring(0,2);
		var rm = r.substring(2);
		switch(rf)
		{
			case "SU":
			document.getElementById("HSessionID").value = rm;
			checkRequestSendable();
			break;
			
			case "FA":
			jAlert(rm,"Tboks");
			loadingClosePopup();
			break;
		}
	}else{
		jAlert("Une erreur est survenue lors de l'envoi de votre demande. Merci de réessayer à nouveau","Tboks");
	}
}


/**
 * 用户点击开始注册过程
 */
function sinscrireCheck()
{
	var ca = checkAccount();
	var ce = checkEmail();
	var cp = checkPassword();
	var cc = checkCity();
	
	$("#HTboksCaptcha").val($("#captchainput").attr("value"));
	
	if(!document.getElementById('acceptCheck').checked)
	{
		jAlert("Merci de lire et de confirmer que vous acceptez les Conditions Générales d'Utilisation","Tboks");
		
		return
	}
	
	if(ca&&ce&&cp&&cc)
	{
		newUserRegister();
	}else{
		//document.getElementById("HRegisterButton").value = 0;
		jAlert('Merci de renseigner tous les champs.',"Tboks");
	}
}
/**
 * 注册用户过程
 */
function newUserRegister()
{
	var account = $("#registerAccount").attr("value");
	var email = $("#registerEmail").attr("value");
	var password = $("#registerPassword").attr("value");
	var city = $("#registerCity").attr("value");
	var country = $("#RegisterCountry").attr("value");
	var tcaptcha = $("#HTboksCaptcha").attr("value");
	var origin = $("#HOrigin").attr("value");
	var par = "method=REGISTERUSER&&account=" + account + "&&email=" + email + "&&password=" + password + "&&city=" + city + "&&country=" + country + "&tcaptcha=" + tcaptcha + "&ori=" + origin;
	
	loadingShowPopup();
	
	doDurRequestLog();
	
	$.ajax({
		url:"ws/Account.ws.php",
		type:"POST",
		data:par,
		success:onNewUserRegisterResult,
		error:onError
	});
}
/**
 * 注册用户返回函数
 */
function onNewUserRegisterResult(result)
{
	var r = $.trim(result);
	
	if(r.length){
		var rf = r.substring(0,2);
		var rm = r.substring(2);
		
		switch (rf)
		{
			case "FA":
				loadingClosePopup();
				//alert("Une erreur est survenue lors de l'envoi de votre demande. Merci de réessayer à nouveau");
				break;
			case "FR": //Error Register
				loadingClosePopup();
				jAlert(rm,"Tboks");
				//alert("L'enegistrement d'un compte avec ces données a échoué");
				break;
			case "FC": //Error Confirm
				loadingClosePopup();
				jAlert("\tLa confirmation de votre compte a échoué. \n Veuillez vérifier votre e-mail et confirmez votre compte","Tboks");
				break;
			default:
				document.getElementById("HSessionID").value = rm;
				sendRequest();
		}	
	}else{
		jAlert("Une erreur est survenue lors de l'envoi de votre demande. Merci de réessayer à nouveau","Tboks");
	}
	
}


/**
 * Tboks Captcha获取和设置
 */
function tboksCaptcha()
{
	var par = "method=CAPTCHA";
	
	$.ajax({
		url:"./ws/Account.ws.php",
		type:"POST",
		data:par,
		success:onTboksCaptchaResult,
		error:onError
	});
}
function onTboksCaptchaResult(result)
{
	var source = result;
	document.getElementById("captchaIframe").src = source;
}


/**
 * 登录用户名输入合法性检查
 */
function checkLoginAccount(){
	var inputAccount = $("#LoginAccount").attr("value");
	
	var format=/^(\w|\u0027|[-,.]){1,15}$/;
	
	if (format.exec(inputAccount)) {
		//document.getElementById('LoginAccountLabel').innerHTML = "";
		return true;
		}else{
			//document.getElementById('LoginAccountLabel').innerHTML = "1-15 caractères alphanumériques";
			return false;
		}
}
/**
 * 登录密码合法性检查
 */
function checkLoginPassword(){
	var inputPassword = $("#LoginPassword").attr("value");
	
	var format=/^(\w|\u0027|[é,è,à,ê,ç,î,ï,ë]){6,10}$/;
	
	if (format.exec(inputPassword)) {
		//document.getElementById('LoginPasswordLabel').innerHTML = "";
		return true;
		}else{
			//document.getElementById('LoginPasswordLabel').innerHTML = "6-10 caractères alphanumériques";
			return false;
		}
}

//-----------
/**
 * 验证用户名
 */
function checkAccount(){
	var inputAccount = $("#registerAccount").attr("value");
	
	var format=/^(\w|[-,.]){4,15}$/;
	
	if (format.exec(inputAccount)) {
		document.getElementById('accountLabel').innerHTML = "<img src=\"images/checking.gif\"/>";
		checkUniqueValue(document.getElementById('registerAccount'),"Username");
		return true;
		}else{
			document.getElementById('accountLabel').innerHTML = "<img src=\"images/webtboks/icons/warning_16.png\" title=\"4-15 caractères alphanumériques\" />";//"4-15 caractères alphanumériques";
			return false;
		}
}
/**
 * 验证邮箱
 */
function checkEmail()
{
	
	var inputmailvalue = $("#registerEmail").attr("value");
	
	var format = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;

	if (format.exec(inputmailvalue)) {
		document.getElementById('emailLabel').innerHTML = "<img src=\"images/checking.gif\"/>";
		checkUniqueValue(document.getElementById('registerEmail'),"Email");
		return true;
		}else{
			document.getElementById('emailLabel').innerHTML = "<img src=\"images/webtboks/icons/warning_16.png\" title=\"erreur de format d'email\" />";
			return false;
		}
	
}
/**
 * 验证密码
 */
function checkPassword(){
	var inputPassword = $("#registerPassword").attr("value");
	
	var format=/^(\w|\u0027|[é,è,à,ê,ç,î,ï,ë]){6,10}$/;
	
	if (format.exec(inputPassword)) {
		document.getElementById('passwordLabel').innerHTML = "<img src=\"images/webtboks/icons/okicon.png\"/>";
		return true;
		}else{
			document.getElementById('passwordLabel').innerHTML = "<img src=\"images/webtboks/icons/warning_16.png\" title=\"6-10 caractères alphanumériques\" />";
			return false;
		}
}
/**
 * 验证城市
 */
function checkCity(){
	var inputCity = $("#registerCity").attr("value");
	
	var format=/^(\w|\u0027|\s|[-,é,è,à,ê,ç,î,ï,ë]){1,50}$/;
	
	if (format.exec(inputCity)) {
		document.getElementById('cityLabel').innerHTML = "<img src=\"images/webtboks/icons/okicon.png\"/>";
		return true;
		}else{
			document.getElementById('cityLabel').innerHTML = "<img src=\"images/webtboks/icons/warning_16.png\" title=\"1-50 caractères alphanumériques\" />";
			return false;
		}
}

/**
 * 用户名密码唯一性验证
 */
function checkUniqueValue(thisNode,checkField)
{
	var fieldValue = thisNode.value;
	var fieldName = checkField;
	
	var par = "method=CHECKUNIQUEVALUE&checkUniqueFieldName=" + checkField + "&checkUniqueFieldValue=" + fieldValue;
	
	$.ajax({
		url:"./ws/Account.ws.php",
		type:"POST",
		data:par,
		success:doCheckUniqueValue,
		error:onError
	});
}
function doCheckUniqueValue(result)
{
	switch (result)
	{
		case "1Username":
			document.getElementById('accountLabel').innerHTML = "<img src=\"images/webtboks/icons/noicon.png\" title=\"Pseudo a déjà été pris\" />";
			break;
		case "0Username":
			document.getElementById('accountLabel').innerHTML = "<img src=\"images/webtboks/icons/okicon.png\"/>";
			break;
		case "1Email":
			document.getElementById('emailLabel').innerHTML = "<img src=\"images/webtboks/icons/noicon.png\" title=\"Cette email a déjà été enregistrée\" />";
			break;
		case "0Email":
			document.getElementById('emailLabel').innerHTML = "<img src=\"images/webtboks/icons/okicon.png\"/>";
			break;
	}
}


/**
 * 暂时没有定义Ajax错误的回调函数，目前先用onError代替
 */
function onError(error)
{
	loadingClosePopup();
	jAlert("Une erreur est survenue lors de l'envoi, veuillez ressayer plus tard","Tboks");
}
