Event.observe(window, 'load',
	function() {
	//	$$('.button').each(function(button){Buttons.addElements(button);});
	//	$$('.buttons').each(function(button_group){$A(button_group.childNodes).each(function(button){Buttons.addElements(button);})});
	}
);

/*
 * This converts +button+ into a nicely styled link
 * If button is an input button with a name, then a hidden field 
 * is added on submission to ensure the sending of the button name/value pair,
 * which might be necessary for correct operation of the form handler.
 */
var Buttons = {
  addElements: function(button) { 
    // button contents
    var s1 = document.createElement('span'); s1.className = 's1';
    var s2 = document.createElement('span'); s2.className = 's2';
    var s3 = document.createElement('span'); s3.className = 's3';
    var s4 = document.createElement('span'); s4.className = 's4';
    if(button.firstChild) {
      s4.appendChild(button.firstChild);
    } else {
      s4.appendChild(document.createTextNode(button.value));
    }
    s3.appendChild(s4);
    s2.appendChild(s3);
    s1.appendChild(s2);
    
    if ( button.tagName == "INPUT" && ( button.type.toLowerCase() == "submit" || button.type.toLowerCase() == "button" ) ) {
      var a1 = document.createElement("A");
      a1.className = button.className || 'button';
      a1.appendChild(s1);
      a1.id = button.id;
      a1.form = button.form;
      a1.name = button.name;
      a1.value = button.value;
      a1.href = '#';
      a1.style.cursor = "pointer";
      Event.observe(a1, 'click', function(e){
        if(this.name){ Element.insert(this.form, { bottom: '<input type="hidden" name="'+this.name+'" value="'+this.value+'"/>' }); };
        this.form.submit();
		this.addClassName('clicked');
        Event.stop(e);
      });
      button.parentNode.replaceChild(a1, button);
    } else if(button.tagName == "A") {
      button.update(s1)
    } else {
      return false
    }
  }
}
