﻿/*init imageslib src*/
imageslib=typeof imageslib!="undefined"?imageslib:"http://ditu.mapbar.com";

/**
 * get element style and default style
 */
function getStyle(el,styleNameForIE, styleNameForFF)
{
	var x = el; 
	if (x.currentStyle){
		var y = x.currentStyle[styleNameForIE];
	}else if (document.defaultView && document.defaultView.getComputedStyle){
		var css = document.defaultView.getComputedStyle(x, null);
		var y = css ? css.getPropertyValue(styleNameForFF) : "";
	}else{
	    var y = "";
	}
	return y;
}

/**
 * show or hide ctiyPanelContainer element
 * @param {Object} visible
 *
 */
function setCityPanelContainerVisible(visible){
	
	var val = $("cityPanelContainer").style.visibility;
	if(visible && val=="hidden")
		$("cityPanelContainer").style.visibility = "visible";
	else if(!visible && val!="hidden")
		$("cityPanelContainer").style.visibility = "hidden";
	
}

/**
* get the explorer width and height
* return a arrayList with [pageWidth, pageHeight, windowWidth, windowHeight]
*/
function getPageSize() {
    var xScroll, yScroll;
    if (window.innerHeight && window.scrollMaxY) {
        xScroll = document.body.scrollWidth;
        yScroll = window.innerHeight + window.scrollMaxY;
    } else if (document.body.scrollHeight > document.body.offsetHeight) {
        xScroll = document.body.scrollWidth;
        yScroll = document.body.scrollHeight;
    } else {
        xScroll = document.body.offsetWidth;
        yScroll = document.body.offsetHeight;
    }
    var windowWidth, windowHeight;
    if (self.innerHeight) { // all except Explorer
        windowWidth = self.innerWidth;
        windowHeight = self.innerHeight;
    } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
        windowWidth = document.documentElement.clientWidth;
        windowHeight = document.documentElement.clientHeight;
    } else if (document.body) { // other Explorers
        windowWidth = document.body.clientWidth;
        windowHeight = document.body.clientHeight;
    }
    if (yScroll < windowHeight) {
        pageHeight = windowHeight;
    } else {
        pageHeight = yScroll;
    }
    if (xScroll < windowWidth) {
        pageWidth = windowWidth;
    } else {
        pageWidth = xScroll;
    }
    arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight);
    return arrayPageSize;
}

/*
var ElementXY = Class.create();
ElementXY.prototype = {
        initialize: function(htmlElement) {
        var objElem = $(htmlElement);
        this.top = objElem.offsetTop;
        this.left = objElem.offsetLeft;
        while (objElem = objElem.offsetParent) {
            this.top += objElem.offsetTop;
            this.left += objElem.offsetLeft;
        }
    },
    getX : function () { return parseInt(this.left) ;},
    getY : function () {return parseInt(this.top); }
}
*/
/**
* cookie operate
*/
var Cookie=new Object();
Cookie.setCookie=function(name,value,option){
	//用于存储赋值给document.cookie的cookie格式字符串
	var str=name+"="+escape(value);
	if(option){
		//如果设置了过期时间
		if(option.expireDays){
			var date=new Date();
			var ms=option.expireDays*24*3600*1000;
			date.setTime(date.getTime()+ms);
			str+="; expires="+date.toGMTString();
		};
        if(option.path)str+="; path="+option.path;
		if(option.domain)str+="; domain="+option.domain;
		if(option.secure)str+="; true";
	};
	document.cookie=str;
};
Cookie.setMCookie=function(name,value,option){
	var domain=location.href.indexOf("mapbar.com")==-1?"":"mapbar.com";
	if(!option)option={expireDays:'30',domain:domain,path:'/'}
	else{
		option.domain=domain;
	}
	Cookie.setCookie(name,value,option);
};
Cookie.getCookie=function(name){
	var cookieRet="";
	var cookieArray=document.cookie.split("; ");
	var cookie=new Object();
	for(var i=0;i<cookieArray.length;i++){
		var arr=cookieArray[i].split("=");
		if(arr[0]==name){cookieRet=unescape(arr[1])};
	};
	return cookieRet;
};
Cookie.deleteCookie=function(name){
	this.setCookie(name,"",{expireDays:-1});
};
/*
* justify ie
*/
var ie=document.all?1:0;
var ie6=navigator.userAgent.split(";")[1].toLowerCase().indexOf("msie 6.0")=="-1"?0:1;
/**
* cityData Fun
*/
var cityDataFun = {
    /*
    document.write(cityDataFun.initCityOption("北京市","&nbsp;├"));
    */
    initCityOption:function(defaultCity,cChar,pClass,cClass){
        var optionArr=[];
        for(var i=0;i<cityData.province.length;i++){
            optionArr.push('<option class="'+(pClass||"")+((defaultCity==cityData.province[i].pname)?' selected="selected"':'')+'" value='+cityData.province[i].pname+'>'+cityData.province[i].pname+'</option>\n');
            for(var j=0;j<cityData.province[i].city.length;j++){
                optionArr.push('<option class="'+(cClass||"")+((defaultCity==cityData.province[i].city[j].cityName)?' selected="selected"':'')+'" value='+cityData.province[i].city[j].cityName+'>'+(cChar||"&nbsp;├")+cityData.province[i].city[j].cityName+'</option>\n');
            }
        }
        return optionArr.join("");
    } ,
    getCityPropertiesByCity:function(cityValue){
        var cityProperties={strLatLon:"GVCUSBXUIWTCR",zoom:"1",code:"086",city:"全国"};
        for(var i=0;i<cityData.province.length;i++){
            for(var j=0;j<cityData.province[i].city.length;j++){
                if(cityData.province[i].city[j].cityName==cityValue){
                    cityProperties.strLatLon= cityData.province[i].city[j].citylatlon;
                    cityProperties.zoom= cityData.province[i].city[j].cityzoom;
                    cityProperties.code= cityData.province[i].city[j].citycode;
                    cityProperties.city= cityValue;
                    return cityProperties;
                }
            }
        }
        return cityProperties;
    }
}
/**
* @describtion create city select custom ,
var list1=new cityDataFun.citySelector();
list1.name="city";
list1.defaultValue="保定市";
list1.init("list1");
*/

cityDataFun.citySelector=Class.create();
cityDataFun.citySelector.isInDivRange=false;
cityDataFun.citySelector.prototype={
    initialize:function(){
        this.strArr = [];
        this.imgSrc={mouseOver:"/images/selector_icon.gif",mouseOut:"/images/selector_icon.gif"};
        this.imgStyle={position:"absolute", cursor:"pointer", margin:"2px 0px 0px -18px"};
        this.inputStyle={width:"82px",height:"20px",border:"1px solid #7F9DB9", padding:"0px 18px 0px 3px", cursor:"pointer"};
		this.inputOption={issuggest:"no",onblur:"",posturl:"",cityoption:""};
        this.selectorDivStyle={display:"none",border:"1px solid #7F9DB9",background:"#FFF",position:"absolute",width:(parseInt(this.inputStyle.width)+21)+"px",height:"200px",zIndex:'99999',overflow:'auto'};
        this.name = "city";
        this.id="";
        this.seletorDivId="cityOptionCityPanelId";
        this.obj="list";
        this.defaultValue="北京市";
        this.displayLock=false;
        this.option = {mouseOver:"this.bgColor='darkgray'",mouseOut:"this.bgColor=''",onchange:function(value){mapbardis.cityOption(value);}};
    },
    getStyle:function(style){
        var ret="";
        for(var i in style){ret+=i+":"+eval("style."+i)+";";}
        return ret;
    },
    imgOnclick:function(obj){
        var obj1=obj.parentNode.getElementsByTagName("input")[0];
        this.seletorDivToggle(this.obj,obj1,this.seletorDivId,0,parseInt(this.inputStyle.height));
    },
    init:function(obj){
        if(!obj){for(var a in window){if(window[a]==this){obj=a;break;}}}  //seem not work in ie
        this.obj=obj;
        this.strArr.push("<input issuggest=\""+this.inputOption.issuggest+"\" posturl=\""+this.inputOption.posturl+"\" onblur=\""+this.inputOption.onblur+"\"  "+(this.id==""?"":"id="+this.id)+" value=\""+this.defaultValue+"\" name=\""+this.name+"\" style=\""+this.getStyle(this.inputStyle)+"\" "+this.inputStyle.readonly+" selectdone_callback=\""+this.inputOption.cityoption+"\">");
        this.strArr.push("<img src=\""+this.imgSrc.mouseOut+"\" style=\""+this.getStyle(this.imgStyle)+"\"  onclick=\""+this.obj+".imgOnclick(this)\">");
        document.write(this.strArr.join(""));
        this.strArr=[];
    },
    seletorDivToggle:function(obj,obj1,obj2,left,top){
        if(!$(this.seletorDivId)){this.createSeletordiv();}
        $(obj2).setAttribute("value",obj);
        $(obj2).style.height=this.selectorDivStyle.height;
        showPanel(obj1,obj2,left,top,1);
    },
    createSeletordiv:function(){
        if(typeof cityData=="undefined"){throw new Error("cityData.js not included");}
        var cityIndent = "&nbsp;├";
        var lastIndent = "&nbsp;└";
        var div=document.createElement("div");
        div.id=this.seletorDivId;
        Element.setStyle(div,this.selectorDivStyle);
        Event.observe(div,"mouseover",function(){cityDataFun.citySelector.isInDivRange=true;Element.show(div)});
        Event.observe(div,"mouseout",function(){cityDataFun.citySelector.isInDivRange=false;Element.hide(div);});
        Event.observe(document,"click",hideCityListClick);
        this.strArr.push("<table width='100%' height='100%' border='0' cellspacing='0' cellpadding='0' style='table-layout:fixed;' >");
        for(var i=0;i<cityData.province.length;i++){
		    this.strArr.push( "<tr onclick=\"alert('请选择城市');return false;\"  value="+cityData.province[i].pname+" onmouseover=\""+this.option.mouseOver+"\" onmouseout=\""+this.option.mouseOut+"\"><td id='"+cityData.province[i].pname+"' style='cursor:pointer;white-space:nowrap;overflow:hidden' onmouseover=\"this.bgColor=''\" onmouseout=\"this.bgColor=''\"'>"+cityData.province[i].pname+"</td></tr>");
		    for(var j=0;j<cityData.province[i].city.length;j++){
		        this.strArr.push( "<tr value="+cityData.province[i].city[j].cityName+" onclick=\"eval($('"+this.seletorDivId+"').getAttribute('value')).option.onchange(this.getAttribute('value'));Element.hide($('"+this.seletorDivId+"'));\" onmouseover=\""+this.option.mouseOver+"\" onmouseout=\""+this.option.mouseOut+"\"><td  style='cursor:pointer;white-space:nowrap;overflow:hidden' >"+((i==cityData.province.length-1&&j==cityData.province[i].city.length-1)?lastIndent:cityIndent)+cityData.province[i].city[j].cityName+"</td></tr>");
		    }
		}
		this.strArr.push( "</table>");
        div.innerHTML=this.strArr.join("");
        document.body.appendChild(div);
    }
}

cityDataFun.scity=Class.create();
cityDataFun.scity.prototype={
    initialize:function(carrier,option){
		this.obj=(option&&option.objName)?option.objName:(carrier||"scity");
		this.name = "city";
        this.id="";
		this.carrier=document.getElementById(carrier);
		this.lib={img_list:"/images/nw/list.png"};
		this.sg={url:(typeof jsondata_sg!="undefined"?jsondata_sg:"http://suggest.mapbar.com/json/citySuggest.jsp?"),issg:"yes"};
		this.view={select:(option&&option.select?option.select:'img')};
		this.initHtml();
		
    },
	setCity:function(obj){
		if(cityDataFun.getCityPropertiesByCity(obj.value).code=="086"){
			var fdata=(typeof jsondata!="undefined"&&jsondata.results.length>0)?jsondata.results[0].value:(mapbardis.city||"北京市");
			obj.value=fdata;
		}
		$("_city_sg0"+this.obj).innerHTML=obj.value;
		if(mapbardis.city!=obj.value){
			mapbardis.cityOption(obj.value);
		}else{this.setViewHtml(obj.value);}
	},
	getListCommand:function(){
		if(this.view.select!="img"){
			return '<a href="javascript:void(0)" title="变更城市" onclick="showLessCityList(this,-40,20);" onblur="hideLessCityList();" style="text-decoration:none;line-height:30px;height:30px;" class="black">[变更城市]</a>';
		}else{
			return '<a href="javascript:void(0)" title="变更城市" onclick="showLessCityList(this,-80,20);" onblur="hideLessCityList();" style="text-decoration:none;line-height:30px;height:30px;" class="black"><img id="tmpimgid" src="/images/nw/list.png" ></a>';
		}
	},
	initHtml:function(){
		this.carrier.innerHTML=(this.view.select=="img"?'':'<b>搜索范围</b>:')+'<span name="cityPanel" id="__cityPanel" >'
								+'<nobr id="_city_sg0'+this.obj+'" style="display:;" onclick="'+this.obj+'.setEditHtml();">'+(mapbardis.city||'北京市')+'</nobr></span>'
								+'<input id="_city_sg'+this.obj+'" posturl="'+this.sg.url+'" issuggest="'+this.sg.issg+'" value="'+mapbardis.city+'" style="border: 1px solid #EEE;  width: 80px; height: 14px;display:none;"/>'
								+this.getListCommand();
	},
	setViewHtml:function(cityValue){
		$("_city_sg0"+this.obj).style.display='';
		$("_city_sg"+this.obj).style.display='none';
		$("_city_sg0"+this.obj).innerHTML=cityValue;
		$("_city_sg"+this.obj).value=cityValue;
			
	},
	setEditHtml:function(){
		$("_city_sg0"+this.obj).style.display='none';
		$("_city_sg"+this.obj).style.display='';
		var obj=$("_city_sg"+this.obj);
		var self = this;
		if (obj.attachEvent) {
			obj.attachEvent("onblur", function(){self.setCity(obj)});
		} else {
			obj.addEventListener("blur", function(){setTimeout(function(){self.setCity(obj)},10);}, false);
		}
		//mapbarInputSuggest.bind(json_suggest);
		obj.select();
		obj.focus();
	}
}

/**
*  create lesscity div
*/
function createLessCityList(obj){
    //if($(obj)){return;}
	if(typeof lessCity =="undefined")lessCity=["北京市","上海市","广州市","深圳市"];
	var list;
	if(!$(obj)){list=document.createElement("div");	}
	else{list=$(obj);}
    list.id=obj;
    list.style.display="none";
    list.className="lessCity";
    list.onmouseover= function(){cityDisply=true;};
    list.onmouseout = function(){
        if(typeof cityDisplay2!="undefined"&&cityDisplay2){$('lessCityList').style.display='none';hideCoverFrame('coverFrame');cityDisplay2=undefined;}
        cityDisply=false;
    };
    var lessCityArr=[];
	lessCityArr.push("<table>");
	var historycity = cityhistory.toArray();	
	if(historycity.length>0){
		lessCityArr.push("<tr><td><b>历史查询</b></td></tr>");
		for(var i=historycity.length-1,j=0;j<3&&i>=0;i--,j++){
			lessCityArr.push("<tr><td><a href=\"javascript:;\" onmousedown=\"mapbardis.cityOption(this.innerHTML); return false;\" >"+historycity[i]+"</a></td></tr>");
		}
	}
	lessCityArr.push("<table><tr><td><b>热点城市</b></td></tr>");
    for(var i=0;i<lessCity.length;i++){
        lessCityArr.push("<tr><td><a href=\"javascript:;\" onmousedown=\"mapbardis.cityOption(this.innerHTML); return false;\" >"+lessCity[i]+"</a></td></tr>");
    }
    lessCityArr.push("<tr><td><a id=\"moreCityA\" href=\"/help/city.html\" target=_blank  >更多&nbsp;&raquo;</a></td></tr>");
	var checked=mapbardis.cityChain.getChain()?"checked":"";
	var cvalue=checked?"0":"1";
	lessCityArr.push("<tr><td><input id=\"cbx_citychain\" onclick=\"mapbardis.cityChain.setChain('"+cvalue+"');\" type=\"checkbox\" "+checked+"/><label for=\"cbx_citychain\" style=\"color:red;\">与地图联动</label></td></tr>");
	lessCityArr.push("</table>");
    list.innerHTML=lessCityArr.join("");
    if(!$(obj))document.body.appendChild(list);
    lessCityArr=null;
}
function createFrame(obj){
	var frame;
	if(!$(obj)){frame=document.createElement("iframe");}
	else{frame=$(obj);}
	frame.id=obj;
	frame.src="";
	frame.style.display="none";
	frame.style.position="absolute";
	//frame.style.frameBorder="0";
	frame.frameBorder = "0";
	if(!$(obj))document.body.appendChild(frame);
}
function showLessCityList(obj,left,top){	
    isInDivRange=false;
    var cityId="lessCityList";
    var frameId="coverFrame";
    createLessCityList(cityId);
    createFrame(frameId);
    showPanel(obj,frameId,left,top);
    showPanel(obj,cityId,left,top);
	setFrameSize(); 
}
function setFrameSize(){
	if($('lessCityList')){
		var height = $('lessCityList').clientHeight;
		var width = $('lessCityList').clientWidth;
		if($('coverFrame')){
			if(ie6){
				$('coverFrame').height = (height+2)+"px";
				$('coverFrame').width = (width+3)+"px";		
			}else{
				$('coverFrame').height = (height-2)+"px";
				$('coverFrame').width = (width-2)+"px";		
			}
		}
	}
}
function hideCoverFrame(obj){
	if(!$(obj))return;
	$(obj).style.display = 'none';
}
function hideLessCityList(obj){
	if(!$("lessCityList"))return;
    if(typeof cityDisply=="undefined"||!cityDisply){$('lessCityList').style.display='none';}
    else{cityDisplay2=true;}
    hideCoverFrame('coverFrame');
}
/**
*  当点击页面时 隐藏下拉城市列表
*/
function hideCityListClick(event){
    this.seletorDivId="cityOptionCityPanelId";
    var event1=event||window.event;
    var src=event1.srcElement||event1.target;
    if(src.id==this.seletorDivId||(src.src&&src.src.indexOf("/images/selector_icon.gif")!="-1")){

    }else{
        if($(this.seletorDivId))Element.hide(this.seletorDivId);
    }
}
var request={
    /**
     * @description request HASH param。
     */
    init:function(newUrl) {
        newUrl=newUrl||window.location.hash;
        var Request = {};
        var strs = newUrl;
        switch(newUrl.indexOf("#")){
            case 0:{strs = newUrl.substr(1); ;break;}
            case -1:{break;}
        }
        strs = strs.split("&");
        for (var id = 0; id < strs.length; id++) {
            Request[strs[id].split("=")[0]] = strs[id].split("=")[1];
        }
        return Request;
    },
    /**
     * @description make string 。
     */
    toHashString:function(Request){
        var newHash="";
        for(var i in Request){
			if(i!=""&&eval("Request."+i)!=undefined&&eval("Request."+i)!=""&&eval("Request."+i)!="undefined"){
                newHash+=(newHash==""?"":"&")+i+"="+eval("Request."+i);
            }
        }
        return newHash;
    }
};
/*******
*jsLoader
*
*/
var Transfer={}
Transfer.Base = function() {}
Transfer.Base.prototype = {
  setOptions: function(options) {
    if(typeof options!="object"){options={};}
    this.options = {
        bCache:options.bCache||false,
        id:options.id||"scriptTemp",
        onfailure:options.onfailure||function(){},
        oncomplate:options.oncomplate||function(){}
    }
  }
}
/**
new Transfer.Request(url,{oncomplate:'',id:''})
*/
Transfer.Request=Class.create();
Transfer.Request.prototype=Object.extend(new Transfer.Base(),{
    initialize: function(url, options) {
    this.setOptions(options);
    this.request(url);
    },
    request:function(url){
        this.url=url;
        this.bCache=this.options.bCache;
        this.id=this.options.id;
        this.oncomplate=this.options.oncomplate;
        this.onfailure=this.options.onfailure;
        this.symbol="?";
        if(this.url.indexOf("?")!="-1")this.symbol="&";
        var head=document.getElementsByTagName("head")[0];
        var sT = $(this.id);
        if(sT&&sT.src&&sT.src==this.url){
            this.oncomplate();
            return;
        }
        if (sT) {sT.parentNode.removeChild(sT);}
        var s = document.createElement("script");
        head.appendChild(s);
        s.setAttribute("language", "javascript");
	    s.setAttribute("type", "text/javascript");
	    s.setAttribute("id", this.id);
	    s.setAttribute("src", (this.bCache && this.bCache == true) ? this.url + this.symbol + Math.random() : this.url);
        var self=this;
        s.onload=s.onreadystatechange=function()
        {
            if (typeof ActiveXObject!="undefined") {
                if(s.readyState&&s.readyState=="loaded")self.oncomplate();
                if(s.readyState&&s.readyState=="complete")return;
            }else{
                self.oncomplate();
            }
        }
        s.onerror=function(){ //ie not work
            if(s&&s.parentNode)s.parentNode.removeChild(s);
            self.onfailure();
            throw new Error("connect faild,please try later;");
        }
     }
});
/****jsLoader end****/
/**
*
*/
function showPanel(obj,obj2,left,top,show){
//    var a= new ElementXY(obj);
    var pos=Position.cumulativeOffset(obj);
    $(obj2).style.top=(pos[1]+(top||0))+'px';
    $(obj2).style.left=(pos[0]+(left||0))+'px';
    if(show){Element.show(obj2);}
    else{Element.toggle(obj2);}
}

/**
* get the size of mapbar and then  resize the map
* x:the x-distance beteen mapbar and mapbar'parent
* y:the y-distance beteen mapbar and mapbar'parent
*/
function mapletResize(x,y){
    x=x?parseInt(x):0;
    y=y?parseInt(y):20;
    var mapPNode = $("mapbar").parentNode;
	var w = mapPNode.clientWidth-x;
	var h = mapPNode.clientHeight-y;
    if(typeof maplet=="object")maplet.resize(w, h);
}
/**
* encode after decode void double encode
*/
function encodeDURI(uri,com){
    if(com){return encodeURIComponent(decodeURIComponent(uri));}
    return encodeURI(decodeURI(uri));
}
function decodeDURI(uri,com){
    if(com){return decodeURIComponent(decodeURIComponent(uri));}
    return decodeURI(decodeURI(uri));
}
//将字符串转换成html格式
function toHtmlStr(str)
  {
    str=str.replace(/</ig,"&lt;");
    str=str.replace(/>/ig,"&gt;");
    str=str.replace(/\r\n|\n\r|\n|\r/g,"<br>");
    str=str.replace(/\"/ig,"&quot;");
    str=str.replace(/\ /ig,"&nbsp;");
    return str;
  }
/**
* 
*
*/
function docResize(){
    if(typeof autoAdapt=="undefined"|| autoAdapt==false){mapletResize();return true;}
    var w=getPageSize()[2];
    var h=getPageSize()[3]-15;     //10
    var nh=$("content").style.height=h-Element.getHeight("header");
    var lh=Element.getHeight("leftPanel");
    $("midPanel").getElementsByTagName("table")[0].style.height
            =$("rightPanel").style.height
            =$("midPanel").style.height
            =$("leftPanel").style.height
            =nh+"px";
    $("rsPanel").style.height
            =$("mmPanel").style.height
            =nh-Element.getHeight("rsTitle")-3+"px";
    /*get the mapbar`s size*/
    var panel=$("mapbar");
    panel.style.width=panel.parentNode.clientWidth+"px";
    panel.style.height=panel.parentNode.clientHeight-$("toolsmenu").clientHeight+"px";

    if(lh!=nh){mapletResize();}
}
/**
*resize the container 
*init a map
*
*/
function initMap(strlatlon,zoom){
    docResize();//resize the container
    if(typeof maplet=="object"){return;}
    maplet = new Maplet("mapbar");
    mapbardis.cityOption();
    cityProperties=cityDataFun.getCityPropertiesByCity(mapbardis.city);
    strlatlon=strlatlon||cityProperties.strLatLon||"北京市";
    zoom=zoom||cityProperties.zoom||1;
    maplet.centerAndZoom(new MPoint(strlatlon), zoom);
    maplet.addControl(new MStandardControl());
    if(typeof editCallback=="function")MEvent.addListener(maplet, 'edit', editCallback);
    if(typeof setMapletContextMenu=="function"){setMapletContextMenu();}
//    MEvent.addListener(mycanvas, 'update', updateIcon);

    //显示标点画线容器
    if(typeof drawPanel!="undefined"){drawPanel.show();}

    /*逆地理编码*/
    bmCbk.init();
    MEvent.addListener(maplet,"zoom",function(){bmCbk.init();});
    
    /*增加城市热点*/
    maplet.addHotspot("mapPanel","HSHWUDXBAHARIG","哈尔滨市",1,5);
    maplet.addHotspot("mapPanel","HTJTRBXWTBGET","沈阳市",1,5);
    maplet.addHotspot("mapPanel","HTESJCVBACCRUU","长春市",1,5);
    maplet.addHotspot("mapPanel","GTCIEDWVIRJSI","呼和浩特市",1,5);
	maplet.addHotspot("mapPanel","HETCUFWVVHUEE","北京市",0,5);
	maplet.addHotspot("mapPanel","HHCIWHXVVJDBG","天津市",1,5);
	maplet.addHotspot("mapPanel","IJSRVJXVIWCHC","上海市",1,5);
	maplet.addHotspot("mapPanel","IJITUVWUABJGJ","广州市",1,5);
	maplet.addHotspot("mapPanel","HFISFCXTWJRFB","重庆市",1,5);
	maplet.addHotspot("mapPanel","HRRRBTWVRIHDU","济南市",1,5);
	maplet.addHotspot("mapPanel","HCAFICWVFITUB","太原市",1,5);
	maplet.addHotspot("mapPanel","GHIEETXUTURWF","银川市",1,5);
	maplet.addHotspot("mapPanel","HESUBVWVITTHS","石家庄市",1,5);
	maplet.addHotspot("mapPanel","GDIATWXUDCTBA","西宁市",1,5);
	maplet.addHotspot("mapPanel","GHFHGUWUFFUUV","兰州市",1,5);
	maplet.addHotspot("mapPanel","HBWSJFXURIERE","西安市",1,5);
	maplet.addHotspot("mapPanel","HIGSCCWVCHAHF","郑州市",1,5);
	maplet.addHotspot("mapPanel","IEGDCTWVGDBVS","南京市",1,5);
	maplet.addHotspot("mapPanel","ICGAACWVDIGSD","合肥市",1,5);
	maplet.addHotspot("mapPanel","HWTARHXUUAIWI","武汉市",1,5);
	maplet.addHotspot("mapPanel","IJDAJAWVFJGCB","杭州市",1,5);
	maplet.addHotspot("mapPanel","HABIJDVTUJEGA","成都市",1,5);
	maplet.addHotspot("mapPanel","IBGRTCVUHGRSF","长沙市",1,5);
	maplet.addHotspot("mapPanel","IFCEUTVUTJJDU","南昌市",1,5);
	maplet.addHotspot("mapPanel","IVGDHIXUUTREW","福州市",1,5);
	maplet.addHotspot("mapPanel","HRFBHUVTSGBFI","贵阳市",1,5);
	maplet.addHotspot("mapPanel","HGIVRBXTCWBDG","昆明市",1,5);
	maplet.addHotspot("mapPanel","FUUVCJWSIEVAR","拉萨市",1,5);
	maplet.addHotspot("mapPanel","ICIFVTWTIBCAU","南宁市",1,5);
	maplet.addHotspot("mapPanel","IJTRTWXTGUUSR","海口市",1,5);
	maplet.addHotspot("mapPanel","ITDUCVZUADIUW","香港",1,5);
	maplet.addHotspot("mapPanel","ISGWHFZTWBWWE","澳门",1,5);
	maplet.addHotspot("mapPanel","JDDVURZUWREDH","台湾",1,5);	
	　　
	MEvent.addListener(maplet, 'hotspot', hotCityCallback)
}


//城市热点操作
function hotCityCallback(obj)
{
	var r = request.init(obj);
	if(typeof r.hotspot != "undefined")
	{
		mapbardis.cityOption(r.hotspot);
	}
}


/**
*toggle the right div
*if show==1 show right ;if show==0 or false right div .toggle
*if mapresize==true ,mapletResize
*/
function righttoggle(show,mapresize){
    if($('rightPanel').style.display=='none'||show==true){
        $('rightPanel').style.display='';
        $('leftPanel').style.marginRight='320px';
        $('midPanel').style.marginRight='310px';
        $('midPanel').getElementsByTagName("img")[0].src=imageslib+"/nw/show-arrow.png";
    }else{
        $('rightPanel').style.display='none';
        $('midPanel').getElementsByTagName("img")[0].src=imageslib+"/nw/hide-arrow.png";
        $('leftPanel').style.marginRight='15px';
        $('midPanel').style.marginRight='5px';
    }
	if(mapresize)mapletResize();
}

/**
* change head div by type
*1-localsearch-lsForm;2-busSearch-bsForm;3-navSearch-nsForm;4-nearbySearch-nsForm;5-
*/
hdivs=["lsForm","nbForm","nsForm","bsForm","linesForm","ssForm","bsrb","bpForm"];
function headSwitch(type,obj){
    var aarr=obj.parentNode.getElementsByTagName("a");
    for(var i=0;i<aarr.length;i++){
        aarr[i].className='';
    }
    obj.className='a1';
    obj.blur();
    type=parseInt(type);
	for(var i=0;i<hdivs.length;i++){
		Element.hide(hdivs[i]);
		}
//    var h=(type==2)?73:53;
    var h=(type==2)?68:60;
    $('header').style.height=h+"px";
	switch (type){
		case 1:{
			Element.show("lsForm");
			setCityPanelContainerVisible(true);
			break;}
		case 2:{
			Element.show("bsForm");
			Element.show("bsrb");
			$("bsrd1").checked="checked";
			setCityPanelContainerVisible(true);
            break;}
		case 3:{
			Element.show("nsForm");
			setCityPanelContainerVisible(false);
			break;}
		case 4:{
			Element.show("nbForm");
			setCityPanelContainerVisible(true);
			break;}
		case 5:{
            Element.show("bpForm");
            setHash("#ac=bp");
			setCityPanelContainerVisible(true);
			break;}	
		default:{
			Element.show("lsForm");
			setCityPanelContainerVisible(true);}
	}
//    setTimeout(docResize,100);
}
/**
* change 3 radios of busSearch div
*
*/
hbsdivs=["bsForm","linesForm","ssForm"];
function headbsSwitch(type){
	type=parseInt(type);
	for(var i=0;i<hbsdivs.length;i++){
		Element.hide(hbsdivs[i]);
		}
	switch (type){
		case 1:{
			Element.show("bsForm");
			break;}
		case 2:{
			Element.show("linesForm");
			break;}
		case 3:{
			Element.show("ssForm");
			break;}
		default:{Element.show("bsForm");}
	}
}


var getLocalCityByIp={
    init:function(callback){
        var url=typeof json_cityInfo!="undefined"?json_cityInfo:"http://ditu.mapbar.com/json/getCityByIp.jsp";
        new Transfer.Request(url,{oncomplate:function(){getLocalCityByIp.cbk(callback);},id:'localCity'});
    },
    cbk:function(callback){
        if(typeof localInfo=="undefined"){
            localInfo={ city:'\u4FDD\u5B9A\u5E02', ip:'', toServer:'service', strNetworkId:'0' };
            throw new Error("获取城市信息失败，请稍后重试！");
        }
        callback();
    }
}
/**
* mapbardis
*/
var mapbardis={city:'北京市',egCity:''};
mapbardis.cityChain={
	setChain:function(value){
		value=value==true?1:0;
		Cookie.setCookie("citychain",value,{expireDays:30,path:"/"});
	},
	getChain:function(){
		return Cookie.getCookie("citychain")==1;
	}
}
/**
*@cityValue 城市名称
*@resetMap 是否改变地图
*@noCityLinkage 是否联动城市菜单 默认 是
*/
mapbardis.cityOption=function(cityValue,resetMap,noCityLinkage){
	if(resetMap!=false)resetMap=true;
    var Request = request.init();
    cityValue=cityValue||Request.city||Cookie.getCookie("city")||(typeof localInfo!="undefined"?localInfo.city:this.city);
    this.city=cityValue=decodeDURI(cityValue);
    //$("cityPanel").innerHTML=cityValue;
	cityPanelContainer.setViewHtml(cityValue);

    if($('lessCityList'))Element.hide('lessCityList');
    
    var cityNames=document.getElementsByName("city");
    for(var jj=0;jj<cityNames.length;jj++){cityNames[jj].value=cityValue;}
    Cookie.setCookie("city",cityValue,{expireDays:30,path:"/"});
    if((typeof maplet)=="object"&&resetMap){
        cityProperties=cityDataFun.getCityPropertiesByCity(cityValue);
        maplet.centerAndZoom(cityProperties.strLatLon,cityProperties.zoom);
    }

	cityhistory.add(cityValue);
}

var cityhistory={
	historyArr:[],
	get:function(){
		this.historyArr=Cookie.getCookie("historycity")!=""?Cookie.getCookie("historycity").split(","):[];
		//this.historyArr=Cookie.getCookie("historycity").split(",");
	},
	add:function(cityValue){
		this.get();
		for(var i=0;i<this.historyArr.length;i++){
			if(this.historyArr[i]==cityValue){
				this.historyArr.splice(i,1);
				break;
			}
		}
		this.historyArr.push(cityValue);
		Cookie.setCookie("historycity",this.historyArr.join(","),{expireDays:30,path:"/"});
	},
	clear:function(){
		this.historyArr=[];
		Cookie.setCookie("historycity","",{expireDays:30,path:"/"});
	},
	toString:function(){
		this.get();
		return this.historyArr.join(",");
	},
	toArray:function(){
		this.get();
		return this.historyArr;
	}
}

/*
*
*/
var defaultHash = window.location.hash;
var targetUrl="";
var qFirst = true;
var hashListener=true;

/**
 * @description addlistener
 */
function hashEventListener() {
	setInterval(getHashQuery, 230);
}
/**
 * @description HASH Resource  Listener and send msg.
 */
function getHashQuery() {
    if(typeof rs_Panel=="undefined")rs_Panel=$("rsPanel");
    if(typeof mm_Panel=="undefined")mm_Panel=$("mmPanel");
    newUrl = window.location.hash;
    if(!hashListener)return;//如果hash监听关闭则不继续执行
    /**
    if(newUrl.replace('#','')==targetUrl.replace('#','')){
    	if(newUrl.replace('#','')=="") updateExample();
    	return;
    }
    * */
    var ret = updateExample();
    if(ret)return;
    if (defaultHash == newUrl && qFirst || defaultHash != newUrl) {
        getDataByHash(newUrl);
    }
}

/**
 * @description check example is need update to new city data.
 */
function updateExample(){
	if(newUrl.replace('#','')==targetUrl.replace('#','')){
    	if(newUrl.replace('#','')=="") {
    		if(mapbardis.city!=mapbardis.egCity){
				eg.get(mapbardis.city);
				mapbardis.egCity = mapbardis.city;
			}
    	}
    	return true;
    }
	if(newUrl.indexOf("ac=ss")!=-1){
		if(mapbardis.city!=mapbardis.egCity){
			sMapCbk.getEg(mapbardis.city);
			mapbardis.egCity = mapbardis.city;
		}
		return false;
	}
}

/*
* @newUrl :window.location.hash
*/
function getDataByHash(newUrl){
    Request = request.init(newUrl);
    Request.width=Request.width||Element.getWidth("mapbar")||600;
    Request.height=Request.height||Element.getHeight("mapbar")||400;
    qFirst = false;
    defaultHash = window.location.hash;
    var url="";
    if(Request.ac=="lc"){
        json_keyword=typeof json_keyword!="undefined"?json_keyword:"http://ditu.mapbar.com/json/getPoiByKeyword.jsp";
        url=json_keyword+"?&nlimit=" +( Request.nlimit||"8" )+ "&rn="+(Request.rn||"10")+"&type="+encodeDURI(Request.ktype||"")+"&keyword=" + encodeDURI(Request.keyword,1) + "&city=" + encodeDURI(Request.city) + "&width="+Request.width+"&height="+Request.height+"&pn="+(Request.pn||"1")+"&refcenter=1";
        new Transfer.Request(url,{oncomplate:function(){cbk("1");}});
    }else if(Request.ac=="s"){
        json_station=typeof json_station!="undefined"?json_station:"http://ditu.mapbar.com/json/getPoiByKeyword.jsp";
        url=json_station+"?&nlimit=" +( Request.nlimit||"8" )+ "&rn="+(Request.rn||"10")+"&type="+encodeDURI("公交车站")+"&keyword=" +encodeDURI(Request.keyword,1)+ "&city=" + encodeDURI(Request.city) + "&width="+Request.width+"&height="+Request.height+"&pn="+(Request.pn||"1");
        new Transfer.Request(url,{oncomplate:function(){cbk("2");}});
    }else if(Request.ac=="nb"){
        json_nearby=typeof json_nearby!="undefined"?json_nearby:"http://ditu.mapbar.com/json/getNearPoi.jsp";
        url=json_nearby+"?&nlimit=10&strlatlon=" +( Request.strlatlon||"" )+ "&name=" + encodeDURI(Request.name||"",1) + "&pid=" +encodeDURI(Request.pid,1) + "&city=" + encodeDURI(Request.city) + "&poitype=" + encodeDURI(Request.poitype||"",1) + "&keytype=&range=" + (Request.range||2000) + "&width="+Request.width+"&height="+Request.height+"&pn=" + (Request.pn)||"1";
        new Transfer.Request(url,{oncomplate:function(){cbk("3");}});
    }else if(Request.ac=="bsl"){
        json_busl=typeof json_busl!="undefined"?json_busl:"http://ditu.mapbar.com/json/getPoiNameList.jsp";
        url=json_busl+"?&orig=" + encodeDURI(Request.orig||"") + "&origLatLon="+(Request.origLatLon||"")+"&origName="+encodeDURI(Request.origName||"",1)+ "&dest=" + (Request.dest||"") + "&destLatLon="+(Request.destLatLon||"")+"&destName="+encodeDURI(Request.destName||"",1)+"&origCity=" + encodeDURI(Request.city,1)+"&type=bus";
        new Transfer.Request(url,{oncomplate:function(){cbk("5");}});
    }else if(Request.ac=="bsr"){
        json_busr=typeof json_busr!="undefined"?json_busr:"http://ditu.mapbar.com/json/getBusByNid.jsp";
        url=json_busr+"?orig=" + (Request.orig||"") +"&origLatLon="+(Request.origLatLon||"")+"&origName="+encodeDURI(Request.origName||"",1)+ "&dest=" + (Request.dest||"") + "&destName="+encodeDURI(Request.destName||"",1)+"&destLatLon="+(Request.destLatLon||"")+"&width="+Request.width+"&height="+Request.height+"&city=" + encodeDURI(Request.city,1)+"&encode=utf-8";
        new Transfer.Request(url,{oncomplate:function(){cbk("6");}});
    }else if(Request.ac=="nsl"){
        json_navl=typeof json_navl!="undefined"?json_navl:"http://ditu.mapbar.com/json/getPoiNameList.jsp";
        url=json_navl+"?&orig=" + (Request.orig||"") + "&origLatLon="+(Request.origLatLon||"")+"&origName="+encodeDURI(Request.origName||"",1)+ "&dest=" + (Request.dest||"") + "&destLatLon="+(Request.destLatLon||"")+"&destName="+encodeDURI(Request.destName||"",1)+"&origCity=" + encodeDURI(Request.origCity||"",1)+"&destCity="+encodeDURI(Request.destCity||"",1)+"&type=route";
        new Transfer.Request(url,{oncomplate:function(){cbk("7");}});
    }else if(Request.ac=="nsr"){
        json_navr=typeof json_navr!="undefined"?json_navr:"http://ditu.mapbar.com/json/getDriveByNid.jsp";
        url=json_navr+"?style="+(Request.style||0)+"&origCity=" + encodeDURI(Request.origCity||"",1) + "&orig=" + (Request.orig||"") + "&origName="+encodeDURI(Request.origName||"",1)+ "&origLatLon="+(Request.origLatLon||"")+"&destCity=" + encodeDURI(Request.destCity||"",1) + "&dest=" + (Request.dest||"") + "&destName="+encodeDURI(Request.destName||"",1)+"&destLatLon="+(Request.destLatLon||"")+"&mid="+encodeDURI(Request.mid||"",1)+"&width="+Request.width+"&height="+Request.height+"&encode=utf-8";
        new Transfer.Request(url,{oncomplate:function(){cbk("8");}});
    }else if(Request.ac=="bp"){
        cbk("9");
    }else if(Request.ac=="l"){
        json_line=typeof json_line!="undefined"?json_line:"http://ditu.mapbar.com/json/getRouteNamesByKeyword.jsp";
        url=json_line+"?keyword="+encodeDURI(Request.keyword,1)+"&city="+encodeDURI(Request.city||"",1);
        new Transfer.Request(url,{oncomplate:function(){cbk("4");}});
    }else if(Request.ac=="lsc"){
        json_keyword_c=typeof json_keyword_c!="undefined"?json_keyword_c:"http://ditu.mapbar.com/json/getPoiByKeyword.jsp";
        url=json_keyword_c+"?&rn="+(Request.rn||"10")+"&keyword=" +encodeDURI(Request.keyword,1)+ "&city="+encodeDURI("个人地图")+"&width="+Request.width+"&height="+Request.height+"&pn="+(Request.pn||"1");
        new Transfer.Request(url,{oncomplate:function(){cbk("11");}});
    }else if(Request.ac=="mm"){
        cbk(101);
    }else if(Request.ac=="ss"){
        json_smallmap=typeof json_smallmap!="undefined"?json_smallmap:"http://www.mapbar.com/localsearch/smallMap.jsp";
        url=json_smallmap+"?cid="+(Request.cid||"")+"&nid=" +(Request.nid||"");
        var style = Request.style||1;
        var win = Request.win||'max';
        var city = Request.city||'北京市';
        new Transfer.Request(url,{oncomplate:function(){sMapCbk.init(style,win,city);}});
    }else{
	    updateExample();
    }
}

/**
* @target hashString
*@isGetData true or defalt is to getData  ;false null "" and false is not getdata
*@isChangeUrl true or defalt is to changeHash  ;false null "" and false is not changeHash
*/
function setHash(target,isGetData,isChangeUrl){
    isGetData=(isGetData=="undefined"||isGetData ==undefined)?true:isGetData;
    isChangeUrl=(isChangeUrl=="undefined"||isChangeUrl ==undefined)?true:isChangeUrl;
    if(target.indexOf("#")=="-1"){target = "#"+target;}
    targetUrl=target;
    var Request=request.init(target);
	if(Request.ac=="mm")mmUrl=target;
//    target=request.toHashString(Request);
    if(isChangeUrl)window.location.hash=target;
    if(isGetData){getDataByHash(target);}
}
/*
检验，可扩展
*/
var validate={
    /*arguments para*/
    checkEmpty:function(argumentc,str){
        for(var i=0;i<argumentc.length;i++){
            if(argumentc[i].value.replace(new RegExp(" ","gm"),"")==""){
                alert(str||"请输入查询内容！");
                argumentc[i].focus();
                return false;}
        }
        return true;
    },
    checkValue:function(argumentc,str){
        for(var i=0;i<argumentc.length;i++){
            if(argumentc[i].replace(new RegExp(" ","gm"),"")==""){
                alert(str||"请输入查询内容！");
                return false;}
        }
        return true;
    }
}
/*================================================================*/
/*localsearch submit*/
function lsSub(obj){
    if(validate.checkEmpty([obj.keyword]))
    setHash("#ac=lc&keyword="+encodeDURI(obj.keyword.value,1)+"&city="+encodeDURI(mapbardis.city));
}
/*station search*/
function ssSub(obj){
    if(validate.checkEmpty([obj.keyword]))
    setHash("#ac=s&keyword="+encodeDURI(obj.keyword.value,1)+"&city="+encodeDURI(mapbardis.city));
}
/*line search*/
function lineSub(obj){
    if(validate.checkEmpty([obj.keyword]))
    setHash("#ac=l&keyword="+encodeDURI(obj.keyword.value,1)+"&city="+encodeDURI(mapbardis.city));
}
/*nearby search*/
function nbSub(obj){
    if(validate.checkEmpty([obj.pid,obj.poitype]))
    setHash("#ac=nb&pid="+encodeDURI(obj.pid.value,1)+"&poitype="+encodeDURI(obj.poitype.value,1)+"&city="+encodeDURI(mapbardis.city));
}
/*bus Search list*/
function bsSub(obj){
    if(validate.checkEmpty([obj.orig,obj.dest]))
    setHash("#ac=bsl&origName=" + encodeDURI(obj.orig.value,1) + "&destName=" + encodeDURI(obj.dest.value,1) + "&city=" + encodeDURI(mapbardis.city));
}
/*nav search list*/
function nsSub(obj){
    if(validate.checkEmpty([obj.orig,obj.dest]))
    setHash("#ac=nsl&origName=" + encodeDURI(obj.orig.value,1) + "&destName=" + encodeDURI(obj.dest.value,1) + "&origCity=" + encodeDURI(obj.origCity.value)+ "&destCity=" + encodeDURI(obj.destCity.value));
}
/*bus list and nav list submit fun*/
function listSub(obj,action){
    if(validate.checkEmpty([obj.orig,obj.dest],"无法提交，请更换查询条件！")){
        var origV=obj.orig.value;var destV=obj.dest.value;
		//if(origV.substring(0,origV.indexOf("&")) ==destV.substring(0,destV.indexOf("&"))){alert("请选择不同的起点终点！");return false;}
		{
			var origRequest= request.init(origV);
			var destRequest= request.init(destV);
			if(origRequest.origName ==destRequest.destName){alert("请选择不同的起点终点！");return false;}
        }
		rs_Panel.innerHTML="<table><tr><td>加载中...</td></tr></table>";rsArr=[];
        if(action=="nsr"){
            setHash("#ac=nsr&origCity=" + encodeDURI(station.city[0]) + "&orig=" + encodeDURI(origV) + "&destCity=" + encodeDURI(station.city[1]) + "&dest=" + encodeDURI(destV));
        }else if(action=="bsr"){
            setHash("#ac=bsr&orig=" + encodeDURI(origV) + "&dest=" + encodeDURI(destV) + "&city=" + encodeDURI(station.city[0]));
        }
    }
}
/*================================================================*/
function cbk(obj){
    obj=parseInt(obj);
    rs_Panel=$("rsPanel");
    if(obj<100&&typeof mymaps!="undefined"){
        mymaps.switchdiv(0);
        rs_Panel.innerHTML="";
        lsCbk.clearPoi();
        lsCbk.clearLine();      
    }//>100 mm operate
    rsArr=[];
    if(typeof bpp=="object"){
        bpp[0]="http://img.mapbar.com/maplite/mapbank/base/";
        bpp[1] = 12;
    }
    switch (obj){
        case 1:{lsCbk.init("lc");break;}  //localsearch
        case 2:{stationCbk.init("s");break;}//station
        case 3:{lsCbk.init("nb");break;}  //nearby
        case 4:{lineCbk.init("l");break;}  //line
        case 5:{listCbk.init("bsr");break;}  //bslist
        case 6:{bsCbk.init("bs");break;}  //bus result
        case 7:{listCbk.init("nsr");break;}//nav search list
        case 8:{nsCbk.init("ns");break;}  //nav search result
        case 9:{typeCbk.init();break;}//type map
        case 10:{;break;}//browse map
		case 11:{lscCbk.init("lsc");break;}
        case 101:{mymaps.init();}
        default:{}
    }
}
//搜索用户点
var lscCbk={
	init:function(action){
		rsArr=[];
        if (typeof APRS == "undefined"){throw new Error("some error occured,Please try again later.");}
        rsArr.push("<table><tr><td >共有<b>"+(APRS.dn||0)+"</b>个结果,用时<b>"+(APRS.time||0.0)+"</b>s</td></tr></table>");
        rsArr.push("<table>");
        for (var ic = 0; ic < APRS.result.length; ic++) {
            rsArr.push("<tr><td>"+(ic+1)+".</td><td><a href='javascript:;' title='"+APRS.result[ic].name+"' onclick='lsCbk.openInfoWindow("+ic+")' class='font14'>"+APRS.result[ic].highname+"</a>");
            var hash="#ac=mm&mapId="+APRS.result[ic].referer;
			rsArr.push("&nbsp;&nbsp;<a href='"+hash+"' onclick=\"setHash('"+hash+"');return false;\">详细信息&nbsp;&raquo;</a>");
            rsArr.push("</td></tr><tr><td>&nbsp;</td><td><div style='width:240px;overflow:hidden;'>"+APRS.result[ic].address+"</div></td></tr>");
            rsArr.push("<tr style='height:8px;lineheight:8px;'><td colspan=2></td></tr>");
        }
        rsArr.push("</table>");
        rs_Panel.innerHTML=rsArr.join("");
		pageCtrl(APRS.pn, APRS.dn, APRS.keyword, "个人地图", "ac=lsc&keyword");
		setTimeout(function(){lscCbk.map(action);},100);
        lsCbk.headSwitch(action);
	},
	/*地图操作*/
    map:function(action){
        if(!mapo){mapbardis.cityOption();return;}
        if(typeof maplet != "object"){initMap(APRS.mapinfo.center,APRS.mapinfo.scale);}
        if(APRS.mapinfo.center&& APRS.mapinfo.scale)maplet.centerAndZoom(APRS.mapinfo.center, APRS.mapinfo.scale);
        for (var ic = 0;ic<APRS.result.length; ic++) {
            eval("setTimeout(function(){lscCbk.addPoi("+ic+",'"+action+"');},"+eval(1+ic*90)+");");
        }
    },
    addPoi:function(i,action){
        var obj=new MapPoi();
        obj.icon=maplitelib+"tb"+eval(i+1)+"."+mapliteSuffix;
        obj.id= APRS.result[i].pid;
        obj.city=mapbardis.city;
        obj.strlatlon=APRS.result[i].strlatlon;
        obj.name=APRS.result[i].name;
		var hash="#ac=mm&mapId="+APRS.result[i].referer;
        obj.detailLink ="<a href='"+hash+"' onclick=\"setHash('"+hash+"');return false;\" style='color:#7777CC'>详细信息&nbsp;&raquo;</a>";
        obj.address=APRS.result[i].address;
        
        window.addPoi(obj);
    }


}
/*localsearch callback */

var lsCbk={
    init:function (action){
        var Request=request.init();
        rsArr=[];
        if (typeof APRS == "undefined"){throw new Error("some error occured,Please try again later.");}
        
        var keyword = APRS.keyword;
        var hashVal = "";
        
        rsArr.push("<table>");
        
        //show result statistic information
        if(APRS.count>0)
        {
        	rsArr.push("<tr><td >共有<b>"+(APRS.dn||0)+"</b>个结果,用时<b>"+(APRS.time||0.0)+"</b>s ");
        	if(action=='lc')rsArr.push("<a href='http://www.mapbar.com/search/index.jsp?city="+Request.city+"&keyword="+Request.keyword+"&poitype=&iserror=true'>缩小地图</a>");
			else rsArr.push("<a href='http://www.mapbar.com/search/nearby.jsp?city="+Request.city+"&pid="+Request.pid+"&poitype="+Request.poitype+"&iserror=true'>缩小地图</a>");
        	rsArr.push("</td></tr>");
        }
        else
        {
        	if(action=='nb'){
				rsArr.push("<tr><td>找不到和 <b>" + decodeDURI((Request.pid&&Request.pid!=APRS.strCenterObj.poiNid)?Request.pid:APRS.strCenterObj.strName,1) + "</b> 相关的 ");
				rsArr.push("<b>"+decodeDURI(Request.poitype?Request.poitype:"")+"</b>");
				rsArr.push("</td></tr>");
			}
			else{
				rsArr.push("<tr><td>找不到和 <b>" + keyword + "</b> 相关的地点</td></tr>");
			}
        }
        
        //check keyword is bus line name.
        rsArr.push("<tr><td id=\"lsBusLineTip\" style=\"display:none;\"></td></tr>");
        
        json_line=typeof json_line!="undefined"?json_line:"http://ditu.mapbar.com/json/getRouteNamesByKeyword.jsp";
        url=json_line+"?keyword="+encodeURIComponent(keyword)+"&city="+encodeURIComponent(mapbardis.city)+"&type=name";
        new Transfer.Request(url,{oncomplate:function(){lsCbk.showBusLineInfoTip(keyword);}});

        
        //
        var reg=/^(.+)到(.+)$/;
        if(reg.test(keyword)) {
        
        	if(keyword.substring(0,1)=="从") keyword = keyword.substring(1);
        	var result = reg.exec(keyword);
						        	
	        rsArr.push("<tr><td>");
            rsArr.push("您是否想查询 <b>" + keyword + "</b> 相关的");
            hashVal = request.toHashString({ac:"bsl",origName:encodeURIComponent(result[1]),destName:encodeURIComponent(result[2]),city:encodeURIComponent(mapbardis.city)});
            rsArr.push("&nbsp;<a href=\"javascript:void(0);\" onclick=\"setHash('#" + hashVal + "');return false;\">公交</a>");
            hashVal = request.toHashString({ac:"nsl",origName:encodeURIComponent(result[1]),destName:encodeURIComponent(result[2]),origCity:encodeURIComponent(mapbardis.city),destCity:encodeURIComponent(mapbardis.city)});
            rsArr.push("&nbsp;<a href=\"javascript:void(0);\" onclick=\"setHash('#" + hashVal + "');return false;\">驾车</a>");
            rsArr.push("</td></tr>");
        }
        
        //
        keyword = APRS.keyword;
        var reg=/^(.+)附近的*(.+)$/;
        if(reg.test(keyword)) {
        
        	var result = reg.exec(keyword);
						        	
	        rsArr.push("<tr><td>");
	        hashVal = request.toHashString({ac:"nb",pid:encodeURIComponent(result[1]),poitype:encodeURIComponent(result[2]),city:encodeURIComponent(mapbardis.city)}); 
	        rsArr.push("&nbsp;<a href=\"javascript:void(0);\" onclick=\"setHash('#" + hashVal + "');return false;\">");
            rsArr.push("您是否想在<b>" + result[1] + "</b>周边查询<b>" + result[2] + "？</b>");
            rsArr.push("</a></td></tr>");
        }
        
        //gocity
        if(typeof APRS.gocity != "undefined" && APRS.gocity.length>0)
        {
			if(typeof APRS.nckeyword != "undefined" && APRS.nckeyword!="")
			{
	            rsArr.push("<tr><td>您是否想进入&nbsp;");
	        	for(var i=0; i<APRS.gocity.length; i++)
	        	{
	        		hashVal = request.toHashString({ac:"lc",keyword:encodeURIComponent(APRS.nckeyword),city:encodeURIComponent(APRS.gocity[i].name)}); 
					rsArr.push("<a href=\"javascript:void(0);\" onclick=\"mapbardis.cityOption('" + APRS.gocity[i].name + "',false);setHash('#" + hashVal + "');return false;\">" + APRS.gocity[i].name + "</a>&nbsp;");        		
	        	}
	        	rsArr.push("&nbsp;进行查询？</td></tr>");
        	}
        	else
        	{
        		rsArr.push("<tr><td>您是否想将查询城市变更为&nbsp;");
	        	for(var i=0; i<APRS.gocity.length; i++)
	        	{
					rsArr.push("<a href=\"javascript:void(0);\" onclick=\"mapbardis.cityOption('" + APRS.gocity[i].name + "',true);setHash('');$('lsSuggest').value='';return false;\">" + APRS.gocity[i].name + "</a>&nbsp;");        		
	        	}
	        	rsArr.push("</td></tr>");
        	}

        }
        
        //if result count is zero then show friendly tip
        if(APRS.count==0)
        {
        	rsArr.push("<tr><td>");
			rsArr.push("<font class='font14'><b>Mapbar提示您：</b></font>");
			rsArr.push("<ul><li>当前搜索城市是 <b>" + mapbardis.city + "</b>，请确定您要查询的城市</li>");
			rsArr.push("<li>请确认您的输入是否正确</li>");
			rsArr.push("<li>请尝试将多个关键字用空格分开查询</li>");
			rsArr.push("<li>请尝试缩短关键字查询</li>");
        	rsArr.push("</td></tr>");
        }
        
        rsArr.push("</table>");
        
        //show result list
         if(action=="lc"&&typeCounto&&APRS.dn>0)rsArr.push("<div id='typeCountPanel'><table><tr><td>&nbsp;</td></tr></table></div>");
        rsArr.push("<div id='roadByKeywordPanel'><table><tr><td></td></tr></table></div>");
        rsArr.push("<table class='rlist'>");
        var mapbar_url_index = "http://img.mapbar.com/maplite/mapbank/ditu/image/icon/maplite/";
        for (var ic = 0; ic < APRS.result.length; ic++) {
        	//modify by zzx on 2008.5.5 start
        	rsArr.push("<table id='result_"+ic+"' class='rlist'>");
            rsArr.push("<tr onmouseover=changeListImage("+ic+")><td><img id=img_icon_"+ic+" src="+mapbar_url_index+"gif1/tb"+(ic+1)+".gif></td><td><a href='javascript:void(0);' title='"+APRS.result[ic].name+"' onclick='lsCbk.openInfoWindow("+ic+");window.setTimeout(\"changeListImage("+ic+")\",500);' class='font14'>"+APRS.result[ic].highname+"</a></td></tr>");
            if(APRS.result[ic].address)rsArr.push("<tr><td class='rline'>&nbsp;</td><td class='rline'>"+APRS.result[ic].address+"</td></tr>");
            rsArr.push("<tr><td></td><td><a target='_blank' class='color7C' href='http://www.mapbar.com/localsearch/detail.jsp?pid="+APRS.result[ic].pid+"&city="+encodeDURI(APRS.city)+"&tn=mapbarinc_pg&keyword=" + encodeDURI(APRS.keyword) + "'>详细信息</a>");
            if(APRS.result[ic].specialtag){
            	if(APRS.result[ic].referer && APRS.result[ic].specialtag.indexOf("userBuy")!=-1)rsArr.push("<span style='margin-left:30px;'><a target='_blank' class='color7C'  href='"+APRS.result[ic].referer+"' >企业网址</a></span>");
            }
            rsArr.push("</td></tr>");
            rsArr.push("<tr style='height:18px;'><td colspan=2></td></tr>");
        	rsArr.push("</table>");
        	//end
        }
        rsArr.push("</table>");

        rs_Panel.innerHTML=rsArr.join("");
        if(action=="lc"){
            pageCtrl(APRS.pn, APRS.dn, APRS.keyword, APRS.city, "ac=lc&ktype="+encodeDURI(APRS.type||"")+"&keyword");
        }else if(action=="nb"){
            pageCtrl(APRS.pn, APRS.dn, "", APRS.city, "ac=nb&range=" + APRS.range + "&poitype=" + encodeDURI(APRS.poiTypeSrc) + "&strlatlon="+(Request.strlatlon||APRS.strCenterObj.strlatlon||"")+"&name="+encodeDURI(Request.name||APRS.strCenterObj.strName||"")+"&pid");
        }
        
        //same keyword
        if(typeof APRS.samekeyword != "undefined" && APRS.samekeyword.length>0)
        {
        
        	skRequest = {ac:"lc",keyword:"",city:encodeURIComponent(mapbardis.city)};
        	
        	rsArr.clear();
        	rsArr.push("<div style=\"padding:5px;line-height:25px;\"><b>相关搜索：</b>");
        	for(var i=0; i<APRS.samekeyword.length; i++)
        	{
        		skRequest.keyword = encodeURIComponent(APRS.samekeyword[i].name);
				rsArr.push("<a href=\"javascript:void(0);\" onclick=\"setHash('#" + request.toHashString(skRequest) + "');return false;\">" + APRS.samekeyword[i].name + "</a>&nbsp;&nbsp;");
        	}
        	rsArr.push("</div>");
        	rs_Panel.innerHTML += rsArr.join('');
        }
        
		menuTools.collectError(action);
        setTimeout(function(){
			lsCbk.map(action);
			},100);
        this.headSwitch(action);
//        if(action=="lc"&&typeCounto&&APRS.dn>0)typeCountCbk.get();//typeCiount
        if(action=="lc"&&typeCounto&&APRS.dn>0)setTimeout(typeCountCbk.get,20);//typeCiount
//        if(action=="lc"&&roado)roadByKeywordCbk.get(); //road
        if(action=="lc"&&roado)setTimeout(roadByKeywordCbk.get,30); //road
    },
	showBusLineInfoTip:function(linename){
		if($("lsBusLineTip") && typeof routeNamesByKey != "undefined" && routeNamesByKey.routes.count>0)
		{
			lineRequest = {ac:"l",keyword:encodeURIComponent(linename),city:encodeURIComponent(mapbardis.city)};
			$("lsBusLineTip").innerHTML = "您是否想查找与<a href=\"javascript:void(0);\" onclick=\"setHash('#" + request.toHashString(lineRequest) + "');return false;\">" + linename + "</a> 相关公交线路信息？";
			$("lsBusLineTip").style.display = "";
		}
	},
    headSwitch:function(action){
        Request = request.init();
        var i=1;
        switch (action){
            case "lc":
			case "lsc":{
                i=1;
                var form=$("lsForm").getElementsByTagName("form")[0];
				form.keyword.value=form.keyword.defaultValue=decodeDURI(Request.keyword||APRS.keyword,1);
                window.headSwitch(i,$("hmenu").getElementsByTagName("a")[i-1]);
                break;}
            case "nb":{
                i=4;
                var form=$("nbForm").getElementsByTagName("form")[0];
                form.pid.value=form.pid.defaultValue=decodeDURI((Request.pid&&Request.pid!=APRS.strCenterObj.poiNid)?Request.pid:APRS.strCenterObj.strName,1);
                form.poitype.value=form.poitype.defaultValue=decodeDURI(Request.poitype||APRS.strCenterObj.poitype,1);
                window.headSwitch(i,$("hmenu").getElementsByTagName("a")[i-1]);
                break;}
            case "s":{
                i=2;
                var form=$("ssForm").getElementsByTagName("form")[0];
				form.keyword.value=form.keyword.defaultValue=decodeDURI(Request.keyword||APRS.keyword,1);
                window.headSwitch(i,$("hmenu").getElementsByTagName("a")[i-1]);
                $("bsrd3").click();               
                break;}
            case "l":{
                i=2;
                $("linesForm").getElementsByTagName("form")[0].keyword.value=decodeDURI(Request.keyword||APRS.keyword,1);
                window.headSwitch(i,$("hmenu").getElementsByTagName("a")[i-1]);
                $("bsrd2").click();
                break;
            }
            case "bsr":{
                i=2;
                var form=$("bsForm").getElementsByTagName("form")[0];


                form.orig.defaultValue=decodeDURI(Request.orig||station.keyword[0],1);
                form.dest.defaultValue=decodeDURI(Request.dest||station.keyword[1],1);
				form.orig.value=form.orig.defaultValue;
                form.dest.value=form.dest.defaultValue;

                window.headSwitch(i,$("hmenu").getElementsByTagName("a")[i-1]);
                $("bsrd1").click();
                break;
            }
            case "nsr":{
                i=3;
                var form=$("nsForm").getElementsByTagName("form")[0];

                form.origCity.value=decodeDURI(Request.origCity||"北京市");
                form.destCity.value=decodeDURI(Request.destCity||form.origCity.value||"北京市");

				form.orig.defaultValue=decodeDURI(Request.orig||station.keyword[0],1);
                form.dest.defaultValue=decodeDURI(Request.dest||station.keyword[1],1);
				
                form.orig.value=form.orig.defaultValue;
                form.dest.value=form.dest.defaultValue;
                window.headSwitch(i,$("hmenu").getElementsByTagName("a")[i-1]);
                break;
            }
            case "bs":{
                i=2;
                var form=$("bsForm").getElementsByTagName("form")[0];
				form.orig.defaultValue=decodeDURI(Request.origName||busResult.orig.name,1);
				form.dest.defaultValue=decodeDURI(Request.destName||busResult.dest.name,1);
                form.orig.value=decodeDURI(Request.origName||busResult.orig.name,1);
                form.dest.value=decodeDURI(Request.destName||busResult.dest.name,1);
                window.headSwitch(i,$("hmenu").getElementsByTagName("a")[i-1]);
                $("bsrd1").click();
                break;
            }
            case "ns":{
                i=3;
                var form=$("nsForm").getElementsByTagName("form")[0];
                form.origCity.value=decodeDURI(Request.origCity||drive.orig.city);
                form.destCity.value=decodeDURI(Request.destCity||drive.dest.city);
				
				form.orig.defaultValue=decodeDURI(Request.origName||drive.orig.name,1);
                form.dest.defaultValue=decodeDURI(Request.destName||drive.dest.name,1);

                form.orig.value=decodeDURI(Request.origName||drive.orig.name,1);
                form.dest.value=decodeDURI(Request.destName||drive.dest.name,1);
                window.headSwitch(i,$("hmenu").getElementsByTagName("a")[i-1]);
                break;
            }
        }
    },
    /*地图操作*/
    map:function(action){
        if(!mapo){mapbardis.cityOption();return;}
        if(typeof maplet != "object"){initMap(APRS.mapinfo.center,APRS.mapinfo.scale);}
        if(APRS.mapinfo.center&& APRS.mapinfo.scale)maplet.centerAndZoom(APRS.mapinfo.center, APRS.mapinfo.scale);
        for (var ic = 0;ic<APRS.result.length; ic++) {
//            this.addPoi(ic,action);
            eval("setTimeout(function(){lsCbk.addPoi("+ic+",'"+action+"');},"+eval(1+ic*90)+");");
        }
        if(action=="nb"){
            eval("setTimeout(function(){lsCbk.addCenPoi("+ic+",'"+action+"');},950);");
//            this.addCenPoi(ic,action);
        } else if(action=="lc") {
        
        	if(typeof APRS.querycenter != undefined && APRS.querycenter.length > 0)
        	{
        		eval("setTimeout(lsCbk.addQueryCenterPoi,950);");
        	}
        }
		//自动打开气泡
		eval("setTimeout(function(){viewPoiByPid(Request.markerId);},1000);");
          
    },
    clearPoi:function(){
        delPoiByType(0);
    },
    clearLine:function(){
        delLineByType(0);
    },
    addPoi:function(i,action){
        var obj=new MapPoi();
        obj.icon=maplitelib+"tb"+eval(i+1)+"."+mapliteSuffix;
        obj.id=APRS.result[i].pid;
        obj.city=APRS.result[i].city;
        obj.strlatlon=APRS.result[i].strlatlon;
        obj.name=APRS.result[i].name;
        obj.detailLink ="<a href='http://www.mapbar.com/localsearch/detail.jsp?pid="+APRS.result[i].pid+"&city="+encodeDURI(APRS.city)+"' target='_blank' style='color:#7777CC'>详细信息&nbsp;&raquo;</a>";
        if(action=="s"){
            var content="<table cellpadding=0 cellspacing=2><tr><td>共有"+eval(APRS.result[i].address.split(",").length)+"线路经过此站点</td></tr>";
            var addressArr=APRS.result[i].address.split(",")
            for(var j=0;j<addressArr.length;j++){
                var target="#ac=l&city="+encodeDURI(APRS.city)+"&keyword="+encodeDURI(addressArr[j],1);
                content+="<tr><td><a href='"+target+"' onclick=\"setHash('"+target+"')\">"+addressArr[j]+"</a></td></tr>";
            }
            obj.tmpMarkerContent=content+"</table>";
        }else{
            obj.address=APRS.result[i].address;
        }
        obj.poitype=APRS.result[i].poitype.split(",").join("&nbsp;&raquo;&nbsp;");;
        obj.phone=APRS.result[i].phone;
        
        window.addPoi(obj);
    },
    addCenPoi:function(){
        if(!APRS.strCenterObj.strlatlon)return;
        var obj=new MapPoi();
        obj.icon=imageslib+"tack.gif";
        obj.id= APRS.strCenterObj.poiNid;
        obj.city=APRS.city;
        obj.strlatlon=APRS.strCenterObj.strlatlon;
        obj.name=APRS.strCenterObj.strName;
        obj.address=APRS.strCenterObj.address;
        obj.phone=APRS.strCenterObj.phone;
        obj.iconTargetLeft=  0;
        window.addPoi(obj);
    },
    addQueryCenterPoi:function(){
    	if(typeof APRS.querycenter != "undefined" && APRS.querycenter[0].center)
    	{
	    	var obj=new MapPoi();
	    	obj.name = APRS.querycenter[0].name;
	    	obj.isShowInfoWindow = false;
	        obj.icon=imageslib+"nw/icon-2.gif";
	        obj.showIconName = true;
	        obj.city=APRS.city;
	        obj.strlatlon=APRS.querycenter[0].center;
	        window.addPoi(obj);
        }
    },
    openInfoWindow:function(i){
    	//modify by zzx on 2008-5-5 start
    	//添加用户购买的关键字，对应点击放大
    	var specialtag = APRS.result[i].specialtag;
		if((typeof maplet == ("object"))&& null != specialtag && specialtag.length!=0&& specialtag.indexOf("userBuy")!=-1) {
			maplet.centerAndZoom(APRS.mapinfo.center, 15);
		} /*else {
			maplet.centerAndZoom(APRS.mapinfo.center,APRS.mapinfo.scale);
		}*/
		//End
		/**for bubble */
        for(var j=0,k=0;j<PoiArr.length;j++){
            if(PoiArr[j].type==0&&PoiArr[j].marker){
                if(k==i){
					openBubble(PoiArr[j]);
					Request = request.init();
					Request.markerId=PoiArr[j].id;
					setHash(request.toHashString(Request),false);
					if((Request.ac=='lc'||Request.ac=='nb')){
						PoiArr[j].marker.info.setZMBtnVisible(true);
					}else{
						PoiArr[j].marker.info.setZMBtnVisible(false);
					}
                }
                k++;
            }
        }
    }
}

/*typeCountCallBack*/
var typeCountCbk={
    get:function(){
        Request=request.init();
        var url=json_typeCount+"?keyword="+Request.keyword+"&city="+Request.city;
        new Transfer.Request(url,{oncomplate:function(){typeCountCbk.init();},id:"typeCountSc"});
    },
    init:function(){
    	if(!$("roadByKeywordPanel")) return;
        if(!$("typeCountPanel")){
            rsArr=[];
            rsArr.push("<div id='typeCountPanel'></div>");
            rs_Panel.innerHTML=rsArr.join("")+rs_Panel.innerHTML;
        }
        this.showLess();
    },
    showLess:function(){
        if(typeof TypeCountResult=="undefined")return;
        Request=request.init();
        rsArr=[];
        rsArr.push("<table><tr><td><b>类别</b>:&nbsp;&nbsp;");

        for (var ic = 0; ic < TypeCountResult.result.length; ic++) {
            rsArr.push("<nobr><a ");
            if(decodeDURI(Request.ktype)==TypeCountResult.result[ic].name){
                rsArr.push(" style='color:red' ");
            }
            rsArr.push(" href='javascript:;' onclick='typeCountCbk.searchByType(this.innerHTML);return false'>"+TypeCountResult.result[ic].name+"</a>&nbsp;&nbsp;</nobr>");
            if(ic>1)break;
        }
        rsArr.push("<a href='javascript:void(0);' class='color7C'  onclick='typeCountCbk.showAll();return false;'>更多&nbsp;&raquo;</a></td></tr></table>");
        $("typeCountPanel").innerHTML=rsArr.join("");
    },
    showAll:function(){
        Request=request.init();
        rsArr=[];
        rsArr.push("<table><tr><td>");
        for (var ic = 0; ic < TypeCountResult.result.length; ic++) {
            if(ic%4==0&&ic!=0)rsArr.push("</td></tr><tr><td>");
            rsArr.push("<nobr><a ");
            if(decodeDURI(Request.ktype)==TypeCountResult.result[ic].name){
                rsArr.push(" style='color:red' ");
            }
            rsArr.push(" href='javascript:;' onclick='typeCountCbk.searchByType(this.innerHTML);return false'>"+TypeCountResult.result[ic].name+"</a>&nbsp;&nbsp;</nobr>");
        }
        if(TypeCountResult.result.length>0){
            rsArr.push("<nobr><a ");
            if(Request.ktype==undefined||decodeDURI(Request.ktype)==""){
                rsArr.push(" style='color:red' ");
            }
            rsArr.push("  href='javascript:;' onclick='typeCountCbk.searchByType();return false'>全部</a>&nbsp;&nbsp;</nobr>");
        }
        rsArr.push("<a href='javascript:void(0);' class='color7C' onclick='typeCountCbk.showLess();return false;'>精简&nbsp;&laquo;</a></td></tr></table>");
        $("typeCountPanel").innerHTML=rsArr.join("");
    },
    searchByType:function(value){
        Request=request.init();
        if(value==undefined){Request.ktype=value;}
        else Request.ktype=encodeDURI(value);
        Request.pn=1;
        setHash("#"+request.toHashString(Request));
    }
}
/*roadByKeyword callBack*/
var roadByKeywordCbk={
    get:function(){
        Request=request.init();
        var url=json_roadByKeyword+"?city="+encodeDURI(Request.city)+"&keyword="+encodeDURI(Request.keyword)+"&encode=utf-8";
        new Transfer.Request(url,{oncomplate:function(){roadByKeywordCbk.init();},id:"roadSc"});
    },
    init:function(){
        if(!$("roadByKeywordPanel")){
            rsArr=[];
            rsArr.push("<div id='roadByKeywordPanel'></div>");
            rs_Panel.innerHTML=rsArr.join("")+rs_Panel.innerHTML;
        }
        this.showInfo();
    },
    showInfo:function(){
        rsArr=[];
        rsArr.push("<table><tr><td valign=middle>");
        for(var i=0;i<roadByKeywordRs.result.length&&i<2;i++){
            if(i==0){
                rsArr.push("<img style='float:left' src='http://ditu.mapbar.com/images/road.gif'>&nbsp;");
            }
            rsArr.push("<a href='javascript:void(0)' onclick='roadByKeywordCbk.showRoad("+i+")'>"+roadByKeywordRs.result[i].name+"</a>&nbsp;&nbsp;");

        }
        $("roadByKeywordPanel").innerHTML=rsArr.join("");
    },
    addLine:function(i,j){
        obj=new MapLine();
        obj.name=roadByKeywordRs.result[i].roadlatlon_result[j].name;
        obj.strlatlon=roadByKeywordRs.result[i].roadlatlon_result[j].linelatlon;
        window.addLine(obj);
    },
    showRoad:function(i){
        delLineByType(0);
        for(var j=0;j<roadByKeywordRs.result[i].roadlatlon_result.length;j++){
            eval("setTimeout(function(){roadByKeywordCbk.addLine("+i+","+j+");},"+eval(1+j*5)+");");
           {
                /*obj=new MapLine();
                obj.name=roadByKeywordRs.result[i].roadlatlon_result[j].name;
                obj.strlatlon=roadByKeywordRs.result[i].roadlatlon_result[j].linelatlon;
                window.addLine(obj);*/
            }
        }
        maplet.centerAndZoom(roadByKeywordRs.result[i].roadcenter,roadByKeywordRs.result[i].roadscale);
    }
}
/*station callback*/
var stationCbk={
    init:function (action){
        if (typeof APRS == "undefined"){throw new Error("some error occured,Please try again later.");}
        rsArr.push("<table><tr><td >共有<b>"+(APRS.dn||0)+"</b>个结果,用时<b>"+(APRS.time||0.0)+"</b>s</td></tr></table>");
        rsArr.push("<table class='rlist'>");
        for (var ic = 0; ic < APRS.result.length; ic++) {
            rsArr.push("<tr style='margin:5px 0px 0px 0px;'><td>"+(ic+1)+".</td><td><a href='javascript:;' class='font14' title='"+APRS.result[ic].name+"' onclick='lsCbk.openInfoWindow("+ic+")'>"+APRS.result[ic].highname+"</a>");
            rsArr.push("</td></tr><tr ><td class='rline'>&nbsp;</td><td valign=top class='rline'>共有"+eval(APRS.result[ic].address.split(",").length)+"线路经过此站点</td></tr>");
			rsArr.push("<tr><td></td><td><a target='_blank'class='color7C' style='margin-top:-8px;' href='http://www.mapbar.com/localsearch/detail.jsp?pid="+APRS.result[ic].pid+"&city="+encodeDURI(APRS.city)+"'>详细信息</a></td></tr>");
            rsArr.push("<tr style='height:18px;'><td colspan=2></td></tr>");
        }
        rsArr.push("</table>");
        rs_Panel.innerHTML=rsArr.join("");
        pageCtrl(APRS.pn, APRS.dn, APRS.keyword, APRS.city, "ac=s&ktype="+encodeDURI(APRS.type||"")+"&keyword");
		menuTools.collectError();
        lsCbk.map(action);
        lsCbk.headSwitch(action)
    }
}
/*line callback*/
var lineCbk={
    city:'',
    init: function(action){
        if(typeof routeNamesByKey=="undefined"){throw new Error("some error occured,Please try again later.");}
        rsArr.push("<dl>");
        for (var i = 0; i < routeNamesByKey.routes.item.length; i++) {
            rsArr.push("<dt class='font14' onclick=\"lineCbk.openLine('"+i+"');return false;\" id='tdt_"+i+"'>");
            rsArr.push("<img id='tdtimg_"+i+"' src='/images/nw/plusIcon.gif'>");
            rsArr.push("<a href=\"javascript:void(0);\">"+routeNamesByKey.routes.item[i].name+"</a></dt>");
            rsArr.push("<dd id='tdd_"+i+"' class='erect' style='display:none;'>");
            rsArr.push("</dd>");
        }
        if(routeNamesByKey.routes.item.length==0){rsArr.push("<dt>共有0个结果！</dt>");}
        rsArr.push("</dl>");
        rs_Panel.innerHTML=rsArr.join("");
		menuTools.collectError();
        rsArr=[];
        this.city=routeNamesByKey.city;
        lsCbk.headSwitch(action);
		//如果只有一条则展开
		if(routeNamesByKey.routes.item.length==1){
			lineCbk.openLine(0);
		}
		//自动展开记录
		else{
			Request = request.init();
			lineCbk.openLine(Request.seqId);
		}
    },
    getLineInfo:function(i,keword){
        lineCbk.loading.begin(i);
        json_lineInfo=typeof json_lineInfo!="undefined"?json_lineInfo:"http://ditu.mapbar.com/json/getRouteByRouteName.jsp";
        var url=json_lineInfo+"?&keyword=" +encodeDURI(keword,1)+ "&city="+ encodeDURI(this.city);
        new Transfer.Request(url,{oncomplate:function(){lineCbk.getLineInfoCbk(i);}});
    },
    getLineInfoCbk:function(i){
        if(typeof routeByName=="undefined"){throw new Error("some error occured,Please try again later.");}
        rsArr=[];
        rsArr.push("<table>");
        if(routeByName.route.infomation)rsArr.push("<tr><td><p>"+routeByName.route.infomation+"</p></td></tr>");
        rsArr.push("<tr><td>");
        for(var ic=0;ic<routeByName.route.stations.items.length;ic++){
            var limitName=routeByName.route.stations.items[ic].name;
            limitName=limitName.length>5?limitName.substr(0,5):limitName;
            rsArr.push("<a href='javascript:void(0);' title='"+routeByName.route.stations.items[ic].name+"' onclick='lineCbk.addPoi("+ic+");'>"+(ic+1)+"<br>"+limitName+"</a>");
        }
        rsArr.push("</td><tr><td style='text-align:right;'>");
        rsArr.push("<div id='floatP_"+i+"'style='right:0px;text-align:right;'>");
		rsArr.push("<a href='javascript:void(0)' style='width:60px;height:20px;float:right;padding-top:8px;' onclick='feedbackPanel.showLineInfo(\"<b>线路信息:</b><br/>"+routeNamesByKey.routes.item[i].name+"\");fixMapSave.addFirstLineMarker();return false;' >纠错</a>");
        rsArr.push("</div></td></tr></table>");
        $("tdd_"+i).innerHTML=rsArr.join("");
        rsArr=[];
        lineCbk.loading.end(i);
        lsCbk.clearPoi();
        lsCbk.clearLine();
        setTimeout(function(){
            lineCbk.addLine();
        },50);
    },
	openLine:function(i){
		if(!i)return false;
		if(i<0||i>=routeNamesByKey.routes.item.length)return false;
		var keyword = routeNamesByKey.routes.item[i].name;
		this.ddToggle(i,keyword);
	},
    ddToggle:function (i,keyword){
    	//探针3
        ZPrint.ptr3(i);
		Request=request.init();
        ddArr=rs_Panel.getElementsByTagName("dd");
        for(var ic=0;ic<ddArr.length;ic++){
            if(i!=ic)ddArr[ic].style.display="none";
            if($("tdtimg_"+ic)){$("tdtimg_"+ic).src="/images/nw/plusIcon.gif";}
        }
        if($("tdd_"+i).style.display=="none"){
            this.getLineInfo(i,keyword);
            $("tdd_"+i).style.display="";
			Request.seqId=i;
        }else{
            lsCbk.clearPoi();
            lsCbk.clearLine();
            $("tdd_"+i).style.display="none";
            if($("tdtimg_"+i)){$("tdtimg_"+i).src="/images/nw/plusIcon.gif";}
			Request.seqId=null;
        }
		setHash(request.toHashString(Request),false);
    },
    addLine:function(){
        if(!mapo){return ;}
        if(routeByName.mapinfo.center == "")return; //屏蔽小城市
        if(typeof maplet!="object"){initMap(routeByName.mapinfo.center,routeByName.mapinfo.scale);} else{
            maplet.centerAndZoom(routeByName.mapinfo.center,routeByName.mapinfo.scale);
        }
        for(var i=0;i<routeByName.route.line.length;i++){
            var obj;
            if(getLineById("lin$ine_"+i)!=null){
                obj=getLineById("lin$ine_"+i);
                obj.name=routeByName.route.routename;
                obj.strlatlon=routeByName.route.line[i].linelatlon;
                window.updateLine(obj);
            }else{
                obj=new MapLine();
                obj.id="lin$ine_"+i;
                obj.name=routeByName.route.routename;
                obj.strlatlon=routeByName.route.line[i].linelatlon;
                window.addLine(obj);
            }
        }
		
    },
    addPoi:function(i){
		maplet.hideBubble();
        var poiObj;
        if(getPoiById("line_Poi")!=null) {
            poiObj = getPoiById("line_Poi");
            poiObj.strlatlon =routeByName.route.stations.items[i].stationlatlon;
            poiObj.name =routeByName.route.stations.items[i].name;
            poiObj.city= routeByName.city;
            poiObj.showIconName=true;
            if(poiObj.strlatlon != "UFBVA")window.updatePoi(poiObj); //屏蔽小城市
        } else {
            poiObj = new MapPoi();
            poiObj.id = "line_Poi";
            poiObj.strlatlon = routeByName.route.stations.items[i].stationlatlon;
            poiObj.name =routeByName.route.stations.items[i].name;
            poiObj.city= routeByName.city;
            poiObj.showIconName=true;
            if(poiObj.strlatlon != "UFBVA")window.addPoi(poiObj); //屏蔽小城市
        }
    },
    loading:{
        begin:function(i){
            if($("tdtimg_"+i)){$("tdtimg_"+i).src=imageslib2+"indicator_tiny_red.gif";}
        },
        end:function(i){
            if($("tdtimg_"+i)){
                $("tdtimg_"+i).src="/images/nw/minusIcon.gif";
            }
        }
    }
}
/*bus list or nav list */
var listCbk={
    init:function(action){

        rs_Panel.innerHTML="";
        rsArr=[];
        if (typeof station == "undefined"){throw new Error("some error occured,Please try again later.");}
        rsArr.push("<form onsubmit=\"listSub(this,'"+action+"'); return false;\"><table><tr><td class='font14'style='color:green'>请您选择起点:</td></tr><tr><td>");
        this.creatSelect(0);
        rsArr.push("</td></tr><tr><td class='font14'style='color:red'>请您选择终点:</td></tr><tr><td>");
        this.creatSelect(1);
        rsArr.push("</td></tr><tr><td align=center>");
        rsArr.push("<input type=submit value=\" 下一步 \" >");
        rsArr.push("</td></tr></table></form>");
        rs_Panel.innerHTML=rsArr.join("");
		menuTools.collectError();
        if(mapo){initMap();}
        this.addPoi(0,0);
        this.addPoi(1,0);
        lsCbk.headSwitch(action);
        
    },
    creatSelect:function(nKvps){
        newUrl = window.location.hash;
        var Request = request.init(newUrl);
        rsArr.push("<select name="+(nKvps==0?'orig':'dest')+" size=10 onchange=\"listCbk.addPoi("+nKvps+",this.selectedIndex,1)\">");
        if(station.kvps[nKvps].item.length==0){
            rsArr.push("<option value=''>没有结果！</option>");
        }
        for (var ic = 0; ic < station.kvps[nKvps].item.length; ic++) {
            var name = station.kvps[nKvps].item[ic].name;
            var value = station.kvps[nKvps].item[ic].pid;
			//去除聚合后带来的地址超长问题。
			if(value.indexOf(",")>0) value = value.substring(0, value.indexOf(","));
            var origLatLon=Request.origLatLon||"" ;
            var destLatLon=Request.destLatLon||"";
            var origName=decodeDURI(name);
            var destName=decodeDURI(name);
            if(nKvps==0){
                value=value+"&origName="+origName+"&origLatLon="+origLatLon;
            }else if(nKvps==1){
                value=value+"&destName="+destName+"&destLatLon="+destLatLon;
            }
            rsArr.push("<option value=");
            rsArr.push("\""+value+"\"");
            if(ic==0){rsArr.push(" selected=\"selected\"");}
            rsArr.push(">"+station.kvps[nKvps].item[ic].name+"</option>");
        }
        rsArr.push("</select>");
        //探针2
		if(typeof station.kvps[nKvps].item[0] == 'object'){
			var item = station.kvps[nKvps].item[0];	
	        ZPrint.ptr2(item.name,item.strlatlon,nKvps==0);
		}
        
    },
    addPoi:function(nKvps,ic,isSetCenter){
        if(station.kvps[nKvps].count==0)return;
        if(station.kvps[0].item.length==0||!station.kvps[0].item[0].strlatlon)return; //小城市没有经纬度
        var obj;
        if(getPoiById("list_"+nKvps)!=null) {
            obj = getPoiById("list_"+nKvps);
            obj.strlatlon =station.kvps[nKvps].item[ic].strlatlon;
			if(obj.strlatlon=="")return;
            obj.name =station.kvps[nKvps].item[ic].name;
            obj.city=station.city[nKvps];
            if(nKvps==0)obj.icon="/images/nw/qidian.gif";
            else if(nKvps==1)obj.icon="/images/nw/zhongdian.gif";
            obj.showIconName=true;
            window.updatePoi(obj);
        } else {
            obj = new MapPoi();
            obj.id = "list_"+nKvps;
            obj.strlatlon = station.kvps[nKvps].item[ic].strlatlon;
			if(obj.strlatlon=="")return;
            obj.name =station.kvps[nKvps].item[ic].name;
            obj.city=station.city[nKvps];
            if(nKvps==0)obj.icon="/images/nw/qidian.gif"
            else if(nKvps==1)obj.icon="/images/nw/zhongdian.gif"
            obj.showIconName=true;
            window.addPoi(obj);
        }
        //探针2	
        ZPrint.ptr2(obj.name,obj.strlatlon,nKvps==0);
        if(isSetCenter){
            maplet.centerAndZoom(station.kvps[nKvps].item[ic].strlatlon,12);
        }
        return obj.strlatlon;
    },
    //todo 根据多个经纬度计算地图缩放比例及中心点
    calculateMapCenteAndZoom:function(str){
        var strArr=str;
        if(typeof str!="object"){
            strArr=[];
            for(var i=0;i<arguments.length;i++){
                strArr.push(arguments[i]);
            }
        }

    }
}
/*bus search resault*/
var bsCbk={
    init:function(action){
        rs_Panel.innerHTML="";
        rsArr=[];
        if (typeof busResult == "undefined"){throw new Error("some error occured,Please try again later.");}
        var Request=request.init();
        var orig=Request.orig,dest=Request.dest,origName=Request.origName,origLatLon=Request.origLatLon,destName=Request.destName,destLatLon=Request.destLatLon,mid=Request.mid,origCity=Request.origCity,destCity=Request.destCity,city=Request.city;
        Request.ac="nsr";Request.destCity=Request.origCity=Request.city;Request.city=undefined;
        var target=request.toHashString(Request);
        rsArr.push("<div><table><tr><td><a href='"+target+"' onclick=\"setHash('"+target+"');return false;\">换到驾车结果</a></td>");
        Request.ac="bsr";Request.city=city;Request.mid=undefined;Request.origCity=undefined;Request.destCity=undefined;Request.orig=dest;Request.dest=orig;Request.origName=destName;Request.destName=origName;Request.origLatLon=destLatLon;Request.destLatLon=origLatLon;
        target=request.toHashString(Request);
        rsArr.push("<td><a href='"+target+"' onclick=\"setHash('"+target+"');return false;\">查询返程线路</a></td></tr></tabel></div>");

        rsArr.push("<table cellSpacing=0; id='bsPanel'>");
        for (var ic = 0; ic < busResult.bus.item.length; ic++) {
			var detaiInfo=this.getDetail(ic);
            rsArr.push("<tr title='查看此条线路' style='cursor:pointer;");
            rsArr.push("' onclick=\"bsCbk.addLine("+ic+")\"><td valign=top >"+(ic+1)+".</td><td>"+detaiInfo+"</td></tr><tr  style='");
            rsArr.push("'><td></td><td colspan=1 style='text-align:right'><a style='display:none;' id='bs_feedlink_"+ic+"' href='javascript:void(0);' onclick=\"feedbackPanel.showLineInfo('"+(ic+1)+"."+detaiInfo.stripTags()+"');fixMapSave.addFirstLineMarker();return false;\">纠错</a>&nbsp;&nbsp;&nbsp;&nbsp;距离:"+busResult.bus.item[ic].distance+"公里&nbsp;&nbsp;<a href='javascript:void(0);' onclick=\"menuTools.sms.send('"+encodeDURI(busResult.bus.item[ic].detail)+"');return false;\">发送短信&nbsp;&raquo;</a>&nbsp;&nbsp;</td></tr>");
        }
        if(busResult.bus.item.length==0){
            rsArr.push("<tr ><td>查询结果为空，请更换查询条件！</td></tr>");
        }
        rsArr.push("</table>");
        rs_Panel.innerHTML=rsArr.join("");
		//menuTools.collectError();
        setTimeout(function(){lsCbk.headSwitch(action);},10);
        setTimeout(function(){bsCbk.addLine(Request.seqId||0);},250);
    },
    getDetail:function(ic){
        if(busResult.issmallcity=="true"){
            return  busResult.bus.item[ic].detail;
        }
        var detail=[];
//        detail.push("从"+busResult.orig.name +"出发");
        var stations=busResult.bus.item[ic].stations;
        for(var i=0;i<stations.length;i++){
            //如果线路的起点与查询起点不同，则需步行  huo 如果两条线路的换乘点不在一起，则步行
            var needWalk=false;
            if((i==0&&stations[i].pois[0][0]!=busResult.orig.name)||(i>0&&stations[i].pois[0][0]!=stations[i-1].pois[stations[i-1].pois.length-1][0])){
                needWalk=true;
            }
            if(needWalk){
				if(i>0)detail.push(",");
				detail.push("步行至"+stations[i].pois[0][0]);
			}
            var target="#ac=l&city="+encodeDURI(busResult.city)+"&keyword="+encodeDURI(stations[i].name,1);
            if(needWalk||i>0){detail.push(",");}
            detail.push("乘<a href='"+target+"' title='查询此线路' onclick=\"setHash('"+target+"')\">"+stations[i].name+"</a>");
            detail.push(",至"+stations[i].pois[stations[i].pois.length-1][0]+"下车");
        }
        //如果线路的终点与查询终点不同，则需步行
        if(stations[stations.length-1].pois[stations[i-1].pois.length-1][0]!=busResult.dest.name){
            detail.push(",步行至"+busResult.dest.name);
        }
//        detail.push(",抵达");

        return detail.join("");
    },
    addLine:function(i){
        if(busResult.bus.item.length==0){return;}
		Request = request.init();
		Request.seqId = i;
		setHash(request.toHashString(Request),false);

        i=i||0;
        //探针3
        ZPrint.ptr3(i);
        bsCbk.changeBg(i);
        if(busResult.issmallcity=="true") return ;
        if(!mapo){return;}
        if(typeof maplet!="object"){initMap(busResult.bus.item[i].routecenter,busResult.bus.item[i].routezoom);}
        else{maplet.centerAndZoom(busResult.bus.item[i].routecenter,busResult.bus.item[i].routezoom);}
        lsCbk.clearLine();
        lsCbk.clearPoi();
//        this.addBusLine(i);
        this.addBusLine2(i);
//        this.addWalkLine(i);
        this.addPois(i);
     },
    //改变右侧样式
     changeBg:function(i){
        var trs=$("bsPanel").getElementsByTagName("tr");
        for(j=0;j<trs.length;j++){
			trs[j].style.background="";
			if($("bs_feedlink_"+j))$("bs_feedlink_"+j).style.display="none";
		}
        trs[i*2+1].style.background=trs[i*2].style.background="#e5ecf9";
		if($("bs_feedlink_"+i))$("bs_feedlink_"+i).style.display="";
     },
     addPois:function(i){
        var pois=[];
        pois.push([busResult.orig.strlatlon,busResult.orig.name,busResult.city,"/images/nw/qidian.gif"]);
        pois.push([busResult.dest.strlatlon,busResult.dest.name,busResult.city,"/images/nw/zhongdian.gif"]);
        for(var ic=0;ic<busResult.bus.item[i].pois.length;ic++){
            pois.push([busResult.bus.item[i].pois[ic].point,busResult.bus.item[i].pois[ic].name,busResult.city,"/images/nw/zhuan.gif"]);
        }

        //add line poi
       var stations=busResult.bus.item[i].stations;
       var stationLen=stations.length-1;
       if(stations[0].pois[0][1]!=busResult.orig.strlatlon){
            pois.push([stations[0].pois[0][1],stations[0].pois[0][0],busResult.city,"/images/nw/qidian1.gif"]);
       }
       if(stations[stationLen].pois[stations[stationLen].pois.length-1][1]!=busResult.dest.strlatlon) {
//           alert(stations[stationLen].pois[stations[stationLen].pois.length-1][1]+":"+busResult.dest.strlatlon);
        pois.push([stations[stationLen].pois[stations[stationLen].pois.length-1][1],stations[stationLen].pois[stations[stationLen].pois.length-1][0],busResult.city,"/images/nw/zhongdian1.gif"]);
       }
         for(var i=0;i<pois.length;i++){
            this.addPoiItem(pois[i][0],pois[i][1],pois[i][2],pois[i][3]);
        }
     },
     addPoiItem:function(strlatlon,name,city,icon){
		if(!strlatlon){return;}
		var obj = new MapPoi();
        obj.strlatlon =strlatlon;
        obj.name =name;
        obj.city=city;
        obj.icon=icon;
        obj.showIconName=true;
        window.addPoi(obj);
     },
     addLineItem:function(id,strlatlon,color){
        var obj=new MapLine();
        obj.id=id;
		//obj.method=0;
        obj.strlatlon=strlatlon;
        if(color){obj.color=color;}
        window.addLine(obj);
     },
     addBusLine:function(i){
        for(var j=0;j<busResult.bus.item[i].routelatlons.length;j++){
            if(ie){
                this.addLineItem("bus_line_"+j,busResult.bus.item[i].routelatlons[j].toString());
            }else{
                eval("setTimeout(function(){bsCbk.addLineItem('bus_line_"+j+"',busResult.bus.item["+i+"].routelatlons["+j+"].toString());},100+"+j+"*100)");
            }
        }
     },
     addBusLine2:function(i){
         this.addLineItem("bus_line_",busResult.bus.item[i].routelatlons.toString());
     },
     addWalkLine:function(i){
         for(var j=0;j<busResult.bus.item[i].walkroutes.length;j++){
            if(ie){
                this.addLineItem("bus_line_walk_"+j,busResult.bus.item[i].walkroutes[j].toString(),"green");
            }else{
                eval("setTimeout(function(){bsCbk.addLineItem('bus_line_walk_"+j+"',busResult.bus.item["+i+"].walkroutes["+j+"].toString(),'green');},50+"+j+"*100)");
            }
         }
     }
}
/*nav search resault*/
var nsCbk={
    init:function(action){
        rs_Panel.innerHTML="";
        rsArr=[];
        if (typeof drive == "undefined"){throw new Error("some error occured,Please try again later.");}
        Request=request.init();
        var orig=Request.orig,dest=Request.dest,origName=Request.origName,origLatLon=Request.origLatLon,destName=Request.destName,destLatLon=Request.destLatLon,mid=Request.mid,origCity=Request.origCity,destCity=Request.destCity;city=Request.city;
        Request.ac="bsr";Request.city=Request.origCity;Request.origCity=undefined;Request.destCity=undefined;
        target=request.toHashString(Request);
        rsArr.push("<div style='width:280px;'><table><tr>");
        if(origCity==destCity)rsArr.push("<td><a href='"+target+"' onclick=\"setHash('"+target+"');return false;\">换到公交换乘</a></td>");
        Request.ac="nsr";Request.city=undefined;Request.mid=undefined;Request.origCity=destCity;Request.destCity=origCity;Request.orig=dest;Request.dest=orig;Request.origName=destName;Request.destName=origName;Request.origLatLon=destLatLon;Request.destLatLon=origLatLon;
        target=request.toHashString(Request);
        rsArr.push("<td><a href='"+target+"' onclick=\"setHash('"+target+"');return false;\">查询返程线路</a></td></tr>");
        rsArr.push("<tr><td colspan=2><input id='speedWayCb' type='checkbox' "+(Request.style==2?'checked':'')+" onclick='nsCbk.voidSpeedWay();'><label for='speedWayCb'>避开高速路<label></td></tr>");

        rsArr.push("</tabel></div>");

        rsArr.push("<table id='nsPanel' cellspacing=0>");
        for (var ic = 0; ic < drive.routes.item.length; ic++) {
            rsArr.push("<tr><td valign=top >"+(ic+1)+".</td>");
            rsArr.push("<td ><a title='查看该段线路' href='javascript:void(0);'onclick=\"nsCbk.showTurn('"+ic+"');\">"+drive.routes.item[ic].strguide+"</a></td></tr>");
        }
        if(drive.routes.item.length>0){
            rsArr.push("</table><table style='width:100%'><tr><td align=right>总距离"+drive.distance+"公里</td></tr>");

            var msg="";
            for(var i=0;i<drive.routes.item.length;i++){
                msg=msg+drive.routes.item[i].strguide;
            }
            msg=encodeURI(msg);
			rsArr.push("<tr><td align=right>");
			rsArr.push("<a href='javascript:void(0);'onclick=\"feedbackPanel.showLineInfo('<b>线路信息：</b><br/>"+msg+"');fixMapSave.addFirstLineMarker();return false;\">纠错</a>");
            rsArr.push("&nbsp;&nbsp;<a href='javascript:void(0);'onclick=\"menuTools.print.send();return false;\">打印</a>");
			rsArr.push("&nbsp;&nbsp;<a href='javascript:void(0);'onclick=\"menuTools.sms.send('"+msg+"');return false;\">发送短信</a>");
            rsArr.push("</td></tr>");
         }else{
            rsArr.push("<tr><td>没有找到路线，请更换查询条件！</td></tr>");
         }
         rsArr.push("</table>");
         rs_Panel.innerHTML=rsArr.join("");
		 //menuTools.collectError();
         lsCbk.headSwitch(action);
         this.addLine();
         this.addPois();

    },
    voidSpeedWay:function(){
        Request=request.init();
        Request.style=Request.style==2?0:2;
        setHash(request.toHashString(Request));
    },
    addPois:function(i){
        var pois=[];
        pois.push([drive.orig.strlatlon,drive.orig.name,drive.orig.city,"/images/nw/qidian.gif"]);
        pois.push([drive.dest.strlatlon,drive.dest.name,drive.dest.city,"/images/nw/zhongdian.gif"]);
        for(var i=0;i<pois.length;i++){
            bsCbk.addPoiItem(pois[i][0],pois[i][1],pois[i][2],pois[i][3]);
        }
     },
    addLine:function(){
        if(!mapo){return;}
        if(drive.mapinfo.center == "")return;
        if(typeof maplet!="object"){initMap(drive.mapinfo.center,drive.mapinfo.scale);}
        else if(drive.mapinfo.center&&drive.mapinfo.scale){maplet.centerAndZoom(drive.mapinfo.center,drive.mapinfo.scale);}
        /*if(getLineById("drive_line")!=null){
            obj=getLineById("drive_line");
            obj.strlatlon=drive.routelatlon;
            window.updateLine(obj);
        }else{
            obj=new MapLine();
            obj.id="drive_line";
            obj.strlatlon=drive.routelatlon;
            window.addLine(obj);
            }
		*/
		delLineByType(0);
		obj=new MapLine();
        obj.id="drive_line";
        obj.strlatlon=drive.routelatlon;
		//obj.method=0;
        window.addLine(obj);

    },
    findSectByPois:function(v1,v2){
        var end=0;
        if(v2==""){end=drive.routelatlon.length}
        else{
            end=drive.routelatlon.indexOf(v2)+v2.length ;
        }
        return drive.routelatlon.substring(drive.routelatlon.indexOf(v1),end);
    },
    showTurn:function(i){
		//return;
        var j=parseInt(i)+1;
        var v1=drive.routes.item[i].turnlatlon;
        var v2=i==drive.routes.item.length-1?"":drive.routes.item[j].turnlatlon;
        this.addTurnLine(this.findSectByPois(v1,v2),i);
//        if(request.init(maplet.getCurrentMap()).map.split(",")[0]>drive.mapinfo.scale)maplet.setCenter(v1);
    },
    addTurnLine:function(routelatlon,i){
        if(!mapo){return;}
        if(drive.mapinfo.center == "") return;
        if(typeof maplet!="object"){initMap(drive.mapinfo.center,drive.mapinfo.scale);}
        if(getLineById("drive_Turn_line")!=null){
            obj=getLineById("drive_Turn_line");
            obj.strlatlon=routelatlon;
            obj.color="green";
			obj.stroke=5;
            obj.name=drive.routes.item[i].strguide;
            window.updateLine(obj);
            obj.marker.openInfoWindow();
        }else{
            obj=new MapLine();
            obj.id="drive_Turn_line";
            obj.strlatlon=routelatlon;
            obj.color="green";
			obj.stroke=5;
            obj.name=drive.routes.item[i].strguide;
            window.addLine(obj);
            obj.marker.openInfoWindow();
         }
    }
}
var nsMidWay={
    arr:[],
    arrAdd:function(name,strlatlon,city){
        this.arr.push([name,strlatlon,city]);
    },
    arrDel:function(id){
        this.arr.splice(id,1);
    },
    arrJoin:function(){
        var ret=[];
        for(var i=0;i<this.arr.length;i++){
            if(this.arr[i][0]&&this.arr[i][1]){
                ret.push(this.arr[i][0]) ;
                ret.push(this.arr[i][1]) ;
            }
        }
        return ret.join(";");
    }

}
/*type map*/
var typeCbk={
    init: function(){
        if(typeof poiTypeData=="undefined"){throw new Error("poiTypeData has no init");}
        rsArr.push("<dl style='font-size:116%;'>");
        for (var i = 0; i < poiTypeData.length; i++) {
            rsArr.push("<dt onclick=\"typeCbk.ddToggle('"+i+"');return false;\" id='tdt_"+i+"'>");
            rsArr.push("<img id='tdtimg_"+i+"' src='/images/nw/"+(i==0?'minusIcon.gif':'plusIcon.gif')+"'>");
            rsArr.push("<a href=\"javascript:void(0);\">"+poiTypeData[i].name+"</a></dt>");
            rsArr.push("<dd id='tdd_"+i+"' style='display:"+(i==0?'':'none')+";'>");
            if(i==0){this.ddJoin(i);}
            rsArr.push("</dd>");
        }
        rsArr.push("</dl>");
        rs_Panel.innerHTML=rsArr.join("");
        rsArr=[];
		//menuTools.collectError();
    },
    ddToggle:function (i){
        if(!$("tdd_"+i).innerHTML){this.ddCreate(i);}
        $("tdd_"+i).toggle();
        $("tdtimg_"+i).src=($("tdd_"+i).style.display==""?"/images/nw/minusIcon.gif":"/images/nw/plusIcon.gif");
    },
    ddJoin:function(i){
        rsArr.push("<table>");
        for(var j=0;j<poiTypeData[i].result.length;j++){
            rsArr.push("<tr><td><img src='"+goldenIconUrl+ poiTypeData[i].result[j][0] +".png'/></td><td><a href='javascript:void(0);' onclick='typeCbk.changeBp(\""+poiTypeData[i].result[j][0]+"\");return false;'>"+poiTypeData[i].result[j][1]+"</a></td></tr>");
//            rsArr.push("<tr><td><img src='"+goldenIconUrl+ poiTypeData[i].result[j][0] +".png'/></td></tr>");
        }
        rsArr.push("</table>");
    },
    ddCreate:function (i){
        this.ddJoin(i);
        $("tdd_"+i).innerHTML=rsArr.join("");
        rsArr=[];
    },
    changeBp:function(typeName){
        bp=true;
        window.bpp[0] = "http://img.mapbar.com/maplite/mapbank/msnpoi/" + typeName + "/";
        window.bpp[1] = 3;
        if(typeof maplet=="object")maplet.refresh();
    }
}
//browse map call back
var bmCbk={
    isInDivRange: false,
	curIGRs: {}, //current InverseGeocodingRs
	tipPanelId: "locationChangedTip",
	tipTimerId: -1,
	caller: "maplet", 
    init:function(strlatlon,zoom){
        this.hidePanel();
        if(typeof bmo=="undefined"||!bmo)return;
        if(typeof bmtimer!="undefined")window.clearTimeout(bmtimer);
        bmtimer=setTimeout(function(strlatlon,zoom){bmCbk.get(strlatlon,zoom)},500);
    },
    get:function(strlatlon,zoom){
        //todo getCurrentMap is not a good method
        var currentMaplet=request.init(maplet.getCurrentMap()).map.split(",");
        strlatlon=currentMaplet[1];
        zoom=currentMaplet[0];
        var url=json_browseMap+"?zoom="+zoom+"&latlon="+strlatlon;
        new Transfer.Request(url,{oncomplate:function(){bmCbk.cbk();},id:'bmsc'});
    },
    cbk:function(){
		
        if(typeof InverseGeocodingRs=="undefined"){;return false;}
        var bmArr=[];
		bmArr.push("<span>地图中心:</span>");
        var target="";
        target="#ac=bm&name=&type=zone&sonType=province";
        //
        if(InverseGeocodingRs.province==""&&InverseGeocodingRs.city==""){
            bmArr.push("未知区域");
        }else{
           	bmArr.push("<a href=\"javascript:void(0);\" onclick=\"maplet.centerAndZoom('GVCUSBXUIWTCR','1');\">中国</a>");
            bmArr.push("<a href='javascript:void(0);' onblur=\"bmCbk.hidePanel(this);\" onclick=\"bmCbk.getList('"+target+"',this);return false;\"><img src='/images/nw/aw-01.gif' onmouseout=\"if(this.src.indexOf('aw-02.gif')!=-1)this.src='/images/nw/aw-01.gif';\" onmouseover=\"if(this.src.indexOf('aw-01.gif')!=-1)this.src='/images/nw/aw-02.gif';\"></a>");
        }
        if(InverseGeocodingRs.province&&InverseGeocodingRs.province!="中国"){
            if(InverseGeocodingRs.province.indexOf("市")!=-1){//处理直辖市
                InverseGeocodingRs.city=InverseGeocodingRs.province;
                InverseGeocodingRs.province="";
            }else{
                target="#ac=bm&name="+InverseGeocodingRs.province+"&type=province&sonType=city";
                if(InverseGeocodingRs.provinceCenter && InverseGeocodingRs.provinceScale){ 
                	bmArr.push("<a href=\"javascript:void(0);\" onclick=\"maplet.centerAndZoom('" + InverseGeocodingRs.provinceCenter + "','" + InverseGeocodingRs.provinceScale + "')\">"+InverseGeocodingRs.province+"</a>");
                }else{
	                bmArr.push(InverseGeocodingRs.province);
                }
                bmArr.push("<a href='javascript:void(0);' onblur=\"bmCbk.hidePanel(this);\" onclick=\"bmCbk.getList('"+target+"',this);return false;\"><img src='/images/nw/aw-01.gif' onmouseout=\"if(this.src.indexOf('aw-02.gif')!=-1)this.src='/images/nw/aw-01.gif';\" onmouseover=\"if(this.src.indexOf('aw-01.gif')!=-1)this.src='/images/nw/aw-02.gif';\"></a>");
            }
        }
        if(InverseGeocodingRs.city){
            target="#ac=bm&name="+InverseGeocodingRs.city+"&type=city&sonType=area";
            if(InverseGeocodingRs.city=="台北市"){ bmArr.push(InverseGeocodingRs.city);}    //only for taiwan
            else{
                if(InverseGeocodingRs.cityCenter && InverseGeocodingRs.cityScale){ 
	            	bmArr.push("<a href=\"javascript:void(0);\" onclick=\"maplet.centerAndZoom('" + InverseGeocodingRs.cityCenter + "','" + InverseGeocodingRs.cityScale + "')\">" + InverseGeocodingRs.city + "</a>");
	            }else{
	            	bmArr.push(InverseGeocodingRs.city);
	            }
                bmArr.push("<a href='javascript:void(0);' onblur=\"bmCbk.hidePanel(this);\" onclick=\"bmCbk.getList('"+target+"',this);return false;\"><img src='/images/nw/aw-01.gif' onmouseout=\"if(this.src.indexOf('aw-02.gif')!=-1)this.src='/images/nw/aw-01.gif';\" onmouseover=\"if(this.src.indexOf('aw-01.gif')!=-1)this.src='/images/nw/aw-02.gif';\"></a>");
            }
            if(mapbardis.cityChain.getChain())mapbardis.cityOption(InverseGeocodingRs.city,false,true);
        }
        if(InverseGeocodingRs.dist){
        	if(InverseGeocodingRs.distCenter && InverseGeocodingRs.distScale){
        		bmArr.push("<a href=\"javascript:void(0);\" onclick=\"maplet.centerAndZoom('" + InverseGeocodingRs.distCenter + "','" + InverseGeocodingRs.distScale + "')\">" + InverseGeocodingRs.dist + "</a>");
        	}else{
        		bmArr.push(InverseGeocodingRs.dist);
        	}
        }
        if(InverseGeocodingRs.area)bmArr.push(InverseGeocodingRs.area);
        this.createPanel();
        $("bmPanel").innerHTML=bmArr.join("&nbsp;&nbsp;");
        bmArr=null;

		//show location changed tip
		/*		
		if(this.caller != "citylist" 
		   && typeof this.curIGRs.city != "undefined" 
		   && InverseGeocodingRs.city 
		   && this.curIGRs.city != InverseGeocodingRs.city)
		{
			this.showTip();
		}
		
		if(this.caller == "citylist") this.caller = "maplet";
		
		if(InverseGeocodingRs.city==""){
		
			if(this.tipTimerId!=-1) window.clearTimeout(this.tipTimerId);
			this.hideTipPanel();
		
		}

		Object.extend(this.curIGRs,InverseGeocodingRs);
		*/

		
    },
    createPanel:function(){
        if(!$("bmPanel")){
            var div=document.createElement("div");
            div.id="bmPanel";
            div.style.float="left";
            div.style.marginLeft="10px";
            if(!$("toolsmenu").firstChild){$("toolsmenu").appendChild(div);}
            else{ $("toolsmenu").insertBefore(div, $("toolsmenu").firstChild);}
        }
    },
    hidePanel:function(obj){
        if(!this.isInDivRange||!ie){
        	if($("bmlistPanel"))Element.hide('bmlistPanel');
        }else{
        	if(obj)obj.focus();
        }
        if(typeof obj != "undefined") obj.childNodes[0].src='/images/nw/aw-01.gif';
    },
    getList:function(newHash,obj){
        if($("bmlistPanel")&&$("bmlistPanel").style.display==''){Element.hide("bmlistPanel");return;}
        var Request=request.init(newHash);
        if(Request.ac=="bm"){
            var url=json_browseMapList+"?name="+encodeDURI(Request.name,1)+"&type="+encodeDURI(Request.type,1)+"&sonType="+encodeDURI(Request.sonType,1);
            new Transfer.Request(url,{oncomplate:function(){bmCbk.getListCbk(obj,url);}});
        }

    },
    getListCbk:function(obj,url){
        this.createList(obj,url);
        showPanel(obj,$("bmlistPanel"),0,17);
        obj.childNodes[0].src='/images/nw/aw-03.gif';
    },
    createList:function(obj,url){
        if(typeof cityListResult=="undefined")return;
        var bmlist=[];
        var Request=request.init(url);
        var list=[];
        switch (Request.type){
            case "zone":{
                for(var j=0;j<cityListResult.zonelist.length;j++){
                    bmlist.push([cityListResult.zonelist[j].name,,]);
                    list=cityListResult.zonelist[j].provincelist;
                    for(var i=0;i<list.length;i++){
                        if(list[i].name=="直辖市"){
                            bmlist.push([list[i].citylist[0].name,list[i].citylist[0].centerlatlon,list[i].citylist[0].zoom]);
                        }else{
                            bmlist.push([list[i].name,list[i].centerlatlon,list[i].zoom]);
                        }
                    }
                }
                break;
            }
            case "province":{
                if(cityListResult.zonelist[0]&&cityListResult.zonelist[0].provincelist[0]){
                    list=cityListResult.zonelist[0].provincelist[0].citylist;
                    for(var i=0;i<list.length;i++){
                        bmlist.push([list[i].name,list[i].centerlatlon,list[i].zoom]);
                    }
                }
                break;
            }
            case "city":{
                list=cityListResult.zonelist[0].provincelist[0].citylist[0].arealist;
                for(var i=0;i<list.length;i++){
                    bmlist.push([list[i].name,list[i].centerlatlon,list[i].zoom]);
                }
                break;
            }
        }
        var panel="bmlistPanel";
        if($(panel)){$(panel).parentNode.removeChild($(panel));}
        var list=document.createElement("div");
        list.id=panel;
        list.style.display="none";
        list.onmouseover=function(){bmCbk.isInDivRange=true;}
        list.onmouseout=function(){bmCbk.isInDivRange=false;}
        var bmListArr=[];
        bmListArr.push("<table width:100% >");
        for(var i=0;i<bmlist.length;i++){
            if(bmlist[i][1]&&bmlist[i][2]){
                bmListArr.push("<tr><td><a href=\"javascript:;\" onmousedown=\"bmCbk.caller='citylist';maplet.centerAndZoom('"+bmlist[i][1]+"','"+bmlist[i][2]+"');Element.hide('"+panel+"');\" >"+bmlist[i][0]+"</a></td></tr>");
            }else{
                bmListArr.push("<tr><td><b>"+bmlist[i][0]+"</b></td></tr>");
            }
        }
        if(bmlist.length==0){bmListArr.push("<tr><td><b>没有数据！</b></td></tr>");}
        bmListArr.push("</table>");
        list.innerHTML=bmListArr.join("");
        document.body.appendChild(list);
        bmListArr=null;
    },
	showTip:function(){
		
		var tip = this.getTipPanel();
		
		showPanel($("bmPanel"),$(this.tipPanelId),$("bmPanel").clientWidth,$("bmPanel").clientHeight,true);
		
		if(typeof InverseGeocodingRs != "undefined" && InverseGeocodingRs.city)
			tip.innerHTML = "搜索范围已同步为【" + InverseGeocodingRs.city + "】";

		if(this.tipTimerId!=-1) window.clearTimeout(this.tipTimerId);
		
		this.tipTimerId = window.setTimeout(bmCbk.hideTipPanel,4000);
		
	},
	getTipPanel:function(){
		
		if($(this.tipPanelId)){
			return $(this.tipPanelId);
		}else{
			var div = this.createTipPanel();
			document.body.appendChild(div);
			return $(this.tipPanelId);
		}
		
	},
	createTipPanel:function(){
		
		var div = document.createElement("DIV");
		div.id = this.tipPanelId;
		div.style.position = "absolute";
		div.style.left = "0px";
		div.style.top = "0px";
		div.style.lineHeight = getStyle($("bmPanel"),"lineHeight","line-height") || "10px";
		div.style.backgroundColor = "red";
		div.style.display = "none";
		return div;
		
	},
	hideTipPanel:function(){
	
		Element.hide($("locationChangedTip"));
	
	}
}
/**
 * 搜索关键字事例
 *
*/
var eg={
    get:function(cityValue){
        cityProperties=cityDataFun.getCityPropertiesByCity(cityValue);
        var date=new Date();
        var r=date.getYear()+"-"+date.getMonth()+"-"+date.getDate();
        var url="http://www.mapbar.com/localsearch/eg.jsp?citycode="+cityProperties.code+"&r="+r;
        new Transfer.Request(url,{oncomplate:eg.show});

    },
    show:function(){
        if(typeof Example=='undefined')return ;
        eg.key();
    },
    key:function(){
        var eghtml="";
        for(var i=0;i<Example.keyword.length;i++){
            eghtml+="<a href='javascript:void(0);'onclick=\"eg.keySub(this.innerHTML);return false;\">"+Example.keyword[i].title+"</a>&nbsp;&nbsp;";
        }
		var strHtml = "<table border=0 style=\"margin-left:10px;margin-top:20px;\">";
		strHtml += "<tr><td style=\"padding-bottom:25px;\"><img src=\"/images/nw/search_home.gif\" style=\"margin-right:5px;\">当前搜索城市 <b>" + mapbardis.city + "</b></td></tr>";
		strHtml += "<tr><td style=\"padding-left:26px;padding-bottom:25px;\">请输入您想查询的关键字；"; 
        if(eghtml!="") strHtml += "<br>示例:" + eghtml;
        strHtml += "</td></tr>";
        strHtml += "<tr><td style=\"padding-left:26px;padding-bottom:25px;\">查询出行线路；<br>请您选择“公交查询”或“驾车导航”</td></tr>";
        strHtml += "<tr><td style=\"padding-left:26px;padding-bottom:25px;\">查询生活信息；<br>请您选择“周边查询”</td></tr>";
        strHtml += "</table>";
        rs_Panel.innerHTML = strHtml;
    },
    keySub:function(keyword){
		setHash('#' + request.toHashString({ac:"lc",keyword:encodeURIComponent(keyword),city:encodeURIComponent(mapbardis.city)}));
    }
}
/**
 * 小地图接口
 */
var sMapCbk = {
	egHtml:"",
	city:"",
	init:function(style,win,city){
		//切换头部		
		if(typeof style != "undefined")window.headSwitch(style,$("hmenu").getElementsByTagName("a")[style-1]);
		if(win == 'min')this.minWin();
		rs_Panel.innerHTML = "加载中...";
		sMapCbk.city=city;
		sMapCbk.show();
	},
	minWin:function(){
    	//window.moveTo(screen.availWidth, screen.availHeight);
    	//if(min)min.Click();
    	var str='<object id=miniw type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"><param name="Command" value="MINIMIZE"></object>';
		if(document.body){
		    if(!document.getElementById("miniw"))document.body.insertAdjacentHTML("BeforeEnd",str);
		    miniw.Click();
		}
	},
	show:function(){
		//处理数据
		if(typeof SMAPRS == "undefined")return;
		if(SMAPRS.mapinfo.center&& SMAPRS.mapinfo.scale)maplet.centerAndZoom(SMAPRS.mapinfo.center, SMAPRS.mapinfo.scale);
		maplet.clearOverlays();
		var icon = "http://searchbox.mapbar.com/publish/icon/biaozhu.gif";
		//显示点列表
		var poiHtml = "";
		var strHtml = "<table border=0 style=\"margin-left:10px;margin-top:20px;\">";
			strHtml += "<tr><td style=\"padding-bottom:25px;\"><img src=\"/images/nw/search_home.gif\" style=\"margin-right:5px;\">地图上点的名称是：<br>";
		for(var i=0;i<SMAPRS.result.length;i++){
	        var poiName = "";
	        poiName = SMAPRS.result[i].name == ""?"我的标点":SMAPRS.result[i].name;
	        poiHtml += "<b style=\"margin:5px 0px 0px 20px;\">" + (i+1) + ". </b><a href=\"javascript:void(0);\" onclick=\"sMapCbk.openInfoWindow("+i+");\">"+poiName+"</a><br>";
			
			//判断返回数目：（如果数目为1，则在搜索框中出现关键字且自动弹出气泡，如果大于1，则不显示关键字也不弹气泡）
			if(SMAPRS.result.length == 1){
				this.addPoi(i,icon);
				//弹气泡并显示关键字
				setTimeout("sMapCbk.openInfoWindow("+i+")",1000);
				this.showKeyWord(SMAPRS.result[i].name);
			}else{
				icon = maplitelib+"tb"+eval(i+1)+"."+mapliteSuffix;
				this.addPoi(i,icon);
			}
		}
		strHtml += poiHtml;
		strHtml += "</td></tr>";
		strHtml += "<tr><td style=\"padding-left:26px;padding-bottom:25px;\" id=\"egList\">"; 
		//if(sMapCbk.egHtml!="") strHtml += "<br>示例:" + this.egHtml;
        strHtml += "<tr><td style=\"padding-left:26px;padding-bottom:25px;\">查询出行线路；<br>请您选择“公交查询”或“驾车导航”</td></tr>";
        strHtml += "<tr><td style=\"padding-left:26px;padding-bottom:25px;\">查询生活信息；<br>请您选择“周边查询”</td></tr>";
        strHtml += "</table>";
        rs_Panel.innerHTML = strHtml;
        //获取示例
		this.getEg(mapbardis.city);
	},
	showKeyWord:function(txt){
		var form=$("lsForm").getElementsByTagName("form")[0];
		if(form)form.keyword.value=txt;
	},
	getEg:function(cityValue){
        cityProperties=cityDataFun.getCityPropertiesByCity(cityValue);
        var date=new Date();
        var r=date.getYear()+"-"+date.getMonth()+"-"+date.getDate();
        var url="http://www.mapbar.com/localsearch/eg.jsp?citycode="+cityProperties.code+"&r="+r;
        new Transfer.Request(url,{oncomplate:sMapCbk.showEg});
    },
    showEg:function(){
        if(typeof Example=='undefined')return ;
        var eghtml = '';
        for(var i=0;i<Example.keyword.length;i++){
            eghtml+="<a href='javascript:void(0);'onclick=\"eg.keySub(this.innerHTML);return false;\">"+Example.keyword[i].title+"</a>&nbsp;&nbsp;";
        }
        sMapCbk.egHtml = eghtml;
		if($("egList") && eghtml !="")$("egList").innerHTML = "请输入您想查询的关键字；<br>示例:"+eghtml;        
        //sMapCbk.show();
    },
	addPoi:function(i,icon){
        var obj=new MapPoi();
        obj.icon=icon;
        obj.id=SMAPRS.result[i].pid;
        obj.city=sMapCbk.city;
        obj.strlatlon=SMAPRS.result[i].strlatlon;
        obj.name=SMAPRS.result[i].name;
        //obj.detailLink ="<a href='http://www.mapbar.com/localsearch/detail.jsp?pid="+APRS.result[i].pid+"&city="+encodeDURI(APRS.city)+"' target='_blank' style='color:#7777CC'>详细信息&nbsp;&raquo;</a>";
        obj.address=SMAPRS.result[i].address;
        obj.poitype=SMAPRS.result[i].poitype.split(",").join("&nbsp;&raquo;&nbsp;");;
        obj.phone=SMAPRS.result[i].phone;
        
        window.addPoi(obj);
	},
	openInfoWindow:function(i){
		/**for bubble */
        for(var j=0,k=0;j<PoiArr.length;j++){
            if(PoiArr[j].type==0&&PoiArr[j].marker){
                if(k==i){
					openBubble(PoiArr[j]);
                }
                k++;
            }
        }
    }
}
/**
 * @description keyword round spiltPage
 */
function pageCtrl(nPage, tp, strQueryUTF, strCityUTF, key) {
	tp = Math.ceil(parseInt(tp) / 10);
	var nTotalPages = (tp > 100)?10:tp;
    rsArr=[];
    var iCurr = parseInt(nPage);
	var nTotalPage = nTotalPages;
	var iMinPage = Math.max(1, iCurr - 10);
    var iMaxPage = Math.min(nTotalPage, 10);
    rsArr.push("<p class='page'>");
    if (iCurr > 1) {
        var hash="#" + key + "=" + encodeDURI(strQueryUTF) + "&city=" + encodeDURI(strCityUTF) + "&pn=" + (iCurr - 1);
        rsArr.push("<a class='font14' href='"+hash+"' onclick=\"setHash('"+hash+"');return false;\" >\u4E0A\u4E00\u9875</a>");
	}
	if (!$("divpage")) {
		for (var ie = iMinPage; ie <= iMaxPage; ie++) {
			if (ie == iCurr) {
				rsArr.push("&nbsp;<b>" + ie + "</b>");
			}
            else if (ie >10) {
				rsArr.push("&nbsp;<a  class='font14' href='alert(\"\u7ED3\u679C\u8FC7\u591A\uFF0C\u8BF7\u8F93\u5165\u66F4\u591A\u67E5\u8BE2\u6761\u4EF6\u4EE5\u4FBF\u60A8\u7684\u7ED3\u679C\u66F4\u51C6\u786E\u3002\\n\u5982:\u60A8\u5982\u679C\u67E5\u627E\u5DDD\u83DC\u9986\u7684\u4F4D\u7F6E\uFF0C\u53EF\u4EE5\u8F93\u5165\u201C\u4E2D\u5173\u6751 \u5DDD\u83DC \u6C34\u716E\u9C7C\u201D\")'>" + ie + "</a>");
			}
			else {
                var hash="#" + key + "=" + encodeDURI(strQueryUTF) + "&city=" + encodeDURI(strCityUTF) + "&pn=" + ie;
                rsArr.push("&nbsp;<a href='"+hash+"' onclick=\"setHash('"+hash+"');return false;\" >" + ie + "</a>");
			}
		}
	}
	if (iCurr < nTotalPage) {
		if (iCurr < 10) {
            var hash="#" + key + "=" + encodeDURI(strQueryUTF) + "&city=" + encodeDURI(strCityUTF) + "&pn=" + (iCurr + 1);
            rsArr.push("&nbsp;<a class='font14' href='"+hash+"' onclick=\"setHash('"+hash+"');return false;\" >\u4E0B\u4E00\u9875</a>");
		} else {
			rsArr.push("&nbsp;<a class='font14' href='javascript:alert(\"\u7ED3\u679C\u8FC7\u591A\uFF0C\u8BF7\u8F93\u5165\u66F4\u591A\u67E5\u8BE2\u6761\u4EF6\u4EE5\u4FBF\u60A8\u7684\u7ED3\u679C\u66F4\u51C6\u786E\u3002\\n\u5982:\u60A8\u5982\u679C\u67E5\u627E\u5DDD\u83DC\u9986\u7684\u4F4D\u7F6E\uFF0C\u53EF\u4EE5\u8F93\u5165\u201C\u4E2D\u5173\u6751 \u5DDD\u83DC \u6C34\u716E\u9C7C\u201D\")'>\u4E0B\u4E00\u9875</a>");
		}
	}
    rsArr.push("</p>");
    if(nTotalPage>1)rs_Panel.innerHTML+=rsArr.join("");
    rsArr=[];
}
/*user*/
var user={
    userId:'',
	userIdc:'',
	userName:'',
	handleStack:[],
    loginInfo:function(){
        $("loginStatePanel").innerHTML="<a href='javascript:void(0)' onclick=\"user.logout();\">注销</a>";
    },
    notLoginInfo:function(){
        $("loginStatePanel").innerHTML="<a href='javascript:void(0)' onclick=\"user.createLoginPanel();\">登录</a>";
    },
    checkLogin:function(){
        if(user.userId==""){
			user.userId=Cookie.getCookie("userId");
			user.userIdc=Cookie.getCookie("userIdc");
			user.userName=Cookie.getCookie("userName");
		}
		if(user.userIdc=="")return "";//
        return user.userId;
    },
    login:function(username,psw,expireDays){
        new Transfer.Request("http://www.mapbar.com/mapjson/checkLogin.jsp?userName="+encodeDURI(username,1)+"&password="+encodeDURI(psw,1)+"&r="+Math.random(),{oncomplate:function(){user.checkLoginCbk(expireDays);}});
    },
    checkLoginCbk:function(expireDays){
        if(userInfo.loginState.nameState=="1"&&userInfo.loginState.passState=="1"){
            this.userId=userInfo.user.userid;
            this.userName=userInfo.user.userName;
			if(userInfo.user.useridc)this.userIdc=userInfo.user.useridc;
            Cookie.setMCookie("userId",this.userId,{expireDays:expireDays||30,path:"/"});
			Cookie.setMCookie("userIdc",this.userIdc,{expireDays:expireDays||30,path:"/"});
			Cookie.setMCookie("userName",this.userName,{expireDays:expireDays||30,path:"/"});
            this.loginInfo();
            Request = request.init();
            Request.r=Math.random();
            if(Request.ac=='mm'&&Request.ac2!=1){
                setHash("#"+request.toHashString(Request));
            }else{
                mmUrl="";
            }
            if($("loginPanel")){$("loginPanel").parentNode.removeChild($('loginPanel'));}
			for(var s=0;s<this.handleStack.length;s++){
				eval(this.handleStack[s]);
			}
			this.handleStack=[];
        }else{
            if(userInfo.loginState.nameState=="0"){alert("用户名不存在");}
            else if(userInfo.loginState.passState=="0"){alert("密码错误");}
        }

    },
    logout:function(){
        user.userId='';
        Cookie.setMCookie("userId",user.userId,{expireDays:-1,path:"/"});
		Cookie.setMCookie("userIdc",user.userIdc,{expireDays:-1,path:"/"});
		Cookie.setMCookie("userName",user.userName,{expireDays:-1,path:"/"});
        this.notLoginInfo();
    },
    createLoginPanel:function(){
//        this.login("user","pwd");return;
        if($("loginPanel")){$("loginPanel").style.display='';document.getElementsByName("username")[0].focus();;return;}
        var div=document.createElement("div");
        div.id = "loginPanel" ;
        rsArr=[];
        rsArr.push("<div style='position:relative;width:500px;height:200px;margin:auto;'><p style='position:absolute;top:"+(ie?3:-7)+"px;right:7px;'><img src='/images/close.gif' style='width:15px;height:15px;cursor:pointer;' onclick=\"$('loginPanel').style.display='none';\" alt='关闭'></p>");
        rsArr.push("<table style='width:500px;height:200px;border:2px solid #EB8C2F;margin:auto;background:#FFF;' cellpadding=10 cellspacing=10><tr><td style='width:50%;background:#FAF9F4;' valign=top>");
        rsArr.push("<form onsubmit=\"user.login(this.username.value,this.pwd.value);return false;\"><table >");
        rsArr.push("<tr><td style='height:40px' colspan=2  align=center ><h2 style='color:#3366CC;font-size:150%'>请您登录</h2></td></tr>");
        rsArr.push("<tr><td style='color:red;text-align:right'>用户名：</td><td><input type='text'style='width:150px;' name='username'></td></tr>");
        rsArr.push("<tr><td style='color:red;text-align:right'>密&nbsp;&nbsp;&nbsp;码：</td><td><input style='width:150px;' type='password' name='pwd'></td></tr>");
        rsArr.push("<tr><td colspan=2 align=center><input type='submit'  value='登录' name='submit1'>&nbsp;&nbsp;<input type='button' value='取消' onclick=\"$('loginPanel').style.display='none'\"></td></tr>");
        rsArr.push("</table></form>");
        rsArr.push("</td><td style='width:50%;background:#FAF9F4;'  valign=top align=center>");
        rsArr.push("<table><tr><td colspan=2 align=center ><h2 style='color:#3366CC;font-size:150%'>注册新用户</h2></td></tr>");
        rsArr.push("<tr><td colspan=2 >注册mapbar</td></tr><tr><td colspan=2 >您的搜索设置会被保存</td></tr><tr><td colspan=2 >您就可以保存自己创建的地图</td></tr>");
        rsArr.push("<tr><td align=center><a href='http://my.mapbar.com/user/reg.jsp' target='_blank'>注册</a></td>");
        rsArr.push("<td><a href='http://my.mapbar.com/user/forgetPwd.jsp' target='_blank'>忘记密码</a></td></tr>");
        rsArr.push("</table></td></table></div>");
        div.innerHTML=rsArr.join("");
        rsArr=[];
        loginPanelLock=false;
        document.body.appendChild(div);
        document.body.insertBefore(div,document.body.firstChild);
        document.getElementsByName("username")[0].focus();
    }
}
var menuTools={
    mms:{
        send:function(value){
            var currentMaplet=request.init(maplet.getCurrentMap()).map.split(",");
            var  url="http://sms.mapbar.com/mms/sendmms.jsp?nwidth="+currentMaplet[2]+"&nheight="+currentMaplet[3]+"&width="+currentMaplet[2]+"&height="+currentMaplet[3]+"&zm="+currentMaplet[0]+"&ctr="+currentMaplet[1]+"&T=0&flag=1&phone=13911111111&sendMsg=&client=3409&sendMsg=&pois=&plines=";
            window.open(url,'','width=600,height=460,resizable=yes,scrollbars=yes');
        }
    },
    sms:{
        send:function(value){
            var form=$('smsInfoForm');
            if(!form){
                form=document.createElement("form");
                form.id=form.name="smsInfoForm";
                form.method="post";
                form.action = "http://sms.mapbar.com/sms/sms.jsp";
                form.target="smsWindow";
//                '<form name="smsInfoForm" method="get" action="http://sms.mapbar.com/sms/sms.jsp" target="smsWindow"></form>';
                form.innerHTML='<input type="hidden" name="strMsg"    value=""><input type="hidden" name="encode" value="utf-8">';
                document.body.appendChild(form);
            }
            form.strMsg.value=decodeURIComponent(value);
            window.open('about:blank','smsWindow','width=600,height=460,resizable=yes,scrollbars=no');
            form.submit();
        }
    },
    print:{
        content:function(content){

        },
        /*工具条打印*/
        send:function(){
            if(confirm("为了达到最佳打印效果，建议将打印机设置为横向打印！")){
                window.print();
            }
//            var currentMaplet=request.init(maplet.getCurrentMap()).map.split(",");
//            var url="http://www.mapbar.com/localsearch/print.jsp?strlatlon="+currentMaplet[1]+"&zoom="+currentMaplet[0];
//            window.open(url,'','');
        }
    },
    mail:{
        send:function(){
            var strLocation = document.location.href;
            var subject = "Mapbar";
            var mailStr="mailto:?subject="+encodeURI(subject)+"&body="+escape(strLocation);
            document.location.href=mailStr;
        }
    },
    copy:function(id){
        try{
           var targetText = document.getElementById(id);
           targetText.focus();
           targetText.select();
           var clipeText = targetText.createTextRange();
           clipeText.execCommand("Copy");
           alert("已经复制到剪切板！请使用Ctrl+V粘贴出来。");
        }catch(e){}
    },
    copyText:function(clipeText){
        if(window.clipboardData){
            var clipBoardContent = "";
            clipBoardContent = clipeText||window.location.href;
            window.clipboardData.setData("Text", clipBoardContent);
            alert("已经复制到剪切板！请使用Ctrl+V粘贴出来。");
        }
    },
	collectError:function(action){
		
		rsArr=[];
		rsArr.push("<table align=center><tr><td>这里有错误的信息？<a href='http://www.mapbar.com/feedback/feedback.jsp?reffer="+escape(document.location.href)+"' target='_blank'>纠错</a></td></tr>");
		/*if(action=="lc"){
			Request=request.init();
			Request.ac="lsc";Request.pn=1;
			var hash="#"+request.toHashString(Request);
			rsArr.push("<tr><td><a href='"+hash+"' onclick=\"setHash('"+hash+"');return false;\" >在我的地图中搜索</a></td></tr>");
		}*/
		rsArr.push("</table>");
		rs_Panel.innerHTML+=rsArr.join("");
		
	}
}



/****************mapbar31_b_bubble patch *****************************/
	
	function getBubbulIframeContent(src,marker){
		//getBubbleSize("big");
		var obj;
		if(marker)obj=marker.info.getBodySize();
		//var w = obj.width;
		var h = obj.height-65;
		var con = "<iframe frameborder=0 scroll=no style=\"width:100%;height:"+(h)+"px\" src='"+src+"' style='' ></iframe>"
		return con;
	}
	function getTitle(title){
		var ret = "";
		ret = "<p style='text-align:center;PADDING-LEFT: 9px; BACKGROUND: #f8f8f8; MARGIN: 0px 10px; LINE-HEIGHT: 30px; BORDER-BOTTOM: #ddd 1px solid; HEIGHT: 30px'>"+title+"</p>";
		return ret;
	}
	function setAutoAnd1(){
		var obj=getPoiById(request.init()["markerId"]);
		if(obj)marker=obj.marker;
		marker.info.zoomIn();
		showTipDiv('tipfromDiv','tipdiv');
	}
	function setAutoAnd2(){
		var obj=getPoiById(request.init()["markerId"]);
		if(obj)marker=obj.marker;
		marker.info.zoomIn();
		showTipDiv('tiptoDiv','tipdiv');
	}
	//使加号隐藏或显示
	function bubbleZoomEndCbk(zoomtype){
		//maplet.hideBubble();
		if(zoomtype == 'undefined')zoomtype='in';
		var obj=getPoiById(request.init()["markerId"]);
		if(obj)marker=obj.marker;
		else{return;}
		var title;
		var content;
		if(zoomtype == 'out'){
			var src="http://www.mapbar.com/localsearch/detail_pop.jsp?pid="+obj.id+"&city="+obj.city;
			var content = getBubbulIframeContent(src,marker);
			var title = getTitle(obj.name);
		}else{
			content = obj.getMarkerContent();
			title = obj.name;
		}
		if(typeof title!="undefined")marker.info.setTitle(title);
		if(typeof content!="undefined")marker.info.setContent(content);
	}
	//气泡放大缩小时隐藏鹰眼
	function bubbleZoomOutInCbk(){
		maplet.showOverview(true);
	}
/**********************************************/


/****/
/*ie6History*/
if(ie&&typeof historyJsUrl!="undefined"){
    document.write("<script type='text/javascript' src='"+historyJsUrl+"'></script>");
}
Event.observe(window,"load",function(){hashEventListener();});
/*initMap*/
if(typeof autoInitMap!="undefined"&& autoInitMap==true){
    Event.observe(window,"load",function(){
        var Request = request.init();
        Request.city=Request.city||"";
        if(Cookie.getCookie("city")==""&&Request.city==""){    //如果cookie为空，则根据ip地址判断
            getLocalCityByIp.init(function(){initMap();});
        }else{
            initMap();
        }
    });
}else{
    Event.observe(window,"load",function(){docResize();});
}
/*loginInfo*/
Event.observe(window,"load",function(){if(user.checkLogin()!=""&&user.checkLogin()!="undefined")user.loginInfo();else{user.notLoginInfo();}mapbardis.cityOption();});
/*suggest*/
if(typeof json_suggest!="undefined"){
    Event.observe(window,"load",function(){if(typeof json_suggest)mapbarInputSuggest.bind(json_suggest);});
}
window.onerror=function(){return false;}

//add by zhangzhenxin on 2008-5-5 for 左右互动 start
//image_id 判断上一次处理的图片和这次是否相同
var image_id ;
function changeListImage(j) {
	var icon = "http://img.mapbar.com/maplite/mapbank/ditu/image/icon/maplite/";
	
	if(null == image_id && image_id == j) {
		return ;
	}
	image_id = j;
	if (maplet) {
		if (PoiArr && PoiArr.length > 1) {
			for (var i = 0; i < PoiArr.length; i++) {
				if (null != $(PoiArr[i].objId) && null != $("img_icon_" + i)) {
					$(PoiArr[i].objId).firstChild.src = icon + "gif1/tb" + (i + 1) + ".gif";
					$("img_icon_" + i).src = icon + "gif1/tb" + (i + 1) + ".gif";
					if (i == j) {
						$(PoiArr[i].objId).firstChild.src = icon + "gif2/tb" + (i + 1) + ".gif";
						PoiArr[i].marker.icon.hilite();
						$("img_icon_" + i).src = icon + "gif2/tb" + (i + 1) + ".gif";
					}
				}
			}
		}
	}
}
//End
