


function TriggerPanel(rdbAdmin,tablePanel)
{
	this.tablePanel = tablePanel;
	this.rdbAdmin = rdbAdmin;

	this.init_handlers = function()
	{
		var $this = this;
		function alterTriggerName() {
			var tbl = this.tablePanel.tablename;
			var timing = $('#triggerTiming').val();
			var event = $('#triggerEvent').val();
			var trn = $('#triggerName').val();
			var s = new RegExp("^"+tbl + "_[ba][iud]$");
			if (s.test(trn)) {
				$('#triggerName').val( tbl+'_'+timing.charAt(0).toLowerCase()+event.charAt(0).toLowerCase() );
			}
		}
		$("#triggerSave").click(function() {
			$this.createTrigger($('#triggerStatement').val());
		});
		$("#addTrigger").click(function(){ $this.show(); });
		$('#triggerTiming').change(alterTriggerName);
		$('#triggerEvent').change(alterTriggerName);
	};
	
	this.show = function()
	{
		this.rdbAdmin.resetMessages(); 
		if (!this.rdbAdmin.isLoggedIn())
		{
			alert('please login');
			return false;
		}
		this.rdbAdmin.showPanel("create-trigger-panel");
		this.rdbAdmin.setHeading("Create trigger: " + this.tablePanel.tablename);
		$('#triggerName').val(this.tablePanel.tablename+"_bi");
		$('#triggerStatement').val("CREATE TRIGGER "+this.tablePanel.tablename+"_bi "+
				$('#triggerTiming').val()+" "+$('#triggerEvent').val()+" ON "+
				 this.tablePanel.tablename);
		return true;
	};
	
	this.createTrigger = function(q)
	{
		var res = this.rdbAdmin.sqlEngine.createTrigger(q);
		if (res.status[0] === 'error')
		{
			//var s = / /g;
			//res.error[1] = res.error[1].replace(s, "&nbsp;");
			//var s = /\n/g;
			//res.error[1] = res.error[1].replace(s, "<br />");
			this.rdbAdmin.showErrorMessage( '<pre>'+res.error[1]+'</pre>');
		} else {
			this.rdbAdmin.showWorkingMessage(res.status[0]);
		}
	};
	
}