function gebi(id){return document.getElementById (id);}
function isIE(){var a = (document.all)?true:false;return a;}
function preventDefault(event){if(isIE())return false;event.preventDefault();}
function soNumeros(arr,ex){for(i=0;i<arr.length;i++){if(isIE()){gebi(arr[i]).attachEvent("onkeydown",function(event){return sn(event,ex)});  }else{gebi(arr[i]).addEventListener("keydown",function(event){return sn(event,ex)},false);}}function sn(event,ex){var e = event.keyCode; 
//if(isIE()) event.srcElement.value=event.srcElement.value.replace(/\D/g,""); else event.target.value=event.target.value.replace(/\D/g,"");
if((e>47&&e<58)&&event.shiftKey)return preventDefault(event);  if(e==9||e==8||e==46||(e>36&&e<41)||(e>95&e<106)||(e>47&&e<58)||event.ctrlKey) return;return preventDefault(event);}} 
var div = document.createElement('sup');
with(div.style){
	color = "#ff0000";
	fontSize = "14px";
}
function tapaSelectDiv(){
	var e = document.createElement("div");
	e.init = function(){
		var c = document.createElement("iframe");
		c.frameBorder=0;c.width = "100%"; c.heigth="100%";
		this.style.overflow="hidden";
		this.appendChild(c);
		this.oldAppendChild = this.appendChild;
		this.appendChild = function(elm){
			this.style.position = elm.style.position;
			this.style.width = elm.style.width;
			this.style.height = elm.style.height;
			this.style.top = elm.style.top;
			this.style.left = elm.style.left;
			elm.style.top = elm.style.left = "0px";
			this.oldAppendChild(elm);
		}
	}
	e.init();
	return e;
}
function debug(vdb){
	var a= window.open("","","width=auto,height=auto");
	a.document.write(vdb);
	a.document.close();
}
function _reset($arr){
	for(var i = 0;i<$arr.length;i++){
		if($el[i].type!="button" && $el[i].type!="radio" && $el[i].type!="submit" && $el[i].tagName!="select")
			$el[i].value = "";
	}
}
function mtParam($arr){ //monta parametros para serem passados pro ajax
	var $strParam = "";
	for(var i = 0;i<$arr.length;i++){
		if($arr[i].type!="radio"){
			$strParam+=$arr[i].name+"="+escape($arr[i].value)+"&";	
		}else{
			if($arr[i].checked==true){
				$strParam+=$arr[i].name+"="+escape($arr[i].value)+"&";	
			}
		}
	}
	return $strParam;
}
function initElms(){
		for(var i = 0; i<document.form1.elements.length;i++){
			
				eval("$"+document.form1.elements[i].id+"=document.getElementById('"+document.form1.elements[i].id+"')");
				$el.push(document.form1.elements[i]);
			
		}
		
}
function meteDiv(elm,texto){
	if(arguments[2])
		div.style.display="block";
	else
		div.style.display="inline";
	elm.parentNode.appendChild(div);
	div.innerHTML = texto;
	elm.focus();
}
function cadShow(b,men){
	var bol=false;
	if(arguments[2]) bol = true;
	if(b){
		gebi("Layer2").style.visibility="visible";
		setTimeout("cadHide("+bol+")",4000);
	}
	else{
		gebi("Layer2").style.visibility="hidden";
	}
	gebi("displayMen").innerHTML = men;
}
function cadHide(bol){
	if(!bol) cadShow(false,"");
}

function isNS()
{
  return (navigator.appName.indexOf("Netscape") != -1);
}

function iszeros(value)
{
  if (isnull(value))
  {
    return true;
  }

  var num = strtofloat(strtodigits(value, strlen(value.toString()), false));

  return ((num == 0) || isNaN(num));
}

function isnull(data)
{
  if ((data == null) || (data == "undefined"))
  {
    return true;
  }
  else
  {
    if ((typeof(data) == "string"))
    {
      return (strlen(strlrtrim(data)) == 0);
    }
    else
    {
      return false;
    }
  }
}

function isletter(ch)
{
  return (((ch >= "A") && (ch <= "Z")) || ((ch >= "a") && (ch <= "z")));
}

function isdigit(ch)
{
  return ((ch >= "0") && (ch <= "9"));
}

function isletterordigit(ch)
{
  return isletter(ch) || isdigit(ch);
}

function getcnpjmask(type)
{
  if ((type=="F") || (type=="P"))
  {
    return "900%.%000%.%000%-%09";
  }

  if (type=="J")
  {
    return "90%.%000%.%000%/%0000%-%09";
  }

  return "";
}

function iscpforcnpj(type, text)
{
  if ((type == "F") || (type == "P"))
  {
    return iscpf(text);
  }

  if (type == "J")
  {
    return iscnpj(text);
  }

  return false;
}

function iscpf(text)
{
  var temp = strtodigits(text, 11, true);
  var dig1 = 0;
  var dig2 = 0;
  var befstr = "";
  var aftstr = "";

  if (isnull(temp) || (strlen(temp) != 11))
  {
    return false;
  }
  else
  {
    dig1 = 0;
    dig2 = 0;
    befstr = strcpy(temp, 0, 9);
    aftstr = strcpy(temp, 9, 2);

    for (var i = 0; i < 9; i++)
    {
      dig2 += (strtofloat(befstr.charAt(i)) * (10 - i));
    }

    dig1 = 11 - (dig2 % 11);

    if (dig1 > 9)
    {
      dig1 = 0;
    }

    if (aftstr.charAt(0) != dig1)
    {
      return false;
    }

    dig2 = dig1 * 2;

    for (var i = 0; i < 9; i++)
    {
      dig2 += (strtofloat(befstr.charAt(i)) * (11 - i));
    }

    dig1 = 11 - (dig2 % 11);

    if (dig1 > 9)
    {
      dig1 = 0;
    }

    if (aftstr.charAt(1) != dig1)
    {
      return false;
    }

    return true;
  }
}

function iscnpj(text)
{
  var temp = strtodigits(text, 14, true);
  var dig1 = 0;
  var dig2 = 0;
  var mult = 0;
  var befstr = "";
  var aftstr = "";

  if (isnull(temp) || (strlen(temp) != 14))
  {
    return false;
  }
  else
  {
    dig1 = 0;
    dig2 = 0;
    mult = 5;
    befstr = strcpy(temp, 0, 12);
    aftstr = strcpy(temp, 12, 2);

    for (var i = 0; i < 12; i++)
    {
      dig2 += befstr.charAt(i) * mult;
      mult--;

      if (mult < 2)
      {
        mult = 9;
      }
    }

    dig1 = 11 - (dig2 % 11);

    if (dig1 > 9)
    {
      dig1 = 0;
    }

    if (aftstr.charAt(0) != dig1)
    {
      return false;
    }

    mult = 6;
    dig2 = 0;

    for (var i = 0; i < 12; i++)
    {
      dig2 += befstr.charAt(i) * mult;
      mult--;

      if (mult < 2)
      {
        mult = 9;
      }
    }

    dig2 += (2 * dig1);
    dig1 = 11 - (dig2 % 11);

    if (dig1 > 9)
    {
      dig1 = 0;
    }

    if (aftstr.charAt(1) != dig1)
    {
      return false;
    }

    return true;
  }
}

function isleapyear(year)
{
  return (((year % 4) == 0) && (((year % 100) != 0) || ((year % 400) == 0)));
}

function lastday(month, year)
{
  var result = "";

  if ((month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 10) || (month == 12))
  {
    result = 31;
  }
  else
  {
    if ((month == 4)  || (month == 6) || (month == 9) || (month == 11))
    {
      result = 30;
    }
    else
    {
      if (month == 2)
      {
        result = (isleapyear(year) ? 29 : 28);
      }
      else
      {
        result = -1;
      }
    }
  }

  return result;
}

function datefmt(text)
{
  if (isnull(text))
  {
    return "";
  }

  var temp = text.split("/");

  if (temp.length != 3)
  {
    return "";
  }

  if (!isinteger(temp[0]) || !isinteger(temp[1]) || !isinteger(temp[2]))
  {
    return "";
  }

  temp[0] = strtofloat(strtodigits(temp[0], 2, true));
  temp[1] = strtofloat(strtodigits(temp[1], 2, true));
  temp[2] = strlrtrim(floattostr(strtofloat(temp[2]), 4, 0));

  if (strlen(temp[2]) <= 2)
  {
    if (temp[2] < 51)
    {
      temp[2] = strtofloat('20' + strtodigits(temp[2], 2, true));
    }
    else
    {
      temp[2] = strtofloat('19' + strtodigits(temp[2], 2, true));
    }
  }

  if (isNaN(temp[0]) || isNaN(temp[1]) || isNaN(temp[2]))
  {
    return "";
  }

  if (!((temp[0] >= 1) && (temp[0] <= lastday(temp[1], temp[2]))))
  {
    return "";
  }

  temp[0] = strtodigits(floattostr(temp[0], 2, 0), 2, true);
  temp[1] = strtodigits(floattostr(temp[1], 2, 0), 2, true);
  temp[2] = strtodigits(floattostr(temp[2], 4, 0), 4, true);

  return strfmt("%s/%s/%s", temp);
}

function datecomp(text1, text2)
{
  if (!isdate(text1) || !isdate(text2))
  {
    return 0;
  }

  var value1 = strtofloat(strcpy(text1, 6, 4) + strcpy(text1, 3, 2) + strcpy(text1, 0, 2));
  var value2 = strtofloat(strcpy(text2, 6, 4) + strcpy(text2, 3, 2) + strcpy(text2, 0, 2));

  if (value1 < value2)
  {
    return -1;
  }

  if (value1 == value2)
  {
    return 0;
  }

  if (value1 > value2)
  {
    return 1;
  }
}

function isdate(text)
{
  return !isnull(datefmt(text));
}

function monthyearfmt(text)
{
  if (isnull(text))
  {
    return "";
  }

  var temp = text.split("/");

  if (temp.length != 2)
  {
    return "";
  }

  if (!isinteger(temp[0]) || !isinteger(temp[1]))
  {
    return "";
  }

  temp[0] = strtofloat(strtodigits(temp[0], 2, true));
  temp[1] = strlrtrim(floattostr(strtofloat(temp[1]), 4, 0));

  if (strlen(temp[1]) <= 2)
  {
    if (temp[1] < 51)
    {
      temp[1] = strtofloat('20' + strtodigits(temp[1], 2, true));
    }
    else
    {
      temp[1] = strtofloat('19' + strtodigits(temp[1], 2, true));
    }
  }

  if (isNaN(temp[0]) || isNaN(temp[1]))
  {
    return "";
  }

  if (!((temp[0] >= 1) && (temp[0] <= 12)))
  {
    return "";
  }

  temp[0] = strtodigits(floattostr(temp[0], 2, 0), 2, true);
  temp[1] = strtodigits(floattostr(temp[1], 4, 0), 4, true);

  return strfmt("%s/%s", temp);
}

function ismonthyear(text)
{
  return !isnull(monthyearfmt(text));
}

function isinteger(num)
{
  var temp = strlrtrim(num.toString());

  if (isnull(temp))
  {
    return false;
  }

  for (var i = 0; i < strlen(temp); i++)
  {
    ch = temp.charAt(i)

    if (!isdigit(ch))
    {
      if ((ch == "-") || (ch == "+"))
      {
        if (i != 0)
        {
          return false;
        }
      }
      else
      {
        return false;
      }
    }
  }

  return !isNaN(parseInt(temp));
}

function isintegerinrange(num, min, max)
{
  if (!isinteger(num) || !isinteger(min) || !isinteger(max))
  {
    return false;
  }

  var inum = strtofloat(num);
  var imin = strtofloat(min);
  var imax = strtofloat(max);

  return ((inum >= imin) && (inum <= imax));
}

function isfloat(num)
{
  var temp = strlrtrim(num.toString());
  var hasdec = false;

  if (isnull(temp))
  {
    return false;
  }

  for (var i = 0; i < strlen(temp); i++)
  {
    ch = temp.charAt(i)

    if (!isdigit(ch))
    {
      if ((ch == "-") || (ch == "+"))
      {
        if (i != 0)
        {
          return false;
        }
      }
      else
      {
        if (ch == ".")
        {
          if (hasdec)
          {
            return false;
          }
          else
          {
            hasdec = true;
          }
        }
        else
        {
          return false;
        }
      }
    }
  }

  return !isNaN(parseFloat(temp));
}

function isfloatinrange(num, min, max)
{
  if (!isfloat(num) || !isfloat(min) || !isfloat(max))
  {
    return false;
  }

  var inum = strtofloat(num);
  var imin = strtofloat(min);
  var imax = strtofloat(max);

  return ((inum >= imin) && (inum <= imax));
}

function strnew(ch, count)
{
  var result = "";

  for (var i = 0; i < count; i++)
  {
    result += ch;
  }

  return result;
}

function strlen(text)
{
  if (typeof(text) != "string")
  {
    return 0;
  }

  return text.length;
}

function strupper(text)
{
  if (typeof(text) != "string")
  {
    return "";
  }

  return text.toUpperCase();
}

function strlower(text)
{
  if (typeof(text) != "string")
  {
    return "";
  }

  return text.toLowerCase();
}

function strcpy(text, start, size)
{
  if (typeof(text) != "string")
  {
    return "";
  }

  return text.substr(start, size);
}

function strpos(text, start, subs)
{
  var result = -1;

  if (typeof(text) != "string")
  {
    return result;
  }

  if (strlen(text) > start)
  {
    var temp = strcpy(text, start, strlen(text) - start);

    result = temp.indexOf(subs);

    if (result != -1)
    {
      result += start;
    }
  }

  return result;
}

function strreplchar(text, oldchar, newchar)
{
  var result = "";

  if (typeof(text) != "string")
  {
    return result;
  }

  if (isnull(newchar))
  {
    newchar = "";
  }

  for (var i = 0; i < strlen(text); i++)
  {
    var ch = text.charAt(i);

    if (ch == oldchar)
    {
      result += newchar;
    }
    else
    {
      result += ch;
    }
  }

  return result;
}

function strreplstr(text, srchstr, newstr)
{
  var result = "";
  var sbuffer1 = ""
  var sbuffer2 = ""
  var index = 0;

  if (typeof(text) != "string")
  {
    return result;
  }

  if (isnull(newstr))
  {
    newstr = "";
  }

  result = text;  
  index = result.indexOf(srchstr);

  while (index != -1)
  {
    sbuffer1 = strcpy(result, 0, index);
    sbuffer2 = strcpy(result, index + strlen(srchstr), strlen(result) - (index + strlen(srchstr)));

    result = sbuffer1 + newstr + sbuffer2;
    index = result.indexOf(srchstr);
  }

  return result;
}

function strlpad(text, size, ch)
{
  var result = "";

  if (typeof(text) != "string")
  {
    return strnew(ch, size);
  }

  if (strlen(text) < size)
  {
    result = strnew(ch, size - strlen(text)) + text;
  }
  else
  {
    result = text.substr(strlen(text) - size, size);
  }

  return result;
}

function strrpad(text, size, ch)
{
  var result = "";

  if (typeof(text) != "string")
  {
    return strnew(ch, size);
  }

  if (strlen(text) < size)
  {
    result = text + strnew(ch, size - strlen(text));
  }
  else
  {
    result = text.substr(0, size);
  }

  return result;
}

function strltrim(text)
{
  var result = "";
  var startpos = -1;

  if (typeof(text) != "string")
  {
    return "";
  }

  for (var i = 0; i < strlen(text); i++)
  {
    if (text.charCodeAt(i) != 32)
    {
      startpos = i;
      break;
    }
  }

  if (startpos == -1)
  {
    result = text;
  }
  else
  {
    result = text.substr(startpos, strlen(text) - startpos);
  }

  return result;
}

function strrtrim(text)
{
  var result = "";
  var endpos = -1;

  if (typeof(text) != "string")
  {
    return "";
  }

  for (var i = (strlen(text) - 1); i > -1; i--)
  {
    if (text.charCodeAt(i) != 32)
    {
      endpos = (++i);
      break;
    }
  }

  if (endpos == -1)
  {
    result = text;
  }
  else
  {
    result = text.substr(0, endpos);
  }

  return result;
}

function strlrtrim(text)
{
  return strltrim(strrtrim(text));
}

function stralltrim(text)
{
  if (typeof(text) != "string")
  {
    return "";
  }

  return strreplchar(text, " ", "");
}

function strtodigits(text, maxsize, zeropadding)
{
  var result = "";

  text = text.toString();

  for (var i = 0; i < strlen(text); i++)
  {
    var ch = text.charAt(i);

    if (isdigit(ch))
    {
      result += ch;
    }
  }

  if (strlen(result) > maxsize)
  {
    result = result.substr(strlen(result) - maxsize, maxsize)
  }

  if (zeropadding)
  {
    result = strlpad(result, maxsize, "0");
  }

  return result;
}

function strtofloat(text)
{
  var temp = strreplchar(text.toString(), ',', '.');

  if (!isfloat(temp))
  {
    return NaN;
  }

  return parseFloat(temp);
}

function floattostr(num, precision, decimals)
{
  var result = "";
  var tmp = null;
  var decstr = "";

  if (isNaN(num))
  {
    result += "0";

    if (decimals > 0)
    {
      result += "." + strnew("0", decimals);
    }
  }
  else
  {
    tmp = strreplchar(num.toString(), ",", ".").split(".");

    if (isnull(tmp))
    {
      tmp = new Array(1);
      tmp[0] = num.toString();
    }

    if (tmp[0].charAt(0) == "-")
    {
      result += "-";
    }

    result += strtodigits(tmp[0], precision - decimals, false);

    if (decimals > 0)
    {
      result += ".";

      if (tmp.length == 2)
      {
        decstr = tmp[1].substr(0, decimals);
      }
      else
      {
        decstr = strnew("0", decimals);
      }

      if (strlen(decstr) < decimals)
      {
        decstr += strnew("0", decimals - strlen(decstr));
      }

      result += decstr;
    }
  }

  return result;
}

function strfmt(text, values)
{
  if (typeof(text) != "string")
  {
    return "";
  }

  var result = "";
  var tmp = null;
  var position = 0;

  for (var i = 0; i < strlen(text); i++)
  {
    var ch = text.charAt(i);

    if ((ch == "%") && isnull(tmp))
    {
      tmp = ch;
    }
    else
    {
      if (isnull(tmp))
      {
        result += ch;
      }
      else
      {
        tmp = "";

        if (strlicomp(ch, "s"))
        {
          result += values[position];
          position++
        }
        else
        {
          if (strlicomp(ch, "d"))
          {
            var num = parseFloat(values[position]);
            result += num.toString();
            position++;
          }
          else
          {
            result += "%";

            if (ch != "%")
            {
              result += ch;
            }
            else
            {
              tmp = ch;
            }
          }
        }
      }
    }
  }

  return result;
}

function strmsklen(mask, onlydigits)
{
  var inner = false;
  var result = 0;

  if (isnull(onlydigits))
  {
    onlydigits = false;
  }

  for (var i = 0; i < strlen(mask); i++)
  {
    if (!onlydigits)
    {
      if (mask.charAt(i) != "%")
      {
        result++;
      }
    }
    else
    {
      if (mask.charAt(i) == "%")
      {
        inner = !inner;
      }
      else
      {
        if (!inner)
        {
          result++;
        }
      }
    }
  }

  return result;
}

function floatunfmt(value, mask)
{
  var len = strmsklen(mask, true);

  if (len == 0)
  {
    len = strlen(value);
  }

  return strtodigits(value, len, false);
}

function floatfmt(value, mask)
{
  var uvalue = strtodigits(value, strmsklen(mask, true), true);
  var pos = 0;
  var result = "";
  var inner = false;
  var leading = false;

  if (isnull(mask))
  {
    return value;
  }

  for (var i = 0; i < strlen(mask); i++)
  {
    if (mask.charAt(i) == "%")
    {
      inner = !inner;
    }
    else
    {
      if (!inner)
      {
        if (mask.charAt(i) == "9")
        {
          leading = true;
        }

        var ch = uvalue.charAt(pos);

        if ((ch == "0") && (mask.charAt(i) == "0") && (!leading))
        {
          ch = " ";
        }

        result += ch;
        leading = (ch != " ");
        pos++;
      }
      else
      {
        var ch = mask.charAt(i);

        if (!leading)
        {
          ch = " ";
        }

        result += ch;
      }
    }
  }

  return result;
}

function strlcomp(text1, text2)
{
  if (isnull(text1) && isnull(text2))
  {
    return true;
  }

  if (strlen(text1) != strlen(text2))
  {
    return false;
  }

  for (var i = 0; i < strlen(text1); i++)
  {
    if (text1.charCodeAt(i) != text2.charCodeAt(i))
    {
      return false;
    }
  }

  return true;
}

function strlicomp(text1, text2)
{
  if (isnull(text1) && isnull(text2))
  {
    return true;
  }

  if (strlen(text1) != strlen(text2))
  {
    return false;
  }

  for (var i = 0; i < strlen(text1); i++)
  {
    if (strupper(text1.charAt(i)) != strupper(text2.charAt(i)))
    {
      return false;
    }
  }

  return true;
}

function strsegmentedsplit(text)
{
  if (isnull(text))
  {
    return null;
  }

  if (typeof(text) != "string")
  {
    return null;
  }

  var result = text.split(";");

  if (result.length == 0)
  {
    return null;
  }

  for (var i = 0; i < result.length; i++)
  {
    var item = result[i].split("=");

    if (isnull(item))
    {
      item = new Array(2);
    }

    if (item.length > 0)
    {
      var ilen = item.length;

      item.length = 2;

      if (ilen == 1)
      {
        item[1] = null;
      }
    }

    item[0] = (isnull(item[0]) ? "" : strlrtrim(item[0]));
    item[1] = (isnull(item[1]) ? "" : strlrtrim(item[1]));

    result[i] = item;
  }

  return result;
}

function sortstrproc(arg1, arg2)
{
  if (arg1 > arg2) 
  {
    return 1;
  }
  
  if (arg1 < arg2) 
  {
     return -1;
  }
  
  return 0;
}

function quicksort(sortlist, L, R, sortproc)
{
  var I = L;
  var J = R;
  var P;

  while (!(I >= R))
  {
    I = L;
    J = R;
    P = (L + R) >> 1;

    while (!(I >= J))
    {
      while (sortproc(sortlist[I], sortlist[P]) < 0)
      {
        I++;
      }

      while (sortproc(sortlist[J], sortlist[P]) > 0)
      {
        J--;
      }

      if (I <= J)
      {
        var tmp = sortlist[I];
        sortlist[I] = sortlist[J];
        sortlist[J] = tmp;

        if (P == I)
        {
          P = J;
        }
        else if (P == J)
        {
          P = I;
        }

        I++;
        J--;
      }
    }

    if (L < J)
    {
      quicksort(sortlist, L, J, sortproc);
    }

    L = I;
  }
}

function cookietoarray()
{
  return strsegmentedsplit(document.cookie)
}

function getcookievalue(name)
{
  var acookie = cookietoarray();

  if (isnull(acookie))
  {
    return null;
  }

  for (var i = 0; i < acookie.length; i++)
  {
    var item = acookie[i];

    if (strlcomp(strlrtrim(name), strlrtrim(item[0])) != 0)
    {
      return unescape(item[1]);
    }
  }

  return null;
}

function setcookievalue(name, value)
{
  var d = new Date("December 25, 2029 23:15:00");

  document.cookie = name + "=" + escape(value) + "; EXPIRES=" + d.toGMTString() + ";";

  return document.cookie;
}

function deletecookievalue(name)
{
  var value = getcookievalue(name)
  var d = new Date();

  d.setTime(d.getTime() - (24 * 60 * 60 * 1000 * 31));

  document.cookie = name + "=" + escape(value) + "; EXPIRES=" + d.toGMTString() + ";";

  return document.cookie;
}

function getfunctionname(srccode)
{
  var fs = srccode.indexOf("function ") + 9;
  var fe = srccode.indexOf("(", fs);

  return srccode.substring(fs, fe) + "()";
}

function getformelement(form, name)
{
  for (var i = 0; i < form.elements.length; i++)
  {
    if (form.elements[i].name == name)
    {
      return form.elements[i];
    }
  }

  return null;
}

function getformelementvalue(form, name)
{
  for (var i = 0; i < form.elements.length; i++)
  {
    if (form.elements[i].name == name)
    {
      return form.elements[i].value;
    }
  }

  return null;
}

function getelementname(intname)
{
  return intname.substring(3, intname.length);
}

function lookupcallback(sender, name, lookup, lookupfunc, lookupparms)
{
  if (isnull(lookupfunc))
  {
    lookupfunc = "";
  }

  if (isnull(lookupparms))
  {
    lookupparms = "";
  }

  var caller = "document." + sender.form.name + "." + name;

  openwindow("/cgi-bin/" + lookup + ".exe?caller=" + escape(caller) + "&reader=" + escape(getfunctionname(lookupfunc)) + "&params=" + escape(lookupparms) + "&sysinfo=" + escape(getformelementvalue(sender.form, "sysinfo")), lookup);
}

function openwindow(program, name)
{
  window.open(program, name, "scrollbars,status,resizable,width=620,height=440");
}

function inputtext(name, value, size, enabled, charcase, lookup, lookupfunc, lookupparms)
{
  if (isnull(charcase))
  {
    charcase = 0;
  }

  if (charcase == 1)
  {
    value = strupper(value);
  }

  if (charcase == 2)
  {
    value = strlower(value);
  }

  if (enabled)
  {
    document.write("<input type=\"text\" class=\"editcontrolclass\" name=\"" + name +  "\" title=\"Entre com texto.\" value=\"" + value + "\" size=\"" + size + "\" maxlength=\"" + size + "\" onfocus=\"this.select()\" onblur=\"texthandlerproc(this, " + charcase + ")\">");

    if (!isnull(lookup))
    {
      lookupbutton(name, lookup, lookupfunc, lookupparms);
    }
  }
  else
  {
    hidden(name, value);
    readonly(value, size);
  }

  return "";
}

function inputpassword(name, value, size, enabled, charcase)
{
  if (isnull(charcase))
  {
    charcase = 0;
  }

  if (charcase == 1)
  {
    value = strupper(value);
  }

  if (charcase == 2)
  {
    value = strlower(value);
  }

  if (enabled)
  {
    document.write("<input type=\"password\" class=\"editcontrolclass\" name=\"" + name +  "\" title=\"Entre com senha.\" value=\"" + value + "\" size=\"" + size + "\" maxlength=\"" + size + "\" onfocus=\"this.select()\" onblur=\"texthandlerproc(this, " + charcase + ")\">");
  }
  else
  {
    hidden(name, value);
    readonly(value, size);
  }

  return "";
}

function textarea(name, value, rows, cols, enabled, charcase)
{
  if (isnull(charcase))
  {
    charcase = 0;
  }

  if (charcase == 1)
  {
    value = strupper(value);
  }

  if (charcase == 2)
  {
    value = strlower(value);
  }

  if (enabled)
  {
    document.write("<textarea class=\"editcontrolclass\" name=\"" + name +  "\" title=\"Entre com texto.\" rows=\"" + rows + "\" cols=\"" + cols + "\" onfocus=\"this.select()\" onblur=\"texthandlerproc(this, " + charcase + ")\">" + value + "</textarea>");
  }
  else
  {
    hidden(name, escape(value));
    document.write("<table class=\"readonlycontrolclass\">");
    document.write("<tr><td>" + strreplstr(value, "\n", "<br>") + "</td></tr>");
    document.write("</table>");
  }

  return "";
}

function texthandlerproc(sender, charcase)
{
  sender.value = strreplchar(strreplchar(sender.value, "\"", ""), "\'", "");

  if (charcase == 1)
  {
    sender.value = strupper(sender.value);
  }

  if (charcase == 2)
  {
    sender.value = strlower(sender.value);
  }
}

function inputnumericexeclostfocus(name, value, precision, decimals, enabled, namefunction, lookup, lookupfunc, lookupparms)
{
  var size = precision + 1;

  value = floattostr(strtofloat(value.toString()), precision, decimals);

  if (decimals > 0)
  {
    size++;
  }

  if (enabled)
  {
    document.write("<input type=\"text\" class=\"editcontrolclass\" title=\"Entre com o valor.\" style=\"text-align: right\" name=\"" + name +  "\" value=\"" + value + "\" size=\"" + size + "\" maxlength=\"" + size + "\" onfocus=\"this.select()\" onblur=\"numerichandlerproc(this, " + precision + ", " + decimals + ");" + namefunction  + "\">");

    if (!isnull(lookup))
    {
      lookupbutton(name, lookup, lookupfunc, lookupparms);
    }
  }
  else
  {
    hidden(name, value);
    readonly(value, size, true);
  }

  return "";
}

function inputnumeric(name, value, precision, decimals, enabled, lookup, lookupfunc, lookupparms)
{
  var size = precision + 1;

  value = floattostr(strtofloat(value.toString()), precision, decimals);

  if (decimals > 0)
  {
    size++;
  }

  if (enabled)
  {
    document.write("<input type=\"text\" class=\"editcontrolclass\" title=\"Entre com o valor.\" style=\"text-align: right\" name=\"" + name +  "\" value=\"" + value + "\" size=\"" + size + "\" maxlength=\"" + size + "\" onfocus=\"this.select()\" onblur=\"numerichandlerproc(this, " + precision + ", " + decimals + ")\">");

    if (!isnull(lookup))
    {
      lookupbutton(name, lookup, lookupfunc, lookupparms);
    }
  }
  else
  {
    hidden(name, value);
    readonly(value, size, true);
  }

  return "";
}

function numerichandlerproc(sender, precision, decimals)
{
  var num = strtofloat(sender.value.toString());

  if (isNaN(num))
  {
    num = 0;
    alert("O valor digitado é inválido!");
    sender.focus();
  }

  sender.value = floattostr(num, precision, decimals);
}

function inputmask(name, value, size, mask, enabled, lookup, lookupfunc, lookupparms)
{
  if (size < strmsklen(mask, false))
  {
    size = strmsklen(mask, false);
  }

  value = floatfmt(floatunfmt(value, mask), mask);

  if (enabled)
  {
    document.write("<input type=\"text\" class=\"editcontrolclass\" name=\"" + name +  "\" value=\"" + value + "\" size=\"" + size + "\" maxlength=\"" + size + "\" mask=\"" + mask + "\" onfocus=\"maskhandlerproc(this, 1, \'" + mask + "\')\" onblur=\"maskhandlerproc(this, 2, \'" + mask + "\')\">");

    if (!isnull(lookup))
    {
      lookupbutton(name, lookup, lookupfunc, lookupparms);
    }
  }
  else
  {
    readonly(value, size);
  }

  return "";
}

function maskhandlerproc(sender, action, mask)
{
  if (isnull(sender.mask))
  {
    if (sender.mask == "")
    {
      sender.mask = strnew("9", sender.size);
    }
    else
    {
      sender.mask = mask;
    }
  }

  if (action == 1)
  {
    sender.value = floatunfmt(sender.value, sender.mask);
    sender.select();
  }

  if (action == 2)
  {
    sender.value = floatfmt(sender.value, sender.mask);
  }
}

function setinputmask(control, mask)
{
  var oldmask = control.mask;

  if (isnull(oldmask))
  {
    oldmask = strnew("0", control.size);
  }

  control.mask = mask;
  control.value = floatfmt(floatunfmt(control.value, oldmask), control.mask);
}

function inputdate(name, value, enabled, canempty)
{
  value = datefmt(value);

  if (isnull(canempty))
  {
    canempty = true;
  }

  if (enabled)
  {
    document.write("<input type=\"text\" class=\"editcontrolclass\" title=\"Entre com a data no formato dia/mês/ano.\" name=\"" + name +  "\" value=\"" + value + "\" size=\"10\" maxlength=\"10\" onfocus=\"this.select()\" onblur=\"datehandlerproc(this, " + canempty + ")\">");
  }
  else
  {
    hidden(name, value);
    readonly(value, 10);
  }

  return "";
}

function datehandlerproc(sender, canempty)
{
  if (!isdate(sender.value))
  {
    if (!isnull(stralltrim(sender.value)))
    {
      alert("Data informada inválida!");
      sender.value = "";
	}

    if (!canempty)
    {
      sender.focus();
    }
  }
  else
  {
    sender.value = datefmt(sender.value);
  }
}

function inputmonthyear(name, value, enabled, canempty)
{
  value = monthyearfmt(value);

  if (isnull(canempty))
  {
    canempty = true;
  }

  if (enabled)
  {
    document.write("<input type=\"text\" class=\"editcontrolclass\" title=\"Entre com a data no formato mês/ano.\" name=\"" + name +  "\" value=\"" + value + "\" size=\"8\" maxlength=\"8\" onfocus=\"this.select()\" onblur=\"monthyearhandlerproc(this, " + canempty + ")\">");
  }
  else
  {
    hidden(name, value);
    readonly(value, 8);
  }

  return "";
}

function monthyearhandlerproc(sender, canempty)
{
  if (!ismonthyear(sender.value))
  {
    if (!isnull(stralltrim(sender.value)))
    {
      alert("Data informada inválida!");
      sender.value = "";
	}

    if (!canempty)
    {
      sender.focus();
    }
  }
  else
  {
    sender.value = monthyearfmt(sender.value);
  }
}

function checkbox(name, value, caption, checked, enabled)
{
  document.write("<input type=\"checkbox\" name=\"" + name + "\" value=\"" + value + "\"");
 
  if (checked)
  {
    document.write(" checked");
  }
  
  document.write(">" + caption);

}

function combobox(name, value, items, size, enabled)
{
  var opt = strsegmentedsplit(items);

  if (isnull(opt))
  {
    opt = new Array(new Array(null, null));
  }

  if (isnull(size))
  {
    size = 0;
  }

  for (var i = 0; i < opt.length; i++)
  {
    var item = opt[i];

    if (!isnull(item[0]))
    {
      if (size < strlen(item[0]))
      {
        size = strlen(item[0]);
      }
    }
  }

  if (enabled)
  {
    document.write("<select class=\"editcontrolclass\" name=\"" + name +  "\" title=\"Selecione uma das opções.\">");

    for (var i = 0; i < opt.length; i++)
    {
      var item = opt[i];

      document.write("<option value=\"" + unescape(item[1]) + "\"");

      if (strlcomp(unescape(item[1]), value))
      {
        document.write(" selected");
      }

      document.write(">" + strrpad(item[0], size, "&nbsp;") + "</option>");
    }

    document.write("</select>");
  }
  else
  {
    var selectedvalue = "";

    hidden(name, value);

    for (var i = 0; i < opt.length; i++)
    {
      var item = opt[i];

      if (strlcomp(unescape(item[1]), value))
      {
        selectedvalue = item[0];
        break;
      }
    }

    readonly(selectedvalue, size);
  }

  return "";
}

function ufcombobox(name, value, enabled)
{
  var items = "; Acre=AC; Alagoas=AL; Amazonas=AM; Amapá=AP; Bahia=BA; Ceará=CE; Distrito Federal=DF; " +
              "Espírito Santo=ES; Goiás=GO; Maranhão=MA; Minas Gerais=MG; Mato Grosso do Sul=MS; " +
              "Mato Grosso=MT; Pará=PA; Paraíba=PB; Pernambuco=PE; Piauí=PI; Paraná=PR; Rio de Janeiro=RJ; " +
              "Rio Grande do Norte=RN; Rondônia=RN; Roraima=RR; Rio Grande do Sul=RS; Santa Catarina=SC; " +
              "Sergipe=SE; São Paulo=SP; Tocantins=TO";

  return combobox(name, value, items, 0, enabled);
}

function sncombobox(name, value, enabled)
{
  return combobox(name, value , "; Sim=S; Nao=N", 3, enabled);
}

function pscombobox(name, value, enabled)
{
  return combobox(name, value , "; Fisica=F; Juridica=J; Produtor Rural=P", 14, enabled);
}

function button(type, name, value, click, enabled)
{
  document.write("<input type=\"" + type + "\" name=\"" + name + "\" class=\"commonbuttonclass\" value=\"" + value + "\"");

  if (!isnull(click))
  {
    document.write(" onclick=\"" + click + "\"");
  }

  document.write(">");

  return "";
}

function filebutton(type, name, value, size, click)
{
  document.write("<input type=\"" + type + "\" name=\"" + name + "\" size=\"" + size + "\" class=\"commonbuttonclass\" value=\"" + value + "\"");

  if (!isnull(click))
  {
    document.write(" onclick=\"" + click + "\"");
  }

  document.write(">");

  return "";
}


function hidden(name, value)
{
  document.write("<input type=\"hidden\" name=\"" + name + "\" value=\"" + value + "\">");
}

function readonly(value, size, rightalign)
{
  document.write("<table cellpadding=\"0\" cellspacing=\"0\"><tr><td><p class=\"readonlycontrolclass\">" + (isnull(rightalign) ? strrpad(value, size, "&nbsp;") : strlpad(value, size, "&nbsp;")) + "</p></td></tr></table>");
}

function lookupbutton(name, lookup, lookupfunc, lookupparms)
{
  if (isnull(lookupparms))
  {
    lookupparms = "";
  }

  document.write("<input type=\"button\" class=\"lookupbuttonclass\" value=\"...\" onclick=\"lookupcallback(this, \'" + name + "\', \'" + lookup + "\', \'" + lookupfunc + "\', \'" + lookupparms + "\')\">");
}

function getcomboboxvalue(control)
{
  var result = null;

  if (!isnull(control))
  {
    if (control.type.substr(0, 6) == "select")
    {
      result = control.options[control.selectedIndex].value;
    }
    else
    {
      result = control.value;
    }
  }

  return result;
}

function getcomboboxtext(control)
{
  var result = null;

  if (!isnull(control))
  {
    if (control.type.substr(0, 6) == "select")
    {
      result = control.options[control.selectedIndex].text;
    }
    else
    {
      result = control.value;
    }
  }

  return result;
}

function comparedate(data1, data2)
{
  var val1 = 0;
  var val2 = 0;

  var dat1 = datefmt(data1);
  var dat2 = datefmt(data2);

  var str1 = strcpy(dat1, 6, 4).toString() + strcpy(dat1, 3, 2).toString() + strcpy(dat1, 0, 2).toString();
  var str2 = strcpy(dat2, 6, 4).toString() + strcpy(dat2, 3, 2).toString() + strcpy(dat2, 0, 2).toString();

  val1 = parseFloat(str1);
  val2 = parseFloat(str2);

  if (val1 < val2)
  {
    return 1;
  }

  if (val1 > val2)
  {
    return -1;
  }

  return 0;
}

if (isIE())
{
  document.write("<link href=\"/jscript/icssheet.css\" rel=\"styleSheet\" type=\"text/css\">");
}

if (isNS())
{
  if (parseInt(navigator.appVersion.charAt(0)) < 6)
  {
    document.write("<link href=\"/jscript/ncssheet.css\" rel=\"styleSheet\" type=\"text/css\">");
  }
  else
  {
    document.write("<link href=\"/jscript/icssheet.css\" rel=\"styleSheet\" type=\"text/css\">");
  }
}
