﻿/// <reference path="http://www-app.gdepb.gov.cn/ext-2.2/vswd-ext_2.1.js" />

Ext.namespace('EQPublish');

EQPublish.ProtectedRegionViewport = Ext.extend(Ext.Viewport, {
	initComponent: function() {
		Ext.apply(this, {
			layout: 'border',
			border: false,
			defaults: { border: true },
			items: [
				{ id: 'north', region: 'north', contentEl: 'hd', height: '160', border: false },
				{
					title: '自然保护区', region: 'west', width: 300, layout: 'border', split: true,//collapsible: true, collapseMode: 'mini',
					//bbar: ['->', '<img src="images/waterFunctionlegend.gif">'],
					items: [
						{
							id: 'protectedRegionPanel', xtype: 'ProtectedRegionPanel', region: 'center',split: true
						},
						{
							id: 'protectedRegionInfoPanel', xtype: 'ProtectedRegionInfoPanel', region: 'south',split: true, height: 300
						}
					]
				},
				{ xtype: 'vepanel', id: 'vemap', region: 'center' },
				{ id: 'south', region: 'south', contentEl: 'ft', collapsible: false, border: false }
			]
		});
		EQPublish.ProtectedRegionViewport.superclass.initComponent.call(this);
	},
	initEvents: function() {
		/// 这里注册事件绑定
		Ext.getCmp('protectedRegionPanel').on('timechange', this.onCondiChange, this);
		Ext.getCmp('protectedRegionPanel').on('rowclick', this.onRowSelect, this);
		Ext.getCmp('protectedRegionPanel').on('firstrowselect', this.onFirstRowSelect, this);
		//Ext.getCmp('vemap').on('resize', this.onAddWFLayer, this);

	},
	afterRender: function() {
		EQPublish.ProtectedRegionViewport.superclass.afterRender.apply(this, arguments);
		this.initEvents();
		//Ext.getCmp('protectedRegionPanel').getSelectionModel().selectFirstRow();
		/// 这里加载页面默认的数据
	},
	onAddWFLayer: function() {
		if (Ext.getCmp('vemap').map) {
			if (Ext.getCmp('vemap').map.GetTileLayerByID("WaterFunc"))
			{ Ext.getCmp('vemap').map.DeleteTileLayer("WaterFunc"); }
			Ext.getCmp('vemap').map.AddTileLayer(new VETileSourceSpecification('WaterFunc', tileServer + '/MapServer%2/map/f_%4_png.aspx?&appKey=' + appKey, 4, this.gdBounds, 1, 19, null, 1, 28), true);
		}
	},
	onCondiChange: function(thisPanel, selectItems) {
		//条件改变，走此函数，条件状态在condiObj中。
		function onSuccess(request, options) {
			var result = Ext.decode(request.responseText);
			if (result.Success) {
				if (result.Data.length > 0) {
					Ext.getCmp('vemap').addIcon.defer(400, Ext.getCmp('vemap'), [result.Data]);
				}
				else {
					Ext.getCmp('vemap').cleanIcon();
				}
			}
			else {
				//Ext.MessageBox.alert('', result.ErrorMessage);
				return false;
			}
		}
		function onFailure(response, options) { }

		var param = { s: selectItems.state, p: selectItems.province };
		Ext.Ajax.request({
			url: this.url,
			params: { op: 'QueryProtectedRegionIcon', param: Ext.encode(param) },
			success: onSuccess,
			failure: onFailure
		});
	},
	onRowSelect: function(thisGird, rowIndex, evObj) {
		var Longitude = thisGird.store.getAt(rowIndex).get('Longitude');
		var Latitude = thisGird.store.getAt(rowIndex).get('Latitude');
		var regionID = thisGird.store.getAt(rowIndex).get('ProtectedAreaCode');
		this.InfoTab(regionID);
		var title = thisGird.store.getAt(rowIndex).get('ProtectedAreaName');
		Ext.getCmp('vemap').setMapPosition(Latitude, Longitude,8);
		var item = {
			id: 'marker',
			lat: Latitude + 0.002,
			lon: Longitude + 0.002,
			icon: '/EQPublish/Images/MapIcon/marker.gif',
			title: title
		}
		Ext.getCmp('vemap').deleteIcon('marker');
		Ext.getCmp('vemap').addIcon(item, true);
	},
	onFirstRowSelect: function(thisGird) {
		var regionID = thisGird.getSelectionModel().selections.items[0].data.ProtectedAreaCode;
		this.InfoTab(regionID);
	},
	InfoTab: function(regionID) {//debugger;
		var tabPanel = Ext.getCmp('protectedRegionInfoPanel');
		var id = Ext.getCmp('protectedRegionPanel').getSelectionModel().selections.items[0].data.ProtectedAreaCode;
		tabPanel.cascade(function() {
			//debugger;
			this.setRegionId(id);
		}, null, [id]);
	}
});

//自然保护区分区信息定位
function DrawSubGrahp(id) {
	function onSuccess(request, options) {
		var result = Ext.decode(request.responseText);
		if (result.Success) {
			if (result.Data.length > 0) {
				var vemap = Ext.getCmp('vemap');
				var Polygon = Ext.decode(result.Data[0].Graph);
				try {
					vemap.addPolygon(Polygon);
				}
				catch (ex) {
					Ext.Msg.alert(
							'加面错误!',
							String.format('Name {0}<br/>Number {1}<br/>Message {2}<br/>Description {3}', ex.name, ex.number, ex.message, ex.description)
						);
				}
			}
			else {
				 Ext.getCmp('vemap').cleanIcon();
			}
		}
	}
	function onFailure(response, options) { }
	var param = { subid: id };
	Ext.Ajax.request({
		url: '/EQPublish/Handlers/ProtectedRegionHandler.ashx',
		params: { op: 'SelectRegionSubGrahp', param: Ext.encode(param) },
		success: onSuccess,
		failure: onFailure
	});
}

//自然保护区信息窗口
var _protectedwindow = null;
function ShowWindow(doc) {
	if (_protectedwindow == null) {
		_protectedwindow = new EQPublish.ProtectedWindow({
			ascxHandlerUrl: ascxHandler,
			ascxUrl: '~/Controls/ProtectedWindow.ascx'
		});
	}
	var ID = doc.id;
	_protectedwindow.setID(ID);
	_protectedwindow.setTitle("保护区资料");
	_protectedwindow.show();
	
}