/*
 * DTSL - Dynamic text submission links
 * written by Chris Heilmann (http://www.icant.co.uk)
 *
 * - scans a document for submit buttons and replaces them with text links
 *   with the same ID and text value and a predefined class
 *
 * Modified to set the name attribute too
*/
var dtsl={
	buttonClass:'fakebutton',
	init:function(){
		var i,newa,inputs;
		if(!document.getElementById || !document.createTextNode){return;}
		inputs=document.getElementsByTagName('input');
		for(i=0;i<inputs.length;i++){
			if(inputs[i].getAttribute('type')!='submit'){continue;}
			
			// Bits added by grigri [project-specific]
			if (inputs[i].parentNode.className = 'submit') {
        var maxR = 0, R, baseR, L;
        inputs[i].parentNode.parentNode.style.position = 'relative';
        baseR = inputs[i].parentNode.parentNode.offsetWidth;
        var fields = inputs[i].parentNode.parentNode.getElementsByTagName('div');
        for (var j=0; j<fields.length; j++) {
          if (fields[j].className == 'field') {
            R = baseR - (fields[j].offsetLeft + fields[j].offsetWidth);
            L = fields[j].offsetLeft;
            if (R > maxR) maxR = R;
          }
        }
        inputs[i].parentNode.style.paddingRight = maxR + 'px';
        inputs[i].parentNode.style.paddingLeft = L + 'px';
			}
			// End bits added by grigri
			
			
			newa=document.createElement('a');
			newa.setAttribute('href','#');
			if (inputs[i].getAttribute('id')) { newa.setAttribute('id',inputs[i].getAttribute('id')); }
			if (inputs[i].getAttribute('name')) { newa.setAttribute('name',inputs[i].getAttribute('name')); }
			newa.appendChild(document.createTextNode(inputs[i].getAttribute('value')));
			newa.className=dtsl.buttonClass;
			newa.f=inputs[i].form;
			dtsl.addEvent(newa,'click',dtsl.sendForm,false);
			newa.onclick=function(){return false;} // Safari
			inputs[i].parentNode.insertBefore(newa,inputs[i]);
			inputs[i].parentNode.removeChild(inputs[i]);
			if(i<inputs.length){i--};
		}
	},
	// you may have to alter sendForm when there is more than one form
	// in the document
	sendForm:function(e){
		dtsl.cancelClick(e);
		var t=dtsl.getTarget(e);
		var f=t.f;
		var newel=document.createElement('input');
		newel.name=t.id;
		newel.value=t.innerHTML;
		f.appendChild(newel);


		f.submit();
	},
	getTarget:function(e){
		var target = window.event ? window.event.srcElement : e ? e.target : null;
		if (!target){return false;}
		while(target.nodeType!=1 && target.nodeName.toLowerCase()!='body'){
			target=target.parentNode;
		}
		return target;
	},
	cancelClick:function(e){
		if (window.event){
			window.event.cancelBubble = true;
			window.event.returnValue = false;
			return;
		}
		if (e){
			e.stopPropagation();
			e.preventDefault();
		}
	},
	addEvent: function(elm, evType, fn, useCapture){
		if (elm.addEventListener)
		{
			elm.addEventListener(evType, fn, useCapture);
			return true;
		} else if (elm.attachEvent) {
			var r = elm.attachEvent('on' + evType, fn);
			return r;
		} else {
			elm['on' + evType] = fn;
		}
	}
}
dtsl.addEvent(window, 'load', dtsl.init, false);

