
function chainHandler(obj, handlerName, handler) {
    obj[handlerName] = (function(existingFunction) {
        return function() {
            handler.apply(this, arguments);
            if (existingFunction)
                existingFunction.apply(this, arguments);
        };
    })(handlerName in obj ? obj[handlerName] : null);
};

// If we need to do somethin on window.onload...

function changeSubmitButtons() {
	// Get every submit button and change them
	var bt = new Array();
	var inputs = document.getElementsByTagName('input');
	var changed = new Array();

	for (var i=0; i<inputs.length; i++) {
		if ( inputs[i].type == 'submit' && inputs[i].className != 'classic' ) {
			changed.push(changeSubmitButton(inputs[i]));
		}
	}
	
	// Thanks IE, add an invisible "submit" image to allow enter to submit forms
	for (var i =0; i < changed.length; i++) {
		var img = document.createElement('input');
			img.type = "image";
			img.src = "/html/static/images/trans.gif";

		changed[i].appendChild(img);
	}
}

function changeSubmitButton(b) {
	var d = document.createElement('div');
	var dl = document.createElement('div');
	var dr = document.createElement('div');
	var a = document.createElement('a');
	
	d.className = b.className;
	d.id = b.id;
	d.setAttribute('style',b.getAttribute('style'));
	
	dl.className = 'buttonleft';
	dr.className = 'buttonright';
	
	a.href = '#';
	a.className = 'buttoncenter';
	a.bt = b;
	a.onclick = function() {
		if ( this.bt.onclick && typeof(this.bt.onclick) == "function" && this.bt.onclick() == false ) {
			return false
		}

		if ( this.bt.form.onsubmit && typeof(this.bt.form.onsubmit) == "function" ) {
			if ( !this.bt.form.onsubmit() ) return false;
		}

		this.bt.form.submit();
		return false;
	};
	a.appendChild(document.createTextNode(b.value));
	
	d.appendChild(dl);
	d.appendChild(a);
	d.appendChild(dr);
	
	b.id = null;
	b.style.display = 'none';
	
	b.parentNode.insertBefore(d,b);
	d.appendChild(b);

	return d;
}

