// check stage pb or mobile // if mobile return true function checkStage(){ var check = false; if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { check = true; } return check; } function validatePRCID(code) { var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外 "}; var pass= true; if(!code || code.length==""){ pass = false; return pass; } if(code.length!=15 && code.length!=18){ pass = false; return pass; }else{ //validate length if(code.length==15 && !/^[0-9]*$/g.test(code)){ //length = 15 pass = false; return pass; }else if(code.length==18 && !/^[0-9]*$/g.test(code.substr(0,17))){ //length = 17 pass = false; return pass; } //validate birth var year = code.substr(6,4); var month = code.substr(10,2); var day = code.substr(12,2); if(!isdate(parseInt(year,10),parseInt(month,10),parseInt(day,10))){ pass = false; return pass; } //validate address if(!city[code.substr(0,2)]){ pass = false; return pass; }else{ //check digit if(code.length == 18){ code = code.split(''); //∑(ai×Wi)(mod 11) var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ]; var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ]; var sum = 0; var ai = 0; var wi = 0; for (var i = 0; i < 17; i++) { ai = code[i]; wi = factor[i]; sum += ai * wi; } var last = parity[sum % 11]; if(parity[sum % 11] != code[17]){ pass = false; return pass; } } } } return pass; } function isdate(intYear,intMonth,intDay){ if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) return false; if(intMonth>12||intMonth<1) return false; if ( intDay<1||intDay>31)return false; if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30)) return false; if(intMonth==2){ if(intDay>29) return false; if((((intYear%100==0)&&(intYear%400!=0))||(intYear%4!=0))&&(intDay>28))return false; } return true; } //insert line for facebook caption descritpion function insertLine(str,length,seq,restr){ var value = ""; if(str != null && str != undefined){ value = str.replace(/\n/g,restr); } return value; } //get campaign descripiton function getFbDesc(code,langType){ var desc = ""; var item = campaign_data; if(code !=null && code != undefined){ code = code.toLowerCase(); } if(item.code.toLowerCase() == code){ switch(langType){ case 'cn' : desc = item["zh-hans"].desc;;break; case 'hk' : desc = item["zh-hant"].desc;break; default : desc = item["en"].desc;break; } } return desc; } // instead link function convertLink(value){ var reg = "\\b(((ht|f)tp(s?)\\:\\/\\/|~\\/|\\/)|www.)" + "(\\w+:\\w+@)?(([-\\w]+\\.)+(com|org|net|gov" + "|mil|biz|info|mobi|name|aero|jobs|museum" + "|travel|[a-z]{2}))(:[\\d]{1,5})?" + "(((\\/([-\\w~!$+|.,=]|%[a-f\\d]{2})+)+|\\/)+|\\?|#)?" + "((\\?([-\\w~!$+|.,*:]|%[a-f\\d{2}])+=?" + "([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)" + "(&(?:[-\\w~!$+|.,*:]|%[a-f\\d{2}])+=?" + "([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)*)*" + "(#([-\\w~!$+|.,*:=]|%[a-f\\d]{2})*)?\\b"; var reg2= "/"+reg+"/g"; var temp = value; value.replace(eval(reg2),function(result,index,orignalStr){ temp = temp.replace(result,''+result+''); }); return temp; } function getCampaign(code,langType,refID,htmlFlag){ var url="",title="",message="",onlineapp="",type="banking";//default type is banking var item = campaign_data; if(code !=null && code != undefined){ code = code.toLowerCase(); } if(item.code.toLowerCase() == code){ type = item.type; switch(langType){ case 'cn' : url = item["zh-hans"].url;title=item["zh-hans"].title;message=item["zh-hans"].message;onlineapp=item["zh-hans"].onlineApp;break; case 'hk' : url = item["zh-hant"].url;title=item["zh-hant"].title;message=item["zh-hant"].message;onlineapp=item["zh-hant"].onlineApp;break; default : url = item["en"].url;title=item["en"].title;message=item["en"].message;onlineapp=item["en"].onlineApp;break; } } if(onlineapp != null || onlineapp!=undefined) onlineapp = getOnlineApp(onlineapp,refID); if(htmlFlag == undefined) { htmlFlag = false; } message = convertRefID(message,refID,code,onlineapp,htmlFlag); return {"url":url,"title":title,"message":message,"type" : type}; } function convertRefID(text,RefID,code,onlineapp,htmlFlag){ if(text != null || text !='' || text != undefined){ if(RefID !=null || RefID != undefined){ text = text.replace('$REFID',RefID).replace('$CAMPAIGN_CODE',code); if(htmlFlag){ var temp = convertLink(text); if(temp == "" || temp == null || temp == undefined){ temp = text; } text = temp; text = text.replace('$ONLINEAPP',''+onlineapp+''); }else{ text = text.replace('$ONLINEAPP',onlineapp); } return text; }else return text; } } function getOnlineApp(onlineapp,RefID){ var url = onlineapp.replace('$REFID',RefID); return url; } /* ----common----*/ function swapImage(control, image) { control.src = image; } function winclose() { window.close(); } function clearform(thisform) { var elements = thisform.elements; for (var i=0;i=0; i-=2) { tempval = parseInt(cardNbr.charAt(i)); tempval *= 2; if(tempval > 9) tempval -= 9; sum += tempval; } for(i=cardNbr.length-1; i>=0; i-=2) { sum += parseInt(cardNbr.charAt(i)); } if(sum%10 == 0) return true; return false; } function setFocus(thisform) { var bFound = false; var elements = thisform.elements; for (var i=0;i -1) { var emailid = value.substring(0, value.indexOf('@')); var emaildomain = value.substring(value.indexOf('@')+1, value.length); if (/^\w+([\.-]?\w+)+$/.test(emailid)) // check email id { if (/^\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(emaildomain)) isvalid = true; else isvalid = false; } else isvalid = false; } else isvalid = false; return isvalid; } function isFirstCharAlphaNum( strInput ) { var isAlphaNum = true; strInput = Trim(strInput); if(strInput.length > 1) isAlphaNum = isValidInput(strInput.substring(0,1), "M"); return isAlphaNum; } function isValidInput( strInput, strType ) { var blnResult = false ; var strSCPattern = "[\"']"; var strTFPattern = "[^\\-\\,\\.\\[\\]\\{\\}|A-Za-z0-9 ]"; var strANPattern = "[\"'~`!@#$%^&*()_\\-+=|/><\.\,\:{}\;\\\\?\\[\\] ]"; //Only allowed A-Z,a-z,0-9 var strANPattern_space = "[\"'~`!@#$%^&*()_\\-+=|/><\.\,\:{}\;\\\\?\\[\\]]"; // Only allowed A-Z,a-z,0-9 and space var strANPattern_adm = "[\"'~`!@#$^&()_\\-+=|/><\.\,\:{}\;\\\\?\\[\\] ]"; //A-Z,a-z,0-9, * and % var strVCPattern = "[\`~!@#$%^*\\+=|><\:{}\;\\\\?\\[\\]]"; //Allowed certain special character -- // '-" &(),./_ var strSCPattern_FileUpload = "[\"*?|/><]"; var strANPattern_ID = "[^A-Za-z0-9]"; //This type will not allow any other languages data except for a-z,A-Z and 0-9. var strANPattern_IDspace = "[^A-Za-z0-9 ]"; //This type will not allow any other languages data except for a-z,A-Z,0-9 and space. var strANPattern_engspace = "[^A-Za-z ]"; //This type will not allow any other languages data except for a-z,A-Z and space. var strADRPattern_nonchi = "[^A-Za-z0-9 \.\,-/']"; //Non-chinese address var strNoPattern_space = "[^0-9 ]"; var strNoPattern = "[^0-9]"; switch(strType){ case "M" : regexp = new RegExp(strANPattern,"g"); break; case "MS" : regexp = new RegExp(strANPattern_space,"g"); break; case "MADM" : regexp = new RegExp(strANPattern_adm,"g"); break; case "MVC" : regexp = new RegExp(strVCPattern,"g"); break; case "MSCF" : regexp = new RegExp(strSCPattern_FileUpload,"g"); break; case "MID" : regexp = new RegExp(strANPattern_ID,"g"); break; case "MNCS" : regexp = new RegExp(strANPattern_IDspace,"g"); break; case "MES" : regexp = new RegExp(strANPattern_engspace,"g"); break; case "MNCADR" : regexp = new RegExp(strADRPattern_nonchi,"g"); break; case "MSC" : regexp = new RegExp(strSCPattern,"g"); break; case "MASC" : regexp = new RegExp(strTFPattern,"g"); break; case "MNO" : regexp = new RegExp(strNoPattern_space,"g"); break; case "NNO" : regexp = new RegExp(strNoPattern,"g"); break; // ------------------------------------- // to be remove case "SC" : regexp = new RegExp(strANPattern,"g"); break; case "ASC" : regexp = new RegExp(strANPattern,"g"); break; } blnResult = !(regexp.test(strInput)); return blnResult; } function isNonChinese(str) { var l=str.length; var n=true; for (var i=0;i= 33 && str.charCodeAt (i) <= 126) && str.charAt(i) != ' ') n = false; } return n; } /* *http://www.info.gov.hk/td/pdiballot/checkHKID.html *http://www.phpsky.com/home/tools/hkid/index.php *HKID format = A123456(7), where: * - 'A' must be a letter or space. * - The bracket and the checksum digit inside could be 0-9 or A. * - If check digit = 10, then it will be treated as "A" * - If check digit = 11, then it will be treated as "0" *------------------------------------------------------------------------------------- *Oct 2004 - Additional recources found at http://www.excelhelp.net/cgi-bin/forum/topic.cgi?forum=3&topic=5 *a.The format of HKID (2 digit prefix) (6 digit number) (1 check digit) = 9 digits *b.If the prefixes only contain one alphabet, a blank space will be added in front. * Therefore, total length of HKID should be always 9 digits */ function validateHKID(hkId) { if(hkId.length < 8 || hkId.length > 9) return false; else if(hkId.length == 8) hkId = ' ' + hkId; return checkHKID(hkId); } function checkHKID(hkId) { var reqAddBlankSpace = false; var firstPrex; var secondPrex; hkId = Trim(hkId); newStr = hkId.replace("(" ,""); newStr = newStr.replace(")" ,""); if (hkId.length > 2) { firstPrex = hkId.substring(0,1); secondPrex = hkId.substring(1,2); } if ( !isNaN(secondPrex) ) { reqAddBlankSpace = true; } if(hkId.length < 0 || hkId.length < 7 || !isNaN(firstPrex) ) { return false; } else if ( getHKCheckDigit(reqAddBlankSpace,Trim(newStr)) == false) { return false; } return true ; } /* * user have the option to enter HK ID in format of A123456(7) or A1234567 */ function getHKCheckDigit(reqAddBlankSpace,hkId) { var numericDigit ; var total = 0; var start = hkId.length ; var checkDigit ; var lastDigit = hkId.substring(hkId.length-1,hkId.length) ; var ret; if (reqAddBlankSpace == true) { total += 91 * 9; } for(var i = 0; i < hkId.length-1 ; i++) { numericDigit = hkId.substring(i, i+1); if ( isNaN(numericDigit) ) { numericDigit = numericDigit.toUpperCase(); numericDigit = numericDigit.charCodeAt(0) ;//-64 ; //-64 A=65 } total += numericDigit * start; // alert("strat : " + start + "numericDigit: " + numericDigit +"total -" + total ); start--; } if (total != 0) { ret = parseInt(total) % 11; if (ret < 0) { ret += 11; } checkDigit = 11 - ret; } //HKID is valid,if checkDigit = last digit //If checkDigit = 10, treated it as "A" //If checkDigit = 11, treated it as "0" if ( checkDigit == 11) { checkDigit = 0; } if ( checkDigit == 10) { checkDigit = "A"; } if (checkDigit != lastDigit.toUpperCase() ) { return false; } return true ; } function Trim(string) { var i; var intCount; var tempLength; intCount = 0; for (i = 0; i < string.length; i++) { if ((string.charAt(i)) != " ") break; else intCount = intCount + 1; } string = string.substring(intCount, string.length); intCount = 0; tempLength = string.length; for (i = tempLength-1; i >= 0; i--) { if ((string.charAt(i)) != " ") break; else intCount = intCount + 1; string = string.substring(0, tempLength-intCount); } return string; } function getDateString() { var string = SYS_serverdate; var dateString = ""; var i; for (i = 0; i < string.length; i++) { if ((string.charAt(i)) != "-") dateString += string.charAt(i); } return dateString; } function onOrAfterToday(calyyyy, calmm, caldd) { var diff = dateDiff(calyyyy, calmm, caldd); if(diff == "-") { return false; } else { if(diff > 0) return false; else return true; } } function dateDiff(calyyyy, calmm, caldd) { var diff = 0; if( caldd != null && calmm != null && calyyyy != null ) { if(calmm.length<2) { calmm = '0' + calmm; } if(caldd.length<2) { caldd = '0' + caldd; } diff = getDateString() - parseInt(calyyyy + calmm + caldd, '10'); return diff; } else return "-"; } function addWinOnLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function() { if (oldonload) { oldonload(); } func(); } } } function openPopupWin(url,winname,width,height,top,left) { if(!width) width=617; if(!height) height=500; if(!top) top=0; if(!left) left=window.screen.availWidth-width-10; var win = window.open(url,winname,"resizable=1,scrollbars=1,width="+width+",height="+height+",top="+top+",left="+left); win.focus(); } // validate date var minYear=1901; function daysInFebruary (year) { return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 ); } function isDate(strYear, strMonth, strDay) { var daysInMonth = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; month=parseInt(strMonth, '10'); day=parseInt(strDay, '10'); year=parseInt(strYear, '10'); if (strMonth.length<1 || month<1 || month>12) return false; if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]) return false; if (strYear.length != 4 || year==0 || year