﻿function SmiHelpBtn(map)
{
	var _panel = null;
	var _oMap = map;
	var _dialog = null;
	
	this.Initialize=function()
	{
		_panel = document.createElement("a");
		_panel.id =  _oMap.VeMap.ID + "_SmiHelpBtn";
		_panel.className = "SmiHelpBtn";
		_panel.unselectable="on";
		_panel.style.left = "8px";
		_panel.style.top = "206px";
		_panel.href = "javascript://";
		_panel.title = "Next Vehicle Arrival Web Portal Instructions";
		_panel.attachEvent("onclick", _onClick)
		
		_oMap.VeMap.AddControl(_panel)
	}
	
	function _onClick() {
		if(_dialog == null) {
			_dialog = new SmiHelpDialog(_oMap);
			_dialog.Initialize();
		}
		if(!_dialog.IsVisible()) {
			_dialog.ShowByContentUrl("Next Vehicle Arrival Web Portal Instructions", "Dialogs/Help.aspx");
		} else {
			_dialog.Hide();
		}
	}
	
	
	this.Dispose=function(){
		try {
			_panel.detachEvent("onclick", _onClick)
			_dialog.Dispose();

			_panel = null;
			_oMap = null;
			_dialog = null;
		} catch(g){}
	}	
}

function SmiHelpDialog(map)
{
	var _panel = null;
	var _oMap = map;
	
	var _elmClose = null;
	var _elmHeader = null;
	var _elmBody = null;
	
	this.Initialize=function()
	{
		_panel = document.createElement("div");
		_panel.id =  _oMap.VeMap.ID + "_SmiHelpDialog";
		_panel.className = "SmiHelpDialog";
		_panel.unselectable="on";

		_elmClose = document.createElement("a");
		_elmClose.href="javascript://";
		_elmClose.className = "Close";
		_elmClose.innerHTML = "X";
		_elmClose.attachEvent("onclick", _closeClick)
		
		_elmHeader = document.createElement("h2");
		_elmHeader.innerHTML = "Title";
		
		_elmBody = document.createElement("iframe");
		_elmBody.frameBorder="0";
		_elmBody.marginHeight="5"; 
		_elmBody.marginWidth="5";
		_elmBody.src="about:blank";
		
		_panel.appendChild(_elmClose);
		_panel.appendChild(_elmHeader);
		_panel.appendChild(_elmBody);
		
		document.body.appendChild(_panel)
		
		_oMap.VeMap.AttachEvent("onresize", _onMapResize);
		_elmBody.CloseDialog = function() {
			_Hide();
		}
		
		_onMapResize();
		_Hide();
	}
	
	function _closeClick() {
		_Hide();
	}
	
	function _Hide() {
		_panel.style.display = "none";
	}

	function _ShowByContentUrl(title, url) {
		_panel.style.display = "block";
		_elmHeader.innerHTML = title;
		_elmBody.src=url;
	}
	
	this.IsVisible = function() {
		return (_panel.style.display != "none");
	}
	
	function _onMapResize() {
		_panel.style.left = Math.ceil(_oMap.VeMap.GetLeft() + _oMap.VeMap.GetWidth() / 2 - _panel.offsetWidth / 2) + "px";
		_panel.style.top = Math.ceil(_oMap.VeMap.GetTop() + _oMap.VeMap.GetHeight() / 2 - _panel.offsetHeight / 2) + "px";
	}
	
	this.Dispose=function(){
		try {
			_elmBody.CloseDialog = null;
			_elmClose.detachEvent("onclick", _closeClick)
			_oMap.VeMap.DetachEvent("onresize", _onMapResize);
			document.body.removeChild(_panel);
			_panel = null;
			_oMap = null;

			_elmClose = null;
			_elmHeader = null;
			_elmBody = null;
		} catch(g){}
	}	
	
	this.Hide = _Hide;
	this.ShowByContentUrl = _ShowByContentUrl;
	
}

function SmiLegendBtn(map)
{
	var _panel = null;
	var _oMap = map;
	var _dialog = null;
	
	this.Initialize=function()
	{
		_panel = document.createElement("a");
		_panel.id =  _oMap.VeMap.ID + "_SmiLegendBtn";
		_panel.className = "SmiLegendBtn";
		_panel.unselectable="on";
		_panel.style.top = "8px";
		_panel.href = "javascript://";
		_panel.title = "Legend";
		_panel.attachEvent("onclick", _onClick)
		_panel.innerHTML = "Legend";
		
		_oMap.VeMap.AddControl(_panel)

		_oMap.AttachEvent("onresize", _onMapResize);
		
		_onMapResize();
	}
	
	function _onMapResize() {
		_panel.style.left = (_oMap.VeMap.GetWidth() + _oMap.VeMap.GetLeft() - 75) + "px";
	}
		
	function _onClick() {
		if(_dialog == null) {
			_dialog = new SmiHelpDialog(_oMap);
			_dialog.Initialize();
		}
		if(!_dialog.IsVisible()) {
			_dialog.ShowByContentUrl("Legend", "Dialogs/Legend.aspx?" + gRouteManager.GetRoutesQueryString());
		} else {
			_dialog.Hide();
		}
	}
	
	
	this.Dispose=function(){
		try {
			_panel.detachEvent("onclick", _onClick)
			_dialog.Dispose();

			_panel = null;
			_oMap = null;
			_dialog = null;
		} catch(g){}
	}	
}