It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

Source: https://globalcatalog.com/builtinpro.hk/zh

  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" lang="zh-CN">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <link rel="dns-prefetch" href="//maps.googleapis.com">
  7. <link rel="dns-prefetch" href="//maps.gstatic.com">
  8. <link rel="dns-prefetch" href="//mts0.googleapis.com">
  9. <link rel="dns-prefetch" href="//mts1.googleapis.com">
  10. <meta name="language" content="zh-CN" />
  11. <meta name="alexaVerifyID" content="h4ax1R6syCDULPL4hs1ylznERjo" />
  12. <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
  13. <link rel="stylesheet" type="text/css" href="/themes/proxima/css/flags32.css" />
  14. <link rel="stylesheet" type="text/css" href="/1707202933/themes/proxima/css/styles.min.css" />
  15. <script type="text/javascript" src="/assets/26237b19/jquery.min.js"></script>
  16. <script type="text/javascript" src="/1707202933/themes/proxima/js/bootstrap.min.js"></script>
  17. <script type="text/javascript" src="/1707202933/themes/proxima/js/gc.min.js"></script>
  18. <title>BUILT-IN PRO  : </title>
  19. <meta name="description" content="BUILT-IN PRO 為全港最大的廚房電器零售商之一,於業內已有逾 30年的歷史。BUILT-IN PRO 分店散佈於全港各區,並設有便捷的 BUILT-IN PRO 送貨服務,總部辦公室位於觀塘的海濱地段。Built-in Pro 致力提供優質的產品和服務,並獨家提供 BUILT-IN PRO 優惠,務求能夠超出... " />
  20. <meta property="og:url" content="https://globalcatalog.com/builtinpro.hk/zh" />
  21. <meta property="og:type" content="website" />
  22. <meta property="og:title" content="BUILT-IN PRO  : " />
  23. <meta property="og:description" content="BUILT-IN PRO 為全港最大的廚房電器零售商之一,於業內已有逾 30年的歷史。BUILT-IN PRO 分店散佈於全港各區,並設有便捷的 BUILT-IN PRO 送貨服務,總部辦公室位於觀塘的海濱地段。Built-in Pro 致力提供優質的產品和服務,並獨家提供 BUILT-IN PRO 優惠,務求能夠超出客戶的期望。如果你正在尋找具挑戰的工作和有願景的發展,BUILT-IN PRO 招聘將是你的理想選擇,我們為合適的候選人提供的完善的福利,有吸引力的薪酬待遇及長遠的發展前景。... " />
  24. <meta property="og:image" content="https://globalcatalog.com/asset/showImage/1229882" />
  25. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/af" hreflang="af" />
  26. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/sq" hreflang="sq" />
  27. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/ar" hreflang="ar" />
  28. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/az" hreflang="az" />
  29. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/hy" hreflang="hy" />
  30. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/bn" hreflang="bn" />
  31. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/be" hreflang="be" />
  32. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/bg" hreflang="bg" />
  33. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/ca" hreflang="ca" />
  34. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/zh" hreflang="zh-CN" />
  35. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/tw" hreflang="zh-TW" />
  36. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/hr" hreflang="hr" />
  37. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/cs" hreflang="cs" />
  38. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/da" hreflang="da" />
  39. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/nl" hreflang="nl" />
  40. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/en" hreflang="en" />
  41. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/en" hreflang="x-default" />
  42. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/et" hreflang="et" />
  43. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/fil" hreflang="fil" />
  44. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/fi" hreflang="fi" />
  45. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/fr" hreflang="fr" />
  46. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/ka" hreflang="ka" />
  47. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/de" hreflang="de" />
  48. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/el" hreflang="el" />
  49. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/he" hreflang="he" />
  50. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/hi" hreflang="hi" />
  51. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/hu" hreflang="hu" />
  52. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/is" hreflang="is" />
  53. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/id" hreflang="id" />
  54. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/ga" hreflang="ga" />
  55. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/it" hreflang="it" />
  56. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/ja" hreflang="ja" />
  57. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/ko" hreflang="ko" />
  58. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/lv" hreflang="lv" />
  59. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/lt" hreflang="lt" />
  60. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/mk" hreflang="mk" />
  61. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/ms" hreflang="ms" />
  62. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/mt" hreflang="mt" />
  63. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/nb" hreflang="nb" />
  64. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/fa" hreflang="fa" />
  65. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/pl" hreflang="pl" />
  66. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/pt" hreflang="pt" />
  67. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/ro" hreflang="ro" />
  68. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/ru" hreflang="ru" />
  69. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/sr" hreflang="sr" />
  70. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/sk" hreflang="sk" />
  71. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/sl" hreflang="sl" />
  72. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/es" hreflang="es" />
  73. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/sw" hreflang="sw" />
  74. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/sv" hreflang="sv" />
  75. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/ta" hreflang="ta" />
  76. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/te" hreflang="te" />
  77. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/th" hreflang="th" />
  78. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/tr" hreflang="tr" />
  79. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/uk" hreflang="uk" />
  80. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/ur" hreflang="ur" />
  81. <link rel="alternate" href="https://globalcatalog.com/builtinpro.hk/vi" hreflang="vi" />
  82. <!-- Global site tag (gtag.js) - Google Analytics -->
  83. <script async src="https://www.googletagmanager.com/gtag/js?id=G-KR0NYMYJ5P"></script>
  84. <script>
  85.  window.dataLayer = window.dataLayer || [];
  86.  function gtag(){dataLayer.push(arguments);}
  87.  gtag('js', new Date());
  88.  
  89.  gtag('config', 'G-KR0NYMYJ5P');
  90. </script>
  91. </head>
  92.  
  93. <body data-spy="scroll" data-target=".navbar">
  94.  
  95. <!--noscript>
  96.    <style type="text/css">
  97.        .pageContent {display:none;}
  98. .noscriptmsg {width: 50%; padding: 20px;}
  99.    </style>
  100.    <div class="noscriptmsg">
  101. <h4>JavaScript must be enabled in order for you to use GlobalCatalog.</h4>
  102. <p>It seems JavaScript is either disabled or not supported by your browser. Please, enable JavaScript by changing your browser settings, then try again.</p>
  103. </div>
  104. </noscript-->
  105.  
  106.  
  107. <div id="wrapper" class="profile-page pageContent">
  108.  
  109. <script type="text/javascript">
  110. /*<![CDATA[*/
  111.  
  112. function split(val) {
  113. return val.split(/,\s*/);
  114. }
  115. function extractLast(term) {
  116. return split(term).pop();
  117. }
  118. /*]]>*/
  119. </script>
  120. <div class="logo navbar navbar-fixed-top"><div class="navbar-inner"><div class="container"><a class="btn btn-navbar" data-toggle="collapse" data-target="#yii_bootstrap_collapse_0"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></a><a href="/" class="brand"><img src="/themes/proxima/images/logoSm-cn.png"/></a><div class="nav-collapse" id="yii_bootstrap_collapse_0"><ul class="pull-right dropdown-toggle language-dropdown nav" id="yw10"><li onclick="_gaq.push([&#039;_trackEvent&#039;, &#039;Top Menu Links&#039;, &#039;Click&#039;, &#039;Language&#039;]);" class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">语言: 简体 <span class="caret"></span></a><ul id="yw11" class="dropdown-menu"><li title="南非荷兰文"><a tabindex="-1" href="/builtinpro.hk/af">Afrikaans</a></li><li title="阿尔巴尼亚文"><a tabindex="-1" href="/builtinpro.hk/sq">Shqiptar</a></li><li title="阿拉伯文"><a tabindex="-1" href="/builtinpro.hk/ar">عربي</a></li><li title="阿塞拜疆文"><a tabindex="-1" href="/builtinpro.hk/az">آذربایجان دیلی</a></li><li title="亚美尼亚文"><a tabindex="-1" href="/builtinpro.hk/hy">Հայերէն</a></li><li title="孟加拉文"><a tabindex="-1" href="/builtinpro.hk/bn">বাংলা</a></li><li title="白俄罗斯文"><a tabindex="-1" href="/builtinpro.hk/be">Беларускія</a></li><li title="保加利亚文"><a tabindex="-1" href="/builtinpro.hk/bg">Български</a></li><li title="加泰罗尼亚文"><a tabindex="-1" href="/builtinpro.hk/ca">Català</a></li><li title="简体中文"><a tabindex="-1" href="/builtinpro.hk/zh">简体</a></li><li title="繁体中文"><a tabindex="-1" href="/builtinpro.hk/tw">繁體</a></li><li title="克罗地亚文"><a tabindex="-1" href="/builtinpro.hk/hr">Hrvatski</a></li><li title="捷克文"><a tabindex="-1" href="/builtinpro.hk/cs">Čeština</a></li><li title="丹麦文"><a tabindex="-1" href="/builtinpro.hk/da">Dansk</a></li><li title="荷兰文"><a tabindex="-1" href="/builtinpro.hk/nl">Nederlands</a></li><li title="英文"><a tabindex="-1" href="/builtinpro.hk/en">English</a></li><li title="爱沙尼亚文"><a tabindex="-1" href="/builtinpro.hk/et">Eesti keel</a></li><li title="菲律宾文"><a tabindex="-1" href="/builtinpro.hk/fil">Filipino</a></li><li title="芬兰文"><a tabindex="-1" href="/builtinpro.hk/fi">Suomi</a></li><li title="法文"><a tabindex="-1" href="/builtinpro.hk/fr">Français</a></li><li title="格鲁吉亚文"><a tabindex="-1" href="/builtinpro.hk/ka">ქართული</a></li><li title="德文"><a tabindex="-1" href="/builtinpro.hk/de">Deutsch</a></li><li title="希腊文"><a tabindex="-1" href="/builtinpro.hk/el">Eλληνική</a></li><li title="希伯来文"><a tabindex="-1" href="/builtinpro.hk/he">עִבְרִית</a></li><li title="印地文"><a tabindex="-1" href="/builtinpro.hk/hi">मानक हिन्दी</a></li><li title="匈牙利文"><a tabindex="-1" href="/builtinpro.hk/hu">Magyar</a></li><li title="冰岛文"><a tabindex="-1" href="/builtinpro.hk/is">Íslenska</a></li><li title="印度尼西亚文"><a tabindex="-1" href="/builtinpro.hk/id">Bahasa Indonesia</a></li><li title="爱尔兰文"><a tabindex="-1" href="/builtinpro.hk/ga">Irish</a></li><li title="意大利文"><a tabindex="-1" href="/builtinpro.hk/it">Italiano</a></li><li title="日文"><a tabindex="-1" href="/builtinpro.hk/ja">日本語</a></li><li title="韩文"><a tabindex="-1" href="/builtinpro.hk/ko">한국어</a></li><li title="拉脱维亚文"><a tabindex="-1" href="/builtinpro.hk/lv">Latviešu</a></li><li title="立陶宛文"><a tabindex="-1" href="/builtinpro.hk/lt">Lietuviù</a></li><li title="马其顿文"><a tabindex="-1" href="/builtinpro.hk/mk">Македонски</a></li><li title="马来文"><a tabindex="-1" href="/builtinpro.hk/ms">بهاس ملايو</a></li><li title="马耳他文"><a tabindex="-1" href="/builtinpro.hk/mt">Malti</a></li><li title="挪威博克马尔文"><a tabindex="-1" href="/builtinpro.hk/nb">Norsk</a></li><li title="波斯文"><a tabindex="-1" href="/builtinpro.hk/fa">فارسی</a></li><li title="波兰文"><a tabindex="-1" href="/builtinpro.hk/pl">Polski</a></li><li title="葡萄牙文"><a tabindex="-1" href="/builtinpro.hk/pt">Português</a></li><li title="罗马尼亚文"><a tabindex="-1" href="/builtinpro.hk/ro">Română</a></li><li title="俄文"><a tabindex="-1" href="/builtinpro.hk/ru">Pусский</a></li><li title="塞尔维亚文"><a tabindex="-1" href="/builtinpro.hk/sr">Cрпски</a></li><li title="斯洛伐克文"><a tabindex="-1" href="/builtinpro.hk/sk">Slovenčina</a></li><li title="斯洛文尼亚文"><a tabindex="-1" href="/builtinpro.hk/sl">Slovenščina</a></li><li title="西班牙文"><a tabindex="-1" href="/builtinpro.hk/es">Español</a></li><li title="斯瓦希里文"><a tabindex="-1" href="/builtinpro.hk/sw">Kiswahili</a></li><li title="瑞典文"><a tabindex="-1" href="/builtinpro.hk/sv">Svenska</a></li><li title="泰米尔文"><a tabindex="-1" href="/builtinpro.hk/ta">தமிழ்</a></li><li title="泰卢固文"><a tabindex="-1" href="/builtinpro.hk/te">తెలుగు</a></li><li title="泰文"><a tabindex="-1" href="/builtinpro.hk/th">ภาษาไทย</a></li><li title="土耳其文"><a tabindex="-1" href="/builtinpro.hk/tr">Türkçe</a></li><li title="乌克兰文"><a tabindex="-1" href="/builtinpro.hk/uk">Українськи</a></li><li title="乌尔都文"><a tabindex="-1" href="/builtinpro.hk/ur">اردو</a></li><li title="越南文"><a tabindex="-1" href="/builtinpro.hk/vi">Việt</a></li></ul></li></ul><form class="navbar-search pull-left" action="/search/view"><input id="navSearchBar" autocomplete="off" data-provide="typeahead" name="q" type="text" class="search-query span3" placeholder="搜索产品和服务" /></form><ul class="pull-right dropdown-toggle nav" id="yw12"><li onclick="_gaq.push([&#039;_trackEvent&#039;, &#039;Top Menu Links&#039;, &#039;Click&#039;, &#039;Sign Up&#039;]);"><a href="/signup">免费注册!</a></li><li onclick="_gaq.push([&#039;_trackEvent&#039;, &#039;Top Menu Links&#039;, &#039;Click&#039;, &#039;Login&#039;]);"><a href="/login">登录</a></li></ul></div></div></div></div>
  121. <div class="container row-fluid" id="page">
  122. <div class="companyProfile">
  123. <div class="row">
  124.    <div class="span12">
  125. <div id="inquiryModal" class="modal inquiryModal hide fade" tabindex="-1" role="dialog" data-remote="true">
  126. <div class="modal-border">
  127. <div class="modal-header">
  128. <a class="close-modal closeIcon" data-dismiss="modal" onclick="$('#inquiryModal .error-div').hide();"></a>
  129. <center>
  130. <h2 class="inquiryDialogTitle">联系方式</h2>
  131. <h3>提交您的询问</h3>
  132. </center>
  133. </div><form class="form-vertical" id="modal-contact-form" action="/builtinpro.hk/zh" method="post"><div class="modal-body">
  134. <div class="form">
  135. <p class="note">Fields with <span class="required">*</span> are required.</p><div class="error-div alert alert-block alert-error" style="display:none;"></div><div class="leftHalf"><div class="textLeft" style="display:inline-block;"><label for="ContactForm_firstName" class="required">名字 <span class="required">*</span></label><input autofocus="autofocus" id="inquiryModal-firstName" name="ContactForm[firstName]" type="text" /></div></div><div class="rightHalf" style="width: 50%; text-align: right;"><div class="textLeft" style="display:inline-block;"><label for="ContactForm_lastName" class="required">姓 <span class="required">*</span></label><input class="" id="inquiryModal-lastName" name="ContactForm[lastName]" type="text" /></div></div><label for="ContactForm_email" class="required">电子邮件 <span class="required">*</span></label><input style="width: 100%" id="inquiryModal-email" name="ContactForm[email]" type="text" /><input id="inquiryModal-subject" name="ContactForm[subject]" type="hidden" /><input id="inquiryModal-source" type="hidden" value="modal" name="Source" /><label for="ContactForm_body" class="required">消息 <span class="required">*</span></label><textarea rows="4" class="" style="width: 100%" id="inquiryModal-body" name="ContactForm[body]"></textarea><label for="ContactForm_verifyCode">验证码</label><div><img id="yw8" src="/company/captcha?v=674044187f9c6" alt="" /><input class="captcha right" name="ContactForm[verifyCode]" id="ContactForm_verifyCode" type="text" /></div></div><!-- form -->
  136. </div><div class="modal-footer"><button id="submitButton_inquiryModal" class="btn btn-primary" type="submit" name="yt0">提交</button><a class="close-modal btn" data-dismiss="modal" onclick="$(&quot;#inquiryModal .error-div&quot;).hide();" href="#">关闭</a></div></div></div><!-- inquiryModal --></form><div id="followModal" class="modal hide fade formDialog" tabindex="-1" role="dialog">
  137. <div class="modal-border"><div class="modal-header">
  138. <a id="followModalCloseButton" class="close-modal closeIcon" data-dismiss="modal" onclick="$('#followModal .error-div').hide();"></a>
  139. <h2 id="dialogTitle">按照公司<img id="loader-followModal" class="uiLoadingIndicator hidden img" src="/themes/proxima/images/loading372727.gif" alt=""></h2>
  140. </div><form class="form-vertical" id="followmodal-form" action="/builtinpro.hk/zh" method="post"><div class="modal-body"><div class="form"><div class="content-box">
  141.  
  142. <div class="content-fields">
  143. <div class="alert alert-block alert-error" id="followmodal-form_es_" style="display:none"><p>Please fix the following input errors:</p>
  144. <ul><li>dummy</li></ul></div><div class="control-group"><input type="hidden" value="9491741" name="CompanyId" id="CompanyId" /><input type="hidden" value="1" name="Reset" id="Reset" /><div class="followAll"><input value="0" id="Categories_all" type="checkbox" name="All[]" data-toggle="toggle" data-size="small" data-on=" " data-off=" ">&nbsp;&nbsp;<span for="Categories_all">Select all</span></div></div> </div>
  145.  
  146. </div>
  147. </div></div><div class="modal-footer form-actions"><button id="followModalSubmitButton" class="ajaxSubmitBtn btn btn-primary" name="yt1" type="button">节省</button><button id="followModalCancelButton" class="btn" data-dismiss="modal" name="yt2" type="button">取消</button></div></form></div></div><div id="companyHeader" class="frame largeRoundCorners clearCornersTop"><div class="headerImage"><div itemscope itemtype="http://schema.org/Organization"><div class="headerInside"><div class="companyName jtextfill"  style="height:90px;"><h1><a href="/builtinpro.hk"><span itemprop="name">BUILT-IN PRO </span></a></h1></div><div class="companyLogoAndContact mediumRoundCorners largeShadow f32"><div class="companyLogoBox frame smallRoundCorners"><div itemprop="logo" class="companyLogo" style="background: url(https://globalcatalog.com/asset/showThumb/1229882/built-in-pro-logo.png) center center no-repeat; background-size: contain;"></div></div><div class="companyContact"><div class="ribbon right"><span class="flag  hk"></span></div><ul class="right"><div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"><li title="Kwun Tong"><span itemprop="streetAddress">Kwun Tong</span></li><li title="Hong Kong, "><span itemprop="addressLocality">Hong Kong</span>, <span itemprop="postalCode"></span></li><li title="香港"><span itemprop="addressCountry">香港</span></li></div><li title="23044092"><span class="indent">电话:</span><span class="telephone" itemprop="telephone">23044092</span></li><li title=""><span class="indent">传真:</span><span class="faxNumber inactive" itemprop="faxNumber"> ---.---.-----</span></li><li title="https://www.builtinpro.hk"><span class="indent">网站:</span><a class="websiteUrl" href="https://www.builtinpro.hk" target="_blank" rel="nofollow" itemprop="url">https://www.builtinpro.hk</a></li></ul></div></div></div></div></div><div class="companyHeaderInsideBottom"><div class="headerInside"><div class="headerControlBar"><div class="headerControls"><a class="inquiryBtn btn" data-toggle="modal" data-target="#inquiryModal" href="#">消息</a></div><div class="socialMediaLinks"><a id="socialMediaLinkFacebook" href="https://www.facebook.com/builtinpro/" target="_blank" class="icons-socialmedia icon-facebook"></a><a id="socialMediaLinkTwitter" href="https://twitter.com/" target="_blank" class="icons-socialmedia icon-twitter inactive"></a><a id="socialMediaLinkLinkedIn" href="https://www.linkedin.com/company/builtinpro" target="_blank" class="icons-socialmedia icon-linkedin"></a><a id="socialMediaLinkYouTube" href="https://www.youtube.com/@builtinpro" target="_blank" class="icons-socialmedia icon-youtube"></a><a id="socialMediaLinkInstagram" href="https://www.instagram.com/builtinpro.hk/" target="_blank" class="icons-socialmedia icon-instagram"></a><a id="socialMediaLinkPinterest" href="https://pinterest.com/" target="_blank" class="icons-socialmedia icon-pinterest inactive"></a></div></div></div></div></div><!-- companyHeader --> </div>
  148. </div>
  149. <div class="row pinned-container">
  150.    <div class="span12">
  151. <div class="firstColumn">
  152. <div id="sidebar" class="pinned frame mediumRoundCorners smallShadow">
  153. <div class="inside smallRoundCorners">
  154. <ul class="operations nav nav-list" id="yw9"><li class="nav-header">公司资料</li><li class="active"><a href="/builtinpro.hk"><i class="icon-home"></i> 主页<i class="icon-chevron-right right"></i></a></li><li><a href="/builtinpro.hk/zh/关于我们"><i class="icon-book"></i> 关于我们<i class="icon-chevron-right right"></i></a></li><li><a href="/company/events/9491741?identifier=builtinpro.hk&amp;lang=zh&amp;page=events"><i class="icon-calendar"></i> 活动<i class="icon-chevron-right right"></i></a></li><li><a href="/builtinpro.hk/zh/贸易与市场"><i class="icon-globe"></i> 行业和市场<i class="icon-chevron-right right"></i></a></li><li><a href="/builtinpro.hk/zh/联系"><i class="icon-pencil"></i> 联系方式<i class="icon-chevron-right right"></i></a></li></ul> </div>
  155. </div><!-- sidebar -->
  156. </div>
  157. <div class="secondColumn">
  158. <div id="content">
  159. <div id="companyView" class="newsfeed">
  160.  
  161. <div class="view frame mediumRoundCorners smallShadow" style="background-color: #fff">
  162. <div class="inside smallRoundCorners">
  163.  
  164. <!--ul class="breadcrumb">
  165.  <li><a href="/builtinpro.hk/zh">BUILT-IN PRO </a><span class="divider">/</span></li>
  166. <li class="active">主页</li></ul-->
  167.  
  168. <div id="blueBanner4" class="hidden">
  169. <div class="slide-out-div blueBanner-v3">
  170. <a class="handle" href="https://globalcatalog.com/signup">Content</a>
  171. <h1>Seeing is believing!</h1>
  172. <div class="inside">
  173. <p class="subtitle">You found this company profile listed on <a href="https://globalcatalog.com/signup">Global Catalog</a>, so we’re confident <b>buyers WILL find your business</b>, too. All you need to do is sign up!</p>
  174. <p class="subtitle">You will be seen <b>for FREE by thousands of active buyers </b> from across the globe, searching <a href="https://globalcatalog.com/signup">Global Catalog</a> every day for companies just like yours.</p>
  175. <div class="signup">
  176. <a href="https://globalcatalog.com/signup" class="btn btn-primary btn-large" onclick="_gaq.push(['_trackEvent', 'Company Profile', 'Blue Banner', 'V3-LEFT-SIGNUP'])"">Sign up</a>
  177. <p>It's FREE and always will be.</p>
  178. </div>
  179. </div>
  180. </div></div>
  181. <h1>主页</h1>
  182.  
  183. <div class="description-short bottomBorder">
  184. <div class="description">
  185. <div id="companyDescriptionBox"  class="data smallRoundCorners"><div class="formUnit"><div class="form"><div id="languageModal" class="modal hide fade" tabindex="-1" role="dialog" data-remote="true">
  186. <div class="modal-border">
  187. <div class="modal-header">
  188. <a class="close-modal closeIcon" data-dismiss="modal" onclick="$('#languageModal .error-div').hide();"></a>
  189. <h2 id="inquiryDialogTitle">选择语言:</h2>
  190. </div><div class="modal-body"><select class="span3" autofocus="autofocus" name="languageSelect_languageModal" id="languageSelect_languageModal">
  191. <option value="1">南非荷兰文</option>
  192. <option value="2">阿尔巴尼亚文</option>
  193. <option value="3">阿拉伯文</option>
  194. <option value="4">阿塞拜疆文</option>
  195. <option value="5">亚美尼亚文</option>
  196. <option value="6">孟加拉文</option>
  197. <option value="7">白俄罗斯文</option>
  198. <option value="8">保加利亚文</option>
  199. <option value="9">加泰罗尼亚文</option>
  200. <option value="10">简体中文</option>
  201. <option value="11">繁体中文</option>
  202. <option value="12">克罗地亚文</option>
  203. <option value="13">捷克文</option>
  204. <option value="14">丹麦文</option>
  205. <option value="15">荷兰文</option>
  206. <option value="16" selected="selected">英文</option>
  207. <option value="17">爱沙尼亚文</option>
  208. <option value="18">菲律宾文</option>
  209. <option value="19">芬兰文</option>
  210. <option value="20">法文</option>
  211. <option value="21">格鲁吉亚文</option>
  212. <option value="22">德文</option>
  213. <option value="23">希腊文</option>
  214. <option value="24">希伯来文</option>
  215. <option value="25">印地文</option>
  216. <option value="26">匈牙利文</option>
  217. <option value="27">冰岛文</option>
  218. <option value="28">印度尼西亚文</option>
  219. <option value="29">爱尔兰文</option>
  220. <option value="30">意大利文</option>
  221. <option value="31">日文</option>
  222. <option value="32">韩文</option>
  223. <option value="33">拉脱维亚文</option>
  224. <option value="34">立陶宛文</option>
  225. <option value="35">马其顿文</option>
  226. <option value="36">马来文</option>
  227. <option value="37">马耳他文</option>
  228. <option value="38">挪威博克马尔文</option>
  229. <option value="39">波斯文</option>
  230. <option value="40">波兰文</option>
  231. <option value="41">葡萄牙文</option>
  232. <option value="42">罗马尼亚文</option>
  233. <option value="43">俄文</option>
  234. <option value="44">塞尔维亚文</option>
  235. <option value="45">斯洛伐克文</option>
  236. <option value="46">斯洛文尼亚文</option>
  237. <option value="47">西班牙文</option>
  238. <option value="48">斯瓦希里文</option>
  239. <option value="49">瑞典文</option>
  240. <option value="50">泰米尔文</option>
  241. <option value="51">泰卢固文</option>
  242. <option value="52">泰文</option>
  243. <option value="53">土耳其文</option>
  244. <option value="54">乌克兰文</option>
  245. <option value="55">乌尔都文</option>
  246. <option value="56">越南文</option>
  247. </select><input type="hidden" class="modal-result"></div><div class="modal-footer"><a id="selectButton_languageModal" class="close-modal btn btn-primary" data-dismiss="modal">选择</a><a id="closeButton_languageModal" class="close-modal btn" data-dismiss="modal" href="#">关闭</a></div></div></div><!-- inquiryModal -->
  248. <div class="data-header">
  249. <h3>说明<img id="loader-companyDescriptionBox" class="uiLoadingIndicator img hidden" src="/themes/proxima/images/loading372727.gif" alt=""></h3>
  250. </div>
  251. <div class="data-content">
  252. <div class="inside">
  253. <div class="view-section">
  254. <div class="view-group"> <div id="companyDescription" class="description-content ">
  255. <p>BUILT-IN PRO 為全港最大的廚房電器零售商之一,於業內已有逾 30年的歷史。BUILT-IN PRO 分店散佈於全港各區,並設有便捷的 BUILT-IN PRO 送貨服務,總部辦公室位於觀塘的海濱地段。Built-in Pro 致力提供優質的產品和服務,並獨家提供 BUILT-IN PRO 優惠,務求能夠超出客戶的期望。如果你正在尋找具挑戰的工作和有願景的發展,BUILT-IN PRO 招聘將是你的理想選擇,我們為合適的候選人提供的完善的福利,有吸引力的薪酬待遇及長遠的發展前景。</p> </div>
  256. </div>
  257. </div>
  258. </div>
  259. </div></div></div></div> </div>
  260. <a class="right" style="position: absolute; bottom: 5px; right: 15px;" href="/builtinpro.hk/zh/关于我们">阅读更多 »</a>
  261. </div>
  262.  
  263. <div class="clear"></div>
  264. <div class="clear"></div>
  265. <!-- features products -->
  266. <br />
  267. <div class="featuredProducts smallRoundCorners">
  268. <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
  269. <!-- Company Profile - Featured Box 1 -->
  270. <ins class="adsbygoogle"
  271. style="display:inline-block;width:300px;height:250px"
  272. data-ad-client="ca-pub-2558538670494525"
  273. data-ad-slot="4378653090"></ins>
  274. <!-- Company Profile - Featured Box 2 -->
  275. <ins class="adsbygoogle"
  276. style="display:inline-block;width:300px;height:250px;float:right"
  277. data-ad-client="ca-pub-2558538670494525"
  278. data-ad-slot="2762319092"></ins>
  279. <script>
  280. (adsbygoogle = window.adsbygoogle || []).push({});
  281. </script>
  282. </div>
  283. </div>
  284. </div>
  285. <br />
  286. <br />
  287. <div class="">
  288. <h1>Timeline</h1>
  289. <div id="imageModal" class="modal messageModal hide fade" tabindex="-1" role="dialog">
  290. <div class="modal-border">
  291. <div class="modal-header"><a class="close-modal closeIcon" data-dismiss="modal" onclick="$('#imageModal .error-div').hide();"></a></div><div class="modal-body"><img id="imageModalImage" src="" /></div><div class="modal-footer"><a id="closeButton_imageModal" class="close-modal btn btn-info" data-dismiss="modal" href="#">关闭</a></div></div></div>
  292. <div id="templates-timelineWidget" class="hidden"><div id="yw0"><div class="post sociallinkUpdateEventWidget frame mediumRoundCorners smallShadow"><div class="post-header"><a href="/{{companyIdentifier}}"><div class="companyLogo" style="background: url(https://globalcatalog.com/asset/showThumb/{{logoId}}) center center no-repeat; background-size: contain;"></div></a><div class="content" style="display: inline-block"><h3><a href="/{{companyIdentifier}}">{{companyName}}</a> {{title}}</h3></div></div><div class="post-body"><a id="socialMediaLinkFacebook-{{eventId}}" href="{{facebookLink}}" target="_blank" class="socialMediaLinkFacebook icons-socialmedia icon-facebook inactive"></a><a id="socialMediaLinkTwitter-{{eventId}}" href="{{twitterLink}}" target="_blank" class="socialMediaLinkTwitter icons-socialmedia icon-twitter inactive"></a><a id="socialMediaLinkLinkedIn-{{eventId}}" href="{{linkedInLink}}" target="_blank" class="socialMediaLinkLinkedIn icons-socialmedia icon-linkedin inactive"></a><a id="socialMediaLinkYouTube-{{eventId}}" href="{{youTubeLink}}" target="_blank" class="socialMediaLinkYouTube icons-socialmedia icon-youtube inactive"></a><a id="socialMediaLinkInstagram-{{eventId}}" href="{{instagramLink}}" target="_blank" class="socialMediaLinkInstagram icons-socialmedia icon-instagram inactive"></a><a id="socialMediaLinkPinterest-{{eventId}}" href="{{pinterestLink}}" target="_blank" class="socialMediaLinkPinterest icons-socialmedia icon-pinterest inactive"></a></div><div class="post-footer"></div></div></div><div id="yw1"><div class="post websiteUpdateEventWidget frame mediumRoundCorners smallShadow"><div class="post-header"><a href="/{{companyIdentifier}}"><div class="companyLogo" style="background: url(https://globalcatalog.com/asset/showThumb/{{logoId}}) center center no-repeat; background-size: contain;"></div></a><div class="content" style="display: inline-block"><h3><a href="/{{companyIdentifier}}">{{companyName}}</a> {{title}}</h3></div></div><div class="post-body"><h2>Visit our website @ <a href="{{website}}">{{website}}</a></h2></div><div class="post-footer"></div></div></div><div id="yw2"><div class="post addressUpdateEventWidget frame mediumRoundCorners smallShadow"><div class="post-header"><a href="/{{companyIdentifier}}"><div class="companyLogo" style="background: url(https://globalcatalog.com/asset/showThumb/{{logoId}}) center center no-repeat; background-size: contain;"></div></a><div class="content" style="display: inline-block"><h3><a href="/{{companyIdentifier}}">{{companyName}}</a> {{title}}</h3></div></div><div class="post-body"><p>Our new location address: </p><h4 class="newAddress">{{street}}, {{city}}, {{state}}, {{postalCode}}, {{country}}</h4></div><div class="post-footer"></div></div></div><div id="yw3"><div class="post productEventWidget frame mediumRoundCorners smallShadow"><div class="post-header"><a href="/{{companyIdentifier}}"><div class="companyLogo" style="background: url(https://globalcatalog.com/asset/showThumb/{{logoId}}) center center no-repeat; background-size: contain;"></div></a><div class="content" style="display: inline-block"><h3><a href="/{{companyIdentifier}}">{{companyName}}</a> {{title}}</h3></div></div><div class="post-body"><div class="product"><div class="product-image"><div class="product-price hidden"><div class="product-price-original hidden"><sup class="symbol">{{symbol}}</sup><span class="value">{{oldPrice}}</span><sup class="units">{{currency}}</sup></div><h2><sup class="symbol">{{symbol}}</sup><span class="value">{{price}}</span><sup class="units">{{currency}}</sup></h2></div><div class="product-price-change hidden"><span class="onsale">SALE</span><span class="value change"></span><sup>%</sup></div><a href="/{{companyIdentifier}}/{{productUrl}}-pro{{productId}}"><img src="/asset/showImage/{{imageId}}" /></a></div><div class="product-text"><div class="product-name"><a href="/{{companyIdentifier}}/{{productUrl}}-pro{{productId}}"><h2>{{name}}</h2></a></div></div></div></div><div class="post-footer"></div></div></div><div id="yw4"><div class="post companyEventWidget frame mediumRoundCorners smallShadow"><div class="post-header"><a href="/{{companyIdentifier}}"><div class="companyLogo" style="background: url(https://globalcatalog.com/asset/showThumb/{{logoId}}) center center no-repeat; background-size: contain;"></div></a><div class="content" style="display: inline-block"><h3><a href="/{{companyIdentifier}}">{{companyName}}</a> {{title}}</h3></div></div><div class="post-body"><div class="product"><div class="product-image"><a id="event{{eventId}}-ImageLink" class="hidden" href=""><img src="" /></a></div><div class="product-text"><div class="product-name"><h2>{{name}}</h2></div><div class="more product-description"><p>{{description}}</p></div></div></div></div><div class="post-footer"></div></div></div></div><div id="timelineWidget" class="timeline"><div id="event1973805" class="addressUpdate"><div id="yw5"><div class="post addressUpdateEventWidget frame mediumRoundCorners smallShadow"><div class="post-header"><a href="/builtinpro.hk"><div class="companyLogo" style="background: url(https://globalcatalog.com/asset/showThumb/1229882) center center no-repeat; background-size: contain;"></div></a><div class="content" style="display: inline-block"><h3><a href="/builtinpro.hk">BUILT-IN PRO </a> updated address</h3></div></div><div class="post-body"><p>Our new location address: </p><h4 class="newAddress">Kwun Tong, Hong Kong, {{state}}, , 香港</h4></div><div class="post-footer"></div></div></div></div><div id="event1973806" class="websiteUpdate"><div id="yw6"><div class="post websiteUpdateEventWidget frame mediumRoundCorners smallShadow"><div class="post-header"><a href="/builtinpro.hk"><div class="companyLogo" style="background: url(https://globalcatalog.com/asset/showThumb/1229882) center center no-repeat; background-size: contain;"></div></a><div class="content" style="display: inline-block"><h3><a href="/builtinpro.hk">BUILT-IN PRO </a> updated website</h3></div></div><div class="post-body"><h2>Visit our website @ <a href="https://www.builtinpro.hk">https://www.builtinpro.hk</a></h2></div><div class="post-footer"></div></div></div></div><div id="event1973804" class="socialLinkUpdate"><div id="yw7"><div class="post sociallinkUpdateEventWidget frame mediumRoundCorners smallShadow"><div class="post-header"><a href="/builtinpro.hk"><div class="companyLogo" style="background: url(https://globalcatalog.com/asset/showThumb/1229882) center center no-repeat; background-size: contain;"></div></a><div class="content" style="display: inline-block"><h3><a href="/builtinpro.hk">BUILT-IN PRO </a> updated social links</h3></div></div><div class="post-body"><a id="socialMediaLinkFacebook-1973804" href="https://www.facebook.com/builtinpro/" target="_blank" class="socialMediaLinkFacebook icons-socialmedia icon-facebook inactive"></a><a id="socialMediaLinkTwitter-1973804" href="" target="_blank" class="socialMediaLinkTwitter icons-socialmedia icon-twitter inactive"></a><a id="socialMediaLinkLinkedIn-1973804" href="{{linkedInLink}}" target="_blank" class="socialMediaLinkLinkedIn icons-socialmedia icon-linkedin inactive"></a><a id="socialMediaLinkYouTube-1973804" href="{{youTubeLink}}" target="_blank" class="socialMediaLinkYouTube icons-socialmedia icon-youtube inactive"></a><a id="socialMediaLinkInstagram-1973804" href="{{instagramLink}}" target="_blank" class="socialMediaLinkInstagram icons-socialmedia icon-instagram inactive"></a><a id="socialMediaLinkPinterest-1973804" href="" target="_blank" class="socialMediaLinkPinterest icons-socialmedia icon-pinterest inactive"></a></div><div class="post-footer"></div></div></div></div></div></div>
  293.  
  294. </div><!-- companyView --> </div><!-- content -->
  295. </div>
  296.    </div>
  297. </div>
  298.  
  299. <div class="clear"></div>
  300. </div><!-- page --></div><!-- companyProfile -->
  301. <div class="push-page"></div>
  302.  
  303. </div><!-- wrap -->
  304.  
  305. <div id="footer" class="footer-page pageContent">
  306. <div class="container">
  307.  
  308. <ul id="footernav">
  309. <li><a href="/builtinpro.hk">主页</a></li>
  310. <li><a href="/builtinpro.hk/zh/关于我们">关于我们</a></li>
  311. <li><a href="/builtinpro.hk/zh/产品展示">产品展示</a></li>
  312. <li><a href="/builtinpro.hk/zh/服务">服务</a></li>
  313. <li><a href="/builtinpro.hk/zh/贸易与市场">行业和市场</a></li>
  314. <li><a href="/builtinpro.hk/zh/联系">联系方式</a></li>
  315. </ul>
  316. <p class="copyright">&copy;&nbsp;2024&nbsp;<a href="/">GlobalCatalog&nbsp;Inc.</a></p>
  317. <br />
  318. <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
  319. <!-- Company Profile - Featured Products -->
  320. <ins class="adsbygoogle"
  321. style="display:block"
  322. data-ad-client="ca-pub-2558538670494525"
  323. data-ad-slot="2811508295"
  324. data-ad-format="auto"></ins>
  325. <script>
  326. (adsbygoogle = window.adsbygoogle || []).push({});
  327. </script>
  328. </div><!-- footer container -->
  329. </div><!-- footer -->
  330.  
  331. <script type="text/javascript" src="/themes/proxima/js/jquery.pin.js"></script>
  332. <script type="text/javascript">
  333. /*<![CDATA[*/
  334.  
  335. // $(".pinned").pin({
  336.  // minWidth: 940
  337. // });
  338. console.log("pinning elements.");
  339. $(".pinned").pin({containerSelector: ".pinned-container", minWidth: 940});
  340. // $(window).scroll(function(){
  341. // if  ($(window).scrollTop() >= 160) {
  342. // $('#sidebar').css({position:'fixed', width: '200px', top: '50px'});
  343. // //$('.secondColumn').css({marginLeft: '224px'});
  344. // $('.secondColumn').css({marginLeft: '224px'});
  345. // }
  346. // else {
  347. // $('#sidebar').css({position:'relative', width: '200px', top:0});
  348. // $('.secondColumn').css({marginLeft: '25px'});
  349. // }
  350. // });
  351.  
  352. jQuery(function($) {
  353.  
  354. $.globalcatalog.loginRequiredAjaxResponse = "GC_LOGIN_REQUIRED";
  355. $.globalcatalog.location.countryId = 1079;
  356. $.globalcatalog.location.countryCode = "US";
  357. $.globalcatalog.location.countryName = "美国";
  358. $.globalcatalog.languageId =10;
  359. $.globalcatalog.languages = []; $.globalcatalog.languages[1] = {"Name" : "Afrikaans", "Translation" : "南非荷兰文", "Code" : "af"};$.globalcatalog.languages[2] = {"Name" : "Albanian", "Translation" : "阿尔巴尼亚文", "Code" : "sq"};$.globalcatalog.languages[3] = {"Name" : "Arabic", "Translation" : "阿拉伯文", "Code" : "ar"};$.globalcatalog.languages[4] = {"Name" : "Azerbaijani", "Translation" : "阿塞拜疆文", "Code" : "az"};$.globalcatalog.languages[5] = {"Name" : "Armenian", "Translation" : "亚美尼亚文", "Code" : "hy"};$.globalcatalog.languages[6] = {"Name" : "Bengali", "Translation" : "孟加拉文", "Code" : "bn"};$.globalcatalog.languages[7] = {"Name" : "Belarusian", "Translation" : "白俄罗斯文", "Code" : "be"};$.globalcatalog.languages[8] = {"Name" : "Bulgarian", "Translation" : "保加利亚文", "Code" : "bg"};$.globalcatalog.languages[9] = {"Name" : "Catalan", "Translation" : "加泰罗尼亚文", "Code" : "ca"};$.globalcatalog.languages[10] = {"Name" : "ChineseSimplified", "Translation" : "简体中文", "Code" : "zh-CN"};$.globalcatalog.languages[11] = {"Name" : "ChineseTraditional", "Translation" : "繁体中文", "Code" : "zh-TW"};$.globalcatalog.languages[12] = {"Name" : "Croatian", "Translation" : "克罗地亚文", "Code" : "hr"};$.globalcatalog.languages[13] = {"Name" : "Czech", "Translation" : "捷克文", "Code" : "cs"};$.globalcatalog.languages[14] = {"Name" : "Danish", "Translation" : "丹麦文", "Code" : "da"};$.globalcatalog.languages[15] = {"Name" : "Dutch", "Translation" : "荷兰文", "Code" : "nl"};$.globalcatalog.languages[16] = {"Name" : "English", "Translation" : "英文", "Code" : "en"};$.globalcatalog.languages[17] = {"Name" : "Estonian", "Translation" : "爱沙尼亚文", "Code" : "et"};$.globalcatalog.languages[18] = {"Name" : "Filipino", "Translation" : "菲律宾文", "Code" : "fil"};$.globalcatalog.languages[19] = {"Name" : "Finnish", "Translation" : "芬兰文", "Code" : "fi"};$.globalcatalog.languages[20] = {"Name" : "French", "Translation" : "法文", "Code" : "fr"};$.globalcatalog.languages[21] = {"Name" : "Georgian", "Translation" : "格鲁吉亚文", "Code" : "ka"};$.globalcatalog.languages[22] = {"Name" : "German", "Translation" : "德文", "Code" : "de"};$.globalcatalog.languages[23] = {"Name" : "Greek", "Translation" : "希腊文", "Code" : "el"};$.globalcatalog.languages[24] = {"Name" : "Hebrew", "Translation" : "希伯来文", "Code" : "he"};$.globalcatalog.languages[25] = {"Name" : "Hindi", "Translation" : "印地文", "Code" : "hi"};$.globalcatalog.languages[26] = {"Name" : "Hungarian", "Translation" : "匈牙利文", "Code" : "hu"};$.globalcatalog.languages[27] = {"Name" : "Icelandic", "Translation" : "冰岛文", "Code" : "is"};$.globalcatalog.languages[28] = {"Name" : "Indonesian", "Translation" : "印度尼西亚文", "Code" : "id"};$.globalcatalog.languages[29] = {"Name" : "Irish", "Translation" : "爱尔兰文", "Code" : "ga"};$.globalcatalog.languages[30] = {"Name" : "Italian", "Translation" : "意大利文", "Code" : "it"};$.globalcatalog.languages[31] = {"Name" : "Japanese", "Translation" : "日文", "Code" : "ja"};$.globalcatalog.languages[32] = {"Name" : "Korean", "Translation" : "韩文", "Code" : "ko"};$.globalcatalog.languages[33] = {"Name" : "Latvian", "Translation" : "拉脱维亚文", "Code" : "lv"};$.globalcatalog.languages[34] = {"Name" : "Lithuanian", "Translation" : "立陶宛文", "Code" : "lt"};$.globalcatalog.languages[35] = {"Name" : "Macedonian", "Translation" : "马其顿文", "Code" : "mk"};$.globalcatalog.languages[36] = {"Name" : "Malay", "Translation" : "马来文", "Code" : "ms"};$.globalcatalog.languages[37] = {"Name" : "Maltese", "Translation" : "马耳他文", "Code" : "mt"};$.globalcatalog.languages[38] = {"Name" : "Norwegian", "Translation" : "挪威博克马尔文", "Code" : "nb"};$.globalcatalog.languages[39] = {"Name" : "Persian", "Translation" : "波斯文", "Code" : "fa"};$.globalcatalog.languages[40] = {"Name" : "Polish", "Translation" : "波兰文", "Code" : "pl"};$.globalcatalog.languages[41] = {"Name" : "Portuguese", "Translation" : "葡萄牙文", "Code" : "pt"};$.globalcatalog.languages[42] = {"Name" : "Romanian", "Translation" : "罗马尼亚文", "Code" : "ro"};$.globalcatalog.languages[43] = {"Name" : "Russian", "Translation" : "俄文", "Code" : "ru"};$.globalcatalog.languages[44] = {"Name" : "Serbian", "Translation" : "塞尔维亚文", "Code" : "sr"};$.globalcatalog.languages[45] = {"Name" : "Slovak", "Translation" : "斯洛伐克文", "Code" : "sk"};$.globalcatalog.languages[46] = {"Name" : "Slovenian", "Translation" : "斯洛文尼亚文", "Code" : "sl"};$.globalcatalog.languages[47] = {"Name" : "Spanish", "Translation" : "西班牙文", "Code" : "es"};$.globalcatalog.languages[48] = {"Name" : "Swahili", "Translation" : "斯瓦希里文", "Code" : "sw"};$.globalcatalog.languages[49] = {"Name" : "Swedish", "Translation" : "瑞典文", "Code" : "sv"};$.globalcatalog.languages[50] = {"Name" : "Tamil", "Translation" : "泰米尔文", "Code" : "ta"};$.globalcatalog.languages[51] = {"Name" : "Telugu", "Translation" : "泰卢固文", "Code" : "te"};$.globalcatalog.languages[52] = {"Name" : "Thai", "Translation" : "泰文", "Code" : "th"};$.globalcatalog.languages[53] = {"Name" : "Turkish", "Translation" : "土耳其文", "Code" : "tr"};$.globalcatalog.languages[54] = {"Name" : "Ukrainian", "Translation" : "乌克兰文", "Code" : "uk"};$.globalcatalog.languages[55] = {"Name" : "Urdu", "Translation" : "乌尔都文", "Code" : "ur"};$.globalcatalog.languages[56] = {"Name" : "Vietnamese", "Translation" : "越南文", "Code" : "vi"};
  360.  
  361. var bb = $("#blueBanner4");
  362. $(bb).removeClass("hidden")
  363. $(".slide-out-div", bb).tabSlideOut({
  364. tabHandle: ".handle",                           //class of the element that will become your tab
  365. pathToTabImage: "/themes/proxima/images/blueBanner/signupBb_v3.png",  //path to the image for the tab *required*
  366. imageHeight: "189px", //height of tab image *required*
  367. imageWidth: "50px",  //width of tab image *required*    
  368. tabLocation: "left",      //side of screen where tab lives, top, right, bottom, or left
  369. speed: 600,                    //speed of animation
  370. action: "click",                //options: "click" or "hover", action to trigger animation
  371. topPos: "130px",                              //position from the top/ use if tabLocation is left or right
  372. leftPos: "20px",                            //position from left/ use if tabLocation is bottom or top
  373. autoCloseDelay: 14000,
  374. fixedPosition: true,  //options: true makes it stick(fixed position) on scroll
  375. onLoadSlideOut: true,
  376. onLoadSlideOutDelay: "6000"
  377. });
  378. _gaq.push(['_trackEvent', 'Company Profile', 'Blue Banner', 'V3-LEFT-SHOW'])
  379.  
  380. $('#descriptionLanguageTabs .tab a').click(function (e) {e.preventDefault();$(this).tab('show');});
  381. $('#descriptionLanguageTabs_Plus a').click(function (e) {
  382. e.preventDefault();
  383. $('#languageModal .modal-result').removeAttr('value');
  384. $('#languageModal').modal({show: true});
  385. });
  386.  
  387. function onLanguageRemoveClick() {
  388. var tab = $(this).closest('li');
  389. var tabContent = $(this).parent().attr('href');
  390. if($(tab).hasClass('active'))
  391. {
  392. var parent = $(tab).parent();
  393. $(tab).remove();
  394. $(tabContent).remove();
  395. var firstSibling = $(parent).find('li:first-child');
  396. $(firstSibling).addClass('active');
  397. $($('a', firstSibling).attr('href')).addClass('active in');
  398. }
  399. else
  400. {
  401. $(tab).remove();
  402. $(tabContent).remove();
  403. }
  404. return false;
  405. }
  406. $('#descriptionLanguageTabs').on('click', '.icon-remove', onLanguageRemoveClick);
  407. $('#descriptionLanguageTabs .icon-remove').on('click', onLanguageRemoveClick);
  408.  
  409. $("#languageModal").on("shown", function () {$("input:text:visible:first", this).focus();});
  410. $("#selectButton_languageModal").on("click", function(event) {
  411. var selectedLanguageId = $("#languageSelect_languageModal").val();
  412. $("#languageModal .modal-result").attr("value", selectedLanguageId).attr("language", $.globalcatalog.languages[selectedLanguageId]["Name"]).attr("translation", $.globalcatalog.languages[selectedLanguageId]["Translation"]);
  413. $("#languageModal .error-div").hide();});
  414. $("#closeButton_languageModal").on("click", function(event) {
  415. $("#languageModal .modal-result").removeAttr("value"); $("#languageModal .error-div").hide();
  416. });
  417.  
  418. $('#languageModal').bind('hide', function() {onDescriptionLanguageDialogHide(this, '10');});
  419.  
  420.  
  421. $("#okButton_imageModal").on("click", function(event) {
  422. var result = true;
  423. console.log("imageModal dialog CLOSE button pressed.");
  424. // stop event propagation when user clicks on any link (button)
  425. if(!result)
  426. {
  427. event.stopPropagation();
  428. }
  429. else
  430. {
  431. $("#imageModal .error-div").hide();
  432. }
  433. });
  434.  
  435. !function ($) {
  436.  
  437. "use strict"; // jshint ;_;
  438.  
  439. var TimelineWidget = function (element, options) {
  440. this.init("timelineWidget", element, options)
  441. }
  442.  
  443. TimelineWidget.prototype = {
  444.  
  445. constructor: TimelineWidget
  446.  
  447. , init: function (type, element, options) {
  448. // config
  449. this.type = type
  450. this.$element = $(element)
  451. this.id = this.$element.attr("id");
  452. this.options = this.getOptions(options)
  453. this.enabled = true
  454. this.html = ""
  455. //this.data = [];
  456. this.companyId = 9491741;
  457. this.eventTypes = {"1":"addressUpdate","2":"socialLinkUpdate","3":"websiteUpdate","4":"messageNew","5":"messageUpdate","6":"productNew","7":"productUpdate","8":"productPriceChange","9":"productDelete","10":"categoryNew","11":"categoryDelete","12":"companyEvent","13":"serviceNew","14":"serviceUpdate","15":"servicePriceChange","16":"serviceDelete"};
  458. this.userGroups = {"1":"\u516c\u4f17","2":"\u516c\u53f8","3":"\u90e8\u95e8","4":"\u53ea\u6709\u6211","5":"\u4e60\u60ef"};
  459. this.eventType = null
  460. if(this.options.eventType != "undefined")
  461. this.eventType = this.options.eventType
  462. var time = moment();
  463. this.topEventTime = moment("2023-11-15 04:28:53");
  464. this.bottomEventTime = moment("2023-11-15 04:26:16");
  465. this.processedEventTime = null;
  466. this.bottomReached = false;
  467. this.DIRECTION_UP = 1;
  468. this.DIRECTION_DOWN = 2;
  469. this.eventTitles = {"2":"updated social links","3":"updated website","1":"updated address","6":"added a new product","7":"updated product information","8":"changed the price of a product","9":"removed a product","13":"added a new service","14":"updated service information","15":"changed the price of a service","16":"removed a service","12":"announced a new event","10":"added a category","11":"removed a category"};
  470. // console.log("initial reference times: " + moment(this.topEventTime).format("YYYY-MM-DD HH:mm:ss") + ", " + moment(this.bottomEventTime).format("YYYY-MM-DD HH:mm:ss"));
  471.  
  472. // var dt = new Date();
  473. // var time = dt.getHours() + ":" + dt.getMinutes() + ":" + dt.getSeconds();
  474. // this.fetchNews(moment().format("YYYY-MM-DD HH:mm:ss [GMT]ZZ"), 10, this.DIRECTION_DOWN);
  475. console.info(type + " [" + this.$element.attr("id") + "] created");  
  476. }
  477.  
  478. , update: function (direction) {
  479. if(direction == this.DIRECTION_UP)
  480. {
  481. this.topRefresh(this, this.DIRECTION_UP);
  482. }
  483. else
  484. {
  485. this.bottomRefresh(this, this.DIRECTION_DOWN);
  486. }
  487. }
  488. , reset: function () {
  489. var time = moment(moment.utc(new Date()));
  490. this.topEventTime = time;
  491. this.bottomEventTime = null;
  492. this.processedEventTime = null;
  493. this.bottomReached = false;
  494. this.$element.html("");
  495. this.fetchNews(time.format("YYYY-MM-DD HH:mm:ss"), 10, this.DIRECTION_DOWN);
  496. }
  497. , setEventTypes: function(values) {
  498. this.eventType = values;
  499. }
  500. , setCompanies: function(values) {
  501. this.companyId = values;
  502. }
  503. , updateTimeline: function (events, direction) {
  504. var that = this
  505. $.each(events, function(i,item)
  506. {
  507. var time = moment(item.UpdateTime);
  508. if(that.topEventTime == null || that.topEventTime < time)
  509. {
  510. that.topEventTime = time;
  511. console.log("top time: " + moment(that.topEventTime).format("YYYY-MM-DD HH:mm:ss"));
  512. }
  513. else
  514. {
  515. if(direction == that.DIRECTION_UP)
  516. {
  517. console.log("---> exit: top time");
  518. return;
  519. }
  520. }
  521. if(that.bottomEventTime == null || that.bottomEventTime > time)
  522. {
  523. that.bottomEventTime = time;
  524. console.log("bottom time: " + moment(that.bottomEventTime).format("YYYY-MM-DD HH:mm:ss"));
  525. }
  526. else
  527. {
  528. if(direction == that.DIRECTION_DOWN)
  529. {
  530. console.log("---> exit: bottom time");
  531. return;
  532. }
  533. }
  534.  
  535. var html = "";
  536. if(that.eventTypes[item.TypeId] == "addressUpdate")
  537. html = "<div id=\"event" + item.Id + "\" class=\"sociallinkUpdate hidden\">Address update at " + item.UpdateTime + "<br /></div>";
  538. if(that.eventTypes[item.TypeId] == "websiteUpdate")
  539. html = "<div id=\"event" + item.Id + "\" class=\"websiteUpdate hidden\">Website update at " + item.UpdateTime + "<br /></div>";
  540. if(that.eventTypes[item.TypeId] == "socialLinkUpdate")
  541. html = "<div id=\"event" + item.Id + "\"  class=\"sociallinkUpdate hidden\">Social links update at " + item.UpdateTime + "<br /></div>";
  542. if(that.eventTypes[item.TypeId] == "productNew" || that.eventTypes[item.TypeId] == "serviceNew")
  543. html = "<div id=\"event" + item.Id + "\"  class=\"newProduct hidden\">New product added at " + item.UpdateTime + "<br /></div>";
  544. if(that.eventTypes[item.TypeId] == "productPriceChange" || that.eventTypes[item.TypeId] == "servicePriceChange")
  545. html = "<div id=\"event" + item.Id + "\"  class=\"productPriceChange hidden\">Product price changed at " + item.UpdateTime + "<br /></div>";
  546. if(that.eventTypes[item.TypeId] == "companyEvent")
  547. html = "<div id=\"event" + item.Id + "\"  class=\"productPriceChange hidden\">Company event posted at " + item.UpdateTime + "<br /></div>";
  548. //html = html + item.Id + "<br /><br />";
  549. switch(direction)
  550. {
  551. case that.DIRECTION_UP:
  552. $(that.$element).prepend(html);
  553. break;
  554. case that.DIRECTION_DOWN:
  555. $(that.$element).append(html);
  556. break;
  557. }
  558. // http://www.digitoffee.com/programming/get-local-time-utc-using-moment-js/94/
  559. var day = moment(item.UpdateTime).format("MMMM DD, YYYY @ HH:mm");
  560. if(that.eventTypes[item.TypeId] == "socialLinkUpdate")
  561. {
  562. $("#event" + item.Id).sociallinkUpdateEventWidget({
  563. context: {
  564. eventId:item.Id,
  565. eventTypeId:item.TypeId,
  566. companyId:item.CompanyId,
  567. companyName:item.LocalName,
  568. companyIdentifier:item.Identifier,
  569. title:that.eventTitles[item.TypeId],
  570. logoId:item.LogoId,
  571. time:day,
  572. facebookLink:item.Facebook,
  573. twitterLink:item.Twitter,
  574. googlePlusLink:item.GooglePlus,
  575. pinterestLink:item.Pinterest,
  576. youTubeLink:item.YouTube,
  577. instagramLink:item.Instagram,
  578. linkedInLink:item.LinkedIn,
  579. },
  580. }).fadeIn("slow");
  581. }
  582. if(that.eventTypes[item.TypeId] == "websiteUpdate")
  583. $("#event" + item.Id).websiteUpdateEventWidget({
  584. context: {
  585. eventId:item.Id,
  586. eventTypeId:item.TypeId,
  587. companyId:item.CompanyId,
  588. companyName:item.LocalName,
  589. companyIdentifier:item.Identifier,
  590. title:that.eventTitles[item.TypeId],
  591. logoId:item.LogoId,
  592. website:item.Website,
  593. time:day,
  594. },
  595. }).fadeIn("slow");
  596. if(that.eventTypes[item.TypeId] == "addressUpdate")
  597. {
  598. $("#event" + item.Id).addressUpdateEventWidget({
  599. context: {
  600. eventId:item.Id,
  601. eventTypeId:item.TypeId,
  602. companyId:item.CompanyId,
  603. companyName:item.LocalName,
  604. companyIdentifier:item.Identifier,
  605. title:that.eventTitles[item.TypeId],
  606. logoId:item.LogoId,
  607. time:day,
  608. street:item.LocalStreet1,
  609. city:item.LocalCity,
  610. state:item.State,
  611. postalCode:item.PostalCode,
  612. country:item.Country,
  613. latitude:item.Latitude,
  614. longitude:item.Longitude,
  615. },
  616. }).fadeIn("slow");
  617. }
  618. if(that.eventTypes[item.TypeId] == "productNew" || that.eventTypes[item.TypeId] == "serviceNew")
  619. {
  620. var productName = (item.ChineseSimplified == null ? item.English : item.ChineseSimplified);
  621. $("#event" + item.Id).productEventWidget({
  622. context: {
  623. eventId:item.Id,
  624. eventTypeId:item.TypeId,
  625. companyId:item.CompanyId,
  626. companyName:item.LocalName,
  627. companyIdentifier:item.Identifier,
  628. title:that.eventTitles[item.TypeId],
  629. logoId:item.LogoId,
  630. name:productName,
  631. productId:item.ProductId,
  632. productUrl:stringToUrl(productName, "-", 240),
  633. price:new Number(that.removeCents(item.Price)).toLocaleString(),
  634. symbol:item.Symbol,
  635. currency:item.IsoAlphabeticCode,
  636. imageId:item.ImageId,
  637. time:day,
  638. },
  639. }).fadeIn("slow");
  640. }
  641. if(that.eventTypes[item.TypeId] == "productPriceChange" || that.eventTypes[item.TypeId] == "servicePriceChange")
  642. {
  643. var productName = (item.ChineseSimplified == null ? item.English : item.ChineseSimplified);
  644. $("#event" + item.Id).productEventWidget({
  645. context: {
  646. eventId:item.Id,
  647. eventTypeId:item.TypeId,
  648. companyId:item.CompanyId,
  649. companyName:item.LocalName,
  650. companyIdentifier:item.Identifier,
  651. title:that.eventTitles[item.TypeId],
  652. logoId:item.LogoId,
  653. name:productName,
  654. productId:item.ProductId,
  655. productUrl:stringToUrl(productName, "-", 240),
  656. price:new Number(that.removeCents(item.ProductNewPrice)).toLocaleString(),
  657. oldPrice:new Number(that.removeCents(item.ProductOldPrice)).toLocaleString(),
  658. symbol:item.Symbol,
  659. currency:item.IsoAlphabeticCode,
  660. imageId:item.ImageId,
  661. time:day,
  662. },
  663. }).fadeIn("slow");
  664. }
  665. if(that.eventTypes[item.TypeId] == "companyEvent")
  666. $("#event" + item.Id).companyEventWidget({
  667. context: {
  668. eventId:item.Id,
  669. eventTypeId:item.TypeId,
  670. companyId:item.CompanyId,
  671. companyName:item.LocalName,
  672. companyIdentifier:item.Identifier,
  673. logoId:item.LogoId,
  674. title:that.eventTitles[item.TypeId],
  675. imageId:item.CompanyEventImageId,
  676. start:item.CompanyEventStartTime,
  677. name:item.CompanyEventName,
  678. description:item.CompanyEventDescription,
  679. time:day,
  680. },
  681. }).fadeIn("slow");
  682. });
  683. }
  684. , removeCents: function (price) {
  685. var floatPrice = parseFloat(price)
  686. var intPrice = floatPrice.toFixed(0)
  687. if(intPrice < floatPrice)
  688. return floatPrice
  689. else
  690. return intPrice
  691. }
  692. , fetchNews: function (time, items, direction) {
  693. var that = this
  694. var types = null
  695. var companies = 9491741
  696. if(this.eventType != null)
  697. if($.isArray(this.eventType))
  698. types = this.eventType.join()
  699. else
  700. types = this.eventType
  701. if(this.companyId != null)
  702. if($.isArray(this.companyId))
  703. companies = this.companyId.join()
  704. else
  705. companies = this.companyId
  706. $.ajax({
  707. type: "POST",
  708. data: {t: time, i: items, c: companies, d: direction, p: types},
  709. url: "/networking/timeline",
  710. success: function(data) {
  711. if (data == "GC_LOGIN_REQUIRED") {
  712. window.location.href = "/login";
  713. }
  714. else
  715. {
  716. var obj = $.parseJSON(data);
  717. if(obj.status=="success") {
  718. that.processedEventTime = moment(obj.time);
  719. console.log("received: " + obj.msg.length);
  720. that.updateTimeline(obj.msg, direction);
  721. }
  722. }
  723. }
  724. })
  725. }
  726. , topRefresh: function (source, pos) {
  727. //MMMM Do YYYY, h:mm:ss a
  728. console.log("times: " + moment(source.processedEventTime).format("YYYY-MM-DD HH:mm:ss") + ", " + moment(source.topEventTime).format("YYYY-MM-DD HH:mm:ss"));
  729. if(source.topEventTime != null && source.processedEventTime != source.topEventTime)
  730. {
  731. //console.log(source.processedEventTime == source.topEventTime);
  732. source.fetchNews(moment(source.topEventTime).format("YYYY-MM-DD HH:mm:ss"), 10, source.DIRECTION_UP);
  733. }
  734. }
  735. , bottomRefresh: function (source, pos) {
  736. //MMMM Do YYYY, h:mm:ss a
  737. //console.log("companyId:  " + source.companyId);
  738. console.log("times: " + moment(source.processedEventTime).format("YYYY-MM-DD HH:mm:ss") + ", " + moment(source.bottomEventTime).format("YYYY-MM-DD HH:mm:ss"));
  739. if(source.bottomEventTime != null && source.processedEventTime != source.bottomEventTime)
  740. {
  741. //console.log(source.processedEventTime == source.bottomEventTime);
  742. source.fetchNews(moment(source.bottomEventTime).format("YYYY-MM-DD HH:mm:ss"), 10, source.DIRECTION_DOWN);
  743. }
  744. }
  745. , getOptions: function (options) {
  746. options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
  747. return options
  748. }
  749.  
  750. , enable: function () {
  751. this.enabled = true
  752. }
  753.  
  754. , disable: function () {
  755. this.enabled = false
  756. }
  757.  
  758. , toggleEnabled: function () {
  759. this.enabled = !this.enabled
  760. }
  761.  
  762. , destroy: function () {
  763. this.hide().$element.off( + this.type).removeData(this.type)
  764. }
  765. }
  766. var old = $.fn.timelineWidget
  767.  
  768. $.fn.timelineWidget = function ( option ) {
  769. return this.each(function () {
  770.  var $this = $(this)
  771. , data = $this.data("timelineWidget")
  772. , options = typeof option == "object" && option
  773.  if (!data) $this.data("timelineWidget", (data = new TimelineWidget(this, options)))
  774.  if (typeof option == "string") data[option]()
  775. })
  776. }
  777.  
  778. $.fn.timelineWidget.Constructor = TimelineWidget
  779. $.fn.timelineWidget.defaults = {
  780. selector: false
  781. , context: ""
  782. }
  783.  
  784. $.fn.timelineWidget.noConflict = function () {
  785. $.fn.timelineWidget = old
  786. return this
  787. }
  788.  
  789. // typeahead - company name filter
  790. var typeaheadItems = [];
  791. var userId = null;
  792. $(".typeahead", $(content)).typeahead({
  793. delay: 0,
  794. minLength: 1,
  795. showAnim: "fold",
  796. select: function(event, item){ $("#companySearchBar").val(item.item.value); $(this).parents("form").submit(); },
  797. source: function(query, process) {
  798. //alert(query);
  799. $.getJSON("/company/autoCompleteFollowedCompany",
  800. {
  801. q: extractLast(query), uId: userId
  802. },
  803. function(data) {
  804. if(data == undefined) {
  805. return;
  806. }
  807. var newData = [];
  808. $.each(data, function(){
  809. if(this.label != undefined)
  810. {
  811. newData.push(this.label);
  812. typeaheadItems[this.label] = this.value;
  813. }
  814. });  
  815. return process(newData);
  816. }
  817. );
  818. },
  819. matcher: function(item) {return ~item.toLowerCase().indexOf(this.query.toLowerCase());},
  820. highlighter: function (item) {
  821.  var query = this.query.replace(/[\-\[\]{}()*+?.,\\^$|#\s]/g, "\$&")
  822.  return "<strong>" + item.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + query + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "</strong>$1<strong>") + "</strong>"
  823. },
  824. updater: function (selectedName) {
  825. var selectedValue = typeaheadItems[selectedName];
  826. var element = $("#companySearchBar").parent().parent().parent();
  827. if(companyFilters.indexOf(selectedValue) == -1)
  828. {
  829. $(element).find(".event-filter-choices").show().append(closeElement("company", selectedValue, selectedName));
  830. companyFilters.push(selectedValue);
  831. if(companyFilters.length > 0)
  832. $("#timelineWidget").data("timelineWidget").setCompanies(companyFilters);
  833. else
  834. $("#timelineWidget").data("timelineWidget").setCompanies(null);
  835. $("#timelineWidget").data("timelineWidget").reset();
  836. }
  837. return "";
  838. },
  839. });
  840. $(document.body).on("click", ".filter-choice-close", function() {
  841. var closeElement = $(this).parent();
  842. if($(closeElement).hasClass("filter-event"))
  843. {
  844. var eventType = $(closeElement).attr("data-id");
  845. var index = eventFilters.indexOf(eventType);
  846. if(index != -1)
  847. eventFilters.splice(index, 1);
  848. $("#eventType").focus();
  849. if(eventFilters.length > 0)
  850. $("#timelineWidget").data("timelineWidget").setEventTypes(eventFilters);
  851. else
  852. $("#timelineWidget").data("timelineWidget").setEventTypes(null);
  853. $("#timelineWidget").data("timelineWidget").reset();
  854. }
  855. if($(closeElement).hasClass("filter-company"))
  856. {
  857. var eventType = $(closeElement).attr("data-id");
  858. var index = companyFilters.indexOf(eventType);
  859. if(index != -1)
  860. companyFilters.splice(index, 1);
  861. $("#companySearchBar").focus();
  862. if(companyFilters.length > 0)
  863. $("#timelineWidget").data("timelineWidget").setCompanies(companyFilters);
  864. else
  865. $("#timelineWidget").data("timelineWidget").setCompanies(null);
  866. $("#timelineWidget").data("timelineWidget").reset();
  867. }
  868. $(closeElement).remove();
  869. // TODO: refresh newsfeed / timeline with new filters
  870. });
  871. // create timeline
  872. var timelineWidget = $("#timelineWidget").timelineWidget({});
  873. }(window.jQuery)
  874.  
  875. !function ($) {
  876.  
  877. "use strict"; // jshint ;_;
  878.  
  879. var TemplateWidget = function (element, options) {
  880. this.init("templateWidget", element, options)
  881. }
  882.  
  883. TemplateWidget.prototype = {
  884.  
  885. constructor: TemplateWidget
  886.  
  887. , init: function (type, element, options) {
  888. // config
  889. this.type = type
  890. this.$element = $(element)
  891. this.id = this.$element.attr("id");
  892. this.options = this.getOptions(options)
  893. this.enabled = true
  894. this.context = this.options.context
  895. this.html = ""
  896. this.htmlTemplate = ""
  897. //this.data = [];
  898. this.preRendered = this.context.preRendered
  899. if(this.preRendered !== "undefined" && !this.preRendered)
  900. {
  901. this.template()
  902. this.populate()
  903. this.render()
  904. }
  905. console.info(type + " [" + this.$element.attr("id") + "] created");  
  906. }
  907. , template: function() {
  908. this.htmlTemplate = "<div id=\"yw7\"><div class=\"post sociallinkUpdateEventWidget frame mediumRoundCorners smallShadow\"><div class=\"post-header\"><a href=\"/{{companyIdentifier}}\"><div class=\"companyLogo\" style=\"background: url(https://globalcatalog.com/asset/showThumb/{{logoId}}) center center no-repeat; background-size: contain;\"></div></a><div class=\"content\" style=\"display: inline-block\"><h3><a href=\"/{{companyIdentifier}}\">{{companyName}}</a> {{title}}</h3></div></div><div class=\"post-body\"><a id=\"socialMediaLinkFacebook-{{eventId}}\" href=\"{{facebookLink}}\" target=\"_blank\" class=\"socialMediaLinkFacebook icons-socialmedia icon-facebook inactive\"></a><a id=\"socialMediaLinkTwitter-{{eventId}}\" href=\"{{twitterLink}}\" target=\"_blank\" class=\"socialMediaLinkTwitter icons-socialmedia icon-twitter inactive\"></a><a id=\"socialMediaLinkLinkedIn-{{eventId}}\" href=\"{{linkedInLink}}\" target=\"_blank\" class=\"socialMediaLinkLinkedIn icons-socialmedia icon-linkedin inactive\"></a><a id=\"socialMediaLinkYouTube-{{eventId}}\" href=\"{{youTubeLink}}\" target=\"_blank\" class=\"socialMediaLinkYouTube icons-socialmedia icon-youtube inactive\"></a><a id=\"socialMediaLinkInstagram-{{eventId}}\" href=\"{{instagramLink}}\" target=\"_blank\" class=\"socialMediaLinkInstagram icons-socialmedia icon-instagram inactive\"></a><a id=\"socialMediaLinkPinterest-{{eventId}}\" href=\"{{pinterestLink}}\" target=\"_blank\" class=\"socialMediaLinkPinterest icons-socialmedia icon-pinterest inactive\"></a></div><div class=\"post-footer\"></div></div></div>"
  909. }
  910. , populate: function() {
  911. var that = this
  912. this.html = this.htmlTemplate
  913. $.each(this.context, function(i,item) {
  914. console.log("replacing [" + i + "] with [" + item + "]")
  915. var find = "{{" + i + "}}"
  916. var re = new RegExp(find, "g");
  917. that.html = that.html.replace(re, item)
  918. })
  919. }
  920. , render: function() {
  921. this.$element.html(this.html)
  922. }
  923. , getOptions: function (options) {
  924. options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
  925. return options
  926. }
  927.  
  928. , enable: function () {
  929. this.enabled = true
  930. }
  931.  
  932. , disable: function () {
  933. this.enabled = false
  934. }
  935.  
  936. , toggleEnabled: function () {
  937. this.enabled = !this.enabled
  938. }
  939.  
  940. , destroy: function () {
  941. this.hide().$element.off( + this.type).removeData(this.type)
  942. }
  943. }
  944. var old = $.fn.templateWidget
  945.  
  946. $.fn.templateWidget = function ( option ) {
  947. return this.each(function () {
  948.  var $this = $(this)
  949. , data = $this.data("templateWidget")
  950. , options = typeof option == "object" && option
  951.  if (!data) $this.data("templateWidget", (data = new TemplateWidget(this, options)))
  952.  if (typeof option == "string") data[option]()
  953. })
  954. }
  955.  
  956. $.fn.templateWidget.Constructor = TemplateWidget
  957. $.fn.templateWidget.defaults = {
  958. selector: false
  959. , context: ""
  960. }
  961.  
  962. $.fn.templateWidget.noConflict = function () {
  963. $.fn.templateWidget = old
  964. return this
  965. }
  966.  
  967. }(window.jQuery)
  968.  
  969. !function ($) {
  970.  
  971. "use strict"; // jshint ;_;
  972.  
  973. var TimelineEventWidget = function (element, options) {
  974. this.init("timelineEventWidget", element, options)
  975. }
  976.  
  977. TimelineEventWidget.prototype = $.extend({}, $.fn.templateWidget.Constructor.prototype, {
  978.  
  979. constructor: TimelineEventWidget
  980.  
  981. , init: function (type, element, options) {
  982. $.fn.templateWidget.Constructor.prototype.init.call(this, type, element, options)
  983. this.localizeTimestamps()
  984. }
  985. , localizeTimestamps: function() {
  986. var that = this
  987. // utc server time to local time
  988. $.each($(".utcTime", this.$element), function(i, item) {
  989. $(item).html(that.timeToLocal($(item).html(), "MMMM DD, YYYY @ HH:mm"))
  990. })
  991. }
  992. // convert utc time to local time
  993. , timeToLocal: function(utcTime, format) {
  994. var timeStamp = moment.utc(utcTime, format).toDate()
  995. return moment(timeStamp).format(format)
  996. }
  997. })
  998. var old = $.fn.timelineEventWidget
  999.  
  1000. $.fn.timelineEventWidget = function ( option ) {
  1001. return this.each(function () {
  1002.  var $this = $(this)
  1003. , data = $this.data("timelineEventWidget")
  1004. , options = typeof option == "object" && option
  1005.  if (!data) $this.data("timelineEventWidget", (data = new TimelineEventWidget(this, options)))
  1006.  if (typeof option == "string") data[option]()
  1007. })
  1008. }
  1009.  
  1010. $.fn.timelineEventWidget.Constructor = TimelineEventWidget
  1011. $.fn.timelineEventWidget.defaults = {
  1012. selector: false
  1013. , context: ""
  1014. }
  1015.  
  1016. $.fn.timelineEventWidget.noConflict = function () {
  1017. $.fn.timelineEventWidget = old
  1018. return this
  1019. }
  1020.  
  1021. //
  1022. // menu callbacks
  1023. //
  1024. function parseMenuItemData(item) {
  1025. var data = {}
  1026. $.each($(item).parent().get(0).attributes, function() {
  1027. //console.log("---> attribute: " + this.name + " = " + this.value)
  1028. if(this.name.startsWith("data-"))
  1029. data[this.name.replace("data-", "").replace(/-/g, " ").toTitleCase().replace(/\s+/g, "")] = this.value
  1030. })
  1031. return data
  1032. }
  1033. $(document).on("click", ".menu-delete", function(event) {
  1034. event.preventDefault();
  1035. console.log("event clicked: " + $(event.target).attr("data-event-id"));
  1036. var data = parseMenuItemData(event.target);
  1037. var url = "https://globalcatalog.com/networking/delete";
  1038. var eventElement = $("#event" + data["EventId"]);
  1039. var successCallback = function(data) {
  1040. $(eventElement)
  1041. .stop(true, true)
  1042. .animate({
  1043. height:"toggle",
  1044. opacity:"toggle"
  1045. },500, function() {$(eventElement).remove()});
  1046. }
  1047. ajaxRequest(url, data, successCallback);
  1048. })
  1049. $(document).on("click", ".menu-unfollow", function(event) {
  1050. event.preventDefault();
  1051. console.log("event clicked: " + $(event.target).attr("data-event-id"));
  1052. var data = parseMenuItemData(event.target)
  1053. var url = "https://globalcatalog.com/networking/unfollow";
  1054. var successCallback = function(data) {
  1055. // unfollow and reload all events in the timeline / newsfeed
  1056. $("#timelineWidget").data("timelineWidget").reset();
  1057. }
  1058. ajaxRequest(url, data, successCallback);
  1059. })
  1060. }(window.jQuery)
  1061.  
  1062. !function ($) {
  1063.  
  1064. "use strict"; // jshint ;_;
  1065.  
  1066. var SociallinkUpdateEventWidget = function (element, options) {
  1067. this.init("sociallinkUpdateEventWidget", element, options)
  1068. }
  1069.  
  1070. SociallinkUpdateEventWidget.prototype = $.extend({}, $.fn.timelineEventWidget.Constructor.prototype, {
  1071.  
  1072. constructor: SociallinkUpdateEventWidget
  1073.  
  1074. , init: function (type, element, options) {
  1075. $.fn.timelineEventWidget.Constructor.prototype.init.call(this, type, element, options)
  1076. this.activeLinks()
  1077. }
  1078. , activeLinks: function() {
  1079. var fbLink = $(".socialMediaLinkFacebook", this.$element)
  1080. if($(fbLink).length > 0 && $(fbLink).attr("href").length > 0)
  1081. $(fbLink).removeClass("inactive");
  1082. var twLink = $(".socialMediaLinkTwitter", this.$element)
  1083. if($(twLink).length > 0 && $(twLink).attr("href").length > 0)
  1084. $(twLink).removeClass("inactive");
  1085. var gpLink = $(".socialMediaLinkGooglePlus", this.$element)
  1086. if($(gpLink).length > 0 && $(gpLink).attr("href").length > 0)
  1087. $(gpLink).removeClass("inactive");
  1088. var ptLink = $(".socialMediaLinkPinterest", this.$element)
  1089. if($(ptLink).length > 0 && $(ptLink).attr("href").length > 0)
  1090. $(ptLink).removeClass("inactive");
  1091. var ytLink = $(".socialMediaLinkYouTube", this.$element)
  1092. if($(ytLink).length > 0 && $(ytLink).attr("href").length > 0)
  1093. $(ytLink).removeClass("inactive");
  1094. var igLink = $(".socialMediaLinkInstagram", this.$element)
  1095. if($(igLink).length > 0 && $(igLink).attr("href").length > 0)
  1096. $(igLink).removeClass("inactive");
  1097. var inLink = $(".socialMediaLinkLinkedIn", this.$element)
  1098. if($(inLink).length > 0 && $(inLink).attr("href").length > 0)
  1099. $(inLink).removeClass("inactive"); }
  1100. , template: function() {
  1101. this.htmlTemplate = "<div id=\"yw7\"><div class=\"post sociallinkUpdateEventWidget frame mediumRoundCorners smallShadow\"><div class=\"post-header\"><a href=\"/{{companyIdentifier}}\"><div class=\"companyLogo\" style=\"background: url(https://globalcatalog.com/asset/showThumb/{{logoId}}) center center no-repeat; background-size: contain;\"></div></a><div class=\"content\" style=\"display: inline-block\"><h3><a href=\"/{{companyIdentifier}}\">{{companyName}}</a> {{title}}</h3></div></div><div class=\"post-body\"><a id=\"socialMediaLinkFacebook-{{eventId}}\" href=\"{{facebookLink}}\" target=\"_blank\" class=\"socialMediaLinkFacebook icons-socialmedia icon-facebook inactive\"></a><a id=\"socialMediaLinkTwitter-{{eventId}}\" href=\"{{twitterLink}}\" target=\"_blank\" class=\"socialMediaLinkTwitter icons-socialmedia icon-twitter inactive\"></a><a id=\"socialMediaLinkLinkedIn-{{eventId}}\" href=\"{{linkedInLink}}\" target=\"_blank\" class=\"socialMediaLinkLinkedIn icons-socialmedia icon-linkedin inactive\"></a><a id=\"socialMediaLinkYouTube-{{eventId}}\" href=\"{{youTubeLink}}\" target=\"_blank\" class=\"socialMediaLinkYouTube icons-socialmedia icon-youtube inactive\"></a><a id=\"socialMediaLinkInstagram-{{eventId}}\" href=\"{{instagramLink}}\" target=\"_blank\" class=\"socialMediaLinkInstagram icons-socialmedia icon-instagram inactive\"></a><a id=\"socialMediaLinkPinterest-{{eventId}}\" href=\"{{pinterestLink}}\" target=\"_blank\" class=\"socialMediaLinkPinterest icons-socialmedia icon-pinterest inactive\"></a></div><div class=\"post-footer\"></div></div></div>"
  1102. }
  1103. })
  1104. var old = $.fn.sociallinkUpdateEventWidget
  1105.  
  1106. $.fn.sociallinkUpdateEventWidget = function ( option ) {
  1107. return this.each(function () {
  1108.  var $this = $(this)
  1109. , data = $this.data("sociallinkUpdateEventWidget")
  1110. , options = typeof option == "object" && option
  1111.  if (!data) $this.data("sociallinkUpdateEventWidget", (data = new SociallinkUpdateEventWidget(this, options)))
  1112.  if (typeof option == "string") data[option]()
  1113. })
  1114. }
  1115.  
  1116. $.fn.sociallinkUpdateEventWidget.Constructor = SociallinkUpdateEventWidget
  1117. $.fn.sociallinkUpdateEventWidget.defaults = {
  1118. selector: false
  1119. , context: ""
  1120. }
  1121.  
  1122. $.fn.sociallinkUpdateEventWidget.noConflict = function () {
  1123. $.fn.sociallinkUpdateEventWidget = old
  1124. return this
  1125. }
  1126.  
  1127. }(window.jQuery)
  1128.  
  1129. !function ($) {
  1130. $("#yw0").sociallinkUpdateEventWidget({
  1131. context:{"id":"sociallinkUpdateEventWidget","scriptOnly":true,"eventName":"SociallinkUpdate"},
  1132. });
  1133. }(window.jQuery)
  1134.  
  1135. !function ($) {
  1136.  
  1137. "use strict"; // jshint ;_;
  1138.  
  1139. var WebsiteUpdateEventWidget = function (element, options) {
  1140. this.init("websiteUpdateEventWidget", element, options)
  1141. }
  1142.  
  1143. WebsiteUpdateEventWidget.prototype = $.extend({}, $.fn.timelineEventWidget.Constructor.prototype, {
  1144.  
  1145. constructor: WebsiteUpdateEventWidget
  1146.  
  1147. , init: function (type, element, options) {
  1148. $.fn.timelineEventWidget.Constructor.prototype.init.call(this, type, element, options)
  1149. }
  1150. , template: function() {
  1151. this.htmlTemplate = "<div id=\"yw6\"><div class=\"post websiteUpdateEventWidget frame mediumRoundCorners smallShadow\"><div class=\"post-header\"><a href=\"/{{companyIdentifier}}\"><div class=\"companyLogo\" style=\"background: url(https://globalcatalog.com/asset/showThumb/{{logoId}}) center center no-repeat; background-size: contain;\"></div></a><div class=\"content\" style=\"display: inline-block\"><h3><a href=\"/{{companyIdentifier}}\">{{companyName}}</a> {{title}}</h3></div></div><div class=\"post-body\"><h2>Visit our website @ <a href=\"{{website}}\">{{website}}</a></h2></div><div class=\"post-footer\"></div></div></div>"
  1152. }
  1153. })
  1154. var old = $.fn.websiteUpdateEventWidget
  1155.  
  1156. $.fn.websiteUpdateEventWidget = function ( option ) {
  1157. return this.each(function () {
  1158.  var $this = $(this)
  1159. , data = $this.data("websiteUpdateEventWidget")
  1160. , options = typeof option == "object" && option
  1161.  if (!data) $this.data("websiteUpdateEventWidget", (data = new WebsiteUpdateEventWidget(this, options)))
  1162.  if (typeof option == "string") data[option]()
  1163. })
  1164. }
  1165.  
  1166. $.fn.websiteUpdateEventWidget.Constructor = WebsiteUpdateEventWidget
  1167. $.fn.websiteUpdateEventWidget.defaults = {
  1168. selector: false
  1169. , context: ""
  1170. }
  1171.  
  1172. $.fn.websiteUpdateEventWidget.noConflict = function () {
  1173. $.fn.websiteUpdateEventWidget = old
  1174. return this
  1175. }
  1176.  
  1177. }(window.jQuery)
  1178.  
  1179. !function ($) {
  1180. $("#yw1").websiteUpdateEventWidget({
  1181. context:{"id":"websiteUpdateEventWidget","scriptOnly":true,"eventName":"WebsiteUpdate"},
  1182. });
  1183. }(window.jQuery)
  1184.  
  1185. !function ($) {
  1186.  
  1187. "use strict"; // jshint ;_;
  1188.  
  1189. var AddressUpdateEventWidget = function (element, options) {
  1190. this.init("addressUpdateEventWidget", element, options)
  1191. }
  1192.  
  1193. AddressUpdateEventWidget.prototype = $.extend({}, $.fn.timelineEventWidget.Constructor.prototype, {
  1194.  
  1195. constructor: AddressUpdateEventWidget
  1196.  
  1197. , init: function (type, element, options) {
  1198. $.fn.timelineEventWidget.Constructor.prototype.init.call(this, type, element, options);
  1199. this.street = this.context.street
  1200. this.city = this.context.city
  1201. this.state = this.context.state
  1202. this.postalCode = this.context.postalCode
  1203. this.country = this.context.country
  1204. this.latitude = this.context.latitude
  1205. this.longitude = this.context.longitude
  1206. // NOTE: the display of map might have something to do with the timing of display (maybe the map-canvas element does not exist yet?)
  1207. // if($("#map-canvas-" + this.options.context.eventId).length > 0)
  1208. // this.showMap()
  1209. }
  1210. , template: function() {
  1211. this.htmlTemplate = "<div id=\"yw5\"><div class=\"post addressUpdateEventWidget frame mediumRoundCorners smallShadow\"><div class=\"post-header\"><a href=\"/{{companyIdentifier}}\"><div class=\"companyLogo\" style=\"background: url(https://globalcatalog.com/asset/showThumb/{{logoId}}) center center no-repeat; background-size: contain;\"></div></a><div class=\"content\" style=\"display: inline-block\"><h3><a href=\"/{{companyIdentifier}}\">{{companyName}}</a> {{title}}</h3></div></div><div class=\"post-body\"><p>Our new location address: </p><h4 class=\"newAddress\">{{street}}, {{city}}, {{state}}, {{postalCode}}, {{country}}</h4></div><div class=\"post-footer\"></div></div></div>"
  1212. }
  1213. , showMap: function () {
  1214. var latitude = -34.397
  1215. var longitude = 150.644
  1216. if(this.latitude != null && this.longitude)
  1217. {
  1218. latitude = this.latitude
  1219. longitude = this.longitude
  1220. }
  1221. try
  1222. {
  1223. var latlng = new google.maps.LatLng(latitude, longitude);
  1224. window.geocoder = new google.maps.Geocoder();
  1225. window.mapOptions = {
  1226.  center: latlng,
  1227.  zoom: 15,
  1228.  mapTypeId: google.maps.MapTypeId.ROADMAP
  1229. };
  1230. var address = this.street + ","
  1231. if(this.state != null)
  1232. address = address + this.state + ","
  1233. if(this.postalCode != null)
  1234. address = address + this.postalCode + ","
  1235. address = address + this.country
  1236. loadMap(geocoder, mapOptions, address, "map-canvas-" + this.options.context.eventId);
  1237. }
  1238. catch(e)
  1239. {
  1240. console.log("google maps not available");
  1241. $(".map-canvas", this.element).html("<span class=\"unavailable\">We are sorry!<br />The map is not available.</span>");
  1242. }
  1243. }
  1244. })
  1245. var old = $.fn.addressUpdateEventWidget
  1246.  
  1247. $.fn.addressUpdateEventWidget = function ( option ) {
  1248. return this.each(function () {
  1249.  var $this = $(this)
  1250. , data = $this.data("addressUpdateEventWidget")
  1251. , options = typeof option == "object" && option
  1252.  if (!data) $this.data("addressUpdateEventWidget", (data = new AddressUpdateEventWidget(this, options)))
  1253.  if (typeof option == "string") data[option]()
  1254. })
  1255. }
  1256.  
  1257. $.fn.addressUpdateEventWidget.Constructor = AddressUpdateEventWidget
  1258. $.fn.addressUpdateEventWidget.defaults = {
  1259. selector: false
  1260. , context: ""
  1261. }
  1262.  
  1263. $.fn.addressUpdateEventWidget.noConflict = function () {
  1264. $.fn.addressUpdateEventWidget = old
  1265. return this
  1266. }
  1267.  
  1268. }(window.jQuery)
  1269.  
  1270. !function ($) {
  1271. $("#yw2").addressUpdateEventWidget({
  1272. context:{"id":"addressUpdateEventWidget","scriptOnly":true,"eventName":"AddressUpdate"},
  1273. });
  1274. }(window.jQuery)
  1275.  
  1276. !function ($) {
  1277.  
  1278. "use strict"; // jshint ;_;
  1279.  
  1280. var ProductEventWidget = function (element, options) {
  1281. this.init("productEventWidget", element, options)
  1282. }
  1283.  
  1284. ProductEventWidget.prototype = $.extend({}, $.fn.timelineEventWidget.Constructor.prototype, {
  1285.  
  1286. constructor: ProductEventWidget
  1287.  
  1288. , init: function (type, element, options) {
  1289. switch(parseInt(options.context.eventTypeId))
  1290. {
  1291. case 6:
  1292. case 7:
  1293. case 8:
  1294. case 9:
  1295. options.context["typeAbbrev"] = "pro";
  1296. break;
  1297. case 13:
  1298. case 14:
  1299. case 15:
  1300. case 16:
  1301. options.context["typeAbbrev"] = "ser";
  1302. break;
  1303. }
  1304. $.fn.timelineEventWidget.Constructor.prototype.init.call(this, type, element, options)
  1305. this.showPriceChange()
  1306. }
  1307. , showPriceChange: function() {
  1308. var currentPrice = parseFloat(this.options.context.price)
  1309. // hide price tag if price not set or 0
  1310. if(currentPrice <= 0)
  1311. {
  1312. $(".product-price", this.$element).addClass("hidden");
  1313. }
  1314. else
  1315. {
  1316. $(".product-price", this.$element).removeClass("hidden");
  1317. }
  1318. // do not show price change if old price not defined
  1319. if(typeof this.options.context.oldPrice !== "undefined")
  1320. {
  1321. var oldPrice = parseFloat(this.options.context.oldPrice)
  1322. if(oldPrice > 0 && currentPrice > 0)
  1323. {
  1324. $(".product-price-original", this.$element).show()
  1325. if(currentPrice < oldPrice)
  1326. {
  1327. //console.log(new Number(100000).toLocaleString())
  1328. $(".product-price-change", this.$element).find(".change").html("-" + ((oldPrice - currentPrice) / oldPrice * 100).toFixed(0))
  1329. $(".product-price-change", this.$element).show()
  1330. }
  1331. }
  1332. }
  1333. }
  1334. , template: function() {
  1335. this.htmlTemplate = "<div id=\"yw3\"><div class=\"post productEventWidget frame mediumRoundCorners smallShadow\"><div class=\"post-header\"><a href=\"/{{companyIdentifier}}\"><div class=\"companyLogo\" style=\"background: url(https://globalcatalog.com/asset/showThumb/{{logoId}}) center center no-repeat; background-size: contain;\"></div></a><div class=\"content\" style=\"display: inline-block\"><h3><a href=\"/{{companyIdentifier}}\">{{companyName}}</a> {{title}}</h3></div></div><div class=\"post-body\"><div class=\"product\"><div class=\"product-image\"><div class=\"product-price hidden\"><div class=\"product-price-original hidden\"><sup class=\"symbol\">{{symbol}}</sup><span class=\"value\">{{oldPrice}}</span><sup class=\"units\">{{currency}}</sup></div><h2><sup class=\"symbol\">{{symbol}}</sup><span class=\"value\">{{price}}</span><sup class=\"units\">{{currency}}</sup></h2></div><div class=\"product-price-change hidden\"><span class=\"onsale\">SALE</span><span class=\"value change\"></span><sup>%</sup></div><a href=\"/{{companyIdentifier}}/{{productUrl}}-{{typeAbbrev}}{{productId}}\"><img src=\"/asset/showImage/{{imageId}}\" /></a></div><div class=\"product-text\"><div class=\"product-name\"><a href=\"/{{companyIdentifier}}/{{productUrl}}-{{typeAbbrev}}{{productId}}\"><h2>{{name}}</h2></a></div></div></div></div><div class=\"post-footer\"></div></div></div>"
  1336. }
  1337. })
  1338. var old = $.fn.productEventWidget
  1339.  
  1340. $.fn.productEventWidget = function ( option ) {
  1341. return this.each(function () {
  1342.  var $this = $(this)
  1343. , data = $this.data("productEventWidget")
  1344. , options = typeof option == "object" && option
  1345.  if (!data) $this.data("productEventWidget", (data = new ProductEventWidget(this, options)))
  1346.  if (typeof option == "string") data[option]()
  1347. })
  1348. }
  1349.  
  1350. $.fn.productEventWidget.Constructor = ProductEventWidget
  1351. $.fn.productEventWidget.defaults = {
  1352. selector: false
  1353. , context: ""
  1354. }
  1355.  
  1356. $.fn.productEventWidget.noConflict = function () {
  1357. $.fn.productEventWidget = old
  1358. return this
  1359. }
  1360.  
  1361. }(window.jQuery)
  1362.  
  1363. !function ($) {
  1364. $("#yw3").productEventWidget({
  1365. context:{"id":"productEventWidget","scriptOnly":true,"typeAbbrev":"pro","eventName":"Product"},
  1366. });
  1367. }(window.jQuery)
  1368.  
  1369. !function ($) {
  1370. "use strict"; // jshint ;_;
  1371.  
  1372. var CompanyEventWidget = function (element, options) {
  1373. this.init("companyEventWidget", element, options)
  1374. }
  1375.  
  1376. CompanyEventWidget.prototype = $.extend({}, $.fn.timelineEventWidget.Constructor.prototype, {
  1377.  
  1378. constructor: CompanyEventWidget
  1379.  
  1380. , init: function (type, element, options) {
  1381. $.fn.timelineEventWidget.Constructor.prototype.init.call(this, type, element, options)
  1382. var imageLink = $("#event" + this.options.context.eventId + "-ImageLink");
  1383. if(this.options.context.imageId !== "undefined" && this.options.context.imageId !== null)
  1384. {
  1385. $("img", imageLink).attr("src", "/asset/showImage/" + this.options.context.imageId);
  1386. $(imageLink).show()
  1387. $(imageLink).on("click", function() {
  1388. $("#imageModal img").attr("src", $("img", this).attr("src"));
  1389. $("#imageModal").modal("show");
  1390. return false;
  1391. });
  1392. }
  1393. }
  1394. , template: function() {
  1395. this.htmlTemplate = "<div id=\"yw4\"><div class=\"post companyEventWidget frame mediumRoundCorners smallShadow\"><div class=\"post-header\"><a href=\"/{{companyIdentifier}}\"><div class=\"companyLogo\" style=\"background: url(https://globalcatalog.com/asset/showThumb/{{logoId}}) center center no-repeat; background-size: contain;\"></div></a><div class=\"content\" style=\"display: inline-block\"><h3><a href=\"/{{companyIdentifier}}\">{{companyName}}</a> {{title}}</h3></div></div><div class=\"post-body\"><div class=\"product\"><div class=\"product-image\"><a id=\"event{{eventId}}-ImageLink\" class=\"hidden\" href=\"\"><img src=\"\" /></a></div><div class=\"product-text\"><div class=\"product-name\"><h2>{{name}}</h2></div><div class=\"more product-description\"><p>{{description}}</p></div></div></div></div><div class=\"post-footer\"></div></div></div>"
  1396. }
  1397. })
  1398. var old = $.fn.companyEventWidget
  1399.  
  1400. $.fn.companyEventWidget = function ( option ) {
  1401. return this.each(function () {
  1402.  var $this = $(this)
  1403. , data = $this.data("companyEventWidget")
  1404. , options = typeof option == "object" && option
  1405.  if (!data) $this.data("companyEventWidget", (data = new CompanyEventWidget(this, options)))
  1406.  if (typeof option == "string") data[option]()
  1407. })
  1408. }
  1409.  
  1410. $.fn.companyEventWidget.Constructor = CompanyEventWidget
  1411. $.fn.companyEventWidget.defaults = {
  1412. selector: false
  1413. , context: ""
  1414. }
  1415.  
  1416. $.fn.companyEventWidget.noConflict = function () {
  1417. $.fn.companyEventWidget = old
  1418. return this
  1419. }
  1420.  
  1421. }(window.jQuery)
  1422.  
  1423. // http://jedfoster.com/Readmore.js/
  1424. $(".more").each(function() {
  1425. $(this).readmore({
  1426.  moreLink: "<a href=\"#\" class=\"read-more-link\">阅读更多 »</a>",
  1427.  lessLink: "<a href=\"#\" class=\"read-less-link\">关闭</a>",
  1428.  collapsedHeight: 56,
  1429.  speed: 200,
  1430. });
  1431. })
  1432.  
  1433. !function ($) {
  1434. $("#yw4").companyEventWidget({
  1435. context:{"id":"companyEventWidget","scriptOnly":true,"eventName":"Company"},
  1436. });
  1437. }(window.jQuery)
  1438.  
  1439. !function ($) {
  1440. $("#yw5").addressUpdateEventWidget({
  1441. context:{"preRendered":true,"id":"addressUpdateEventWidget-1973805","eventId":1973805,"companyId":9491741,"companyName":"BUILT-IN PRO ","companyIdentifier":"builtinpro.hk","time":"November 15, 2023 @ 04:28","logoId":1229882,"title":"updated address","street":"Kwun Tong","city":"Hong Kong","state":null,"postalCode":"","country":"\u9999\u6e2f","latitude":null,"longitude":null,"eventName":"AddressUpdate"},
  1442. });
  1443. }(window.jQuery)
  1444.  
  1445. !function ($) {
  1446. $("#yw6").websiteUpdateEventWidget({
  1447. context:{"preRendered":true,"id":"websiteUpdateEventWidget-1973806","eventId":1973806,"companyId":9491741,"companyName":"BUILT-IN PRO ","companyIdentifier":"builtinpro.hk","time":"November 15, 2023 @ 04:28","logoId":1229882,"title":"updated website","website":"https:\/\/www.builtinpro.hk","eventName":"WebsiteUpdate"},
  1448. });
  1449. }(window.jQuery)
  1450.  
  1451. !function ($) {
  1452. $("#yw7").sociallinkUpdateEventWidget({
  1453. context:{"preRendered":true,"id":"sociallinkUpdateEventWidget-1973804","eventId":1973804,"companyId":9491741,"companyName":"BUILT-IN PRO ","companyIdentifier":"builtinpro.hk","time":"November 15, 2023 @ 04:26","logoId":1229882,"title":"updated social links","facebookLink":"https:\/\/www.facebook.com\/builtinpro\/","twitterLink":"","googlePlusLink":"","pinterestLink":"","eventName":"SociallinkUpdate"},
  1454. });
  1455. }(window.jQuery)
  1456.  
  1457. if($("#inquiryModal-firstName").length > 0)
  1458. $("#inquiryModal").on("shown", function () {$("input:text:visible:first", this).focus();});
  1459. else
  1460. $("#inquiryModal").on("shown", function () {$("textarea:visible:first", this).focus();});
  1461. jQuery('#yw8').after("<a id=\"yw8_button\" href=\"\/company\/captcha?refresh=1\">Get a new code<\/a>");
  1462. jQuery(document).on('click', '#yw8_button', function(){
  1463. jQuery.ajax({
  1464. url: "\/company\/captcha?refresh=1",
  1465. dataType: 'json',
  1466. cache: false,
  1467. success: function(data) {
  1468. jQuery('#yw8').attr('src', data['url']);
  1469. jQuery('body').data('captcha.hash', [data['hash1'], data['hash2']]);
  1470. }
  1471. });
  1472. return false;
  1473. });
  1474.  
  1475. jQuery('body').on('click','#submitButton_inquiryModal',function(){jQuery.ajax({'type':'POST','success':function(data){
  1476. var obj = $.parseJSON(data);
  1477. if(obj.result=="success")
  1478. {
  1479. $("#submitButton_inquiryModal").hide();
  1480. $("#inquiryModal .error-div").hide();
  1481. $("#inquiryModal .error-div").html("");
  1482. var origHtml = $("#inquiryModal .modal-body").html();
  1483. $("#inquiryModal .modal-body").hide().html("<h2>" + obj.message + "</h2>").fadeIn("fast");
  1484. setTimeout(function(){
  1485. $("#inquiryModal").modal("hide");
  1486. $("#inquiryModal .modal-body").html(origHtml);
  1487. $("#submitButton_inquiryModal").show();
  1488. },1400);;
  1489. }
  1490. else
  1491. {
  1492. $("#inquiryModal .error-div").show();
  1493. $("#inquiryModal .error-div").html("");
  1494. var errors = "";
  1495. $.each(obj, function(index, value) {
  1496. errors = errors + value + "<br />";
  1497. });
  1498. $("#inquiryModal .error-div").html(errors);
  1499. // reload captcha
  1500. $("#yw0_button").click();
  1501. }
  1502. },'url':'\x2Fcompany\x2Fcontact\x2F9491741','cache':false,'data':jQuery(this).parents("form").serialize()});return false;});
  1503.  
  1504. $(document).on("follow", function(e) {
  1505. console.log("follow event - " + e.categoryIds + ", " + e.time.toLocaleString());
  1506. var that = $("#Categories");
  1507. $.each(e.categoryIds, function(i, categoryId) {
  1508. $("[value=\"" + categoryId + "\"]", that).attr("checked", true);
  1509. });
  1510. });
  1511. $(document).on("unfollow", function(e) {
  1512. console.log("unfollow event - " + e.categoryIds + ", " + e.time.toLocaleString());
  1513. var that = $("#Categories");
  1514. $.each(e.categoryIds, function(i, categoryId) {
  1515. $("[value=\"" + categoryId + "\"]", that).attr("checked", false);
  1516. });
  1517. });
  1518. function toggleAll(element)
  1519. {
  1520. console.log("toggle all");
  1521. if($(element).is(":checked"))
  1522. $.each($("input[name=\"Categories[]\"]", $(element).parent().parent().parent()), function() {
  1523. if($(this).attr("id") != $(element).attr("id"))
  1524. {
  1525. //console.log($(this).attr("id"));
  1526. $(this).bootstrapToggle("on");
  1527. }
  1528. });
  1529. else
  1530. $.each($("input[name=\"Categories[]\"]", $(element).parent().parent().parent()), function() {
  1531. if($(this).attr("id") != $(element).attr("id"))
  1532. {
  1533. //console.log("removing checked: " + $(this).attr("id"));
  1534. $(this).bootstrapToggle("off");
  1535. }
  1536. });
  1537. }
  1538. $("#Categories_all").on("change", function(e) {
  1539. toggleAll($(this));
  1540. return false;
  1541. });
  1542. function onUpdate_followModal() {
  1543. var that = $("#Categories");
  1544. var follow = [];
  1545. var unfollow = [];
  1546. $.each($("input", that), function(i, item) {
  1547. if($(item).attr("checked"))
  1548. follow.push($(item).attr("value"));
  1549. else
  1550. unfollow.push($(item).attr("value"));
  1551. });
  1552. $.event.trigger({
  1553. type: "follow",
  1554. categoryIds: follow,
  1555. time: new Date()
  1556. });
  1557. $.event.trigger({
  1558. type: "unfollow",
  1559. categoryIds: unfollow,
  1560. time: new Date()
  1561. });
  1562. }
  1563. $("#followModal input:text:visible:first").on("shown", function () {$("input:text:visible:first", this).focus(); });
  1564. $("#followModal").formDialog({
  1565. updateAction: "/networking/follow",
  1566. updateCallback: onUpdate_followModal,
  1567. cancelCallback: null,
  1568. loginUrl: "https://globalcatalog.com/login",
  1569. loginRequiredResponse: "GC_LOGIN_REQUIRED",
  1570. loader: true
  1571. });
  1572.  
  1573. categoryTypeaheadItems = [];
  1574.    $("#navSearchBar").typeahead({
  1575. delay: 0,
  1576. minLength: 1,
  1577. showAnim: "fold",
  1578. select: function(event, item){ $("#navSearchBar").val(item.item.value); $(this).parents("form").submit(); },
  1579. source: function(query, process) {
  1580. $.getJSON("/search/autoComplete",
  1581. {
  1582. term: extractLast(query)
  1583. },
  1584. function(data) {
  1585. if(data == undefined) {
  1586. return;
  1587. }
  1588. var newData = [];
  1589. $.each(data, function(){
  1590. if(this.label != undefined)
  1591. {
  1592. newData.push(this.label);
  1593. categoryTypeaheadItems[this.label] = this.id;
  1594. }
  1595. });  
  1596. return process(newData);
  1597. });
  1598. },
  1599. matcher: function(item) {return true;}, // match everything that the search engine returns
  1600. highlighter: function (item) {
  1601.  var query = this.query.replace(/[\-\[\]{}()*+?.,\\^$|#\s]/g, "\$&")
  1602.  return "<strong>" + item.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + query + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "</strong>$1<strong>") + "</strong>"
  1603. },
  1604. updater: function(item) {
  1605. this.$element[0].value = item;
  1606. this.$element[0].form.submit();
  1607. return item;
  1608. }
  1609. });
  1610. jQuery('#yii_bootstrap_collapse_0').collapse({'parent':false,'toggle':false});
  1611. });
  1612. /*]]>*/
  1613. </script>
  1614. </body>
  1615. </html>
  1616.  
Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda