var multiEntryMap = $H();
var multiChoiceMap = $H();

function removeRow(unitID, rowID){
    var lastIndex = multiEntryMap[unitID + 'LastIndex'];
    var lastID = unitID + '[' + lastIndex + ']'; 
    var row = document.getElementById(rowID);
    var ds = document.getElementById(unitID + 'DataSize');
    var size = parseInt(ds.getAttribute('value'));  

    if(size > 1){
       var pRow = row.previousSibling;
       if(pRow != null && pRow.id == null){
         pRow = pRow.previousSibling;
       } 
       if(pRow == null){
         var nextRow = row.nextSibling;
         if(nextRow != null && nextRow.id == null){
           nextRow = nextRow.nextSibling;
         } 
         var nextHeader = document.getElementById(nextRow.id + 'Header');
         if(navigator.product == "Gecko"){
           nextHeader.style.display='table-row';
         }else{
           nextHeader.style.display='inline';
         }
       }
       row.parentNode.removeChild(row);
       size--;
       ds.setAttribute('value', size); 
       if(lastID == rowID){
         lastIndex--;
         lastID = unitID + '[' + lastIndex + ']'; 
         while(document.getElementById(lastID) == null){
           lastIndex--;
           lastID = unitID + '[' + lastIndex + ']'; 
         }
       } 
    } else if(size == 1){
      //clears inputs only for the first row
      var inputs = document.getElementsByTagName('input'); 
      if(inputs != null){
        for(var i=0; i < inputs.length; i++){
           var input = inputs.item(i);
           var name = input.getAttribute('name');
           if(name.indexOf(rowID) > -1){
             input.setAttribute('value','');
           }
        } 
      }  
    } 
    multiEntryMap[unitID + 'LastIndex'] = lastIndex;
}


function addRow(unitID){
    var lastIndex = multiEntryMap[unitID + 'LastIndex'];
    var lastRowId =  unitID + '[' + lastIndex + ']';
    var lastRow = document.getElementById(lastRowId);
    if (!lastRow) {
	  	lastIndex = 0;
	  	lastRowId =  unitID + '[0]';
	  	lastRow = document.getElementById(lastRowId);
	}
	var mainDiv = document.getElementById(unitID);
	var newRowId = unitID + '[' + ++lastIndex + ']';
	var temp = lastRow.innerHTML;
	while(temp.indexOf(lastRowId) > 0){
	   temp = temp.replace(lastRowId, newRowId);
	}
	var newDiv = document.createElement('div');
	newDiv.setAttribute('id',newRowId);
	newDiv.innerHTML = temp;
	mainDiv.appendChild(newDiv);
	var ds =  document.getElementById(unitID + 'DataSize');
	var size = parseInt(ds.getAttribute('value')) + 1;
	ds.setAttribute('value',size);
	if(size >= 2){
	    var header = document.getElementById(newRowId + 'Header');
	    if (header) {
	     	header.style.display='none';
	    }
	}
	//resets fields
	var inputs = newDiv.getElementsByTagName('input'); 
	if(inputs != null){
	    for(var i=0; i < inputs.length; i++){
	       var input = inputs.item(i);
	       var name = input.getAttribute('name');
	       var type = input.getAttribute('type');
	       if(name != null && name.indexOf(newRowId) > -1){
	           if(type == "radio" || type == "checkbox"){
	              input.checked = false;
             } else {
                input.setAttribute('value','');
             }
           }
	    }
	}
	//resets selection fields
	var selects = newDiv.getElementsByTagName('select'); 
	if(selects != null){
	    for(var i=0; i < selects.length; i++){
	       var select = selects.item(i);
	       var name = select.getAttribute('name');
	       if(name != null && name.indexOf(newRowId) > -1){
	          select.selectedIndex = 0;
         }
      }   
	}
    multiEntryMap[unitID + 'LastIndex'] = lastIndex;
    newDiv.innerHTML.evalScripts();
}


function checkall(unit, index) {
	var key = multiChoiceMap[unit + index]
	var fields = document.getElementsByName(unit + 'Checked');
	for(var i=0; i < fields.length; i++){
		if (key == "all" && fields[i].id.substring(0,fields[i].id.indexOf('_')) == index ) {
			fields[i].checked = true;
		} else if (key == "none" && fields[i].id.substring(0,fields[i].id.indexOf('_')) == index ) {
			fields[i].checked = false;
		}
	}
	if(key == "all"){
        key = "none";
        $(unit + index + "image").className='unSelectAll'
    } else {
        key = "all";
        $(unit + index + "image").className='selectAll'
    }		
    multiChoiceMap[unit + index] = key		
     
    return false							
}


function clickButton(id){
   var ids = id.split("|");
   for(var i=0; i < ids.length; i++){
     var button = $('button#' + ids[i]);
     if(button != null && !button.disabled){
       button.click();
       break;
     }
   }
}

