
//##################
// 地名库的定位
//##################
function changeProvince(o)
{
    var v = o.options[o.selectedIndex].value;
    var city = document.getElementById("City");
    var cnty = document.getElementById("Cnty");
    city.length = 0;
    cnty.length = 0;
    cnty.style.display = "none";
    if(v == "")
    {
        city.style.display = "none";
    }
    else
    {
        city.options[0] = new Option("==地市==","")
        var xml = AjaxMethod.getCity(v).value;
        var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async = false;
		xmlDoc.loadXML(xml); 				
		var root = xmlDoc.childNodes.item(0);		
		var len = root.childNodes.length;
		for(var i = 0 ;i<len;i++)
		{
		    var node = root.childNodes.item(i);			    
		    city.options[i+1] = new Option(node.selectSingleNode("NAME").text,node.selectSingleNode("CODE").text);  
		}
		city.style.display = '';
    }
}
//根据地市动态加载其所辖的县市地名信息
function changeCity(o)
{
    var v = o.options[o.selectedIndex].value;    
    var cnty = document.getElementById("Cnty");   	
    cnty.length = 0;    
    if(v == "")
    {
        cnty.style.display = "none";
    }
    else
    {
        cnty.options[0] = new Option("==区县==","")
        var xml = AjaxMethod.getCnty(v).value;
        var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async = false;
		xmlDoc.loadXML(xml); 				
		var root = xmlDoc.childNodes.item(0);		
		var len = root.childNodes.length;
		for(var i = 0 ;i<len;i++)
		{
		    var node = root.childNodes.item(i);			    
		    cnty.options[i+1] = new Option(node.selectSingleNode("NAME").text,node.selectSingleNode("CODE").text);  
		}
		cnty.style.display = '';	
    }
}
//将度转换为经纬度
function TransformCoorNo(du)
 {		
    var xx=du;
    var strnum = xx.indexOf(".");
    var du1 = xx.substring(0,strnum);		
    var du2 = xx.substring(strnum);
    du2 =du2*60;
    var du2strnum = String(du2).substring(String(du2).indexOf("."));
    du2 = parseInt(du2)						
    var du3 = du2strnum*60;
    du2= parseInt(du3)
    return du1+"|"+du2+"|"+du2;
}
	
//将经纬度转换为度
//var tempX="106°12'17''";
function TransformCoor(pos1,pos2,pos3)
{
    var du1=pos1;
    var fen=pos2;
    var du2=fen/60;
    var miao=pos3;
    var du3=miao/3600;
    var du=parseFloat(du1)+parseFloat(du2)+parseFloat(du3);
    return du;
} 

function doquery()
{
//专题类型

    var keyword = document.getElementById("keyword");
    var datatype = document.getElementById("lstdatatype");
    if(datatype.value == "")
    {
    	alert('请在产品类别中选择子类型进行查询！');
    	datatype.focus();
    	return;
    }
    var arr = datatype.value.split('|');
    var txtminx = "";
	var txtmaxx = "";
	var txtminy = "";
	var txtmaxy = "";
	var pagesize = document.getElementById("PageRecordCount");		
	var scale = document.getElementById("ddlScaleType");
	var sort = document.getElementById("ddlSortField");
	var rddu = document.getElementById("rddu");
	var rddfm = document.getElementById("rddfm");	
	var spatialquery = document.getElementById("spatialquery");	
	var params = "&keyword=" +escape(keyword.value.toUpperCase()) +"&PageRecordCount=" + pagesize.value;
	var strspatial="";
    if(rddu.checked != "" && spatialquery.checked != "" )
    {
        txtminx = document.getElementById("txtminx");		
	    txtmaxx = document.getElementById("txtmaxx");		
	    txtminy = document.getElementById("txtminy");		
	    txtmaxy = document.getElementById("txtmaxy");		
	
        if( txtminx.value!=""&&txtminx.value!=""&&txtminx.value!=""&&txtminx.value!="")
        {
            strspatial= "&polygon=" + txtminx.value +"," + txtminy.value + "," +txtmaxx.value + "," + txtmaxy.value;
        }
        
    }
    else if (rddfm.checked != "" && spatialquery.checked != "")
    {
        txtminx = TransformCoor(document.getElementById("txtminxp1").value,document.getElementById("txtminxp2").value,document.getElementById("txtminxp3").value);		        
	    txtmaxx = TransformCoor(document.getElementById("txtmaxxp1").value,document.getElementById("txtmaxxp2").value,document.getElementById("txtmaxxp3").value);			
	    txtminy = TransformCoor(document.getElementById("txtminyp1").value,document.getElementById("txtminyp2").value,document.getElementById("txtminyp3").value);				
	    txtmaxy = TransformCoor(document.getElementById("txtmaxyp1").value,document.getElementById("txtmaxyp2").value,document.getElementById("txtmaxyp3").value);				
	
        if( txtminx!=""&&txtminx!=""&&txtminx!=""&&txtminx!="")
        {
            strspatial= "&polygon=" + txtminx +"," + txtminy + "," +txtmaxx+ "," + txtmaxy;
        }
        
    }
    var districtcode = getDistinctCode();
	if(districtcode != "")
	{
		params += "&districtcode=" + districtcode;
	}
	if(scale && scale.length != 0 && scale.options[scale.selectedIndex].value != "")
	{
		params += "&scale=" + escape(scale.options[scale.selectedIndex].value)
	}
//	if(sort && sort.options[sort.selectedIndex].value != "")
//	{
//		params += "&sort=" + escape(sort.options[sort.selectedIndex].value)
//	}
	var url = "Response.aspx?topictype=&resType=" + escape(arr[0]) + strspatial+params;
	
	window.open(url);
}


function changeDataType(o)
{	
	getScaleType(o);
}
function getScaleType(o)
{
	var v = o.options[o.selectedIndex].value;
	var tr = document.getElementById("trScale");
	var scale = document.getElementById("ddlScaleType");
	scale.length = 0;
	if(v && v != "")
	{
//		scale.options[0] = new Option("<所有比例尺>",""); 
//		scale.selectedIndex = 0;
		var rvalue = "" + AjaxMethod.getScaleType(v).value;
		if(rvalue!="")
		{
		    rvalue='sc,'+rvalue;
			var ss = rvalue.split(',');
			for(var i = 0;i<ss.length;i++)
			{
			    if(ss[i]=="sc")
			    {
			      scale.options[i] = new Option("<所有比例尺>","");    
			    }
			    else
			    {
				  scale.options[i] = new Option(ss[i],ss[i]);  
				}
			}
			tr.style.display = "";
			return;
		}
	}
	tr.style.display = "none";
}

function chkSpatial(o)
{
	var trdiv = document.getElementById("trdiv");
	var trSpatial = document.getElementById("trSpatial");
	var rddfm= document.getElementById("rddfm");
	var rddu= document.getElementById("rddu");
	var span = document.getElementById("DefineRect");
	var DefineRect2 = document.getElementById("DefineRect2");
		   
	if(o.checked)
	{
//	    trDFM.checked=""; 

//		trSpatial.style.display = "";
//		trDFM.style.display = "none";
	    trdiv.style.display = "";
		span.style.display = "";
		DefineRect2.style.display = "";
	}
	else
	{
	
		//trSpatial.style.display = "";
		//trDFM.style.display = "";
		trdiv.style.display = "none";
		span.style.display = "none";
		DefineRect2.style.display = "none";
	}
	rddu_onclick(rddu)
	rddfm_onclick(rddfm) 
}

function rddu_onclick(o) 
{
   var trSpatial = document.getElementById("trSpatial");
	var trDFM = document.getElementById("trDFM");
	var rddfm= document.getElementById("rddfm");
	var rddu= document.getElementById("rddu");
	if(o.checked && o.value=="trDFM")
	{
		trSpatial.style.display = "none";
		trDFM.style.display = "";
		rddfm.checked=""
		rddu.checked="checked"
	}
	else
	{
		trSpatial.style.display = "";
		trDFM.style.display = "none";
		rddu.checked="checked"
		rddfm.checked=""
	}
}

function rddfm_onclick(o) 
{
    var trSpatial = document.getElementById("trSpatial");
	var trDFM = document.getElementById("trDFM");
	var rddfm= document.getElementById("rddfm");
	var rddu= document.getElementById("rddu");
	if(o.checked && o.value=="trSpatial")
	{
		trSpatial.style.display = "";
		trDFM.style.display = "none";
		rddfm.checked="checked"
		rddu.checked=""
	}
	else
	{
		trSpatial.style.display = "none";
		trDFM.style.display = "";
		rddu.checked=""
		rddfm.checked="checked"
	}
}

function getDistinctCode()
{
    var code = "";
    var cnty = document.getElementById("Cnty");
    if(cnty && cnty.length>0)
    {
        code = cnty.options[cnty.selectedIndex].value;
        if(code != "")
        {
            return code;
        }
    }
    var city = document.getElementById("City");
    if(city && city.length>0)
    {
        code = city.options[city.selectedIndex].value;
        if(code != "")
        {
            return code;
        }
    }
    var prov = document.getElementById("Province");
    if(prov && prov.length>0)
    {
        code = prov.options[prov.selectedIndex].value;
        if(code != "")
        {
            return code;
        }
    }
    return code;
}
    
    
    
    
    
    
    
var SWMap = null;
var myNavigator = null;
var myTrackingBox = null;
var myMeasure = null;
var myZoomIn  = null;
var myZoomOut = null;
var ismapinit = false;
function mapInit()
{
	if(!ismapinit)
	{
	
	
//		SWMap = new MapObject( 'viewport' );  
//	configBaseMap();
//	configOverLayer();	
//	SWMap.addMap( map );
//    SWMap.registerForEvent( _TRACKINGBOX, null, defBoundingbox );
//    SWMap.registerForEvent( _AfterTrackingPoly, null, releaseTracking );
//    SWMap.registerForEvent( _AfterTrackingLine, null, releaseTracking );
//    SWMap.registerForEvent( EVENT_RESIZE_MAP, null, adjuestControl );
//    pNavigator 		= new NavigatorTool(SWMap);
//    pTrackingBox 	= new TrackingBoxTool(SWMap);
//    pTrackingLine 	= new TrackingLine(SWMap);
//    pTrackingPolygon= new TrackingPolygon(SWMap);
//    pMeasure 		= new MeasureTool(SWMap);
//    pZoomIn 		= new ZoomInTool(SWMap);
//    pZoomOut 		= new ZoomOutTool(SWMap);
//    
//    SWMap.selectMap('地图'); 
//    setMapTool('pan');
//    SWMap.addMapControl();
    
		BORDERWIDTH = 0;
		BORDERHEIGHT = 0;
		SWMap = new MapObject( 'viewport' );  
		configBaseMap();
		SWMap.addMap( map );
		
	    SWMap.registerForEvent( _TRACKINGBOX, null, defBoundingbox );
	    myNavigator = new NavigatorTool( SWMap );
	    myTrackingBox 	= new TrackingBoxTool(SWMap);
	    SWMap.selectMap('地图');   
	    SWMap.addMapControl();
	    SWMap.enableKeyCtl = false;
	    SWMap.enableMouseWheel = false;
	    setMapTool('query');
	    ismapinit = true;	    
    }
}
function setMapTool(tool)
{
	if(tool == "pan")
	{
		myNavigator.activate();
	}
	if(tool == "query")
	{
		myTrackingBox.activate();
	}
	if(tool == "measure")
	{
		myMeasure.activate();
	}
	if(tool == "clear")
	{
		removeDistrict();
		SWMap.clearOverlays();		
		myMeasure.clear();
	}
	if(tool == "zoomin")
	{
		myZoomIn.activate();
	}
	if(tool == "zoomout")
	{
		myZoomOut.activate();
	}
	if(tool == "reflash")
	{
		SWMap.reflash();
	}
}

function createPolygon(minx,miny,maxx,maxy)
{    
	var pts = [];
	pts.push(new Point(minx,miny));
	pts.push(new Point(minx,maxy));
	pts.push(new Point(maxx,maxy));
	pts.push(new Point(maxx,miny));
	pts.push(new Point(minx,miny));
	return new Polygon(pts);
}
//##################
// 空间范围定义
//##################
var defpoly = null;
function definePolygon(minx,miny,maxx,maxy)
{
    //alert(minx + "#" + miny +"#" +maxx+ "#" + maxy);
	if(defpoly!=null)
	{
		SWMap.removePolygon(defpoly);
	}
	var pts = [];
	pts.push(new Point(minx,miny));
	pts.push(new Point(minx,maxy));
	pts.push(new Point(maxx,maxy));
	pts.push(new Point(maxx,miny));
	pts.push(new Point(minx,miny));
	defpoly = new Polygon(pts);
	SWMap.addPolygon(defpoly);
}
function fixBound()
{
    var txtminx = document.getElementById("txtminx");		
	var txtmaxx = document.getElementById("txtmaxx");		
	var txtminy = document.getElementById("txtminy");		
	var txtmaxy = document.getElementById("txtmaxy");
	var reg = /^(\d+\.?\d*)$/
	if(!reg.test(txtminx.value))
	{
		alert('你输入的西边经度有误，请检查！');
		txtminx.focus();
		return false;
	}
	if(!reg.test(txtmaxx.value))
	{
		alert('你输入的东边经度有误，请检查！');
		txtmaxx.focus();
		return false;
	}
	if(!reg.test(txtminy.value))
	{
		alert('你输入的南边纬度有误，请检查！');
		txtminy.focus();
		return false;
	}
	if(!reg.test(txtmaxy.value))
	{
		alert('你输入的北边纬度有误，请检查！');
		txtmaxy.focus();
		return false;
	}
	var minx = parseFloat(txtminx.value);
	var miny = parseFloat(txtminy.value);
	var maxx = parseFloat(txtmaxx.value);
	var maxy = parseFloat(txtmaxy.value);
	if(minx > maxx)
	{
		var t = maxx;
		minx = maxx;
		maxx = t;
	}
	if(miny > maxy)
	{
		var t = maxy;
		miny = maxy;
		maxy = t;
	}
	definePolygon(minx,miny,maxx,maxy);
	SWMap.zoomToExtents(minx,miny,maxx,maxy);
}
function getBound()
{
	if(defpoly!=null)
	{
		var bounds = defpoly.calculateBounds();
		var txtminx = document.getElementById("txtminx");
		var txtmaxx = document.getElementById("txtmaxx");
		var txtminy = document.getElementById("txtminy");
		var txtmaxy = document.getElementById("txtmaxy");
		txtminx.value = getApprox(bounds.minX);
		txtmaxx.value = getApprox(bounds.maxX);
		txtminy.value = getApprox(bounds.minY);
		txtmaxy.value = getApprox(bounds.maxY);
		//度分秒
		//txtminx
		 var pgetdu;
		
	     //txtminxp
	    pgetdu = TransformCoorNo(txtminx.value).split('|');
	    document.getElementById("txtminxp1").value = pgetdu[0];
	    document.getElementById("txtminxp2").value = pgetdu[1];
	    document.getElementById("txtminxp3").value = pgetdu[2];
		
		//txtmaxxp
		pgetdu = TransformCoorNo(txtmaxx.value).split('|');
	    document.getElementById("txtmaxxp1").value = pgetdu[0];
	    document.getElementById("txtmaxxp2").value = pgetdu[1];
	    document.getElementById("txtmaxxp3").value = pgetdu[1];		
	    
	    //txtmaxxp
		pgetdu = TransformCoorNo(txtminy.value).split('|');
	    document.getElementById("txtminyp1").value = pgetdu[0];
	    document.getElementById("txtminyp2").value = pgetdu[1];
	    document.getElementById("txtminyp3").value = pgetdu[1];	
	    
	    //txtmaxxp
		pgetdu = TransformCoorNo(txtmaxy.value).split('|');
	    document.getElementById("txtmaxyp1").value = pgetdu[0];
	    document.getElementById("txtmaxyp2").value = pgetdu[1];
	    document.getElementById("txtmaxyp3").value = pgetdu[1];		    

		
	}
}
//动态拖动生成矩形
function defBoundingbox(eventID,bounds,points)
{	
 	if(defpoly)
 	{
 		SWMap.removePolygon(defpoly);
 	}
 	defpoly = new Polygon(points);
 	if(defpoly)
 	{
 		SWMap.addPolygon(defpoly);
 		//getBound();
 	}
}

