////////////////////////
// eventopr.js
// 2D Simple
// 地图时间操作
// 王磊 2008-09-17
////////////////////////

var map = new Object();






//鼠标移动
var x, y;
var mouseMoveFunction;
var strMouseMoveEvent;
strMouseMoveEvent = "map.addMouseMoveEvent(displayInfo);" + "\n";
strMouseMoveEvent += "" + "\n";
strMouseMoveEvent += "function displayInfo()" + "\n";
strMouseMoveEvent += "{" + "\n";
strMouseMoveEvent += "	displayEventInfo('鼠标移动事件: ' + '<br/>逻辑坐标X: ' + x + '<br/>逻辑坐标Y: ' + y);" + "\n";
strMouseMoveEvent += "}" + "\n";

function setMouseMoveValue(x, y)
{
	this.x = x;
	this.y = y;
	
	map.addMouseMoveEvent2();
}

map.addMouseMoveEvent2 = function()
{
	if(x != null)
		mouseMoveFunction();
}

map.addMouseMoveEvent = function(fun)
{
	mouseMoveFlag = true;
	mouseMoveFunction = fun;
}

function mouseMoveLink()
{
	displayCode(strMouseMoveEvent);
}

function runMouseMove()
{
	displayCode(strMouseMoveEvent);
	//window.execScript(strMouseMoveEvent);
	runCodeEventOpr(strMouseMoveEvent);
}










//鼠标左键按下
var x, y;
var strLButtonDown;
strLButtonDown = "map.addlButtonDownEvent(displayInfo);" + "\n";
strLButtonDown += "" + "\n";
strLButtonDown += "function displayInfo()" + "\n";
strLButtonDown += "{" + "\n";
strLButtonDown += "	displayEventInfo('鼠标左键按下事件: ' + '<br/>逻辑坐标X: ' + x + '<br/>逻辑坐标Y: ' + y);" + "\n";
strLButtonDown += "}" + "\n";

function setlButtonDownValue(x, y)
{
	this.x = x;
	this.y = y;
	
	map.addlButtonDownEvent2();
}

map.addlButtonDownEvent2 = function()
{
	if(x != null)
		lButtonDownFunction();
}

map.addlButtonDownEvent = function(fun)
{
	lButtonDownFlag = true;
	lButtonDownFunction = fun;
}

function lButtonDownLink()
{
	displayCode(strLButtonDown);
}

function runLButtonDown()
{
	displayCode(strLButtonDown);
	//window.execScript(strLButtonDown);
	runCodeEventOpr(strLButtonDown);
}









//鼠标左键弹起
var x, y;
var strLButtonUp;
strLButtonUp = "map.addlButtonUpEvent(displayInfo);" + "\n";
strLButtonUp += "" + "\n";
strLButtonUp += "function displayInfo()" + "\n";
strLButtonUp += "{" + "\n";
strLButtonUp += "	displayEventInfo('鼠标左键弹起事件: ' + '<br/>逻辑坐标X: ' + x + '<br/>逻辑坐标Y: ' + y);" + "\n";
strLButtonUp += "}" + "\n";

function setlButtonUpValue(x, y)
{
	this.x = x;
	this.y = y;
	
	map.addlButtonUpEvent2();
}

map.addlButtonUpEvent2 = function()
{
	if(x != null)
		lButtonUpFunction();
}

map.addlButtonUpEvent = function(fun)
{
	lButtonUpFlag = true;
	lButtonUpFunction = fun;
}

function lButtonUpLink()
{
	displayCode(strLButtonUp);
}

function runLButtonUp()
{
	displayCode(strLButtonUp);
	//window.execScript(strLButtonUp);
	runCodeEventOpr(strLButtonUp);
}









//鼠标左键双击
var x, y;
var strLButtonDblClick;
strLButtonDblClick = "map.addlButtonDblClickEvent(displayInfo);" + "\n";
strLButtonDblClick += "" + "\n";
strLButtonDblClick += "function displayInfo()" + "\n";
strLButtonDblClick += "{" + "\n";
strLButtonDblClick += "	displayEventInfo('鼠标左键双击事件: ' + '<br/>逻辑坐标X: ' + x + '<br/>逻辑坐标Y: ' + y);" + "\n";
strLButtonDblClick += "}" + "\n";

function setlButtonDblClickValue(x, y)
{
	this.x = x;
	this.y = y;
	
	map.addlButtonDblClickEvent2();
}

map.addlButtonDblClickEvent2 = function()
{
	if(x != null)
		lButtonDblClickFunction();
}

map.addlButtonDblClickEvent = function(fun)
{
	lButtonDblClickFlag = true;
	lButtonDblClickFunction = fun;
}

function lButtonDblClickLink()
{
	displayCode(strLButtonDblClick);
}

function runlButtonDblClick()
{
	displayCode(strLButtonDblClick);
	//window.execScript(strLButtonDblClick);
	runCodeEventOpr(strLButtonDblClick);
}








//键盘按下
var keyCode;
var strKeyPressed;
strKeyPressed = "map.addKeyPressedEvent(displayInfo);" + "\n";
strKeyPressed += "" + "\n";
strKeyPressed += "function displayInfo()" + "\n";
strKeyPressed += "{" + "\n";
strKeyPressed += "	displayEventInfo('键盘按下事件: ' + '<br/>键值: ' + keyCode);" + "\n";
strKeyPressed += "}" + "\n";

function setKeyPressedValue(keyCode)
{
	this.x = x;
	this.y = y;
	
	map.addKeyPressedEvent2();
}

map.addKeyPressedEvent2 = function()
{
	if(x != null)
		keyPressedFunction();
}

map.addKeyPressedEvent = function(fun)
{
	keyPressedFlag = true;
	keyPressedFunction = fun;
}

function keyPressedLink()
{
	displayCode(strKeyPressed);
}

function runKeyPressed()
{
	displayCode(strKeyPressed);
	//window.execScript(strKeyPressed);
	runCodeEventOpr(strKeyPressed);
}








//鼠标右键按下
var x, y;
var strRButtonDown;
strRButtonDown = "map.addrButtonDownEvent(displayInfo);" + "\n";
strRButtonDown += "" + "\n";
strRButtonDown += "function displayInfo()" + "\n";
strRButtonDown += "{" + "\n";
strRButtonDown += "	displayEventInfo('鼠标右键按下事件: ' + '<br/>逻辑坐标X: ' + x + '<br/>逻辑坐标Y: ' + y);" + "\n";
strRButtonDown += "}" + "\n";

function setrButtonDownValue(x, y)
{
	this.x = x;
	this.y = y;
	
	map.addrButtonDownEvent2();
}

map.addrButtonDownEvent2 = function()
{
	if(x != null)
		rButtonDownFunction();
}

map.addrButtonDownEvent = function(fun)
{
	rButtonDownFlag = true;
	rButtonDownFunction = fun;
}

function rButtonDownLink()
{
	displayCode(strRButtonDown);
}

function runrButtonDown()
{
	displayCode(strRButtonDown);
	//window.execScript(strRButtonDown);
	runCodeEventOpr(strRButtonDown);
}








//鼠标右键双击
var x, y;
var strRButtonDblClick;
strRButtonDblClick = "map.addrButtonDblClickEvent(displayInfo);" + "\n";
strRButtonDblClick += "" + "\n";
strRButtonDblClick += "function displayInfo()" + "\n";
strRButtonDblClick += "{" + "\n";
strRButtonDblClick += "	displayEventInfo('鼠标右键双击事件: ' + '<br/>逻辑坐标X: ' + x + '<br/>逻辑坐标Y: ' + y);" + "\n";
strRButtonDblClick += "}" + "\n";

function setrButtonDblClickValue(x, y)
{
	this.x = x;
	this.y = y;
	
	map.addrButtonDblClickEvent2();
}

map.addrButtonDblClickEvent2 = function()
{
	if(x != null)
		rButtonDblClickFunction();
}

map.addrButtonDblClickEvent = function(fun)
{
	rButtonDblClickFlag = true;
	rButtonDblClickFunction = fun;
}

function rButtonDblClickLink()
{
	displayCode(strRButtonDblClick);
}

function runrButtonDblClick()
{
	displayCode(strRButtonDblClick);
	//window.execScript(strRButtonDblClick);
	runCodeEventOpr(strRButtonDblClick);
}








//鼠标右键弹起
var x, y;
var strRButtonUp;
strRButtonUp = "map.addrButtonUpEvent(displayInfo);" + "\n";
strRButtonUp += "" + "\n";
strRButtonUp += "function displayInfo()" + "\n";
strRButtonUp += "{" + "\n";
strRButtonUp += "	displayEventInfo('鼠标右键弹起事件: ' + '<br/>逻辑坐标X: ' + x + '<br/>逻辑坐标Y: ' + y);" + "\n";
strRButtonUp += "}" + "\n";

function setrButtonUpValue(x, y)
{
	this.x = x;
	this.y = y;
	
	map.addrButtonUpEvent2();
}

map.addrButtonUpEvent2 = function()
{
	if(x != null)
		rButtonUpFunction();
}

map.addrButtonUpEvent = function(fun)
{
	rButtonUpFlag = true;
	rButtonUpFunction = fun;
}

function rButtonUpLink()
{
	displayCode(strRButtonUp);
}

function runrButtonUp()
{
	displayCode(strRButtonUp);
	//window.execScript(strRButtonUp);
	runCodeEventOpr(strRButtonUp);
}







//实体被选中
var strSelObj;
strSelObj = "oMapViewer.setCurrentTool(4);"; + "\n";
strSelObj += "" + "\n";
strSelObj += "map.addSelObjEvent(displayInfo); //添加实体被选中事件" + "\n";
strSelObj += "" + "\n";
strSelObj += "function displayInfo()" + "\n";
strSelObj += "{" + "\n";
strSelObj += "	alert('实体被选中事件: ' + ' 图层名: ' + layerName + ' 实体id: ' + objId);" + "\n";
strSelObj += "}" + "\n";
var layerName, objId;
var selObjFunction;

function setSelObjValue(layerName, objId)
{
	this.layerName = layerName;
	this.objId = objId;
	
	map.addSelObjEvent2();
}

map.addSelObjEvent2 = function()
{
	if(layerName != null)
		selObjFunction();
}

map.addSelObjEvent = function(fun)
{
	selObjFlag = true;
	selObjFunction = fun;
}

function selObjLink()
{
	displayCode(strSelObj);
}

function runSelObj()
{
	displayCode(strSelObj);
	//window.execScript(strSelObj);
	runCodeEventOpr(strSelObj);
}









//窗体缩放
var llx, lly, urx, ury;
var zoomWindowFunction;
var strZoomWindow = "map.addZoomWindowEvent(displayInfo); //缩放浏览器时发生" + "\n";
strZoomWindow += "" + "\n";
strZoomWindow += "function displayInfo()" + "\n";
strZoomWindow += "{" + "\n";
strZoomWindow += "	displayEventInfo('地图窗口缩放事件: ' + '<br/>左下角X: ' + llx + '<br/>左下角Y: ' + lly + '<br/>右上角X' + urx + '<br/>右上角Y: ' + ury);" + "\n";
strZoomWindow += "}" + "\n";

function setZoomWindowValue(llx, lly, urx, ury)
{
	this.llx = llx;
	this.lly = lly;
	this.urx = urx;
	this.ury = ury;
	
	map.addZoomWindowEvent2();
}

map.addZoomWindowEvent2 = function()
{
	if(llx != null)
		zoomWindowFunction();
}

map.addZoomWindowEvent = function(fun)
{
	zoomWindowFlag = true;
	zoomWindowFunction = fun;
}

function zoomWindowLink()
{
	displayCode(strZoomWindow);
}

function runZoomWindow()
{
	displayCode(strZoomWindow);
	//window.execScript(strZoomWindow);
	runCodeEventOpr(strZoomWindow);
}







//暂不实现
//实体被拖动
var strMoveObject = "map.addMoveObjectEvent();";
map.addMoveObjectEvent = function()
{
	moveObjectFlag = true;
}

function moveObjectLink()
{
	displayCode(strMoveObject);
}

function runMoveObject()
{
	displayCode(strMoveObject);
	//window.execScript(strMoveObject);
	runCodeEventOpr(strMoveObject);
}








//得到实体,tip实体信息
var strGetObject = "map.addPopObjectInfoEvent();";
map.addPopObjectInfoEvent = function()
{
	tipObjectInfoFlag = true;
}

function getObjectLink()
{
	displayCode(strGetObject);
}

function runGetObject()
{
	displayCode(strGetObject);
	//window.execScript(strGetObject);
	runCodeEventOpr(strGetObject);
}

//
function displayCode(strCode)
{
	document.getElementById("code").innerHTML = "";
	document.getElementById("code").value = strCode;
}

function runCodeEventOpr(info)
{
	commonView();
	window.execScript(info);
}

function displayEventInfo(info)
{
	document.getElementById("info").innerHTML = info;
}