/*
 * 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 
*/
var dtsl={
	buttonClass:'submitbutton',
	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;}
			dtsl.modif(intputs[i]);
			if(i<inputs.length){i--};
		}
	},
	modif:function(elem){
			newa=document.createElement('a');
			newa.setAttribute('href','#');
		newa.setAttribute('id',elem.getAttribute('id'));
		newa.appendChild(document.createTextNode(elem.getAttribute('value')));
			newa.className=dtsl.buttonClass;
		newa.f=elem.form;
			dtsl.addEvent(newa,'click',dtsl.sendForm,false);
			newa.onclick=function(){return false;} // Safari
		elem.parentNode.insertBefore(newa,elem);
		elem.parentNode.removeChild(elem);
	},
	// 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.type='hidden';
		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;
		}
	}
}

