function getElem(elemID)
{ return (document.getElementById) ? document.getElementById(elemID) : 
						((document.all) ? document.all[elemID] : null);
}

function setFocus(elemID) {
	var elem = getElem(elemID);
	try {elem.focus();}
	catch(e) {}
}

function ValidatePrice2(source, args) {return ValidatePrice(source, args, 2);}

function ValidatePrice4(source, args) {return ValidatePrice(source, args, 4);}

function ValidatePrice0(source, args) {
  var num, cleanInput, m, exp;
  var val = source;
  var op = args.Value;
  var groupchar = ",";
  var decimalchar = ".";
  var digits = 2;
  exp = new RegExp("^\\s*([-\\+])?(((\\d+)\\" + groupchar + ")*)(\\d+)"
                  + ((digits > 0) ? "(\\" + decimalchar + "(\\d{1," + digits + "}))?" : "")
                  + "\\s*$");
  m = op.match(exp);
  if (m == null)
      return null;
  var intermed = m[2] + m[5] ;
  cleanInput = m[1] + intermed.replace(new RegExp("(\\" + groupchar + ")", "g"), "") + ((digits > 0) ? "." + m[7] : 0);
  num = parseFloat(cleanInput);
  return (isNaN(num) ? null : num);            
}

function ValidatePrice(source, args, decDigits) {
    var str = args.Value;
    if (str.substr(0,1) == "$") str = str.substr(1);
    var k = str.indexOf(".");
    var l = str.length; //before str altered
    if (k == -1) {
			str = str.replace(/,/g, "");
			l = 0;
	  } else {
			var str1 = str.substr(0, k);
			str1 = str1.replace(/,/g, "");
			str = str1 + str.substr(k);
			l = l - k - 1;
    } 
    var dec = parseFloat(str);
    args.IsValid = (str == dec);
		if (args.IsValid) {
      if (l > decDigits) {
        str = "have no more than " + decDigits + " decimal digits";
        args.IsValid = false;
      } else {
				if (dec < 0) {
					str = "be >= 0";
					args.IsValid = false;
				}
      }
    } else {
      str = "be currency or blank";
      args.IsValid = false;
    }
    if (!args.IsValid) {
			var cap; 
			k = source.errormessage.indexOf(" should ");
			if (k == -1) {
				cap = source.errormessage + " should ";
			} else {
				cap = source.errormessage.substr(0, k+8);
			}
			source.errormessage = cap + str;
		}
}

function winCenter(wWidth, wHeight) {
	if (window.opener == null) {
	//var winEx = getElem("winExist");
	//if winEx.value != "" {
		winEx="";
		var wLeft = (window.screen.availWidth - wWidth)/2; 
		var wTop = (window.screen.availHeight - wHeight)/2; 
		window.moveTo(wLeft, wTop);
		window.resizeTo(wWidth, wHeight);
	}
}

function winOpen(winUrl, winName) {
	window.open(winUrl, winName);
}

function ClearText(id) {document.getElementById(id).value = '';}

function ClearLabel(id) {document.getElementById(id).innerHTML = '';}

function btnClick(btnID) {
	var evt = event; //???
	if (evt.keyCode == 13) {
		evt.returnValue = false;
		evt.cancel = true;
		getElem(btnID).click();
	} 
}

function addThead(dgID) {
	var dg = document.all(dgID);
	if (dg != null) 
		dg.outerHTML = dg.outerHTML
			.replace(/<TBODY>/i, "") 
			.replace(/<TR/i, "<THEAD style='display:table-header-group'><TR") 
			.replace(/<\/TR>/i, "</TR></THEAD><TBODY>"); 
}
