appconfig.lang="ch";
appconfig.sid="";
appconfig.baseurl=window.location.protocol + "//" + window.location.host + "/" + window.location.pathname;
appconfig.formdata=JSON.parse('null');
/*console.log(appconfig);*/
;
function getObjectSize(obj) {
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)){
size++;
}
}
return size;
}
function clearSpecialCharaters(s){
return (s||"").replace(/[﹑_`.,;\\\\/:*?\"\{\}\[\]\(\)<>|&-='\^%$#@!\~]/g," ");
}
function keepTextSingleSpace(s){
return (s||"").replace(/\s\s+/g," ");
}
function clearNumbers(s){
return (s||"").replace(/\d/g,"");
}
function scrollToPageElement(scrollTo,speed,delta){
delta=delta||0;
speed=speed||0;
var container =$("body,html");
try{
if(window.self !== window.top) {
container = $("body,html",window.parent.document);
}
} catch(e){
container =$("body,html");
}
if (scrollTo){
if(container.find(".webpage-body>.scroller").length>0){
container=container.find(".webpage-body>.scroller");
container.animate({scrollTop: scrollTo.offset().top - container.offset().top-delta },speed);
} else {
//console.log(scrollTo.offset().top);
container.animate({scrollTop: scrollTo.offset().top - container.offset().top + container.scrollTop()-delta},speed);
}
} else {
if(container.find(".webpage-body>.scroller").length>0){
container=container.find(".webpage-body>.scroller");
container.animate({scrollTop: container.offset().top-delta },speed);
} else {
container.animate({scrollTop: container.offset().top + container.scrollTop()-delta},speed);
}
}
}
function setParentIframeHeight(thePage){
try{
if(window.self !== window.top) {
container = $("body,html",window.parent.document);
var h=thePage.height()+10;
container.find("#cont_detail iframe").height(h);
//thePage.css({"min-height":h});
}
} catch(e){
}
}
/*check requiered fields*/
function checkRequiredInputs(thePage,callback){
var scrollToRequiredElm=function(){
var container =$("body,html");
try{
if(window.self !== window.top) {
container = $("body,html",window.parent.document);
}
} catch(e){
container =$("body,html");
}
scrollToElement($(".required-field:first"),container,0);
};
isok=true;
if(thePage){
thePage.find(".required-tips").remove();
thePage.find(":input[required]:visible,textarea[required]:visible,div[required]:visible").removeClass("required-field bordered bordered-danger").each(function(){
var elm=$(this);
if(elm.find(":checkbox:visible,:radio:visible").length>0){
if(elm.find(":checked").length==0){
isok=false;
elm.addClass("required-field bordered bordered-danger");
if(elm.parent("[data-date-format]").length>0) elm=elm.parent("[data-date-format]");
elmTips(elm,lng("必須填寫","Preenchimento obrigatório","Required"));
//if(isAndroid) scrollToRequiredElm();
runScript(callback);
}
} else {
if($.trim(this.value)==""){
isok=false;
elm.addClass("required-field bordered bordered-danger");
if(elm.parent("[data-date-format]").length>0) elm=elm.parent("[data-date-format]");
/*elmTips(elm,getTranslate("lang_required"));*/
elmTips(elm,lng("必須填寫","Preenchimento obrigatório","Required"));
//if(isAndroid) scrollToRequiredElm();
runScript(callback);
}
}
});
if(!isok){
thePage.find(".required-field:first").focus();
setParentIframeHeight();
}
}
return isok;
}
$(function() {
setParentIframeHeight($(".rpage-body"));
scrollToPageElement();
});
function isIdnbrLast4Digists(n){
return /^[0-9]{4}$/.test(n);
};
function isMacauMobile(n){
// 匹配澳 (6開始共8碼)
return /^6[\d]{7}$/.test(n);
};
function isMacauTel(n){
// 匹配澳 (28開始共8碼)
return /^28[\d]{6}$/.test(n);
};
function isNotIncludeNumber (n) {
return /^([^0-9]*)$/.test(n);
};
function onlyWord(s){
return (s||'').replace(/[\d]/g,'')
};
function isEmail(n){
return /^([a-z0-9_\.-]+\@[\da-z\.-]+\.[a-z\.]{2,6})$/.test(n);
};
function isLicno1(n){
n=(n||"").toString().toUpperCase();
return /^[MDWETOCAS\-]\-[\d]{4}|^PH\-[\d]{4}|^AT\-[\d]{4}$/.test(n);
};
function isLicno(n){
n=(n||"").toString().toUpperCase();
return /^([A-Z]{1,2}-[\d]{4})$/.test(n);
};
function isMacauIdnbr(n){
return /^[157][\d]{7}$/.test(n);
};
function isSsStaffid(n){
return /^[\d]{7}$/.test(n);
};
$.fn.snapToRequiredContainer=function(elm,targetname,msg){
clearAllElmTips();
myForm=$(this);
msg=msg||"";
if (msg==""){ msg=lng("必須填寫,請檢查!","Obrigatório!","Required, please check! ")}
var c=myForm.find(targetname);
if(c.length>0){
elm.removeClass("disabled");
c.elmTips(msg);
setParentIframeHeight(targetname);
rt=false;
} else {
rt=true;
}
return rt;
}
$.fn.snapTipsToInputBox=function(elm,inputname,msg){
clearAllElmTips();
myForm=$(this);
elm.removeClass("disabled");
myForm.find("[name="+inputname+"]").focus().elmTips(msg);
setParentIframeHeight(myForm.find("[name="+inputname+"]"));
}
$.fn.isInputMaxLength=function(elm,str,inputname,msg,defaultlength){
elm.removeClass("disabled");
var myForm=$(this);
var rt=false;
str=$.trim(str||"");
defaultlength=defaultlength||50;
var elm_maxlength=parseInt((myForm.find("[name="+inputname+"]").attr("maxlength")||defaultlength));
// logme(str.length);
// logme(elm_maxlength);
if(str.length!==elm_maxlength){
myForm.snapTipsToInputBox(elm,inputname,msg.replace(/\[0\]/g,elm_maxlength));
rt=false;
} else {
rt=true;
}
logme("isInputMaxLength["+inputname+"]="+rt);
return rt;
}
$.fn.isInputBeginsWith=function(elm,str,chars,inputname,msg){
elm.removeClass("disabled");
var myForm=$(this);
var rt=false;
str=$.trim(str||"");
if (!$.isArray(chars)){
chars=[chars];
}
var found=false;
$.each(chars,function(k,v){
if(str.beginsWith(chars[k])){
found=true;
}
});
logme(chars);
if(!found){
myForm.snapTipsToInputBox(elm,inputname,msg);
rt=false;
} else {
rt=true;
}
return rt;
}
$.fn.isInputEndsWith=function(elm,str,chars,inputname,msg){
elm.removeClass("disabled");
var myForm=$(this);
var rt=false;
str=$.trim(str||"");
if(!str.endsWith(chars)){
myForm.snapTipsToInputBox(elm,inputname,msg);
rt=false;
} else {
rt=true;
}
return rt;
}
$.fn.isInputDigit=function(elm,str,inputname,msg){
elm.removeClass("disabled");
var myForm=$(this);
var rt=false;
str=$.trim(str||"");
if(!str.isDigit()){
myForm.snapTipsToInputBox(elm,inputname,msg);
rt=false;
} else {
rt=true;
}
return rt;
}
$.fn.isInputChinese=function(elm,str,inputname,msg){
var myForm=$(this);
msg=msg||"";
if (msg==""){ msg=lng("必須是中文","Deve ser chinês","Must be Chinese")}
elm.removeClass("disabled");
var rt=false;
str=$.trim(str||"");
if(!str.isChinese()){
myForm.snapTipsToInputBox(elm,inputname,msg);
rt=false;
} else {
rt=true;
}
return rt;
}
$.fn.isInputInChinese=function(elm,str,inputname,msg){
var myForm=$(this);
msg=msg||"";
if (msg==""){ msg=lng("必須是中文","Deve ser chinês","Must be Chinese")}
elm.removeClass("disabled");
var rt=false;
str=$.trim(str||"");
if(str.isInChinese()){
myForm.snapTipsToInputBox(elm,inputname,msg);
rt=false;
} else {
rt=true;
}
return rt;
}
var _smsverifycode="", smsverifytimer;
function setSmsVerify(defaultwait=60){
var fm=$("#fmSmsVerification"),
btnResendVerifyCode=fm.find("#btnResendVerifyCode"),
btnVerifyCodeSuccess=fm.find("#btnVerifyCodeSuccess"),
txtVcode = fm.find("[name=smsvcode]"),
VCountDown=fm.find("#VerifyCodeCountDown"),
mobile=$.trim(fm.find("[name=verifymobile]").val()||""),
areacode=$.trim(fm.find("[name=verifyareacode]").val()||"");
defaultwait=defaultwait||60;
var _wait=defaultwait;
var VerifyCodeCountDown=function(obj){
//console.log("_wait="+_wait);
if(_wait==0){
if(!fm.hasClass("verified")) {
btnVerifyCodeSuccess.addClass("hide");
btnResendVerifyCode.removeClass("disabled").removeClass("hide").data("vcid","");
VCountDown.addClass("hide").removeClass("disabled");
txtVcode.removeAttr("readonly").val("");
$("#vsno").empty();
}
_wait=defaultwait;
} else {
if(!fm.hasClass("verified")) {
var txt=_wait+"秒後重試";
if(getAppConfig().lang=="pt"){
txt="Repetir após "+_wait+" segundos";
} else if(getAppConfig().lang=="en"){
txt="Retry after "+_wait+" seconds";
} else {
txt=_wait+"秒後重試";
}
VCountDown.removeClass("hide").addClass("disabled").text(txt);
_wait--;
smsverifytimer=setTimeout(function(){
VerifyCodeCountDown(obj)
},1000);
}
}
}
fm.on("init",function(e){
$("[name='smsvcode']").removeAttr("readonly").val("");
$("[name='verifymobile']").val("");
$("[name='verifyareacode']").val("");
btnVerifyCodeSuccess.addClass("hide");
VCountDown.addClass("hide");
btnResendVerifyCode.removeClass("hide");
fm.removeClass("verified");
})
txtVcode.off().on("keyup blur",function(e){
var v=this.value;
if(v==_smsverifycode && v!==""){
fm.addClass("verified");
btnVerifyCodeSuccess.removeClass("hide");
btnResendVerifyCode.addClass("hide").data("vcid","");
VCountDown.addClass("hide").removeClass("disabled");
txtVcode.attr("readonly",true);
_wait=0;
}
//if (e.which == 13)
//alert(e.which == 13);
//btnResendVerifyCode.addClass("disabled");
return false;
});
btnResendVerifyCode.off().on("click",function(e){
e.preventDefault();
var theBtn=$(this);
if(theBtn.hasClass("disabled")) return false;
theBtn.addClass("disabled");
fm.removeClass("verified");
mobile=$.trim(fm.find("[name=verifymobile]:visible").val()||"");
areacode=$.trim(fm.find("[name=verifyareacode]:visible").val()||"");
//if(_wait>0) return false;
if(fm.find("[name=verifyareacode]:visible").length>0){
if(areacode.length==0) {
theBtn.removeClass("disabled");
setParentIframeHeight($("body"));
clearAllElmTips();
var elm=$("[name=areacode]");
elm.focus();
elm.parents(".input-group").elmTips(lng("請輸入正確的地區碼!","Por favor, insira o código de área correto!","Please enter the correct area code!"),{style:"display:inline-block"});
//scrollToPageElement(elm);
return false;
}
}
if(fm.find("[name=verifymobile]:visible").length>0){
if(mobile.length==0) {
theBtn.removeClass("disabled");
setParentIframeHeight($("body"));
clearAllElmTips();
var inputMobile=$("[name=mobile]");
inputMobile.focus().elmTips(lng("建議填手機號碼!","Preferencialmente número de telemóvel!"),{style:"display:block"});
//alert($("[name=mobile]").length);
scrollToPageElement(inputMobile);
return false;
}
}
var orgtext=theBtn.text();
theBtn.addClass("disabled").text(lng("傳送中...","Sending...","Sending..."));
txtVcode.val("").focus().clearElmTips();
pdata=Base64.encode(JSON.stringify({mobile:mobile,areacode:areacode}));
//console.log({f:"smsvcode",pdata:pdata,lang:appconfig.lang,sid:appconfig.sid});
$.post(appconfig.baseurl,{f:"smsvcode",pdata:pdata,lang:appconfig.lang,sid:appconfig.sid},function(rt){
//console.log(rt);
// console.log(defaultwait);
//theBtn.addClass("hide").removeClass("disabled").text(orgtext);
theBtn.addClass("hide").text(orgtext);
if(rt.result=="success"){
_smsverifycode=rt.vcode
if(rt.vsno!==""){
$("#vsno").text(lng("短訊序號:","Número de série do SMS:","SMS serial number:")+rt.vsno);
}
VerifyCodeCountDown(this);
//console.log("VerifyCodeCountDown")
} else {
theBtn.removeClass("hide");
}
}, "json");
return false;
});
}
;
$(function(){
//console.log(appconfig);
var tipsStyle="display:inline-block;margin-top:3px;white-space:normal !important;word-wrap: break-word; ";
var updateIframeHeight=function(){setParentIframeHeight($(".rpage-body"));};
var pagebanner=$(".rpage-banner");
var pagebannerheight=pagebanner.outerHeight();
//$(".step:first").parents(".row").parent().css({"padding-top":pagebannerheight});
var defaultSmsVerifySeconds=90;
setSmsVerify(defaultSmsVerifySeconds);
try{
if(appconfig.formdata!=null){
var curRow=appconfig.formdata;
$("[name=name_c]").val(curRow["name_c"]||"");
$("[name=name_p]").val(curRow["name_p"]||"");
$("[name=sex] option[value='"+curRow["sex"]+"']").attr("selected","selected");
$("[name=idnbr]").val(curRow["idnbr"]||"");
$("[name=dpt]").val(curRow["dpt"]||"");
$("[name=staffid]").val(curRow["staffid"]||"");
$("[name=medtype]").val(curRow["medtype"]||"");
$("[name=opt_medtype] option[value='"+curRow["medtype"]+"']").attr("selected","selected");
$("[name=licno_num]").val(curRow["licno_num"]||"");
if ((curRow["licno_num"]||"")!=="") $("[name=licno]").val($("[name=opt_medtype] option:selected").attr("value")+"-"+(curRow["licno_num"]||""));
$("[name=mobile]").val(curRow["mobile"]||"");
$("[name='verifymobile']").val(curRow["mobile"]||"");
$("[name='smsvcode']").val(curRow["smsvcode"]||"");
$("#VerifyCodeCountDown").text(defaultSmsVerifySeconds);
$("[name=tel]").val(curRow["tel"]||"");
$("[name=email]").val(curRow["email"]||"");
$((curRow["courseitem"]||"").split(",")).each(function(){
$("[name=courseitem][value='"+this+"']").parents("tr").remove();
});
}
} catch(e){}
if($("[name=courseitem]").length==0){
$(".btn-step[nextstep=1]").after(juicer("${lng('沒有可報的時段!','Sem período de registo!','No registration period!')}",curRow));
$(".btn-step[nextstep=1]").remove();
$(".applycourses,.btn-submit").remove();
}
$(".btn-step[nextstep=1]").removeClass("hide");
if(isMobile){
$("[name='staffid'],[name='mobile'],[name='tel'],[name='idnbr'],[name='licno_num']").attr("type","number");
$("[name='email']").attr("type","email");
} else {
// $("[name='licno']").each(function(k){
// $.mask.definitions["T"]="[WACSwacs]";
// $(this).mask("T-9999",{autoclear: false});
// });
// $("[name='staffid']").each(function(k){
// $(this).mask("9999999",{autoclear: false});
// });
// $("[name='mobile']").each(function(k){
// $(this).mask("69999999",{autoclear: false});
// });
}
var getOnlyMaxLength=function(v,maxlength){
v=(v||"").toString().toUpperCase();
if(v.length>maxlength && maxlength>0) v=v.substring(0,maxlength);
return v;
}
$(":input[maxlength]").on("keypress",function(e){
this.value=getOnlyMaxLength(this.value.toString(),$(this).attr("maxlength")||0)
});
$(":input[maxlength][type=number]").on("blur",function(e){
this.value=getOnlyMaxLength(this.value.toString(),$(this).attr("maxlength")||0).replace(/[^\d]/g, "");
});
$("[name='mobile']").on("blur",function(e){
$("[name='verifymobile']").val($(this).val());
$("#VerifyCodeCountDown").text(defaultSmsVerifySeconds);
$(this).clearElmTips();
var v=($(this).val()||"").toString().toUpperCase();
if(v.length>0){
if(!isMacauMobile(v)){
$(this).focus().select().elmTips(lng('請輸入流動電話號碼且必須為6開頭的8個數字號碼','Por favor introduza o número de telemóvel e este deve ser um número de 8 dígitos começando por 6','Please enter the cell phone number and it must be an 8 digit number starting with 6'),{style:tipsStyle});
}
}
});
$("[name='tel']").on("blur",function(e){
$(this).clearElmTips();
var v=($(this).val()||"").toString().toUpperCase();
if(v.length>0){
if(!isMacauTel(v)){
$(this).focus().select().elmTips(lng('請輸入聯絡電話號碼必須為28開頭的8個數字號碼','O número de contacto deve ser um número de 8 dígitos, começando por 28。','The contact number must be an 8-digit number starting with 28.'),{style:tipsStyle});
}
}
});
// $("[name='email']").on("blur",function(e){
// $(this).clearElmTips();
// var v=($(this).val()||"").toString().toUpperCase();
// if(v.length>0){
// if(!isEmail(v)){
// $(this).focus().select().elmTips(lng("請輸入正確的電郵","Por favor, digite o e-mail correto")+" eg: abc@abc.org",{style:tipsStyle});
// }
// }
// });
// $("[name='licno']").on("blur",function(e){
// var v=($(this).val()||"").toString().toUpperCase();
// $(this).clearElmTips();
// if(v.length>0){
// if(!isLicno(v)){
// $(this).focus().select().elmTips(lng('請輸入正確的執照編號','Por favor introduza o número de licença correcto')+" eg. M-XXXX, WL-XXXX ",{style:tipsStyle});
// }
// }
// });
$("[name='opt_medtype']").on("change",function(e){
var opt=$(this).find('option:selected');
var mtype=opt.attr('value');
$('[name=profession]').val($.trim(opt.text()));
$('[name=medtype]').val(mtype);
var v=$("[name='licno_num']").val();
if(v.length>0){
$('[name=licno]').val(mtype+'-'+v);
}
});
$("[name='licno_num']").on("change keypress keyup",function(e){
$(this).val($(this).val().replace(/[^0-9\-]+/g, ''));
}).on("keyup",function(e){
var v=$(this).val().trim();
if(v.length>0){
var mtype=$('[name=medtype]').val();
if(mtype==''){
var optmtype=$('[name=opt_medtype] option:selected').attr('value');
$('[name=medtype]').val(optmtype);
mtype=optmtype
};
if (v.length>4) v=v.substring(0,4);
$('[name=licno]').val(mtype+'-'+v);
} else {
$('[name=licno]').val(v);
}
})
$("[name='idnbr']").on("blur",function(e){
var v=($(this).val()||"").toString().toUpperCase();
$(this).clearElmTips();
if(v.length>0){
if(!isMacauIdnbr(v)){
$(this).focus().select().elmTips(lng("不正確的澳門居民身份證號碼","BIR N.º de Macau incorrecto","Incorrect BIR Macau No."),{style:tipsStyle});
}
}
});
$(window).on("scroll",function(){
// if($(window).scrollTop()0){
elm.removeClass("disabled");
updateIframeHeight();
scrollToPageElement(step1.find(".required-field").eq(0));
return false;
}
}
$(".step").addClass("hide").eq(nStep).removeClass("hide");
setTimeout(function(){
updateIframeHeight();
if(window.self !== window.top) {
scrollToPageElement();
} else {
$(window).scrollTop(0);
}
},0);
elm.removeClass("disabled");
});
$("#captcha").on("click",function(e){
$.post(appconfig.baseurl,{f:"refreshcaptcha",sid:appconfig.sid},function(rt){
rt=JSON.parse(rt);
$("#captcha").text(rt.vsno);
});
});
$.fn.inputTips=function(tipsmsg){
var elm=$(this);
return this.each(function(){
elm.clearElmTips();
elm.elmTips(tipsmsg,{style:tipsStyle});
updateIframeHeight();
//scrollToPageElement(elm);
//setTimeout(function(){
if(elm.find(":input:visible").length>0){
elm.find(":input:visible:first").focus().select();
} else {
elm.focus().select();
}
setTimeout(function(){
scrollToPageElement(elm,0,150);
},0);
//},0);
});
}
$(".btn-submit").on("click",function(e){
var elm=$(this);
var myForm=$("#form1");
var passdata=retrieveFormData(myForm);
$(".required-field,.required-tips").removeClass("required-field bordered-danger");
$(".required-tips").remove();
//console.log(passdata);
if(passdata.name_c=="" && passdata.name_p =="") {
$("[name=name_c]:visible").inputTips(lng("必須填寫","Preenchimento obrigatório","Required"));
elm.removeClass("disabled");
return false;
} else if(passdata.name_c!==""){
if(!passdata.name_c.isChinese()){
$("[name=name_c]:visible").inputTips(lng("必須是中文姓名","Deve ser chinês","Must be Chinese"));
elm.removeClass("disabled");
return false;
}
} else if(passdata.name_p!==""){
if(passdata.name_p.isInChinese()){
elm.removeClass("disabled");
$("[name=name_p]:visible").inputTips(lng("必須是外文姓名","Não pode ser um nome chinês ","Cannot be a Chinese name "));
elm.removeClass("disabled");
return false;
}
}
if(passdata.licno==""){
$("[name=licno_num]").inputTips(lng("必須填寫執照編號!","Licença devem ser preenchidos!","Must fill in license"));
elm.removeClass("disabled");
return false;
}
/*
if (passdata.licno!=="" && passdata.staffid==""){
if(!isLicno(passdata.licno)){
$("[name=licno]").inputTips(lng("不正確的執照編號!","Número de licença incorrecto!","Incorrect license number!"));
elm.removeClass("disabled");
return false;
}
} else if (passdata.licno=="" && passdata.staffid!==""){
if(!isSsStaffid(passdata.staffid)){
$("[name=staffid]").inputTips(lng("不正確的員工編號!","Número de pessoal incorrecto!","Incorrect employee number!"));
elm.removeClass("disabled");
return false;
}
} else{
if(passdata.licno=="" || passdata.staffid==""){
$("[name=licno_num]").inputTips(lng("必須填寫執照或員工編號!","Licença ou número de pessoal devem ser preenchidos!","Must fill in license or employee number"));
elm.removeClass("disabled");
return false;
}
}
*/
if(!isMacauIdnbr(passdata.idnbr)){
$("[name=idnbr]:visible").inputTips(lng("不正確的澳門居民身份證號碼","BIR N.º de Macau incorrecto","Incorrect BIR Macau No."));
elm.removeClass("disabled");
return false;
}
if(!isMacauMobile(passdata.mobile)){
$("[name=mobile]:visible").inputTips(lng("請輸入正確的手機號碼!","Por favor introduza o número de telemóvel correcto!","Please enter the correct cell phone number"));
elm.removeClass("disabled");
return false;
}
if(passdata.email!=="") {
if(!isEmail(passdata.email)){
$("[name=email]:visible").inputTips(lng("請輸入正確的電郵","Por favor, digite o e-mail correto")+" eg: abc@abc.org");
elm.removeClass("disabled");
return false;
}
}
//console.log(passdata);
if(!checkRequiredInputs(myForm)){
updateIframeHeight();
elm.removeClass("disabled");
return false;
}
$("table.applycourses").parent().removeClass("required-field bordered bordered-red");
if($("[name=courseitem]:checked").length==0){
$("table.applycourses").parent().addClass("required-field bordered bordered-red").elmTips(lng("必須鈎選","Preenchimento obrigatório","Required"),{style:tipsStyle});;
updateIframeHeight();
scrollToPageElement($("table.applycourses"));
elm.removeClass("disabled");
return false;
}
$(".agreement").removeClass("required-field bordered bordered-red")
if (!(passdata.ag1=="Y" && passdata.ag2=="Y")){
$(".agreement").addClass("required-field bordered bordered-red");
updateIframeHeight();
elm.removeClass("disabled");
return false;
}
if($("[name=smsvcode]").val()==""){
$('.smsverify').removeClass('hide');
updateIframeHeight();
scrollToPageElement($("[name=smsvcode]"));
elm.removeClass("disabled");
return false;
}
//console.log(passdata);
$("#form1").submit();
return false;
});
updateIframeHeight();
scrollToPageElement();
});