function detectCityButUserNotChanged(city,addr) 
{
   //server do the same thing,and the suggestion tip prd needed
   /*var _addr = stripAddressCityWord(addr);
   if(city == _addr ) {
      return _addr;
   }*/
   var _obj = document.getElementById("ssss");
   if(!_obj){
      return false;
   }
   var _abj = _obj.getElementsByTagName("INPUT");
   if(!_abj){
      return false;
   }
   var _aLen = _abj.length;
   for(var i = 0; i< _aLen; i++ ) {
       /*
		* adjust the address first,city sencond
		* */
       if(1 != _abj[i].value && addr == _abj[i].name) {
	      return false;
	   }
	   else if(1 == _abj[i].value && addr == _abj[i].name) {
	      var _city = _abj[i].name;
		  setCookie("city",_city);
		  delCookie("addr");

		  return _city;
	   }
   }
   return false;

}
function stripAddressCityWord(addr)
{
   var _addrL = addr.split("");
   var _city = _addrL.pop();
   if(_city == "市") {
      return  _addrL.join("");
   }
   return addr;
}

function suggestChangeCityTip(city)
{
   $("change_city").innerHTML = "您正在切换至"+city+"…";
   sORh("change_city","block");
   setTimeout("hiddenChangeCityTip()",3000);
}
function hiddenChangeCityTip()
{
   sORh("change_city","none");
}
function setout(frm,locateFlag)
{
    //close suggest div
    $('address_drop').style.display = 'none';
	var city = getCookie("city");//$('city').innerHTML ;
	var addr = getAddr(); //getAddr() has striped
	var what = getWhat();
         
    var isCity = detectCityButUserNotChanged(city,addr);
	if(isCity && isCity != city) {
	   //change city
	   city = isCity ? isCity : city;
	   addr = "";
	   suggestChangeCityTip(city);
	}
	
	//fouse null address clear
	if(!addr){
	    setCookie("addr","");
	}
	//combine the extra url for statistics 
	var extra="";
	
	if( frm=='frt'|| frm=='biz' || frm=='txt' || frm =='tft' || frm =='map' )
	{
		if( ( what!=false && what!=getCookie("what"))  && ( city == getCookie("city") && addr == getCookie("addr")) )
			extra="&input=2";
		else if( (what==false || what == getCookie("what")) && (city!=getCookie("city") || addr !=getCookie("addr")) && addr != false)
			extra="&input=1";
		else if( (what!=false && what!=getCookie("what")) && (city!=getCookie("city") || addr !=getCookie("a")) && addr !=false )
			extra="&input=3";
	}	
	if(frm)
		extra=extra+"&frm="+frm;
    
    //delete force to text-view cookie
    //setCookie("text_force",0);
	gotoTextView(city,addr,what,extra);
}

/**
	点击页面上某个关键词，进行搜索；
	将把当前所在城市和A框地址带入
	输入:keyword-关键词
*/
function searchKeyword(keyword)
{
	var city = getCookie("city");//$('city').innerHTML ;
	var addr = getAddr(); //getAddr() has striped
	var what = keyword;
    var isCity = detectCityButUserNotChanged(city,addr);
	if(isCity && isCity != city) {
	   city = isCity ? isCity : city;
	   addr = "";
	   suggestChangeCityTip(city);
	}
	if(!addr){
	    setCookie("addr","");
	}
	gotoTextView(city,addr,what);
}


var comAddr = "全市";//全 市
var comWhat = "";

var AddressDropdown = {
	
	current_place:null,
	
	//仅仅针对其他地点；对工作地和居住地来说，此参数无效。
	//1,add;2:modify;3:delete
	current_type:0,
	
	getElementByName:function(element,name)
	{
		var tmp = element.childNodes;
		if(!tmp || !tmp.length){
			return false;
		}
		for(var i = 0; i<tmp.length; i++){
			if(tmp[i].getAttribute && tmp[i].getAttribute("name") == name){
				return $(tmp[i]);
			}
			if( (ret =AddressDropdown.getElementByName(tmp[i],name)) != false){
				return ret;
			}
		}
		return false;
	},
	getParentByName:function(element,name)
	{
		while( (element = element.parentNode) && element != document.body){
			if(element.getAttribute && element.getAttribute("name") == name){
				return $(element);
			}
		}
		return false;
	},
	//选中我的生活地点中的一个
	selectItem:function(obj){
		obj = this.getParentByName(obj,"myplace");
		var addr = AddressDropdown.getElementByName(obj,'header_myplace_addr_input').value;
		$('addr').value=addr;
		setCookie('addr',addr);
		$('msg_addr_down').hide();
	},
	//选择热门地点中的一个
	selectAddr:function(obj){
		var addr = obj.innerHTML;
		$('addr').value=addr;
		setCookie('addr',addr == comAddr?"":addr);
		$('msg_addr_down').hide();
	},
	//选择历史地点中的一个
	selectAddrA:function(obj){
		var addr = obj.getAttribute("value");
		$('addr').value=addr;
		setCookie('addr',addr == comAddr?"":addr);
		$('msg_addr_down').hide();
	},
	//同时切换城市和地址，并跳转到首页
	changeCityAddr:function(city,addr){
		setCookie('city',city);
		setCookie('addr',addr);
		location.href="/";
		$('msg_addr_down').hide();
	},
	//输入一个地点
	enterAddr:function(form){
		var addr = form.addr_dropdown.value;
		$('addr').value=addr;
		setCookie('addr',addr == comAddr?"":addr);
		//此处不显式隐藏pulldownId，则提示不会关掉，很奇怪
		//有时间要查一查
		$(pulldownId).hide();
		$('msg_addr_down').hide();
	},
	//根据URL判断当前是否为首页
	isFront:function()
	{
		var url = location.href;
		var regex = /^((\w+):\/\/)?((\w+):?(\w+)?@)?([^\/\?:]+):?(\d+)?(\/?[^\?#]+)?\??([^#]+)?#?(\w*)/;
		var r = regex.exec(url);
		/*
		'Username' : 4,
		'Password' : 5,
		'Port' : 7,
		'Protocol' : 2,
		'Host' : 6,
		'Pathname' : 8,
		'URL' : 0,
		'Querystring' : 9,
		'Fragment' : 10
		*/
		var QueryString = r[9];
		var PathName = r[8];
		var QS = {};
		if(QueryString){
			var pairs = QueryString.split('&');
			for(var i =0;i<pairs.length;i++){
				var _tmp = pairs[i].split('=');
				QS[_tmp[0]]=_tmp[1];
			}
		}
		if( (!PathName || PathName == "/") && !QS['area'] ){
			return true;
		}
		else{
			return false;
		}
	}
};

function addNavEvent()
{
    var _nav = $("Nav");
	if(!_nav) {
	   return;
	}
	var _navLi = _nav.getElementsByTagName("LI");
	if(!_navLi){
	   return;
	}
	var _navLiLen = _navLi.length;
	for(var i = 0; i < _navLiLen; i++) {
		if(_navLi[i].className == "sel"){
		   continue;
		}
		if(_navLi[i].id == "nav_wap"){
			continue;
		}
		var tmp = _navLi[i];
	    attachEventListener(tmp,"mouseover",function(){
		    this.className = "over";
		},false);
	    attachEventListener(tmp,"mouseout",function(){
		    this.className = "";
		},false);
	}
}
function addrPullDown()
{
	var msg = $("msg_addr_down");
	if($("simplePlaceEditor")){
		$("simplePlaceEditor").hide();
	}
	var city = $("city").innerHTML;
	var url = "/?area=place&cmd=addrdown&city="+$E(city);
	new Ajax.Request(
	url,{
		method: 'get',
		onSuccess:function(transport){
			msg.innerHTML = transport.responseText;
			msg.show("block");
			document.header_form.addr_dropdown.value = $('addr').value;
		}
	}
	);
}
attachEventListener(window,"load",function(){
  //setTimeout("addNavEvent",1);
  addNavEvent();
  var _addr = $("addr");
  if(_addr) {
     attachEventListener(_addr,'keyup',suggestAddr,false);
     attachEventListener(_addr,'keydown',function(evt){
	    responseInput(evt,this);
	 },false);
  }

  var _what = $("what");
  if(_what) {
     attachEventListener(_what,'keyup',function(evt){
	     var _city = $("city").innerHTML;
		 suggestKeyword(evt,_city);
	 },false);
	 attachEventListener(_what,'focus',function(){
	     clearWhat(this);
	 },false);
     attachEventListener(_what,'blur',function(){
	     resetWhat(this);
	 },false);
	 attachEventListener(_what,'keydown',function(evt){
	    responseInput(evt,this);
	 },false);
  }

  var _dropDownImg = $("dropDownImg");
  if(_dropDownImg){
     attachEventListener(_dropDownImg,"click",function(e){
	     addrPullDown(e,1,'txt');
	 },false);
  }
  var _dropDownImgExtra = $("dropDownImg_extra");
  if(_dropDownImg){
     attachEventListener(_dropDownImgExtra,"click",function(e){
	     addrPullDown(e,1,'txt');
	 },false);
  }
  
  
  var _msgAddrDown = $("msg_addr_down");
 
  attachEventListener(document,"click",function(e){
     var _target = e.srcElement ? e.srcElement : e.target;
	 if(_target.id != "dropDownImg"){
	    while(_target.parentNode){
	       if(_target.parentNode.id == "msg_addr_down" || _target.parentNode.id == "address_drop"){
		      return;
		   }  
		   _target = _target.parentNode;
	    }
	    sORh(_msgAddrDown,"none");
	 }
  },false); 
},false);

	function showMyAddrEditor(obj,isDftType)
	{
		var list = document.getElementsByTagName("div");
		for(var i=0;i<list.length;i++){
			if(list[i].getAttribute("name") == "myplace" && list[i].id != "header_place_template" ){
				if(AddressDropdown.getElementByName(list[i],"header_myplace_type").innerHTML != ""){
					$(list[i]).show();
				}
			}
		}
		var editor = $("header_set_myplace");
		
		if(obj)
		{
			while(obj = obj.parentNode){
				if(obj.getAttribute("name") == "myplace"){
					break;
				}
				if(obj == document.body){
					return;
				}
			}
			var type = AddressDropdown.getElementByName(obj,"header_myplace_type").innerHTML;
			if(type == "居住地"){
				editor.className="s_home";
			}
			else if(type == "工作地"){
				editor.className="s_work";
			}
			else{
				editor.className="s_other";
			}
			if(isDftType == 1)
			{
				AddressDropdown.getElementByName(editor,"header_myplace_type_span").innerHTML=type;
				AddressDropdown.getElementByName(editor,"header_myplace_type_span").show();
				AddressDropdown.getElementByName(editor,"header_myplace_type_input").hide();
				AddressDropdown.getElementByName(editor,"header_myplace_type_input").value = type;
				AddressDropdown.getElementByName(editor,"header_myplace_type_old").value = type;
				AddressDropdown.current_type = 0;
				
			}
			else{
				AddressDropdown.getElementByName(editor,"header_myplace_type_span").innerHTML="";
				AddressDropdown.getElementByName(editor,"header_myplace_type_span").hide();
				AddressDropdown.getElementByName(editor,"header_myplace_type_input").show();
				AddressDropdown.getElementByName(editor,"header_myplace_type_input").value = type;
				AddressDropdown.getElementByName(editor,"header_myplace_type_old").value = type;
				AddressDropdown.current_type = 2;
			}
			AddressDropdown.getElementByName(editor,"addr_hmf").value=AddressDropdown.getElementByName(obj,"header_myplace_addr_input").value;
			var city = AddressDropdown.getElementByName(obj,"header_myplace_city").innerHTML;
			obj.parentNode.insertBefore(editor,obj);
		}
		else{
			var tempalte = $("header_place_template");
			obj = tempalte.cloneNode(true);
			obj.id = "";
			tempalte.parentNode.insertBefore(obj,tempalte);
			obj.parentNode.insertBefore(editor,obj);
			var type = "其他地点";
			AddressDropdown.getElementByName(editor,"header_myplace_type_span").innerHTML="";
			AddressDropdown.getElementByName(editor,"header_myplace_type_span").hide();
			AddressDropdown.getElementByName(editor,"header_myplace_type_input").show();
			AddressDropdown.getElementByName(editor,"header_myplace_type_input").value = "其他地点";
			AddressDropdown.getElementByName(editor,"header_myplace_type_old").value = type;
			AddressDropdown.current_type = 1;
			editor.className="s_other";
		}
		
		AddressDropdown.current_place = obj;
		obj.hide();
		
		if(!city){
			city = $("city").innerHTML;
		}
		$('header_myplace_msg1').hide();
		$('header_myplace_msg2').hide();
		$('header_myplace_msg3').hide();
		
		AddressDropdown.getElementByName(editor,"city_hmf").value=city;
		editor.show();
	}
	
	function setPersonalAddr(form)
	{	
		var city = form.city_hmf.value;
		var type = form.header_myplace_type_input.value;
		var type_old = form.header_myplace_type_old.value;
		var addr = form.addr_hmf.value;
		var msg = "";
		if( type == ""){
			msg = (msg?"<br/>":"")+"名称不能为空";
		}
		else if(type == "其他地点"){
			//msg = (msg?"<br/>":"")+"不得使用默认名称";
		}
		
		if(addr == ""){
			msg = (msg?"<br/>":"")+"地点不能为空";
		}
		
		
		if(msg){
			$('header_myplace_msg1').hide();
			$('header_myplace_msg2').hide();
			$('header_myplace_msg3').innerHTML=msg;
            $('header_myplace_msg3').show();
            return false;
		}
		
		var url  = "/?area=place&cmd=setaddr&name="+$E(type)+"&city="+$E(city)+"&addr="+$E(addr)+"&oname="+$E(type_old);
		
		$('header_myplace_msg1').show();
		$('header_myplace_msg2').hide();
		$('header_myplace_msg3').hide();
		
		form.ok.disabled=true;
		new Ajax.Request(
        url,{
            method: 'get',
            onSuccess: function(transport){
                var __tmp = transport.responseText.split(':');
                form.ok.disabled=false;
                $('header_myplace_msg1').hide();
                if(__tmp[0] == 1){
                	//如果是首页，则与“我附近的商家”联动
                	if($('nearby_biz') && getNearbyBiz && typeof(getNearbyBiz) == "function"){
                		getNearbyBiz();
                	}
     				addrPullDown();
                }
                else if(__tmp[0] == 2){
                	$('header_myplace_msg3').innerHTML="该地点已经被定义";
                	$('header_myplace_msg3').show();
                }
                else if(__tmp[0] == 3){
                	$('header_myplace_msg3').innerHTML="定义的地点已经超过5个";
                	$('header_myplace_msg3').show();
                }
                else{
                	 $('header_myplace_msg2').show();
                }
            }
        });
	}
	
	
	function showSimpleMyPlaceEditor()
	{
		var msg = $("simplePlaceEditor");
		
		if($("msg_addr_down")){
			$("msg_addr_down").hide();
		}
		var city = $("city").innerHTML;
		var url = "/?area=place&cmd=simpleeditor&city="+$E(city);
		new Ajax.Request(
		url,{
			method: 'get',
			onSuccess:function(transport){
				msg.innerHTML = transport.responseText;
				msg.show("block");
			}
		}
		);
	}
	
	function setSimpleAddr(form,type)
	{	
		var city = form.city_sme.value;
		var addr = form.addr_sme.value;
		if(type=="work"){
			var type_str = "工作地";
		}
		else if(type = "home"){
			var type_str = "居住地";
		}
		else{
			alert("错误的类型");
			return;
		}
		
		var msg = "";
		if(addr == ""){
			msg = (msg?"<br/>":"")+"地点不能为空";
		}
		
		if(msg){
			$(type+'_msg1').hide();
			$(type+'_msg2').hide();
			$(type+'_msg3').innerHTML=msg;
            $(type+'_msg3').show();
            return false;
		}
		
		var url  = "/?area=place&cmd=setaddr&name="+$E(type_str)+"&oname="+$E(type_str)+"&city="+$E(city)+"&addr="+$E(addr);
		
		$(type+'_msg1').show();
		$(type+'_msg2').hide();
		$(type+'_msg3').hide();
		
		form.ok.disabled=true;
		new Ajax.Request(
        url,{
            method: 'get',
            onSuccess: function(transport){
                var __tmp = transport.responseText.split(':');
                form.ok.disabled=false;
                $(type+'_msg1').hide();
                if(__tmp[0] == 1){
     				$('simplePlaceEditor').hide();
     				var x = __tmp[2];
     				var y = __tmp[3];
     				var bizx = $('bizx_sme').value;
     				var bizy = $('bizy_sme').value;
     				var bizxy = Vqp.transformer([$('bizx_sme').value,$('bizy_sme').value])
     				var dis = (mapObj.calDistance(bizxy, Vqp.transformer([x,y]))/1000).toFixed(1);
     				var bid = $('bid_sme').value;
     				
     				//因为有商户ID,因此商户名称可以不传.
     				//不过最好还是传了。
     				var bname = $('bname_sme').value;
     				
    				if(type == 'home'){
						document.getElementById("homexy").innerHTML="距你家：<br>"+dis+"公里"+"<br><a href='"+domainBus+"/?area=abbd&cmd=traffic&id="+bid+"&start="+addr+"&end="+bname+"&x1="+x+"&y1="+y+"&x2="+bizx+"&y2="+bizy+"&frm=in_biz_zhilu' target='blank'>指路</a>";    					
    				}
    				else if(type == 'work'){
    					document.getElementById("workxy").innerHTML="距你工作地：<br>"+dis+"公里"+"<br><a href='"+domainBus+"/?area=abbd&cmd=traffic&id="+bid+"&start="+addr+"&end="+bname+"&x1="+x+"&y1="+y+"&x2="+bizx+"&y2="+bizy+"&frm=in_biz_zhilu' target='blank'>指路</a>";
	    			}
	    			//小地图上如果原来是"添加生活地点"，现在应该改成"编辑生活地点"
	    			var objEditOrAdd=document.getElementById("editplace");
	    			if(objEditOrAdd && objEditOrAdd.innerHTML.indexOf("想知道该商户离家或者工作地有多远")!=-1){
	    				objEditOrAdd.innerHTML = '[<a href="javascript:void(0)" onclick="showSimpleMyPlaceEditor()">编辑生活地点</a>]';
	    			}
                }
                else if(__tmp[0] == 2){
                	$(type+'_msg3').innerHTML="该地点已经被定义";
                	$(type+'_msg3').show();
                }
                else if(__tmp[0] == 3){
                	$(type+'_msg3').innerHTML="定义的地点已经超过5个";
                	$(type+'_msg3').show();
                }
                else{
                	 $(type+'_msg2').show();
                }
            }
        });
	}
	//改变B框下面的例：xx xxx 这种头部搜索的地址，该地址由A框带入
	function sampleScAddrRp(){
		$head_sc_1 = $('head_sc_1');
		$head_sc_2 = $('head_sc_2');
		$head_sc_3 = $('head_sc_3');
		$head_sc_4 = $('head_sc_4');
		$addr = $('addr');
		if($addr){
		$addr_str = '&a='+$E($addr.value)+'&';
		if($head_sc_1){
			$href_1 = $head_sc_1.href;
			$head_sc_1.href = $href_1.replace(/&a=.*?&/,$addr_str);
		}
		if($head_sc_2){
			$href_2 = $head_sc_2.href;
			$head_sc_2.href = $href_2.replace(/&a=.*?&/,$addr_str);
		}
		if($head_sc_3){
			$href_3 = $head_sc_3.href;
			$head_sc_3.href = $href_3.replace(/&a=.*?&/,$addr_str);
		}
		if($head_sc_4){
			$href_4 = $head_sc_4.href;
			$head_sc_4.href = $href_4.replace(/&a=.*?&/,$addr_str);
		}
		}
	}

	/*
	function hideDialog(event)
	{
	var target = event.srcElement?event.srcElement:event.target;
	if($(target).descendantOf('msg_addr_down') == false ){
	$('msg_addr_down').hide();
	}
	if($(target).descendantOf('simplePlaceEditor') == false ){
	$('simplePlaceEditor').hide();
	}
	}

	attachEventListener(window,"load",function(){
	attachEventListener(document,"click",function(event){
	hideDialog(event);
	},false);
	attachEventListener(document,"mouseup",function(event){
	hideDialog(event);
	},false);
	},false);
	*/
