// --------------------------------------------------
function days_in_february(arg_year) {
  var arg_year = Number(arg_year);
  if (arg_year < 1000 || arg_year > 9999) {
    return false;
  }
  return (((arg_year % 4 == 0) && ((!(arg_year % 100 == 0)) || (arg_year % 400 == 0))) ? 29 : 28 );
}
// --------------------------------------------------
function fade_in(arg_object_id, arg_opacity, arg_step) {
  if (arg_opacity >= 0 && arg_opacity <= 100) {
    if (is_ie()) {
      document.getElementById(arg_object_id).style.filter = "alpha(opacity = " + arg_opacity + ")";
      document.getElementById(arg_object_id).filters.alpha.opacity = arg_opacity;
    } else {
      document.getElementById(arg_object_id).style.opacity = arg_opacity / 100;
    }
    if (arg_opacity == 0) {
      document.getElementById(arg_object_id).style.visibility = "visible";
    }
    arg_opacity += arg_step;
    window.setTimeout("fade_in('" + arg_object_id + "', " + arg_opacity + ", " + arg_step + ")", 1);
  }
}
// --------------------------------------------------
function fade_out(arg_object_id, arg_opacity, arg_step) {
  if (arg_opacity >= 0 && arg_opacity <= 100) {
    if (is_ie()) {
      document.getElementById(arg_object_id).style.filter = "alpha(opacity = " + arg_opacity + ")";
      document.getElementById(arg_object_id).filters.alpha.opacity = arg_opacity;
    } else {
      document.getElementById(arg_object_id).style.opacity = arg_opacity / 100;
    }
    if (arg_opacity == 0) {
      document.getElementById(arg_object_id).style.visibility = "hidden";
    }
    arg_opacity -= arg_step;
    window.setTimeout("fade_out('" + arg_object_id + "', " + arg_opacity + ", " + arg_step + ")", 1);
  }
}
// --------------------------------------------------
function get_file_ext(arg_filename) {
  var var_output = (/[.]/.exec(arg_filename)) ? /[^.]+$/.exec(arg_filename).toString() : undefined;
  return var_output;
}
// --------------------------------------------------
function go_to(arg_url, arg_target) {
  switch(arg_target) {
    case "blank":
      window.open(arg_url);
      break;
    default:
      window.location.href = arg_url;
      break;
  }
}
// --------------------------------------------------
function is_date(arg_year, arg_month, arg_day) {
  var arr_days_month = new Array(0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
  if (isNaN(arg_year) || arg_year < 1000 || arg_year > 9999) {
    return false;
  }
  if (isNaN(arg_month) || arg_month < 1 || arg_month > 12) {
    return false;
  }
  if (isNaN(arg_day) || arg_day < 1 || arg_day > arr_days_month[arg_month]) {
    return false;
  }
  if ((arg_month == 2) && (arg_day > days_in_february(arg_year))) {
    return false;
  }
  return true;
}
// --------------------------------------------------
function is_email(arg_string) {
  var obj_regexp = /^[0-9a-zA-Z\-\_]+(.[0-9a-zA-Z\-\_]+)*@[0-9a-zA-Z\-]+(.[0-9a-zA-Z\-]+)*\.[0-9a-zA-Z][0-9a-zA-Z]+$/;
  return obj_regexp.test(arg_string);
}
// --------------------------------------------------
function is_ie() {
  return navigator.appName.indexOf("Microsoft")!= -1;
}
// --------------------------------------------------
function pick_date(arg_identifier) {
}
// --------------------------------------------------
function populate_select(arg_select, arg_url, arg_parameters, arg_node_name, arg_text_column, arg_value_column, arg_selected_value, arg_order_by, arg_order_dir, arg_empty_option) {
  arg_select.length = 0;
  if (arg_empty_option) {
    arg_select.options[arg_select.length] = new Option("", "");
  }
  var obj_xml_http = (is_ie()) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
  obj_xml_http.open("POST", arg_url, false);
  obj_xml_http.setRequestHeader("content-type", "application/x-www-form-urlencoded");
  var_parameters = "order_by=" + arg_order_by +
                   "&order_dir=" + arg_order_dir;
  if (arg_parameters != "") {
    var_parameters += "&" + arg_parameters;
  }
  obj_xml_http.setRequestHeader("content-length", var_parameters.length);
  obj_xml_http.send(var_parameters);
  if (obj_xml_http.status == 200) {
    var obj_xml_doc = obj_xml_http.responseXML;
    var obj_response_xml_node = obj_xml_doc.getElementsByTagName("response")[0];
    var obj_xml_node_list = obj_response_xml_node.getElementsByTagName(arg_node_name);
    for (i = 0; i < obj_xml_node_list.length; i++) {
      var obj_text_xml_node = obj_xml_node_list[i].getElementsByTagName(arg_text_column)[0];
      var var_text = (is_ie()) ? obj_text_xml_node.text : obj_text_xml_node.textContent;
      var obj_value_xml_node = obj_xml_node_list[i].getElementsByTagName(arg_value_column)[0];
      var var_value = (is_ie()) ? obj_value_xml_node.text : obj_value_xml_node.textContent;
      arg_select.options[arg_select.length] = new Option(var_text, var_value);
    }
    arg_select.value = arg_selected_value;
  } else {
    alert(obj_xml_http.statusText);
    return;
  }
}
// --------------------------------------------------
function popup(arg_url, arg_name, arg_width, arg_height) {
  window.open(arg_url, arg_name, "height=" + arg_height + ", left=50, menubar=no, resizable=no, scrollbars=yes, status=no, toolbar=no, top=50, width=" + arg_width);
}
// --------------------------------------------------
function preload_image(arg_src, arg_width, arg_height) {
  obj_image = new Image(arg_width, arg_height);
  obj_image.src = arg_src;
}
// --------------------------------------------------
function set_language(arg_language) {
  var obj_xmlhttp = (is_ie()) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
  obj_xmlhttp.open("POST", "/xml/set_language.php", false);
  obj_xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded");
  var var_parameters = "language=" + arg_language;
  obj_xmlhttp.setRequestHeader("content-length", var_parameters.length);
  obj_xmlhttp.send(var_parameters);
  if (obj_xmlhttp.status == 200) {
    var obj_xml_doc = obj_xmlhttp.responseXML;
    var obj_response_node = obj_xml_doc.getElementsByTagName("response")[0];
    var obj_result_node = obj_response_node.getElementsByTagName("result")[0];
    var var_result = (is_ie()) ? obj_result_node.text : obj_result_node.childNodes[0].nodeValue;
    if (var_result == "1") {
      location.reload();
    }
  } else {
    alert(obj_xmlhttp.statusText);
    return;
  }
}
// --------------------------------------------------
function trim(arg_string) {
  var var_reg_exp = /^\s*|\s*$/g;
  return arg_string.toString().replace(var_reg_exp, "");
}
// --------------------------------------------------