<!DOCTYPE html>
<html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
<head>
<title>Ra mắt công ty mã nguồn mở đầu tiên tại Việt Nam</title>
<meta name="description" content="Ra mắt công ty mã nguồn mở đầu tiên tại Việt Nam - Savefile - Tin Tức -...">
<meta name="author" content="NUKEVIET">
<meta name="copyright" content="NUKEVIET []">
<meta name="robots" content="noindex, follow">
<meta name="googlebot" content="noindex, follow">
<meta name="msnbot" content="noindex, follow">
<meta name="coccocbot" content="noindex, follow">
<meta name="generator" content="NukeViet v4.5">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta property="og:title" content="Ra mắt công ty mã nguồn mở đầu tiên tại Việt Nam">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin Tức - https&#x3A;&#x002F;&#x002F;dev.gxiris.com&#x002F;vi&#x002F;news&#x002F;savefile&#x002F;Tin-tuc&#x002F;Ra-mat-cong-ty-ma-nguon-mo-dau-tien-tai-Viet-Nam-1.html">
<meta property="og:site_name" content="NUKEVIET">
<meta property="og:url" content="https://dev.gxiris.com/vi/news/savefile/Tin-tuc/Ra-mat-cong-ty-ma-nguon-mo-dau-tien-tai-Viet-Nam-1.html">
<link rel="shortcut icon" href="https://dev.gxiris.com/favicon.ico">
<link rel="canonical" href="https://dev.gxiris.com/vi/news/savefile/Tin-tuc/Ra-mat-cong-ty-ma-nguon-mo-dau-tien-tai-Viet-Nam-1.html">
<link rel="alternate" href="https://dev.gxiris.com/vi/news/rss/" title="Tin Tức" type="application/rss+xml">
<link rel="alternate" href="https://dev.gxiris.com/vi/news/rss/Tin-tuc/" title="Tin Tức - Tin tức" type="application/rss+xml">
<link rel="alternate" href="https://dev.gxiris.com/vi/news/rss/thong-cao-bao-chi/" title="Tin Tức - Thông cáo báo chí" type="application/rss+xml">
<link rel="alternate" href="https://dev.gxiris.com/vi/news/rss/Ban-tin-noi-bo/" title="Tin Tức - Bản tin nội bộ" type="application/rss+xml">
<link rel="alternate" href="https://dev.gxiris.com/vi/news/rss/Tin-cong-nghe/" title="Tin Tức - Tin công nghệ" type="application/rss+xml">
<link rel="alternate" href="https://dev.gxiris.com/vi/news/rss/San-pham/" title="Tin Tức - Sản phẩm" type="application/rss+xml">
<link rel="alternate" href="https://dev.gxiris.com/vi/news/rss/Doi-tac/" title="Tin Tức - Đối tác" type="application/rss+xml">
<link rel="alternate" href="https://dev.gxiris.com/vi/news/rss/Tuyen-dung/" title="Tin Tức - Tuyển dụng" type="application/rss+xml">
<link rel="preload" as="style" href="https://dev.gxiris.com/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://dev.gxiris.com/themes/theme_xiris/fonts/font6/css/all.css" type="text/css">
<link rel="preload" as="style" href="https://dev.gxiris.com/themes/theme_xiris/css/additional_css/datetimepicker/css/bootstrap-material-datetimepicker.css" type="text/css">
<link rel="preload" as="style" href="https://dev.gxiris.com/themes/theme_xiris/css/additional_css/datetimepicker/css/font_icon.css" type="text/css">
<link rel="preload" as="style" href="https://dev.gxiris.com/themes/theme_xiris/css/bootstrap.min.css" type="text/css">
<link rel="preload" as="style" href="https://dev.gxiris.com/themes/theme_xiris/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://dev.gxiris.com/themes/theme_xiris/css/style.responsive.css" type="text/css">
<link rel="preload" as="style" href="https://dev.gxiris.com/themes/theme_xiris/css/news.css" type="text/css">
<link rel="preload" as="style" href="https://dev.gxiris.com/themes/theme_xiris/css/custom.css" type="text/css">
<link rel="preload" as="style" href="https://dev.gxiris.com/assets/js/jquery-ui/jquery-ui.min.css" type="text/css">
<link rel="preload" as="style" href="https://dev.gxiris.com/assets/js/select2/select2.min.css" type="text/css">
<link rel="preload" as="style" href="https://dev.gxiris.com/themes/theme_xiris/css/yearpicker.css" type="text/css">
<link rel="preload" as="style" href="https://dev.gxiris.com/themes/theme_xiris/css/tree.chart.css" type="text/css">
<link rel="preload" as="style" href="https://dev.gxiris.com/themes/theme_xiris/css/jquery-confirm.min.css" type="text/css">
<link rel="preload" as="style" href="https://unpkg.com/tributejs@5.1.3/dist/tribute.css" type="text/css">
<link rel="preload" as="script" href="https://dev.gxiris.com/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/themes/theme_xiris/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/themes/theme_xiris/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/themes/theme_xiris/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/themes/theme_xiris/js/additional_js/moment/moment.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/themes/theme_xiris/js/additional_js/moment/js/moment-with-locales.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/themes/theme_xiris/js/additional_js/moment/locale/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/themes/theme_xiris/css/additional_css/datetimepicker/js/bootstrap-material-datetimepicker.js" type="text/javascript">
<link rel="preload" as="script" href="/themes/theme_xiris/js/fullcalender.min.js?t=1772612066" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/assets/js/jquery-ui/jquery-ui.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/assets/js/language/jquery.ui.datepicker-vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/assets/js/select2/select2.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/themes/theme_xiris/js/yearpicker.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/themes/theme_xiris/js/tree.chart.js" type="text/javascript">
<link rel="preload" as="script" href="/themes/theme_xiris/js/jquery-confirm.min.js?t=1772612066" type="text/javascript">
<link rel="preload" as="script" href="https://unpkg.com/tributejs@5.1.3/dist/tribute.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://connect.facebook.net/vi_VN/sdk.js#xfbml=1&version=v18.0&appId=363469809004152&autoLogAppEvents=1" type="text/javascript" crossorigin="anonymous">
<link rel="preload" as="script" href="https://dev.gxiris.com/webpush/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com/themes/theme_xiris/js/bootstrap.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://dev.gxiris.com//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit" type="text/javascript">
<link rel="stylesheet" href="https://dev.gxiris.com/assets/css/font-awesome.min.css">
<link rel="stylesheet" href="https://dev.gxiris.com/themes/theme_xiris/fonts/font6/css/all.css">
<link rel="stylesheet" href="https://dev.gxiris.com/themes/theme_xiris/css/additional_css/datetimepicker/css/bootstrap-material-datetimepicker.css">
<link rel="stylesheet" href="https://dev.gxiris.com/themes/theme_xiris/css/additional_css/datetimepicker/css/font_icon.css">
<link rel="stylesheet" href="https://dev.gxiris.com/themes/theme_xiris/css/bootstrap.min.css">
<link rel="stylesheet" href="https://dev.gxiris.com/themes/theme_xiris/css/style.css">
<link rel="stylesheet" href="https://dev.gxiris.com/themes/theme_xiris/css/style.responsive.css">
<link rel="StyleSheet" href="https://dev.gxiris.com/themes/theme_xiris/css/news.css">
<link rel="stylesheet" href="https://dev.gxiris.com/themes/theme_xiris/css/custom.css">
<link type="text/css" href="https://dev.gxiris.com/assets/js/jquery-ui/jquery-ui.min.css" rel="stylesheet" />
<link href="https://dev.gxiris.com/assets/js/select2/select2.min.css" type="text/css" rel="stylesheet" />
<link type="text/css" href="https://dev.gxiris.com/themes/theme_xiris/css/yearpicker.css" rel="stylesheet" />
<link rel="stylesheet" type="text/css" href="https://dev.gxiris.com/themes/theme_xiris/css/tree.chart.css">
<link type="text/css" href="https://dev.gxiris.com/themes/theme_xiris/css/jquery-confirm.min.css" rel="stylesheet" />
<link rel="stylesheet" href="https://unpkg.com/tributejs@5.1.3/dist/tribute.css" />
<style>
    .load{
        display: block !important;
    }
    .no_load{
        display: none !important;
    }
    .four {
        width: 10px;
        height: 10px;
        background-color: #fff;
        border-radius: 50%;
        animation: loader4Animation 1s linear infinite;
        position: absolute;
        right: -25px;
        top: 5px;
    }
    @keyframes loader4Animation {
        0% {
          background-color: rgba(0,0,128, 1);
          box-shadow: 15px 0px 0px 0px rgba(0,0,128, 0.67),
          30px 0px 0px 0px rgba(0,0,128, 0.33);
      }
      17% {
          background-color: rgba(0,0,128, 0.67);
          box-shadow: 15px 0px 0px 0px rgba(0,0,128, 1),
          30px 0px 0px 0px rgba(0,0,128, 0.67);
      }
      33% {
          background-color: rgba(0,0,128, 0.33);
          box-shadow: 15px 0px 0px 0px rgba(0,0,128, 0.67),
          30px 0px 0px 0px rgba(0,0,128, 1);
      }
      50% {
          background-color: rgba(0,0,128, 0);
          box-shadow: 15px 0px 0px 0px rgba(0,0,128, 0.33),
          30px 0px 0px 0px rgba(0,0,128, 0.67);
      }
      67% {
          background-color: rgba(0,0,128, 0.33);
          box-shadow: 15px 0px 0px 0px rgba(0,0,128, 0),
          30px 0px 0px 0px rgba(0,0,128, 0.33);
      }
      83% {
          background-color: rgba(0,0,128, 0.67);
          box-shadow: 15px 0px 0px 0px rgba(0,0,128, 0.33),
          30px 0px 0px 0px rgba(0,0,128, 0);
      }
      100% {
          background-color: rgba(0,0,128, 1);
          box-shadow: 15px 0px 0px 0px rgba(0,0,128, 0.67),
          30px 0px 0px 0px rgba(0,0,128, 0.33);
      }
  }
  .load{
    position: fixed;
    height: 100vh;
    width: 100vw;
    top: 0px;
    left: 0px;
    z-index: 10000000;
    background: rgba(0, 0, 0, 0.3);
    text-align: center;
}
.load_box{
    height: 100px;
    width: 100px;
    position: absolute;
    top: 45%;
    display: inline-block;
    padding: 30px;
}
.load_box i{
    font-size: 40px;
    color: #fff;
    z-index: 100000000;
}
.load_box span{

}

.no_load{
    display: none;
}
:root {
  --primary-color: #fff;
  --background-color: #017e84;
  --background-color-hover: #036267;
}
</style>
<style type="text/css">
	body{background: #fff;}
</style>
  <div id="fb-root"></div>
</head>
<body id="body">

  <div id="form_in_danh_sach"></div>
  <div id="box_xem_danh_gia" class="hidden">
    <div id="box_content_danh_gia">

    </div>
  </div>
  <div class="notification" id="notification">
    <span class="message">

    </span>
    <span class="close-btn" onclick="closeNotification()">&times;</span>
  </div>
  <div class="modal fade" id="modal_doi_pass" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false">
    <div class="modal-dialog">

      <div class="modal-content">
        <div class="modal-header">
          <h4 class="modal-title text-center" id="title_modal_doi_pass">
            Vui lòng đổi mật khẩu để đảm bảo tính bảo mật
          </h4>
        </div>
        <div class="modal-body">
          <p>
            <div class="alert alert-danger">
              Mật khẩu phải có ít nhất 8 ký tự, bao gồm chữ, chữ IN HOA, số và ký tự đặc biệt!
            </div>
          </p>
          <p>
            <input type="password" id="mat_khau_1" class="form-control" name="" placeholder="Nhập mật khẩu mới">
          </p>
          <p>
            <input type="password" id="mat_khau_2" class="form-control" name="" placeholder="Nhập lại mật khẩu mới">
          </p>
          <p class="text-center">
            <button class="btn btn-primary" type="button" onclick="doi_mat_khau()">Đổi mật khẩu</button>
          </p>

        </div>
      </div>

    </div>
  </div>
  <button id="hiddenPushBtn" style="display:none"></button>
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">NUKEVIET</h2>
		<p class="pull-right"><a title="NUKEVIET" href="https://dev.gxiris.com/">https://dev.gxiris.com</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Ra mắt công ty mã nguồn mở đầu tiên tại Việt Nam</h1>
		<ul class="list-inline">
			<li>Thứ năm - 27/05/2010 15:39</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
			Mã nguồn mở NukeViet vốn đã quá quen thuộc với cộng đồng CNTT Việt Nam trong mấy năm qua. Tuy chưa hoạt động chính thức, nhưng chỉ trong khoảng 5 năm gần đây, mã nguồn mở NukeViet đã được dùng phổ biến ở Việt Nam, áp dụng ở hầu hết các lĩnh vực, từ tin tức đến thương mại điện tử, từ các website cá nhân cho tới những hệ thống website doanh nghiệp.
		</div>
				<div class="imghome">
			<img alt="Thành lập VINADES.,JSC" src="https://dev.gxiris.com/uploads/news/nangly.jpg" width="460" class="img-thumbnail" />
						<p>
				<em>Thành lập VINADES.,JSC</em>
			</p>
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<p>Để chuyên nghiệp hóa việc phát hành mã nguồn mở NukeViet, Ban quản trị NukeViet quyết định thành lập doanh nghiệp chuyên quản NukeViet mang tên Công ty cổ phần Phát triển nguồn mở Việt Nam (Viết tắt là VINADES.,JSC), chính thức ra mắt vào ngày 25-2-2010 (trụ sở tại Hà Nội) nhằm phát triển, phổ biến hệ thống NukeViet tại Việt Nam.<br /> <br /> Theo ông Nguyễn Anh Tú, Chủ tịch HĐQT VINADES, công ty sẽ phát triển bộ mã nguồn NukeViet nhất quán theo con đường mã nguồn mở đã chọn, chuyên nghiệp và quy mô hơn bao giờ hết. Đặc biệt là hoàn toàn miễn phí đúng tinh thần mã nguồn mở quốc tế.<br /> <br /> NukeViet là một hệ quản trị nội dung mã nguồn mở (Opensource Content Management System) thuần Việt từ nền tảng PHP-Nuke và cơ sở dữ liệu MySQL. Người sử dụng thường gọi NukeViet là portal vì nó có khả năng tích hợp nhiều ứng dụng trên nền web, cho phép người sử dụng có thể dễ dàng xuất bản và quản trị các nội dung của họ lên internet hoặc intranet.<br /> <br /> NukeViet cung cấp nhiều dịch vụ và ứng dụng nhờ khả năng tăng cường tính năng thêm các module, block... tạo sự dễ dàng cài đặt, quản lý, ngay cả với những người mới tiếp cận với website. Người dùng có thể tìm hiểu thêm thông tin và tải về sản phẩm tại địa chỉ https://nukeviet.vn</p><blockquote> <p> <em>Thông tin ra mắt công ty VINADES có thể tìm thấy trên trang 7 báo Hà Nội Mới ra ngày 25/02/2010 (<a href="http://hanoimoi.com.vn/newsdetail/Cong_nghe/309750/ra-mat-cong-ty-ma-nguon-mo-dau-tien-tai-viet-nam.htm" target="_blank">xem chi tiết</a>), Bản tin tiếng Anh của đài tiếng nói Việt Nam ngày 26/02/2010 (<a href="http://english.vovnews.vn/Home/First-opensource-company-starts-operation/20102/112960.vov" target="_blank">xem chi tiết</a>); trang 7 báo An ninh Thủ Đô số 2858 ra vào thứ 2 ngày 01/03/2010 và các trang tin tức, báo điện tử khác.</em></p></blockquote>
		</div>
				<div id="author">
						<p>
				<strong>Tác giả:</strong>
				Quỳnh Nhi
			</p>
						<p>
				<strong>Nguồn tin:</strong>
				Báo Hà Nội Mới
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://dev.gxiris.com/vi/news/savefile/Tin-tuc/Ra-mat-cong-ty-ma-nguon-mo-dau-tien-tai-Viet-Nam-1.html" title="Ra mắt công ty mã nguồn mở đầu tiên tại Việt Nam">https://dev.gxiris.com/vi/news/savefile/Tin-tuc/Ra-mat-cong-ty-ma-nguon-mo-dau-tien-tai-Viet-Nam-1.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; NUKEVIET
		</div>
		<div id="contact">
			<a href="mailto:"></a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://dev.gxiris.com/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
    <div class="no_load">
      <div style="text-align: center;background: #dcdcdc;width: 100%;padding: 10px;">
        <span style="position: relative;font-size: 16px; font-weight: 600;">
          Vui lòng đợi trong giây lát
          <div class="loader four">
          </div>
      </span>
      <span>

      </span>
  </div>
  <div class="load_box">
    <span>
      <i class="fa fa-spinner icon_loading"></i>
  </span>
</div>
</div>
<div id="run_cronjobs" style="visibility:hidden;display:none;"><img alt="cron" src="/index.php?second=cronjobs&amp;p=d2lQ98Q4" width="1" height="1" /></div>
<script src="https://dev.gxiris.com/assets/js/jquery/jquery.min.js"></script>
<script>
    var op_nuke='savefile'
  </script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="nv4",nv_check_pass_mstime=1738000,nv_area_admin=0,nv_safemode=0,theme_responsive=1,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://dev.gxiris.com/assets/js/language/vi.js"></script>
<script src="https://dev.gxiris.com/assets/js/DOMPurify/purify3.js"></script>
<script src="https://dev.gxiris.com/assets/js/global.js"></script>
<script src="https://dev.gxiris.com/assets/js/site.js"></script>
<script src="https://dev.gxiris.com/themes/theme_xiris/js/news.js"></script>
<script src="https://dev.gxiris.com/themes/theme_xiris/js/main.js"></script>
<script src="https://dev.gxiris.com/themes/theme_xiris/js/custom.js"></script>
<script src="https://dev.gxiris.com/themes/theme_xiris/js/additional_js/moment/moment.js"></script>
<script src="https://dev.gxiris.com/themes/theme_xiris/js/additional_js/moment/js/moment-with-locales.min.js"></script>
<script src="https://dev.gxiris.com/themes/theme_xiris/js/additional_js/moment/locale/vi.js"></script>
<script src="https://dev.gxiris.com/themes/theme_xiris/css/additional_css/datetimepicker/js/bootstrap-material-datetimepicker.js"></script>
<script>
    function myFunction() {
      var x = document.getElementById("my-Links");
      if (x.style.display === "block") {
        x.style.display = "none";
      } else {
        x.style.display = "block";
      }
    }
  </script>
<script>
    function openNav() {
      document.getElementById("mySidepanel").style.width = "250px";
    }

    function closeNav() {
      document.getElementById("mySidepanel").style.width = "0";
    }
  </script>
<script>
    function openPage(pageName, elmnt, color,mau) {

      // Hide all elements with class="tabcontent" by default */
      var i, tabcontent, tablinks;
      tabcontent = document.getElementsByClassName("tabcontent");
      for (i = 0; i < tabcontent.length; i++) {
        tabcontent[i].style.display = "none";
      }

      // Remove the background color of all tablinks/buttons
      tablinks = document.getElementsByClassName("tablink");
      for (i = 0; i < tablinks.length; i++) {
        tablinks[i].style.backgroundColor = "";
        tablinks[i].style.color="black";
      }

      // Show the specific tab content
      document.getElementById(pageName).style.display = "block";

      // Add the specific color to the button used to open the tab content
      elmnt.style.backgroundColor =color; 

      elmnt.style.color ="white"; 
    }
    // document.addEventListener("DOMContentLoaded", function() {
    // // Hide the loader when the content is fully loaded
    //   document.querySelector(".loader-wrapper").style.display = "none";
    // });
    function loadpage() {
      document.body.prepend(createElementFromHTML('<div class="loader-wrapper">' +
        '<div class="loader">' +
        '<div class="circle1"></div>' +
        '<div class="circle2"></div>' +
        '<div class="circle3"></div>' +
        '<div class="center"></div>' +
        '</div>' +
        '</div>'));

      function createElementFromHTML(htmlString) {
        const div = document.createElement('div');
        div.innerHTML = htmlString.trim();
        return div.firstChild;
      }
      //phan_mem_dang_chay();
      // hello();
      document.querySelector(".loader-wrapper").style.display = "flex";
    }
    function loadpage_tutu() {
      phan_mem_dang_chay();
      hello();
      document.querySelector(".loader-wrapper").style.display = "flex";
    }
    function unload() {
      setTimeout(function() { 
        document.querySelector(".loader-wrapper").style.display = "none";
      }, 1000);

    }

    function unload2() {
      setTimeout(function() { 
        document.querySelector(".loader-wrapper").style.display = "none";
      }, 100);
    }

    var allLinks = document.querySelectorAll(".loadpage");

    // Thêm bộ lắng nghe sự kiện khi click vào mỗi thẻ a
    allLinks.forEach(function(link) {
      link.addEventListener("click", function(event) {
        loadpage();
      });
    });

    var allLinks = document.querySelectorAll(".loadpage_tutu");

    // Thêm bộ lắng nghe sự kiện khi click vào mỗi thẻ a
    allLinks.forEach(function(link) {
      link.addEventListener("click", function(event) {
        loadpage_tutu();
      });
    });
  </script>
<script src="/themes/theme_xiris/js/fullcalender.min.js?t=1772612066"></script>
<script type="text/javascript"src="https://dev.gxiris.com/assets/js/jquery-ui/jquery-ui.min.js"></script>
<script type="text/javascript" src="https://dev.gxiris.com/assets/js/language/jquery.ui.datepicker-vi.js"></script>
<script type="text/javascript" src="https://dev.gxiris.com/assets/js/select2/select2.min.js"></script>
<script type="text/javascript"src="https://dev.gxiris.com/themes/theme_xiris/js/yearpicker.js"></script>
<script src="https://dev.gxiris.com/themes/theme_xiris/js/tree.chart.js"></script>
<script src="/themes/theme_xiris/js/jquery-confirm.min.js?t=1772612066"></script>
<script src="https://unpkg.com/tributejs@5.1.3/dist/tribute.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/vi_VN/sdk.js#xfbml=1&version=v18.0&appId=363469809004152&autoLogAppEvents=1" nonce="TfC8yNBk"></script>
<script src="https://dev.gxiris.com/webpush/main.js"></script>
<script>
    var global_user_id = 0
  </script>
<script type="text/javascript">

    function musicstart(){
      var audio = new Audio('/uploads/business/am_thanh/thong_bao.mp3');
      audio.play();
      setTimeout(function(){ 
        audio.pause();
      }, 
      5000);
    }

  </script>
<script type="module">
  // Import the functions you need from the SDKs you need
    import { initializeApp } from "https://www.gstatic.com/firebasejs/11.3.1/firebase-app.js";
    import { getAnalytics } from "https://www.gstatic.com/firebasejs/11.3.1/firebase-analytics.js";
  // TODO: Add SDKs for Firebase products that you want to use
  // https://firebase.google.com/docs/web/setup#available-libraries

  // Your web app's Firebase configuration
  // For Firebase JS SDK v7.20.0 and later, measurementId is optional
    const firebaseConfig = {
      apiKey: "AIzaSyAmpmNf8D9UnsTG8HH3oQdaSnzmufrMeRM",
      authDomain: "notification-gw.firebaseapp.com",
      projectId: "notification-gw",
      storageBucket: "notification-gw.firebasestorage.app",
      messagingSenderId: "106889627175",
      appId: "1:106889627175:web:298a59659065e43e9c3002",
      measurementId: "G-FTTYGHJLME"
    };

  // Initialize Firebase
    const app = initializeApp(firebaseConfig);
    const analytics = getAnalytics(app);
  </script>
<script type="text/javascript">

    function showNotification(noi_dung_thong_bao) {
      am_thanh_mac_dinh();
      var notification = document.getElementById('notification');
      notification.style.display = 'block';
      $('#notification .message').html(noi_dung_thong_bao);
      notification.classList.add('success');
      setTimeout(function () {
        notification.style.display = 'none';
        notification.classList.remove('success', 'error', 'warning');
      }, 7000);
    }

    function showNotification_noaudio(noi_dung_thong_bao) {
      var notification = document.getElementById('notification');
      notification.style.display = 'block';
      $('#notification .message').html(noi_dung_thong_bao);
      notification.classList.add('success');
      setTimeout(function () {
        notification.style.display = 'none';
        notification.classList.remove('success', 'error', 'warning');
      }, 7000);
    }

    function closeNotification() {
      var notification = document.getElementById('notification');
      notification.style.display = 'none';
      notification.classList.remove('success', 'error', 'warning');
    }
    // doi_pass();
    // function doi_pass(){
    //   $.ajax({
    //     type : 'POST',
    //     url: nv_base_siteurl + 'index.php?' + nv_name_variable + '=business&' + nv_fc_variable + '=main&mod=kiem_tra_doi_pass',
    //     contentType: false,
    //     processData: false,
    //     success : function(res){
    //       res2=JSON.parse(res);
    //       if(res2.status=="OK"){
    //         $('#modal_doi_pass').modal('show');

    //       }else if(res2.status=="KO"){

    //       }else{
    //         alert('Có lỗi xảy ra, vui lòng kiểm tra lại')

    //       }
    //     },
    //     error: function(xhr, ajaxOptions, thrownError) {
    //       alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    //     }
    //   });
    // }
    function doi_mat_khau() {
      var a = $('#mat_khau_1').val();
      var b = $('#mat_khau_2').val();

      var regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]{8,}$/;

      if (!regex.test(a)) {
        alert('Mật khẩu phải có ít nhất 8 ký tự, bao gồm chữ, chữ IN HOA, số và ký tự đặc biệt!');
        return;
      }

      if (a !== b) {
        alert('Mật khẩu không trùng khớp!');
        return;
      }

      $.ajax({
        type: 'POST',
        url: nv_base_siteurl + 'index.php?' + nv_name_variable + '=business&' + nv_fc_variable + '=main&mod=doi_pass',
        data: { mat_khau: a },
        success: function (res) {
          res2 = JSON.parse(res);
          if (res2.status == "OK") {
            alert('Đổi mật khẩu thành công!');
            window.location.href = 'https://x.greenworld.vn/vi/users/logout/';
          } else {
            alert('Có lỗi xảy ra, vui lòng kiểm tra lại');
          }
        },
        error: function (xhr, ajaxOptions, thrownError) {
          alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
        }
      });
    }
    // xac_thuc_ip();
    // function xac_thuc_ip(){
    //   $.ajax({
    //     type : 'POST',
    //     url: nv_base_siteurl + 'index.php?' + nv_name_variable + '=business&' + nv_fc_variable + '=main&mod=xac_thuc_ip',
    //     contentType: false,
    //     processData: false,
    //     success : function(res){
    //       res2=JSON.parse(res);
    //       if(res2.status=="OK"){
    //       }else if(res2.status=="KO"){

    //       }else{
    //         alert('Có lỗi xảy ra, vui lòng kiểm tra lại')

    //       }
    //     },
    //     error: function(xhr, ajaxOptions, thrownError) {
    //       alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    //     }
    //   });
    // }
  </script>
<script>
  var elements = document.getElementsByClassName('comment-info');

  for (var i = 0; i < elements.length; i++) {
    var content = elements[i].innerHTML;

    // Dùng RegExp để tìm các từ bắt đầu bằng @ và bọc strong
    var newContent = content.replace(/@(\w+)/g, function(match, p1) {
      return '<strong>@' + p1 + '</strong>';
    });

    elements[i].innerHTML = newContent;
  }
</script>
<script src="https://dev.gxiris.com/themes/theme_xiris/js/bootstrap.min.js"></script>
<script type="text/javascript">
  function loading(){
    var $elie = $(".icon_loading");
    rotate(0);
    function rotate(degree) {
     $elie.css({ WebkitTransform: 'rotate(' + degree + 'deg)'});
     $elie.css({ '-moz-transform': 'rotate(' + degree + 'deg)'});
     setTimeout(
      function() {
       rotate(++degree); 
   },
   10
   );
 }    
 $(".no_load").addClass("load");
 $(".no_load").removeClass("no_load");
}
function removeloading(){
   $(".load").addClass("no_load");
   $(".load").removeClass("load");

}
function go_back(){
    history.back();
}
</script>
<script type="text/javascript">
  // Hàm kích hoạt dịch
        function triggerTranslate(lang) {
            // Cập nhật giao diện nút bấm
            document.querySelectorAll('.lang-item').forEach(el => el.classList.remove('active'));
            document.getElementById(lang + '-btn').classList.add('active');

            // Tìm thẻ select của Google
            var select = document.querySelector('.goog-te-combo');
            if (select) {
                select.value = lang;
                select.dispatchEvent(new Event('change')); // Bắt buộc phải có dòng này Google mới hiểu
            }
        }

        // Cấu hình Google
        function googleTranslateElementInit() {
            new google.translate.TranslateElement({
                pageLanguage: 'vi',
                includedLanguages: 'en,vi',
                autoDisplay: false
            }, 'google_translate_element');
        }
        // Hàm dọn dẹp thanh banner cứng đầu (Chạy liên tục)
        setInterval(function() {
            var banner = document.querySelector('.goog-te-banner-frame');
            if (banner) banner.style.display = 'none';
            if (document.body.style.top !== '0px') document.body.style.top = '0px';
        }, 500);
    </script>
<script type="text/javascript" src="https://dev.gxiris.com//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
</body>
</html>