// added by someone outside HW function openiBank(lang) { window.open("https://ibanking.cncbinternational.com") } HW = {}; HW.HeaderLoginLinks = { config:{ idLogin:"jsHeaderLogin", classLoginPersonal:"jsHeaderLoginPersonal", classLoginCITICfirst:"jsHeaderLoginCITICfirst", classLoginCorporates:"jsHeaderLoginCorporates", classLoginItem:"jsHeaderLoginItem", classLoginBusiness:"jsHeaderLoginBusiness" }, CKWB_win:null, // this openIBank function is carried from existing JavaScript code openIBank:function(url){ var BrowserName = navigator.appName; var BrowserVersion = parseInt(navigator.appVersion); var BrowserHeight2 = screen.height-150; var BrowserWidth2 = screen.width-30; var CKWB_win = this.CKWB_win; // by CBI ITD Start if (url=="https://ibanking.cncbinternational.com/CKWPortal/appmanager/Portal/CKWPerson?displayLang=en_US") { url = "https://ibanking.cncbinternational.com/CKWPortal/resources/index.jsp?isPPB=0&displayLang=en_US"; } else if (url=="https://ibanking.cncbinternational.com/CKWPortal/appmanager/Portal/CKWPerson?isPPB=1&displayLang=en_US") { url = "https://ibanking.cncbinternational.com/CKWPortal/resources/index.jsp?isPPB=1&displayLang=en_US"; } else if (url=="https://ibanking.cncbinternational.com/CKWPortal/appmanager/Portal/CKWPerson?displayLang=zh_HK") { url = "https://ibanking.cncbinternational.com/CKWPortal/resources/index.jsp?isPPB=0&displayLang=zh_HK"; } else if (url=="https://ibanking.cncbinternational.com/CKWPortal/appmanager/Portal/CKWPerson?isPPB=1&displayLang=zh_HK") { url = "https://ibanking.cncbinternational.com/CKWPortal/resources/index.jsp?isPPB=1&displayLang=zh_HK"; } else if (url=="https://ibanking.cncbinternational.com/CKWPortal/appmanager/Portal/CKWPerson?displayLang=zh_CN") { url = "https://ibanking.cncbinternational.com/CKWPortal/resources/index.jsp?isPPB=0&displayLang=zh_CN"; } else if (url=="https://ibanking.cncbinternational.com/CKWPortal/appmanager/Portal/CKWPerson?isPPB=1&displayLang=zh_CN") { url = "https://ibanking.cncbinternational.com/CKWPortal/resources/index.jsp?isPPB=1&displayLang=zh_CN"; } // by CBI ITD End if(!CKWB_win || CKWB_win.closed) { CKWB_win = window.open(url,"CKWBPerson1","toolbar=0,width="+BrowserWidth2+",height="+BrowserHeight2+",status=1,scrollbars=1,resizable=1,menubar=0,top=0,left=0"); }else{ CKWB_win.focus(); } this.CKWB_win = CKWB_win; }, init:function(){ var obj = this; var config = obj.config; var login = $("#"+config.idLogin); // check if header login exists if(!login.length) return; // Corporate login var loginCorporates = login.find("."+config.classLoginCorporates); if(loginCorporates.length){ loginCorporates.click(function(e){ e.preventDefault(); window.open($(this).attr("href"),"popup","top=0,left=0,toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=800,height=600",true); }); } // Personal login var loginPersonal = login.find("."+config.classLoginPersonal); if(loginPersonal.length){ loginPersonal.click(function(e){ e.preventDefault(); window.open($(this).attr("href"),"popup","top=0,left=0,toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes",true); }); } // CITICfirst login var loginCITICfirst = login.find("."+config.classLoginCITICfirst); if(loginCITICfirst.length){ loginCITICfirst.click(function(e){ e.preventDefault(); window.open($(this).attr("href"),"popup","top=0,left=0,toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes",true); }); } // Header login items var loginItems = login.find("."+config.classLoginItem); loginItems.click(function(e){ e.preventDefault(); window.open($(this).attr("href"),"popup","top=0,left=0,toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes",true); }); // Business login items var loginBusiness = login.find("."+config.classLoginBusiness); loginBusiness.click(function(e){ e.preventDefault(); window.open($(this).attr("href"),"popup","top=0,left=0,toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes",true); }); } } HW.HeaderLogin = { config:{ idLogin:"jsHeaderLogin", classLogin:"jsHeaderLogin", classButton:"jsHeaderLoginButton", classSelected:"jsHeaderLoginSelected" }, hideMenu:function(params){ var config = this.config; var login = params.login || []; var menu = params.menu || []; // no progress if login or menu does not exist if(!login.length || !menu.length) return; login.removeClass(config.classSelected); menu.hide(); }, showMenu:function(params){ var config = this.config; var login = params.login || []; var menu = params.menu || []; // no progress if login or menu does not exist if(!login.length || !menu.length) return; login.addClass(config.classSelected); menu.show(); }, init:function(){ var self = this; var config = self.config; var login = $("#"+config.idLogin); // check if header login exists if(!login.length) return; login.addClass(config.classLogin); var button = login.find("."+config.classButton); var menu = login.find("ul"); // check if the login submenu exists if(!menu.length || !button.length) return; // hide the menu initially menu.hide(); button.click(function(e){ e.preventDefault(); // stop propagation so the body click event will not be triggered e.stopPropagation(); if(login.hasClass(config.classSelected)){ self.hideMenu({login:login,menu:menu}); }else{ self.showMenu({login:login,menu:menu}); } }); var $body = $("body"); login.focusin(function(e){ // close menu when the user no longer focus on the header login $body.one("click",function(e){ self.hideMenu({login:login,menu:menu}); }); var closeMenu = function(e){ e.stopPropagation(); var target = $(e.target).closest("#"+config.idLogin); if(target.length == 0){ killEvent(); self.hideMenu({login:login,menu:menu}); } }; var killEvent = function(e){ $body.die("focusin",closeMenu); } $body.live("focusin",closeMenu); }); } }; HW.MainNavigation = { config:{ idMainNav:"jsMainNav", idSubNav:"jsSubNav", classMenu:"jsMenu", classMenuContainer:"jsMenuContainer", classHighlight:"jsHighlight", classCurrent:"current" }, removeHighlight:function(params){ var collection = params.collection || []; var config = this.config; collection.each(function(){ $(this).removeClass(config.classHighlight); }); }, init:function(){ var self = this; var config = self.config; var mainNav = $("#"+config.idMainNav); var subNav = $("#"+config.idSubNav); // check if any of main navigation or sub navigation does not exist if(!mainNav.length || !subNav.length) return; var mainMenus = mainNav.find("."+config.classMenu); var subMenus = subNav.find("."+config.classMenu); var menuContainer = mainNav.find("."+config.classMenuContainer); // does not progress further if there is no sub navigation or no menu container if(!subMenus.length || !menuContainer.length) return; // check if the browser is IE7 or under var isTargetIE = $.browser.msie && ($.browser.version < 8.0); // add decor to the last sub menu subMenus.filter(":last").find(".content").append($('')); // move non-current sub menus as corresponding sub menus of the main navigation subMenus.each(function(){ var subMenuItem = $(this); if(!subMenuItem.hasClass(config.classCurrent)){ // find the identifier by pattern matching var itemIdentifier = subMenuItem.attr("className").match(/menu[1-9]/); // get the target container and move the subment to the target var target = menuContainer.filter("."+ itemIdentifier); var contentToAdd; if(target.length){ contentToAdd = $(''); if(isTargetIE){ contentToAdd = $(''); } // set the width to avoid IE display inproperly contentToAdd.find("ul").css({ width:subMenuItem.innerWidth() }); if(isTargetIE){ contentToAdd.find("iframe").css({width:subMenuItem.innerWidth()+20, height:subMenuItem.innerHeight()+24}); } target.append(contentToAdd); subMenuItem.remove(); } } }); // setup highlight on main nav mainMenus.each(function(){ var mainMenuItem = $(this); mainMenuItem.bind("mouseenter", function(e){ mainMenuItem.addClass(config.classHighlight); if(isTargetIE){ mainMenuItem.find("iframe").css({height:mainMenuItem.find(".subMenu").height()-18}); } }); mainMenuItem.bind("mouseleave", function(e){ mainMenuItem.removeClass(config.classHighlight); }); mainMenuItem.bind("focusin", function(e){ if(!mainMenuItem.hasClass(config.classHighlight)){ self.removeHighlight({collection:mainMenus}); mainMenuItem.addClass(config.classHighlight); if(isTargetIE){ mainMenuItem.find("iframe").css({height:mainMenuItem.find(".subMenu").height()-18}); } } }); mainMenuItem.bind("focusout", function(e){ // prevent main menu receiving focusout e.stopPropagation(); }); }); // clear highlight when the user is no longer focus on the main nav mainMenus.focusout(function(e){ self.removeHighlight({collection:mainMenus}); }); } }; HW.SideNavigation = { config:{ idNav:"jsSideNav", classNavItem:"sideNavItem", classNavMenu:"sideNavMenu", classNavMenuDecor:"sideNavMenuc", classJSNavItemContainer:"jsSideNavItemContainer", classJSNavItem:"jsSideNavItem", classJSNavItemHighlight:"jsSideNavItemHighlight" }, clearHighlight:function(params){ var collection = params.collection || []; var config = this.config; collection.each(function(){ $(this).removeClass(config.classJSNavItemHighlight); }); }, init:function(){ var self = this; var config = self.config; var sideNav = $("#"+config.idNav); // check if side navigation exists if(!sideNav.length) return; var navItemContainers = sideNav.find("."+config.classJSNavItemContainer); // no progress if no nav item containers if(!navItemContainers.length) return; navItemContainers.each(function(){ var navItemContainer = $(this); var navItems = navItemContainer.find("."+config.classNavItem); // no further progress if nav items did not exist if(!navItems.length) return; navItems.each(function(){ var navItem = $(this); // turn the nav item as the corresponding JS version navItem.addClass(config.classJSNavItem); var navItemDecor = navItem.find("."+config.classNavMenuDecor); navItem.hover( function(){ navItem.addClass(config.classJSNavItemHighlight); if(navItemDecor.length){ navItemDecor.css({height: navItem.height()-4 }); } }, function(){ navItem.removeClass(config.classJSNavItemHighlight); } ); navItem.bind("focusin",function(e){ if(!navItem.hasClass(config.classJSNavItemHighlight)){ self.clearHighlight({collection:navItems}); if(navItemDecor.length){ navItemDecor.css({height: navItem.height()-4 }); } navItem.addClass(config.classJSNavItemHighlight); } }); }); // clear all highlights if the user is no longer focus on this sub item list navItemContainer.bind("focusout",function(e){ self.clearHighlight({collection:navItems}); }); }); } }; HW.FooterLinks = { config:{ idFooter:"jsFooter", classOverlay:"jsOverlayNormal" }, init:function(){ var config = this.config; var footer = $("#"+config.idFooter); if(!footer.length) return; var footerLinks = footer.find("."+config.classOverlay); if(!footerLinks.length) return; footerLinks.each(function(){ var footerLink = $(this); // using HW JS overlay plugin footerLink.click( function(e){ e.preventDefault(); $.portal(footerLink.attr("href")); } ); }); } } HW.RotatingBanner = { config:{ valueMaxPageItem:5, htmlBannerControlNoPages:'
', // the order of next and prev button in reverse order for the display sake htmlBannerControlWithPages:'
', idBannerNoPages:"jsBannerNoPages", idBannerWithPages:"jsBannerWithPages", classCurrent:"jsCurrent", classSelected:"sel", classBanner:"jsBanner", classScrollItem:"scrollEl", classColumn:"column04" }, timer:0, current:0, totalItem:0, controls:[], btnPages:[], scrollItems:[], inTransition:false, resetDefault:function(){ var obj = this; obj.timer = 0; obj.current = 0; obj.totalItem = 0; obj.controls = []; obj.btnPages = []; obj.scrollItems = []; obj.inTransition = false; }, getInformation:function(){ return { config:this.config, current:this.current, totalItem:this.totalItem, btnPages:this.btnPages, scrollItems:this.scrollItems }; }, setColumnHeight:function(){ var obj = this; var columns = obj.scrollItems.find("."+obj.config.classColumn); if( columns.length == 0 ){ columns = obj.scrollItems; } var maxHeight = 0; columns.each(function(index){ var columnHeight = $(this).height(); if(columnHeight > maxHeight){ maxHeight = columnHeight; } }); columns.height(maxHeight); return maxHeight; }, move:function(direction){ var obj = this; direction = (typeof direction == "undefined")? "forward" : direction; var withPage = (obj.btnPages.length > 0)? true : false; if(withPage){ obj.btnPages.eq(obj.current).removeClass(obj.config.classSelected); } obj.scrollItems.eq(obj.current).fadeOut(100,function(){ $(this).removeClass(obj.config.classCurrent); }); if(direction == "forward"){ obj.current = (obj.current == obj.totalItem -1)? 0 : obj.current+1; }else{ obj.current = (obj.current == 0)? obj.totalItem-1 : obj.current-1; } if(withPage){ obj.btnPages.eq(obj.current).addClass(obj.config.classSelected); } obj.scrollItems.eq(obj.current).fadeIn(800,function(){ $(this).addClass(obj.config.classCurrent); obj.isInTransition = false; }); }, loop:function(){ var obj = HW.RotatingBanner.getInformation(); var withPage = (obj.btnPages.length > 0)? true : false; if(withPage){ obj.btnPages.eq(obj.current).removeClass(obj.config.classSelected); } obj.scrollItems.eq(obj.current).fadeOut(100,function(){ $(this).removeClass(obj.config.classCurrent); }); obj.current = (obj.current == obj.totalItem -1)? 0 : obj.current+1; if(withPage){ obj.btnPages.eq(obj.current).addClass(obj.config.classSelected); } obj.scrollItems.eq(obj.current).fadeIn(800,function(){ $(this).addClass(obj.config.classCurrent); }); // update the actual current value HW.RotatingBanner.current = obj.current; }, init:function(){ var obj = this; var config = obj.config; var bannerWithPages; var banner = $("#"+config.idBannerWithPages); // check for banner type if(banner.length){ bannerWithPages = true; }else{ banner = $("#"+config.idBannerNoPages); if(banner.length){ bannerWithPages = false; }else{ // no banner is found obj.resetDefault(); return; } } // update the object components obj.scrollItems = banner.find("."+config.classScrollItem); obj.totalItem = obj.scrollItems.length; // no further progess if there is no scroll item if(!obj.totalItem) return; // update the object components if(bannerWithPages){ var $control = $(config.htmlBannerControlWithPages); var numPage = (obj.totalItem > config.valueMaxPageItem)? config.valueMaxPageItem : obj.totalItem ; var pageItemToAppend = ''; for(var i=0; i < numPage; i++){ pageItemToAppend = pageItemToAppend + '' + (i+1) + ''; } $control.find(".pageIndex").wrapInner(pageItemToAppend); obj.controls = $control; }else{ obj.controls = $(config.htmlBannerControlNoPages); } obj.btnPages = obj.controls.find(".page") || []; obj.curent = 0; obj.isInTransition = false; var btnPrevious = obj.controls.find(".prev"); var btnNext = obj.controls.find(".next"); var withPage = (obj.btnPages.length>0)? true : false; // find and set the max height among columns banner.height(obj.setColumnHeight()); // append the control dynamically according to the banner type banner.append(obj.controls); // handle each page button click if(withPage){ obj.btnPages.each(function(index){ $(this).click(function(e){ if(obj.timer>0){ clearTimeout(obj.timer); } if(!obj.isInTransition){ obj.isInTransition = true; obj.btnPages.eq(obj.current).removeClass(obj.config.classSelected); obj.scrollItems.eq(obj.current).fadeOut(100,function(){ $(this).removeClass(obj.config.classCurrent); }); obj.current = index; obj.btnPages.eq(obj.current).addClass(obj.config.classSelected); obj.scrollItems.eq(obj.current).fadeIn(800,function(){ $(this).addClass(config.classCurrent); obj.isInTransition = false; }); } }); }); } // handle button next click btnNext.click(function(e){ if(obj.timer>0){ clearTimeout(obj.timer); } if(!obj.isInTransition){ obj.isInTransition = true; obj.move("forward"); } }); // handle button previous click btnPrevious.click(function(e){ if(obj.timer>0){ clearTimeout(obj.timer); } if(!obj.isInTransition){ obj.isInTransition = true; obj.move("backward"); } }); // add the JS class to HTML to avoid flickering in IE6 $("html").addClass("js"); banner.addClass(config.classBanner); if(withPage){ obj.btnPages.eq(obj.current).addClass(config.classSelected); } // show the first scroll item initially obj.scrollItems.eq(obj.current).addClass(config.classCurrent); // start looping HW.RotatingBanner.timer = setInterval(HW.RotatingBanner.loop,10000); } } HW.Accordian = { config:{ idAccordian:"JSTaccordion" }, init:function(){ var config = this.config; var accordian = $("."+config.idAccordian); if(!accordian.length) return; $('div.JSTaccordion').accordion({ node:'div.JSTaccordionNode', heading:'div.JSTaccordionHeading', content:'div.JSTaccordionContent', open:'selected'/*, update:[ {selector:'a.update',text:['close','open']} ]*/ }).bind('accordion.open',function(e,node){ try{ console.log(node); }catch(error){}} ); } } HW.Tab = { config:{ wrapperClass:"jsTab", triggerClass:"jsTabTrigger", targetClass:"jsTabTarget" }, init:function(){ var config = this.config; var wrapperDiv = $("."+config.wrapperClass); var targets = $("."+config.targetClass); var triggers = $("."+config.triggerClass); if(!wrapperDiv.length) { return; } var defaultIndex = 0; /* assumption: the location bar will have the following pattern: someName.html(#jsTabX)(@qX) where X are digits */ var tabHref = location.href; var posHash = tabHref.indexOf("#"); var posHint = tabHref.lastIndexOf("@"); var targetString = null; /* If the default tab is set, use the value as the target string */ var defaultTab = $("#jsDefaultTab"); if(defaultTab.length) { targetString = defaultTab.val(); } /* if both hash and hint exist */ if(posHint > -1 && posHash > -1){ targetString = tabHref.substring((posHash + 1),posHint); } else if(posHash > -1) { targetString = tabHref.substring(posHash + 1); } /* only find the default index when target string exists */ if(targetString){ targets.each(function(index){ if (targetString === $(this).attr("id")){ defaultIndex = index; } }); } targets.each(function(index){ if(index != defaultIndex){ $(this).hide(); } else { $(this).show(); } }); triggers.eq(defaultIndex).closest("li").addClass("selected"); triggers.each(function(){ $(this).click(function(e){ e.preventDefault(); $(this).closest("li").siblings(".selected").removeClass("selected"); targets.each(function(){ if ($(this).css("display") != "none") { $(this).hide(); } }); $(this).closest("li").addClass("selected"); $("#"+$(this).attr("href").substring(1)).show(); }); }); } }; HW.HomeHeroArea = { config:{ wrapperClass:"jsHomeHero", triggerClass:"jsHomeHeroTrigger", targetClass:"jsHomeHeroTarget", classTargetController:"jsTargetController", classTargetItemHidden:"jsTargetItemHidden" }, hideAll:function(collection){ var config = this.config; collection.each(function(index){ if(!$(this).hasClass(config.classTargetItemHidden)){ $(this).addClass(config.classTargetItemHidden); } }); }, init:function(){ var myself = this; var config = this.config; var wrapperDiv = $("#"+config.wrapperClass); var targets = $("."+config.targetClass); var triggers = $("."+config.triggerClass); if(!wrapperDiv.length) return; var targetController = wrapperDiv.find("."+config.classTargetController); if(!targetController.length) return; var maxHeight = 0; var maxTargetHeight = 0; targets.each(function(index){ var obj = $(this); var objHeight = obj.height(); if(objHeight > maxTargetHeight ) maxTargetHeight = objHeight; if(index > 0) obj.addClass(config.classTargetItemHidden); }); $("."+config.targetWrapper).height(maxTargetHeight); triggers.each(function(index){ var obj = $(this); var objHeight = obj.height(); if (objHeight > maxHeight) maxHeight = objHeight; obj.bind("mouseenter",function(e){ myself.hideAll(targets); targets.eq(index+1).removeClass(config.classTargetItemHidden); }); }); triggers.each(function(index){ $(this).height(maxHeight); }); targets.find("a").bind("mouseleave",function(e){ e.preventDefault(); e.stopPropagation(); }); targetController.bind("mouseleave",function(e){ myself.hideAll(targets); targets.eq(0).removeClass(config.classTargetItemHidden); }); } } HW.ContactUsForm = { config:{ idContactUsForm:"jsContactUsForm" }, errorSetup:function(params){ var element = params.element || null; if(element){ var offset = params.offset; var left = params.left || 85; var top = params.top || 24; element.css({ display:"none", position:"absolute", left:offset.left + left + "px", top:offset.top - top + "px" }); $("body").append(element); } }, init:function(){ var config = this.config; var form = $("#"+config.idContactUsForm); // no further progress if the form does not exist if(!form.length) return; // variables var firstName = $('#firstname'); var lastName = $('#lastname'); var daytimephone = $('#daytimephone'); // add by vnb var email = $('#email'); var captcha = $('#captcha'); // add by vnb end var message = $('#message'); var products = $("#productsAndServices"); var errorName = $("#errorName"); var errorContactInfo = $("#errorContactInfo"); var errorProductsAndServices = $("#errorProductsAndServices"); var errorMessage = $("#errorMessage"); // add by vnb var errorEmail = $('#errorEmail'); var errorCaptcha = $('#errorCaptcha'); // add by vnb end // error hiding handlers var hideAllErrors = function(){ errorName.css({display:"none"}); errorContactInfo.css({display:"none"}); errorProductsAndServices.css({display:"none"}); errorMessage.css({display:"none"}); // add by vnb errorEmail.css({display:"none"}); errorCaptcha.css({display:"none"}); // add by vnb end } var hideNameError = function(){ if ( (firstName.val() != "") && (lastName.val() != "") ) { errorName.css({display: 'none'}); } } var hideContactInfoError = function(){ if ( (daytimephone.val() != "") && (email.val() != "") ) { errorContactInfo.css({display: 'none'}); } } var hideProductsError = function(){ if ( products.attr("selectedIndex") > 0 ) { errorProductsAndServices.css({display: 'none'}); } } var hideMessageError = function(){ if (message.val() != "") { errorMessage.css({display: 'none'}); } } // add by vnb var hideEmailError = function(){ if (email.val() != "") { errorEmail.css({display: 'none'}); } } var hideCaptchaError = function(){ if (captcha.val() != "") { errorCaptcha.css({display: 'none'}); } } // add by vnb end // error message setup if(firstName){ this.errorSetup({ element:errorName, offset:firstName.offset() }); } if(daytimephone){ this.errorSetup({ element:errorContactInfo, offset:daytimephone.offset() }); } if(products){ this.errorSetup({ element:errorProductsAndServices, offset:products.offset(), left:135 }); } if(message){ this.errorSetup({ element:errorMessage, offset:message.offset() }); } // add by vnb if(email){ this.errorSetup({ element:errorEmail, offset:email.offset() }); } if(captcha){ this.errorSetup({ element:errorCaptcha, offset:captcha.offset() }); } // add by vnb end // submit event form.submit(function(e){ e.preventDefault(); hideAllErrors(); var pass = true; // check names if( (firstName.val() == "") || (lastName.val() == "") ){ pass = false; errorName.show(); firstName.keyup( hideNameError ); lastName.keyup ( hideNameError ); } // check contact info if ( (daytimephone.val() == "") || (email.val() == "") ) { pass = false; errorContactInfo.show(); daytimephone.keyup( hideContactInfoError ); email.keyup ( hideContactInfoError ); } // check products // show error only when the default option is selected, that is selectedIndex = 0 if(products.attr("selectedIndex") < 1){ pass = false; errorProductsAndServices.show(); products.change( hideProductsError ); } // check message if(message.val() == "") { pass = false; errorMessage.show(); message.keyup( hideMessageError ); } // and check Email by vnb if(email.val() == "") { pass = false; errorEmail.show(); message.keyup( hideEmailError ); }else{ var value = email.val(); if(value.indexOf('@') > -1){ var emailid = value.substring(0, value.indexOf('@')); var emaildomain = value.substring(value.indexOf('@')+1, value.length); if (/^\w+([\.-]?\w+)+$/.test(emailid)){ if (!(/^\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(emaildomain))){ pass = false; errorEmail.show(); message.keyup( hideEmailError ); } }else{ pass = false; errorEmail.show(); message.keyup( hideEmailError ); } }else{ pass = false; errorEmail.show(); message.keyup( hideEmailError ); } } if(captcha.val() == "") { pass = false; errorCaptcha.show(); message.keyup( hideCaptchaError ); } // and check Email by vnb end // send the form when all fields pass validation if(pass){ this.submit(); } }); // form reset form.bind('reset',function(e){ hideAllErrors(); }); } } HW.OverlayGallery = { config:{ htmlOverlayGalleryControl:'
«»
', htmlOverlayGalleryTracker:'
', idOverlayGallery:"jsOverlayGallery", idOverlayGalleryTracker:"jsOverlayGalleryTracker", idOverlayGalleryPrevious:"jsOverlayGalleryPrevious", idOverlayGalleryNext:"jsOverlayGalleryNext", classOverlayGallery:"jsOverlayGallery", classOverlayGalleryItemContainer:"jsOverlayGalleryItemContainer", classOverlayGalleryItem:"jsOverlayGalleryItem", classOverlayGalleryItemCurrent:"jsOverlayGalleryItemCurrent" }, init:function(){ var obj = this; var config = obj.config; var gallery = $("#"+config.idOverlayGallery); if(!gallery.length) return; var items = gallery.find("."+config.classOverlayGalleryItem); var numItem = items.length; if(!numItem) return; gallery.addClass(config.classOverlayGallery); gallery.data("current",0); items.eq(0).addClass(config.classOverlayGalleryItemCurrent); gallery.append(config.htmlOverlayGalleryControl); if(!(gallery.find("#"+config.idOverlayGalleryTracker).length)){ gallery.find("."+config.classOverlayGalleryItemContainer).before(config.htmlOverlayGalleryTracker); } var previous = gallery.find("#"+config.idOverlayGalleryPrevious); var next = gallery.find("#"+config.idOverlayGalleryNext); var tracker = gallery.find("#"+config.idOverlayGalleryTracker); tracker.html((gallery.data("current")+1)+"/"+numItem); previous.click(function(e){ e.preventDefault(); var current = gallery.data("current"); if(current==0){ items.eq(0).removeClass(config.classOverlayGalleryItemCurrent); items.eq(numItem-1).addClass(config.classOverlayGalleryItemCurrent); gallery.data("current",numItem-1); }else{ items.eq(current).removeClass(config.classOverlayGalleryItemCurrent); items.eq(current-1).addClass(config.classOverlayGalleryItemCurrent); gallery.data("current",current-1); } tracker.html((gallery.data("current")+1)+"/"+numItem); }); next.click(function(e){ e.preventDefault(); var current = gallery.data("current"); if(current==numItem-1){ items.eq(numItem-1).removeClass(config.classOverlayGalleryItemCurrent); items.eq(0).addClass(config.classOverlayGalleryItemCurrent); gallery.data("current",0); }else{ items.eq(current).removeClass(config.classOverlayGalleryItemCurrent); items.eq(current+1).addClass(config.classOverlayGalleryItemCurrent); gallery.data("current",current+1); } tracker.html((gallery.data("current")+1)+"/"+numItem); }); } } HW.OverlayGalleryTrigger = { config:{ idTrigger:"jsOverlayGalleryTrigger", pathImage:"" }, init:function(){ var config = this.config; var trigger = $("#"+config.idTrigger); if(!trigger.length) return; // get the relative path for the images of overlay gallery var imageHref = trigger.attr("href"); HW.OverlayGalleryTrigger.pathImage = imageHref.substring(0,imageHref.lastIndexOf("/")+1); trigger.click(function(e){ e.preventDefault(); $.ajaxportal(trigger.attr("href"), function(){ HW.OverlayGallery.init(); var items = $("."+HW.OverlayGallery.config.classOverlayGalleryItem); items.each(function(){ var img = $(this).find("img"); var src = img.attr("src"); // build the image path according to which page the overlay gallery is called var target_src = HW.OverlayGalleryTrigger.pathImage + src.substring(src.indexOf("_images/")); img.attr("src",target_src).bind("load",function(){ var img_height = $(this).height(); var img_width = $(this).width(); // update the maximum height of the container as the image is loaded var img_gallery = $(this).parents("#jsOverlayGallery"); if(img_height > img_gallery.height()){ img_gallery.height(img_height); } if(img_width > img_gallery.width()){ img_gallery.width(img_width); } }); // update the overlay wrapper var overlayWrapper = $(".overlayWrapper"); var overlayGallery = $("#jsOverlayGallery"); var target_width = overlayGallery.outerWidth() + 64; overlayWrapper.width(target_width); // center the overlay wrapper var winw = $(window).width(); var w = overlayWrapper.width(); overlayWrapper.css({left:Math.max((winw-w)/2,0) + 'px'}); }); }, { contentSelector:'#jsOverlayGallery', cache:true }); }); } } HW.AlignMoreInfo = { init:function(){ $("div.row:not(:has(div.row)):has(div.ts01)").each( function(){ var maxOffsetTop = 0; $(this).find("div.ts01").each( function(){ if ($(this).position().top > maxOffsetTop) maxOffsetTop = $(this).position().top;}); $(this).find("div.ts01").each( function(){ if ($(this).position().top < maxOffsetTop){ //$(this).css("padding-top", parseInt($(this).css("padding-top").replace("px", "")) + maxOffsetTop - $(this).position().top); } }); }); } } HW.AlignItems = { init:function(){ var containers = $(".jsAlignContainer"); if(containers.length > 0){ containers.each(function(){ var maxOffsetTop = 0, items = $(this).find(".jsAlignItem"); // no alignment is needed if only 1 item in the container if(items.length > 1){ items.each(function(){ var top = $(this).position().top; if(top > maxOffsetTop){ maxOffsetTop = top; } }); items.each(function(){ var top = $(this).position().top, adjustment; if(top < maxOffsetTop){ adjustment = parseInt($(this).css("padding-top").replace("px", "")) + (maxOffsetTop - top); $(this).css("padding-top", adjustment); } }); } }); } } }; /* Popus for Credit Card application form, carried from exisiting script */ HW.CreditCardPopup = { config:{ classPopupTrigger:".jsCardPopupTrigger" }, init:function(){ var config = this.config, triggers = $(config.classPopupTrigger), size = triggers.length, pWidth = (screen.width > 1024) ? 1024 : screen.width - 10, pHeight = (screen.height > 768) ? 768 : screen.height - 45; if(size > 0){ triggers.each(function(){ $(this).click(function(e){ e.preventDefault(); window.open($(this).attr("href"),"CBICardPopup","toolbar=0,width=" + pWidth + ", height=" + pHeight + ",status=1,scrollbars=1,resizable=1,menubar=0,top=0,left=0"); }); }); } } }; HW.ContentOverlay = { config:{ classTrigger:".jsContentOverlayTrigger" }, init:function(){ var config = this.config; var triggers = $(config.classTrigger); if(!triggers.length) { return }; triggers.each(function(){ var trigger = $(this); // using HW JS overlay plugin trigger.click( function(e){ e.preventDefault(); $.ajaxportal(trigger.attr("href")); // 1604482560 $(".skipToLinks a, .citicPageFramework01 input, .citicPageFramework01 a, .citicPageFramework01 select, .citicPageFramework01 textarea, .citicPageFramework01 button").addClass("tabindexNum").attr("tabindex", -1); $(".buttonHeroStyle1").addClass("tabindexNum").attr("tabindex", -1); $(".overlay, .overlayWrapper01 a").click(function () { $(".tabindexNum").removeClass("tabindexNum").removeAttr("tabindex"); e.target.focus(); }) // 1604482560 } ); }); } } $(document).ready(function(){ // scripts for all pages HW.AlignMoreInfo.init(); HW.HeaderLogin.init(); HW.HeaderLoginLinks.init(); HW.MainNavigation.init(); HW.SideNavigation.init(); HW.FooterLinks.init(); HW.RotatingBanner.init(); HW.Accordian.init(); HW.Tab.init(); HW.HomeHeroArea.init(); HW.ContactUsForm.init(); // scripts for specific pages HW.OverlayGallery.init(); HW.OverlayGalleryTrigger.init(); HW.CreditCardPopup.init(); HW.ContentOverlay.init(); HW.AlignItems.init(); if ( jQuery("#featuredBanner1").length ) { jQuery("#featuredBanner1").tabs({fx:{opacity: "toggle"}}).tabs("rotate", 6000, true); } // For IE 8 $('.citicPageSubNav .menu8:not(.current)').hide(); // For SMEs slick $('.sme-landing-video .slick-dots a').attr('href','javascript:;').css('text-decoration','none'); });