//页面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","email2div","pwddiv","pwd2div","contactdiv","positiondiv","phonediv","builddiv","roaddiv","numdiv","detailAddrsdiv"];
//ajax请求验证用户的邮箱使用
var emailStatus = 0;//0不可用 1 发送验证中 2可使用

var emailValidStr = null;//String 可用的邮件**@**.**

/*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 verifyEmail(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;
}

//密码验证 只能输入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) || Trim(userName).length < 2 || Trim(userName).length > 8 ) 
//	{ 
//	    $(divIds[num]).className = "error";
//		$(divIds[num]).innerHTML = divErrorContent[num];
//		return false;
//	}
	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 verifyPosition(num)
{
	var positionName = getValue($("position"));
    if(!checkRoadnum(positionName)){//输入格式出错
        	$(divIds[num]).className = "error";//error 样式
			$(divIds[num]).innerHTML = "格式错误，请按 xxx路（或街弄巷）xxx号 格式填写";
			return false;
	}
	var url = "/dianwoba/servlet/reg";
	var pars = "fun=getQukuai&roadnum="+positionName+"&now="+new Date();
	new Ajax(url, {method:'get', data:pars, onComplete:getQukuaiResponse, onFailure:getQukuaiError}).request();
    
	//2009-06-02取消道路门牌号强制输入限制
	if ("" == Trim(positionName) || strLength(Trim(positionName)) > 60  || !isValidInput(positionName)) 
	{
		$(divIds[num]).className = "error"; 
		$(divIds[num]).innerHTML =divErrorContent[num];
		return false;
	}//
	
    $(divIds[num]).className = "right"; 
	$(divIds[num]).innerHTML = "";
	
	return true;
}

function getQukuaiResponse(originalRequest){
	var tp=originalRequest;
	
	var arr=tp.split("_");
	var area=arr[0];
	
	if(area=="X"){
		$('qukuai').value="";
	}
	else{
		$('qukuai').value=area+"区";
		$('qukuai').style.color="red";
	}
}
function getQukuaiError(){

}
*/

//验证登陆后修改或添加地址时路名的有效性
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;
}

/*验证物业名称的有效性
function verifyBuild(num)
{
	var build = getValue($("build"));
    if(!checkBuild(build)){//输入格式出错
        	$(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"));
    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+"&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+"&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){
		$(divIds[10]).className = "error"; 
		$(divIds[10]).innerHTML = "请在下面的地图上标注自己的位置！";
		initialize();
		$('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 = "系统暂不能识别您的位置，请在下面的地图上标注自己的位置！";
		initialize();
		$('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 = "系统已定位至该道路，请标注您的确切位置！";
		initialize();
		$('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 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;
}

//是否是合法的输入，过滤一些特殊字符
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;
	    }
	    /*if(!verifyEmail(1))
	    {
	      alert("登录邮箱填写错误，请重新填写！");
	      focusProSubmit(1);
	      return;
	    }
	    if(emailStatus !=2 || (email != email2))
	    {
	      alert("登录邮箱填写错误，请重新填写！");
	      focusProSubmit(1)
	    }*/
	    
	    
	    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)
	    }
		  //alert("aaaaaaaaaaaaa");
	/*if(!flag)//简单注册提交email和密码
	 {
	    var url = "/dianwoba/servlet/reg";
		var pars = "fun=simpleReg&email="+email+"&pwd="+pwdinput+"&verifyCode="+verifyCode;
		new Ajax(url, {method:'get', data:pars, onComplete:simpleRegResponse, onFailure:simpleRegError}).request();
	 }else//详细注册
	 {
	 	var AddressTypeObj;
	 	var AddressTypeValue="";
	    AddressTypeObj=document.getElementsByName("userAddressType");
	    if(AddressTypeObj!=null){
	        var i;
	        for(i=0;i<AddressTypeObj.length;i++){
	        if(AddressTypeObj[i].checked)
              {
                AddressTypeValue=AddressTypeObj[i].value; 
                if(AddressTypeValue == "其他")
                {
                  AddressTypeValue = getValue($("userAddressName"));
                  if(strLength(AddressTypeValue)<1 || strLength(AddressTypeValue)>60)
                  {
                     alert("请填写你正确所在地址,地址不能为空和不能超过30个字符.");
                     return;
                  }
                }
              }
	        }
	    }*/
	    if(!verifyUserNameReg(4))
	    {
	       alert("请填写正确的联系人");
	       return;
	    }
	   // alert("1111111111");
	  //var obj = document.getElementById("psdSel");
	   var rangeFlag="";
	   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(!verifyPosition(5))
	   {
	   	   alert("请填写正确的门牌号,不能使用~`!@#$%^&*()+\\|{}[]:;<>,./?特殊字符");
	       return;
	   }
	   var positionName = replaceSyschar(getValue($("position")));
	   if(positionName==null || positionName == ""){
          var road="";
		  var number="";
	   }
	   else
	   {
		   var b=positionName.length; 
			   if(positionName.indexOf("路")>-1){
				  c=positionName.indexOf("路");
			   }
			   else if(positionName.indexOf("街")>-1){
				  c=positionName.indexOf("街");
			   }
			   else if(positionName.indexOf("弄")>-1){
				  c=positionName.indexOf("弄");
			   }
			   else if(positionName.indexOf("巷")>-1){
				  c=positionName.indexOf("巷");
			   }
			   c+=1;
			   d=positionName.indexOf("号");
		   var road=positionName.substring(0,c);
		   var number=positionName.substring(c,d);
	   }
	    if(!verifyBuild(7))
	   {
	       alert("物业名称不能为空");
	       return;
	   }*/
	   
	   if(!verifyDetailAddrs(10))
	   {
	       alert("请按送餐地址格式填写");
	       return;
	   }
	 var  telNo = getValue($("phone"));
	 /*var  qukuai = getValue($("qukuai"));
	 if(qukuai==null || qukuai==""){
           alert("请选择服务区");
		   return;
	 }
	 if(qukuai.indexOf("A")!=-1){
		  qukuai="A";
	 }
	 if(qukuai.indexOf("B")!=-1){
		  qukuai="B";
	 }
	 if(qukuai.indexOf("C")!=-1){
		  qukuai="C";
	 }
	 var  build =getValue($("build"));
	 */
	 var  addr = getValue($("addr"));
	 var  company = getValue($("company"));
	 var  depart = getValue($("depart"));
	 var  qukuai = getValue($("area"));
	 var  lng = getValue($("lng"));
	 var  lat = getValue($("lat"));
	 if(lng==0 || lat==0){
		alert("系统未能获得您的地理坐标，请先在地图上标注您的位置！")
		$(mapbox).style.display="block";
		return;
	 }
	//alert("222222222222222");
	 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;
	 new Ajax(url, {method:'get', data:pars, onComplete:detailRegResponse, onFailure:detailRegError}).request();
     obj.disabled=true;//防止重复提交
}

function detailRegResponse(originalRequest)
{
 	 var responseStr = Trim(originalRequest);
	 //if(responseStr == 2)
 	 if(responseStr.indexOf("2")==0)
	 {
 		 var code = responseStr.split("|")[1];
 		 window.location.href="/member/regok.html?"+code;
	 }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("简单注册错误");
}

