function btngo() {
  var els;
  var set2 = [];
  if( !document.getElementsByClassName ) {
    els = document.getElementsByTagName('input');
    for( var i=0;i<els.length;i++ ) {
      var el = els[ i ];
      if( el.className == 'newb' ) set2.push( el );
    }
  }
  else {
    els = document.getElementsByClassName('newb');
    for( var i=0;i<els.length;i++ ) {
      var el = els[ i ];
      set2.push( el );
    }
  }
  
  for( var i=0;i<set2.length;i++ ) {
    newbtn( set2[ i ] );
  }
}
function newbtn( el ) {
  var txt;
  var ob = { onclick: null, form: 0 };
    
  var div = _newdiv('newb_a');
  var m = _newdiv('m');
  var l = _newdiv('l');
  var r = _newdiv('r');
  var br = _newel('br');
  br.clear = 'left';
  _append( div, l, m, r, br );
  
  var targ;
  if( el.tagName == 'INPUT' ) {
    if( el.onclick ) ob.onclick = el.onclick;
    txt = el.value;
    if( el.type == 'submit' ) {
      ob.form = el.form;
    }
    if( el.type == 'file' ) {
      var capbox = _newel('span');
      el.box = capbox;
      _insertafter( el, capbox );
      var box = _newdiv('btnbox');
      _append( capbox, div, box );
      _append( box, _newnbsp(), el );
      div.style.position = 'absolute';
      div.style.marginTop = 0;
      el.className = 'invis';
      _append( m, _newtext( 'Browse...' ) );
      targ = el;
    }
    else {
      _append( m, _newtext( txt ) );
      _replace( el, div );
      var offl = offset( l );
      var offr = offset( r );
      var wid = offr.right - offl.left;
      div.style.width = (wid+1) + 'px';
      targ = div;
    }
  }
  targ.onmouseover = btnover.bind( 0, div );
  targ.onmouseout = btnout.bind( 0, div );
  targ.onmouseup = btnup.bind( 0, div );
  targ.onmousedown = btndown.bind( ob, div );
  targ.onclick = ob.form ? btnclick.bind(0,ob) : ob.onclick;
}
function btnclick( ob ) {
  if( ob.form ) {
    if( ob.form.onsubmit ) {
      var val = ob.form.onsubmit();
      if( !val ) return;
    }
    ob.form.submit();
  }
}
function btnover(ob) { ob.className = 'newb_b'; }
function btnout (ob) { ob.className = 'newb_a'; }
function btnup  (ob) { ob.className = 'newb_b'; }
function btndown(ob) { ob.className = 'newb_c'; return false; }

// find the absolute position and size of an item
function offset( el ) {
  var oel = el;
  var ob = { top:0, left:0, bottom: el.offsetHeight, right: el.offsetWidth };
  do {
    ob.top  += (el.offsetTop  || 0) + _css( el, 'border-Top-Width'  );
    ob.left += (el.offsetLeft || 0) + _css( el, 'border-Left-Width' );
    el = el.offsetParent;
  } while ( el );
  ob.bottom += ob.top;
  ob.right  += ob.left;
  return ob;
}

function _css( el, prop ) {
  var val;
  if( document.defaultView && document.defaultView.getComputedStyle )
		val = document.defaultView.getComputedStyle(el,null).getPropertyValue( prop.toLowerCase() );
	else if( el.currentStyle ) val = el.currentStyle[ prop.replace(/-/g,'') ];
  return nopx( val ) || 0;
}
function nopx(val) { return val.replace('px','')*1; }