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 = city ? city: (document.ar.city.value);
        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);
}

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 addrPullDown()
{
	var msg = $("msg_addr_down");
	if($("simplePlaceEditor")){
		$("simplePlaceEditor").hide();
	}
	var city = getCookie("city");
	city = city ? city : (document.ar.city.value);
	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;
		}
	}
	);
}
	
	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 = getCookie("city");
		}
		$('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);
	    //alert(url);	
		$('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='/?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='/?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();
                }
            }
        });
	}
attachEventListener(window,'load',function(){
    var _cityObj = $("city");
	var _addrObj = $("addr");
	var _whatObj = $("what");
    
	if(_addrObj) {
       attachEventListener(_addrObj,'keyup',suggestAddrInCity,false);
       attachEventListener(_addrObj,'keydown',responseInput,false);
    }
	if(_whatObj) {
	   attachEventListener(_whatObj,'keyup',suggestKeyword,false);
       attachEventListener(_whatObj,'keydown',responseInput,false);
    }

	var _dropDownImg = $("dropDownImg");
	if(_dropDownImg) {
	   attachEventListener(_dropDownImg,'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;
		while(_target.parentNode){
		     if(_target.parentNode.id == "msg_addr_down" || _target.parentNode.id == "address_drop") {
			     return;
			 }
			 
			  _target = _target.parentNode;
		} 
		sORh(_msgAddrDown,"none");
	},false);

	var _lhList = $("listenHeaderList");

	if(_lhList) {
	   var _aObj = _lhList.getElementsByTagName("A");
	   var _aLen = _aObj ? _aObj.length : 0;
	   var _city = getCookie("city");
           _city = _city ? _city : (document.ar.city.value);
	   var _addr = getAddr();
	   for(var i=0; i< _aLen ; i++ ) {
	       var _al = _aObj[i];
		   attachEventListener(_al,'click',function(event){
              sORh("msg_addr_down","none");
			  sORh("msg","none");
		      var _what = this.innerHTML;
			  setWhat(_what);
			  setout("soso_sample_search");
		      cancelEvent(event);
		   },false);
	   }
	}
},false);
