var errors = {};
$(document).ready(function(){
	$('#change_image').click(function(){
		$('#captcha').attr('src','/captcha/get-captcha?'+Math.random());
		$('#captcha_form').focus();
	});
	
	$('#loginform').submit(function() {
		return false;
	});
	
	$('#signupform').submit(function() {
		return false;
	});
	$('#pwdform').submit(function() {
		return false;
	});
	$('#pwddiv').hide();
	$('#pwdlink').click(function(){
		allFields.removeClass('ui-state-error');
		allTips.html('&nbsp;').removeClass('success').removeClass('error').removeClass('tip-highlight');
		if($('#pwddiv').css('display')=='block'){
			$('#logdiv').slideToggle('fast');
		    $('#pwddiv').slideUp('fast');
		    $('#loglink').removeClass('souligne');
		}else{
			$('#pwddiv').slideToggle('fast');
		    $('#logdiv').slideUp('fast');
		    $('#loglink').addClass('souligne');
		}
	
	});
	$('#loglink').click(function(){
		if($('#pwddiv').css('display')=='block'){
			allFields.removeClass('ui-state-error');
			allTips.html('&nbsp;').removeClass('success').removeClass('error').removeClass('tip-highlight');
			$('#logdiv').slideToggle('fast');
		    $('#pwddiv').slideUp('fast');
		    $('#loglink').removeClass('souligne');
		}
	});
//	$('#captcha').simpleCaptcha({
//		  numImages: 6
//		});
	function ajaxPost(){
		  $.ajax({
				type : "POST",
			  	url : "/login/ajax-login/",
			  	data : { 
			  		format: 'json',
					login: $("#email").val(),
					password: $("#password").val()
					},
		  		dataType : "json",
			  	success:function(data){
		  			$('#error').css('display', 'none');
		  			if(!data){
		  				updateTips(error_occured, $(".validateLogin"));
		  			}else if(data.success){
		  				document.location.href = data.url;
					}else{
						errors = data.error;
						updateTips(errors,$(".validateLogin"));	
					}
				},
		  		error:function(data){
		  			alert(data);
		  		}
		  });
	};
	$("#loginButton").click(
		function(){
			submit();
		}
	);
	
	var signupfirstname = $("#signup-firstname"),
	signuplastname = $("#signup-lastname"),
	signupemail = $("#signup-email"),
	signuppassword = $("#signup-password"),
	signupphone = $("#signup-phone"),
	email = $("#email"),
	password = $("#password"),
	pwdemail = $("#pwdemail"),
	allFields = $([]).add(pwdemail).add(email).add(password).add(signupfirstname).add(signuplastname).add(signupemail).add(signuppassword).add(signupphone),
	tip = $(".errorvalidate"),
	tipvalidate = $(".validateTips"),
	tiploginvalidate = $(".validateLogin"),
	tippwdvalidate = $(".validatePwd"),
	tipcaptcha = $(".errorcaptcha"),
	allTips = $([]).add($(".errorcaptchavalidate")).add(tip).add(tippwdvalidate).add(tipvalidate).add(tiploginvalidate).add(tipcaptcha);
	
	function submit(){
		var bValid = true;
		allFields.removeClass('ui-state-error');
		allTips.html('&nbsp;').removeClass('error').removeClass('tip-highlight');
		bValid = bValid && checkRegexp(email,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, login_format);
		bValid = bValid && checkLength(password,"password",5,16);
		if (bValid) {
			ajaxPost();
		}
	};
	
	$("#pwdButton").click(function(){
		var bValid = true;
		allFields.removeClass('ui-state-error');
		allTips.html('&nbsp;').removeClass('error').removeClass('tip-highlight');
		bValid = bValid && checkRegexp(pwdemail,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, email_format);
		if (bValid) {
			$.ajax({
				type : "POST",
			  	url : "/login/ajax-re-password/",
			  	data : { 
			  		format: 'json',
					email: pwdemail.val()
					},
		  		dataType : "json",
			  	success:function(data){
		  			if(data.success){
		  				updateTipsSuccess(data.msg, tippwdvalidate);
					}else{
						updateTips(data.error, tippwdvalidate);
					}
				},
		  		error:function(data){
		  			alert(data);
		  		}
			});
		}
	});
	
	$("#create-user").click(function(){
		var captcha = $("#captcha_form");
		if(! otherCheckLengthNotNull(captcha, $('.errorcaptcha'),trans_captcha)){
			updateTips(captcha_error,$('.errorcaptchavalidate'));
		}else{
		
			var bValid = true;
			var bTop = false;
			allFields.removeClass('ui-state-error');
			allTips.html('&nbsp;').removeClass('error').removeClass('tip-highlight');
			bValid = bValid && checkLength(signupfirstname,"first name",2,50);
			if(!bValid && !bTop){
				bTop = true;
				$.scrollTo($('#firstname-container'),800);
			}
//			bValid = bValid && checkRegexp(signupfirstname,/^[a-z]([0-9a-z_ -.])+$/i,"First name may consist of a-z, 0-9, underscores, begin with a letter.");
			bValid = bValid && checkLength(signuplastname,"last name",2,50);
			if(!bValid && !bTop){
				bTop = true;
				$.scrollTo($('#lastname-container'),800);
			}
//			bValid = bValid && checkRegexp(signuplastname,/^[a-z]([0-9a-z_ -.])+$/i,lastname_problem);
			//bValid = bValid && checkLength(signupemail,"email",6,80);
			bValid = bValid && checkRegexp(signupemail,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,email_format);
			if(!bValid && !bTop){
				bTop = true;
				$.scrollTo($('#email-container'),800);
			}
			bValid = bValid && checkLength(signuppassword,"password",5,16);
			if(!bValid && !bTop){
				bTop = true;
				$.scrollTo($('#password-container'),800);
			}
//			bValid = bValid && checkRegexp(signuppassword,/^([0-9a-zA-Z])+$/,password_problem);
			bValid = bValid && checkValueRegexp(signupphone, signupphone.val().replace(/ /g,''), /^(\+?[0-9]*)$/,phone_problem);
			if(!bValid && !bTop){
				bTop = true;
				$.scrollTo($('#phone-container'),800);
			}
			if (bValid) {
				$.ajax({
					type : "POST",
				  	url : "/join/ajax-registering/",
				  	data : { 
				  		format: 'json',
						captcha : captcha.val(),
				  		firstname: signupfirstname.val(),
						lastname: signuplastname.val(),
						email: signupemail.val(),
						password: signuppassword.val(),
						language: $("#lang option:selected").attr('id'),
						phone: signupphone.val()
					},
			  		dataType : "json",
				  	success:function(data){
			  			if(data.success){
			  				document.location.href = data.url;
						}else{
							captcha.val('');
							$.scrollTo($('#signup-form'),800);
							$('#captcha').attr('src','/captcha/get-captcha?'+Math.random());
							updateTips(data.error, $(".validateTips"));
						}
					},
			  		error:function(data){
						captcha.val('');
						$('#captcha').attr('src','/captcha/get-captcha?'+Math.random());
						updateTips(error_occured, $(".validateTips"));
			  		}
				});
			}
		}
	});
});
