//////////////////////////////////////////////////////////////
// FILE: validateForm.js                                                           
// VERSION: 20040502_1 
//  
// DESCRIPTION: 檢視輸入表單的內容
//                                   
// 2003/10/06 created by Rmo Tsai
// 2007/05/28 modified by Rmo Tsai
//    加上 validateForm_confirmPublish()
//////////////////////////////////////////////////////////////


function validateForm_confirmDelete(p_title) {
    if (confirm("確定要刪除此筆" + p_title + "資料?")) {
       return true;
    }
    else 
       return false;
}



function validateForm_confirmDeleteAll(p_title) {
    if (confirm("確定要刪除所有" + p_title + "資料?")) {
       return true;
    }
    else 
       return false;
}



function validateForm_confirmDeleteAllOfData(p_title1, p_title2) {
    if (confirm("確定要刪除該" + p_title1 + "資料及相關的" + p_title2 +"資料?")) {
       return true;
    }
    else 
       return false;
}



function validateForm_confirmListDelete(p_title, p_optionCheckedNumber) {
    if (confirm("確定要刪除所選擇的" + p_optionCheckedNumber + '筆' + p_title + "資料?")) {
       return true;
    }
    else 
       return false;
}



function validateForm_confirmPublish(p_title) {
    if (confirm("確定要發送" + p_title + "?")) {
       return true;
    }
    else 
       return false;
}



function validateForm_isAnyOptionChecked(p_item) {
    var len = utility_getOptionCheckLength(p_item);
    var count = 0;
    
    if (len > 1) {
        while (count < len) {
            if (eval("p_item[" + count + "].checked")) {
                return true;
            }
            count++;
        }
    }
    else {
        if (p_item.checked) {
            return true;
        }
    }    
     
    return false;    
}



function validateForm_isAllOptionChecked(p_item) {
    var len = utility_getOptionCheckLength(p_item);
    var count = 0;
    
    if (len > 1) {
        while (count < len) {
            if (!(eval("p_item[" + count + "].checked"))) {
                return false;
            }
            count++;
        }
        return true;
    }
    else {
        if (p_item.checked) {
            return true;
        }
    }    
     
    return false;    
}



function validateForm_isCheckboxSelected(p_item, p_itemTitle) {
    if (validateForm_isAnyOptionChecked(p_item)) {
    	return true;
    } 
    else {
        alert("請勾選" + p_itemTitle);
        return false; 
    }     
}



function validateForm_isRadioSelected(p_item, p_itemTitle) {
    if (validateForm_isAnyOptionChecked(p_item)) {
    	return true;
    } 
    else {
        alert("請選擇" + p_itemTitle);
        return false; 
    }
}



function validateForm_isEmailValid(p_item, p_itemTitle) {
    l_strEmailReg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
    if (!l_strEmailReg.test(p_item.value)) {
        alert(p_itemTitle + "內容格式不正確");
        p_item.focus();
        return false;
    }
    return true;
}
   
   
   
function validateForm_isFileExtensionValid(p_item, p_itemTitle, p_fileType) {
    var l_fileName = p_item.value;
    var l_valid = false;
    
    if (l_fileName.length == 0) {
    	return true;
    }
    
    if (l_fileName.length != 0) {
        var l_fileNameExtension = l_fileName.substring(l_fileName.lastIndexOf('.'));
        
        
        if (p_fileType == "msword") {
            if (l_fileNameExtension == ".doc") {
                l_valid = true;
            }       
        }
        else if (p_fileType == "image") {
            if ((l_fileNameExtension == ".jpeg") ||
                (l_fileNameExtension == ".jpg") ||
                (l_fileNameExtension == ".gif")) {
                l_valid = true;
            }
        }
        else {
            alert("不存在此種檔案類型:" + p_fileType);
            p_item.focus();
            return false;
        }
    }
        
    if (l_valid) {
        return true;
    }
    else {
        alert(p_itemTitle + "檔案類型不正確");
        p_item.focus();
        return false;
    }
}



//檢查身份證字號
function validateForm_isPersonalIdValid(p_item, p_itemTitle){
    var l_id = p_item.value.toLowerCase()
    //Regular expression checking. Must leading with letter and followed
    //by numbers. First digit is place of birth. second digit is sex.
    //The last digit is checksum
    var l_pattern = /^[a-z][12][0-9]{8}$/;
    if(l_pattern.test(l_id)) {
       var l_areaCode = "abcdefghjklmnpqrstuvxywzio";
       var l_sum = 10 + l_areaCode.indexOf(l_id.substring(0,1));
       var l_checksum = (l_sum - (l_sum % 10)) / 10 + (l_sum % 10)* 9;
       for(i = 1; i < 9; i++){
          l_checksum += l_id.substring(i, i + 1)*(9 - i);
       } 
       l_checksum = (10 - l_checksum % 10) % 10 
       
       if(l_checksum == l_id.substring(9,10)) {
           return true;
       }
    }
    
    alert(p_itemTitle + "內容不正確");
    p_item.focus();
    return false;
}



///////////////////////////////////////////////////////////////
// function validateForm_isInputItemNonEmpty(item, itemTitle)
//     檢視輸入是否為空字串
// Parameters:
// 1.input parameter:
//   item: 輸入項目
//   itemTitle: 標題
// 2.return parameter
//   true or false
///////////////////////////////////////////////////////////////
function validateForm_isInputItemNonEmpty(p_item, p_itemTitle) {
    var l_inputString = utility_trim(p_item.value);
    if (utility_isStringEmpty(l_inputString)) {
        alert("請輸入" + p_itemTitle);
        p_item.focus();
        return false;
    }
    else
        return true;
}



///////////////////////////////////////////////////////////////
// function validateForm_isHtmlareaInputItemNonEmpty(p_htmlareaItem, p_itemTitle) {
//     檢視輸入是否為空字串
// Parameters:
// 1.input parameter:
//   p_htmlareaItem: htmlarea 物件
//   item: 輸入項目
//   p_itemTitle: 標題
// 2.return parameter
//   true or false
///////////////////////////////////////////////////////////////
function validateForm_isHtmlareaInputItemNonEmpty(p_htmlareaItem, p_itemTitle) {
    var inputString = utility_trim(p_htmlareaItem.getHTML());
    if(utility_isStringEmpty(inputString)) {
        alert("請輸入" + p_itemTitle);
        if (p_htmlareaItem.focusEditor) {
            p_htmlareaItem.focusEditor();
        }
        return false;
    }else
        return true;
}



function validateForm_isSelectedItemNonEmpty(p_item, p_itemTitle) {
    var inputString = utility_trim(p_item.value);
    if (utility_isStringEmpty(inputString)) {
        alert("請選擇" + p_itemTitle);
        p_item.focus();
        return false;
    }
    else
        return true;
}



function validateForm_isNumberFloat(p_item, p_itemTitle)
{
    if (isNaN(parseFloat(p_item.value))) {
        alert(p_itemTitle + "內容必須為實數");
        p_item.focus();
        return false;
    }
    else 
        return true;
}



function validateForm_isNumberInt(p_item, p_itemTitle)
{
    if (isNaN(parseInt(p_item.value))) {
        alert(p_itemTitle + "內容必須為整數");
        p_item.focus();
        return false;
    }
    else 
        return true;
}



function validateForm_isNumberPositive(p_item, p_itemTitle)
{
    var number = parseFloat(p_item.value);
    if (isNaN(number)) {
        alert(p_itemTitle + "內容不為數值");
        p_item.focus();
        return false;
    }
    else if (number < 0) {
        alert(p_itemTitle + "內容必須為大於 0 的數值");
        p_item.focus();
        return false;
    }
    return true;
}



function validateForm_isValidFileNameForUpload(p_item, p_itemTitle) {
    if (utility_isFileNameChinese(p_item.value)) {
        alert(p_itemTitle + "檔名不可含有中文");
        p_item.focus();
        return false;
    }
    return true;
}



function validateForm_isUploadFileNonEmpty(p_orgItem, p_newItem, p_itemTitle, p_itemMaxLength) {
    if (p_orgItem.value == '') {
        if (p_newItem.value == ""){
            alert(p_itemTitle + "請介於1~" + p_itemMaxLength + "個字元之內");
            p_newItem.focus();
            return false;
        }
    }
    return true;
}



function validateForm_isPasswordEqual(p_password1, p_password2, title)
{
    if (p_password1.value != p_password2.value) {
        alert(title + "內容必須相同");
        p_password2.focus();
        return false;
    }
    else 
        return true;
}



function validateForm_isValidDate(p_item, p_itemTitle) {
     if (!utility_isValidDate(p_item.value)) {
         alert(p_itemTitle + "日期不正確");
         return false;
     }
     return true;         
}


function validateForm_isValidDateTime(p_item, p_itemTitle) {
     // eg: 2002/11/12 03:05:07 is validate date
     var dateTimeSeparator = " ";
     var separatorIndex = p_item.value.indexOf(dateTimeSeparator);
     if (separatorIndex > 0) {
         dateString = p_item.value.substring(0, separatorIndex);
     } 
     else {
         dateString = p_item.value;
     }
     if (!utility_isValidDate(dateString)) {
         alert(p_itemTitle + "日期不正確");
         return false;
     }
     return true;        
}



function validateForm_composeDateFromSelect(p_form, p_variableName, p_country) { 
    var century = eval("p_form." + p_variableName + "Century.value");
    var year = eval("p_form." + p_variableName + "Year.value");
    //modified By Rmo, parseInt("08"), parseInt("09") 會解讀為 8 進制的數值，產生 value 為 0
    if (p_country == "tw") {
        var westernYear = 1911 + parseInt(century) * 100 + parseInt(year, 10);
    } else {
        westernYear = parseInt(century) * 100 + parseInt(year, 10);
    }
    var month = eval("p_form." + p_variableName + "Month.value");
    var day = eval("p_form." + p_variableName + "Day.value");
    if ((century == "") && (year == "") && (month == "") && (day == "")) {
        return "";
    }
    else {
        return westernYear + "/" + month + "/" + day;
    }
}        
 
 

function validateForm_composeDateTimeFromSelect(p_form, p_variableName, p_country) { 
    var date = validateForm_composeDateFromSelect(p_form, p_variableName, p_country)
    var hour = eval("p_form." + p_variableName + "Hour.value");
    var minute = eval("p_form." + p_variableName + "Minute.value");
    var time;
    if ((hour == "") && (minute == "")) {
        time = "";
    }
    else {
        time = hour + ":" + minute + ":" + "00";
    }
    return date + " " + time;
}
