var objFrag; 

var pageFrag;


function initDOM(ElemID){

pageFrag = ElemID

objFrag = document.getElementById(pageFrag).innerHTML;

var buttons = document.getElementsByTagName('input');

for(i=0; i < buttons.length; i++){

if(buttons[i].type == "button"){
	buttons[i].onclick = doDom;
	}

}
}


function getScratchPad()
{
	
		var oRoot = document.getElementsByTagName('body');
		var oPad = document.createElement('div');
		oPad.style.position = 'absolute';
		oPad.style.visibility = 'hidden';
		oRoot[0].appendChild(oPad);

	return oPad;

}



function doDom(){

var action = this.value;
var objID = parseInt(this.parentNode.parentNode.id);

	var oPad = getScratchPad();
	oPad.innerHTML = objFrag;
	
	var oRoot = oPad.childNodes[0];
	var targNode = oRoot.childNodes[1];
	
	var Items = oPad.getElementsByTagName('tr');
						
	var targObj = Items[objID];
	
	var updateElements = targObj.childNodes;
				
switch(action){

case "delete": 

				targNode.removeChild(targObj);break;
				
case "add":			

				oClone = targObj.cloneNode(true);
					
				targNode.insertBefore(oClone, targObj); break
				
case "edit":			

				for(i in updateElements){
				
				var input = document.createElement('input');
				input.type = 'text';				
				input.name = 'td' + i;
				input.setAttribute('value',updateElements[i].innerHTML);
				
				var link = document.createElement('input');
				input.type = 'text';				
				link.name = 'link' + i;
				
				if(updateElements[i].id != "buttons"){
					try{
					updateElements[i].innerHTML = "";
					updateElements[i].appendChild(input);
					
					if(i == 1){
					
					updateElements[i].appendChild(link);
					
					}
					}
					
					catch(e){}
				}
				
				else if(updateElements[i].id == "buttons"){
				
				var save = document.createElement('input');
				save.type = 'button';
				save.value = 'update';
				save.id = objID;
				
				updateElements[i].appendChild(save);
				
				}

				}
				
				break;
				
case "update": 
				
				var updateValue;
				
				for(i in updateElements){
				
				try{
				updateValue = document.createTextNode(document.forms[0].elements['td' + i].value);
				
				if(i == 1 && document.forms[0].elements['link' + i].value != ""){
				updateLink = document.createTextNode(document.forms[0].elements['link' + i].value);
				
				link = document.createElement('a');
				link.href = updateLink;
				link.appendChild(updateValue);
				
				}
				}
				
				catch(e){}
				
				if(updateElements[i].id != "buttons"){
					try{
					updateElements[i].innerHTML = "";
					if(i == 1){
					updateElements[i].appendChild(link);
					}
					
					else
					updateElements[i].appendChild(updateValue);
					}
					
					catch(e){}
				}
				else if(updateElements[i].id == "buttons"){

					updateElements[i].removeChild(updateElements[i].lastChild)

					}
					
				}
				
				break;
				}
	
	
				for(i in Items){
				
					Items[i].id = i;
					
				}
				
				document.getElementById(pageFrag).innerHTML = oPad.innerHTML;
				oPad.innerHTML = "";
				initDOM(pageFrag);


}


