// 去空格函数 
function lTrim(str) {
	var i;
	for (i = 0; i < str.length; i++) {
		if (str.charAt(i) != " " && str.charAt(i) != "　") break;
	}
	str = str.substring(i, str.length);
	return str;
}
function rTrim(str) {
	var i;
	for (i = str.length - 1; i >= 0; i--) {
		if (str.charAt(i) != " " && str.charAt(i) != "　") break;
	}
	str = str.substring(0, i + 1);
	return str;
}
function trim(str) {
	return lTrim(rTrim(str));
}

// 检查是否为数字字符
function chkNum(str) {
	var reg = new RegExp("^[0-9]+$");   
	return(reg.test(str));
}

// 检查是否为Email为空返回FALSE
function chkEmail(str) {
	var reg = new RegExp("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][_\.a-z0-9-]+\.)+([a-z]{2,4})+$");
	return(reg.test(str));
}

// 检查是否含有非数字或字母
function chkIsAsc(str) {
	var reg = new RegExp("^[a-zA-Z0-9]+$");   
	return(reg.test(str));
}

// 校验普通电话、传真号码：可含有“-”
function chkTel(str) {
	var reg = new RegExp("^([0-9]{2,4}-)?([0-9]{2,4}-)?([0-9]{6,12})+(-[0-9]{1,4})?$"); 
	return(reg.test(str));
}

// 检查字符串的长度
// 返回值：长度值
function chkLen(str) {
    var sum = 0;
    for(var i = 0; i < str.length; i++) {
        if ((str.charCodeAt(i) >= 0) && (str.charCodeAt(i) <= 255)) {
            sum = sum + 1;
        } else {
			sum = sum + 2;
        } 
    }
    return sum;
}

// 注册登录
window.addEvent('domready', function() {
	var logform = $("LogForm");
	var logname = $("LogName");
	var logpass = $("LogPass");
	var logret = $("LogRet");
	var logval = $("LogVal");
	
	var regform = $("RegForm");
	var regname = $("RegName");
	var regpass = $("RegPass");
	var regtitle = $("RegTitle");
	var regphone = $("RegPhone");
	var regemail = $("RegEmail");
	var regret = $("RegRet");
	var regval = $("RegVal");
	
	//ajax效果区域
	var iframebox = $("ResIFrame");
	var overlay = $("Overlay");
	var res = $("LogRes");
	var restr = $("ReStr");
	var costr = $("CoStr");
	
	var logsubmit = function(e) {
		e.stop(); //Prevents the default submit event from loading a new page.
		if (trim(logname.value) == "" || !chkIsAsc(logname.value) || chkLen(logname.value) < 4) {
			alert("请输入会员名称！字符长度须大于4位，只允许英文字符和数字！");
			return;
		}
		if (trim(logpass.value) == "" || !chkIsAsc(logpass.value) || chkLen(logpass.value) < 4) {
			alert("请输入会员密码！字符长度须大于4位，只允许英文字符和数字！");
			return;
		}
		restr.set('html', '数据传输中');
		costr.setStyle('visibility', 'hidden');
		res.setStyle('display', 'block');
		iframebox.setStyle('height', $(window).getScrollSize().y + $(window).getScroll().y);
		overlay.setStyle('height', $(window).getScrollSize().y + $(window).getScroll().y);
		res.tween('opacity', 1);
		logform.set(
			'send', 
			{
				url: 		'log.action.php', 
				method: 	'post', 
				encoding: 	'utf-8',
				async:		true,
				link:		'ignore',
				onSuccess: function(responseText, responseXML) {
					if (responseText == "SUCCESS") {
						window.location.href = (logret.value != "") ? logret.value : "my.php";
					} else {
						restr.set('html', responseText);
						costr.setStyle('visibility', 'visible');
						costr.addEvent('click', closeMilkbox);
					}
				},
				onFailure: function() {
					var tmperrorstr = (this.status == 202) ? '传输过程中发生错误<br />传输超时 处理未完成<br />请检查网络状况重新尝试发送' : '传输过程中发生错误<br />处理程序发生错误<br />请联系行家旅行站点管理人员解决此问题';
					restr.set('html', tmperrorstr);
					costr.setStyle('visibility', 'visible');
					costr.addEvent('click', closeMilkbox);
				}
			}
		);
		logform.send();
    };
	
	var regsubmit = function(e) {
		e.stop(); //Prevents the default submit event from loading a new page.
		if (trim(regname.value) == "" || !chkIsAsc(regname.value) || chkLen(regname.value) < 4) {
			alert("请输入会员密码！字符长度须大于4位，只允许英文字符和数字！");
			return;
		}
		if (trim(regpass.value) == "" || !chkIsAsc(regpass.value) || chkLen(regpass.value) < 4) {
			alert("请输入会员密码！字符长度须大于4位，只允许英文字符和数字！");
			return;
		}
		if (regphone.value != "" && !chkTel(regphone.value)) {
			alert("联系电话输入错误！正确的格式如021-64311184");
			return false;
		}
		if (regemail.value != "" && !chkEmail(regemail.value)) {
			alert("邮件输入错误！");
			return false;
		}
		restr.set('html', '数据传输中');
		costr.setStyle('visibility', 'hidden');
		res.setStyle('display', 'block');
		iframebox.setStyle('height', $(window).getScrollSize().y + $(window).getScroll().y);
		overlay.setStyle('height', $(window).getScrollSize().y + $(window).getScroll().y);
		res.tween('opacity', 1);
		regform.set(
			'send', 
			{
				url: 		'reg.action.php', 
				method: 	'post', 
				encoding: 	'utf-8',
				async:		true,
				link:		'ignore',
				onSuccess: function(responseText, responseXML) {
					if (responseText == "SUCCESS") {
						window.location.href = (regret.value != "") ? regret.value : "my.php";
					} else {
						restr.set('html', responseText);
						costr.setStyle('visibility', 'visible');
						costr.addEvent('click', closeMilkbox);
					}
				},
				onFailure: function() {
					var tmperrorstr = (this.status == 202) ? '传输过程中发生错误<br />传输超时 处理未完成<br />请检查网络状况重新尝试发送' : '传输过程中发生错误<br />处理程序发生错误<br />请联系行家旅行站点管理人员解决此问题';
					restr.set('html', tmperrorstr);
					costr.setStyle('visibility', 'visible');
					costr.addEvent('click', closeMilkbox);
				}
			}
		);
		regform.send();
    };
	
	var prepareEvents = function(xml){		
		res.get('tween').addEvent('onComplete',function(){
			if(res.getStyle('opacity') == 1){
				res.setStyle('opacity', 1);
				res.setStyle("display", "block");
			} else if(res.getStyle('opacity') == 0) {
				res.setStyle("display", "none");
				res.setStyle('opacity', 0);
			};
		});
				
		window.addEvent('resize',function(){
			if(res.getStyle('opacity') == 0){ return; };
			var scrollSize = $(window).getScrollSize().y;
			var scrollTop = $(window).getScroll().y;
			res.setStyles({'height':scrollSize+scrollTop,'top':-scrollTop});
			iframebox.setStyle('height', scrollSize+scrollTop);
			overlay.setStyle('height', scrollSize+scrollTop);
		});
	}
	var closeMilkbox = function(e) {
		costr.removeEvent('click', closeMilkbox);
		res.get('tween').cancel();
		res.setStyles('opacity',0);
		res.tween('opacity',0);
	};
	if (logform && logname && logpass && logret && logval && regform && regname && regpass && regtitle && regphone && regemail && regret && regval && res && iframebox && overlay && restr && costr) {
		res.setStyles({'display':'none', 'opacity': 0});
		costr.setStyle('visibility', 'hidden');
		overlay.setStyle('opacity', 0.85);
		iframebox.setStyle('background', '#000000');
		res.set('tween',{ duration:'short',link:'cancel' });
		prepareEvents();
		
		logform.addEvent('submit', logsubmit);
		regform.addEvent('submit', regsubmit);
	}
});
