/* based on http://www.quirksmode.org/js/blockinvi.html
   use permitted http://www.quirksmode.org/about/copyright.html */
function block(nr, current)
{
   if (document.all)    {
      // Hello IE
      if (current == 'table-row-group')   {
         current = 'block';
      }
   }
   document.getElementById(nr).style.display = current;
}
function toggleBlock(nr)
{
   var element = document.getElementById(nr);
   if (element.style.display == 'none')   {
      element.style.display = 'block';
   }   
   else   {
      element.style.display = 'none';
   }
}
function toggleHideBlock(group, target)
{
   var groupElement = document.getElementById(group);
   // Hide them all first
   for (var i = 0; i < groupElement.childNodes.length; i++)   {
      var current = groupElement.childNodes[i];
      if (current.nodeName.toLowerCase() == 'div')   {
         current.style.display = 'none';
      }
   }
   var element = document.getElementById(target);
   element.style.display = 'block';
}

function addRowToForm (instance, limit)   {
   var tblBody = document.getElementById(instance).tBodies[0];
   var length = tblBody.rows.length
   if (length > limit)   {
      return;
   }
   var newNode = tblBody.rows[length-1].cloneNode(true);
   var reg_exp = /^(.*)(\d{1,3})$/;
   // Clear the copied values
   for (var i = 0; i < newNode.childNodes.length; i++)   {
      for (var j = 0; j < newNode.childNodes[i].childNodes.length; j++)   {
          var currentNode = newNode.childNodes[i].childNodes[j];
          // Change names and ids
          if (currentNode.name)   {
             var matches = currentNode.name.match(reg_exp);
             currentNode.name = matches[1] + (parseInt(matches[2]) + 1);
          }
          if (currentNode.id)   {
             var matches = currentNode.id.match(reg_exp);
             currentNode.id = matches[1] + (parseInt(matches[2]) + 1);
          }

          // Get any special changes
          switch (currentNode.nodeName.toLowerCase())  {
          case 'input':
             switch (currentNode.type)   {
             case 'text':
                currentNode.value = '';
                break;
             }
             break;
          case 'textarea':
             currentNode.value = '';
             break;
          case 'select':
             currentNode.selectedIndex = 0;
             break;
          }
      }
   }
   tblBody.appendChild(newNode);
   if (tblBody.rows.length == 2)   {
      toggleDelete(tblBody, false);
   }
}

function removeRowFromForm (instance, minRows)   {
   var tblBody = document.getElementById(instance).tBodies[0];
   var length = tblBody.rows.length;
   if (length <= minRows)   {
      return;
   }

   tblBody.deleteRow(length - 1);
}

function removeTargetRowFromForm (row)   {
   var tr = row.parentNode.parentNode;
   var tblBody = tr.parentNode;
   if (tblBody.rows.length <= 1)   {
      return false;
   }

   tblBody.removeChild(tr);

   if (tblBody.rows.length == 1)   {
      toggleDelete(tblBody, true);
   }
}

function toggleDelete(tblBody, hide)   {
   var reg_exp = /^(delete_)(\d{1,3})$/;
   var currentRow= tblBody.firstChild;
   while (currentRow)   {
      var currentNode = currentRow.firstChild;
      while (currentNode)   {
         var currentItem = currentNode.firstChild;
         while (currentItem)   {
             if (currentItem.id)   {
                var matches = currentItem.id.match(reg_exp);
                if (matches != null)   {
                   if (hide)   {
                      currentItem.style.display = 'none';
                   }
                   else   {
                      currentItem.style.display = 'block';
                   }
                }
             }
             var currentItem = currentItem.nextSibling;
         }
         var currentNode = currentNode.nextSibling;
      }
      var currentRow = currentRow.nextSibling;
   }
}

function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v3.0
var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); 
  if (!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

