$.LoadingOverlaySetup({ color : "rgba(0, 0, 0, 0.4)", fade : true, image : "../images/loading.gif", imagePosition : "center center", maxSize : 0, minSize : 0, resizeInterval : 0, size : 0, zIndex : 9999 }); //if error, the field's parent div-".entrybar" addClass ".onerror" //error msg change by .txt(); // Declaring required variables var digits = "0123456789"; // non-digit characters which are allowed in phone numbers var phoneNumberDelimiters = "()- "; // characters which are allowed in international phone numbers // (a leading + is OK) var validWorldPhoneChars = phoneNumberDelimiters + "+"; // Minimum no of digits in a phone no. var minDigitsInIPhoneNumber = 8; function clearAll() { $('form').find(':input').each(function() { switch(this.type) { case 'password': case 'select-multiple': case 'select-one': case 'text': case 'textarea': $(this).val(''); break; case 'checkbox': this.removeAttr("checked"); case 'radio': this.checked = false; } }); } function getParameterByName(name) { name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), results = regex.exec(location.search); return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); } function toUnicode(value){ var result = ""; for(var i = 0; i < value.length; i++){ // Assumption: all characters are < 0xffff result += "u" + ("000" + value[i].charCodeAt(0).toString(16)).substr(-4); //result += "\\\\u" + ("000" + value[i].charCodeAt(0).toString(16)).substr(-4); } return result; }; function changeVerifyCode(){ var imgurl = "https://www.cncbinternational.com/Kaptcha.jpg?"+Math.random()*100; $('#kaptchaimg').attr("src", imgurl); } function isInteger(s) { var i; for (i = 0; i < s.length; i++) { // Check that current character is number. var c = s.charAt(i); if (((c < "0") || (c > "9"))) return false; } // All characters are numbers. return true; } function trim(s) { var i; var returnString = ""; // Search through string's characters one by one. // If character is not a whitespace, append to returnString. for (i = 0; i < s.length; i++) { // Check that current character isn't whitespace. var c = s.charAt(i); if (c != " ") returnString += c; } return returnString; } function stripCharsInBag(s, bag) { var i; var returnString = ""; // Search through string's characters one by one. // If character is not in bag, append to returnString. for (i = 0; i < s.length; i++) { // Check that current character isn't whitespace. var c = s.charAt(i); if (bag.indexOf(c) == -1) returnString += c; } return returnString; } function isPhoneNumber(strPhone){ var bracket=3 strPhone=trim(strPhone) if(strPhone.indexOf("+")>1) return false if(strPhone.indexOf("-")!=-1)bracket=bracket+1 if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false var brchr=strPhone.indexOf("(") if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false s=stripCharsInBag(strPhone,validWorldPhoneChars); return (isInteger(s) && s.length >= minDigitsInIPhoneNumber); } function isValidEmail(emailStr) { var emailPat=/^(.+)@(.+)$/ var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]" var validChars="\[^\\s" + specialChars + "\]" var quotedUser="(\"[^\"]*\")" var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/ var atom=validChars + '+' var word="(" + atom + "|" + quotedUser + ")" var userPat=new RegExp("^" + word + "(\\." + word + ")*$") var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$") var matchArray=emailStr.match(emailPat) if (matchArray==null) { return false } var user=matchArray[1] var domain=matchArray[2] if (user.match(userPat)==null) { // user is not valid return false } var IPArray=domain.match(ipDomainPat) if (IPArray!=null) { // this is an IP address for (var i=1;i<=4;i++) { if (IPArray[i]>255) { return false } } return true } // Domain is symbolic name var domainArray=domain.match(domainPat) if (domainArray==null) { return false } var atomPat=new RegExp(atom,"g") var domArr=domain.match(atomPat) var len=domArr.length if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) { // the address must end in a two letter or three letter word. return false } // Make sure there's a host name preceding the domain. if (len<2) { return false } return true; } // maxwell20190819++ function getUrlVars() { var vars={}; var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { vars[key] = value; }); return vars; } // maxwell -- function updateMarketWebSubmitStats() { var marketWebStatsId = getUrlVars()["marketWebStatsId"]; if (!marketWebStatsId) { return; } $.ajax({ url: '/onlineFormAPI/marketWebStats/' + marketWebStatsId, type: 'put', dataType: 'json', success: function(data){ //console.log('Success: ' + data); }, error: function(xhr, status, error){ var errorMessage = xhr.status + ': ' + xhr.statusText //console.log('Error: ' + errorMessage); } }); } $(document).ready(function(e) { // Calvin 201907++ // initMarketWebStatsId(); // Calvin -- var formcurrent = 1; $('#btnsubmit').click(function(event) { event.preventDefault(); var gender = $("input[name='gender']:checked").val(); var surname = $("#surname").val(); var givenname = $("#givenname").val(); var phone = $("#phone").val(); var pro_type = $("#pro_type :selected").val(); var email = $("#email").val(); var trans = $("#trans").val(); var os_loan = $("#os_loan").val(); var pageerror = false; if (gender == undefined) { $("#genderbar").addClass("onerror"); pageerror = true; } else { $("#genderbar").removeClass("onerror"); } if (surname == "") { $("#surnamebar").addClass("onerror"); pageerror = true; } else { $("#surnamebar").removeClass("onerror"); } if (givenname == "") { $("#givennamebar").addClass("onerror"); pageerror = true; } else { $("#givennamebar").removeClass("onerror"); } if (!isPhoneNumber(phone) || phone == "") { $("#phonebar").addClass("onerror"); pageerror = true; } else { $("#phonebar").removeClass("onerror"); } if (pro_type == "") { $("#pro_typebar").addClass("onerror"); pageerror = true; } else { $("#pro_typebar").removeClass("onerror"); } //Optional fields validation if (email != "" && (!isValidEmail(email))) { $("#emailbar").addClass("onerror"); pageerror = true; } else { $("#emailbar").removeClass("onerror"); } if (trans != "" && (!isInteger(trans))) { $("#transbar").addClass("onerror"); pageerror = true; } else { $("#transbar").removeClass("onerror"); } if (os_loan != "" && (!isInteger(os_loan))) { $("#os_loanbar").addClass("onerror"); pageerror = true; } else { $("#os_loanbar").removeClass("onerror"); } if (pageerror == false) { //populate Preview $("#langchange").hide(); var pregender = document.getElementById('pregender'); var presurname = document.getElementById('presurname'); var pregivenname = document.getElementById('pregivenname'); var prephone = document.getElementById('prephone'); var preemail = document.getElementById('preemail'); var prepro_type = document.getElementById('prepro_type'); var pretrans = document.getElementById('pretrans'); var preos_loan = document.getElementById('preos_loan'); var predistrict = document.getElementById('predistrict'); var preestate = document.getElementById('preestate'); var preblock = document.getElementById('preblock'); var prefloor = document.getElementById('prefloor'); var preunit = document.getElementById('preunit'); pregender.innerHTML = gender; presurname.innerHTML = surname; pregivenname.innerHTML = givenname; prephone.innerHTML = phone; preemail.innerHTML = $("#email").val(); prepro_type.innerHTML = pro_type; pretrans.innerHTML = $("#trans").val(); preos_loan.innerHTML = $("#os_loan").val(); predistrict.innerHTML = $("#district").val(); preestate.innerHTML = $("#estate").val(); preblock.innerHTML = $("#block").val(); prefloor.innerHTML = $("#floor").val(); preunit.innerHTML = $("#unit").val(); $("#step1").slideUp(749); $("#step2").delay(750).slideDown(750); $("#progress_list_step1").removeClass('current').addClass('done'); $("#progress_list_step1").find('ion-icon').attr('name','checkbox').attr('class','hydrated'); $("#progress_list_step2").addClass('current'); $("#progress_list_step2").find('ion-icon').attr('name','create').attr('class','hydrated'); $(".lead-in").slideUp(750); formcurrent = 2; $("html, body").animate({ scrollTop: 0 }, "slow"); return false; } }); $('#btnconfirm').click(function(event) { event.preventDefault(); var veri = $('#verificationcode').val(); var errocount = false; if ((veri == null) || (veri == "")) { $("#err-veri").slideDown(); $("#err-veri2").slideUp(); $("#err-veri3").slideUp(); errocount = true; }else{ errocount = false; $("#err-veri").slideUp(); $("#err-veri2").slideUp(); $("#err-veri3").slideUp(); } var title = $('input[name=gender]:checked').val(); var surname = $('#surname').val(); var givenname = $('#givenname').val(); var useremail = $('#email').val(); var cpgcode = $('#campaigncode').val(); var cpgname = $('#campaignname').val(); var subdate = new Date(); var month = ('0' + (subdate.getMonth() + 1)).slice(-2); var day = ('0' + subdate.getDate()).slice(-2); var hours = subdate.getHours(); if (hours < 10) { hours = "0" + hours; } var minutes = subdate.getMinutes(); if (minutes < 10) { minutes = "0" + minutes; } var seconds = subdate.getSeconds(); if (seconds < 10) { seconds = "0" + seconds; } var userrefno = cpgcode + month + day + hours + minutes + seconds; $("#refNum").text(userrefno); //alert (refid); //Submit the form to mortgageConfirm.jsp var language = $('#lang').val(); var contact_number = $('#phone').val(); var propertytype = $('#pro_type').val(); var transprice = $('#trans').val(); var osloan = $('#os_loan').val(); var area = "" //$('#area').val(); //Does not exist var district = $('#district').val(); var estate = $('#estate').val(); var block = $('#block').val(); var floor = $('#floor').val(); var unit = $('#unit').val(); var usercaptchatext = $('#verificationcode').val(); if (errocount == false) { //Start overlay $.LoadingOverlay("show"); //Submit form to server via ajax - Need to confirm path for JSP // Send $.ajax({ url: '/cms/onlineapp/mortgageapptform/mortgageConfirm.jsp', type: 'post', dataType: 'json', data: { title: toUnicode(title), surname: toUnicode(surname), givenname: toUnicode(givenname), useremail: toUnicode(useremail), campaigncode: toUnicode(cpgcode), campaignname: toUnicode(cpgname), userrefno: toUnicode(userrefno), language: toUnicode(language), contact_number: toUnicode(contact_number), propertytype: toUnicode(propertytype), transprice: toUnicode(transprice), osloan: toUnicode(osloan), //area: area, district: toUnicode(district), estate: toUnicode(estate), block: toUnicode(block), floor: toUnicode(floor), unit: toUnicode(unit), usercaptchatext: toUnicode(usercaptchatext) }, success: function(data){ // log('order:', data); // alert('data success message:', data.message); // SUCCESS if(data.result == '0'){ // Clear & reset Form clearAll(); //Show result page $("#step2").slideUp(749); $("#step3").delay(750).slideDown(750); $("#step3").css('height','450px'); $("#progress_list_step2").removeClass('current').addClass('done'); $("#progress_list_step2").find('ion-icon').attr('name','checkbox').attr('class','hydrated'); $("#progress_list_step3").removeClass('current').addClass('done'); $("#progress_list_step3").find('ion-icon').attr('name','checkbox').attr('class','hydrated'); formcurrent = 3; $("html, body").animate({ scrollTop: 0 }, "slow"); $.LoadingOverlay("hide"); //alert("success"); // Calvin 201907++ updateMarketWebSubmitStats(); // Calvin 201907-- } else { // ERROR if(data.result == '-1'){ errocount = true; $("#err-veri").slideUp(); $("#err-veri2").slideDown(); $("#err-veri3").slideUp(); // alert("result==-1"); } else if (data.result == '-2'){ errocount = true; $("#err-veri").slideUp(); $("#err-veri2").slideUp(); $("#err-veri3").slideDown(); // alert("result==-2"); } $.LoadingOverlay("hide"); } }, error: function() { errocount = true; $("#err-veri").slideUp(); $("#err-veri2").slideDown(); var errMsg = "Please try again later."; $.LoadingOverlay("hide"); //alert(errMsg); } }); } return false; }); $("#printBtn").click(function() { window.print(); return false; }); $('#reset1').on('click', function () { event.preventDefault(); resettttt(); }); $('#reset2').on('click', function () { event.preventDefault(); $("#langchange").show(); $("#step2").slideUp(749); $(".lead-in").slideDown(750); $("#step1").delay(750).slideDown(750); $("#progress_list_step2").removeClass('current').removeClass('done'); $("#progress_list_step2").find('ion-icon').attr('name','').attr('class',''); $("#progress_list_step1").addClass('current').removeClass('done'); $("#progress_list_step1").find('ion-icon').attr('name','create').attr('class','hydrated'); }); function resettttt(){ $(':input') .not(':button, :submit, :reset, :hidden') .val('') .removeAttr('checked') .removeAttr('selected'); $('#pro_type').val('def').attr('selected'); $("html, body").animate({ scrollTop: 0 }, "slow"); return false; } if($(window).width() <= 990){ } if($(window).width() <= 767){ } if($(window).width() <= 999){ } }); $(window).on('resize', function(){ if($(window).width() <= 990){ }else if($(window).width() >= 991){ } if($(window).width() <= 999){ } if($(window).width() <= 767){ }else{ } });