/*
Changes:
06/12/05 Rev 1.04 Used the Chinese traditional calendar.
06/12/14 Rev 1.05 Fixed yearly display date.
07/01/01 Rev 1.06 Corrected Tiet Khi, added Khong Vong.
07/01/20 Rev 1.07 Changed to run with FireFox/NS
*/

var Today = new Date();
var CY = Today.getFullYear();
var CM = Today.getMonth()+1;
var CD = Today.getDate();
var CL = new MaiHoaDate(CD, CM, CY);

var IE, NS;

function Init()
{
  IE = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) >= 4);
  NS = (navigator.appName == "Netscape" && parseInt(navigator.appVersion) >= 4);
  if (IE) setInterval("doFlash()",700);
  else setTimeout("doFlash()",700);
}

function Write(Id, val)
{
  if (IE) eval(Id).innerText = val;
  else document.getElementById(Id).innerHTML = val;
}

function Read(Id)
{
  var val;
  if (IE) val = eval(Id).innerText;
  else val = document.getElementById(Id).innerHTML;
  return val;
}

function SetColor(Id, val)
{
  if (IE) eval(Id).style.color = val;
  else document.getElementById(Id).style.color = val;
}

function SetView(Id, val)
{
  if (IE) eval(Id).style.visibility = val;
  else document.getElementById(Id).style.visibility = val;
}

//〔 Điều chỉnh lại theo tiết
function MaiHoaDate(dd, mm, yy)
{
  var oLunar = new LunarDate(dd,mm,yy);
  var t = TietKhi(yy,(mm-1)*2);
  var oTiet = new LunarDate(t,mm,yy); // Tiết lệnh

  this.tue = oLunar.year;
  this.tiet= mm-1;

  if (this.tiet == 0)
  {
    this.tiet = 12;
    if (this.tue == yy)
      this.tue--;
  }
  if (oLunar.dd < oTiet.dd)
  {
    if (this.tiet <= 12)
    {
      this.tiet--;
      if (this.tiet == 0)
      {
        this.tiet = 12;
        if (this.tue == yy)
          this.tue--;
      }
    }
    t = TietKhi(this.tue, this.tiet*2);
    delete oTiet;
    oTiet = new LunarDate(t,this.tiet+1, this.tue);
  }
  if (this.tiet == 1 && this.tue < yy) this.tue=yy;

  this.tn = oLunar.dd - oTiet.dd + 1; //〔 Tiết ngày
  this.y = yy;
  this.m = mm;
  this.d = dd;
  this.day = oLunar.day;
  this.month = oLunar.month;
  this.year = oLunar.year;
  this.isLeap = oLunar.isLeap;
  this.dd = oLunar.dd;
  this.mm = oLunar.mm;
  this.yy = oLunar.yy;

  delete oTiet;
  delete oLunar;
}

function capThoi()
{
  var td = new Date();

  with (MaiHoa) {
    year.value  = CY;
    month.value = CM;
    day.value   = td.getDate();
    hour.value  = td.getHours();
    min.value   = td.getMinutes();
    sec.value   = td.getSeconds();
  }
  delete td;
}

function setupOption(tok)
{
  var k, a, z;
  var j = new Date();

  switch(tok)
  {
  case 'M':
  case 'n':
    if (tok == 'M')
      k = j.getMonth()+1;
    else // Tháng âm lịch
      k = CL.month;
    a = 1; z = 12;
    break;
  case 'D':
    k = j.getDate();
    a = 1; z = 31;
    break;
  case 'd': // Ngày âm lịch
    k = CL.day;
    a = 1; z = 30;
    break;
  case 'H':
    k = j.getHours();
    a = 0; z = 23;
    break;
  case 'm':
    k = j.getMinutes();
    a = 0; z = 59;
    break;
  case 's':
    k = j.getSeconds();
    a = 0; z = 59;
    break;
  case 'Q':
    k = 1;
    a = 1; z = 8;
    break;
  case 'Y':
    k = 0;
    a = 0; z = 6;
    break;
  }
 
  for (i=a;i<=z;i++)
  {
    document.write("<option value=" + i + (i == k ? " selected>" : ">") + i + "</option>")
  }
  delete j;
}

var quai_tuong = new Array( "☷", "☰", "☱", "☲", "☳", "☴", "☵", "☶" );
var quai_danh = new Array( "Khôn", "Kiền", "Đoài", "Ly", "Chấn", "Tốn", "Khảm", "Cấn" );
var que_tuong = new Array( "Địa", "Thiên", "Trạch", "Hỏa", "Lôi", "Phong", "Thủy", "Sơn" );
var quai_hanh = new Array( "Thổ", "Kim", "Kim", "Hỏa", "Mộc", "Mộc", "Thủy", "Thổ" );
var ht_huong = new Array( " ", "Bắc", "Tây Nam", "Đông", "Đông Nam", "Trung", "Tây Bắc", "Tây", "Đông Bắc", "Nam" );

// 〔Cách lấy Trùng Quái
function layTrungQuai(t_quai, h_quai)
{
  var tq = "" // Trùng Quái

  if (t_quai == h_quai)
  {
    tq = quai_danh[t_quai] + " vi " + que_tuong[h_quai]
    return tq;
  }

  tq = que_tuong[t_quai] + " " + que_tuong[h_quai] + " "

  switch(t_quai)
  {
  case 0: // Khôn (Địa)
    switch(h_quai)
    {
    case 1: tq += "Thái"; break // Kiền (Thiên)
    case 2: tq += "Lâm"; break; // Đoài (Trạch)
    case 3: tq += "Minh Di"; break; // Ly (Hỏa)
    case 4: tq += "Phục"; break; // Chấn (Lôi)
    case 5: tq += "Thăng"; break; // Tốn (Phong)
    case 6: tq += "Sư"; break; // Khảm (Thủy)
    case 7: tq += "Khiêm"; break; // Cấn (Sơn)
    } break;
  case 1: // Kiền
    switch(h_quai)
    {
    case 0: tq += "Bĩ"; break // Khôn (Địa)
    case 2: tq += "Lý"; break; // Đoài (Trạch)
    case 3: tq += "Đồng Nhân"; break; // Ly (Hỏa)
    case 4: tq += "Vô Vọng"; break; // Chấn (Lôi)
    case 5: tq += "Cấu"; break; // Tốn (Phong)
    case 6: tq += "Tụng"; break; // Khảm (Thủy)
    case 7: tq += "Độn"; break; // Cấn (Sơn)
    } break;
  case 2: // Đoài (Trạch)
    switch(h_quai)
    {
    case 0: tq += "Tụy"; break; // Khôn (Địa)
    case 1: tq += "Quải"; break; // Kiền (Thiên)
    case 3: tq += "Cách"; break; // Ly (Hỏa)
    case 4: tq += "Tùy"; break; // Chấn (Lôi)
    case 5: tq += "Đại Quá"; break; // Tốn (Phong)
    case 6: tq += "Khốn"; break; // Khảm (Thủy)
    case 7: tq += "Hàm"; break; // Cấn (Sơn)
    } break;
  case 3: // Ly (Hỏa)
    switch(h_quai)
    {
    case 0: tq += "Tấn"; break; // Khôn (Địa)
    case 1: tq += "Đại Hữu"; break; // Kiền (Thiên)
    case 2: tq += "Khuê"; break; // Đoài (Trạch)
    case 4: tq += "Phệ Hạp"; break; // Chấn (Lôi)
    case 5: tq += "Đỉnh"; break; // Tốn (Phong)
    case 6: tq += "Vị Tế"; break; // Khảm (Thủy)
    case 7: tq += "Lữ"; break; // Cấn (Sơn)
    } break;
  case 4: // Chấn (Lôi)
    switch(h_quai)
    {
    case 0: tq += "Dự"; break; // Khôn (Địa)
    case 1: tq += "Đại Tráng"; break; // Kiền (Thiên)
    case 2: tq += "Qui Muội"; break; // Đoài (Trạch)
    case 3: tq += "Phong"; break; // Ly (Hỏa)
    case 5: tq += "Hằng"; break; // Tốn (Phong)
    case 6: tq += "Giải"; break; // Khảm (Thủy)
    case 7: tq += "Tiểu Quá"; break; // Cấn (Sơn)
    } break;
  case 5: // Tốn (Phong)
    switch(h_quai)
    {
    case 0: tq += "Quán"; break; // Khôn (Địa)
    case 1: tq += "Tiểu Súc"; break; // Kiền (Thiên)
    case 2: tq += "Trung Phu"; break; // Đoài (Trạch)
    case 3: tq += "Gia Nhân"; break; // Ly (Hỏa)
    case 4: tq += "Ích"; break; // Chấn (Lôi)
    case 6: tq += "Hoán"; break; // Khảm (Thủy)
    case 7: tq += "Tiệm"; break; // Cấn (Sơn)
    } break;
  case 6: // Khảm (Thủy)
    switch(h_quai)
    {
    case 0: tq += "Tỷ"; break; // Khôn (Địa)
    case 1: tq += "Nhu"; break; // Kiền (Thiên)
    case 2: tq += "Tiết"; break; // Đoài (Trạch)
    case 3: tq += "Ký Tế"; break; // Ly (Hỏa)
    case 4: tq += "Truân"; break; // Chấn (Lôi)
    case 5: tq += "Tỉnh"; break; // Tốn (Phong)
    case 7: tq += "Kiển"; break; // Cấn (Sơn)
    } break;
  case 7: // Cấn (Sơn)
    switch(h_quai)
    {
    case 0: tq += "Bác"; break; // Khôn (Địa)
    case 1: tq += "Đại Súc"; break; // Kiền (Thiên)
    case 2: tq += "Tổn"; break; // Đoài (Trạch)
    case 3: tq += "Bí"; break; // Ly (Hỏa)
    case 4: tq += "Di"; break; // Chấn (Lôi)
    case 5: tq += "Cổ"; break; // Tốn (Phong)
    case 6: tq += "Mông"; break; // Khảm (Thủy)
    } break;
  }
  return tq;
}

// 〔Hào Tượng
function ghiHao(vi, hao)
{
  this.vi  = vi; // hào vị [1-6]
  this.hao = hao; // hào âm=6 (lục) hay dương=9 (cửu)
  this.hd  = 0; // đặt Hào Động vào hay không
  this.th  = 0; // chưa an Tháng
}

// 〔Quẻ Kiền
function que1(q)
{
  var i = q.length;
  q.push(new ghiHao(++i, 9)) // hào cửu sơ hay 4
  q.push(new ghiHao(++i, 9)) // hào cửu 2 hay 5
  q.push(new ghiHao(++i, 9)) // hào cửu 3 hay 6
  return q;
}

//〔 Quẻ Đoài
function que2(q)
{
  var i = q.length;
  q.push(new ghiHao(++i, 9)) // hào cửu sơ hay 4
  q.push(new ghiHao(++i, 9)) // hào cửu 2 hay 5
  q.push(new ghiHao(++i, 6)) // hào lục 3 hay 6
  return q;
}

// 〔Quẻ Ly
function que3(q)
{
  var i = q.length;
  q.push(new ghiHao(++i, 9)) // hào cửu sơ hay 4
  q.push(new ghiHao(++i, 6)) // hào lục 2 hay 5
  q.push(new ghiHao(++i, 9)) // hào cửu 3 hay 6
  return q;
}

//〔 Quẻ Chấn
function que4(q)
{
  var i = q.length;
  q.push(new ghiHao(++i, 9)) // hào cửu sơ hay 4
  q.push(new ghiHao(++i, 6)) // hào lục 2 hay 5
  q.push(new ghiHao(++i, 6)) // hào lục 3 hay 6
  return q;
}

// 〔Quẻ Tốn
function que5(q)
{
  var i = q.length;
  q.push(new ghiHao(++i, 6)) // hào lục sơ hay 4
  q.push(new ghiHao(++i, 9)) // hào cửu 2 hay 5
  q.push(new ghiHao(++i, 9)) // hào cửu 3 hay 6
  return q;
}

// 〔Quẻ Khảm
function que6(q)
{
  var i = q.length;
  q.push(new ghiHao(++i, 6)) // hào lục sơ hay 4
  q.push(new ghiHao(++i, 9)) // hào cửu 2 hay 5
  q.push(new ghiHao(++i, 6)) // hào lục 3 hay 6
  return q;
}

// 〔Quẻ Cấn
function que7(q)
{
  var i = q.length;
  q.push(new ghiHao(++i, 6)) // hào lục sơ hay 4
  q.push(new ghiHao(++i, 6)) // hào lục 2 hay 5
  q.push(new ghiHao(++i, 9)) // hào cửu 3 hay 6
  return q;
}

//〔 Quẻ Khôn
function que8(q)
{
  var i = q.length;
  q.push(new ghiHao(++i, 6)) // hào lục sơ hay 4
  q.push(new ghiHao(++i, 6)) // hào lục 2 hay 5
  q.push(new ghiHao(++i, 6)) // hào lục 3 hay 6
  return q;
}

// 〔Lấy Nội (Hạ) Quẻ
function layNoiQue(hq)
{
  var que = new Array();
  switch(hq)
  {
  case 1: que = que1(que); break; // Kiền Thiên
  case 2: que = que2(que); break; // Đoài Trạch
  case 3: que = que3(que); break; // Ly Hỏa
  case 4: que = que4(que); break; // Chấn Lôi
  case 5: que = que5(que); break; // Tốn Phong
  case 6: que = que6(que); break; // Khảm Thủy
  case 7: que = que7(que); break; // Cấn Sơn
  case 0: que = que8(que); break; // Khôn Địa
  }
  return que;
}

//〔 Lập Quẻ gồm 6 Hào
function lucHao(tq, hq)
{
  var hao;
  switch(tq)
  {
  case 1: hao = que1(layNoiQue(hq)); break; // Kiền Thiên
  case 2: hao = que2(layNoiQue(hq)); break; // Đoài Trạch
  case 3: hao = que3(layNoiQue(hq)); break; // Ly Hỏa
  case 4: hao = que4(layNoiQue(hq)); break; // Chấn Lôi
  case 5: hao = que5(layNoiQue(hq)); break; // Tốn Phong
  case 6: hao = que6(layNoiQue(hq)); break; // Khảm Thủy
  case 7: hao = que7(layNoiQue(hq)); break; // Cấn Sơn
  case 0: hao = que8(layNoiQue(hq)); break; // Khôn Địa
  }
  return hao;
}

// 〔Lập Quẻ hay Trùng Quẻ
function lapQue(tq, hq)
{
  this.tq = tq; // Thượng Quái
  this.hq = hq; // Hạ Quái
  this.hao = lucHao(tq, hq); // Thực Quẻ gồm 6 hào
}

// 〔Lập Hỗ Quẻ
function lapHoQue(que)
{
  this.tq = layHoQuai1(que.tq, que.hq); // Thượng Quái
  this.hq = layHoQuai2(que.tq, que.hq); // Hạ Quái
  this.hao = lucHao(this.tq, this.hq); // Thực Quẻ gồm 6 hào
}

// 〔Xóa đuợc cả Bổn Quẻ lẫn Biến Quẻ
function xoaQue(que)
{
  if (que == null) return;
  for (var i=0; i < que.hao.length; i++)
    delete que.hao[i];
  delete que.hao;
  delete que;
  que = null;
}

// 〔Cách lấy Trùng Quái Số
function soQue(t_quai, h_quai)
{
  var i;
  switch(t_quai)
  {
  case 6: // Khảm (Thủy)
    switch(h_quai) {
    case 6: i = 29; break // Khảm (Thủy)
    case 0: i =  8; break // Khôn (Địa)
    case 4: i =  3; break // Chấn (Lôi)
    case 5: i = 48; break // Tốn (Phong)
    case 1: i =  5; break // Kiền (Thiên)
    case 2: i = 60; break // Đoài (Trạch)
    case 7: i = 39; break // Cấn (Sơn)
    case 3: i = 63; break // Ly (Hỏa)
    } break;
  case 0: // Khôn (Địa)
    switch(h_quai) {
    case 6: i =  7; break // Khảm (Thủy)
    case 0: i =  2; break // Khôn (Địa)
    case 4: i = 24; break // Chấn (Lôi)
    case 5: i = 46; break // Tốn (Phong)
    case 1: i = 11; break // Kiền (Thiên)
    case 2: i = 19; break // Đoài (Trạch)
    case 7: i = 15; break // Cấn (Sơn)
    case 3: i = 36; break // Ly (Hỏa)
    } break;
  case 4: // Chấn (Lôi)
    switch(h_quai) {
    case 6: i = 40; break // Khảm (Thủy)
    case 0: i = 16; break // Khôn (Địa)
    case 4: i = 51; break // Chấn (Lôi)
    case 5: i = 32; break // Tốn (Phong)
    case 1: i = 34; break // Kiền (Thiên)
    case 2: i = 54; break // Đoài (Trạch)
    case 7: i = 62; break // Cấn (Sơn)
    case 3: i = 55; break // Ly (Hỏa)
    } break;
  case 5: // Tốn (Phong)
    switch(h_quai) {
    case 6: i = 59; break // Khảm (Thủy)
    case 0: i = 20; break // Khôn (Địa)
    case 4: i = 42; break // Chấn (Lôi)
    case 5: i = 57; break // Tốn (Phong)
    case 1: i =  9; break // Kiền (Thiên)
    case 2: i = 61; break // Đoài (Trạch)
    case 7: i = 53; break // Cấn (Sơn)
    case 3: i = 37; break // Ly (Hỏa)
    } break;
  case 1: // Kiền (Thiên)
    switch(h_quai) {
    case 6: i =  6; break // Khảm (Thủy)
    case 0: i = 12; break // Khôn (Địa)
    case 4: i = 25; break // Chấn (Lôi)
    case 5: i = 44; break // Tốn (Phong)
    case 1: i =  1; break // Kiền (Thiên)
    case 2: i = 10; break // Đoài (Trạch)
    case 7: i = 33; break // Cấn (Sơn)
    case 3: i = 13; break // Ly (Hỏa)
    } break;
  case 2: // Đoài (Trạch)
    switch(h_quai) {
    case 6: i = 47; break // Khảm (Thủy)
    case 0: i = 45; break // Khôn (Địa)
    case 4: i = 17; break // Chấn (Lôi)
    case 5: i = 28; break // Tốn (Phong)
    case 1: i = 43; break // Kiền (Thiên)
    case 2: i = 58; break // Đoài (Trạch)
    case 7: i = 31; break // Cấn (Sơn)
    case 3: i = 49; break // Ly (Hỏa)
    } break;
  case 7: // Cấn (Sơn)
    switch(h_quai) {
    case 6: i =  4; break // Khảm (Thủy)
    case 0: i = 23; break // Khôn (Địa)
    case 4: i = 27; break // Chấn (Lôi)
    case 5: i = 18; break // Tốn (Phong)
    case 1: i = 26; break // Kiền (Thiên)
    case 2: i = 41; break // Đoài (Trạch)
    case 7: i = 52; break // Cấn (Sơn)
    case 3: i = 22; break // Ly (Hỏa)
    } break;
  case 3: // Ly (Hỏa)
    switch(h_quai) {
    case 6: i = 64; break // Khảm (Thủy)
    case 0: i = 35; break // Khôn (Địa)
    case 4: i = 21; break // Chấn (Lôi)
    case 5: i = 50; break // Tốn (Phong)
    case 1: i = 14; break // Kiền (Thiên)
    case 2: i = 38; break // Đoài (Trạch)
    case 7: i = 56; break // Cấn (Sơn)
    case 3: i = 30; break // Ly (Hỏa)
    } break;
  }
  return i;
}

// 〔Cách lấy Hỗ Quái cho thượng quái
function layHoQuai1(t_quai, h_quai)
{
  var hq = 0;
  switch(t_quai)
  {
  case 0: // Khôn (Địa)
  case 7: // Cấn (Sơn)
    switch(h_quai)
    {
    case 0: hq = 0; break; // Khôn (Địa)
    case 1: hq = 4; break; // Kiền (Thiên)
    case 2: hq = 0; break; // Đoài (Trạch)
    case 3: hq = 4; break; // Ly (Hỏa)
    case 4: hq = 0; break; // Chấn (Lôi)
    case 5: hq = 4; break; // Tốn (Phong)
    case 6: hq = 0; break; // Khảm (Thủy)
    case 7: hq = 4; break; // Cấn (Sơn)
    } break;
  case 1: // Kiền
  case 2: // Đoài (Trạch)
    switch(h_quai)
    {
    case 0: hq = 5; break; // Khôn (Địa)
    case 1: hq = 1; break; // Kiền (Thiên)
    case 2: hq = 5; break; // Đoài (Trạch)
    case 3: hq = 1; break; // Ly (Hỏa)
    case 4: hq = 5; break; // Chấn (Lôi)
    case 5: hq = 1; break; // Tốn (Phong)
    case 6: hq = 5; break; // Khảm (Thủy)
    case 7: hq = 1; break; // Cấn (Sơn)
    } break;
  case 3: // Ly (Hỏa)
  case 4: // Chấn (Lôi)
    switch(h_quai)
    {
    case 0: hq = 6; break; // Khôn (Địa)
    case 1: hq = 2; break; // Kiền (Thiên)
    case 2: hq = 6; break; // Đoài (Trạch)
    case 3: hq = 2; break; // Ly (Hỏa)
    case 4: hq = 6; break; // Chấn (Lôi)
    case 5: hq = 2; break; // Tốn (Phong)
    case 6: hq = 6; break; // Khảm (Thủy)
    case 7: hq = 2; break; // Cấn (Sơn)
    } break;
  case 5: // Tốn (Phong)
  case 6: // Khảm (Thủy)
    switch(h_quai)
    {
    case 0: hq = 7; break; // Khôn (Địa)
    case 1: hq = 3; break; // Kiền (Thiên)
    case 2: hq = 7; break; // Đoài (Trạch)
    case 3: hq = 3; break; // Ly (Hỏa)
    case 4: hq = 7; break; // Chấn (Lôi)
    case 5: hq = 3; break; // Tốn (Phong)
    case 6: hq = 7; break; // Khảm (Thủy)
    case 7: hq = 3; break; // Cấn (Sơn)
    } break;
  }
  return hq;
}

// 〔Cách lấy Hỗ Quái cho hạ quái
function layHoQuai2(t_quai, h_quai)
{
  var hq = 0;
  switch(t_quai)
  {
  case 1: // Kiền
  case 2: // Đoài (Trạch)
  case 3: // Ly (Hỏa)
  case 4: // Chấn (Lôi)
    switch(h_quai)
    {
    case 0: hq = 7; break; // Khôn (Địa)
    case 1: hq = 1; break; // Kiền (Thiên)
    case 2: hq = 3; break; // Đoài (Trạch)
    case 3: hq = 5; break; // Ly (Hỏa)
    case 4: hq = 7; break; // Chấn (Lôi)
    case 5: hq = 1; break; // Tốn (Phong)
    case 6: hq = 3; break; // Khảm (Thủy)
    case 7: hq = 5; break; // Cấn (Sơn)
    } break;
  case 0: // Khôn (Địa)
  case 5: // Tốn (Phong)
  case 6: // Khảm (Thủy)
  case 7: // Cấn (Sơn)
    switch(h_quai)
    {
    case 0: hq = 0; break; // Khôn (Địa)
    case 1: hq = 2; break; // Kiền (Thiên)
    case 2: hq = 4; break; // Đoài (Trạch)
    case 3: hq = 6; break; // Ly (Hỏa)
    case 4: hq = 0; break; // Chấn (Lôi)
    case 5: hq = 2; break; // Tốn (Phong)
    case 6: hq = 4; break; // Khảm (Thủy)
    case 7: hq = 6; break; // Cấn (Sơn)
    } break;
  }
  return hq;
}

//〔 Cách lấy Biến Quái
function layBienQuai(quai, donghao)
{
  var bq = 0;
  if (donghao > 3 || donghao < 0)
    return bq;

  if (donghao == 0) return quai;

  switch(quai)
  {
  case 0:
    switch(donghao)
    {
      case 1: bq = 4; break;
      case 2: bq = 6; break;
      case 3: bq = 7; break;
    } break;
  case 1:
    switch(donghao)
    {
      case 1: bq = 5; break;
      case 2: bq = 3; break;
      case 3: bq = 2; break;
    } break;
  case 2:
    switch(donghao)
    {
      case 1: bq = 6; break;
      case 2: bq = 4; break;
      case 3: bq = 1; break;
    } break;
  case 3:
    switch(donghao)
    {
      case 1: bq = 7; break;
      case 2: bq = 1; break;
      case 3: bq = 4; break;
    } break;
  case 4:
    switch(donghao)
    {
      case 1: bq = 0; break;
      case 2: bq = 2; break;
      case 3: bq = 3; break;
    } break;
  case 5:
    switch(donghao)
    {
      case 1: bq = 1; break;
      case 2: bq = 7; break;
      case 3: bq = 6; break;
    } break;
  case 6:
    switch(donghao)
    {
      case 1: bq = 2; break;
      case 2: bq = 0; break;
      case 3: bq = 5; break;
    } break;
  case 7:
    switch(donghao)
    {
      case 1: bq = 3; break;
      case 2: bq = 5; break;
      case 3: bq = 0; break;
    } break;
  }
  return bq;
}

//〔 Biến Quẻ theo động hào
function lapBienQue(bon, donghao)
{
  var c=0,i=0,k=0,p=0;

  //〔 Biến quái
  if (donghao < 4)
  {
    this.tq = bon.tq;
    if (donghao > 0)
      this.hq = layBienQuai(bon.hq, donghao);
    else
      this.hq = bon.hq;
  }
  else
  {
    this.tq = layBienQuai(bon.tq, donghao - 3);
    this.hq = bon.hq;
  }

  this.hao = lucHao(this.tq, this.hq); // 〔Thực Quẻ gồm 6 hào

  if (donghao)
  {
    // An hào động cho Biến Quẻ
    bon.hao[donghao-1].hd = 1;
    this.hao[donghao-1].hd = 1;
  }
}

// 〔So sánh giữa Chủ và Khách
var ChuKhack = new Array("tỷ hòa", "sinh nhập", "khắc nhập", "sinh xuất", "khắc xuất" );
var TheDung = new Array("thể dụng tỷ hòa", "dụng sinh thể", "dụng khắc thể", "thể sinh dụng", "thể khắc dụng" );
var TheHo = new Array("thể hỗ tỷ hòa", "hỗ sinh thể", "hỗ khắc thể", "thể sinh hỗ", "thể khắc hỗ" );
var DungHo = new Array("dụng hỗ tỷ hòa", "hỗ sinh dụng", "hỗ khắc dụng", "dụng sinh hỗ", "dụng khắc hỗ" );
var CatHung = new Array("tiểu cát", "đại cát", "đại hung", "tiết khí", "tiểu cát");
var TheCatHung = new Array("đại lợi", "đại lợi", "đại bất lợi", "bất lợi", "bất lợi");
var DungCatHung = new Array("đại bất lợi", "đại bất lợi", "lợi", "lợi", "lợi");

function soSanh(chu, khach)
{
  var rstat;

  switch(chu)
  {
  case 1:  // Kiền Kim
  case 2:  // Đoài Kim
    switch(khach)
    {
      case 1: // Kiền Kim
      case 2: // Đoài Kim
        rstat = 0; break;
      case 3: // Ly Hỏa
        rstat = 2; break;
      case 4: // Chấn Mộc
      case 5: // Tôn Mộc
        rstat = 4; break;
      case 6: // Khảm Thủy
        rstat = 3; break;
      case 0: // Khôn Thổ
      case 7: // Cấn Thổ
        rstat = 1; break;
    } break;
  case 3:  // Ly Hỏa
    switch(khach)
    {
      case 1: // Kiền Kim
      case 2: // Đoài Kim
        rstat = 4; break;
      case 3: // Ly Hỏa
        rstat = 0; break;
      case 4: // Chấn Mộc
      case 5: // Tôn Mộc
        rstat = 1; break;
      case 6: // Khảm Thủy
        rstat = 2; break;
      case 0: // Khôn Thổ
      case 7: // Cấn Thổ
        rstat = 3; break;
    } break;
  case 4: // Chấn Mộc
  case 5: // Tôn Mộc
    switch(khach)
    {
      case 1: // Kiền Kim
      case 2: // Đoài Kim
        rstat = 2; break;
      case 3: // Ly Hỏa
        rstat = 3; break;
      case 4: // Chấn Mộc
      case 5: // Tôn Mộc
        rstat = 0; break;
      case 6: // Khảm Thủy
        rstat = 1; break;
      case 0: // Khôn Thổ
      case 7: // Cấn Thổ
        rstat = 4; break;
    } break;
  case 6: // Khảm Thủy
    switch(khach)
    {
      case 1: // Kiền Kim
      case 2: // Đoài Kim
        rstat = 1; break;
      case 3: // Ly Hỏa
        rstat = 4; break;
      case 4: // Chấn Mộc
      case 5: // Tôn Mộc
        rstat = 3; break;
      case 6: // Khảm Thủy
        rstat = 0; break;
      case 0: // Khôn Thổ
      case 7: // Cấn Thổ
        rstat = 2; break;
    } break;
  case 0: // Khôn Thổ
  case 7: // Cấn Thổ
    switch(khach)
    {
      case 1: // Kiền Kim
      case 2: // Đoài Kim
        rstat = 3; break;
      case 3: // Ly Hỏa
        rstat = 1; break;
      case 4: // Chấn Mộc
      case 5: // Tôn Mộc
        rstat = 2; break;
      case 6: // Khảm Thủy
        rstat = 4; break;
      case 0: // Khôn Thổ
      case 7: // Cấn Thổ
        rstat = 0; break;
    } break;
  }
  return rstat;
}

function laySo(quai)
{
  if (quai == 0) quai = 8;
  return quai;
}

//〔 Tìm Không Vong; nhập Can & Chi Năm; return chi đầu trong mỗi cặp
function khongVong(can, chi)
{
  //〔 Trong vòng ------------ Giáp Tý,  G.  Tuất, G. Thân, G.  Ngọ, G. Thìn, G. Dần
  //〔 Không Vong luôn có đôi: Tuất Hợi, Thân Dậu, Ngọ Mùi, Thìn Tỵ, Dần Mão, Tý Sửu
  var KV1 = [10,8,6,4,2,0]; //var KV2 = [11,9,7,5,3,1];
  var canvi = canVi(can);
  var chivi = chiVi(chi);
  var biet  = chivi - canvi;
  if (biet < 0) biet += 12;
  switch(biet)
  {
  case  0: kv=KV1[0]; break;
  case  2: kv=KV1[5]; break;
  case  4: kv=KV1[4]; break;
  case  6: kv=KV1[3]; break;
  case  8: kv=KV1[2]; break;
  case 10: kv=KV1[1]; break;
  }
  return kv;
}

//〔 Tìm Không Vong Thời; Nhập Can ngày, return chi GIỜ đầu trong mỗi cặp
function gioKhongVong(can)
{
  //〔 Không Vong luôn có đôi: Tuất Hợi, Thân Dậu, Ngọ Mùi, Thìn Tỵ, Dần Mão, Tý Sửu
  var KV1 = [10,8,6,4,2,0]; //var KV2 = [11,9,7,5,3,1];
  var can = canVi(can);
  var kv=0;
  switch(can)
  {
  case 0: case 5: kv=KV1[1]; break; // Ngày Giáp Kỷ  : giờ Thân Dậu
  case 1: case 6: kv=KV1[2]; break; // Ngày Ất Canh  : giờ Ngọ Mùi
  case 2: case 7: kv=KV1[3]; break; // Ngày Bính Tân : giờ Thìn Tỵ
  case 3: case 8: kv=KV1[4]; break; // Ngày Đinh Nhâm: giờ Dần Mão
  case 4: case 9: kv=KV1[0]; break; // Ngày Mậu Kỷ   : giờ Tý Sửu
  }
  return kv;
}

//〔 Khí của Tứ Thời
var TuThoi = new Array("Vượng", "Tướng", "Hưu", "Tù", "Tử");

//〔 Xem Khí của Tứ Thời
function xemKhi(mm, quai)
{
  var k = 0; // Khí: Vượng, Tướng, Hưu, Tù, Tử
  switch(mm)
  {
  case 1: case 2: // Xuân Mộc
    switch(quai)
    {
    case 1: // Kiền Kim
    case 2: // Đoài Kim
      k = 3; break; // Mộc vượng, Kim Tù thành vô khí
    case 3: // Ly Hỏa
      k = 1; break; // Mộc sinh Hỏa
    case 4: // Chấn Mộc
    case 5: // Tốn Mộc
      k = 0; break; // Tỷ Hòa: Vượng
    case 6: // Khảm Thủy
      k = 2; break; // Thủy sinh Mộc: Hưu
    case 0: // Khôn Thổ
    case 7: // Cấn Thổ
      k = 4; break; // Mộc khắc Thổ: Tử thành vô khí
    } break;
  case 3: case 6: case 9: case 12: // Tứ Quý Thổ
    switch(quai)
    {
    case 1: // Kiền Kim
    case 2: // Đoài Kim
      k = 1; break; // Thổ sinh Kim: Tướng
    case 3: // Ly Hỏa
      k = 2; break; // Thổ vượng thì Hỏa hưu (già)
    case 4: // Chấn Mộc
    case 5: // Tốn Mộc
      k = 3; break; // Tù thành vô khí
    case 6: // Khảm Thủy
      k = 4; break; // Tử thành vô khí
    case 0: // Khôn Thổ
    case 7: // Cấn Thổ
      k = 0; break; // Vượng
    } break;
  case 4: case 5: // Hạ Hỏa
    switch(quai)
    {
    case 1: // Kiền Kim
    case 2: // Đoài Kim
      k = 4; break; // Kim Tử thành vô khí
    case 3: // Ly Hỏa
      k = 0; break; // Hỏa Vượng
    case 4: // Chấn Mộc
    case 5: // Tốn Mộc
      k = 2; break; // Hỏa Vượng, Mộc Hưu
    case 6: // Khảm Thủy
      k = 3; break; // Thủy Tù thành vô khí
    case 0: // Khôn Thổ
    case 7: // Cấn Thổ
      k = 1; break; // Hỏa sinh Thổ: tướng
    } break;
  case 7: case 8: // Thu Kim
    switch(quai)
    {
    case 1: // Kiền Kim
    case 2: // Đoài Kim
      k = 0; break; // Kim Vượng
    case 3: // Ly Hỏa
      k = 3; break; // Hỏa Tù thành vô khí
    case 4: // Chấn Mộc
    case 5: // Tốn Mộc
      k = 4; break; // Mộc Tử thành vô khí
    case 6: // Khảm Thủy
      k = 1; break; // Kim sinh Thủy: Tướng
    case 0: // Khôn Thổ
    case 7: // Cấn Thổ
      k = 2; break; // Thổ Hưu (già)
    } break;
  case 10: case 11: // Đông Thủy
    switch(quai)
    {
    case 1: // Kiền Kim
    case 2: // Đoài Kim
      k = 2; break; // Kim Hưu (già)
    case 3: // Ly Hỏa
      k = 4; break; // Hỏa Tử thành vô khí
    case 4: // Chấn Mộc
    case 5: // Tốn Mộc
      k = 1; break; // Mộc Tướng
    case 6: // Khảm Thủy
      k = 0; break; // Thủy Vượng
    case 0: // Khôn Thổ
    case 7: // Cấn Thổ
      k = 3; break; // Thổ Tù thành vô khí
    } break;
  }
  return k;
}

//〔 Luận đoán quẻ
function luanDoan(ketqua, chu, khach, month)
{
  var khi;
  var s = "";
  if (month == 0)
  {
    s = " tức " + CatHung[ketqua];
    return s;
  }

  switch(ketqua) {
  case 0: // 〔Tỷ hòa
    khi = xemKhi(month, chu);
    if (khi < 2)
      s = " tức " + CatHung[ketqua];
    else
      s = " nhưng tháng "+month+" "+quai_hanh[chu]+" là "+TuThoi[khi]+" khí";
    break;
  case 1: //〔 Dụng sinh Thể
    khi = xemKhi(month, khach);
    if (khi < 2)
      s = " tức " + CatHung[ketqua];
    else if (khi == 2)
      s = " nhưng tiết tháng "+month+", "+quai_hanh[khach]+" là "+TuThoi[khi]+" khí;\ncho nên không hoàn toàn tốt";
    else
      s = " nhưng tiết tháng "+month+", "+quai_hanh[khach]+" là "+TuThoi[khi]+" khí;\ncho nên là vô khí, vô cát";
    break;
  case 2: // 〔Dụng khắc Thể
    khi = xemKhi(month, khach);
    if (khi < 2)
      s = " tức " + CatHung[ketqua];
    else if (khi == 2)
      s = " nhưng tiết tháng "+month+", "+quai_hanh[khach]+" là "+TuThoi[khi]+" khí;\ncho nên đỡ hung";
    else
      s = " nhưng tiết tháng "+month+", "+quai_hanh[khach]+" là "+TuThoi[khi]+" khí;\ncho nên vô hại";
    break;
  case 3: //〔 Thể sinh Dụng
    khi = xemKhi(month, chu);
    if (khi < 2)
      s = " tức " + CatHung[ketqua];
    else if (khi == 2)
      s = " nhưng tiết tháng "+month+", "+quai_hanh[chu]+" là "+TuThoi[khi]+" khí;\ntiết khí, cho nên bất lợi";
    else
      s = " nhưng tiết tháng "+month+", "+quai_hanh[chu]+" là "+TuThoi[khi]+" khí;\ntiết khí, nhưng là vô khí";
    break;
  case 4: //〔 Thể khắc dụng
    khi = xemKhi(month, chu);
    if (khi < 2)
      s = " tức " + CatHung[ketqua];
    else if (khi == 2)
      s = " nhưng tiết tháng "+month+", "+quai_hanh[chu]+" là "+TuThoi[khi]+" khí";
    else
      s = " nhưng tiết tháng "+month+", "+quai_hanh[chu]+" là "+TuThoi[khi]+" khí;\ncho nên là vô khí, vô cát";
    break;
  default:
    s = " tức " + CatHung[ketqua];
    break;
  }
  return s;
}

var z=0;
var concurrent = 0;
var colors = new Array("black", "red");
var blinkObj = new Array();

function doFlash()
{
  if (z) z = 0;
  else z = 1;
  if (concurrent) {
    if (NS) setTimeout("doFlash()",700);
    return;
  }
  var hObj;
  for (i=0; i < blinkObj.length; i++)
  {
    hObj = eval(blinkObj[i])
    hObj.style.color = colors[z];
  }
  if (NS) setTimeout("doFlash()",700);
}

var bonQue=null, bienQue=null; //〔 Bổn Quẻ và Biến Quẻ
var hoQue=null; // Hỗ Bổn
var DUONG = "visible";
var AM = "hidden";

function layQue()
{
  var iYear, iMon, iDay, iHour, iMin;
  with (MaiHoa) {
    iYear = parseInt(year.value);
    iMon  = parseInt(month.value);
    iDay  = parseInt(day.value);
    iHour = parseInt(hour.value);
    iMin  = parseInt(min.value);
    if (isNaN(iYear)) {
      alert("Xin vui lòng điền vào năm!");
      MaiHoa.year.focus();
      return;
    }
  }
  var oLich = new MaiHoaDate(iDay, iMon, iYear);
  var s = "";
  var gio = 0;
  switch(iHour)
  {
  case 0: case 23:
    gio = 1;
    break;
  default:
    iHour += 1;
    gio = parseInt(iHour / 2) + 1;
    break;
  }

  var jNam;
  if (MaiHoa.TietThang[0].checked == true)
    jNam = ((oLich.year + 8) % 12) + 1;
  else
    jNam = ((oLich.tue + 8) % 12) + 1;

  var th_quai = 0;
  var ha_quai = 0;
  var donghao = 0;

  if (MaiHoa.ChonLua[1].checked == true)
  {
    th_quai = parseInt(MaiHoa.quai1.value);
    if (th_quai == 8)
      th_quai = 0;
    ha_quai = parseInt(MaiHoa.quai2.value);
    if (ha_quai == 8)
      ha_quai = 0;
    donghao = parseInt(MaiHoa.haodong.value);
    s = "Tự nhập thượng quái: " + quai_danh[th_quai] + " và hạ quái: " + quai_danh[ha_quai];
  }
  else {
    var TQ, HQ, S2, GiaSo;
    if (MaiHoa.ChonLua[0].checked == true)
    {
      GiaSo = parseInt(MaiHoa.giaso.value);
      if (isNaN(GiaSo))
        GiaSo = 0;
      if (MaiHoa.TietThang[0].checked == true)
        TQ = jNam + oLich.month + oLich.day;
      else if (MaiHoa.TietThang[1].checked == true)
        TQ = jNam + oLich.tiet + oLich.tn; //〔 Dùng tiết tháng và ngày sau tiết lệnh
      else
        TQ = jNam + oLich.tiet + oLich.day; // 〔Dùng tiết tháng và ngày trong tháng AL
      HQ = TQ + gio + GiaSo;
    }
    else if (MaiHoa.ChonLua[4].checked == true)
    {
      iYear = parseInt(MaiHoa.al_nam.value) + 1;
      iMon  = parseInt(MaiHoa.al_thang.value);
      iDay  = parseInt(MaiHoa.al_ngay.value);
      iHour = parseInt(MaiHoa.al_gio.value) + 1;
      GiaSo = parseInt(MaiHoa.al_giaso.value);
      if (isNaN(GiaSo))
        GiaSo = 0;
      TQ = iYear + iMon + iDay;
      HQ = TQ + iHour + GiaSo;
    }
    else
    {
      TQ = parseInt(MaiHoa.sotren.value);
      S2 = parseInt(MaiHoa.soduoi.value);
      if (MaiHoa.ChonLua[2].checked == true)
        HQ = S2 + gio;
      else
        HQ = TQ + S2;
    }
    th_quai = (TQ % 8);
    ha_quai = (HQ % 8);
    donghao = (HQ % 6);
    if (donghao == 0) donghao = 6;

    var thang = 0;
    var tueCan,tueChi,ngCan,ngChi,nhCan,nhChi,thCan,thChi;
    if (MaiHoa.ChonLua[0].checked == true)
    {
      if (MaiHoa.TietThang[0].checked == true)
      {
        tueCan = TueCan(oLich.year);
        tueChi = TueChi(oLich.year);
        ngCan=ThienCan(oLich.mm);
        ngChi=DiaChi(oLich.mm);
        s = "Năm " + tueCan + " " + tueChi;
        s += ", tháng " + ngCan + " " + ngChi;
        thang = oLich.month;
      }
      else
      {
        tueCan = TueCan(oLich.tue);
        tueChi = TueChi(oLich.tue);
        ngCan=NguyetCan(tueCan, oLich.tiet-1);
        thang=(oLich.tiet+1)%12;
        ngChi=CHI[thang]; // Dùng tiết tháng
        s = "Năm " + tueCan + " " + tueChi;
        s += ", tiết tháng " + ngCan + " " + ngChi;
        thang = oLich.tiet;
      }
      nhCan = ThienCan(oLich.dd);
      nhChi = DiaChi(oLich.dd);
      thCan = ThoiCan(ThienCan(oLich.dd) , gio-1);
      thChi = CHI[gio-1];
      s += ", ngày " + nhCan + " " + nhChi;
      s += ", giờ " + ThoiCan(ThienCan(oLich.dd) , gio-1) + " " + CHI[gio-1];
    }
    else if (MaiHoa.ChonLua[2].checked == true)
      s = "Tự nhập số_1 là " + TQ + " và số_2 là " + S2 + " vào giờ " + CHI[gio-1];
    else if (MaiHoa.ChonLua[3].checked == true)
      s = "Tự nhập số_1 là " + TQ + " và số_2 là " + S2;
    else if (MaiHoa.ChonLua[4].checked == true)
    {
      s = "Tự chọn âm lịch";
      thang = iMon;
    }
    else
      s = "Tự chọn lịch như chỉ định";
  }

  // Lập Bổn Quẻ, Hỗ Quẻ, và Biến Quẻ
  if (bonQue!=null) xoaQue(bonQue);
  bonQue = new lapQue(th_quai, ha_quai);
  if (hoQue!=null) xoaQue(hoQue);
  hoQue = new lapHoQue(bonQue);
  if (bienQue!=null) xoaQue(bienQue);
  bienQue = new lapBienQue(bonQue, donghao);

  var chu, khach, b_chu, b_khach, ho_chu, ho_khach;

  if (donghao < 4)
  {
    if (donghao == 0)
    {
      Write('ThuongQuai', "X");
      Write('HaQuai', "X");
    }
    else
    {
      Write('ThuongQuai', "Thể");
      Write('HaQuai', "Dụng");
    }
    chu = bonQue.tq;
    khach = bonQue.hq;
    ho_chu = hoQue.tq;
    ho_khach = hoQue.hq;
    b_chu = bienQue.tq;
    b_khach = bienQue.hq;
  }
  else
  {
    Write('ThuongQuai', "Dụng");
    Write('HaQuai', "Thể");
    chu = bonQue.hq;
    khach = bonQue.tq;
    ho_chu = hoQue.hq;
    ho_khach = hoQue.tq;
    b_chu = bienQue.hq;
    b_khach = bienQue.tq;
  }

  // Reset colors
  concurrent = 1;
  for (i=0; i < blinkObj.length; i++)
  {
    SetColor(blinkObj[i], colors[0]);
    delete blinkObj[i];
    blinkObj[i] = null;
  }
  blinkObj.length = 0;
  delete blinkObj;

  SetView('MaiHoaText', "visible");
  Write('ChiemQue', s);
  Write('ChuQue', layTrungQuai(bonQue.tq, bonQue.hq));
  Write('BQ_TQ', quai_danh[bonQue.tq]);
  Write('BQ_TH', quai_hanh[bonQue.tq]);
  Write('BQ_HQ', quai_danh[bonQue.hq]);
  Write('BQ_HH', quai_hanh[bonQue.hq]);

  var j;
  var hao = "";
  var hid;
  for (i=0; i < bonQue.hao.length; i++)
  {
    j=i+1;
    hao = ((bonQue.hao[6-j].hao == 9) ? DUONG : AM);
    hid = 'BQ_H'+(6-i);
    if (donghao && (6-i)==donghao)
      blinkObj.push(hid);
    SetView(hid+'C', hao);
  }

  Write('HoQue', layTrungQuai(hoQue.tq, hoQue.hq));
  Write('HQ_TQ', quai_danh[hoQue.tq]);
  Write('HQ_TH', quai_hanh[hoQue.tq]);
  Write('HQ_HQ', quai_danh[hoQue.hq]);
  Write('HQ_HH', quai_hanh[hoQue.hq]);
  for (i=0; i < hoQue.hao.length; i++)
  {
    j=i+1;
    hao = ((hoQue.hao[6-j].hao == 9) ? DUONG : AM);
    SetView('HQ_H'+(6-i)+'C', hao);
  }

  Write('BienQue', layTrungQuai(bienQue.tq, bienQue.hq));
  Write('QB_TQ', quai_danh[bienQue.tq]);
  Write('QB_TH', quai_hanh[bienQue.tq]);
  Write('QB_HQ', quai_danh[bienQue.hq]);
  Write('QB_HH', quai_hanh[bienQue.hq]);
  for (i=0; i < bienQue.hao.length; i++)
  {
    j=i+1;
    hao = ((bienQue.hao[6-j].hao == 9) ? DUONG : AM);
    hid = 'QB_H'+(6-i);
    if (donghao && (6-i)==donghao)
      blinkObj.push(hid);
    SetView(hid+'C', hao);
  }

  if (MaiHoa.ChonLua[0].checked == true)
  {
    var kv = khongVong(tueCan,tueChi); // Tuế
    if (MaiHoa.TietThang[0].checked == true)
      Write('m_nam', oLich.year);
    else
      Write('m_nam', oLich.tue);
    Write('m_nam_cc', tueCan+" "+tueChi);
    Write('m_nam_kv', CHI[kv]+" "+CHI[kv+1]);

    kv = khongVong(ngCan,ngChi); // Nguyệt
    Write('m_tiet', thang);
    Write('m_tiet_cc', ngCan+" "+ngChi);
    Write('m_tiet_kv', CHI[kv]+" "+CHI[kv+1]);

    kv = khongVong(nhCan,nhChi); // Nhật
    Write('m_nhat', oLich.day);
    Write('m_nhat_cc', nhCan+" "+nhChi);
    Write('m_nhat_kv', CHI[kv]+" "+CHI[kv+1]);

    kv = khongVong(thCan,thChi); // Thời
    Write('m_thoi', iHour);
    Write('m_thoi_cc', thCan+" "+thChi);
    Write('m_thoi_kv', CHI[kv]+" "+CHI[kv+1]);

    kv = gioKhongVong(nhCan); // Nhật -> Giờ
    Write('m_ngay_cc', nhCan);
    Write('m_gio_kv', CHI[kv]+" "+CHI[kv+1]);
    SetView('kv_luan', "visible");
  }
  else
  {
    SetView('kv_luan', "hidden");
  }
  if (donghao > 0)
    s = "Hào " + donghao + " động";
  else
    s = "Không có hào động";
  Write('m_haodong', s);

  if (donghao != 0)
  {
    var cq = soSanh(chu, khach);
    var bq = soSanh(b_chu, b_khach);
    var hq = soSanh(ho_chu, ho_khach);
    var ch = soSanh(chu, ho_chu);
    var kh = soSanh(khach, ho_khach);
    s = (laySo(chu) + laySo(khach) + laySo(b_chu) + laySo(b_khach) + laySo(ho_chu) + laySo(ho_khach));
    SetView('MaiHoaGiai', "visible");
    Write('m_bonQue', TheDung[cq]);
    Write('l_bonQue', luanDoan(cq, chu, khach, thang));
    Write('m_theHo', TheHo[ch]);
    Write('l_theHo', TheCatHung[ch]);
    Write('m_dungHo', DungHo[kh]);
    Write('l_dungHo', DungCatHung[kh]);
    Write('m_hoQue', TheDung[hq]);
    Write('l_hoQue', luanDoan(hq, ho_chu, ho_khach, thang));
    Write('m_bienQue', TheDung[bq]);
    Write('l_bienQue', luanDoan(bq, b_chu, b_khach, thang));
    Write('m_tongSo', s);
  }
  else {
      SetView('MaiHoaGiai', "hidden");
  }
  delete oLich;
  concurrent = 0;
}

// Xóa quẻ
function xoaMaiHoa()
{
  if (IE) {
    document.all.MaiHoaText.style.visibility = "hidden";
    document.all.MaiHoaGiai.style.visibility = "hidden";
  } else {
    document.getElementById('MaiHoaText').style.visibility = "hidden";
    document.getElementById('MaiHoaGiai').style.visibility = "hidden";
  }
  MaiHoa.ChonLua[0].checked = true;
  MaiHoa.giaso.value  = 0;
  MaiHoa.sotren.value = 0;
  MaiHoa.soduoi.value = 0;
  MaiHoa.quai1.value = 1;
  MaiHoa.quai2.value = 1;
  MaiHoa.haodong.value = 0;
  concurrent = 1;
  var i;
  for (i=0; i < blinkObj.length; i++)
  {
    SetColor(blinkObj[i], colors[0]);
    delete blinkObj[i];
    blinkObj[i] = null;
  }
  blinkObj.length = 0;
  delete blinkObj;

  // NS does not handle on the sub threads
  if (NS) for (i=1; i <= 6; i++)
  {
    SetView('BQ_H'+i+'C', "hidden");
    SetView('HQ_H'+i+'C', "hidden");
    SetView('QB_H'+i+'C', "hidden");
  }

  capThoi();
}

function yKienXayDung()
{
  var s = "Xin cám ơn quí vị dùng kế chương này. Nếu quí vị có ý kiến và có lòng\n";
  s += "hảo tâm muốn đóng góp xây dựng để có bản kế chương tốt đẹp hơn trong\n";
  s += "tương lai; xin vui lòng liên lạc với tác giả Thiên Y qua địa chỉ sau:\n";
  s += "\tthien.y@operamail.com\n";
  s += "Đa tạ";
  alert(s);
}

function layCan(CanChi)
{
  var i = 0;
  var j = CanChi.indexOf(' ');
  return CanChi.substring(i, j);
}

function layChi(CanChi)
{
  var j = CanChi.indexOf(' ');
  var i = j + 1;
  j = CanChi.length;
  return CanChi.substring(i, j);
}

function XemCanChi(m)
{
}

function chiTiet(muc)
{
}
