
/* *
 * 會員登錄
 */
function memberLogin()
{
  var frm      = document.forms['formLogin'];
  var username = frm.elements['username'].value;
  var password = frm.elements['password'].value;
  var msg = '';

  if (username.length == 0)
  {
    msg += '- 帳號不能未填寫。' + '\n';
  }

  if (password.length == 0)
  {
    msg += '- 密碼不能未填寫。' + '\n';
  }

  if (msg.length > 0)
  {
    alert(msg);
    return false;
  }
  else
  {
    return true;
  }
}

/* *
 * 修改會員信息
 */
function userEdit(frm)
{
  var err_flag = false;
	// 姓名檢核
  invisible_err_block("name_err");
  if(frm.familyname.value == '' || frm.familyname.value == '　' || frm.firstname.value == '' || frm.firstname.value == '　')
  {
    err_flag = visible_err_block("name_err", "請填寫您的中文姓名！");
  }
  else if(frm.firstname.value == '先生' || frm.firstname.value == '小姐' || frm.firstname.value == '小姊')
  {
    err_flag = visible_err_block("name_err", "請填寫完整真實的中文姓名，請勿填寫先生或小姐！");
  }
  else if(getBytesLength(Trim(frm.familyname.value)) > 4)
  {
    err_flag = visible_err_block("name_err", "「姓」最多只能輸入2個中文字！");
  }
  else if(getBytesLength(Trim(frm.firstname.value)) > 10)
  {
    err_flag = visible_err_block("name_err", "「名」最多只能輸入5個中文字！");
  }
	

  // 生日檢核
  invisible_err_block("birthday_err");
  if (frm.birth_y.value == '' || frm.birth_m.value == '' || frm.birth_d.value == '')
  {
    err_flag = visible_err_block("birthday_err", "請選擇您的出生日期！");
  }
  else
  {
    if (!ValidateFieldDate(frm.birth_y ,frm.birth_m ,frm.birth_d, ""))
    {
      err_flag = visible_err_block("birthday_err", "您輸入的出生日期不正確！");
    }
  }
	

  // 性別檢核
  invisible_err_block("sex_err");
  if (!CheckobjNonChecked(frm.sex))
  {
    err_flag = visible_err_block("sex_err", "請選擇您的性別。");
  }

  // Email檢核
  invisible_err_block("email_err");
  if (Trim(frm.email.value) == '')
  {
    err_flag = visible_err_block("email_err", "請填寫您的電子信箱！");
  }
  else if (!ValidateFieldMail(frm.email, ""))
  {
    err_flag = visible_err_block("email_err", "您輸入的電子信箱不正確，為了日後能確實收到訊息通知，請正確填寫！");
  }
	
	if (Trim(frm.elements['other[mobile_phone]'].value) == '' && Trim(frm.elements['other[home_phone]'].value) == '')
  {
    err_flag = visible_err_block("phonearea_err", "您未填寫任何電話，請至少填寫一組您的電話號碼。");
  }

  if (err_flag)
    return false;
  else
    return true;
}

/* 會員修改密碼 */
function editPassword()
{
  var frm              = document.forms['formPassword'];
  var old_password     = frm.elements['old_password'].value;
  var new_password     = frm.elements['new_password'].value;
  var confirm_password = frm.elements['comfirm_password'].value;

  var msg = '';
  var reg = null;

  if (old_password.length == 0)
  {
    msg += '請輸入您的原密碼！' + '\n';
  }

  if (new_password.length == 0)
  {
    msg += '請輸入您的新密碼！' + '\n';
  }

  if (confirm_password.length == 0)
  {
    msg += '請輸入您的確認密碼！' + '\n';
  }

  if (new_password.length > 0 && confirm_password.length > 0)
  {
    if (new_password != confirm_password)
    {
      msg += '您兩次輸入的密碼不一致！' + '\n';
    }
  }

  if (msg.length > 0)
  {
    alert(msg);
    return false;
  }
  else
  {
    return true;
  }
}

/* *
 * 對會員的留言輸入作處理
 */
function submitMsg()
{
  var frm         = document.forms['formMsg'];
  var msg_title   = frm.elements['msg_title'].value;
  var msg_content = frm.elements['msg_content'].value;
  var msg = '';

  if (msg_title.length == 0)
  {
    msg += '留言標題未填寫' + '\n';
  }
  if (msg_content.length == 0)
  {
    msg += '留言內容未填寫' + '\n'
  }

  if (msg_title.length > 200)
  {
    msg += '留言標題不能超過200個字' + '\n';
  }

  if (msg.length > 0)
  {
    alert(msg);
    return false;
  }
  else
  {
    return true;
  }
}

/* *
 * 會員找回密碼時，對輸入作處理
 */
function submitPwdInfo()
{
  var frm = document.forms['getPassword'];
  var user_name = frm.elements['user_name'].value;
  var email     = frm.elements['email'].value;

  var errorMsg = '';
  if (user_name.length == 0)
  {
    errorMsg += '請輸入您的會員名稱！' + '\n';
  }

  if (email.length == 0)
  {
    errorMsg += '請輸入您的電子郵件地址！' + '\n';
  }
  else
  {
    REstr = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/;
    if (!REstr.test(email))
    {
      errorMsg += '您輸入的電子郵件地址格式不正確！' + '\n';
    }
  }

  if (errorMsg.length > 0)
  {
    alert(errorMsg);
    return false;
  }

  return true;
}

/* *
 * 會員找回密碼時，對輸入作處理
 */
function submitPwd()
{
  var frm = document.forms['getPassword2'];
  var password = frm.elements['new_password'].value;
  var confirm_password = frm.elements['confirm_password'].value;

  var errorMsg = '';
  if (password.length == 0)
  {
    errorMsg += '請輸入您的新密碼！' + '\n';
  }

  if (confirm_password.length == 0)
  {
    errorMsg += '請輸入您的確認密碼！' + '\n';
  }

  if (confirm_password != password)
  {
    errorMsg += '您兩次輸入的密碼不一致！' + '\n';
  }

  if (errorMsg.length > 0)
  {
    alert(errorMsg);
    return false;
  }
  else
  {
    return true;
  }
}


function chkstr(str)
{
  for (var i = 0; i < str.length; i++)
  {
    if (str.charCodeAt(i) < 127 && !str.substr(i,1).match(/^\w+$/ig))
    {
      return false;
    }
  }
  return true;
}

function check_password(password)
{
  if (password.length < 6 )
  {
    $('password_notice').innerHTML = ' * 登入密碼不能少於 6 個字母。';
  }
  else
  {
    $('password_notice').innerHTML = ' * ';
  }
}

function check_conform_password(conform_password)
{
  var frm  = document.forms['GRS_REGISTER'];
  var password = frm.elements['password'].value;
  if (conform_password.length < 6)
  {
    $('conform_password_notice').innerHTML = ' * 登入密碼不能少於 6 個字母。';
    return false;
  }
  if ( conform_password != password )
  {
    $('conform_password_notice').innerHTML = ' * 兩次輸入密碼不相同';
  }
  else
  {
    $('conform_password_notice').innerHTML = ' * ';
  }
}

function is_registered(username)
{
  var submit_disabled = false;
  if (username == '')
  {
    $('username_notice').innerHTML = '會員名不能為空';
    var submit_disabled = true;
  }

  if (submit_disabled)
  {
    return false;
  }

  new Ajax.Request('user.php?act=is_registered', {
                   method: 'get',
                   parameters: 'username=' + username,
                   onLoading: showLoader,
                   onComplete: hideLoader,
                   onSuccess: registed_callback});
}



function registed_callback(result)
{
  if (result.responseText == "true")
  {
    $('username_notice').innerHTML = '可以註冊';
    document.forms['formUser'].elements['Submit'].disabled = '';
  }
  else
  {
    $('username_notice').innerHTML = '會員名已存在,請重輸入';
    document.forms['formUser'].elements['Submit'].disabled = 'disabled';
  }
}

function checkEmail(email)
{
  var submit_disabled = false;
  var REstr = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/;
  if (email == '')
  {
    $('email_notice').innerHTML = '郵件地址不能為空';
    submit_disabled = true;
  }
  else if (!REstr.test(email))
  {
    $('email_notice').innerHTML = '郵箱地址不合法';
    submit_disabled = true;
  }

  if(submit_disabled)
  {
    return false;
  }

  new Ajax.Request('user.php?act=check_email', {
                   method: 'get',
                   parameters: 'email=' + email,
                   onLoading: showLoader,
                   onComplete: hideLoader,
                   onSuccess: check_email_callback});

}

function check_email_callback(result)
{
  if (result.responseText == "true")
  {
    $('email_notice').innerHTML = '';
    document.forms['formUser'].elements['Submit'].disabled = '';
  }
  else
  {
    $('email_notice').innerHTML = '郵箱已存在,請重輸入';
    document.forms['formUser'].elements['Submit'].disabled = 'disabled';
  }
}

/* *
 * 處理註冊用戶
 */
function register(frm)
{
  var err_flag = false;

  // 姓名檢核
  invisible_err_block("name_err");
  if(frm.familyname.value == '' || frm.familyname.value == '　' || frm.firstname.value == '' || frm.firstname.value == '　')
  {
    err_flag = visible_err_block("name_err", "請填寫您的中文姓名！");
  }
  else if(frm.firstname.value == '先生' || frm.firstname.value == '小姐' || frm.firstname.value == '小姊')
  {
    err_flag = visible_err_block("name_err", "請填寫完整真實的中文姓名，請勿填寫先生或小姐！");
  }
  else if(getBytesLength(Trim(frm.familyname.value)) > 4)
  {
    err_flag = visible_err_block("name_err", "「姓」最多只能輸入2個中文字！");
  }
  else if(getBytesLength(Trim(frm.firstname.value)) > 10)
  {
    err_flag = visible_err_block("name_err", "「名」最多只能輸入5個中文字！");
  }

  // 生日檢核
  invisible_err_block("birthday_err");
  if (frm.birth_y.value == '' || frm.birth_m.value == '' || frm.birth_d.value == '')
  {
    err_flag = visible_err_block("birthday_err", "請選擇您的出生日期！");
  }
  else
  {
    if (!ValidateFieldDate(frm.birth_y ,frm.birth_m ,frm.birth_d, ""))
    {
      err_flag = visible_err_block("birthday_err", "您輸入的出生日期不正確！");
    }
  }

  // 性別檢核
  invisible_err_block("sex_err");
  if (!CheckobjNonChecked(frm.sex))
  {
    err_flag = visible_err_block("sex_err", "請選擇您的性別。");
  }

  // Email檢核
  invisible_err_block("email_err");
  if (Trim(frm.email.value) == '')
  {
    err_flag = visible_err_block("email_err", "請填寫您的電子信箱！");
  }
  else if (!ValidateFieldMail(frm.email, ""))
  {
    err_flag = visible_err_block("email_err", "您輸入的電子信箱不正確，為了日後能確實收到訊息通知，請正確填寫！");
  }

  // 檢核密碼
  invisible_err_block("password_err");
  if (frm.password.value.length == 0)
  {
    err_flag = visible_err_block("password_err", "請輸入您未來登入的新密碼。");
  }
  else if (frm.password.value.length < 6 || frm.password.value.length > 12)
  {
    err_flag = visible_err_block("password_err", "請輸入6~12碼之英數字，勿用全形，英文有大小寫之分。");
  }

  invisible_err_block("confirm_err");
  if (frm.password_confirm.value.length == 0)
  {
    err_flag = visible_err_block("confirm_err", "請輸入您未來登入的新密碼。");
  }
  else if (frm.password_confirm.value != frm.password.value)
  {
    err_flag = visible_err_block("confirm_err", "您兩次密碼設定的內容不同，請重新輸入。");
  }

	if (Trim(frm.elements['other[mobile_phone]'].value) == '' && Trim(frm.elements['other[home_phone]'].value) == '')
  {
    err_flag = visible_err_block("phonearea_err", "您未填寫任何電話，請至少填寫一組您的電話號碼。");
  }

  if (err_flag)
    return false;
  else
    return true;
}

/* *
 * 檢測密碼強度
 * @param       string     pwd     密碼
 */
function checkIntensity(pwd)
{
  var Mcolor = "#FFF",Lcolor = "#FFF",Hcolor = "#FFF";
  var m=0;

  var Modes = 0;
  for (i=0; i<pwd.length; i++)
  {
    var charType = 0;
    var t = pwd.charCodeAt(i);
    if (t>=48 && t <=57)
    {
      charType = 1;
    }
    else if (t>=65 && t <=90)
    {
      charType = 2;
    }
    else if (t>=97 && t <=122)
      charType = 4;
    else
      charType = 4;
    Modes |= charType;
  }

  for (i=0;i<4;i++)
  {
    if (Modes & 1) m++;
      Modes>>>=1;
  }

  if (pwd.length<=4)
  {
    m = 1;
  }

  switch(m)
  {
    case 1 :
      Lcolor = "2px solid red";
      Mcolor = Hcolor = "2px solid #DADADA";
    break;
    case 2 :
      Mcolor = "2px solid #f90";
      Lcolor = Hcolor = "2px solid #DADADA";
    break;
    case 3 :
      Hcolor = "2px solid #3c0";
      Lcolor = Mcolor = "2px solid #DADADA";
    break;
    case 4 :
      Hcolor = "2px solid #3c0";
      Lcolor = Mcolor = "2px solid #DADADA";
    break;
    default :
      Hcolor = Mcolor = Lcolor = "";
    break;
  }
  $("pwd_lower").style.borderBottom  = Lcolor;
  $("pwd_middle").style.borderBottom = Mcolor;
  $("pwd_high").style.borderBottom   = Hcolor;

}

// 秀出錯誤訊息(display)
function visible_err_block(block_id, ErrMsg)
{
  $(block_id).show();
  $(block_id).update(ErrMsg);
  return true;
}

// 關閉錯誤訊息(display)
function invisible_err_block(block_id)
{
  $(block_id).hide();
  $(block_id).update('');
  return false;
}