﻿
/*-----------基础方法-------------*/
var $=function(id) {
   return document.getElementById(id);
}
//去掉字符窜的空格
function trim(str){
	return str.replace(/(^\s*)|(\s*$)/g, "");  
}
//验证为数字
function IsNum(s){
	var Number = "0123456789";
	for (i = 0; i < s.length;i++){   
        var c = s.charAt(i);
        if (Number.indexOf(c) == -1){
           return false;
       }
    }
	return true
}

/*-----------经纬度编码解码-------------*/
METERS_PER_DEGREE = 109801.71;
//对经纬度编码
function codeLatLng(lat,lng){
    var originLng = 72;
	var originLat = 0 ;
	var grid10w = 72 ;
	var grid10h = 72 ;
	var grid9w = 24 ;
	var grid9h = 24 ;
	var code='';
	var d1=0;
	var d2=0;
	var offsetLng=(lng-originLng)*METERS_PER_DEGREE;
	var offsetLat=(lat-originLat)*METERS_PER_DEGREE;
	for(var i=4;i>=0;i--){
		code=code+Math.floor(offsetLng/(grid10w*Math.pow(10,i)))+Math.floor(offsetLat/(grid10h*Math.pow(10,i)));
		d1=(offsetLng/(grid10w*Math.pow(10,i)))-Math.floor(offsetLng/(grid10w*Math.pow(10,i)));
		offsetLng=d1*(grid10w*Math.pow(10,i));
		
		d2=(offsetLat/(grid10h*Math.pow(10,i)))-Math.floor(offsetLat/(grid10h*Math.pow(10,i)));
		offsetLat=d2*(grid10h*Math.pow(10,i));
	} 
	code=code+((Math.floor(offsetLng/grid9w)+1)+(Math.floor(offsetLat/grid9h)*3));
	return code;
}
//对经纬度解码
function enCodeLatLng(code){
    if(code.length!=11){
		return null;
	}
	var originLng = 72;
	var originLat = 0 ;
	var grid10w = 72 ;
	var grid10h = 72 ;
	var grid9w = 24 ;
	var grid9h = 24 ;
	var lat=null;
	var lng=null;
	var n=null;
	offsetLng=parseInt(code.charAt(0),10)*grid10w*Math.pow(10,4)+parseInt(code.charAt(2),10)*grid10w*Math.pow(10,3)+parseInt(code.charAt(4),10)*grid10w*Math.pow(10,2)+parseInt(code.charAt(6),10)*grid10w*10+parseInt(code.charAt(8),10)*grid10w;
	offsetLat=parseInt(code.charAt(1),10)*grid10h*Math.pow(10,4)+parseInt(code.charAt(3),10)*grid10h*Math.pow(10,3)+parseInt(code.charAt(5),10)*grid10h*Math.pow(10,2)+parseInt(code.charAt(7),10)*grid10h*10+parseInt(code.charAt(9),10)*grid10h;
	if(parseInt(code.charAt(10))==0){
		offsetLat=offsetLat+(grid10h/2);
		offsetLng=offsetLng+(grid10w/2);
	} else{
		if((parseInt(code.charAt(10))-3)/3<=0){
			n=0;
		}else if((parseInt(code.charAt(10),10)-3)/3<=1&&(parseInt(code.charAt(10),10)-3)/3>0){
			n=1;
		} else if((parseInt(code.charAt(10),10)-3)/3<=3&&(parseInt(code.charAt(10),10)-3)/3>1){
			n=2;
		} 
		offsetLat=offsetLat+grid9h*(n+1)-grid9h/2;
		offsetLng=offsetLng+(parseInt(code.charAt(10),10)-3*n)*grid9w-grid9w/2;
	} 
	lng=Math.round((((offsetLng/METERS_PER_DEGREE)+originLng)*100000))/100000;
	lat=Math.round((((offsetLat/METERS_PER_DEGREE)+originLat)*100000))/100000;
	
	var latlng = new Object();
    latlng.lat = parseFloat(lat);
    latlng.lng = parseFloat(lng);
	return latlng;
}
//判断是否为经纬度编码
function isValidLatLngCode(code){
    if(!code){return false;}
    if(code.length==11){
        var  rtcodeRegex;
		rtcodeRegex=/^\d{11}$/;
		if(!rtcodeRegex.test(code)){return false;};		
        return true;
    }
    return false;    
}


/*-----------分页-------------*/
/// <summary>
/// 分页
/// </summary>
/// <param name="thisPage">当前页码</param>
/// <param name="total">总记录数</param>
/// <param name="thisPageCount">每页显示的记录数</param>
/// <param name="pageCount">显示的页码数目（当前页显示在中间）</param>
/// <param name="strLink">链接的目标页与参数</param>
function getPage(thisPage, total, thisPageCount, pageCount, strLink){
    thisPage = parseInt(thisPage);
    total = parseInt(total);
    thisPageCount = parseInt(thisPageCount);
    pageCount = parseInt(pageCount);
    
    if (total <= 0){
        return "";
    }else{
        //当前页实际显示的记录数
        var count = thisPageCount;
        //总共分出来的页数
        var totalPage = 0;
        //限定最大页码（最多显示多少页）
        var maxPage = 10;

        //计算出总共分出来的页数
        totalPage = Math.floor(total/thisPageCount); //向下取整
        if ((total % thisPageCount) != 0){
            totalPage = totalPage + 1; //向上取整
        }
        if(maxPage != null && maxPage != "" && totalPage > maxPage ){
            totalPage = maxPage;
        }

        //当前页不在范围之内显示到第一页
        if (thisPage > totalPage || thisPage <= 0){
            thisPage = 1;
        }

        //计算出显示页码的起始页start
        var start = 1;
        if (totalPage <= pageCount){
            pageCount = totalPage;
        }else{
            if (thisPage <= Math.ceil(pageCount/2)){ //pageCount的一半向上取整
                start = 1;
            }else{
                if (thisPage > totalPage - Math.floor(pageCount/2) ){   //pageCount的一半向下取整
                    start = totalPage - pageCount + 1;
                }else{
                    start = thisPage - Math.floor(pageCount/2);
                }
            }
        }
        
        var pageHTML = "";
        pageHTML += "<div id='pagination' style='text-align:center; font-size:12;'>";

        if(totalPage > 1){
            if(thisPage == 1){
                pageHTML += "上页";
            }else{
                pageHTML += "<a style='text-decoration: none;color:#0000ff;' href='" + strLink + "&skip=" + ((thisPage - 2) * count) + "&count=" + count + "'>上页</a>";
            }
            
            for (var iPoint = start; iPoint < (start + pageCount); iPoint++){
                if (iPoint == thisPage){
                    pageHTML += "<strong><span style='color:#E30502;'>[" + iPoint + "]</span></strong>";
                }else{
                    pageHTML += "<a style='text-decoration: none;color:#0000ff;' href='" + strLink + "&skip=" + ((iPoint - 1) * count) + "&count=" + count + "'>[" + iPoint + "]</a>";
                }
            }
            
            if(thisPage == totalPage){
                pageHTML += "下页";
            }else{
                pageHTML += "<a style='text-decoration: none;color:#0000ff;' href='" + strLink + "&skip=" + (thisPage * count) + "&count=" + count + "'>下页</a>"
            }
        }
        pageHTML+= "</div>";
        return pageHTML;
    }
}


/*-----------BalloonBox的信息-------------*/
function setBalloonInfo(name,address,tel,cityid,lat,lng){
    var infoStr = "";
    infoStr += '<table style="width:100%; text-align:left; font-size:12px;"><span id="sCid" style="display:none;">'+cityid+'</span><span id="sCName" style="display:none;">'+parent.StartCityName+'</span><span id="busNavCid" style="display:none;">'+cityid+'</span><span id="busNavCName" style="display:none;">'+parent.StartCityName+'</span>'
             + '<tr><td style="width:55px; vertical-align:top;">地&nbsp; 址：</td><td style="width:350px; ">'+address+'</td>'
             + '<tr><td style="width:55px; vertical-align:top;">电&nbsp; 话：</td><td style="width:350px; ">'+tel+'</td>'
             + '<tr><td style="" colspan="2">';
             
    var selectSearchStr = '<table id="boxSearchTb" style="background-color:#E5ECF9; font-size:13px; display:block; width:300px;">' 
                +'<tr><td><span style="cursor:pointer; color:#0000cc;" onclick="sRound(\''+name+'\')">周边搜索</span>'
                +'&nbsp;-&nbsp;<span style="cursor:pointer; color:#0000cc;" onclick="window.sStartEnd(\''+name+'\',\'start\')">从这里出发</span>'
                +'&nbsp;-&nbsp;<span style="cursor:pointer; color:#0000cc;" onclick="sStartEnd(\''+name+'\',\'end\')">到这里去</span></td></tr></table>';
                
    var roundStr = '<table id="boxSearchTbRound" style="background-color:#E5ECF9; font-size:13px; width:300px; display:none;">'
                +'<tr><td>周边搜索&nbsp;&nbsp;例如：<span id="sRname" style="color:#0000ff;">'+name+'</span>&nbsp;附近的&nbsp;<span style="color:#0000ff;">酒店</span></td></tr>'
                +'<tr><td><input id="sRtxt" type="text" maxlength="30">&nbsp;&nbsp;<input type="button" size="" value="搜 索" onclick="sRSearch()"></td></tr>'
                +'<tr><td><a style="color:#0000cc;" href="javascript:void(0)"  onclick="sBoxLast()">上一步</a></td></tr></table>';
                
    var transStr = '<table id="boxSearchTbTrans" style="background-color:#E5ECF9; font-size:13px; width:300px; display:none;">'
                +'<tr><td>交通查询&nbsp;&nbsp;<span id="sSorE">从这里出发:</span><span id="sTname" style="color:#0000ff;">'+name+'</span></td></tr>'
                +'<tr><td><span id="sTip">目的地：</span><span id="busNavCity">'+parent.CityListRs.InitCityRtHTML(parent.CityId,'busNavSetCity','busNav')+'</span>&nbsp;<input id="sTtxt" type="text" size="12"  maxlength="30">&nbsp;&nbsp;</td></tr>'
                +'<tr><td><a style="color:#0000cc;" href="javascript:void(0)"  onclick="sBoxLast()">上一步</a>&nbsp;&nbsp;<input type="button" size="" value="查公交" onclick="sBSearch()">&nbsp;<input type="button" size="" value="查自驾" onclick="sNSearch()"></td></tr></table>';
    infoStr += selectSearchStr + roundStr + transStr +'</td></tr></table>';
    return infoStr;
}
function busNavSetCity(cityId, cityName, cityShortName, cityLng, cityLat){
    document.getElementById("busNavCid").innerHTML = cityId;
    document.getElementById("busNavCName").innerHTML = cityShortName;
}
function sRound(name){
    document.getElementById("boxSearchTb").style.display = "none";
    document.getElementById("boxSearchTbRound").style.display = "block";
}
function sStartEnd(name,type){
    document.getElementById("boxSearchTb").style.display = "none";
    document.getElementById("boxSearchTbTrans").style.display = "block";
    
    if(type == "start"){
        document.getElementById("sSorE").innerHTML = "从这里出发:";
        document.getElementById("sTip").innerHTML = "目的地：";
    }else{
        document.getElementById("sSorE").innerHTML = "到这里去:";
        document.getElementById("sTip").innerHTML = "出发地：";
    }
}
function sBoxLast(){
    document.getElementById("boxSearchTbRound").style.display = "none";
    document.getElementById("boxSearchTbTrans").style.display = "none";
    document.getElementById("boxSearchTb").style.display = "block";
}
//周边
function sRSearch(){
    if(trim(document.getElementById("sRtxt").value) != ""){
        var regEx = /<[^>]*>/g; 
        var fkw = escape(trim(document.getElementById("sRname").innerHTML).replace(regEx, ""));
        var lkw = escape(trim(document.getElementById("sRtxt").value).replace(regEx, ""));
        var cid = document.getElementById("sCid").innerHTML;
        window.open("http://maps.365ditu.com/maps.htm?act=around&fkw="+fkw+"&searchType=2&radius=3&lkw="+lkw+"&cityid="+cid+"&page=1&item=1",'_blank'); 
    }else{}
}
//公交
function sBSearch(){
    if(trim(document.getElementById("sTtxt").value) != ""){
        var regEx = /<[^>]*>/g; 
        var startCid = document.getElementById("sCid").innerHTML;
        var endCid = document.getElementById("sCid").innerHTML;
        var startCName = escape(document.getElementById("sCName").innerHTML);
        var endCName = escape(document.getElementById("sCName").innerHTML);
        if(document.getElementById("sTip").innerHTML == "目的地："){
//            var startCid = document.getElementById("sCid").innerHTML;
//            var endCid = document.getElementById("busNavCid").innerHTML;
//            var startCName = escape(document.getElementById("sCName").innerHTML);
//            var endCName = escape(document.getElementById("busNavCName").innerHTML);
            var startkw = escape(trim(document.getElementById("sTname").innerHTML).replace(regEx, ""));
            var endkw = escape(trim(document.getElementById("sTtxt").value).replace(regEx, ""));
        }else{
//            var startCid = document.getElementById("busNavCid").innerHTML;
//            var endCid = document.getElementById("sCid").innerHTML;
//            var startCName = escape(document.getElementById("busNavCName").innerHTML);
//            var endCName = escape(document.getElementById("sCName").innerHTML);
            var startkw = escape(trim(document.getElementById("sTtxt").value).replace(regEx, ""));
            var endkw = escape(trim(document.getElementById("sTname").innerHTML).replace(regEx, ""));
        }
              
        window.open("http://traffic.365ditu.com/bus_start_end.aspx?act=bus&startcityid="+startCid+"&endcityid="+endCid+"&startkw="+startkw+"&endkw="+endkw+"&startcityname="+startCName+"&endcityname="+endCName,'_blank'); 
    }else{}
}
//自驾
function sNSearch(){
    if(trim(document.getElementById("sTtxt").value) != ""){
        var regEx = /<[^>]*>/g; 
        if(document.getElementById("sTip").innerHTML == "目的地："){
            var startCid = document.getElementById("sCid").innerHTML;
            var endCid = document.getElementById("busNavCid").innerHTML;
            var startCName = escape(document.getElementById("sCName").innerHTML);
            var endCName = escape(document.getElementById("busNavCName").innerHTML);
            var startkw = escape(trim(document.getElementById("sTname").innerHTML).replace(regEx, ""));
            var endkw = escape(trim(document.getElementById("sTtxt").value).replace(regEx, ""));
        }else{
            var startCid = document.getElementById("busNavCid").innerHTML;
            var endCid = document.getElementById("sCid").innerHTML;
            var startCName = document.getElementById("busNavCName").innerHTML;
            var endCName = document.getElementById("sCName").innerHTML;
            var startkw = escape(trim(document.getElementById("sTtxt").value).replace(regEx, ""));
            var endkw = escape(trim(document.getElementById("sTname").innerHTML).replace(regEx, ""));
        }
        var cid = document.getElementById("sCid").innerHTML;
        window.open("http://traffic.365ditu.com/self_start_end.aspx?act=self&startcityid="+startCid+"&startcityname="+startCName+"&startkw="+startkw+"&endcityid="+endCid+"&endcityname="+endCName+"&endkw="+endkw,'_blank'); 
    }else{}
}
