// 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