﻿

function checkBoxListSelect(cbControl, state) {
    var chkBoxList = document.getElementById(cbControl);
    var chkBoxCount = chkBoxList.getElementsByTagName("input");
    for (var i = 0; i < chkBoxCount.length; i++) {
        chkBoxCount[i].checked = state;
    }

    return false;
}


function LTrim(str) {
    var whitespace = new String(" \t\n\r");
    var s = new String(str);

    if (whitespace.indexOf(s.charAt(0)) != -1) {
        var j = 0, i = s.length;

        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
            j++;

        s = s.substring(j, i);
    }
    return s;
}

function RTrim(str) {
    var whitespace = new String(" \t\n\r");
    var s = new String(str);

    if (whitespace.indexOf(s.charAt(s.length - 1)) != -1) {
        var i = s.length - 1;       // Get length of string

        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
            i--;

        s = s.substring(0, i + 1);
    }
    return s;
}

function Trim(str) {
    return RTrim(LTrim(str));
}

function validateEmail(str) {
    var emailExp = new RegExp("[A-Za-z0-9\-\_\+\.][A-Za-z0-9]+@[A-Za-z0-9\-\_][A-Za-z0-9]+\.[A-Za-z][A-Za-z\-\.]*$");
    if ((Trim(str) == "") || (!emailExp.test(str)) || (!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(Trim(str))))
    { return false; }
    else
    { return true; }
}

function validateNRIC(str) {
    var bValid = true;

    if (Trim(str) != "") {
        // these variables used for NRIC checks
        weight = new Array("2", "7", "6", "5", "4", "3", "2");
        u_reftb = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "Z", "J");
        f_reftb = new Array("K", "L", "M", "N", "P", "Q", "R", "T", "U", "W", "X");
        var i = 0, prod = 0, sum = 0, rem = 0;
        var pfx, chkdgt;

        if (str.length != 9)
        { bValid = false; }

        if (bValid) {
            pfx = Trim(str).charAt(0).toUpperCase();
            chkdgt = Trim(str).charAt(8).toUpperCase();

            if (pfx != 'I' && pfx != 'S' && pfx != 'T' &&
	        pfx != 'F' && pfx != 'G')
            { bValid = false; }
            for (i = 0; i < 7; i++) {
                prod = weight[i] * Trim(str).charAt(i + 1);
                sum += prod;
            }
            if (pfx == 'T' || pfx == 'G') {
                sum += 4;
            }
            rem = sum % 11;
            if (pfx == 'I' || pfx == 'S' || pfx == 'T') {
                if (chkdgt == u_reftb[(11 - rem) - 1])
                { bValid = true; }
                else
                { bValid = false; }
            }
            else {
                if (chkdgt == f_reftb[(11 - rem) - 1])
                { bValid = true; }
                else
                { bValid = false; }
            }
        }
    }

    return bValid
}


function validateInteger(strInput, min, max) {
    try {
        var bSuccess = false;
        var bTemp = true;
        var strTemp = Trim(strInput).toString();
        var cValue = "";
        if (min == "") { min = 0; }
        if (max == "") { max = 9999999; }

        for (var i = 0; i < strTemp.length; i++) {
            cValue = strTemp.charAt(i);
            if (cValue < "0" || cValue > "9") {
                bTemp = false;
            }
        }
        if (bTemp) {
            if (parseInt(strInput) >= parseInt(min) && parseInt(strInput) <= parseInt(max)) { bSuccess = true; }
        }
        return bSuccess;
    }
    catch (errC) { }
}

function chkTextAreaLength(field, maxLength) {
    try {
        if (field != null) {
            if (Trim(field.value).length > maxLength) {
                field.value = field.value.substring(0, maxLength);
            }
        }
    }
    catch (errC) { alert(errC.description) }
}

function toggleInputField(input, inputOthers, input2Type) {
    try {
        einput = document.getElementById(input);
        einputOthers = document.getElementById(inputOthers);
        if (!einput.checked) {
            einputOthers.disabled = true;
            switch (input2Type) {
                case "text":
                    einputOthers.value = '';
                    break;
                case "dropdown":
                    einputOthers[0].selected = true;
                    break;
                case "radio":
                    einputOthers.checked = false;
                    break;
                case "checkbox":
                    einputOthers.checked = false;
                    break;
                case "file":
                    document.getElementById(inputOthers + "_divFile").innerHTML = '';
                    break;
            }
        }
        else {
            switch (input2Type) {
                case "file":
                    if (document.getElementById(inputOthers + "_hFileURL"))
                    { einputOthers.disabled = true; }
                    else
                    { einputOthers.disabled = false; }
                    break;
                default:
                    einputOthers.disabled = false;
                    break;
            }
        }

    }
    catch (errC) { }
}
