var help_delay = 500;
var HelpTimer = null;
var sub_delay = 500;
var SubTimer = null;

function scroll_with(src_id, dst_id)
//allow scrolling of both textarea windows together, works only in MSIE and newest seamonkey, not older firefox, mozilla, opera
{
  var src = document.getElementById(src_id); 
  var dst = document.getElementById(dst_id);

  if (src&&dst)
  {
    dst.scrollLeft = src.scrollLeft;
  }
  else
  {
    if (!src) 
      {
      alert(src_id);
      alert(src);
      }
    if (!dst)
	{
	    alert(dst_id);
	    alert(dst);
        }
  }
}

function SetFormSubmit(form, submit_value)
{
  var table = document.getElementById(form.name + '_table');
  if (table)
  {
    NullInvisibleFormValues(table, 0);
  }
  else
  {
//    alert('Form table not found');
  }
  form.submit_type.value = submit_value;
}

function SetFormSubmitExt(form, submit_value, submit_parameter1)
{
  var table = document.getElementById(form.name + '_table');
  if (table)
  {
    NullInvisibleFormValues(table, 0);
  }
  else
  {
//    alert('Form table not found');
  }
  form.submit_type.value = submit_value;
  form.submit_parameter1.value = submit_parameter1;  
}

function ExpandCollapse(div_id, img_visible, img_hidden, var_root)
{ 
  var div = document.getElementById(div_id);
  var img = document.getElementById(div_id+'_image');  
  var table = document.getElementById(div_id+'_table');
//  if (!div) alert('Div not found');  
//  if (!img) alert('Img not found');  
//  if (!table) alert('Table not found');  
  if (div && img && table)
  {
    if (div.style.visibility == "hidden")
    { 
      table.style.position = 'static';
      div.style.visibility = '';
      img.src = img_visible;
      var form = document.getElementById('form_entry');
      if (form)
      {
        if ((form.collapsed_divs.value != '')&&(form.collapsed_divs.value.substr(form.collapsed_divs.value.length - 1, 1) != ','))
            form.collapsed_divs.value = form.collapsed_divs.value + ',';
        form.collapsed_divs.value = form.collapsed_divs.value.replace(var_root + ',', '');
      }
    }
    else
    {
      table.style.position = 'absolute';
      table.style.top = -1000
      table.style.left = -1000        
      div.style.visibility = 'hidden';      
      img.src = img_hidden;
      var form = document.getElementById('form_entry');
      if (form)
      {
        if ((form.collapsed_divs.value != '')&&(form.collapsed_divs.value.substr(form.collapsed_divs.value.length - 1, 1) != ','))
            form.collapsed_divs.value = form.collapsed_divs.value + ',';
        form.collapsed_divs.value = form.collapsed_divs.value + var_root + ',';
      }
    }
  }  
}


function SwapSheets(aIndex, aArray)
{
  var i = 0
  for (i = 0; i < aArray.length; i ++)
  {
    var div = document.getElementById(aArray[i][0]);
//    if (!div) alert('Sheet not found');  
    if (div)
    {
      var f = 0;
      var j = 0;
      for (j = 0; j < aArray[i][1].length; j++)
      { 
        if (aArray[i][1][j] == aIndex)
          f = 1
      }     
      if (f == 1)
      { 
        div.style.visibility = '';
        div.style.position = 'static';        
      }
      else
      {
        div.style.visibility = 'hidden';
        div.style.position = 'absolute';
        div.style.top = -1000
        div.style.left = -1000        
       // seting values to null
//        NullFormValues(div); 
      }
    }  
  }    
}

function NullInvisibleFormValues(node, hide)
{
  if (node)
  {
    var i = 0;
    if (node.tagName == 'TABLE')
    {
      // alert('Table : ' + node.name + ',' + node.id + ',' + node.style.visibility);
      if ((hide == 1)||(node.style.visibility == 'hidden'))
      {
        // alert('Hidding : ' + node.name + ',' + node.tagName + ',' + node.id);
        for (i = 0; i < node.childNodes.length; i++)
        {
          NullInvisibleFormValues(node.childNodes[i], 1);
        }
      }
      else
      {
        for (i = 0; i < node.childNodes.length; i++)
        {
          NullInvisibleFormValues(node.childNodes[i], 0);
        }
      }
    }
    else
    {
      for (i = 0; i < node.childNodes.length; i++)
      {
        NullInvisibleFormValues(node.childNodes[i], hide);
      }
    }    
    if ((hide == 1)&&((node.tagName == 'INPUT')||(node.tagName == 'SELECT')||(node.tagName == 'TEXTAREA')))
    {
      // alert('Hidding : ' + node.name);
      node.name = '';
    }
  }
}

function ShowHelp(event, help)
{
  var div = document.getElementById('help_div')
  if (div)
  {  
    if (HelpTimer)
    {
      clearTimeout(HelpTimer);
      HelpTimer = null;
    }
    if (div.innerHTML != help)
    {
      if (document.layers) 
      { //netscape
        div.style.left = 0;
        div.style.top = 0;
        div.innerHTML = help;
        div.style.left = event.pageX;
        if (event.pageX+div.offsetWidth > document.body.offsetWidth - 20)
        {
          div.style.left = event.pageX - div.offsetWidth - 10;
        }
        else
        {
          div.style.left = event.pageX + 10;
        }
        div.style.top = event.pageY;
      } 
      else if (document.all)
      { // IE
        div.style.left = 0;
        div.style.top = 0;
        div.innerHTML = help;
        if (window.event.x+document.body.scrollLeft+div.offsetWidth > document.body.offsetWidth - 20)
        {
          div.style.left = window.event.x+document.body.scrollLeft - div.offsetWidth - 10;
        }
        else
        {
          div.style.left = window.event.x+document.body.scrollLeft;
        }
        div.style.top = window.event.y+document.body.scrollTop;
      } 
      else if (document.getElementById) 
      { // Netscape 6, firefox, mozilla 
        div.style.left = 0;
        div.style.top = 0;
        div.innerHTML = help;
        if (event.pageX+div.offsetWidth > document.body.offsetWidth - 20)
        {
          div.style.left = event.pageX - div.offsetWidth - 10;
        }
        else
        {
          div.style.left = event.pageX + 10;
        }
        div.style.top = event.pageY;
      }       
      div.style.visibility = 'visible';
    }
  } 
}

function HideHelp()
{ 
  if (HelpTimer == null)
	{
    HelpTimer = setTimeout("HideVisibleHelp()", help_delay);
	}
	else
	{
//	  Alert('Trying to hide help before some other is hidden');
	}		 
}

function HideVisibleHelp()
{
	if (HelpTimer != null)
	{
    var div = document.getElementById('help_div')
    if (div)
    {
    	div.style.visibility='hidden';
      div.innerHTML = '';
    }
	}
  clearTimeout(HelpTimer);
	HelpTimer = null;
}

function CheckNonEmpty(item, search_check)
{
  var check = document.getElementById(search_check);
  if (check)
  {
    if (item.value != "")
    {
      check.checked = true;
    }
    else
    {
      check.checked = false;
    }    
  }    
}


function SendToClipboard(text) 
{ 
  if( window.clipboardData && window.clipboardData.setData ) 
  { 
    window.clipboardData.setData("Text", text); 
  } 
  else 
  { 
    alert("Internet Explorer required"); 
  }
}

function ShowSub(event, sub_text)
{
  var div = document.getElementById('sub_div')
  if (div)
  {  
    if (SubTimer)
    {
      clearTimeout(SubTimer);
      SubTimer = null;
    }
    if (sub_text != null)
    { 
      if (sub_text == '')
      {
        div.innerHTML = sub_text;
        div.style.visibility = 'hidden';
      }
      else
      {
        if (div.innerHTML != sub_text)
        {
          if (document.layers) 
          { //netscape
              div.style.left = event.pageX;
              div.style.top = event.pageY;
          } 
          else if (document.all)
          { // IE
            div.style.left = window.event.x+document.body.scrollLeft;
            div.style.top = window.event.y+document.body.scrollTop;
          } 
          else if (document.getElementById) 
          { // Netscape 6, firefox, mozilla 
              div.style.left = event.pageX;
              div.style.top = event.pageY;
          }       
          div.innerHTML = sub_text;
          div.style.visibility = 'visible';
        }
      }
    }  
  } 
}

function HideSub()
{ 
  if (SubTimer == null)
	{
    SubTimer = setTimeout("HideVisibleSub()", sub_delay);
	}
}

function HideVisibleSub()
{
	if (SubTimer != null)
	{
    var div = document.getElementById('sub_div')
    if (div)
    {
    	div.style.visibility='hidden';
      div.innerHTML = '';
    }
	}
  clearTimeout(SubTimer);
	SubTimer = null;
}
 

