    //without validator 2.0
    function customCheckComboRegion(formIdGlobal, ename) {
        var frm = document.forms['eform_' + formIdGlobal];
        var chelm = frm.elements[ename];
        var gn = chelm.getAttribute('group');
        var gc = chelm.getAttribute('grCount');
        var result = false;
        var en = 0;
        for (var i = 0; i < gc; i++){
            var e = document.getElementById(gn + '_' + i);
            if (e != null){
                if ((e.value != '')){
                    result = true;
                    if (en != 0) en = i;
                }
            }
        }
        if (result == false){
            var elm = document.getElementById(gn + '_' + en);
            try {
                elm.focus(); elm.select();
                elm.options[0].selected = true;
                } catch(ex){
                }
        }
        return result;
    }
/***************************************************************************
    //with validator 2.0
    function customCheckComboRegion(formIdGlobal, parser) {
        var frm = document.forms['eform_' + formIdGlobal];
        var gn = parser.element.getAttribute('group');
        var gc = parser.element.getAttribute('grCount');
        var result = parserResults.Incorrect;
        var en = 0;
        for (i = 0; i < gc; i++){
            var e = document.getElementById(gn + '_' + i);
            //var e = frm.elements[gn + '_' + i];
            if (e != null){
                if ((e.value != '') && (e.value != '-1')){
                    result = parserResults.Correct;
                    if (en != 0) en = i;
                }
            }
        }
        if (result == parserResults.Incorrect){
            var elm = document.getElementById(gn + '_' + en);
            try {
                elm.focus(); elm.select();
                elm.options[0].selected = true;
                } catch(ex){
                }
        }
        return result;
    }
*****************************************************************************/
/*--------------------------------------------------------------------------------------------*/
    function customCheckComboAll(formIdGlobal, ename) {
        var frm = document.forms['eform_' + formIdGlobal];
        var chelm = frm.elements[ename];
        var gn = chelm.getAttribute('group');
        var result = true;
        var e = frm.elements[gn];
        if ( (e.value == '') ){
                result = false;
                try {
                    e.focus(); e.select();
                    e.option[0].selected = true;
                    } catch(ex){
                        }
        }
        return result;
    }
/***************************************************************************
    //with validator 2.0
    function customCheckComboAll(formIdGlobal, parser) {
        var frm = document.forms['eform_' + formIdGlobal];
        var gn = parser.element.getAttribute('group');
        var result = parserResults.Correct;
        var e = frm.elements[gn];
        if ( (e.value == '') || (e.value == '-1') ){
                result = parserResults.Incorrect;
                try {
                    e.focus(); e.select();
                    e.option[0].selected = true;
                    } catch(ex){
                        }
        }
        return result;
    }
***************************************************************************/
/*--------------------------------------------------------------------------------------------*/
    function customCheckCheckbox(formIdGlobal, ename) {
        var frm = document.forms['eform_' + formIdGlobal];
        var chelm = frm.elements[ename];
        var gn = chelm.getAttribute('group');
        var gc = chelm.getAttribute('grCount');
        var result = false;
        for (var i = 0; i < gc; i++){
            var e = document.getElementById(gn + '_' + i);
            if (e.checked){
                result = true;
            }
        }
        return result;
    }
/***************************************************************************
    function customCheckCheckbox(formIdGlobal, parser) {
        var frm = document.forms['eform_' + formIdGlobal];
        var gn = parser.element.getAttribute('group');
        var gc = parser.element.getAttribute('grCount');
        var result = parserResults.Incorrect;
        for (i = 0; i < gc; i++){
            var e = document.getElementById(gn + '_' + i);
            if (e.checked){
                result = parserResults.Correct;
            }
        }
        return result;
    }
***************************************************************************/
/*--------------------------------------------------------------------------------------------*/
    function customCheckRadio(formIdGlobal, ename) {
        var frm = document.forms['eform_' + formIdGlobal];
        var chelm = frm.elements[ename];
        var gn = chelm.getAttribute('group');
        var gc = chelm.getAttribute('grCount');
        var result = false;
        for (var i = 0; i < gc; i++){
            var e = document.getElementById(gn + '_' + i);
            if (e.checked){
                var result = true;
            }
        }
        return result;
    }
/***************************************************************************
    function customCheckRadio(formIdGlobal, parser) {
        var frm = document.forms['eform_' + formIdGlobal];
        var gn = parser.element.getAttribute('group');
        var gc = parser.element.getAttribute('grCount');
        var result = parserResults.Incorrect;
        for (i = 0; i < gc; i++){
            var e = document.getElementById(gn + '_' + i);
            if (e.checked){
                result = parserResults.Correct;
            }
        }
        return result;
    }
***************************************************************************/
/*--------------------------------------------------------------------------------------------*/
    function customCheckMin(formIdGlobal, ename) {
        var frm = document.forms['eform_' + formIdGlobal]
        var chelm = frm.elements[ename];
        var min = chelm.getAttribute('vMinLen');
        result = (trim(chelm.value).length < min) ? false : true;
        return result;
    }
/***************************************************************************
    function customCheckMin(formIdGlobal, parser) {
        var min = parser.element.getAttribute('vMinLen');
        result = (trim(parser.value).length < min) ? parserResults.Incorrect : parserResults.Correct;
        return result;
    }
***************************************************************************/
/*--------------------------------------------------------------------------------------------*/
    function doDisableOnPost(formIdGlobal, frm) {
        for (i = 0; i < frm.elements.length; i++){
            var e = frm.elements[i];
            if (e.getAttribute('disableOnPost') == '1'){
                e.disabled = true;
            }
        }
    }
/*--------------------------------------------------------------------------------------------*/
    function eformChangeRegion(formIdGlobal, obj, cf, ffid){
        var frm = document.forms['eform_' + formIdGlobal];
        doDisableOnPost(formIdGlobal, frm);
        frm.elements['REFPAGE_TYPE'].value = '8103';
        frm.elements['DEFAULT_ACTION'].value = '8301';
        var e = frm.elements[cf];
        e.value = obj.value;
        document.getElementById('loading-msg-bg-' + formIdGlobal).style.display = 'block';
        document.getElementById('loading-msg-' + formIdGlobal).style.display = 'block';
        frm.submit();
    }
/*--------------------------------------------------------------------------------------------*/
    function eformButtonClick(formIdGlobal, obj, refType, ffid, pbp, refURL){
        var frm = document.forms['eform_' + formIdGlobal];
        frm.elements['IS_USER_SUBMIT'].disabled = false;
        if (refType == '8103'){
            if (checkElementsByEForm(frm, false) != false){
                obj.disabled = true;
                doDisableOnPost(formIdGlobal, frm);
                frm.elements['REFPAGE_TYPE'].value = refType;
                    var es = document.getElementById('IS_SUBMIT_' + formIdGlobal);
                    if (pbp != ''){
                        es.name = 'XYZ3E7_POOL_PART_' + ffid;
                        es.value = pbp;
                    } else {
                        es.name = 'IS_SUBMIT_' + ffid;
                        es.value = '1';
                    }
                    es.disabled = false;
                frm.submit();
            }
        } else {
            if (refType == '8104'){
                var frm_s = document.forms['eform_statistic_' + formIdGlobal];
                frm_s.submit();
                /*
                var resStr = '';
                var locationStr = window.location.toString();
                var endStr = 'isShowResults=1&formId='+formIdGlobal;
                if (locationStr.lastIndexOf('?') == -1){
                    resStr = '?' + endStr;
                } else resStr = '&' + endStr;
                window.location += resStr;
                */
        } else {
                if (checkElementsByEForm(frm, false) != false){
                    obj.disabled = true;
                    doDisableOnPost(formIdGlobal, frm);
                    frm.elements['REFPAGE_TYPE'].value = refType;
                    frm.elements['REFPAGE'].value = refURL;
                    frm.submit();
                }
            }
        }
    }
/*--------------------------------------------------------------------------------------------*/
    function eformGoBack(formIdGlobal){
            history.back();
            return false;
    }
/*--------------------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/
/*-----------------------------EForm Validation-----------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------------------------*/

function objErrMsg() {
    var errMsg = ''
    this.errMsg = errMsg;
}

function checkElementsByEForm(form, stopOnError){
	var customWin = ((typeof window.openPopUp) == 'function');
    var result = true;
    var globalErrMsg = '';
    var eNum = -1;
	var arrFields = new Array();
    for (var i = 0; i < form.elements.length; i++){
        var e = form.elements[i];
        var errMsg = new objErrMsg();
        var res = checkEformElement(e, errMsg);
        if (!res){
            result = false;
            globalErrMsg += (customWin?'&#160;&#160;&#160;&#160;&#160;':'') + errMsg.errMsg + (customWin?'<br />':'\n');
			if(customWin) arrFields[arrFields.length] = e;
            if (eNum == -1){
                eNum = i;
            }
        }
    }
	$j('.lreq-label-sign-alert').removeClass('lreq-label-sign-alert');
	$j('.lreq-label-text-alert').removeClass('lreq-label-text-alert');
    if (!result){
		if(customWin && arrFields.length){
			for(var i = 0; i < arrFields.length; i++){
				var idArr = ("" + arrFields[i].name).split("_");
				var idArrStr = new Array();
				for(var j = 0; j < idArr.length; j++){
					if(isNaN(idArr[j])) idArrStr[idArrStr.length] =  idArr[j];
				}
				idArrStr = idArrStr.join("_");
				if($j("." + idArrStr)){
					$j("." + idArrStr).addClass('lreq-label-sign-alert');
					$j("." + idArrStr).parents('td').eq(0).find('span').eq(0).addClass('lreq-label-text-alert');
				}
			}
		}
		if(customWin && window.openPopUp) openPopUp({text:'<span style="color: red">' + msgPrefix + '.</span><br /><br />' + globalErrMsg + '<br /><br />' + msgSuffix, w:300, h:50});
        else alert(msgPrefix + '\n\n' + globalErrMsg + '\n' + msgSuffix);
        if (eNum != -1){
            try {
                var ee = form.elements[eNum];
                ee.focus();
                ee.select();
            } catch (ex){}
        }
    }
    return result;
}
/*--------------------------------------------------------------------------------------------*/
function checkEformElement(e, eM){
    var result = true;
    //if Validate
    if (e.getAttribute('vV') == '1'){
        //if Required
        if (e.getAttribute('vR') == '1'){
            if (e.value == ''){
                result = false;
                eM.errMsg = e.getAttribute('vRMsg');
            }
        }
            if (result && trim(e.value) != ''){
                if (e.getAttribute('vDT') != ''){
                    var dt = e.getAttribute('vDT');
                    var res = true;
                    if (dt == 'dtCustom'){
                        res = checkEformCustomDT(e.value);
                    }
                    if (dt == 'dtEMail'){
                        res = checkEformEMailDT(e.value);
                    }
                    if (dt == 'dtNumeric'){
                        res = checkEformNumericDT(e.value);
                    }
                    if (!res){
                        eM.errMsg = e.getAttribute('vVMsg');
                    }
                    result = res;
                }
            }

        if (result){
            if (e.getAttribute('vOnV') != ''){
                var func = e.getAttribute('vOnV');
                eval(func);
                if (!result){
                    eM.errMsg = e.getAttribute('vVMsg');
                }
            }
        }
    }
    return result;
}

function checkEformEMailDT(value){
    //var exp = new RegExp('[\\S]{1,}[\\@]{1}[\\S]{1,}[\\.]{1}[\\S]{1,}');
        //return exp.test(value);
	return value.match(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i);
}

function checkEformNumericDT(value){
    var s = '[+|-]{0,1}[\\d]{1,12}';
        s = s + '(\\.[\\d]{1,2}|)';
    var exp = RegExp(s);
    return exp.test(value);
}

function checkEformCustomDT(value){
    var exp = RegExp('(\\s|\\S)*');
    return exp.test(value);
}

function ltrim(s){
    return (s.replace(/^[\s]*/, ''));
}

function rtrim(s){
    return (s.replace(/[\s]*$/, ''));
}

function trim(s){
    return (ltrim(rtrim(s)));
}
                        function rchange(formId)
                        {
                            var f = document.forms['eform_' + formId];

                            var ach = document.getElementsByName('PCHECK');
                            var cc = 0;
                            for (var i = 0; i < ach.length; i++)
                                if (ach[i].checked) cc++;
                            if (cc > 1)
                            {
                                if (confirm('Are you sure to interchange checked elements?'))
                                {
                                    f.elements['PACTION'].value = 'INTERCHANGE';
                                    f.submit();
                                }
                                else
                                {
                                    for (var i = 0; i < ach.length; i++)
                                        ach[i].checked = false;
                                }
                            }
                        }

                        function move(formId, position,order,ff1,ff2)
                        {
                            var f = document.forms['eform_' + formId];

                            document.getElementById('ffId1').value = ff1;
                            document.getElementById('ffId2').value = ff2;
                            f.elements['PACTION'].value = 'MOVE';
                            f.submit();
                        }

                formTermsReset = function(sender,formIdGlobal,fNameFull,ffId)
                {
                  var f = document.forms['eform_' + formIdGlobal];
                    for (var i = 0; i < f.elements.length; i++)
                    {
                      var e = f.elements[i];
                      if (
                        (e.tagName.toUpperCase() == 'SELECT'
                        || (e.tagName.toUpperCase() == 'INPUT' && e.type.toUpperCase() == 'RADIO')
                        || (e.tagName.toUpperCase() == 'INPUT' && e.type.toUpperCase() == 'HIDDEN'))
                        && (e.name.substring(0,17) == 'REG_DELIVERY_TERM' || e.name.substring(0,16) == 'REG_PAYMENT_TERM' || e.id.substring(0,13) == 'REG_REGION_ID')
                         )
                      {
                        e.disabled = true;
                      }
                    }
                  eformChangeRegion(formIdGlobal,sender,fNameFull,ffId);
                }
