//grid global startup js
function qrygridstartup()
{
}

function qrygridprompt(p, e)
{
	var r = prompt(p);
	if (r)
	{
		e = e.replace(/_promptvalue_/i, r);
		eval(e);
	}
}

function qrygridpromptvalue(p, e, v)
{
	var r = prompt(p, v);
	if (r)
	{
		e = e.replace(/_promptvalue_/i, r);
		eval(e);
	}
}

function SaveButtonBusy(e)
{
	e.value = "<img src='img/working.gif' />" + e.value;
}

	function toggle_div(el1name, el2name, showDiv, hideDiv) 
	{	
		var el1 = ''; 
		var el2 = ''; 
		if (el1name.indexOf(',') > 0)	
			el1 = window.document.getElementById (el1name.substring(0,el1name.indexOf(','))); 
		else	
			el1 = window.document.getElementById (el1name);
		if (el1.className == showDiv) 
		{ 
			while (el1name.indexOf(',') > 0) 
			{
				window.document.getElementById((el1name.substring(0,el1name.indexOf(',')))).className = hideDiv;	
				el1name = el1name.substring(el1name.indexOf(',') + 1);
			}	
			while (el2name.indexOf(',') > 0)	
			{	
				window.document.getElementById((el2name.substring(0,el2name.indexOf(',')))).className = showDiv; 
				el2name = el2name.substring(el2name.indexOf(',') + 1);	
			}
		}
		else
		{ 
			while (el2name.indexOf(',') > 0)	
			{	
				window.document.getElementById((el2name.substring(0,el2name.indexOf(',')))).className = hideDiv;	
				el2name = el2name.substring(el2name.indexOf(',') + 1);
			}	
			while (el1name.indexOf(',') > 0)
			{	
				window.document.getElementById((el1name.substring(0,el1name.indexOf(',')))).className = showDiv;
				el1name = el1name.substring(el1name.indexOf(',') + 1);
			}
		}
	}
	
	function toggle_div_single (id, showDiv, hideDiv)
	{
		var el1 = id.substring(0, id.indexOf(','));
		if (document.getElementById (el1).className == showDiv)
			document.getElementById (el1).className = hideDiv;
		else
			document.getElementById (el1).className = showDiv;
	}

	function div_toggle (id)
	{
		if (document.getElementById (id).className == "opendiv")
			document.getElementById (id).className = "closeddiv";
		else
			document.getElementById (id).className = "opendiv";
	}

//excel export stuff
function dumpTableToExcel (id, opt)
{
	var el = document.getElementById(id);
	if (!el)
		return;
	var tbltext = el.innerHTML;
	var oldtarg = document.forms[0].target;
	var oldact = document.forms[0].action;
	var sopt = opt.split ("&");
	var i;
	for (i = 0; i < sopt.length; i++)
	{
		var soptitem = sopt[i].split("=");
		var optionname = soptitem[0].toLowerCase();
		if (optionname == "filename")
		{
			if (!document.getElementById("__dump_table_to_excel_filename"))
			{
				currentElement = document.createElement("input");
				currentElement.setAttribute("type", "hidden");
				currentElement.setAttribute("name", "__dump_table_to_excel_filename");
				currentElement.setAttribute("id", "__dump_table_to_excel_filename");
				document.forms[0].appendChild(currentElement);
			}
			document.getElementById("__dump_table_to_excel_filename").value = soptitem[1];
		}
	}
	if (!document.getElementById("__dump_table_to_excel"))
	{
		currentElement = document.createElement("input");
		currentElement.setAttribute("type", "hidden");
		currentElement.setAttribute("name", "__dump_table_to_excel");
		currentElement.setAttribute("id", "__dump_table_to_excel");
		document.forms[0].appendChild(currentElement);
	}
	if (!document.getElementById("__dump_table_to_excel"))
		return;	//bad news
	document.getElementById("__dump_table_to_excel").value = tbltext;
	document.forms[0].target = "_new";
	document.forms[0].action = "dumptabletoexcel.aspx";
	__doPostBack("","");
	
	document.forms[0].__EVENTTARGET.value = "";
	document.forms[0].__EVENTARGUMENT.value = "";
	document.forms[0].target = oldtarg;
	document.forms[0].action = oldact;
	var nel = document.getElementById("__dump_table_to_excel");
	nel.parentNode.removeChild(nel);
}

function setSelectionRange(input, selectionStart, selectionEnd) {
  if (input.setSelectionRange) {
    input.focus();
    input.setSelectionRange(selectionStart, selectionEnd);
  }
  else if (input.createTextRange) {
    var range = input.createTextRange();
    range.collapse(true);
    range.moveEnd('character', selectionEnd);
    range.moveStart('character', selectionStart);
    range.select();
  }
}

function replaceSelection (input, replaceString) {
	if (input.setSelectionRange) {
		var selectionStart = input.selectionStart;
		var selectionEnd = input.selectionEnd;
		input.value = input.value.substring(0, selectionStart)+ replaceString + input.value.substring(selectionEnd);
    
		if (selectionStart != selectionEnd){ 
			setSelectionRange(input, selectionStart, selectionStart + 	replaceString.length);
		}else{
			setSelectionRange(input, selectionStart + replaceString.length, selectionStart + replaceString.length);
		}

	}else if (document.selection) {
		var range = document.selection.createRange();

		if (range.parentElement() == input) {
			var isCollapsed = range.text == '';
			range.text = replaceString;

			 if (!isCollapsed)  {
				range.moveStart('character', -replaceString.length);
				range.select();
			}
		}
	}
}


// We are going to catch the TAB key so that we can use it, Hooray!
function catchTab(item,e){
	if(navigator.userAgent.match("Gecko")){
		c=e.which;
	}else{
		c=e.keyCode;
	}
	if(c==9){
		replaceSelection(item,String.fromCharCode(9));
		setTimeout("document.getElementById('"+item.id+"').focus();",0);	
		return false;
	}
		    
}

function tb_keypress_filter_numericonly()
{
	var e = event || evt;
	var charCode = e.which || e.keyCode;

	if (charCode > 31 && (charCode < 48 || charCode > 57))
		return false;

	return true;
}

//CPMS Ajax TableEdit object
function AjaxTxTableEdit()
{
	this.u = "TableEdit.aspx";
	this.tableName = "";
	this.keys = "";
	this.values = "";
	this.sql = "";
	this.unescape = "";
	this.rowsAffected = -1;
	this.error = false;
	this.errorMessage = "";
	this.returnCode = null;
}

AjaxTxTableEdit.prototype.update = function (req)
{
	var s = "" + req.responseText;
	if (s.length < 1)
	{
		this.error = true;
		this.errorMessage = "No value returned from AJAX update.";
	}
	else
	{
		var rv = s.split("&");
		this.returnCode = parseInt (rv[0]);
		//alert(rv.length);
		if (this.returnCode != 1)
		{
			this.error = true;
			this.errorMessage = "Unspecified error.";
		}
		var i=0;
		for (i=0; i<rv.length; i++)
		{
			var v = rv[i].split("=");
			if (v[0] == "rowsaffected")
				this.rowsAffected = parseInt (v[1]);
			else if (v[0] == "error")
				this.errorMessage = v[1];
			else
			{
				//do something with junk
			}
		}
	}
}

AjaxTxTableEdit.prototype.save = function ()
{
	var postBody = "z=0";
	if (this.tableName.length > 0)
	{
		postBody += "&inpTableName=" + this.tableName;
		postBody += "&inpKeys=" + escape (this.keys);
	}
	else
		postBody += "&inpSql=" + this.sql;
	postBody += "&inpUnescape=" + this.unescape;
	postBody += "&inpValues=" + escape (this.values);
	var tx = new Ajax.Request (this.u, {asynchronous: false, method: 'post', postBody: postBody, onComplete: this.update.bind(this)});
}

function galtips ()
{
	//new Tip ('recentgalimg1', 'a tip');
	/*
	new Tip('recentgalimg1', {
	  title : 'Ajax tooltip',
	  ajax: {
	    url: 'tt/ttgal.aspx',
      },
	  className: 'pinktip',
	  hook: { target: 'bottomMiddle', tip: 'topRight' },
	  offset: { x: 0, y: 5 }
	});
*/
}



//CPMS Ajax TableEdit object
function AjaxTxTableEdit()
{
	this.u = "TableEdit.aspx";
	this.tableName = "";
	this.keys = "";
	this.values = "";
	this.sql = "";
	this.unescape = "";
	this.rowsAffected = -1;
	this.error = false;
	this.errorMessage = "";
	this.returnCode = null;
}

AjaxTxTableEdit.prototype.update = function (req)
{
	var s = "" + req.responseText;
	if (s.length < 1)
	{
		this.error = true;
		this.errorMessage = "No value returned from AJAX update.";
	}
	else
	{
		var rv = s.split("&");
		this.returnCode = parseInt (rv[0]);
		//alert(rv.length);
		if (this.returnCode != 1)
		{
			this.error = true;
			this.errorMessage = "Unspecified error.";
		}
		var i=0;
		for (i=0; i<rv.length; i++)
		{
			var v = rv[i].split("=");
			if (v[0] == "rowsaffected")
				this.rowsAffected = parseInt (v[1]);
			else if (v[0] == "error")
				this.errorMessage = v[1];
			else
			{
				//do something with junk
			}
		}
	}
}

AjaxTxTableEdit.prototype.save = function ()
{
	var postBody = "z=0";
	if (this.tableName.length > 0)
	{
		postBody += "&inpTableName=" + this.tableName;
		postBody += "&inpKeys=" + escape (this.keys);
	}
	else
		postBody += "&inpSql=" + this.sql;
	postBody += "&inpUnescape=" + this.unescape;
	postBody += "&inpValues=" + escape (this.values);
	var tx = new Ajax.Request (this.u, {asynchronous: false, method: 'post', postBody: postBody, onComplete: this.update.bind(this)});
}
