﻿// Declare global variables
var reg_email  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
var reg_name  = /^([a-zA-Z0-9_ \.\-])/;
var reg_num  = /^([0-9])/;
var reg_website  = /^([a-zA-Z0-9_\.\-])+(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

//Defined global message
var MSG_InsertComplete = "บันทึกข้อมูลเรียบร้อย";
var MSG_UpdateComplete = "แก้ไขข้อมูลเรียบร้อย";
var MSG_DeleteComplete = "ลบข้อมูลเรียบร้อย";
var MSG_InsertNotComplete = "ไม่สามารถบันทึกข้อมูลได้";
var MSG_UpdateNotComplete = "ไม่สามารถแก้ไขข้อมูลได้";
var MSG_DeleteNotComplete = "ไม่สามารถลบข้อมูลได้";
var MSG_ConfirmDelete = "ต้องการลบข้อมูลหรือไม่ ?";


//Trim message
function Trim(TRIM_VALUE){
    if(TRIM_VALUE.length < 1){
        return "";
    }//end
    TRIM_VALUE = RTrim(TRIM_VALUE);
    TRIM_VALUE = LTrim(TRIM_VALUE);
    if(TRIM_VALUE==""){
        return "";
    }else{
        return TRIM_VALUE;
    }//end
}

//Right trim message
function RTrim(VALUE){
    var w_space = String.fromCharCode(32);
    var v_length = VALUE.length;
    var strTemp = "";
    
    if(v_length < 0){
        return "";
    }//end
    
    var iTemp = v_length -1;
    while(iTemp > -1){
        if(VALUE.charAt(iTemp) == w_space){
            //
        }else{
            strTemp = VALUE.substring(0,iTemp +1);
            break;
        }//end if
    
        iTemp = iTemp-1;
    } //End While
    
    return strTemp;
} //End Function

//Left trim message
function LTrim(VALUE){
    var w_space = String.fromCharCode(32);
    if(v_length < 1){
        return "";
    }
    
    var v_length = VALUE.length;
    var strTemp = "";
    var iTemp = 0;

    while(iTemp < v_length){
        if(VALUE.charAt(iTemp) == w_space){
            //
        }else{
            strTemp = VALUE.substring(iTemp,v_length);
            break;
        }//end if
        
        iTemp = iTemp + 1;
    } //End While
    
    return strTemp;
} //End Function

// Check input form
function checkInputForm(arrForm, sContentName)
{
    var oForm = null;
    var sFormName, sMessage, sLabelName;
    var MSG_Input = "กรุณาระบุ";
    
    for(var i = 0; i < arrForm.length; i++)
    {
        sFormName = sContentName + "" + arrForm[i];
        sFormName = new String(sFormName);
        
        sLabelName = "lbl" + sFormName.substring(sContentName.length + 3);
        
        sMessage = MSG_Input+""+getLabelInnerText(sLabelName)
        oForm = document.getElementById(sFormName);
        
        if(!Trim(oForm.value))
        {
            alert(sMessage);
            
            if(!oForm.readOnly && !oForm.disabled)
            {
                oForm.value = '';
                oForm.focus();
            }
            
            return false;
        }//end if
    }//end for
    
    return true;
}

// Get filter object number if null return 0
function getFilterNumber(num)
{
    var dNumber = 0;
    num = (num * 1) + 0;
    
    if(!isNaN(num * 1))
    {
        dNumber = parseFloat(eval(num));
    }//end if
    
    return dNumber;
}

function isNumber(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if(charCode > 31 && (charCode < 48 || charCode > 57) && charCode != 46) return false;
    
    return true;
}

//For Format Number to Currency "#,##0.00"
function formatCurrencyToDecimal(num, numDigit, IsComma) 
{
    var nPower = Math.pow(10, eval(numDigit));
    var bIsSign = false;
    var nDecimal = 0;
    var sNumber = new String();

    num = new String(num);
    num = num.replace(/\$|\,/g, '');

    if(isNaN(num)) num = "0";

    bIsSign = (num == (num = Math.abs(num)));
    num = Math.floor(num * nPower + 0.50000000001);
    nDecimal = num % nPower;

    num = Math.floor(num / nPower).toString();
    sNumber = num.toString();

    if(nDecimal < (nPower / 10) && numDigit > 1)
    {
        var sZero = new String(nPower / 10);
        sZero = sZero.substring(new String(nDecimal).length);

        nDecimal = sZero + "" + nDecimal;
    }

    for(var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
    {
        num = num.substring(0, num.length - ((4 * i) + 3)) + ',' + num.substring(num.length - (4 * i + 3));
    }//end for                

    if(IsComma){
        sNumber = num.toString() + '.' + nDecimal;
        
        if(!bIsSign) sNumber = '-' + sNumber;
    }else{
        sNumber = sNumber + '.' + nDecimal;
        
        if(!bIsSign) sNumber = '-' + sNumber;
        
        sNumber = sNumber * 1;
    }

    return sNumber;
}

function getTextContent(objElement)
{
    var myText = new String();
    
    if(typeof(objElement.textContent) != "undefined") myText = objElement.textContent;
    else myText = objElement.innerText;
    
    return myText;
}
//Filter numeric control between max and min
function FilterNumericControl(txtNum,minVal,maxVal,digit)
{
    var num = parseFloat(formatCurrencyToDecimal(txtNum.value,digit,false));
    minVal = formatCurrencyToDecimal(minVal,digit,false);
    maxVal = formatCurrencyToDecimal(maxVal,digit,false);
    var min = Math.min(minVal,maxVal);
    var max = Math.max(minVal,maxVal);    
    if(num < min) num = min;
    if(num > max) num = max;
    txtNum.value = formatCurrencyToDecimal(num,digit,true);        
}
// Set MaxLength for Multiline TextBox
function CheckMaxLength(txtControl,intLength) 
{
    var blnIsOverflow = false;
    if(txtControl) 
    {
        if( txtControl.value.length < intLength)
        {
            blnIsOverflow = false;
        }
        else
        {
            blnIsOverflow = true;
        }
    }
    else
    {
        blnIsOverflow = true;
    }
    return !blnIsOverflow;
}

function isNummericOnly(evt)
{
    // CharCode 46 => [.]
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if(charCode > 31 && (charCode < 48 || charCode > 57)) return false;
    
    return true;
}

//set textbox to readonly
function setTexboxReadOnly(obj)
{
    obj.blur();
    //obj.readOnly = true;
    obj.oncontextmenu = function(){return false;}
}

//disabled contextmenu
function disabledContextMenu(obj)
{
    obj.oncontextmenu = function(){return false;}
}

//get document value(textbox,label,link)
function getDocumentValue(objID)
{
    var objectValue = document.getElementById(objID);
    var getValue = '';
    
    if(objectValue){
        getValue = objectValue.value;
        
        if(typeof(getValue) == 'undefined') getValue = objectValue.innerText;
    }//end if
    
    return Trim(getValue);
}