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

  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  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="en" />
  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 is one of the largest companies specializing in kitchen appliances, that has been in the consumer electronics industry for over 30 years. We have... " />
  20. <meta property="og:url" content="https://globalcatalog.com/builtinpro.hk/en" />
  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 is one of the largest companies specializing in kitchen appliances, that has been in the consumer electronics industry for over 30 years. We have branches in different regions, with our back office in Kwun Tong. We provide high-quality products for distribution, premium services, and... " />
  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.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="#">Language: English <span class="caret"></span></a><ul id="yw11" class="dropdown-menu"><li title="Afrikaans"><a tabindex="-1" href="/builtinpro.hk/af">Afrikaans</a></li><li title="Albanian"><a tabindex="-1" href="/builtinpro.hk/sq">Shqiptar</a></li><li title="Arabic"><a tabindex="-1" href="/builtinpro.hk/ar">عربي</a></li><li title="Azeri"><a tabindex="-1" href="/builtinpro.hk/az">آذربایجان دیلی</a></li><li title="Armenian"><a tabindex="-1" href="/builtinpro.hk/hy">Հայերէն</a></li><li title="Bengali"><a tabindex="-1" href="/builtinpro.hk/bn">বাংলা</a></li><li title="Belarusian"><a tabindex="-1" href="/builtinpro.hk/be">Беларускія</a></li><li title="Bulgarian"><a tabindex="-1" href="/builtinpro.hk/bg">Български</a></li><li title="Catalan"><a tabindex="-1" href="/builtinpro.hk/ca">Català</a></li><li title="Simplified Chinese"><a tabindex="-1" href="/builtinpro.hk/zh">简体</a></li><li title="Traditional Chinese"><a tabindex="-1" href="/builtinpro.hk/tw">繁體</a></li><li title="Croatian"><a tabindex="-1" href="/builtinpro.hk/hr">Hrvatski</a></li><li title="Czech"><a tabindex="-1" href="/builtinpro.hk/cs">Čeština</a></li><li title="Danish"><a tabindex="-1" href="/builtinpro.hk/da">Dansk</a></li><li title="Dutch"><a tabindex="-1" href="/builtinpro.hk/nl">Nederlands</a></li><li title="English"><a tabindex="-1" href="/builtinpro.hk/en">English</a></li><li title="Estonian"><a tabindex="-1" href="/builtinpro.hk/et">Eesti keel</a></li><li title="Filipino"><a tabindex="-1" href="/builtinpro.hk/fil">Filipino</a></li><li title="Finnish"><a tabindex="-1" href="/builtinpro.hk/fi">Suomi</a></li><li title="French"><a tabindex="-1" href="/builtinpro.hk/fr">Français</a></li><li title="Georgian"><a tabindex="-1" href="/builtinpro.hk/ka">ქართული</a></li><li title="German"><a tabindex="-1" href="/builtinpro.hk/de">Deutsch</a></li><li title="Greek"><a tabindex="-1" href="/builtinpro.hk/el">Eλληνική</a></li><li title="Hebrew"><a tabindex="-1" href="/builtinpro.hk/he">עִבְרִית</a></li><li title="Hindi"><a tabindex="-1" href="/builtinpro.hk/hi">मानक हिन्दी</a></li><li title="Hungarian"><a tabindex="-1" href="/builtinpro.hk/hu">Magyar</a></li><li title="Icelandic"><a tabindex="-1" href="/builtinpro.hk/is">Íslenska</a></li><li title="Indonesian"><a tabindex="-1" href="/builtinpro.hk/id">Bahasa Indonesia</a></li><li title="Irish"><a tabindex="-1" href="/builtinpro.hk/ga">Irish</a></li><li title="Italian"><a tabindex="-1" href="/builtinpro.hk/it">Italiano</a></li><li title="Japanese"><a tabindex="-1" href="/builtinpro.hk/ja">日本語</a></li><li title="Korean"><a tabindex="-1" href="/builtinpro.hk/ko">한국어</a></li><li title="Latvian"><a tabindex="-1" href="/builtinpro.hk/lv">Latviešu</a></li><li title="Lithuanian"><a tabindex="-1" href="/builtinpro.hk/lt">Lietuviù</a></li><li title="Macedonian"><a tabindex="-1" href="/builtinpro.hk/mk">Македонски</a></li><li title="Malay"><a tabindex="-1" href="/builtinpro.hk/ms">بهاس ملايو</a></li><li title="Maltese"><a tabindex="-1" href="/builtinpro.hk/mt">Malti</a></li><li title="Norwegian Bokmål"><a tabindex="-1" href="/builtinpro.hk/nb">Norsk</a></li><li title="Persian"><a tabindex="-1" href="/builtinpro.hk/fa">فارسی</a></li><li title="Polish"><a tabindex="-1" href="/builtinpro.hk/pl">Polski</a></li><li title="Portuguese"><a tabindex="-1" href="/builtinpro.hk/pt">Português</a></li><li title="Romanian"><a tabindex="-1" href="/builtinpro.hk/ro">Română</a></li><li title="Russian"><a tabindex="-1" href="/builtinpro.hk/ru">Pусский</a></li><li title="Serbian"><a tabindex="-1" href="/builtinpro.hk/sr">Cрпски</a></li><li title="Slovak"><a tabindex="-1" href="/builtinpro.hk/sk">Slovenčina</a></li><li title="Slovenian"><a tabindex="-1" href="/builtinpro.hk/sl">Slovenščina</a></li><li title="Spanish"><a tabindex="-1" href="/builtinpro.hk/es">Español</a></li><li title="Swahili"><a tabindex="-1" href="/builtinpro.hk/sw">Kiswahili</a></li><li title="Swedish"><a tabindex="-1" href="/builtinpro.hk/sv">Svenska</a></li><li title="Tamil"><a tabindex="-1" href="/builtinpro.hk/ta">தமிழ்</a></li><li title="Telugu"><a tabindex="-1" href="/builtinpro.hk/te">తెలుగు</a></li><li title="Thai"><a tabindex="-1" href="/builtinpro.hk/th">ภาษาไทย</a></li><li title="Turkish"><a tabindex="-1" href="/builtinpro.hk/tr">Türkçe</a></li><li title="Ukrainian"><a tabindex="-1" href="/builtinpro.hk/uk">Українськи</a></li><li title="Urdu"><a tabindex="-1" href="/builtinpro.hk/ur">اردو</a></li><li title="Vietnamese"><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="Search for products and services" /></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">Get started, it's free!</a></li><li onclick="_gaq.push([&#039;_trackEvent&#039;, &#039;Top Menu Links&#039;, &#039;Click&#039;, &#039;Login&#039;]);"><a href="/login">Sign In</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">Contact Us</h2>
  131. <h3>Submit Your Inquiry</h3>
  132. </center>
  133. </div><form class="form-vertical" id="modal-contact-form" action="/builtinpro.hk/en" 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">First name <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">Last name <span class="required">*</span></label><input class="" id="inquiryModal-lastName" name="ContactForm[lastName]" type="text" /></div></div><label for="ContactForm_email" class="required">Email <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">Message <span class="required">*</span></label><textarea rows="4" class="" style="width: 100%" id="inquiryModal-body" name="ContactForm[body]"></textarea><label for="ContactForm_verifyCode">Verification Code</label><div><img id="yw8" src="/company/captcha?v=667fb7dfa04e3" 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">Submit</button><a class="close-modal btn" data-dismiss="modal" onclick="$(&quot;#inquiryModal .error-div&quot;).hide();" href="#">Close</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">Follow company<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/en" 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">Save</button><button id="followModalCancelButton" class="btn" data-dismiss="modal" name="yt2" type="button">Cancel</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="Hong Kong"><span itemprop="addressCountry">Hong Kong</span></li></div><li title="23044092"><span class="indent">Tel:</span><span class="telephone" itemprop="telephone">23044092</span></li><li title=""><span class="indent">Fax:</span><span class="faxNumber inactive" itemprop="faxNumber"> ---.---.-----</span></li><li title="https://www.builtinpro.hk"><span class="indent">Url:</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="#">Message</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">COMPANY PROFILE</li><li class="active"><a href="/builtinpro.hk"><i class="icon-home"></i> Home<i class="icon-chevron-right right"></i></a></li><li><a href="/builtinpro.hk/en/about"><i class="icon-book"></i> About Us<i class="icon-chevron-right right"></i></a></li><li><a href="/company/events/9491741?identifier=builtinpro.hk&amp;lang=en&amp;page=events"><i class="icon-calendar"></i> Events<i class="icon-chevron-right right"></i></a></li><li><a href="/builtinpro.hk/en/markets"><i class="icon-globe"></i> Trade &amp; Markets<i class="icon-chevron-right right"></i></a></li><li><a href="/builtinpro.hk/en/contact"><i class="icon-pencil"></i> Contact<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/en">BUILT-IN PRO </a><span class="divider">/</span></li>
  166. <li class="active">Home</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>Home</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">Select language:</h2>
  190. </div><div class="modal-body"><select class="span3" autofocus="autofocus" name="languageSelect_languageModal" id="languageSelect_languageModal">
  191. <option value="1">Afrikaans</option>
  192. <option value="2">Albanian</option>
  193. <option value="3">Arabic</option>
  194. <option value="4">Azeri</option>
  195. <option value="5">Armenian</option>
  196. <option value="6">Bengali</option>
  197. <option value="7">Belarusian</option>
  198. <option value="8">Bulgarian</option>
  199. <option value="9">Catalan</option>
  200. <option value="10">Simplified Chinese</option>
  201. <option value="11">Traditional Chinese</option>
  202. <option value="12">Croatian</option>
  203. <option value="13">Czech</option>
  204. <option value="14">Danish</option>
  205. <option value="15">Dutch</option>
  206. <option value="16" selected="selected">English</option>
  207. <option value="17">Estonian</option>
  208. <option value="18">Filipino</option>
  209. <option value="19">Finnish</option>
  210. <option value="20">French</option>
  211. <option value="21">Georgian</option>
  212. <option value="22">German</option>
  213. <option value="23">Greek</option>
  214. <option value="24">Hebrew</option>
  215. <option value="25">Hindi</option>
  216. <option value="26">Hungarian</option>
  217. <option value="27">Icelandic</option>
  218. <option value="28">Indonesian</option>
  219. <option value="29">Irish</option>
  220. <option value="30">Italian</option>
  221. <option value="31">Japanese</option>
  222. <option value="32">Korean</option>
  223. <option value="33">Latvian</option>
  224. <option value="34">Lithuanian</option>
  225. <option value="35">Macedonian</option>
  226. <option value="36">Malay</option>
  227. <option value="37">Maltese</option>
  228. <option value="38">Norwegian Bokmål</option>
  229. <option value="39">Persian</option>
  230. <option value="40">Polish</option>
  231. <option value="41">Portuguese</option>
  232. <option value="42">Romanian</option>
  233. <option value="43">Russian</option>
  234. <option value="44">Serbian</option>
  235. <option value="45">Slovak</option>
  236. <option value="46">Slovenian</option>
  237. <option value="47">Spanish</option>
  238. <option value="48">Swahili</option>
  239. <option value="49">Swedish</option>
  240. <option value="50">Tamil</option>
  241. <option value="51">Telugu</option>
  242. <option value="52">Thai</option>
  243. <option value="53">Turkish</option>
  244. <option value="54">Ukrainian</option>
  245. <option value="55">Urdu</option>
  246. <option value="56">Vietnamese</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">Select</a><a id="closeButton_languageModal" class="close-modal btn" data-dismiss="modal" href="#">Close</a></div></div></div><!-- inquiryModal -->
  248. <div class="data-header">
  249. <h3>Description<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 is one of the largest companies specializing in kitchen appliances, that has been in the consumer electronics industry for over 30 years. We have branches in different regions, with our back office in Kwun Tong. We provide high-quality products for distribution, premium services, and delivery services, along with exclusive promotions, all aimed at meeting and exceeding our customer&#039;s expectations. BUILT-IN PRO now have an immediate vacancy for candidates who are seeking challenges and opportunities for advancements. We offer excellent fringe benefits and attractive development prospect to the right candidates.</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/en/about">Read More »</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="#">Close</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}}, , Hong Kong</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">Home</a></li>
  310. <li><a href="/builtinpro.hk/en/about">About Us</a></li>
  311. <li><a href="/builtinpro.hk/en/products">Products</a></li>
  312. <li><a href="/builtinpro.hk/en/services">Services</a></li>
  313. <li><a href="/builtinpro.hk/en/markets">Trade & Markets</a></li>
  314. <li><a href="/builtinpro.hk/en/contact">Contact</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 = "United States";
  358. $.globalcatalog.languageId =16;
  359. $.globalcatalog.languages = []; $.globalcatalog.languages[1] = {"Name" : "Afrikaans", "Translation" : "Afrikaans", "Code" : "af"};$.globalcatalog.languages[2] = {"Name" : "Albanian", "Translation" : "Albanian", "Code" : "sq"};$.globalcatalog.languages[3] = {"Name" : "Arabic", "Translation" : "Arabic", "Code" : "ar"};$.globalcatalog.languages[4] = {"Name" : "Azerbaijani", "Translation" : "Azeri", "Code" : "az"};$.globalcatalog.languages[5] = {"Name" : "Armenian", "Translation" : "Armenian", "Code" : "hy"};$.globalcatalog.languages[6] = {"Name" : "Bengali", "Translation" : "Bengali", "Code" : "bn"};$.globalcatalog.languages[7] = {"Name" : "Belarusian", "Translation" : "Belarusian", "Code" : "be"};$.globalcatalog.languages[8] = {"Name" : "Bulgarian", "Translation" : "Bulgarian", "Code" : "bg"};$.globalcatalog.languages[9] = {"Name" : "Catalan", "Translation" : "Catalan", "Code" : "ca"};$.globalcatalog.languages[10] = {"Name" : "ChineseSimplified", "Translation" : "Simplified Chinese", "Code" : "zh-CN"};$.globalcatalog.languages[11] = {"Name" : "ChineseTraditional", "Translation" : "Traditional Chinese", "Code" : "zh-TW"};$.globalcatalog.languages[12] = {"Name" : "Croatian", "Translation" : "Croatian", "Code" : "hr"};$.globalcatalog.languages[13] = {"Name" : "Czech", "Translation" : "Czech", "Code" : "cs"};$.globalcatalog.languages[14] = {"Name" : "Danish", "Translation" : "Danish", "Code" : "da"};$.globalcatalog.languages[15] = {"Name" : "Dutch", "Translation" : "Dutch", "Code" : "nl"};$.globalcatalog.languages[16] = {"Name" : "English", "Translation" : "English", "Code" : "en"};$.globalcatalog.languages[17] = {"Name" : "Estonian", "Translation" : "Estonian", "Code" : "et"};$.globalcatalog.languages[18] = {"Name" : "Filipino", "Translation" : "Filipino", "Code" : "fil"};$.globalcatalog.languages[19] = {"Name" : "Finnish", "Translation" : "Finnish", "Code" : "fi"};$.globalcatalog.languages[20] = {"Name" : "French", "Translation" : "French", "Code" : "fr"};$.globalcatalog.languages[21] = {"Name" : "Georgian", "Translation" : "Georgian", "Code" : "ka"};$.globalcatalog.languages[22] = {"Name" : "German", "Translation" : "German", "Code" : "de"};$.globalcatalog.languages[23] = {"Name" : "Greek", "Translation" : "Greek", "Code" : "el"};$.globalcatalog.languages[24] = {"Name" : "Hebrew", "Translation" : "Hebrew", "Code" : "he"};$.globalcatalog.languages[25] = {"Name" : "Hindi", "Translation" : "Hindi", "Code" : "hi"};$.globalcatalog.languages[26] = {"Name" : "Hungarian", "Translation" : "Hungarian", "Code" : "hu"};$.globalcatalog.languages[27] = {"Name" : "Icelandic", "Translation" : "Icelandic", "Code" : "is"};$.globalcatalog.languages[28] = {"Name" : "Indonesian", "Translation" : "Indonesian", "Code" : "id"};$.globalcatalog.languages[29] = {"Name" : "Irish", "Translation" : "Irish", "Code" : "ga"};$.globalcatalog.languages[30] = {"Name" : "Italian", "Translation" : "Italian", "Code" : "it"};$.globalcatalog.languages[31] = {"Name" : "Japanese", "Translation" : "Japanese", "Code" : "ja"};$.globalcatalog.languages[32] = {"Name" : "Korean", "Translation" : "Korean", "Code" : "ko"};$.globalcatalog.languages[33] = {"Name" : "Latvian", "Translation" : "Latvian", "Code" : "lv"};$.globalcatalog.languages[34] = {"Name" : "Lithuanian", "Translation" : "Lithuanian", "Code" : "lt"};$.globalcatalog.languages[35] = {"Name" : "Macedonian", "Translation" : "Macedonian", "Code" : "mk"};$.globalcatalog.languages[36] = {"Name" : "Malay", "Translation" : "Malay", "Code" : "ms"};$.globalcatalog.languages[37] = {"Name" : "Maltese", "Translation" : "Maltese", "Code" : "mt"};$.globalcatalog.languages[38] = {"Name" : "Norwegian", "Translation" : "Norwegian Bokmål", "Code" : "nb"};$.globalcatalog.languages[39] = {"Name" : "Persian", "Translation" : "Persian", "Code" : "fa"};$.globalcatalog.languages[40] = {"Name" : "Polish", "Translation" : "Polish", "Code" : "pl"};$.globalcatalog.languages[41] = {"Name" : "Portuguese", "Translation" : "Portuguese", "Code" : "pt"};$.globalcatalog.languages[42] = {"Name" : "Romanian", "Translation" : "Romanian", "Code" : "ro"};$.globalcatalog.languages[43] = {"Name" : "Russian", "Translation" : "Russian", "Code" : "ru"};$.globalcatalog.languages[44] = {"Name" : "Serbian", "Translation" : "Serbian", "Code" : "sr"};$.globalcatalog.languages[45] = {"Name" : "Slovak", "Translation" : "Slovak", "Code" : "sk"};$.globalcatalog.languages[46] = {"Name" : "Slovenian", "Translation" : "Slovenian", "Code" : "sl"};$.globalcatalog.languages[47] = {"Name" : "Spanish", "Translation" : "Spanish", "Code" : "es"};$.globalcatalog.languages[48] = {"Name" : "Swahili", "Translation" : "Swahili", "Code" : "sw"};$.globalcatalog.languages[49] = {"Name" : "Swedish", "Translation" : "Swedish", "Code" : "sv"};$.globalcatalog.languages[50] = {"Name" : "Tamil", "Translation" : "Tamil", "Code" : "ta"};$.globalcatalog.languages[51] = {"Name" : "Telugu", "Translation" : "Telugu", "Code" : "te"};$.globalcatalog.languages[52] = {"Name" : "Thai", "Translation" : "Thai", "Code" : "th"};$.globalcatalog.languages[53] = {"Name" : "Turkish", "Translation" : "Turkish", "Code" : "tr"};$.globalcatalog.languages[54] = {"Name" : "Ukrainian", "Translation" : "Ukrainian", "Code" : "uk"};$.globalcatalog.languages[55] = {"Name" : "Urdu", "Translation" : "Urdu", "Code" : "ur"};$.globalcatalog.languages[56] = {"Name" : "Vietnamese", "Translation" : "Vietnamese", "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, '16');});
  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":"Public","2":"Company","3":"Department","4":"Only Me","5":"Custom"};
  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.English == null ? item.English : item.English);
  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.English == null ? item.English : item.English);
  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\">Read More »</a>",
  1427.  lessLink: "<a href=\"#\" class=\"read-less-link\">Close</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":"Hong Kong","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