// ***** Check *****************************************************************

// ***** CheckAll  *****

function CheckAll (form, name, checked)
{
	var inputs = document.getElementById(form).getElementsByTagName('input');
	for (var i = 0; i < inputs.length; i++) if (inputs[i].name == name) inputs[i].checked = checked;
	return false;
}

// ***** IsChecked *****

function IsChecked(form, name, msg_not_checked)
{
  var result = false;
	var inputs = document.getElementById(form).getElementsByTagName('input');
	for (var i = 0; i < inputs.length; i++) if (inputs[i].name == name) result = result || inputs[i].checked;
	if (!result) alert(msg_not_checked);
	return result;
}

// ***** DoChecked *****

function DoChecked(form, name, actn_name, actn_value, msg_not_checked, msg_confirmation)
{
  if (       !IsChecked(form, name, msg_not_checked)) return false;
  if (msg_confirmation && !confirm(msg_confirmation)) return false;
  document.getElementById(actn_name).value = actn_value;
  document.getElementById(     form).submit();
  return false;
}


// ***** Form ******************************************************************

// ***** FormClear *****

function FormClear(form)
{
  var tags = document.getElementById(form).getElementsByTagName('input');
  for (var i = 0; i < tags.length; i++)
  {
    if (tags[i].type !=     'text')
    if (tags[i].type != 'password')
    if (tags[i].type != 'checkbox') continue;
    if (tags[i].type ==     'text') tags[i].value = '';
    if (tags[i].type == 'password') tags[i].value = '';
    if (tags[i].type == 'checkbox') tags[i].checked = false;
    if (typeof(tags[i].onchange) == 'function') tags[i].onchange();
    if (typeof(tags[i].onclick ) == 'function') tags[i].onclick ();
  }

  var tags = document.getElementById(form).getElementsByTagName('select');
  for (var i = 0; i < tags.length; i++)
  {
    tags[i].selectedIndex = 0;
    if (typeof(tags[i].onchange) == 'function') tags[i].onchange();
    if (typeof(tags[i].onclick ) == 'function') tags[i].onclick ();
  }

  var tags = document.getElementById(form).getElementsByTagName('textarea');
  for (var i = 0; i < tags.length; i++)
  {
    tags[i].innerHTML = '';
    if (typeof(tags[i].onchange) == 'function') tags[i].onchange();
    if (typeof(tags[i].onclick ) == 'function') tags[i].onclick ();
  }
}

// ***** FormSetDisabled *****

function FormSetDisabled(sender, children)
{
  for (var i in children)
  {
    document.getElementById(children[i]).disabled = sender.checked;
    document.getElementById(children[i]).style.backgroundColor = sender.checked ? "#E0E0E0" : "#FFFFFF";
  }
}

// ***** FormSubmitAsCopy *****

function FormSubmitAsCopy(sender, id_name, id_value)
{
  document.getElementById(id_name).value = sender.checked ? '' : id_value;
}


// ***** DataHttpRequest *******************************************************

if(!window.XMLHttpRequest)
{
  var XMLHttpRequest = function()
  {
    try{ return new ActiveXObject(   "MSXML3.XMLHTTP")     } catch(e) {}
    try{ return new ActiveXObject(   "MSXML2.XMLHTTP.3.0") } catch(e) {}
    try{ return new ActiveXObject(   "MSXML2.XMLHTTP")     } catch(e) {}
    try{ return new ActiveXObject("Microsoft.XMLHTTP")     } catch(e) {}
  }
}

function DataHttpRequest(site_path, link, parent, child)
{
  var req = new XMLHttpRequest();
  req.open('get', site_path+'utils/data.php?array='+escape(link)+'&value='+escape(document.getElementById(parent).value));
  req.send(null);
  req.onreadystatechange = function()
  {
    if(req.readyState == 4 && req.status == 200)
    {
      var arr = req.responseText.split('\r\n');
      var tag = document.getElementById(child);
      while (tag.options.length > 1) tag.remove(tag.options.length-1);
      for (var i in arr) if (arr[i])
      {
        var pos = arr[i].indexOf(' ');
        if (pos == -1) continue;
        var val = arr[i].substr(0,pos);
        var txt = arr[i].substr(1+pos);
        if (val == '') continue;
        if (txt == '') continue;
        tag.options[tag.options.length] = new Option(txt, val, false, false);
      }
    }
  }
}
