//页面div内的默认内容
var divDefaultContent = ["请填写真实有效的邮箱地址，这将是您的帐号。","在网站上的公开资料显示","6-20个字符（只能由数字、字母、下划线构成）","重复输入上面的密码","请填写您的真实姓名，以便餐品准确送达","格式：如延安路（或街弄巷）118号，最多20个汉字","请填写您真实有效的手机号，以便与您快速联系","写字楼、小区名称，如：伟星大厦","格式：xxx路（或街弄巷）xxx号（最多30个汉字）","格式：xxx号（必须为数字）","<p>例：文一路181号 中豪晴园 5幢1单元 888；</p><p style=\"line-height:20px;\">或：文三路252号 伟星大厦 1201 点我吧网络公司技术部，最多50个字符</p>"];
var divErrorContent = ["邮件格式输入出错","请输入您的昵称","密码格式输入出错,要求6-20个字母或数字或两者组合","密码格式输入出错,要求6-20个字母或数字或两者组合","请正确输入中文名字(2--8个字)","请正确输入楼盘名称，要求中文（最多30个汉字）","请填写正确的手机或电话号码","不能为空，该项为必填","格式错误,请按正确格式填写","格式错误,请填写数字",""];
var divIds =["emaildiv","nickdiv","pwddiv","pwd2div","contactdiv","positiondiv","phonediv","builddiv","roaddiv","numdiv","detailAddrsdiv"];
//ajax请求验证用户的邮箱使用
var emailStatus = 0;//0不可用 1 发送验证中 2可使用

var emailValidStr = null;//String 可用的邮件**@**.**
var inittimes = 0; // 初始化地图次数
/*function changeWhere()
{
	if($("Wherebox").checked == true)
	{
	 $("where").style.display = 'block';
	}else{
	 $("where").style.display = 'none';
	}
}
*/
function blurPro(num)
{
 	if (num < 0)
		return;
	verifyInput(num);
}

//输入框得到输入焦点时 调整样式显示
function focusPro(num) {
	if (num < 0)
		return;
	$(divIds[num]).className = "tip";//lable 样式
	$(divIds[num]).innerHTML=divDefaultContent[num];
}
//提交注册信息的时候错误提示
function focusProSubmit(num) {
	if (num < 0)
		return;
	$(divIds[num]).className = "error";//lable 样式
	$(divIds[num]).innerHTML=divErrorContent[num];
}

//验证输入并显示对应的成功，错误提示
//返回成功或失败
function verifyInput(num) {
	if (num < 0 || num >10)
		return;
	switch(num) {
		case 0://邮箱验证
			return verifyEmail(0);
		case 1://昵称验证
			return verifyNick(1);
		case 2://密码验证
			return verifyPassword(2);
		case 3://确认密码验证
			return verifyPassword(3);
		case 4://姓名验证
			return verifyUserNameReg(4);
		case 5://所在位置
			return verifyPosition(5);
		case 6://所在位置
			return verifyPhone(6);
		case 7:
			return verifyBuild(7);
		case 8:
			return verifyRoad(8);
		case 9:
			return verifyNum(9);
		//cch 20090602 add 验证详细地址
		case 10:
			return verifyDetailAddrs(10);
        //cch 20090602 end
		default:
			return false;
	}
}

//信箱验证
function verifyEmail(num) {
	var email;
	if (0 == num) {//第一次邮箱
		email = getValue($("emailinput"));
	} else if (1 == num) {//确认邮箱的验证
		email = getValue($("email2input"));
	}
	if ("" == email) {//没有输入
        	$(divIds[num]).className = "error";//error 样式
			$(divIds[num]).innerHTML = divErrorContent[num];
			return false;
		}
	if (!checkEmail(email)) {//输入格式出错
        	$(divIds[num]).className = "error";//error 样式
			$(divIds[num]).innerHTML = "邮件格式输入出错";
			return false;
		}
	if (0 == num) {//第一次邮箱
		if (emailStatus == 2 && email == emailValidStr) {
			$(divIds[0]).className = "right";
			$(divIds[0]).innerHTML = "";
			return true;
		}
		emailStatus = 1;//验证中，发送验证请求中
		isValidEmail(email);
		$(divIds[num]).className = "error";//error 样式
		$(divIds[num]).innerHTML = "正在验证该邮箱的有效性...";
		return false;
	} 
	if (1 == num) {//确认邮箱的验证
		if (getValue($("emailinput")) != email) {//两次输入密码一致
		    $(divIds[num]).className = "error";//error 样式
			$(divIds[num]).innerHTML ="两次输入的邮箱不一致,请查证后输入";
			return false;
		}
	}	
	//下面表示可用了，输入了正确的邮件
	$(divIds[num]).className = "right";
	$(divIds[num]).innerHTML = "";
	return true;
}

function verifyNick(num){
	var nick = getValue($("nickinput"));
	if ("" == Trim(nick) || strLength(Trim(nick)) > 60  || !isValidInput(nick)) 
	{
		$(divIds[num]).className = "error"; 
		$(divIds[num]).innerHTML =divErrorContent[num];
		return false;
	}
    $(divIds[num]).className = "right"; 
	$(divIds[num]).innerHTML = "";
	
	return true;
}

//密码验证 只能输入6-20个字母、数字、下划线
function verifyPassword(num)   
{
	var password;
	if (2 == num) {//第一次输入的密码
		password = getValue($("pwdinput"));
	}else if (3 == num) {//待确认的密码
		password = getValue($("pwd2input"));
	}
	var patrn = /^(\w){6,20}$/;   
	if (!patrn.exec(password)) { // 不正确的输入格式
    	$(divIds[num]).className = "error";//error 样式
		$(divIds[num]).innerHTML = "密码格式输入出错,要求6-20个字母或数字或两者组合";
		return false;
	}
	if (3 == num) {//第二次输入的确认密码
		if (password != getValue($("pwdinput"))) {//两次输入不一致
    		$(divIds[num]).className = "error";//error 样式
			$(divIds[num]).innerHTML = "密码输入与上述不一致,请确认后输入";
			return false;
		}
	}
	$(divIds[num]).className = "right";//密码成功提示
	$(divIds[num]).innerHTML = "";//密码成功提示
	return true; 
} 
function getValue(obj) {
	if (null == obj)
		return "";
	return Trim(obj.value);
}

//用户名字验证 只能输入 2--8个汉字
function verifyUserNameReg(num){
	var userName = getValue($("contact"));
	if (Trim(userName).length < 2) 
	{ 
	    $(divIds[num]).className = "error";
		$(divIds[num]).innerHTML = divErrorContent[num];
		return false;
	}
	if (haveInvalidStr(userName)) {//含有非法字符
    	$(divIds[num]).className = "error";
		$(divIds[num]).innerHTML = "所填字符非法,请遵守网络文明";
		return false;
	}
	$(divIds[num]).className = "right";
	$(divIds[num]).innerHTML = "";
	//同时根据输入，匹配男女选项
	chooseSex(Trim(userName));
	return true;
}

//ajax请求判断邮件是否可用
function isValidEmail(email){
    var url = "/dianwoba/servlet/reg";
	var pars = "fun=isValidEmail&email="+email;
	new Ajax(url, {method:'get', data:pars, onComplete:isValidEmailResponse, onFailure:isValidEmailError}).request();
}
function isValidEmailResponse(originalRequest)
{		
	 var responseStr = Trim(originalRequest);
	 if (!validCallbackStatus(responseStr) || "error1" == responseStr) {//系统繁忙稍后注册
	    $(divIds[0]).className = "error";//error 样式
		$(divIds[0]).innerHTML = "系统繁忙稍后注册";
		emailStatus = 0;//无效的邮件
	} else if ("error2" == responseStr) {//可用
		$(divIds[0]).className = "error";
		$(divIds[0]).innerHTML = "该邮件已经被使用,请更换一个";
		emailStatus = 0;//无效的邮件
	}else if ("ok" == responseStr) {//可用
		$(divIds[0]).className = "right";
		$(divIds[0]).innerHTML = "";
		emailStatus = 2;//有效的邮件
		emailValidStr = getValue($("emailinput"));
	}
	 
}
		
function isValidEmailError(request)	
{
   alert("邮箱校验错误"+request);
}
//验证回调函数的返回值
//常用的是返回一个状态值
function validCallbackStatus(str) {
	if (null == str || "" == Trim(str) 
		|| Trim(str).length > 255) { //认为没有状态值大于255的
		return false;
	}
	return true;
}

//当用户选择了其他时，显示输入框，让用户输入地址名称
function displayAddressInput(isdisplay) {
	if (isdisplay) {
		$("addressDiv").style.display="";//显示该输入框的Lable
	} else {
		$("addressDiv").style.display="none";
	}
}

//根据输入，置sex位
function chooseSex(userName) {
	if (userName.indexOf("先生") != -1) {
		$("male").checked = true;
	} else if (userName.indexOf("小姐") != -1 || userName.indexOf("女士") != -1) {
		$("female").checked = true;
	}
}


//验证登陆后修改或添加地址时路名的有效性
function verifyRoad(num)
{
	var road = getValue($("road"));
    if(!checkRoad(road)){//输入格式出错
        	$(divIds[num]).className = "error";//error 样式
			$(divIds[num]).innerHTML = "格式错误，请按 xxx路（或街弄巷）格式填写";
			return false;
	}
	if ("" == Trim(road) || strLength(Trim(road)) > 60  || !isValidInput(road)) 
	{
		$(divIds[num]).className = "error"; 
		$(divIds[num]).innerHTML =divErrorContent[num];
		return false;
	}
    $(divIds[num]).className = "right"; 
	$(divIds[num]).innerHTML = "";
	
	return true;
}

//验证登陆后修改或添加地址时路号的有效性
function verifyNum(num)
{
	document.getElementById("numdiv").style.display="block";
	var number = getValue($("number"));
    if(!checkNum(number)){//输入格式出错
        	$(divIds[num]).className = "error";//error 样式
			$(divIds[num]).innerHTML = "路号格式错误，必须为数字";
			return false;
	}
    
    $(divIds[num]).className = "right"; 
	$(divIds[num]).innerHTML = "";
	
	return true;
}

//cch 20090602 add 验证详细地址有效性
function verifyDetailAddrs(num){
	//initialize();
    var detailaddrs = getValue($("addr"));
	var cityid = 1;
	var aa = document.getElementsByName("citylist");
	for(var i=0;i<aa.length;i++){
		if(aa[i].checked){
			cityid = aa[i].value;
		}
	}

	GLOBAL.cityid = cityid;

    if(!checkDetailAddrs(detailaddrs)){//输入格式出错
        	$(divIds[num]).className = "error";//error 样式
			$(divIds[num]).innerHTML = "请完整填写您的送餐地址,以便我们能更好地为您服务！ ";
			return false;
	}

	var patrn= /^(\S)+(路|街|巷|弄){1,}$/;  
	if(!patrn.exec(detailaddrs))
	{
		var url = "/dianwoba/servlet/reg";
		var pars = "fun=getRegAddrLnglat&detailaddrs="+detailaddrs+"&cityid="+cityid+"&now="+new Date();
		new Ajax(url, {method:'get', data:pars, onComplete:getRegAddrLnglatResponse, onFailure:getRegAddrLnglatError}).request();
	}
	else
	{
		var a = Math.floor(Math.random(10)*8)+5;
		detailaddrs = detailaddrs+a+"号";
		var url = "/dianwoba/servlet/reg";
		var pars = "fun=getRegAddrLnglat&detailaddrs="+detailaddrs+"&cityid="+cityid+"&now="+new Date();
		new Ajax(url, {method:'get', data:pars, onComplete:getRegAddrLnglat2Response, onFailure:getRegAddrLnglatError}).request();
	} 
   
	return true;
}

function getRegAddrLnglatResponse(ret){
	var arr = ret.split("_");
	$('area').value = arr[0];
	$('lng').value = arr[1];
	$('lat').value = arr[2];
	if(arr[0]=='X' && arr[1]*arr[2]==0){
		inittimes++;//初始化地图次数
		$(divIds[10]).className = "error"; 
		$(divIds[10]).innerHTML = "请在下面的地图上标注自己的位置！";
		if(inittimes==1){ //初始化地图次数为首次，加载地图，其他不加载
			for(var i=0;i<GLOBAL.cities.length-1;i++){
				if(GLOBAL.cities[i].id == GLOBAL.cityid){
					initialize(GLOBAL.cityid, GLOBAL.cities[i].mapCenter_lng, GLOBAL.cities[i].mapCenter_lat, GLOBAL.cities[i].zoom);
					break;
				}
			}
		}
		$('mapbox').style.display="block";
		$('biaozhu').style.display="block";
		if($('infointro')){
			$('infointro').innerHTML="<p style=\"line-height:30px;text-align:center;border-top:1px solid #ccc;color:#0044dd;font-weight:bold\">如何标注?  点击标注 &gt; 移动图标（或点击地图） &gt; 点击提交 &gt; 完成。</p>"
		}
		//clearMarker();
	}
	else{
		$(divIds[10]).className = "right"; 
		$(divIds[10]).innerHTML = "<span style='color:#666'>系统已识别您的位置坐标！</span>";
		$('mapbox').style.display="none";
		/*$('biaozhu').style.display="none";
		if($('infointro')){
			$('infointro').innerHTML="<p style=\"line-height:30px;text-indent:20px;border-top:1px solid #ccc;\">如若定位有偏差，请将地图上的图标拖动至您正确的所在的位置即可。</p>"
		}
		setCenter(arr[2],arr[1]);*/
	}
}

function getRegAddrLnglat2Response(ret){
	var arr = ret.split("_");
	$('area').value = arr[0];
	$('lng').value = arr[1];
	$('lat').value = arr[2];
	if(arr[0]=='X' && arr[1]*arr[2]==0){
		$(divIds[10]).className = "error"; 
		$(divIds[10]).innerHTML = "系统暂不能识别您的位置，请在下面的地图上标注自己的位置！";
		/*多城市运营*/
		for(var i=0;i<GLOBAL.cities.length-1;i++){
			if(GLOBAL.cities[i].id == GLOBAL.cityid){
				initialize(GLOBAL.cityid, GLOBAL.cities[i].mapCenter_lng, GLOBAL.cities[i].mapCenter_lat, GLOBAL.cities[i].zoom);
			}
		}
		/*多城市运营*/
		$('mapbox').style.display="block";
		$('biaozhu').style.display="block";
		if($('infointro')){
			$('infointro').innerHTML="<p style=\"line-height:30px;text-indent:20px;border-top:1px solid #ccc;color:#0044dd\">如何标注?  请先定位至您的所在大概位置，点击<span class=\"weight\">标注</span>按钮，移到确切位置，提交，即完成标注。</p>"
		}
		clearMarker();
	}
	else{
		$(divIds[10]).className = "error"; 
		$(divIds[10]).innerHTML = "系统已定位至该道路，请标注您的确切位置！";
		/*多城市运营*/
		for(var i=0;i<GLOBAL.cities.length-1;i++){
			if(GLOBAL.cities[i].id == GLOBAL.cityid){
				initialize(GLOBAL.cityid, GLOBAL.cities[i].mapCenter_lng, GLOBAL.cities[i].mapCenter_lat, GLOBAL.cities[i].zoom);
			}
		}
		/*多城市运营*/
		$('mapbox').style.display="block";
		$('biaozhu').style.display="block";
		setCenter(arr[2],arr[1]);
		setTimeout("setCenter("+arr[2]+","+arr[1]+")",100);//中心BUG临时方案
		setTimeout("clearMarker()",200);
		if($('infointro')){
			$('infointro').innerHTML="<p style=\"line-height:30px;text-indent:20px;border-top:1px solid #ccc;color:#0044dd\">已定位至该道路，拖动地图至大概位置，点击标注，移动图标至确切位置，提交即完成。</p>"
		}
		
	}
}

function getRegAddrLnglatError(){

}
 //cch 20090602 end

function changecity(eve){
	//alert(eve.value);
	GLOBAL.cityid = eve.value;
	if($('mapbox').style.display=="block"){
		for(var i=0;i<GLOBAL.cities.length-1;i++){
			if(GLOBAL.cities[i].id == eve.value){
				initialize(GLOBAL.cityid, GLOBAL.cities[i].mapCenter_lng, GLOBAL.cities[i].mapCenter_lat, GLOBAL.cities[i].zoom);
			}
		}	
	}
	//注册页面
	if($("addr")){
		$("addr").focus();
		$("addr").blur();
	}

	//地址管理页面
	if($("position")){
		$("position").focus();
		$("position").blur();
	}
}

//验证用户输入的位置信息
function verifyPhone(num)
{
    var  telNo = getValue($("phone"));
    if("" == telNo)
    {
	    $(divIds[num]).className = "error"; 
	    $(divIds[num]).innerHTML = divErrorContent[num];
	    return false;
    }
	if ("" != telNo) {
		if (!isCommonTel(Trim(telNo))) { //用户输入了但不正确
    		$(divIds[num]).className = "error"; 
			$(divIds[num]).innerHTML = divErrorContent[num];
			return false;
		} 
		$(divIds[num]).className = "right"; 
	    $(divIds[num]).innerHTML = "";
		return true;
	}
	return true;
}

/**************************************************
   验证推荐人ID  2010-09-30 kandychen
***************************************************/
var invitorstatus = 0; //推荐人状态，0不合格 1合格
function veirfyinvitephone(){
    var invitetelNo = getValue($("invitephone"));
	if(invitorstatus==1 && invitetelNo==invitephoneValidStr){
		return true;
	}
	if ("" != invitetelNo) {
		//if (!isCommonTel(Trim(invitetelNo))) { //用户输入了但不正确
		if (Trim(invitetelNo).length<7) { //用户输入了但不正确
			invitorstatus = 0;
    		$("invitephonediv").className = "error"; 
			$("invitephonediv").innerHTML = "请填写正确的推荐人邮箱或手机号码，没有可不填";
			return false;
		} 
		getInvitor(invitetelNo);
		//$("invitephonediv").className = "right"; 
	    //$("invitephonediv").innerHTML = "";
		return false;
	}
	else{
		$("invitephonediv").className = "right";
		$("invitephonediv").innerHTML = "";
	}
	return true;
	
}

function getInvitor(tel){
	var url = "/dianwoba/servlet/invite";
	var pars = "fun=getInvitorInfo&phone="+tel;
	new Ajax(url, {method:"get", data:pars, onComplete:getInvitorResponse}).request();
}

function getInvitorResponse(res){
	//var json = eval('('+res+')');
	if(res=="no"){
		invitorstatus = 0;
		$("invitephonediv").className = "error";
		$("invitephonediv").innerHTML = "您输入的推荐人邮箱或手机号码未匹配到老用户，请重新输入";
	}
	else{
		invitorstatus=1;
		invitephoneValidStr = getValue($("invitephone"));
		var phone = res.split("_")[0];
		var name = res.split("_")[1];
		$("invitephonediv").className = "right";
		$("invitephonediv").innerHTML = "<span style='color:#666'>推荐人："+name+"</span>";
	}
}
/*-----------------end----------------*/



//是否是合法的输入，过滤一些特殊字符
function isValidInput(str) {
	var re = /\-/g; //替换字符串中全部的-符号    
	str = str.replace(re,"_");
	if (null == str || "" == Trim(str))
		return true;
	for(i=0;i<str.length;i++){
	  if('~`!@#$%^&*()-+\\|{}[]:;<>,./?\"\''.indexOf(str.charAt(i))>0){
		return false;
	  }
	}
	return true;
}

//提交注册信息
function checkRegForm(obj){
	//alert("ssssss");
	var j = -1;
	//var flag = false;//判断是否要填写配送信息
	//flag = document.getElementById("Wherebox").checked;
    var verifyCode = getValue($("checkcode"));
    var email = getValue($("emailinput"));
	    var email2 = getValue($("email2input"));
	    if(!verifyEmail(0))
	    {
	      alert("登录邮箱填写错误，请重新填写！");
	      focusProSubmit(0);
	      return;
	    }	    
	    
	    var pwdinput = getValue($("pwdinput"));
	    var pwd2input = getValue($("pwd2input"));
	    if(!verifyPassword(2))
	    {
	      alert("密码填写错误，请重新填写！");
	      focusProSubmit(0);
	      return;
	    }
	    if(!verifyPassword(3))
	    {
	      alert("密码填写错误，请重新填写！");
	      focusProSubmit(3);
	      return;
	    }
	    if((pwdinput != pwd2input))
	    {
	      alert("密码填写错误，请重新填写！");
	      focusProSubmit(3);
	    }
		/*if(!veirfyinvitephone()){
			alert("请正确填写推荐人号码！");
			$("invitephone").focus();
			$("invitephone").select();
			return;
		}*/
	
		if(!verifyNick(1))
	    {
	       alert("请填写正确的昵称");
	       return;
	    }

	    if(!verifyUserNameReg(4))
	    {
	       alert("请填写正确的联系人");
	       return;
	    }
	  
	   var rangeFlag="";
	   var nick = getValue($("nickinput"))
	   var contact = replaceSyschar(getValue($("contact")));
	   var sextype=1;
	   var sexTypeObj=document.getElementsByName("sex");
	   if(!sexTypeObj[0].checked)
	   {
	   	sextype = 0;
	   }else{
	    sextype = 1;
	   }
	   if(!verifyPhone(6))
	   {
	       alert("请填写正确的电话");
	       return;
	   }
	   
	   if(!verifyDetailAddrs(10))
	   {
	       alert("请按送餐地址格式填写");
	       return;
	   }
	 var  telNo = getValue($("phone"));
	 var  addr = getValue($("addr"));
	 var  company = getValue($("company"));
	 var  depart = getValue($("depart"));
	 var  qukuai = getValue($("area"));
	 var  lng = getValue($("lng"));
	 var  lat = getValue($("lat"));
	 //var  invitor = $("invitephone").value;
	 var  invitor = "";
	 if(lng==0 || lat==0){
		alert("系统未能获得您的地理坐标，请先在地图上标注您的位置！")
		$(mapbox).style.display="block";
		return;
	 }

	 var url = "/dianwoba/servlet/reg";
	 var pars = "fun=detailReg&email="+email+"&pwd="+pwdinput+"&verifyCode="+verifyCode;
	 pars = pars/*+"&AddressTypeValue="+AddressTypeValue*/+"&contact="+contact+"&sexType="+sextype+"&rangeFlag="+rangeFlag+"&position="+addr/*+"&road="+road+"&number="+number+"&build="+build*/ ;
	 pars = pars+"&telNo="+telNo+"&qukuai="+qukuai+"&lng="+lng+"&lat="+lat+"&invitor="+invitor+"&invitorstatus="+invitorstatus+"&cityid="+GLOBAL.cityid+"&nick="+nick;
	 new Ajax(url, {method:'get', data:pars, onComplete:detailRegResponse, onFailure:detailRegError}).request();
     obj.disabled=true;//防止重复提交
	 obj.innerText="正在提交，请稍候...";
}

function detailRegResponse(originalRequest)
{
 	 var responseStr = Trim(originalRequest);
	 //if(responseStr == 2)
 	 if(responseStr.indexOf("2")==0)
	 {
 		 var code = responseStr.split("|")[1];
		 var tuijianflag = responseStr.split("|")[2];
 		 window.location.href="/member/regok.html?"+code+"|"+tuijianflag;
	 }else if(responseStr == "9")
	 {
	    $('verifypicTip').className = "error"; 
	    $('verifypicTip').innerHTML = "验证码错误，如果看不清楚请点'看不清?'后在输入";
	 }else{
	   alert("系统错误，请联系网站．");
	 }
	 $('submitobj').disabled=false;
}
function detailRegError()
{
  alert("详细注册错误");
}

function simpleRegResponse(originalRequest)
{
 	 var responseStr = Trim(originalRequest);
	 if(responseStr == 1)
	 {
	   window.location.href="/member/member_3.html"
	 }else if(responseStr ==9)
	 {
	    $('verifypicTip').className = "error"; 
	    $('verifypicTip').innerHTML = "验证码错误，如果看不清楚请点'看不清?'后在输入";
	 }else{
	   alert("系统错误，请联系网站．");
	 }
	 $('submitobj').disabled=false;
}

function verifypicTipFocus()
{
        $('verifypicTip').className = "tip"; 
	    $('verifypicTip').innerHTML = "";
}
function simpleRegError()
{
  alert("简单注册错误");
}

