function removeClass(elem,cn) {
  var newclasses = new Array();
  var classes = elem.className.split(" ");
  for (var i=0; i<classes.length; i++) {
    if (classes[i] != cn) {
      newclasses[newclasses.length] = classes[i];
    }
  }
  elem.className = newclasses.join(" ");
}

function initRoundedBoxes() {
  var mtch;
  
  var elems = document.getElementsByTagName('div');
	var targets = new Array();
  for (var i=0; i<elems.length; i++) {
    if (mtch = elems[i].className.match(/call_rounded_([^ ]+)/)) {
			targets[targets.length] = {elem:elems[i], type: mtch[1]};
      //new RoundedBox(elems[i], mtch[1]);
    }      
  }
  for (var i=0; i<targets.length; i++) {
    new RoundedBox(targets[i].elem, targets[i].type);
  }
  var elems = document.getElementsByTagName('a');
  for (var i=0; i<elems.length; i++) {
    if (mtch = elems[i].className.match(/call_rounded_([^ ]+)/)) {
      removeClass(elems[i],mtch[0]); // clear the call_rounded_* class
      new RoundedBox(elems[i], mtch[1]);
    }      
  }
  
  // finished roundedboxes - execute next jobs if such sequence needed
  if (window.initRoundedBoxesAfter) {
    initRoundedBoxesAfter();
  }
  
  return true;
}

window.initRoundedBoxesHandler = initRoundedBoxes;

addEvent(window, 'load', 'initRoundedBoxesHandler');

function RoundedBox(targetid, style) {
  var div,div2,div3;
  var target;
	var prev_class;

  if (typeof(targetid) == "string") {
    target = document.getElementById(targetid);
  } else {
    target = targetid;
  }
  var c = 0;
  // hack for select elements so they don't loose selected value
  if (target.getElementsByTagName('select').length > 0) {
    var sels = target.getElementsByTagName('select');
    var selvals = new Array();
    var selids = new Array();
    for (var i=0; i<sels.length; i++) {
      if (sels[i].id != '') {
        selvals[c] = sels[i].selectedIndex;
        selids[c] = sels[i].id;
        c++;
      }
    }
  }
  
  var rs = document.createElement("div");
  rs.className = "roundedbox rightside " + style + " rb_rightside_" + style;
	prev_class = target.className;
	target.className = "";
  rs.appendChild(target.cloneNode(true));

  var ls = document.createElement("div");
  ls.className = "roundedbox leftside " + style + " rb_leftside_" + style;
  ls.appendChild(rs);
  
  var bs = document.createElement("div");
  bs.className = "roundedbox bottomside " + style;
  bs.appendChild(ls);
 
  var bl = document.createElement("div");
  bl.className = "roundedbox bottomleft " + style + " rb_bottomleft_" + style;
  bs.appendChild(bl);

  var br = document.createElement("div");
  br.className = "roundedbox bottomright " + style + " rb_bottomright_" + style;
  bl.appendChild(br);

  var bi = document.createElement("div");
  bi.className = "roundedbox bottominside " + style + " rb_bottominside_" + style;
  if (document.all) {
    var im = new Image();
    im.src = "/images/spacer.gif";
    im.className = "dummypic";
    bi.appendChild(im);
  }
  br.appendChild(bi);
  
  var ts = document.createElement("div");
  ts.className = "roundedbox roundedbox topside " + style + ' ' + prev_class;
  ts.appendChild(bs);
 
  var tl = document.createElement("div");
  tl.className = "roundedbox topleft " + style + " rb_topleft_" + style;
  ts.insertBefore(tl,bs);

  var tr = document.createElement("div");
  tr.className = "roundedbox topright " + style + " rb_topright_" + style;
  tl.appendChild(tr);
 
  var ti = document.createElement("div");
  ti.className = "roundedbox topinside " + style + " rb_topinside_" + style;
  if (document.all) {
    var im = new Image();
    im.src = "/images/spacer.gif";
    im.className = "dummypic2";
    ti.appendChild(im);
  }  
  tr.appendChild(ti);
	target.parentNode.replaceChild(ts,target);

  if (c>0) {
    for (var i=0; i<c; i++) {
      if (selids[i] != '' && document.getElementById(selids[i]) && selvals[i] > 0) {
        document.getElementById(selids[i]).selectedIndex = selvals[i];
      }
    }
  }
  return false;
}